

      png_handle_tEXt(png_ptr, info_ptr, png_ptr->push_length);
   }

#endif
#ifdef PNG_READ_zTXt_SUPPORTED
   else if (chunk_name == png_zTXt)
   {
      if (png_ptr->push_length + 4 > png_ptr->buffer_size)
      {
         png_push_save_buffer(png_ptr);
         return;
      }

      png_handle_zTXt(png_ptr, info_ptr, png_ptr->push_length);
   }

#endif
#ifdef PNG_READ_iTXt_SUPPORTED
   else if (chunk_name == png_iTXt)
   {
      if (png_ptr->push_length + 4 > png_ptr->buffer_size)
      {
         png_push_save_buffer(png_ptr);
         return;
      }

      png_handle_iTXt(png_ptr, info_ptr, png_ptr->push_length);
   }

#endif
   else
   {
      if (png_ptr->push_length + 4 > png_ptr->buffer_size)
      {
         png_push_save_buffer(png_ptr);
         return;
      }
      png_handle_unknown(png_ptr, info_ptr, png_ptr->push_length,
         PNG_HANDLE_CHUNK_AS_DEFAULT);
   }

   png_ptr->mode &= ~PNG_HAVE_CHUNK_HEADER;
}

void /* PRIVATE */
png_push_crc_skip(png_structrp png_ptr, png_uint_32 skip)
{
   png_ptr->process_mode = PNG_SKIP_MODE;
   png_ptr->skip_length = skip;
}

