/* DO NOT EDIT THIS FILE - it is machine generated (JCGO_116) */

#ifdef JCGO_SEPARATED
#define JCGO_116
#include "jcgortl.h"
#include "Main.h"
#endif

#ifdef JCGO_116

#ifdef CHKALL_BZLib
#include "jcgobchk.h"
#endif

JCGO_NOSEP_INLINE jbyte CFASTCALL
package_BZLib__getUchar__L0h0mx( package_BZState state )
{
 {
  return (jbyte)(package_BZLib__getBits__IL0h0mx(
   state, (jint)8));
 }
}

JCGO_NOSEP_INLINE jbyte CFASTCALL
package_BZLib__getBit__L0h0mx( package_BZState state )
{
 {
  return (jbyte)(package_BZLib__getBits__IL0h0mx(
   state, (jint)1));
 }
}

JCGO_NOSEP_INLINE void CFASTCALL
package_BZLib__makeMaps__L0h0mx( package_BZState state )
{
 {
  JCGO_FIELD_ACCESS(package_BZState, state, nInUse)= 0;
  {
   jint i;
   i= 0;
   for (; i < (jint)256; i++)
   {
    if (JCGO_ARRAY_ZACCESS(JCGO_FIELD_NZACCESS(state, inUse), i))
    {
     JCGO_ARRAY_BACCESS(JCGO_FIELD_NZACCESS(state, setToUnseq), JCGO_FIELD_NZACCESS(state,
      nInUse))= ((jbyte)i);
     JCGO_FIELD_NZACCESS(state, nInUse)++;
    }
   }
  }
 }
}

JCGO_NOSEP_INLINE void CFASTCALL
package_BZLib__createDecodeTables__IAIAIABAIII( jintArr limit, jintArr
 base, jintArr perm, jbyteArr length, jint minLen, jint maxLen, jint
 alphaSize )
{
 {
  jint pp;
  jint vec;
  pp= 0;
  {
   jint i;
   i= minLen;
   for (; i <= maxLen; i++)
   {
    {
     jint j;
     j= 0;
     for (; j < alphaSize; j++)
     {
      if (JCGO_ARRAY_BACCESS(length, j) == i)
      {
       JCGO_ARRAY_IACCESS(perm, pp)= j;
       pp++;
      }
     }
    }
   }
  }
  {
   jint i;
   i= 0;
   for (; i < (jint)23; i++)
   {
    JCGO_ARRAY_IACCESS(base, i)= 0;
   }
  }
  {
   jint i;
   i= 0;
   for (; i < alphaSize; i++)
   {
    (JCGO_ARRAY_IACCESS(base, JCGO_ARRAY_BACCESS(length, i) + (jint)1))++;
   }
  }
  {
   jint i;
   i= (jint)1;
   for (; i < (jint)23; i++)
   {
    jObject jcgo_rcvrL1;
    (jcgo_rcvrL1= (void*)&JCGO_ARRAY_IACCESS(base, i), *(jint*)jcgo_rcvrL1+=
     JCGO_ARRAY_IACCESS(base, i - (jint)1));
   }
  }
  {
   jint i;
   i= 0;
   for (; i < (jint)23; i++)
   {
    JCGO_ARRAY_IACCESS(limit, i)= 0;
   }
  }
  vec= 0;
  {
   jint i;
   i= minLen;
   for (; i <= maxLen; i++)
   {
    jint jcgo_rcvrI1;
    vec+= (jcgo_rcvrI1= JCGO_ARRAY_IACCESS(base, i + (jint)1), jcgo_rcvrI1 -
     JCGO_ARRAY_IACCESS(base, i));
    JCGO_ARRAY_IACCESS(limit, i)= (vec - (jint)1);
    vec= JCGO_SHL_F(vec, (jint)1);
   }
  }
  {
   jint i;
   i= minLen + (jint)1;
   for (; i <= maxLen; i++)
   {
    jint jcgo_rcvrI1;
    jint jcgo_rcvrI2;
    (jcgo_rcvrI1= (jcgo_rcvrI2= JCGO_SHL_F(JCGO_ARRAY_IACCESS(limit,
     i - (jint)1) + (jint)1, (jint)1), jcgo_rcvrI2 - JCGO_ARRAY_IACCESS(base,
     i)), JCGO_ARRAY_IACCESS(base, i)= jcgo_rcvrI1);
   }
  }
 }
}

