code: def retry(
          transport: 'UDPTransport',
          messagedata: bytes,
          message_id: UDPMessageID,
          recipient: Address,
          stop_event: Event,
          timeout_backoff: Iterable[int],
  ) -> bool:
      
  
      async_result = transport.maybe_sendraw_with_result(
          recipient,
          messagedata,
          message_id,
      )
  
      event_quit = event_first_of(
          async_result,
          stop_event,
      )
  
      for timeout in timeout_backoff:
  
          if event_quit.wait(timeout=timeout) is True:
              break
  
          log.debug(
              'retrying message',
              node=pex(transport.raiden.address),
              recipient=pex(recipient),
              msgid=message_id,
          )
  
          transport.maybe_sendraw_with_result(
              recipient,
              messagedata,
              message_id,
          )
  
      return async_result.ready()
docs: Send messagedata until it's acknowledged.
  
      Exit when:
  
      - The message is delivered.
      - Event_stop is set.
      - The iterator timeout_backoff runs out.
  
      Returns:
          bool: True if the message was acknowledged, False otherwise.