public static Keyword nativeSlotReaderSpecialist(ControlFrame frame, Keyword lastmove) {
    { Proposition proposition = frame.proposition;
      NamedDescription description = Logic.getDescription(((Surrogate)(proposition.operator)));
      Stella_Object argumentvalue = Logic.argumentBoundTo((proposition.arguments.theArray)[0]);
      Slot slot = ((!NamedDescription.classDescriptionP(description)) ? ((Slot)(description.nativeRelation())) : null);
      boolean successP = false;

      lastmove = lastmove;
      if ((argumentvalue != null) &&
          ((slot != null) &&
           (Stella_Object.isaP(argumentvalue, Logic.SGT_STELLA_THING) &&
            (!slot.abstractP)))) {
        { Stella_Object value = StandardObject.readSlotValue(((StandardObject)(argumentvalue)), ((StorageSlot)(slot)));

          if (value == null) {
            return (Logic.KWD_FAILURE);
          }
          if (!Logic.nullWrapperP(value)) {
            if (NamedDescription.functionDescriptionP(description)) {
              successP = PatternVariable.bindVariableToValueP(((PatternVariable)((proposition.arguments.theArray)[(proposition.arguments.length() - 1)])), value, true);
            }
            else {
              successP = Stella_Object.eqlP(value, Stella.TRUE_WRAPPER);
            }
            return (Logic.selectTestResult(successP, true, frame));
          }
        }
      }
      return (Logic.KWD_FAILURE);
    }
  }