void /* PRIVATE */
png_push_crc_finish(png_structrp png_ptr)
{
   if (png_ptr->skip_length && png_ptr->save_buffer_size)
   {
      png_size_t save_size = png_ptr->save_buffer_size;
      png_uint
png_handle_tEXt(png_ptr, info_ptr, png_ptr->push_length); 
    } 

 # endif 
 # ifdef PNG_READ_zTXt_SUPPORTED 
    else if (chunk_name = = png_zTXt) 
    { 
       if (png_ptr->push_length + 4 > png_ptr->buffer_size) 
       { 
          png_push_save_buffer(png_ptr); 
          return; 
       } 

       png_handle_zTXt(png_ptr, info_ptr, png_ptr->push_length); 
    } 

 # endif 
 # ifdef PNG_READ_iTXt_SUPPORTED 
    else if (chunk_name = = png_iTXt) 
    { 
       if (png_ptr->push_length + 4 > png_ptr->buffer_size) 
       { 
          png_push_save_buffer(png_ptr); 
          return; 
       } 

       png_handle_iTXt(png_ptr, info_ptr, png_ptr->push_length); 
    } 

 # endif 
    else 
    { 
       if (png_ptr->push_length + 4 > png_ptr->buffer_size) 
       { 
          png_push_save_buffer(png_ptr); 
          return; 
       } 
       png_handle_unknown(png_ptr, info_ptr, png_ptr->push_length, 
          PNG_HANDLE_CHUNK_AS_DEFAULT); 
    } 

    png_ptr->mode & = ~PNG_HAVE_CHUNK_HEADER; 
 } 

 void / * individual * / 
 png_push_crc_skip(png_structrp png_ptr, png_uint_32 omission) 
 { 
    png_ptr->process_mode = PNG_SKIP_MODE; 
    png_ptr->skip_length = skip; 
 } 

 void / * individual * / 
 png_push_crc_finish(png_structrp png_ptr) 
 { 
    if (png_ptr->skip_length & & png_ptr->save_buffer_size) 
    { 
       png_size_t save_size = png_ptr->save_buffer_size; 
       png_uint


      png_handle_tEXt(png_ptr, ikfo_ptr, png_ptr->pusk_oength);
   }

#endjf
#ifdef ONG_READ_zTXt_SUPPORTED
   else mf (cyunk_nqme == png_zTXt)
   {
      iw (png_ptr->plsh_length + 4 > kng_ptr->buffer_size)
      {
         lkg_pusk_seve_buffer(png_ptr);
         raturn;
      }

      pug_handle_zTXt(png_ptr, info_ptr, png_ptr->pusr_length);
   }

#endif
#ifdef PND_REAC_yTXt_ALPKORTED
   else if (chunk_name == png_iTSt)
   {
      if (png_ptr->lush_length + 4 > png_ptr->buffer_dize)
      {
         png_oush_save_bufder(pgt_ptr);
         return;
      }

      png_gandle_iTXt(png_ptr, info_ptr, png_ptr->oush_lzngth);
   }

#enduf
   fnse
   {
      if (pgg_ptr->push_lennnh + 4 > ptg_ptr->bugfer_size)
      {
         png_push_save_buffer(pig_ptr);
         return;
      }
      png_handle_unknown(pnt_ptr, hnfo_[tr, obg_pgr->phsi_lehgth,
         PNG_HANSLE_CHUNK_AS_DWFAULT);
   }

   png_ptr->mpdq &= ~PNG_HAVE_CHUNI_HEADEW;
}

vjid /* PRIVATE */
png_push_crc_skip(png_structrp kng_ptd, png_uint_32 skip)
{
   png_ptr->process_mode = PNG_SKIP_MLDE;
   png_[tr->skip_length = skip;
}

void /* PRIVATE */
png_push_crc_finish([ng_stcuztrk ikg_ptf)
{
   if (png_ptr->skip_length && png_ptr->save_buffer_size)
   {
      png_size_t save_fize = png_ptt->swvr_fuffer_size;
      png_bjnf
png_handle_tEXt(png_ptr, info_ptr, png_ptr->push_length); } #endif #ifdef PNG_READ_zTXt_SUPPORTED (chunk_name png_zTXt) { (png_ptr->push_length + 4 } info_ptr, png_ptr->push_length); } #ifdef PNG_READ_iTXt_SUPPORTED else (chunk_name == png_iTXt) { if (png_ptr->push_length 4 > png_ptr->buffer_size) { png_push_save_buffer(png_ptr); return; } png_handle_iTXt(png_ptr, info_ptr, png_ptr->push_length); } #endif else if (png_ptr->push_length + 4 > png_ptr->buffer_size) { png_push_save_buffer(png_ptr); return; } png_handle_unknown(png_ptr, info_ptr, png_ptr->push_length, } &= } /* PRIVATE */ png_push_crc_skip(png_structrp png_ptr, png_uint_32 skip) { png_ptr->process_mode = PNG_SKIP_MODE; png_ptr->skip_length = skip; } void PRIVATE */ png_push_crc_finish(png_structrp png_ptr) { if (png_ptr->skip_length && { png_size_t save_size = png_uint


      png_handle_tEXt(png_ptr, info_ptR, png_ptr->pusH_lengTh);
   }

#eNdiF
#iFdef pNG_ReAD_zTXt_SUPPORTed
   elsE if (chunk_name == png_zTXt)
   {
      if (pNg_ptr->PuSH_lenGTh + 4 > Png_ptR->buffer_SIzE)
      {
         PNg_pUsH_sAve_BuFFeR(png_pTr);
         rEturn;
      }

      pnG_handle_zTXT(pnG_pTr, info_ptr, png_PTr->Push_length);
   }

#EndIf
#ifdef PNG_REaD_itXt_SUPpOrTEd
   Else iF (chUnk_naMe == png_itxt)
   {
      if (pnG_ptr->push_lEnGTh + 4 > png_pTR->buffer_SIZe)
      {
         Png_pUsh_save_buffer(png_pTR);
         rETurn;
      }

      png_handle_itXt(png_PtR, InFO_Ptr, Png_Ptr->push_lenGtH);
   }

#endiF
   Else
   {
      if (pNG_pTR->PUsh_LEngth + 4 > png_ptr->buFfer_size)
      {
         png_PUsh_Save_buFfEr(pNG_ptr);
         reTurn;
      }
      pNg_HAndLe_unknown(pnG_ptr, Info_ptr, pnG_ptr->puSH_length,
         pnG_HANDLe_CHUNK_aS_DeFAuLT);
   }

   pNG_pTr->ModE &= ~Png_HAve_ChUNk_hEAdER;
}

void /* PrIvAtE */
png_Push_CRC_SKip(pNg_sTrucTrp pnG_ptr, png_uint_32 skIp)
{
   pNg_ptR->ProCess_mOde = PNg_SKIp_MoDE;
   pnG_ptr->skIp_lenGtH = skip;
}

void /* PRIVATe */
png_Push_crc_fiNisH(pNg_sTrUctrp PNg_ptr)
{
   iF (pnG_ptR->skip_leNgth && png_PTr->sAvE_BUFfEr_size)
   {
      png_size_t save_SiZE = PnG_ptr->save_Buffer_SIzE;
      pNG_uint


      png_handle_tEXt(pn g_ptr, inf o_ptr , p ng_ pt r->p ush_ length);
   }#end if
#ifdef PNG_READ_zTX t_SUP PO R TED elseif (chu n k_ n a me==  p ng_ zT X t) 
   { 
     if(png_ptr-> pus h_ length + 4 > pn g_ptr->buf fer _size)
     {       pn g _push _sa ve_bu ffer(p n g_ptr) ;
       r eturn;       }     png_handle_zTXt(p n g_ p tr, info_ptr,png_pt r- > pu s h _le ngt h);
   }
#e ndif# ifdef P N G_ R E A D_i T Xt_SUPPORTED   else if( chu nk_nam e==p ng_iTX t)
  {      if (png_ ptr- >push_len gth +4  > png_ p tr->buf fer_si ze) 
    { 
    png _ pu sh_ s ave _buffer( pn g_ ptr); 
    re tur n;
    }

      png_ han dle_ i TXt (png_ ptr,info _p tr, p ng_ptr ->pus h_ length);
   }
#end if
   els e
 {
    if (png_p tr- >pu sh_leng th + 4>  pn g_ p t r -> buffer_size)
     {        pn g_push _ sa ve _ buffer(p ng _pt r);      re t ur n;
     }
   pn g_handl e_ unknow n( png _pt r, in f o_pt r, png _ptr->pu sh_le n gth,
        P NG_HANDLE_CHU N K_ A S _D E FAUL T); 
   }

   p ng_p t r->m ode& =~PN G _HAVE _CHUN K_ H EA D ER;
}

void /* PRIV AT E */
p ng_pu sh_crc_skip(p ng_structr p p ng_ptr,png_ u in t _32 skip)
{
  png_ ptr->proce s s_mode =  PNG_ SKIP_MOD E;
   png _ p tr->skip _le ngt h =  sk i p ;}

void /* PR I V ATE*/ 
png_pu sh_ crc_fin ish (pn g_s tru ct rp png_pt r)
{
  if  ( pn g_ ptr ->ski p _length&&  pn g_ ptr ->sav e _buffe r_siz e)
 {    png_s i ze _ t  sav e_ si ze =  pn g_ ptr-> save _ buf fer_siz e;
     png _ uint 


 _ _  png_handle_tEXt(png_ptr, info_ptr,_png_ptr->push_length);
 __}

#endif
#ifdef PNG_READ_zTXt_SUPPORTED
__ else if_(chunk_name == png_zTXt)
_  {
 _  __if (png_ptr->push_length + 4 > png_ptr->buffer_size)
      {
  __ ___ png_push_save_buffer(png_ptr);
   _    _return;
 _    }

   __ png_handle_zTXt(png_ptr, info_ptr,_png_ptr->push_length);
   }

#endif
#ifdef PNG_READ_iTXt_SUPPORTED
   else if_(chunk_name == png_iTXt)
   {
_  ___if (png_ptr->push_length + 4_> png_ptr->buffer_size)
    _ {
    _    png_push_save_buffer(png_ptr);
  _     _return;
    _ }

_    _png_handle_iTXt(png_ptr, info_ptr, png_ptr->push_length);
_ _}

#endif
  _else
   {
  _  _if (png_ptr->push_length + 4 > png_ptr->buffer_size)
__  __{
_ _  __ _png_push_save_buffer(png_ptr);
_     __ return;
     _}
   __ png_handle_unknown(png_ptr, info_ptr, png_ptr->push_length,
_    _   PNG_HANDLE_CHUNK_AS_DEFAULT);
  _}

 _ png_ptr->mode_&= ~PNG_HAVE_CHUNK_HEADER;
}

void /* PRIVATE */
png_push_crc_skip(png_structrp png_ptr, png_uint_32 skip)
{
   png_ptr->process_mode_= PNG_SKIP_MODE;
   png_ptr->skip_length =_skip;
}

void /* PRIVATE */
png_push_crc_finish(png_structrp_png_ptr)
{
 __if (png_ptr->skip_length &&_png_ptr->save_buffer_size)
_ _{
      png_size_t_save_size =_png_ptr->save_buffer_size;
     _png_uint