code: def get_users(self):
          
          username_regex = (
              r"^username\s+(?P<username>\S+)\s+(?:privilege\s+(?P<priv_level>\S+)"
              r"\s+)?(?:secret \d+\s+(?P<pwd_hash>\S+))?$"
          )
          pub_keychain_regex = (
              r"^\s+username\s+(?P<username>\S+)(?P<keys>(?:\n\s+key-hash\s+"
              r"(?P<hash_type>\S+)\s+(?P<hash>\S+)(?:\s+\S+)?)+)$"
          )
          users = {}
          command = "show run | section username"
          output = self._send_command(command)
          for match in re.finditer(username_regex, output, re.M):
              users[match.groupdict()["username"]] = {
                  "level": int(match.groupdict()["priv_level"])
                  if match.groupdict()["priv_level"]
                  else 1,
                  "password": match.groupdict()["pwd_hash"]
                  if match.groupdict()["pwd_hash"]
                  else "",
                  "sshkeys": [],
              }
          for match in re.finditer(pub_keychain_regex, output, re.M):
              if match.groupdict()["username"] not in users:
                  continue
              users[match.groupdict()["username"]]["sshkeys"] = list(
                  map(
                      lambda s: s.strip()[9:],
                      filter(None, match.groupdict()["keys"].splitlines()),
                  )
              )
          return users
docs: Returns a dictionary with the configured users.
          The keys of the main dictionary represents the username.
          The values represent the details of the user,
          represented by the following keys:
  
              * level (int)
              * password (str)
              * sshkeys (list)
  
          *Note: sshkeys on ios is the ssh key fingerprint
  
          The level is an integer between 0 and 15, where 0 is the
          lowest access and 15 represents full access to the device.