JCGO_NOSEP_INLINE void CFASTCALL
package_BZLib__nextHeader__L0h0mx( package_BZState state )
{
 {
  jintArr cTt;
  jbyteArr output;
  jint cStateOutLen;
  jint cNblockUsed;
  jint cK0;
  jint cTpos;
  jint csNextOut;
  jint csAvailOut;
  jint asdasdasd;
  jint sSaveNblockPP;
  jint i2;
  jbyte cStateOutCh;
  cStateOutCh= JCGO_FIELD_ACCESS(package_BZState, state, stateOutCh);
  cStateOutLen= JCGO_FIELD_NZACCESS(state, stateOutLen);
  cNblockUsed= JCGO_FIELD_NZACCESS(state, nblockUsed);
  cK0= JCGO_FIELD_NZACCESS(state, k0);
  cTt= JCGO_FIELD_NZACCESS(state, tt);
  cTpos= JCGO_FIELD_NZACCESS(state, tpos);
  output= JCGO_FIELD_NZACCESS(state, output);
  csNextOut= JCGO_FIELD_NZACCESS(state, availOut);
  csAvailOut= JCGO_FIELD_NZACCESS(state, decompressedSize);
  asdasdasd= csAvailOut;
  sSaveNblockPP= JCGO_FIELD_NZACCESS(state, saveNblock) + (jint)1;
  do
  {
   jbyte k2;
   jboolean flag;
   if (cStateOutLen > 0)
   {
    do
    {
     if (csAvailOut == 0)
     {
      goto jcgo_break1;
     }
     if (cStateOutLen == (jint)1)
     {
      break;
     }
     JCGO_ARRAY_BACCESS(output, csNextOut)= cStateOutCh;
     cStateOutLen--;
     csNextOut++;
     csAvailOut--;
    }
     while (jtrue);
    if (csAvailOut == 0)
    {
     cStateOutLen= (jint)1;
     break;
    }
    JCGO_ARRAY_BACCESS(output, csNextOut)= cStateOutCh;
    csNextOut++;
    csAvailOut--;
   }
   flag= jtrue;
   while (flag)
   {
    jbyte k1;
    flag= (jboolean)jfalse;
    if (cNblockUsed == sSaveNblockPP)
    {
     cStateOutLen= 0;
     goto jcgo_break1;
    }
    cStateOutCh= (jbyte)cK0;
    cTpos= JCGO_ARRAY_IACCESS(cTt, cTpos);
    k1= (jbyte)(cTpos & (jint)255);
    cTpos= JCGO_SHR_F(cTpos, (jint)8);
    cNblockUsed++;
    if (k1 != cK0)
    {
     cK0= (jint)k1;
     if (csAvailOut == 0)
     {
      cStateOutLen= (jint)1;
     }
     else
     {
      JCGO_ARRAY_BACCESS(output, csNextOut)= cStateOutCh;
      csNextOut++;
      csAvailOut--;
      flag= (jboolean)jtrue;
      continue;
     }
     goto jcgo_break1;
    }
    if (cNblockUsed != sSaveNblockPP)
    {
     continue;
    }
    if (csAvailOut == 0)
    {
     cStateOutLen= (jint)1;
     goto jcgo_break1;
    }
    JCGO_ARRAY_BACCESS(output, csNextOut)= cStateOutCh;
    csNextOut++;
    csAvailOut--;
    flag= (jboolean)jtrue;
   }
   cStateOutLen= (jint)2;
   cTpos= JCGO_ARRAY_IACCESS(cTt, cTpos);
   k2= (jbyte)(cTpos & (jint)255);
   cTpos= JCGO_SHR_F(cTpos, (jint)8);
   if (++cNblockUsed != sSaveNblockPP)
   {
    if (k2 != cK0)
    {
     cK0= (jint)k2;
    }
    else
    {
     jbyte k3;
     cStateOutLen= (jint)3;
     cTpos= JCGO_ARRAY_NZIACCESS(cTt, cTpos);
     k3= (jbyte)(cTpos & (jint)255);
     cTpos= JCGO_SHR_F(cTpos, (jint)8);
     if (++cNblockUsed != sSaveNblockPP)
     {
      if (k3 != cK0)
      {
       cK0= (jint)k3;
      }
      else
      {
       jbyte byte3;
       cTpos= JCGO_ARRAY_NZIACCESS(cTt, cTpos);
       byte3= (jbyte)(cTpos & (jint)255);
       cTpos= JCGO_SHR_F(cTpos, (jint)8);
       cNblockUsed++;
       cStateOutLen= ((jint)((unsigned char)byte3)) + (jint)4;
       cTpos= JCGO_ARRAY_NZIACCESS(cTt, cTpos);
       cK0= (jint)((jbyte)(cTpos & (jint)255));
       cTpos= JCGO_SHR_F(cTpos, (jint)8);
       cNblockUsed++;
      }
     }
    }
   }
  }
   while (jtrue);
jcgo_break1:;
  i2= JCGO_FIELD_NZACCESS(state, totalOutLo32);
  JCGO_FIELD_NZACCESS(state, totalOutLo32)+= asdasdasd - csAvailOut;
  if (JCGO_FIELD_NZACCESS(state, totalOutLo32) < i2)
  {
   JCGO_FIELD_NZACCESS(state, totalOutHi32)++;
  }
  JCGO_FIELD_NZACCESS(state, stateOutCh)= cStateOutCh;
  JCGO_FIELD_NZACCESS(state, stateOutLen)= cStateOutLen;
  JCGO_FIELD_NZACCESS(state, nblockUsed)= cNblockUsed;
  JCGO_FIELD_NZACCESS(state, k0)= cK0;
  JCGO_FIELD_NZACCESS(state, tt)= cTt;
  JCGO_FIELD_NZACCESS(state, tpos)= cTpos;
  JCGO_FIELD_NZACCESS(state, output)= output;
  JCGO_FIELD_NZACCESS(state, availOut)= csNextOut;
  JCGO_FIELD_NZACCESS(state, decompressedSize)= csAvailOut;
 }
}

