<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def complex_request(self, request, wait_for_first_response=True):
 """Send a compound command request to the interface over the normal data channel. request - A dict storing the request to send to the VI. It will be serialized to the currently selected output format. wait_for_first_response - If true, this function will block waiting for a response from the VI and return it to the caller. Otherwise, it will send the command and return immediately and any response will be lost. """

        receiver = self._prepare_response_receiver(request,
                receiver_class=CommandResponseReceiver)
        self._send_complex_request(request)

        responses = []
        if wait_for_first_response:
            responses = receiver.wait_for_responses()
        return responses