def _solver_version(self) -> Version:
self._reset()<EOL>if self._received_version is None:<EOL><INDENT>self._send('<STR_LIT>')<EOL>self._received_version = self._recv()<EOL><DEDENT>key, version = shlex.split(self._received_version[<NUM_LIT:1>:-<NUM_LIT:1>])<EOL>return Version(*map(int, version.split('<STR_LIT:.>')))<EOL>
If we fail to parse the version, we assume z3's output has changed, meaning it's a newer
version than what's used now, and therefore ok.

Anticipated version_cmd_output format: 'Z3 version 4.4.2'
                                       'Z3 version 4.4.5 - 64 bit - build hashcode $Z3GITHASH'