JCGO_NOSEP_INLINE void CFASTCALL
package_BZLib__decompress__L0h0mx( package_BZState state )
{
 {
  jintArr gLimit;
  jintArr gBase;
  jintArr gPerm;
  jint gMinLen;
  jboolean goingandshit;
  gMinLen= 0;
  gLimit= (jintArr)jnull;
  gBase= (jintArr)jnull;
  gPerm= (jintArr)jnull;
  JCGO_FIELD_ACCESS(package_BZState, state, blocksize100k)= (jint)1;
  if (JCGO_FIELD_NZACCESS(state, tt) == jnull)
  {
   JCGO_FIELD_NZACCESS(state, tt)= (jintArr)jcgo_newArray(JCGO_CORECLASS_FOR(OBJT_jint),
    0, JCGO_FIELD_NZACCESS(state, blocksize100k) * (jint)100000L);
  }
  goingandshit= jtrue;
  while (goingandshit)
  {
   jbyteArr pos;
   jint alphaSize;
   jint nGroups;
   jint nSelectors;
   jint eob;
   jint nblockMax;
   jint groupNo;
   jint groupPos;
   jint kk;
   jint nblock;
   jint zn;
   jint zvec;
   jbyte uc;
   jbyte zj;
   jcgo_arrtype2_BZLib jcgo_stackobj1;
   uc= (package_BZLib__getUchar__L0h0mx(
    state));
   if (uc == (jint)23)
   {
    return;
   }
   uc= (package_BZLib__getUchar__L0h0mx(
    state));
   uc= (package_BZLib__getUchar__L0h0mx(
    state));
   uc= (package_BZLib__getUchar__L0h0mx(
    state));
   uc= (package_BZLib__getUchar__L0h0mx(
    state));
   uc= (package_BZLib__getUchar__L0h0mx(
    state));
   JCGO_FIELD_NZACCESS(state, blockNo)++;
   uc= (package_BZLib__getUchar__L0h0mx(
    state));
   uc= (package_BZLib__getUchar__L0h0mx(
    state));
   uc= (package_BZLib__getUchar__L0h0mx(
    state));
   uc= (package_BZLib__getUchar__L0h0mx(
    state));
   uc= (package_BZLib__getBit__L0h0mx(
    state));
   JCGO_FIELD_NZACCESS(state, blockRandomised)= (jboolean)(uc != 0);
   if (JCGO_FIELD_NZACCESS(state, blockRandomised))
   {
    (java_io_PrintStream__println__Ls(
     JCGO_CLINIT_VARACC(java_lang_System__class, java_lang_System__out),
     JCGO_STRREF_OF(jcgo_string3_BZLib)));
   }
   JCGO_FIELD_NZACCESS(state, origPtr)= 0;
   uc= (package_BZLib__getUchar__L0h0mx(
    state));
   JCGO_FIELD_NZACCESS(state, origPtr)= JCGO_SHL_F(JCGO_FIELD_NZACCESS(state,
    origPtr), (jint)8) | ((jint)((unsigned char)uc));
   uc= (package_BZLib__getUchar__L0h0mx(
    state));
   JCGO_FIELD_NZACCESS(state, origPtr)= JCGO_SHL_F(JCGO_FIELD_NZACCESS(state,
    origPtr), (jint)8) | ((jint)((unsigned char)uc));
   uc= (package_BZLib__getUchar__L0h0mx(
    state));
   JCGO_FIELD_NZACCESS(state, origPtr)= JCGO_SHL_F(JCGO_FIELD_NZACCESS(state,
    origPtr), (jint)8) | ((jint)((unsigned char)uc));
   {
    jint i;
    i= 0;
    for (; i < (jint)16; i++)
    {
     uc= (package_BZLib__getBit__L0h0mx(
      state));
     JCGO_ARRAY_ZACCESS(JCGO_FIELD_NZACCESS(state, inUse_16), i)= (jboolean)(uc ==
      (jint)1);
    }
   }
   {
    jint i;
    i= 0;
    for (; i < (jint)256; i++)
    {
     JCGO_ARRAY_ZACCESS(JCGO_FIELD_NZACCESS(state, inUse), i)= (jboolean)jfalse;
    }
   }
   {
    jint i;
    i= 0;
    for (; i < (jint)16; i++)
    {
     if (JCGO_ARRAY_ZACCESS(JCGO_FIELD_NZACCESS(state, inUse_16), i))
     {
      {
       jint j;
       j= 0;
       for (; j < (jint)16; j++)
       {
        uc= (package_BZLib__getBit__L0h0mx(
         state));
        if (uc == (jint)1)
        {
         JCGO_ARRAY_ZACCESS(JCGO_FIELD_NZACCESS(state, inUse), i *
          (jint)16 + j)= (jboolean)jtrue;
        }
       }
      }
     }
    }
   }
   (package_BZLib__makeMaps__L0h0mx(
    state));
   alphaSize= JCGO_FIELD_NZACCESS(state, nInUse) + (jint)2;
   nGroups= (package_BZLib__getBits__IL0h0mx(
    state, (jint)3));
   nSelectors= (package_BZLib__getBits__IL0h0mx(
    state, (jint)15));
   {
    jint i;
    i= 0;
    for (; i < nSelectors; i++)
    {
     jint j;
     j= 0;
     do
     {
      uc= (package_BZLib__getBit__L0h0mx(
       state));
      if (uc == 0)
      {
       break;
      }
      j++;
     }
      while (jtrue);
     JCGO_ARRAY_BACCESS(JCGO_FIELD_NZACCESS(state, selectorMtf), i)=
      ((jbyte)j);
    }
   }
   pos= (jbyteArr)JCGO_STACKOBJ_PRIMARRNEW(jcgo_stackobj1, jbyteArr_methods,
    6);
   {
    jbyte v;
    v= (jbyte)0;
    for (; v < nGroups; v++)
    {
     JCGO_ARRAY_NZBACCESS(pos, v)= v;
    }
   }
   {
    jint i;
    i= 0;
    for (; i < nSelectors; i++)
    {
     jbyte v;
     jbyte tmp;
     v= JCGO_ARRAY_BACCESS(JCGO_FIELD_NZACCESS(state, selectorMtf),
      i);
     tmp= JCGO_ARRAY_NZBACCESS(pos, v);
     for (; v > 0; v--)
     {
      jbyte jcgo_rcvrB1;
      (jcgo_rcvrB1= JCGO_ARRAY_NZBACCESS(pos, v - (jint)1), JCGO_ARRAY_NZBACCESS(pos,
       v)= jcgo_rcvrB1);
     }
     JCGO_ARRAY_NZBACCESS(pos, 0)= tmp;
     JCGO_ARRAY_BACCESS(JCGO_FIELD_NZACCESS(state, selector), i)= tmp;
    }
   }
   {
    jint t;
    t= 0;
    for (; t < nGroups; t++)
    {
     jint curr;
     curr= (package_BZLib__getBits__IL0h0mx(
      state, (jint)5));
     {
      jint i;
      i= 0;
      for (; i < alphaSize; i++)
      {
       do
       {
        uc= (package_BZLib__getBit__L0h0mx(
         state));
        if (uc == 0)
        {
         break;
        }
        uc= (package_BZLib__getBit__L0h0mx(
         state));
        if (uc == 0)
        {
         curr++;
        }
        else
        {
         curr--;
        }
       }
        while (jtrue);
       JCGO_ARRAY_BACCESS(((jbyteArr)JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(state,
        len), t)), i)= ((jbyte)curr);
      }
     }
    }
   }
   {
    jint t;
    t= 0;
    for (; t < nGroups; t++)
    {
     jint maxLen;
     jbyte minLen;
     jObject jcgo_rcvrL1;
     jObject jcgo_rcvrL2;
     jObject jcgo_rcvrL3;
     minLen= (jbyte)(jint)32;
     maxLen= 0;
     {
      jint l1;
      l1= 0;
      for (; l1 < alphaSize; l1++)
      {
       if (JCGO_ARRAY_BACCESS(((jbyteArr)JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(state,
        len), t)), l1) > maxLen)
       {
        maxLen= (jint)(JCGO_ARRAY_BACCESS(((jbyteArr)JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(state,
         len), t)), l1));
       }
       if (JCGO_ARRAY_BACCESS(((jbyteArr)JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(state,
        len), t)), l1) < minLen)
       {
        minLen= JCGO_ARRAY_BACCESS(((jbyteArr)JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(state,
         len), t)), l1);
       }
      }
     }
     (jcgo_rcvrL1= (jObject)((jintArr)JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(state,
      limit), t)), jcgo_rcvrL2= (jObject)((jintArr)JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(state,
      base), t)), jcgo_rcvrL3= (jObject)((jintArr)JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(state,
      perm), t)), package_BZLib__createDecodeTables__IAIAIABAIII(
      (jintArr)jcgo_rcvrL1, (jintArr)jcgo_rcvrL2, (jintArr)jcgo_rcvrL3,
      ((jbyteArr)JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(state, len),
      t)), minLen, maxLen, alphaSize));
     JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(state, minLens), t)= (jint)minLen;
    }
   }
   eob= JCGO_FIELD_NZACCESS(state, nInUse) + (jint)1;
   nblockMax= JCGO_FIELD_NZACCESS(state, blocksize100k) * (jint)100000L;
   groupNo= (-(jint)1);
   groupPos= 0;
   {
    jint i;
    i= 0;
    for (; i <= (jint)255; i++)
    {
     JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(state, unzftab), i)= 0;
    }
   }
   kk= (jint)4095;
   {
    jint ii;
    ii= (jint)15;
    for (; ii >= 0; ii--)
    {
     {
      jint jj;
      jj= (jint)15;
      for (; jj >= 0; jj--)
      {
       JCGO_ARRAY_BACCESS(JCGO_FIELD_NZACCESS(state, mtfa), kk)= ((jbyte)(ii *
        (jint)16 + jj));
       kk--;
      }
     }
     JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(state, mtfbase), ii)= (kk +
      (jint)1);
    }
   }
   nblock= 0;
   if (groupPos == 0)
   {
    jbyte gSel;
    groupNo++;
    groupPos= (jint)50;
    gSel= JCGO_ARRAY_BACCESS(JCGO_FIELD_NZACCESS(state, selector),
     groupNo);
    gMinLen= JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(state, minLens),
     gSel);
    gLimit= ((jintArr)JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(state,
     limit), gSel));
    gPerm= ((jintArr)JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(state,
     perm), gSel));
    gBase= ((jintArr)JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(state,
     base), gSel));
   }
   groupPos--;
   zn= gMinLen;
   for (zvec= (package_BZLib__getBits__IL0h0mx(
    state, zn)); zvec > JCGO_ARRAY_IACCESS(gLimit, zn); zvec= JCGO_SHL_F(zvec,
    (jint)1) | zj)
   {
    zn++;
    zj= (package_BZLib__getBit__L0h0mx(
     state));
   }
   {
    jint nextSym;
    nextSym= JCGO_ARRAY_IACCESS(gPerm, zvec - JCGO_ARRAY_IACCESS(gBase,
     zn));
    for (; nextSym != eob;)
    {
     if (nextSym == 0 || nextSym == (jint)1)
     {
      jint es;
      jint N;
      es= (-(jint)1);
      N= (jint)1;
      do
      {
       jint zn_2;
       jint zvec_2;
       jbyte zj_2;
       if (nextSym == 0)
       {
        es+= N;
       }
       else
       {
        if (nextSym == (jint)1)
        {
         es+= N * (jint)2;
        }
       }
       N*= (jint)2;
       if (groupPos == 0)
       {
        jbyte gSel;
        groupNo++;
        groupPos= (jint)50;
        gSel= JCGO_ARRAY_BACCESS(JCGO_FIELD_NZACCESS(state, selector),
         groupNo);
        gMinLen= JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(state, minLens),
         gSel);
        gLimit= ((jintArr)JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(state,
         limit), gSel));
        gPerm= ((jintArr)JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(state,
         perm), gSel));
        gBase= ((jintArr)JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(state,
         base), gSel));
       }
       groupPos--;
       zn_2= gMinLen;
       for (zvec_2= (package_BZLib__getBits__IL0h0mx(
        state, zn_2)); zvec_2 > JCGO_ARRAY_IACCESS(gLimit, zn_2); zvec_2=
        JCGO_SHL_F(zvec_2, (jint)1) | zj_2)
       {
        zn_2++;
        zj_2= (package_BZLib__getBit__L0h0mx(
         state));
       }
       nextSym= JCGO_ARRAY_IACCESS(gPerm, zvec_2 - JCGO_ARRAY_IACCESS(gBase,
        zn_2));
      }
       while (nextSym == 0 || nextSym == (jint)1);
      es++;
      uc= JCGO_ARRAY_BACCESS(JCGO_FIELD_NZACCESS(state, setToUnseq),
       (jint)((unsigned char)(JCGO_ARRAY_BACCESS(JCGO_FIELD_NZACCESS(state,
       mtfa), JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(state, mtfbase),
       0)))));
      JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(state, unzftab), (jint)((unsigned char)uc))+=
       es;
      for (; es > 0; es--)
      {
       JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(state, tt), nblock)=
        ((jint)((unsigned char)uc));
       nblock++;
      }
     }
     else
     {
      jint nn;
      jint zn_2;
      jint zvec_2;
      jbyte zj_2;
      jint jcgo_rcvrI1;
      nn= nextSym - (jint)1;
      if (nn < (jint)16)
      {
       jint pp;
       pp= JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(state, mtfbase),
        0);
       uc= JCGO_ARRAY_BACCESS(JCGO_FIELD_NZACCESS(state, mtfa), pp +
        nn);
       for (; nn > (jint)3; nn-= (jint)4)
       {
        jint z;
        jbyte jcgo_rcvrB1;
        z= pp + nn;
        (jcgo_rcvrB1= JCGO_ARRAY_BACCESS(JCGO_FIELD_NZACCESS(state,
         mtfa), z - (jint)1), JCGO_ARRAY_BACCESS(JCGO_FIELD_NZACCESS(state,
         mtfa), z)= jcgo_rcvrB1);
        (jcgo_rcvrB1= JCGO_ARRAY_BACCESS(JCGO_FIELD_NZACCESS(state,
         mtfa), z - (jint)2), JCGO_ARRAY_BACCESS(JCGO_FIELD_NZACCESS(state,
         mtfa), z - (jint)1)= jcgo_rcvrB1);
        (jcgo_rcvrB1= JCGO_ARRAY_BACCESS(JCGO_FIELD_NZACCESS(state,
         mtfa), z - (jint)3), JCGO_ARRAY_BACCESS(JCGO_FIELD_NZACCESS(state,
         mtfa), z - (jint)2)= jcgo_rcvrB1);
        (jcgo_rcvrB1= JCGO_ARRAY_BACCESS(JCGO_FIELD_NZACCESS(state,
         mtfa), z - (jint)4), JCGO_ARRAY_BACCESS(JCGO_FIELD_NZACCESS(state,
         mtfa), z - (jint)3)= jcgo_rcvrB1);
       }
       for (; nn > 0; nn--)
       {
        jbyte jcgo_rcvrB1;
        (jcgo_rcvrB1= JCGO_ARRAY_BACCESS(JCGO_FIELD_NZACCESS(state,
         mtfa), (pp + nn) - (jint)1), JCGO_ARRAY_BACCESS(JCGO_FIELD_NZACCESS(state,
         mtfa), pp + nn)= jcgo_rcvrB1);
       }
       JCGO_ARRAY_BACCESS(JCGO_FIELD_NZACCESS(state, mtfa), pp)= uc;
      }
      else
      {
       jint lno;
       jint off;
       jint pp;
       lno= nn / (jint)16;
       off= nn % (jint)16;
       pp= JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(state, mtfbase),
        lno) + off;
       uc= JCGO_ARRAY_BACCESS(JCGO_FIELD_NZACCESS(state, mtfa), pp);
       for (; pp > JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(state, mtfbase),
        lno); pp--)
       {
        jbyte jcgo_rcvrB1;
        (jcgo_rcvrB1= JCGO_ARRAY_BACCESS(JCGO_FIELD_NZACCESS(state,
         mtfa), pp - (jint)1), JCGO_ARRAY_BACCESS(JCGO_FIELD_NZACCESS(state,
         mtfa), pp)= jcgo_rcvrB1);
       }
       (JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(state, mtfbase), lno))++;
       for (; lno > 0; lno--)
       {
        jbyte jcgo_rcvrB1;
        (JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(state, mtfbase), lno))--;
        (jcgo_rcvrB1= JCGO_ARRAY_BACCESS(JCGO_FIELD_NZACCESS(state,
         mtfa), (JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(state, mtfbase),
         lno - (jint)1) + (jint)16) - (jint)1), JCGO_ARRAY_BACCESS(JCGO_FIELD_NZACCESS(state,
         mtfa), JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(state, mtfbase),
         lno))= jcgo_rcvrB1);
       }
       (JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(state, mtfbase), 0))--;
       JCGO_ARRAY_BACCESS(JCGO_FIELD_NZACCESS(state, mtfa), JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(state,
        mtfbase), 0))= uc;
       if (JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(state, mtfbase),
        0) == 0)
       {
        kk= (jint)4095;
        {
         jint ii;
         ii= (jint)15;
         for (; ii >= 0; ii--)
         {
          {
           jint jj;
           jj= (jint)15;
           for (; jj >= 0; jj--)
           {
            jbyte jcgo_rcvrB1;
            (jcgo_rcvrB1= JCGO_ARRAY_BACCESS(JCGO_FIELD_NZACCESS(state,
             mtfa), JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(state, mtfbase),
             ii) + jj), JCGO_ARRAY_BACCESS(JCGO_FIELD_NZACCESS(state,
             mtfa), kk)= jcgo_rcvrB1);
            kk--;
           }
          }
          JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(state, mtfbase), ii)=
           (kk + (jint)1);
         }
        }
       }
      }
      (JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(state, unzftab), (jint)((unsigned char)(JCGO_ARRAY_BACCESS(JCGO_FIELD_NZACCESS(state,
       setToUnseq), (jint)((unsigned char)uc))))))++;
      (jcgo_rcvrI1= (jint)((unsigned char)(JCGO_ARRAY_BACCESS(JCGO_FIELD_NZACCESS(state,
       setToUnseq), (jint)((unsigned char)uc)))), JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(state,
       tt), nblock)= jcgo_rcvrI1);
      nblock++;
      if (groupPos == 0)
      {
       jbyte gSel;
       groupNo++;
       groupPos= (jint)50;
       gSel= JCGO_ARRAY_BACCESS(JCGO_FIELD_NZACCESS(state, selector),
        groupNo);
       gMinLen= JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(state, minLens),
        gSel);
       gLimit= ((jintArr)JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(state,
        limit), gSel));
       gPerm= ((jintArr)JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(state,
        perm), gSel));
       gBase= ((jintArr)JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(state,
        base), gSel));
      }
      groupPos--;
      zn_2= gMinLen;
      for (zvec_2= (package_BZLib__getBits__IL0h0mx(
       state, zn_2)); zvec_2 > JCGO_ARRAY_IACCESS(gLimit, zn_2); zvec_2=
       JCGO_SHL_F(zvec_2, (jint)1) | zj_2)
      {
       zn_2++;
       zj_2= (package_BZLib__getBit__L0h0mx(
        state));
      }
      nextSym= JCGO_ARRAY_IACCESS(gPerm, zvec_2 - JCGO_ARRAY_IACCESS(gBase,
       zn_2));
     }
    }
   }
   JCGO_FIELD_NZACCESS(state, stateOutLen)= 0;
   JCGO_FIELD_NZACCESS(state, stateOutCh)= (jbyte)0;
   JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(state, cftab), 0)= 0;
   {
    jint i;
    i= (jint)1;
    for (; i <= (jint)256; i++)
    {
     jint jcgo_rcvrI1;
     (jcgo_rcvrI1= JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(state, unzftab),
      i - (jint)1), JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(state, cftab),
      i)= jcgo_rcvrI1);
    }
   }
   {
    jint i;
    i= (jint)1;
    for (; i <= (jint)256; i++)
    {
     jObject jcgo_rcvrL1;
     (jcgo_rcvrL1= (void*)&JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(state,
      cftab), i), *(jint*)jcgo_rcvrL1+= JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(state,
      cftab), i - (jint)1));
    }
   }
   {
    jint i;
    i= 0;
    for (; i < nblock; i++)
    {
     uc= (jbyte)(JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(state, tt),
      i) & (jint)255);
     JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(state, tt), JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(state,
      cftab), (jint)((unsigned char)uc)))|= JCGO_SHL_F(i, (jint)8);
     (JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(state, cftab), (jint)((unsigned char)uc)))++;
    }
   }
   JCGO_FIELD_NZACCESS(state, tpos)= JCGO_SHR_F(JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(state,
    tt), JCGO_FIELD_NZACCESS(state, origPtr)), (jint)8);
   JCGO_FIELD_NZACCESS(state, nblockUsed)= 0;
   JCGO_FIELD_NZACCESS(state, tpos)= JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(state,
    tt), JCGO_FIELD_NZACCESS(state, tpos));
   JCGO_FIELD_NZACCESS(state, k0)= (jint)((jbyte)(JCGO_FIELD_NZACCESS(state,
    tpos) & (jint)255));
   JCGO_FIELD_NZACCESS(state, tpos)= JCGO_SHR_F(JCGO_FIELD_NZACCESS(state,
    tpos), (jint)8);
   JCGO_FIELD_NZACCESS(state, nblockUsed)++;
   JCGO_FIELD_NZACCESS(state, saveNblock)= nblock;
   (package_BZLib__nextHeader__L0h0mx(
    state));
   goingandshit= (jboolean)(JCGO_FIELD_NZACCESS(state, nblockUsed) ==
    JCGO_FIELD_NZACCESS(state, saveNblock) + (jint)1 && JCGO_FIELD_NZACCESS(state,
    stateOutLen) == 0);
  }
 }
}

