input: Write a function to generate a new sequential GUID.
  assert isinstance(SequentialGUID.NewGUID(), uuid.UUID)
  assert isinstance(SequentialGUID.NewGUID(SequentialGUID.SEQUENTIAL_GUID_AS_BINARY), uuid.UUID)
  assert isinstance(SequentialGUID.NewGUID(SequentialGUID.SEQUENTIAL_GUID_AT_END), uuid.UUID)
output: import uuid
  import datetime
  
  class SequentialGUID:
      SEQUENTIAL_GUID_AS_STRING = 'SEQUENTIAL_GUID_AS_STRING'
      SEQUENTIAL_GUID_AS_BINARY = 'SEQUENTIAL_GUID_AS_BINARY'
      SEQUENTIAL_GUID_AT_END = 'SEQUENTIAL_GUID_AT_END'
  
      @staticmethod
      def NewGUID(format_type=SEQUENTIAL_GUID_AS_STRING):
          current_time = datetime.datetime.utcnow()
          timestamp = int(current_time.timestamp() * 1000)
          timestamp_bytes = timestamp.to_bytes(6, byteorder='big')
  
          random_bytes = uuid.uuid4().bytes[6:]
          if format_type == SequentialGUID.SEQUENTIAL_GUID_AS_BINARY:
              new_guid = uuid.UUID(bytes=timestamp_bytes + random_bytes)
          elif format_type == SequentialGUID.SEQUENTIAL_GUID_AT_END:
              new_guid = uuid.UUID(bytes=random_bytes + timestamp_bytes)
          else:
              new_guid = uuid.UUID(bytes=timestamp_bytes + random_bytes)
  
          return new_guid