亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? infcodes.java

?? 著名的zlib 壓縮解壓縮庫的JAVA語言實現。
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
/* -*-mode:java; c-basic-offset:2; -*- *//*Copyright (c) 2000,2001,2002,2003 ymnk, JCraft,Inc. All rights reserved.Redistribution and use in source and binary forms, with or withoutmodification, are permitted provided that the following conditions are met:  1. Redistributions of source code must retain the above copyright notice,     this list of conditions and the following disclaimer.  2. Redistributions in binary form must reproduce the above copyright      notice, this list of conditions and the following disclaimer in      the documentation and/or other materials provided with the distribution.  3. The names of the authors may not be used to endorse or promote products     derived from this software without specific prior written permission.THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY ANDFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOTLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OFLIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDINGNEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *//* * This program is based on zlib-1.1.3, so all credit should go authors * Jean-loup Gailly(jloup@gzip.org) and Mark Adler(madler@alumni.caltech.edu) * and contributors of zlib. */package com.jcraft.jzlib;final class InfCodes{  static final private int[] inflate_mask = {    0x00000000, 0x00000001, 0x00000003, 0x00000007, 0x0000000f,    0x0000001f, 0x0000003f, 0x0000007f, 0x000000ff, 0x000001ff,    0x000003ff, 0x000007ff, 0x00000fff, 0x00001fff, 0x00003fff,    0x00007fff, 0x0000ffff  };  static final private int Z_OK=0;  static final private int Z_STREAM_END=1;  static final private int Z_NEED_DICT=2;  static final private int Z_ERRNO=-1;  static final private int Z_STREAM_ERROR=-2;  static final private int Z_DATA_ERROR=-3;  static final private int Z_MEM_ERROR=-4;  static final private int Z_BUF_ERROR=-5;  static final private int Z_VERSION_ERROR=-6;  // waiting for "i:"=input,  //             "o:"=output,  //             "x:"=nothing  static final private int START=0;  // x: set up for LEN  static final private int LEN=1;    // i: get length/literal/eob next  static final private int LENEXT=2; // i: getting length extra (have base)  static final private int DIST=3;   // i: get distance next  static final private int DISTEXT=4;// i: getting distance extra  static final private int COPY=5;   // o: copying bytes in window, waiting for space  static final private int LIT=6;    // o: got literal, waiting for output space  static final private int WASH=7;   // o: got eob, possibly still output waiting  static final private int END=8;    // x: got eob and all data flushed  static final private int BADCODE=9;// x: got error  int mode;      // current inflate_codes mode  // mode dependent information  int len;  int[] tree; // pointer into tree  int tree_index=0;  int need;   // bits needed  int lit;  // if EXT or COPY, where and how much  int get;              // bits to get for extra  int dist;             // distance back to copy from  byte lbits;           // ltree bits decoded per branch  byte dbits;           // dtree bits decoder per branch  int[] ltree;          // literal/length/eob tree  int ltree_index;      // literal/length/eob tree  int[] dtree;          // distance tree  int dtree_index;      // distance tree  InfCodes(){  }  void init(int bl, int bd,	   int[] tl, int tl_index,	   int[] td, int td_index, ZStream z){    mode=START;    lbits=(byte)bl;    dbits=(byte)bd;    ltree=tl;    ltree_index=tl_index;    dtree = td;    dtree_index=td_index;    tree=null;  }  int proc(InfBlocks s, ZStream z, int r){     int j;              // temporary storage    int[] t;            // temporary pointer    int tindex;         // temporary pointer    int e;              // extra bits or operation    int b=0;            // bit buffer    int k=0;            // bits in bit buffer    int p=0;            // input data pointer    int n;              // bytes available there    int q;              // output window write pointer    int m;              // bytes to end of window or read pointer    int f;              // pointer to copy strings from    // copy input/output information to locals (UPDATE macro restores)    p=z.next_in_index;n=z.avail_in;b=s.bitb;k=s.bitk;    q=s.write;m=q<s.read?s.read-q-1:s.end-q;    // process input and output based on current state    while (true){      switch (mode){	// waiting for "i:"=input, "o:"=output, "x:"=nothing      case START:         // x: set up for LEN	if (m >= 258 && n >= 10){	  s.bitb=b;s.bitk=k;	  z.avail_in=n;z.total_in+=p-z.next_in_index;z.next_in_index=p;	  s.write=q;	  r = inflate_fast(lbits, dbits, 			   ltree, ltree_index, 			   dtree, dtree_index,			   s, z);	  p=z.next_in_index;n=z.avail_in;b=s.bitb;k=s.bitk;	  q=s.write;m=q<s.read?s.read-q-1:s.end-q;	  if (r != Z_OK){	    mode = r == Z_STREAM_END ? WASH : BADCODE;	    break;	  }	}	need = lbits;	tree = ltree;	tree_index=ltree_index;	mode = LEN;      case LEN:           // i: get length/literal/eob next	j = need;	while(k<(j)){	  if(n!=0)r=Z_OK;	  else{	    s.bitb=b;s.bitk=k;	    z.avail_in=n;z.total_in+=p-z.next_in_index;z.next_in_index=p;	    s.write=q;	    return s.inflate_flush(z,r);	  }	  n--;	  b|=(z.next_in[p++]&0xff)<<k;	  k+=8;	}	tindex=(tree_index+(b&inflate_mask[j]))*3;	b>>>=(tree[tindex+1]);	k-=(tree[tindex+1]);	e=tree[tindex];	if(e == 0){               // literal	  lit = tree[tindex+2];	  mode = LIT;	  break;	}	if((e & 16)!=0 ){          // length	  get = e & 15;	  len = tree[tindex+2];	  mode = LENEXT;	  break;	}	if ((e & 64) == 0){        // next table	  need = e;	  tree_index = tindex/3+tree[tindex+2];	  break;	}	if ((e & 32)!=0){               // end of block	  mode = WASH;	  break;	}	mode = BADCODE;        // invalid code	z.msg = "invalid literal/length code";	r = Z_DATA_ERROR;	s.bitb=b;s.bitk=k;	z.avail_in=n;z.total_in+=p-z.next_in_index;z.next_in_index=p;	s.write=q;	return s.inflate_flush(z,r);      case LENEXT:        // i: getting length extra (have base)	j = get;	while(k<(j)){	  if(n!=0)r=Z_OK;	  else{	    s.bitb=b;s.bitk=k;	    z.avail_in=n;z.total_in+=p-z.next_in_index;z.next_in_index=p;	    s.write=q;	    return s.inflate_flush(z,r);	  }	  n--; b|=(z.next_in[p++]&0xff)<<k;	  k+=8;	}	len += (b & inflate_mask[j]);	b>>=j;	k-=j;	need = dbits;	tree = dtree;	tree_index=dtree_index;	mode = DIST;      case DIST:          // i: get distance next	j = need;	while(k<(j)){	  if(n!=0)r=Z_OK;	  else{	    s.bitb=b;s.bitk=k;	    z.avail_in=n;z.total_in+=p-z.next_in_index;z.next_in_index=p;	    s.write=q;	    return s.inflate_flush(z,r);	  }	  n--; b|=(z.next_in[p++]&0xff)<<k;	  k+=8;	}	tindex=(tree_index+(b & inflate_mask[j]))*3;	b>>=tree[tindex+1];	k-=tree[tindex+1];	e = (tree[tindex]);	if((e & 16)!=0){               // distance	  get = e & 15;	  dist = tree[tindex+2];	  mode = DISTEXT;	  break;	}	if ((e & 64) == 0){        // next table	  need = e;	  tree_index = tindex/3 + tree[tindex+2];	  break;	}	mode = BADCODE;        // invalid code	z.msg = "invalid distance code";	r = Z_DATA_ERROR;	s.bitb=b;s.bitk=k;	z.avail_in=n;z.total_in+=p-z.next_in_index;z.next_in_index=p;	s.write=q;	return s.inflate_flush(z,r);      case DISTEXT:       // i: getting distance extra	j = get;	while(k<(j)){	  if(n!=0)r=Z_OK;	  else{	    s.bitb=b;s.bitk=k;	    z.avail_in=n;z.total_in+=p-z.next_in_index;z.next_in_index=p;	    s.write=q;	    return s.inflate_flush(z,r);	  }	  n--; b|=(z.next_in[p++]&0xff)<<k;	  k+=8;	}	dist += (b & inflate_mask[j]);	b>>=j;	k-=j;	mode = COPY;      case COPY:          // o: copying bytes in window, waiting for space        f = q - dist;        while(f < 0){     // modulo window size-"while" instead          f += s.end;     // of "if" handles invalid distances	}	while (len!=0){	  if(m==0){	    if(q==s.end&&s.read!=0){q=0;m=q<s.read?s.read-q-1:s.end-q;}	    if(m==0){

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美中文在线| 国产精品久久久久一区二区三区 | 久久久久久久电影| 国产一区二区h| 亚洲国产精品成人久久综合一区| www.日韩av| 亚洲精品成人精品456| 欧美日韩一区二区三区免费看| 无码av免费一区二区三区试看| 日韩欧美一区二区不卡| 国产成人一区在线| 亚洲婷婷综合色高清在线| 91亚洲资源网| 午夜欧美在线一二页| 精品三级在线看| 国产91富婆露脸刺激对白| 一区二区三区四区不卡视频 | 欧美一级黄色片| 国产精品一区三区| 亚洲三级免费电影| 日本一区二区成人| 蜜臀久久99精品久久久久宅男| xf在线a精品一区二区视频网站| 国产不卡视频一区二区三区| 亚洲黄色录像片| 日韩午夜精品电影| 成人国产视频在线观看| 亚洲国产精品久久艾草纯爱| 精品国产乱子伦一区| 91碰在线视频| 开心九九激情九九欧美日韩精美视频电影| 欧美极品少妇xxxxⅹ高跟鞋 | 国产激情91久久精品导航| 亚洲精品精品亚洲| 精品日韩99亚洲| 色婷婷狠狠综合| 另类小说色综合网站| 国产精品成人免费| 欧美一区二区三区系列电影| 成人性色生活片免费看爆迷你毛片| 亚洲图片自拍偷拍| 国产欧美日韩精品在线| 欧美日韩综合在线| 粉嫩aⅴ一区二区三区四区五区| 亚洲va韩国va欧美va精品| 国产亚洲成年网址在线观看| 欧美亚洲高清一区| 96av麻豆蜜桃一区二区| 美女国产一区二区三区| 亚洲男人电影天堂| 国产午夜三级一区二区三| 欧美视频一区二区在线观看| 国模冰冰炮一区二区| 国产精品久久久久久久久久久免费看 | 久久成人18免费观看| 亚洲欧美日韩中文播放| 日韩视频国产视频| 99国产精品久久久久| 久久99精品国产91久久来源| 一区二区日韩电影| 中文字幕巨乱亚洲| 日韩欧美一二三| 在线观看欧美精品| 国产iv一区二区三区| 免费在线观看精品| 亚洲午夜精品网| 一区视频在线播放| 久久久三级国产网站| 3d成人动漫网站| 欧美在线免费观看亚洲| www.亚洲色图| 国产精品自拍一区| 蜜桃av一区二区| 亚洲成人av在线电影| 亚洲色图清纯唯美| 国产精品视频你懂的| 欧美日韩国产首页在线观看| 91蜜桃网址入口| 成人福利视频网站| 欧洲av一区二区嗯嗯嗯啊| 久草在线在线精品观看| 婷婷久久综合九色国产成人 | 99久久精品免费看| 国产成人无遮挡在线视频| 美女高潮久久久| 青青青爽久久午夜综合久久午夜| 一区二区三区成人| 日韩一区欧美一区| 国产精品午夜在线| 久久久国产一区二区三区四区小说 | 国产精品日韩精品欧美在线| 久久这里只有精品首页| 日韩一区二区三区在线视频| 欧美日韩国产精选| 欧美日韩中文字幕精品| 在线欧美一区二区| 91老师国产黑色丝袜在线| 99天天综合性| 99视频精品免费视频| 99免费精品在线观看| www.激情成人| 99久久国产免费看| 成人app软件下载大全免费| 国产91在线观看丝袜| 国产suv精品一区二区三区| 国产精品综合一区二区三区| 国产一区二区免费在线| 麻豆精品在线看| 日韩欧美国产成人一区二区| 老司机一区二区| 久久se这里有精品| 激情久久久久久久久久久久久久久久| 久久精品国产77777蜜臀| 麻豆精品在线观看| 精品一区二区免费视频| 久久不见久久见免费视频7| 九一久久久久久| 国产成人夜色高潮福利影视| 东方aⅴ免费观看久久av| 成人app网站| 色综合久久中文综合久久牛| 在线观看亚洲一区| 欧美日韩免费视频| 日韩一区二区三区在线| 日韩视频一区在线观看| 26uuu亚洲综合色| 国产日韩欧美精品一区| 中文字幕日韩一区二区| 亚洲精品乱码久久久久久| 亚洲一级不卡视频| 男人的天堂亚洲一区| 韩国女主播一区| 成人美女视频在线观看18| 91在线你懂得| 欧美色爱综合网| 欧美一区二区三区男人的天堂| 欧美一区二区三区视频免费| 久久老女人爱爱| 中文字幕中文乱码欧美一区二区| 亚洲精品乱码久久久久| 午夜精品久久久久久久久久| 久久99久久久欧美国产| 成人a级免费电影| 在线观看视频一区二区欧美日韩| 91精品国产综合久久精品性色| 精品国产麻豆免费人成网站| 中文字幕不卡在线观看| 一区二区三区丝袜| 日本免费在线视频不卡一不卡二| 国产一区999| 色偷偷一区二区三区| 91精品国产综合久久久蜜臀粉嫩| 久久久久久久综合色一本| 亚洲男人的天堂在线观看| 日韩—二三区免费观看av| 国产99久久久国产精品| 欧美日韩一区三区| 久久久久久免费| 亚洲高清在线精品| 国产成人免费视频一区| 欧美性大战久久久| 26uuu亚洲婷婷狠狠天堂| 亚洲卡通欧美制服中文| 麻豆免费看一区二区三区| 97se亚洲国产综合自在线| 日韩一级免费观看| 亚洲欧美在线aaa| 麻豆国产精品一区二区三区| 91蝌蚪porny成人天涯| 欧美成人video| 悠悠色在线精品| 精品午夜一区二区三区在线观看| 色综合久久久久综合99| 精品久久久影院| 亚洲一区二区欧美日韩| 国产精品资源在线看| 欧美亚洲日本国产| 中文av一区特黄| 男人的天堂亚洲一区| 色哟哟亚洲精品| 国产欧美精品区一区二区三区 | 亚洲免费观看高清完整版在线观看| 日本v片在线高清不卡在线观看| 国产在线观看免费一区| 欧美日本国产视频| 国产精品久久影院| 老司机免费视频一区二区三区| 在线观看日韩av先锋影音电影院| 久久久久国色av免费看影院| 日韩经典一区二区| 99精品视频在线观看| 久久久电影一区二区三区| 日韩不卡手机在线v区| 91麻豆精品视频| 国产肉丝袜一区二区| 免费人成在线不卡| 欧美视频在线观看一区| 亚洲人精品午夜| 国产乱对白刺激视频不卡| 欧美一级精品大片|