JCGO_NOSEP_STATIC jint CFASTCALL
package_BZLib__decompress__BAIBAII( jbyteArr out, jbyteArr in, jint
 outSize, jint inSize, jint offset )
{
 {
  package_BZState block;
  struct package_BZState_s jcgo_stackobj1;
  block= package_BZState__this__(
   JCGO_STACKOBJ_NEW(jcgo_stackobj1, package_BZState_methods));
  JCGO_FIELD_NZACCESS(block, input)= in;
  JCGO_FIELD_NZACCESS(block, nextIn)= offset;
  JCGO_FIELD_NZACCESS(block, output)= out;
  JCGO_FIELD_NZACCESS(block, availOut)= 0;
  JCGO_FIELD_NZACCESS(block, availIn)= inSize;
  JCGO_FIELD_NZACCESS(block, decompressedSize)= outSize;
  JCGO_FIELD_NZACCESS(block, bsLive)= 0;
  JCGO_FIELD_NZACCESS(block, bsBuff)= 0;
  JCGO_FIELD_NZACCESS(block, totalInLo32)= 0;
  JCGO_FIELD_NZACCESS(block, totalInHi32)= 0;
  JCGO_FIELD_NZACCESS(block, totalOutLo32)= 0;
  JCGO_FIELD_NZACCESS(block, totalOutHi32)= 0;
  JCGO_FIELD_NZACCESS(block, blockNo)= 0;
  (package_BZLib__decompress__L0h0mx(
   block));
  outSize-= JCGO_FIELD_NZACCESS(block, decompressedSize);
  return outSize;
 }
}

