  
    fw_versions = {}
    for i, addr in enumerate(tqdm(addrs, disable=not progress)):
      for addr_chunk in chunks(addr):
        for request, response in REQUESTS:
          try:
            query = IsoTpParallelQuery(sendcan, logcan, bus, addr_chunk, request, response, debug=debug)
            t = 2 * timeout if i == 0 else timeout
            fw_versions.update(query.get_data(t))
          except Exception:
 
</s> remove   if has_relay and not fixed_fingerprint:
 </s> add   if has_relay and not fixed_fingerprint and not skip_fw_query:
      for supports_sub_addr, request, response in REQUESTS:
  
    fw_versions = {}
    for i, addr in enumerate(tqdm(addrs, disable=not progress)):
      for addr_chunk in chunks(addr):
      for supports_sub_addr, request, response in REQUESTS:
          try:
            query = IsoTpParallelQuery(sendcan, logcan, bus, addr_chunk, request, response, debug=debug)
            t = 2 * timeout if i == 0 else timeout
            fw_versions.update(query.get_data(t))
          except Exception:
keep keep keep keep replace keep keep keep keep keep
 Hyundai fw query (#1540)

* hyundai fw query

* Change query

* this works

* That is not engine

* hyundai fw query

* Change query

* this works

* That is not engine

* Skip FW query in test_car_models

* Those routes don't fingerprint properly after speedup

* only send toyota queries to subaddresses

Co-authored-by: openpilot laptop <laptop@comma.ai> 
selfdrive/car/fw_versions.py