public int Decode(SevenZip.Compression.RangeCoder.Decoder rangeDecoder, int posState) throws IOException
    {
      if (rangeDecoder.DecodeBit(m_Choice, 0) == 0)
        return m_LowCoder[posState].Decode(rangeDecoder);
      int symbol = 8;
      if (rangeDecoder.DecodeBit(m_Choice, 1) == 0)
        symbol += m_MidCoder[posState].Decode(rangeDecoder);
      else
        symbol += 8 + m_HighCoder.Decode(rangeDecoder);
      return symbol;
    }