JCGO_NOSEP_STATIC jint CFASTCALL
package_BZLib__getBits__IL0h0mx( package_BZState state, jint i )
{
 {
  jint vvv;
  do
  {
   if (JCGO_FIELD_ACCESS(package_BZState, state, bsLive) >= i)
   {
    jint v;
    v= JCGO_SHR_F(JCGO_FIELD_NZACCESS(state, bsBuff), JCGO_FIELD_NZACCESS(state,
     bsLive) - i) & (JCGO_SHL_F((jint)1, i) - (jint)1);
    JCGO_FIELD_NZACCESS(state, bsLive)-= i;
    vvv= v;
    break;
   }
   JCGO_FIELD_NZACCESS(state, bsBuff)= JCGO_SHL_F(JCGO_FIELD_NZACCESS(state,
    bsBuff), (jint)8) | ((jint)((unsigned char)(JCGO_ARRAY_BACCESS(JCGO_FIELD_NZACCESS(state,
    input), JCGO_FIELD_NZACCESS(state, nextIn)))));
   JCGO_FIELD_NZACCESS(state, bsLive)+= (jint)8;
   JCGO_FIELD_NZACCESS(state, nextIn)++;
   JCGO_FIELD_NZACCESS(state, availIn)--;
   JCGO_FIELD_NZACCESS(state, totalInLo32)++;
   if (JCGO_FIELD_NZACCESS(state, totalInLo32) == 0)
   {
    JCGO_FIELD_NZACCESS(state, totalInHi32)++;
   }
  }
   while (jtrue);
  return vvv;
 }
}

