rem: return Type1Interp::command(cmd);
add: return false;
context: HintReplacementDetector::command(int cmd){  switch (cmd) {       case cCallothersubr: {     if (size() < 2) goto unknown;     int command = (int)top(0);     int n = (int)top(1);     if (command == othcReplacehints && n == 1) {       pop(2);       _remover->mark_save((int)top());       ps_clear();       ps_push(top());       pop();       break;     } else if (command >= othcMM1 && command <= othcMM6) {       pop(2);       return mm_command(command, n);     } else if (command >= othcITC_load && command <= othcITC_random) {       pop(2);       return itc_command(command, n);     } else       goto unknown;   }      case cCallsubr: {     if (size() < 1) return error(errUnderflow);     int which = (int)pop();     if (!_subr_level)       _remover->add_subr_call(which);          Type1Charstring *subr_cs = get_subr(which);     if (!subr_cs)       return error(errSubr);          _subr_level++;     subr_cs->run(*this);     _subr_level--;          if (errno() != errOK)       return error(errno());     return !done();   }      case cEndchar:   case cReturn:    return Type1Interp::command(cmd);       case cBlend:   case cAbs:   case cAdd:   case cSub:   case cDiv:   case cNeg:   case cRandom:   case cMul:   case cSqrt:   case cDrop:   case cExch:   case cIndex:   case cRoll:   case cDup:   case cAnd:   case cOr:   case cNot:   case cEq:   case cIfelse:   case cPop:    return arith_command(cmd);       default:   unknown:    clear();    break;      }  return true;}