```\nconstructor(string memory name, string memory version) {\n    _name = name.toShortStringWithFallback(_nameFallback);\n    _version = version.toShortStringWithFallback(_versionFallback);\n    _hashedName = keccak256(bytes(name));\n    _hashedVersion = keccak256(bytes(version));\n\n    _cachedChainId = block.chainid;\n    _cachedDomainSeparator = _buildDomainSeparator();\n    _cachedThis = address(this);\n}\n```\n