rem: callee->add_callee(_cur_subr, left, right - left);
add: callee->add_caller(_cur_subr, left, right - left);
context: MakeType1CharstringInterp::type2_command(int cmd, const uint8_t *data, int *left){    switch (cmd) {          case CS::cCallsubr:      case CS::cCallgsubr:	if (subr_depth() < MAX_SUBR_DEPTH && size() == 1) {	    //fprintf(stderr, "succeeded %d\n", (int) top());	    bool g = (cmd == CS::cCallgsubr);	    CsRef csref = ((int)top() + program()->xsubr_bias(g)) | (g ? CSR_GSUBR : CSR_SUBR);	    Subr *callee = csr_subr(csref, true);	    if (callee)		_cur_subr->add_call(callee);	    int left = _csgen.length();	    	    bool more = callxsubr_command(g);	    int right = _csgen.length();	    if (error() >= 0 && callee)		callee->add_callee(_cur_subr, left, right - left);	    return more;	} else {	    //fprintf(stderr, "failed %d\n", (int) top());	    goto normal;	}      normal:      default:	return CharstringInterp::type2_command(cmd, data, left);        }}