code: def nac_p(msg):
      
      tc = typecode(msg)
  
      if tc not in [29, 31]:
          raise RuntimeError("%s: Not a target state and status message, \
                             or operation status message, expecting TC = 29 or 31" % msg)
  
      msgbin = common.hex2bin(msg)
  
      if tc == 29:
          NACp = common.bin2int(msgbin[71:75])
      elif tc == 31:
          NACp = common.bin2int(msgbin[76:80])
  
      try:
          EPU = uncertainty.NACp[NACp]['EPU']
          VEPU = uncertainty.NACp[NACp]['VEPU']
      except KeyError:
          EPU, VEPU = uncertainty.NA, uncertainty.NA
  
      return EPU, VEPU
docs: Calculate NACp, Navigation Accuracy Category - Position
  
      Args:
          msg (string): 28 bytes hexadecimal message string, TC = 29 or 31
  
      Returns:
          int or string: 95% horizontal accuracy bounds, Estimated Position Uncertainty
          int or string: 95% vertical accuracy bounds, Vertical Estimated Position Uncertainty