JCGO_NOSEP_STATIC package_BZLib CFASTCALL
package_BZLib__this__( package_BZLib This )
{
 {
  ;
 }
 return This;
}

JCGO_NOSEP_DATA CONST struct package_BZLib_methods_s package_BZLib_methods=
{
 JCGO_CLASSREF_OF(package_BZLib__class),
 JCGO_GCJDESCR_ZEROINIT
 OBJT_package_BZLib,
 -(JCGO_OBJSIZE_T)sizeof(struct package_BZLib_s),
 NULL,
 JCGO_CLINIT_INIT(0)
 package_BZLib__this__,
 java_lang_Object__equals__Lo,
 java_lang_Object__hashCode__,
 java_lang_Object__toString__,
 java_lang_Object__finalize__
};

JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct package_BZLib_class_s package_BZLib__class
 JCGO_THRD_ATTRNONGC=
{
 {
  &java_lang_Class_methods,
  JCGO_MON_INIT
  JCGO_OBJREF_OF(*(java_lang_Object)&package_BZLib_methods),
  JCGO_STRREF_OF(jcgo_string1_BZLib),
  JCGO_CLASSREF_OF(java_lang_Object__class),
  ((jObjectArr)JCGO_OBJREF_OF(jcgo_array3_Object)),
  0x1
 }
};

JCGO_NOSEP_DATA CONST jcgo_arrtype30_Object jcgo_array4_BZLib=
{
 (jvtable)&jbyteArr_methods,
 JCGO_MON_INIT
 5,
 {
  (jbyte)(jchar)66/*'B'*/, (jbyte)(jchar)90/*'Z'*/, (jbyte)(jchar)76/*'L'*/,
   (jbyte)(jchar)105/*'i'*/, (jbyte)(jchar)98/*'b'*/
 }
};

JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_lang_String_s jcgo_string1_BZLib
 JCGO_THRD_ATTRNONGC=
{
 &java_lang_String_methods,
 JCGO_MON_INIT
 (java_lang_Object)JCGO_OBJREF_OF(jcgo_array4_BZLib),
 0, 5, (jint)0x3cc230dL
};

JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_lang_String_s jcgo_string3_BZLib
 JCGO_THRD_ATTRNONGC=
{
 &java_lang_String_methods,
 JCGO_MON_INIT
 (java_lang_Object)JCGO_OBJREF_OF(jcgo_array463_VMSstmPr),
 0, 24, (jint)0x90172b72L
};

#ifdef CHKALL_BZLib
#include "jcgochke.h"
#endif

#endif
