-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathgif.worker.js
322 lines (321 loc) · 24.5 KB
/
gif.worker.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
//(function(b){function a(b,d){if({}.hasOwnProperty.call(a.cache,b))return a.cache[b];var e=a.resolve(b);if(!e)throw new Error('Failed to resolve module '+b);var c={id:b,require:a,filename:b,exports:{},loaded:!1,parent:d,children:[]};d&&d.children.push(c);var f=b.slice(0,b.lastIndexOf('/')+1);return a.cache[b]=c.exports,e.call(c.exports,c,c.exports,f,b),c.loaded=!0,a.cache[b]=c.exports}a.modules={},a.cache={},a.resolve=function(b){return{}.hasOwnProperty.call(a.modules,b)?a.modules[b]:void 0},a.define=function(b,c){a.modules[b]=c},a.define('/gif.worker.coffee',function(d,e,f,g){var b,c;b=a('/GIFEncoder.js',d),c=function(a){var c,e,d,f;return c=new b(a.width,a.height),a.index===0?c.writeHeader():c.firstFrame=!1,c.setTransparent(a.transparent),c.setRepeat(a.repeat),c.setDelay(a.delay),c.setQuality(a.quality),c.addFrame(a.data),a.last&&c.finish(),d=c.stream(),a.data=d.pages,a.cursor=d.cursor,a.pageSize=d.constructor.pageSize,a.canTransfer?(f=function(c){for(var b=0,d=a.data.length;b<d;++b)e=a.data[b],c.push(e.buffer);return c}.call(this,[]),self.postMessage(a,f)):self.postMessage(a)},self.onmessage=function(a){return c(a.data)}}),a.define('/GIFEncoder.js',function(e,h,i,j){function c(){this.page=-1,this.pages=[],this.newPage()}function b(a,b){this.width=~~a,this.height=~~b,this.transparent=null,this.transIndex=0,this.repeat=-1,this.delay=0,this.image=null,this.pixels=null,this.indexedPixels=null,this.colorDepth=null,this.colorTab=null,this.usedEntry=new Array,this.palSize=7,this.dispose=-1,this.firstFrame=!0,this.sample=10,this.out=new c}var f=a('/TypedNeuQuant.js',e),g=a('/LZWEncoder.js',e);c.pageSize=4096,c.charMap={};for(var d=0;d<256;d++)c.charMap[d]=String.fromCharCode(d);c.prototype.newPage=function(){this.pages[++this.page]=new Uint8Array(c.pageSize),this.cursor=0},c.prototype.getData=function(){var d='';for(var a=0;a<this.pages.length;a++)for(var b=0;b<c.pageSize;b++)d+=c.charMap[this.pages[a][b]];return d},c.prototype.writeByte=function(a){this.cursor>=c.pageSize&&this.newPage(),this.pages[this.page][this.cursor++]=a},c.prototype.writeUTFBytes=function(b){for(var c=b.length,a=0;a<c;a++)this.writeByte(b.charCodeAt(a))},c.prototype.writeBytes=function(b,d,e){for(var c=e||b.length,a=d||0;a<c;a++)this.writeByte(b[a])},b.prototype.setDelay=function(a){this.delay=Math.round(a/10)},b.prototype.setFrameRate=function(a){this.delay=Math.round(100/a)},b.prototype.setDispose=function(a){a>=0&&(this.dispose=a)},b.prototype.setRepeat=function(a){this.repeat=a},b.prototype.setTransparent=function(a){this.transparent=a},b.prototype.addFrame=function(a){this.image=a,this.getImagePixels(),this.analyzePixels(),this.firstFrame&&(this.writeLSD(),this.writePalette(),this.repeat>=0&&this.writeNetscapeExt()),this.writeGraphicCtrlExt(),this.writeImageDesc(),this.firstFrame||this.writePalette(),this.writePixels(),this.firstFrame=!1},b.prototype.finish=function(){this.out.writeByte(59)},b.prototype.setQuality=function(a){a<1&&(a=1),this.sample=a},b.prototype.writeHeader=function(){this.out.writeUTFBytes('GIF89a')},b.prototype.analyzePixels=function(){var g=this.pixels.length,d=g/3;this.indexedPixels=new Uint8Array(d);var a=new f(this.pixels,this.sample);a.buildColormap(),this.colorTab=a.getColormap();var b=0;for(var c=0;c<d;c++){var e=a.lookupRGB(this.pixels[b++]&255,this.pixels[b++]&255,this.pixels[b++]&255);this.usedEntry[e]=!0,this.indexedPixels[c]=e}this.pixels=null,this.colorDepth=8,this.palSize=7,this.transparent!==null&&(this.transIndex=this.findClosest(this.transparent))},b.prototype.findClosest=function(e){if(this.colorTab===null)return-1;var k=(e&16711680)>>16,l=(e&65280)>>8,m=e&255,c=0,d=16777216,j=this.colorTab.length;for(var a=0;a<j;){var f=k-(this.colorTab[a++]&255),g=l-(this.colorTab[a++]&255),h=m-(this.colorTab[a]&255),i=f*f+g*g+h*h,b=parseInt(a/3);this.usedEntry[b]&&i<d&&(d=i,c=b),a++}return c},b.prototype.getImagePixels=function(){var a=this.width,g=this.height;this.pixels=new Uint8Array(a*g*3);var b=this.image,c=0;for(var d=0;d<g;d++)for(var e=0;e<a;e++){var f=d*a*4+e*4;this.pixels[c++]=b[f],this.pixels[c++]=b[f+1],this.pixels[c++]=b[f+2]}},b.prototype.writeGraphicCtrlExt=function(){this.out.writeByte(33),this.out.writeByte(249),this.out.writeByte(4);var b,a;this.transparent===null?(b=0,a=0):(b=1,a=2),this.dispose>=0&&(a=dispose&7),a<<=2,this.out.writeByte(0|a|0|b),this.writeShort(this.delay),this.out.writeByte(this.transIndex),this.out.writeByte(0)},b.prototype.writeImageDesc=function(){this.out.writeByte(44),this.writeShort(0),this.writeShort(0),this.writeShort(this.width),this.writeShort(this.height),this.firstFrame?this.out.writeByte(0):this.out.writeByte(128|this.palSize)},b.prototype.writeLSD=function(){this.writeShort(this.width),this.writeShort(this.height),this.out.writeByte(240|this.palSize),this.out.writeByte(0),this.out.writeByte(0)},b.prototype.writeNetscapeExt=function(){this.out.writeByte(33),this.out.writeByte(255),this.out.writeByte(11),this.out.writeUTFBytes('NETSCAPE2.0'),this.out.writeByte(3),this.out.writeByte(1),this.writeShort(this.repeat),this.out.writeByte(0)},b.prototype.writePalette=function(){this.out.writeBytes(this.colorTab);var b=768-this.colorTab.length;for(var a=0;a<b;a++)this.out.writeByte(0)},b.prototype.writeShort=function(a){this.out.writeByte(a&255),this.out.writeByte(a>>8&255)},b.prototype.writePixels=function(){var a=new g(this.width,this.height,this.indexedPixels,this.colorDepth);a.encode(this.out)},b.prototype.stream=function(){return this.out},e.exports=b}),a.define('/LZWEncoder.js',function(e,g,h,i){function f(y,D,C,B){function w(a,b){r[f++]=a,f>=254&&t(b)}function x(b){u(a),k=i+2,j=!0,l(i,b)}function u(b){for(var a=0;a<b;++a)h[a]=-1}function A(z,r){var g,t,d,e,y,w,s;for(q=z,j=!1,n_bits=q,m=p(n_bits),i=1<<z-1,o=i+1,k=i+2,f=0,e=v(),s=0,g=a;g<65536;g*=2)++s;s=8-s,w=a,u(w),l(i,r);a:while((t=v())!=c){if(g=(t<<b)+e,d=t<<s^e,h[d]===g){e=n[d];continue}if(h[d]>=0){y=w-d,d===0&&(y=1);do if((d-=y)<0&&(d+=w),h[d]===g){e=n[d];continue a}while(h[d]>=0)}l(e,r),e=t,k<1<<b?(n[d]=k++,h[d]=g):x(r)}l(e,r),l(o,r)}function z(a){a.writeByte(s),remaining=y*D,curPixel=0,A(s+1,a),a.writeByte(0)}function t(a){f>0&&(a.writeByte(f),a.writeBytes(r,0,f),f=0)}function p(a){return(1<<a)-1}function v(){if(remaining===0)return c;--remaining;var a=C[curPixel++];return a&255}function l(a,c){g&=d[e],e>0?g|=a<<e:g=a,e+=n_bits;while(e>=8)w(g&255,c),g>>=8,e-=8;if((k>m||j)&&(j?(m=p(n_bits=q),j=!1):(++n_bits,n_bits==b?m=1<<b:m=p(n_bits))),a==o){while(e>0)w(g&255,c),g>>=8,e-=8;t(c)}}var s=Math.max(2,B),r=new Uint8Array(256),h=new Int32Array(a),n=new Int32Array(a),g,e=0,f,k=0,m,j=!1,q,i,o;this.encode=z}var c=-1,b=12,a=5003,d=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535];e.exports=f}),a.define('/TypedNeuQuant.js',function(A,F,E,D){function C(A,B){function I(){o=[],q=new Int32Array(256),t=new Int32Array(a),y=new Int32Array(a),z=new Int32Array(a>>3);var c,d;for(c=0;c<a;c++)d=(c<<b+8)/a,o[c]=new Float64Array([d,d,d,0]),y[c]=e/a,t[c]=0}function J(){for(var c=0;c<a;c++)o[c][0]>>=b,o[c][1]>>=b,o[c][2]>>=b,o[c][3]=c}function K(b,a,c,e,f){o[a][0]-=b*(o[a][0]-c)/d,o[a][1]-=b*(o[a][1]-e)/d,o[a][2]-=b*(o[a][2]-f)/d}function L(j,e,n,l,k){var h=Math.abs(e-j),i=Math.min(e+j,a),g=e+1,f=e-1,m=1,b,d;while(g<i||f>h)d=z[m++],g<i&&(b=o[g++],b[0]-=d*(b[0]-n)/c,b[1]-=d*(b[1]-l)/c,b[2]-=d*(b[2]-k)/c),f>h&&(b=o[f--],b[0]-=d*(b[0]-n)/c,b[1]-=d*(b[1]-l)/c,b[2]-=d*(b[2]-k)/c)}function C(p,s,q){var h=2147483647,k=h,d=-1,m=d,c,j,e,n,l;for(c=0;c<a;c++)j=o[c],e=Math.abs(j[0]-p)+Math.abs(j[1]-s)+Math.abs(j[2]-q),e<h&&(h=e,d=c),n=e-(t[c]>>i-b),n<k&&(k=n,m=c),l=y[c]>>g,y[c]-=l,t[c]+=l<<f;return y[d]+=x,t[d]-=r,m}function D(){var d,b,e,c,h,g,f=0,i=0;for(d=0;d<a;d++){for(e=o[d],h=d,g=e[1],b=d+1;b<a;b++)c=o[b],c[1]<g&&(h=b,g=c[1]);if(c=o[h],d!=h&&(b=c[0],c[0]=e[0],e[0]=b,b=c[1],c[1]=e[1],e[1]=b,b=c[2],c[2]=e[2],e[2]=b,b=c[3],c[3]=e[3],e[3]=b),g!=f){for(q[f]=i+d>>1,b=f+1;b<g;b++)q[b]=d;f=g,i=d}}for(q[f]=i+n>>1,b=f+1;b<256;b++)q[b]=n}function E(j,i,k){var b,d,c,e=1e3,h=-1,f=q[i],g=f-1;while(f<a||g>=0)f<a&&(d=o[f],c=d[1]-i,c>=e?f=a:(f++,c<0&&(c=-c),b=d[0]-j,b<0&&(b=-b),c+=b,c<e&&(b=d[2]-k,b<0&&(b=-b),c+=b,c<e&&(e=c,h=d[3])))),g>=0&&(d=o[g],c=i-d[1],c>=e?g=-1:(g--,c<0&&(c=-c),b=d[0]-j,b<0&&(b=-b),c+=b,c<e&&(b=d[2]-k,b<0&&(b=-b),c+=b,c<e&&(e=c,h=d[3]))));return h}function F(){var c,f=A.length,D=30+(B-1)/3,y=f/(3*B),q=~~(y/w),n=d,o=u,a=o>>h;for(a<=1&&(a=0),c=0;c<a;c++)z[c]=n*((a*a-c*c)*m/(a*a));var i;f<s?(B=1,i=3):f%l!==0?i=3*l:f%k!==0?i=3*k:f%p!==0?i=3*p:i=3*j;var r,t,x,e,g=0;c=0;while(c<y)if(r=(A[g]&255)<<b,t=(A[g+1]&255)<<b,x=(A[g+2]&255)<<b,e=C(r,t,x),K(n,e,r,t,x),a!==0&&L(a,e,r,t,x),g+=i,g>=f&&(g-=f),c++,q===0&&(q=1),c%q===0)for(n-=n/D,o-=o/v,a=o>>h,a<=1&&(a=0),e=0;e<a;e++)z[e]=n*((a*a-e*e)*m/(a*a))}function G(){I(),F(),J(),D()}function H(){var b=[],g=[];for(var c=0;c<a;c++)g[o[c][3]]=c;var d=0;for(var e=0;e<a;e++){var f=g[e];b[d++]=o[f][0],b[d++]=o[f][1],b[d++]=o[f][2]}return b}var o,q,t,y,z;this.buildColormap=G,this.getColormap=H,this.lookupRGB=E}var w=100,a=256,n=a-1,b=4,i=16,e=1<<i,f=10,B=1<<f,g=10,x=e>>g,r=e<<f-g,z=a>>3,h=6,t=1<<h,u=z*t,v=30,o=10,d=1<<o,q=8,m=1<<q,y=o+q,c=1<<y,l=499,k=491,p=487,j=503,s=3*j;A.exports=C}),a('/gif.worker.coffee')}.call(this,this))
(function (b) {
function a(b, d) {
if ({}.hasOwnProperty.call(a.cache, b)) return a.cache[b];
var e = a.resolve(b);
if (!e) throw new Error('Failed to resolve module ' + b);
var c = {
id: b,
require: a,
filename: b,
exports: {},
loaded: !1,
parent: d,
children: []
};
d && d.children.push(c);
var f = b.slice(0, b.lastIndexOf('/') + 1);
return a.cache[b] = c.exports, e.call(c.exports, c, c.exports, f, b), c.loaded = !0, a.cache[b] = c.exports
}
a.modules = {}, a.cache = {}, a.resolve = function (b) {
return {}.hasOwnProperty.call(a.modules, b) ? a.modules[b] : void 0
}, a.define = function (b, c) {
a.modules[b] = c
}, a.define('/gif.worker.coffee', function (d, e, f, g) {
var b, c;
b = a('/GIFEncoder.js', d), c = function (a) {
var c, e, d, f;
return c = new b(a.width, a.height), a.index === 0 ? c.writeHeader() : c.firstFrame = !1, c.setTransparent(a.transparent), c.setRepeat(a.repeat), c.setDelay(a.delay), c.setQuality(a.quality), c.addFrame(a.data), a.last && c.finish(), d = c.stream(), a.data = d.pages, a.cursor = d.cursor, a.pageSize = d.constructor.pageSize, a.canTransfer ? (f = function (c) {
for (var b = 0, d = a.data.length; b < d; ++b) e = a.data[b], c.push(e.buffer);
return c
}.call(this, []), self.postMessage(a, f)) : self.postMessage(a)
}, self.onmessage = function (a) {
return c(a.data)
}
}), a.define('/GIFEncoder.js', function (e, h, i, j) {
function c() {
this.page = -1, this.pages = [], this.newPage()
}
function b(a, b) {
this.width = ~~a, this.height = ~~b, this.transparent = null, this.transIndex = 0, this.repeat = -1, this.delay = 0, this.image = null, this.pixels = null, this.indexedPixels = null, this.colorDepth = null, this.colorTab = null, this.usedEntry = new Array, this.palSize = 7, this.dispose = -1, this.firstFrame = !0, this.sample = 10, this.out = new c
}
var f = a('/TypedNeuQuant.js', e),
g = a('/LZWEncoder.js', e);
c.pageSize = 4096, c.charMap = {};
for (var d = 0; d < 256; d++) c.charMap[d] = String.fromCharCode(d);
c.prototype.newPage = function () {
this.pages[++this.page] = new Uint8Array(c.pageSize), this.cursor = 0
}, c.prototype.getData = function () {
var d = '';
for (var a = 0; a < this.pages.length; a++) for (var b = 0; b < c.pageSize; b++) d += c.charMap[this.pages[a][b]];
return d
}, c.prototype.writeByte = function (a) {
this.cursor >= c.pageSize && this.newPage(), this.pages[this.page][this.cursor++] = a
}, c.prototype.writeUTFBytes = function (b) {
for (var c = b.length, a = 0; a < c; a++) this.writeByte(b.charCodeAt(a))
}, c.prototype.writeBytes = function (b, d, e) {
for (var c = e || b.length, a = d || 0; a < c; a++) this.writeByte(b[a])
}, b.prototype.setDelay = function (a) {
this.delay = Math.round(a / 10)
}, b.prototype.setFrameRate = function (a) {
this.delay = Math.round(100 / a)
}, b.prototype.setDispose = function (a) {
a >= 0 && (this.dispose = a)
}, b.prototype.setRepeat = function (a) {
this.repeat = a
}, b.prototype.setTransparent = function (a) {
this.transparent = a
}, b.prototype.addFrame = function (a) {
this.image = a, this.getImagePixels(), this.analyzePixels(), this.firstFrame && (this.writeLSD(), this.writePalette(), this.repeat >= 0 && this.writeNetscapeExt()), this.writeGraphicCtrlExt(), this.writeImageDesc(), this.firstFrame || this.writePalette(), this.writePixels(), this.firstFrame = !1
}, b.prototype.finish = function () {
this.out.writeByte(59)
}, b.prototype.setQuality = function (a) {
a < 1 && (a = 1), this.sample = a
}, b.prototype.writeHeader = function () {
this.out.writeUTFBytes('GIF89a')
}, b.prototype.analyzePixels = function () {
var g = this.pixels.length,
d = g / 3;
this.indexedPixels = new Uint8Array(d);
var a = new f(this.pixels, this.sample);
a.buildColormap(), this.colorTab = a.getColormap();
var b = 0;
for (var c = 0; c < d; c++) {
var e = a.lookupRGB(this.pixels[b++] & 255, this.pixels[b++] & 255, this.pixels[b++] & 255);
this.usedEntry[e] = !0, this.indexedPixels[c] = e
}
this.pixels = null, this.colorDepth = 8, this.palSize = 7, this.transparent !== null && (this.transIndex = this.findClosest(this.transparent))
}, b.prototype.findClosest = function (e) {
if (this.colorTab === null) return -1;
var k = (e & 16711680) >> 16,
l = (e & 65280) >> 8,
m = e & 255,
c = 0,
d = 16777216,
j = this.colorTab.length;
for (var a = 0; a < j;) {
var f = k - (this.colorTab[a++] & 255),
g = l - (this.colorTab[a++] & 255),
h = m - (this.colorTab[a] & 255),
i = f * f + g * g + h * h,
b = parseInt(a / 3);
this.usedEntry[b] && i < d && (d = i, c = b), a++
}
return c
}, b.prototype.getImagePixels = function () {
var a = this.width,
g = this.height;
this.pixels = new Uint8Array(a * g * 3);
var b = this.image,
c = 0;
for (var d = 0; d < g; d++) for (var e = 0; e < a; e++) {
var f = d * a * 4 + e * 4;
this.pixels[c++] = b[f], this.pixels[c++] = b[f + 1], this.pixels[c++] = b[f + 2]
}
}, b.prototype.writeGraphicCtrlExt = function () {
this.out.writeByte(33), this.out.writeByte(249), this.out.writeByte(4);
var b, a;
this.transparent === null ? (b = 0, a = 0) : (b = 1, a = 2), this.dispose >= 0 && (a = dispose & 7), a <<= 2, this.out.writeByte(0 | a | 0 | b), this.writeShort(this.delay), this.out.writeByte(this.transIndex), this.out.writeByte(0)
}, b.prototype.writeImageDesc = function () {
this.out.writeByte(44), this.writeShort(0), this.writeShort(0), this.writeShort(this.width), this.writeShort(this.height), this.firstFrame ? this.out.writeByte(0) : this.out.writeByte(128 | this.palSize)
}, b.prototype.writeLSD = function () {
this.writeShort(this.width), this.writeShort(this.height), this.out.writeByte(240 | this.palSize), this.out.writeByte(0), this.out.writeByte(0)
}, b.prototype.writeNetscapeExt = function () {
this.out.writeByte(33), this.out.writeByte(255), this.out.writeByte(11), this.out.writeUTFBytes('NETSCAPE2.0'), this.out.writeByte(3), this.out.writeByte(1), this.writeShort(this.repeat), this.out.writeByte(0)
}, b.prototype.writePalette = function () {
this.out.writeBytes(this.colorTab);
var b = 768 - this.colorTab.length;
for (var a = 0; a < b; a++) this.out.writeByte(0)
}, b.prototype.writeShort = function (a) {
this.out.writeByte(a & 255), this.out.writeByte(a >> 8 & 255)
}, b.prototype.writePixels = function () {
var a = new g(this.width, this.height, this.indexedPixels, this.colorDepth);
a.encode(this.out)
}, b.prototype.stream = function () {
return this.out
}, e.exports = b
}), a.define('/LZWEncoder.js', function (e, g, h, i) {
function f(y, D, C, B) {
function w(a, b) {
r[f++] = a, f >= 254 && t(b)
}
function x(b) {
u(a), k = i + 2, j = !0, l(i, b)
}
function u(b) {
for (var a = 0; a < b; ++a) h[a] = -1
}
function A(z, r) {
var g, t, d, e, y, w, s;
for (q = z, j = !1, n_bits = q, m = p(n_bits), i = 1 << z - 1, o = i + 1, k = i + 2, f = 0, e = v(), s = 0, g = a; g < 65536; g *= 2)++s;
s = 8 - s, w = a, u(w), l(i, r);
a: while ((t = v()) != c) {
if (g = (t << b) + e, d = t << s ^ e, h[d] === g) {
e = n[d];
continue
}
if (h[d] >= 0) {
y = w - d, d === 0 && (y = 1);
do
if ((d -= y) < 0 && (d += w), h[d] === g) {
e = n[d];
continue a
}
while (h[d] >= 0)
}
l(e, r), e = t, k < 1 << b ? (n[d] = k++, h[d] = g) : x(r)
}
l(e, r),
l(o, r)
}
function z(a) {
a.writeByte(s), remaining = y * D, curPixel = 0, A(s + 1, a), a.writeByte(0)
}
function t(a) {
f > 0 && (a.writeByte(f), a.writeBytes(r, 0, f), f = 0)
}
function p(a) {
return (1 << a) - 1
}
function v() {
if (remaining === 0) return c;
--remaining;
var a = C[curPixel++];
return a & 255
}
function l(a, c) {
g &= d[e], e > 0 ? g |= a << e : g = a, e += n_bits;
while (e >= 8) w(g & 255, c), g >>= 8, e -= 8;
if ((k > m || j) && (j ? (m = p(n_bits = q), j = !1) : (++n_bits, n_bits == b ? m = 1 << b : m = p(n_bits))), a == o) {
while (e > 0) w(g & 255, c), g >>= 8, e -= 8;
t(c)
}
}
var s = Math.max(2, B),
r = new Uint8Array(256),
h = new Int32Array(a),
n = new Int32Array(a),
g, e = 0,
f, k = 0,
m, j = !1,
q, i, o;
this.encode = z
}
var c = -1,
b = 12,
a = 5003,
d = [0, 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095, 8191, 16383, 32767, 65535];
e.exports = f
}), a.define('/TypedNeuQuant.js', function (A, F, E, D) {
function C(A, B) {
function I() {
o = [], q = new Int32Array(256), t = new Int32Array(a), y = new Int32Array(a), z = new Int32Array(a >> 3);
var c, d;
for (c = 0; c < a; c++) d = (c << b + 8) / a, o[c] = new Float64Array([d, d, d, 0]), y[c] = e / a, t[c] = 0
}
function J() {
for (var c = 0; c < a; c++) o[c][0] >>= b, o[c][1] >>= b, o[c][2] >>= b, o[c][3] = c
}
function K(b, a, c, e, f) {
o[a][0] -= b * (o[a][0] - c) / d, o[a][1] -= b * (o[a][1] - e) / d, o[a][2] -= b * (o[a][2] - f) / d
}
function L(j, e, n, l, k) {
var h = Math.abs(e - j),
i = Math.min(e + j, a),
g = e + 1,
f = e - 1,
m = 1,
b, d;
while (g < i || f > h) d = z[m++], g < i && (b = o[g++], b[0] -= d * (b[0] - n) / c, b[1] -= d * (b[1] - l) / c, b[2] -= d * (b[2] - k) / c), f > h && (b = o[f--], b[0] -= d * (b[0] - n) / c, b[1] -= d * (b[1] - l) / c, b[2] -= d * (b[2] - k) / c)
}
function C(p, s, q) {
var h = 2147483647,
k = h,
d = -1,
m = d,
c, j, e, n, l;
for (c = 0; c < a; c++) j = o[c], e = Math.abs(j[0] - p) + Math.abs(j[1] - s) + Math.abs(j[2] - q), e < h && (h = e, d = c), n = e - (t[c] >> i - b), n < k && (k = n, m = c), l = y[c] >> g, y[c] -= l, t[c] += l << f;
return y[d] += x, t[d] -= r, m
}
function D() {
var d, b, e, c, h, g, f = 0,
i = 0;
for (d = 0; d < a; d++) {
for (e = o[d], h = d, g = e[1], b = d + 1; b < a; b++) c = o[b], c[1] < g && (h = b, g = c[1]);
if (c = o[h], d != h && (b = c[0], c[0] = e[0], e[0] = b, b = c[1], c[1] = e[1], e[1] = b, b = c[2], c[2] = e[2], e[2] = b, b = c[3], c[3] = e[3], e[3] = b), g != f) {
for (q[f] = i + d >> 1, b = f + 1; b < g; b++) q[b] = d;
f = g, i = d
}
}
for (q[f] = i + n >> 1, b = f + 1; b < 256; b++) q[b] = n
}
function E(j, i, k) {
var b, d, c, e = 1e3,
h = -1,
f = q[i],
g = f - 1;
while (f < a || g >= 0) f < a && (d = o[f], c = d[1] - i, c >= e ? f = a : (f++, c < 0 && (c = -c), b = d[0] - j, b < 0 && (b = -b), c += b, c < e && (b = d[2] - k, b < 0 && (b = -b), c += b, c < e && (e = c, h = d[3])))), g >= 0 && (d = o[g], c = i - d[1], c >= e ? g = -1 : (g--, c < 0 && (c = -c), b = d[0] - j, b < 0 && (b = -b), c += b, c < e && (b = d[2] - k, b < 0 && (b = -b), c += b, c < e && (e = c, h = d[3]))));
return h
}
function F() {
var c, f = A.length,
D = 30 + (B - 1) / 3,
y = f / (3 * B),
q = ~~ (y / w),
n = d,
o = u,
a = o >> h;
for (a <= 1 && (a = 0), c = 0; c < a; c++) z[c] = n * ((a * a - c * c) * m / (a * a));
var i;
f < s ? (B = 1, i = 3) : f % l !== 0 ? i = 3 * l : f % k !== 0 ? i = 3 * k : f % p !== 0 ? i = 3 * p : i = 3 * j;
var r, t, x, e, g = 0;
c = 0;
while (c < y) if (r = (A[g] & 255) << b, t = (A[g + 1] & 255) << b, x = (A[g + 2] & 255) << b, e = C(r, t, x), K(n, e, r, t, x), a !== 0 && L(a, e, r, t, x), g += i, g >= f && (g -= f), c++, q === 0 && (q = 1), c % q === 0) for (n -= n / D, o -= o / v, a = o >> h, a <= 1 && (a = 0), e = 0; e < a; e++) z[e] = n * ((a * a - e * e) * m / (a * a))
}
function G() {
I(), F(), J(), D()
}
function H() {
var b = [],
g = [];
for (var c = 0; c < a; c++) g[o[c][3]] = c;
var d = 0;
for (var e = 0; e < a; e++) {
var f = g[e];
b[d++] = o[f][0], b[d++] = o[f][1], b[d++] = o[f][2]
}
return b
}
var o, q, t, y, z;
this.buildColormap = G, this.getColormap = H, this.lookupRGB = E
}
var w = 100,
a = 256,
n = a - 1,
b = 4,
i = 16,
e = 1 << i,
f = 10,
B = 1 << f,
g = 10,
x = e >> g,
r = e << f - g,
z = a >> 3,
h = 6,
t = 1 << h,
u = z * t,
v = 30,
o = 10,
d = 1 << o,
q = 8,
m = 1 << q,
y = o + q,
c = 1 << y,
l = 499,
k = 491,
p = 487,
j = 503,
s = 3 * j;
A.exports = C
}), a('/gif.worker.coffee')
}.call(this, this))