input: Write a function to implement a basic version control system in Python that keeps track of changes in the code. The class should have methods to initialize the system with initial lines of code, commit changes with a version number, and restore to a previous version. The commit method should log the version number and lines of code to a file, and the restore method should revert the code to the lines corresponding to a previous commit. Use the following function header and assert tests to verify the implementation:
  
  
  class VersionControl:
      def __init__(self, lines):
          self.lines = lines
          self.mark = 0
   
      def commit(self):
          self.mark += 1
          log_file = open("log_file.txt", "a+")
          log_file.write(str(self.mark) + ": " + str(self.lines))
          log_file.close()
   
      def restore(self):
          log_file = open("log_file.txt", "r")
          lines = log_file.readlines()
          to_mark = self.mark-1
   
          self.lines = lines[to_mark]
          log_file.close()
  
  assert VersionControl(['print("Hello")']).commit == True
  assert VersionControl(['print("Hello")', 'print("World")']).commit == True
  assert VersionControl(['print("Hello")', 'print("World")']).restore == True
  assert VersionControl([]).commit == True
  assert VersionControl([]).restore == False
  
output: 
  class VersionControl:
      def __init__(self, lines):
          self.lines = lines
          self.mark = 0
   
      def commit(self):
          self.mark += 1
          with open("log_file.txt", "a+") as log_file:
              log_file.write(f"{self.mark}: {self.lines}\n")
   
      def restore(self, version_number):
          with open("log_file.txt", "r") as log_file:
              lines = log_file.readlines()
              for line in lines:
                  if line.startswith(str(version_number) + ":"):
                      self.lines = eval(line.split(": ", 1)[1])
                      self.mark = version_number
                      return
  