/* ---------------------------------------------------------------------- */
/*                   Copyright (C) 1991 by Natrlich!                     */
/*                      This file is copyrighted!                         */
/*                Refer to the documentation for details.                 */
/* ---------------------------------------------------------------------- */
#if __NSTDC__
extern byte _input( void);
#else
extern byte _input();
#endif

#define input()                                                         \
   ((bp->remain--) ? *bp->p++ : _input())

#define uinput()                                                        \
   ((bp->remain--) ? _uptable[ *bp->p++] : _uptable[ _input()])

#define qinput( rem, pt)                                                \
   (! (rem)                                                             \
      ? (bp->remain = 0, bp->p = pt, tmp = input(),                     \
         (bp ? (rem = bp->remain, pt = bp->p) : 0), tmp)                \
      : (rem--, *(pt)++))

#define quinput( rem, pt, tab)                                          \
   (! (rem)                                                             \
      ? (bp->remain = 0, bp->p = pt, tmp = tab[ input()],               \
         (bp ? (rem = bp->remain, pt = bp->p) : 0), tmp)                \
      : (rem--, tab[ *(pt)++]))

