code: def find_argument_target(xmrs, nodeid, rargname):
      
      tgt = xmrs.args(nodeid)[rargname]
      if tgt in xmrs.variables():
          try:
              return xmrs.nodeid(tgt)
          except KeyError:
              pass
  
          try:
              tgt = xmrs.hcon(tgt).lo
              return next(iter(xmrs.labelset_heads(tgt)), None)
          except KeyError:
              pass
  
          try:
              return next(iter(xmrs.labelset_heads(tgt)))
          except (KeyError, StopIteration):
              pass
      return tgt
docs: Return the target of an argument (rather than just the variable).
  
      Note:
          If the argument value is an intrinsic variable whose target is
          an EP that has a quantifier, the non-quantifier EP's nodeid
          will be returned. With this nodeid, one can then use
          :meth:`Xmrs.nodeid() <delphin.mrs.xmrs.Xmrs.nodeid>` to get its
          quantifier's nodeid.
      Args:
          xmrs (:class:`~delphin.mrs.xmrs.Xmrs`): semantic structure to
              use
          nodeid: nodeid of the argument.
          rargname: role name of the argument.
      Returns:
          The object that is the target of the argument. Possible values
          include:
  
          ==================  =====  =============================
          Argument value      e.g.   Target
          ------------------  -----  -----------------------------
          intrinsic variable  x4     nodeid; of the EP with the IV
          hole variable       h0     nodeid; HCONS's labelset head
          label               h1     nodeid; label's labelset head
          unbound variable    i3     the variable itself
          constant            "IBM"  the constant itself
          ==================  =====  =============================