UNPKG

recorder-core-rlian

Version:

Recorder库:html5 js 录音 mp3 wav ogg webm amr 格式,支持pc和Android、ios部分浏览器、和Hybrid App(提供Android IOS App源码),微信也是支持的,提供H5版语音通话聊天示例 和DTMF编解码

6 lines 157 kB
/* 录音 https://github.com/xiangyuecn/Recorder src: recorder-core.js,engine/mp3.js,engine/mp3-engine.js */ !function(p){"use strict";var b=function(){},L=function(e){return new t(e)};L.IsOpen=function(){var e=L.Stream;if(e){var t=e.getTracks&&e.getTracks()||e.audioTracks||[],a=t[0];if(a){var s=a.readyState;return"live"==s||s==a.LIVE}}return!1},L.BufferSize=4096,L.Destroy=function(){for(var e in V("Recorder Destroy"),d(),a)a[e]()};var a={};L.BindDestroy=function(e,t){a[e]=t},L.Support=function(){var e=p.AudioContext;if(e||(e=p.webkitAudioContext),!e)return!1;var t=navigator.mediaDevices||{};return t.getUserMedia||(t=navigator).getUserMedia||(t.getUserMedia=t.webkitGetUserMedia||t.mozGetUserMedia||t.msGetUserMedia),!!t.getUserMedia&&(L.Scope=t,L.Ctx&&"closed"!=L.Ctx.state||(L.Ctx=new e,L.BindDestroy("Ctx",function(){var e=L.Ctx;e&&e.close&&(e.close(),L.Ctx=0)})),!0)};var v=function(e){var t=(e=e||L).BufferSize||L.BufferSize,a=L.Ctx,s=e.Stream,n=s._m=a.createMediaStreamSource(s),r=s._p=(a.createScriptProcessor||a.createJavaScriptNode).call(a,t,1,1);n.connect(r),r.connect(a.destination);var l=s._call;r.onaudioprocess=function(e){for(var t in l){for(var a=e.inputBuffer.getChannelData(0),s=a.length,n=new Int16Array(s),r=0,i=0;i<s;i++){var _=Math.max(-1,Math.min(1,a[i]));_=_<0?32768*_:32767*_,n[i]=_,r+=Math.abs(_)}for(var o in l)l[o](n,r);return}}},d=function(e){var t=(e=e||L)==L,a=e.Stream;if(a&&(a._m&&(a._m.disconnect(),a._p.disconnect(),a._p.onaudioprocess=a._p=a._m=null),t)){for(var s=a.getTracks&&a.getTracks()||a.audioTracks||[],n=0;n<s.length;n++){var r=s[n];r.stop&&r.stop()}a.stop&&a.stop()}e.Stream=0};L.SampleData=function(e,t,a,s,n){s||(s={});var r=s.index||0,i=s.offset||0,_=s.frameNext||[];n||(n={});var o=n.frameSize||1;n.frameType&&(o="mp3"==n.frameType?1152:1);for(var l=0,f=r;f<e.length;f++)l+=e[f].length;l=Math.max(0,l-Math.floor(i));var c=t/a;1<c?l=Math.floor(l/c):(c=1,a=t),l+=_.length;for(var h=new Int16Array(l),u=0,f=0;f<_.length;f++)h[u]=_[f],u++;for(var m=e.length;r<m;r++){for(var p=e[r],f=i,b=p.length;f<b;){var v=Math.floor(f),d=Math.ceil(f),g=f-v,S=p[v],M=d<b?p[d]:(e[r+1]||[S])[0]||0;h[u]=S+(M-S)*g,u++,f+=c}i=f-b}_=null;var w=h.length%o;if(0<w){var R=2*(h.length-w);_=new Int16Array(h.buffer.slice(R)),h=new Int16Array(h.buffer.slice(0,R))}return{index:r,offset:i,frameNext:_,sampleRate:a,data:h}},L.PowerLevel=function(e,t){var a=e/t||0;return a<1251?Math.round(a/1250*10):Math.round(Math.min(100,Math.max(0,100*(1+Math.log(a/1e4)/Math.log(10)))))};var V=function(e,t){var a=new Date,s=("0"+a.getMinutes()).substr(-2)+":"+("0"+a.getSeconds()).substr(-2)+"."+("00"+a.getMilliseconds()).substr(-3),n=["["+s+" Recorder]"+e],r=arguments,i=2,_=console.log;for("number"==typeof t?_=1==t?console.error:3==t?console.warn:_:i=1;i<r.length;i++)n.push(r[i]);_.apply(console,n)};L.CLog=V;var s=0;function t(e){this.id=++s,L.Traffic&&L.Traffic();var t={type:"mp3",bitRate:16,sampleRate:16e3,onProcess:b};for(var a in e)t[a]=e[a];this.set=t,this._S=9,this.Sync={O:9,C:9}}L.Sync={O:9,C:9},L.prototype=t.prototype={_streamStore:function(){return this.set.sourceStream?this:L},open:function(e,a){var t=this,s=t._streamStore();e=e||b;var n=function(e,t){V("录音open失败:"+e+",isUserNotAllow:"+(t=!!t),1),a&&a(e,t)},r=function(){V("open成功"),e(),t._SO=0},i=s.Sync,_=++i.O,o=i.C;t._O=t._O_=_,t._SO=t._S;var l=function(){if(o!=i.C||!t._O){var e="open被取消";return _==i.O?t.close():e="open被中断",n(e),!0}},f=t.envCheck({envName:"H5",canProcess:!0});if(f)n("不能录音:"+f);else if(t.set.sourceStream){if(!L.Support())return void n("不支持此浏览器从流中获取录音");d(s),t.Stream=t.set.sourceStream,t.Stream._call={};try{v(s)}catch(e){return void n("从流中打开录音失败:"+e.message)}r()}else{var c=function(e,t){try{p.top.a}catch(e){return void n('无权录音(跨域,请尝试给iframe添加麦克风访问策略,如allow="camera;microphone")')}/Permission|Allow/i.test(e)?n("用户拒绝了录音权限",!0):!1===p.isSecureContext?n("无权录音(需https)"):/Found/i.test(e)?n(t+",无可用麦克风"):n(t)};if(L.IsOpen())r();else if(L.Support()){var h=function(e){(L.Stream=e)._call={},l()||setTimeout(function(){l()||(L.IsOpen()?(v(),r()):n("录音功能无效:无音频流"))},100)},u=function(e){var t=e.name||e.message||e.code+":"+e;V("请求录音权限错误",1,e),c(t,"无法录音:"+t)},m=L.Scope.getUserMedia({audio:t.set.audioTrackSet||!0},h,u);m&&m.then&&m.then(h)[e&&"catch"](u)}else c("","此浏览器不支持录音")}},close:function(e){e=e||b;var t=this._streamStore();this._stop();var a=t.Sync;if(this._O=0,this._O_!=a.O)return V("close被忽略",3),void e();a.C++,d(t),V("close"),e()},mock:function(e,t){var a=this;return a._stop(),a.isMock=1,a.mockEnvInfo=null,a.buffers=[e],a.recSize=e.length,a.srcSampleRate=t,a},envCheck:function(e){var t,a=this.set;return t||(this[a.type+"_envCheck"]?t=this[a.type+"_envCheck"](e,a):a.takeoffEncodeChunk&&(t=a.type+"类型不支持设置takeoffEncodeChunk")),t||""},envStart:function(e,t){var a=this,s=a.set;if(a.isMock=e?1:0,a.mockEnvInfo=e,a.buffers=[],a.recSize=0,a.envInLast=0,a.envInFirst=0,a.envInFix=0,a.envInFixTs=[],s.sampleRate=Math.min(t,s.sampleRate),a.srcSampleRate=t,a.engineCtx=0,a[s.type+"_start"]){var n=a.engineCtx=a[s.type+"_start"](s);n&&(n.pcmDatas=[],n.pcmSize=0)}},envResume:function(){this.envInFixTs=[]},envIn:function(e,t){var n=this,r=n.set,i=n.engineCtx,a=n.srcSampleRate,s=e.length,_=L.PowerLevel(t,s),o=n.buffers,l=o.length;o.push(e);var f=o,c=l,h=Date.now(),u=Math.round(s/a*1e3);n.envInLast=h,1==n.buffers.length&&(n.envInFirst=h-u);var m=n.envInFixTs;m.splice(0,0,{t:h,d:u});for(var p=h,b=0,v=0;v<m.length;v++){var d=m[v];if(3e3<h-d.t){m.length=v;break}p=d.t,b+=d.d}var g=m[1],S=h-p;if(S/3<S-b&&(g&&1e3<S||6<=m.length)){var M=h-g.t-u;if(u/5<M){var w=!r.disableEnvInFix;if(V("["+h+"]"+(w?"":"未")+"补偿"+M+"ms",3),n.envInFix+=M,w){var R=new Int16Array(M*a/1e3);s+=R.length,o.push(R)}}}var B=n.recSize,A=s,k=B+A;if(n.recSize=k,i){var T=L.SampleData(o,a,r.sampleRate,i.chunkInfo);i.chunkInfo=T,k=(B=i.pcmSize)+(A=T.data.length),i.pcmSize=k,o=i.pcmDatas,l=o.length,o.push(T.data),a=T.sampleRate}var x=Math.round(k/a*1e3),y=o.length,E=f.length,P=function(){for(var e=H?0:-A,t=null==o[0],a=l;a<y;a++){var s=o[a];null==s?t=1:(e+=s.length,i&&s.length&&n[r.type+"_encode"](i,s))}if(t&&i)for(a=c,f[0]&&(a=0);a<E;a++)f[a]=null;t&&(e=H?A:0,o[0]=null),i?i.pcmSize+=e:n.recSize+=e},H=r.onProcess(o,_,x,a,l,P);if(!0===H){var I=0;for(v=l;v<y;v++)null==o[v]?I=1:o[v]=new Int16Array(0);I?V("未进入异步前不能清除buffers",3):i?i.pcmSize-=A:n.recSize-=A}else P()},start:function(){var e=this,t=L.Ctx,a=1;if(e.set.sourceStream?e.Stream||(a=0):L.IsOpen()||(a=0),a)if(V("开始录音"),e._stop(),e.state=0,e.envStart(null,t.sampleRate),e._SO&&e._SO+1!=e._S)V("start被中断",3);else{e._SO=0;var s=function(){e.state=1,e.resume()};"suspended"==t.state?t.resume().then(function(){V("ctx resume"),s()}):s()}else V("未open",1)},pause:function(){this.state&&(this.state=2,V("pause"),delete this._streamStore().Stream._call[this.id])},resume:function(){var a=this;a.state&&(a.state=1,V("resume"),a.envResume(),a._streamStore().Stream._call[a.id]=function(e,t){1==a.state&&a.envIn(e,t)})},_stop:function(e){var t=this,a=t.set;t.isMock||t._S++,t.state&&(t.pause(),t.state=0),!e&&t[a.type+"_stop"]&&(t[a.type+"_stop"](t.engineCtx),t.engineCtx=0)},stop:function(a,t,e){var s,n=this,r=n.set;V("Stop "+(n.envInLast?n.envInLast-n.envInFirst+"ms 补"+n.envInFix+"ms":"-"));var i=function(){n._stop(),e&&n.close()},_=function(e){V("结束录音失败:"+e,1),t&&t(e),i()},o=function(e,t){if(V("结束录音 编码"+(Date.now()-s)+"ms 音频"+t+"ms/"+e.size+"b"),r.takeoffEncodeChunk)V("启用takeoffEncodeChunk后stop返回的blob长度为0不提供音频数据",3);else if(e.size<Math.max(100,t/2))return void _("生成的"+r.type+"无效");a&&a(e,t),i()};if(!n.isMock){if(!n.state)return void _("未开始录音");n._stop(!0)}var l=n.recSize;if(l)if(n.buffers[0])if(n[r.type]){if(n.isMock){var f=n.envCheck(n.mockEnvInfo||{envName:"mock",canProcess:!1});if(f)return void _("录音错误:"+f)}var c=n.engineCtx;if(n[r.type+"_complete"]&&c){var h=Math.round(c.pcmSize/r.sampleRate*1e3);return s=Date.now(),void n[r.type+"_complete"](c,function(e){o(e,h)},_)}s=Date.now();var u=L.SampleData(n.buffers,n.srcSampleRate,r.sampleRate);r.sampleRate=u.sampleRate;var m=u.data;h=Math.round(m.length/r.sampleRate*1e3),V("采样"+l+"->"+m.length+" 花:"+(Date.now()-s)+"ms"),setTimeout(function(){s=Date.now(),n[r.type](m,function(e){o(e,h)},function(e){_(e)})})}else _("未加载"+r.type+"编码器");else _("音频被释放");else _("未采集到录音")}},p.Recorder&&p.Recorder.Destroy(),(p.Recorder=L).LM="2021-08-03 20:01:03",L.TrafficImgUrl="//ia.51.la/go1?id=20469973&pvFlag=1",L.Traffic=function(){var e=L.TrafficImgUrl;if(e){var t=L.Traffic,a=location.href.replace(/#.*/,"");if(0==e.indexOf("//")&&(e=/^https:/i.test(a)?"https:"+e:"http:"+e),!t[a]){t[a]=1;var s=new Image;s.src=e,V("Traffic Analysis Image: Recorder.TrafficImgUrl="+L.TrafficImgUrl)}}}}(window),"function"==typeof define&&define.amd&&define(function(){return Recorder}),"object"==typeof module&&module.exports&&(module.exports=Recorder),function(){"use strict";var i;Recorder.prototype.enc_mp3={stable:!0,testmsg:"采样率范围48000, 44100, 32000, 24000, 22050, 16000, 12000, 11025, 8000"},Recorder.prototype.mp3=function(a,s,e){var n=this.set,r=a.length,t=this.mp3_start(n);if(t)return this.mp3_encode(t,a),void this.mp3_complete(t,s,e,1);var i=new Recorder.lamejs.Mp3Encoder(1,n.sampleRate,n.bitRate),_=[],o=0,l=0,f=function(){if(o<r){0<(e=i.encodeBuffer(a.subarray(o,o+57600))).length&&(l+=e.buffer.byteLength,_.push(e.buffer)),o+=57600,setTimeout(f)}else{var e;0<(e=i.flush()).length&&(l+=e.buffer.byteLength,_.push(e.buffer));var t=c.fn(_,l,r,n.sampleRate);h(t,n),s(new Blob(_,{type:"audio/mp3"}))}};f()},Recorder.BindDestroy("mp3Worker",function(){console.log("mp3Worker Destroy"),i&&i.terminate(),i=null}),Recorder.prototype.mp3_envCheck=function(e,t){var a="";return t.takeoffEncodeChunk&&(e.canProcess?s()||(a="当前浏览器版本太低,无法实时处理"):a=e.envName+"环境不支持实时处理"),a},Recorder.prototype.mp3_start=function(e){return s(e)};var _={id:0},s=function(e){var t=i;try{if(!t){var a=");wk_lame();var wk_ctxs={};self.onmessage="+function(e){var t=e.data,a=wk_ctxs[t.id];if("init"==t.action)wk_ctxs[t.id]={sampleRate:t.sampleRate,bitRate:t.bitRate,takeoff:t.takeoff,mp3Size:0,pcmSize:0,encArr:[],encObj:new wk_lame.Mp3Encoder(1,t.sampleRate,t.bitRate)};else if(!a)return;switch(t.action){case"stop":a.encObj=null,delete wk_ctxs[t.id];break;case"encode":a.pcmSize+=t.pcm.length,0<(s=a.encObj.encodeBuffer(t.pcm)).length&&(a.takeoff?self.postMessage({action:"takeoff",id:t.id,chunk:s}):(a.mp3Size+=s.buffer.byteLength,a.encArr.push(s.buffer)));break;case"complete":var s;0<(s=a.encObj.flush()).length&&(a.takeoff?self.postMessage({action:"takeoff",id:t.id,chunk:s}):(a.mp3Size+=s.buffer.byteLength,a.encArr.push(s.buffer)));var n=wk_mp3TrimFix.fn(a.encArr,a.mp3Size,a.pcmSize,a.sampleRate);self.postMessage({action:t.action,id:t.id,blob:new Blob(a.encArr,{type:"audio/mp3"}),meta:n})}};a+=";var wk_mp3TrimFix={rm:"+c.rm+",fn:"+c.fn+"}";var s=Recorder.lamejs.toString(),n=(window.URL||webkitURL).createObjectURL(new Blob(["var wk_lame=(",s,a],{type:"text/javascript"}));t=new Worker(n),setTimeout(function(){(window.URL||webkitURL).revokeObjectURL(n)},1e4),t.onmessage=function(e){var t=e.data,a=_[t.id];a&&("takeoff"==t.action?a.set.takeoffEncodeChunk(new Uint8Array(t.chunk.buffer)):(a.call&&a.call(t),a.call=null))}}var r={worker:t,set:e,takeoffQueue:[]};return e?(r.id=++_.id,_[r.id]=r,t.postMessage({action:"init",id:r.id,sampleRate:e.sampleRate,bitRate:e.bitRate,takeoff:!!e.takeoffEncodeChunk,x:new Int16Array(5)})):t.postMessage({x:new Int16Array(5)}),i=t,r}catch(e){return t&&t.terminate(),console.error(e),null}};Recorder.prototype.mp3_stop=function(e){if(e&&e.worker){e.worker.postMessage({action:"stop",id:e.id}),e.worker=null,delete _[e.id];var t=-1;for(var a in _)t++;t&&console.warn("mp3 worker剩"+t+"个在串行等待")}},Recorder.prototype.mp3_encode=function(e,t){e&&e.worker&&e.worker.postMessage({action:"encode",id:e.id,pcm:t})},Recorder.prototype.mp3_complete=function(t,a,e,s){var n=this;t&&t.worker?(t.call=function(e){h(e.meta,t.set),a(e.blob),s&&n.mp3_stop(t)},t.worker.postMessage({action:"complete",id:t.id})):e("mp3编码器未打开")},Recorder.mp3ReadMeta=function(e,t){var a="object"==typeof window?window.parseInt:self.parseInt,s=new Uint8Array(e[0]||[]);if(s.length<4)return null;var n=function(e,t){return("0000000"+((t||s)[e]||0).toString(2)).substr(-8)},r=n(0)+n(1),i=n(2)+n(3);if(!/^1{11}/.test(r))return null;var _={"00":2.5,10:2,11:1}[r.substr(11,2)],o={"01":3}[r.substr(13,2)],l={1:[44100,48e3,32e3],2:[22050,24e3,16e3],2.5:[11025,12e3,8e3]}[_];l&&(l=l[a(i.substr(4,2),2)]);var f=[[0,8,16,24,32,40,48,56,64,80,96,112,128,144,160],[0,32,40,48,56,64,80,96,112,128,160,192,224,256,320]][1==_?1:0][a(i.substr(0,4),2)];if(!(_&&o&&f&&l))return null;for(var c=Math.round(8*t/f),h=1==o?384:2==o?1152:1==_?1152:576,u=h/l*1e3,m=Math.floor(h*f/8/l*1e3),p=0,b=0,v=0;v<e.length;v++){var d=e[v];if(m+3<=(b+=d.byteLength)){var g=new Uint8Array(d);p="1"==n(d.byteLength-(b-(m+3)+1),g).charAt(6);break}}return p&&m++,{version:_,layer:o,sampleRate:l,bitRate:f,duration:c,size:t,hasPadding:p,frameSize:m,frameDurationFloat:u}};var c={rm:Recorder.mp3ReadMeta,fn:function(e,t,a,s){var n=this.rm(e,t);if(!n)return{err:"mp3非预定格式"};var r=Math.round(a/s*1e3),i=Math.floor((n.duration-r)/n.frameDurationFloat);if(0<i){var _=i*n.frameSize-(n.hasPadding?1:0);t-=_;for(var o=0,l=[],f=0;f<e.length;f++){var c=e[f];if(_<=0)break;_>=c.byteLength?(_-=c.byteLength,l.push(c),e.splice(f,1),f--):(e[f]=c.slice(_),o=c,_=0)}if(!this.rm(e,t)){o&&(e[0]=o);for(f=0;f<l.length;f++)e.splice(f,0,l[f]);n.err="fix后数据错误,已还原,错误原因不明"}var h=n.trimFix={};h.remove=i,h.removeDuration=Math.round(i*n.frameDurationFloat),h.duration=Math.round(8*t/n.bitRate)}return n}},h=function(e,t){var a="MP3信息 ";(e.sampleRate&&e.sampleRate!=t.sampleRate||e.bitRate&&e.bitRate!=t.bitRate)&&(console.warn(a+"和设置的不匹配set:"+t.bitRate+"kbps "+t.sampleRate+"hz,已更新set:"+e.bitRate+"kbps "+e.sampleRate+"hz",t),t.sampleRate=e.sampleRate,t.bitRate=e.bitRate);var s=e.trimFix;s?(a+="Fix移除"+s.remove+"帧"+s.removeDuration+"ms -> "+s.duration+"ms",2<s.remove&&(e.err=(e.err?e.err+", ":"")+"移除帧数过多")):a+=(e.duration||"-")+"ms",e.err?console.error(a,e.err,e):console.log(a,e)}}(),function(){"use strict";function t(){var A=function(e){return Math.log(e)/Math.log(10)};function B(e){return new Int8Array(e)}function n(e){return new Int16Array(e)}function Be(e){return new Int32Array(e)}function Ae(e){return new Float32Array(e)}function s(e){return new Float64Array(e)}function ke(e){if(1==e.length)return Ae(e[0]);var t=e[0];e=e.slice(1);for(var a=[],s=0;s<t;s++)a.push(ke(e));return a}function Y(e){if(1==e.length)return Be(e[0]);var t=e[0];e=e.slice(1);for(var a=[],s=0;s<t;s++)a.push(Y(e));return a}function p(e){if(1==e.length)return n(e[0]);var t=e[0];e=e.slice(1);for(var a=[],s=0;s<t;s++)a.push(p(e));return a}function N(e){if(1==e.length)return new Array(e[0]);var t=e[0];e=e.slice(1);for(var a=[],s=0;s<t;s++)a.push(N(e));return a}var Te={fill:function(e,t,a,s){if(2==arguments.length)for(var n=0;n<e.length;n++)e[n]=t;else for(n=t;n<a;n++)e[n]=s}},$={arraycopy:function(e,t,a,s,n){for(var r=t+n;t<r;)a[s++]=e[t++]}},ee={};function xe(e){this.ordinal=e}ee.SQRT2=1.4142135623730951,ee.FAST_LOG10=function(e){return A(e)},ee.FAST_LOG10_X=function(e,t){return A(e)*t},xe.short_block_allowed=new xe(0),xe.short_block_coupled=new xe(1),xe.short_block_dispensed=new xe(2),xe.short_block_forced=new xe(3);var K={};function ye(e){this.ordinal=e}K.MAX_VALUE=3.4028235e38,ye.vbr_off=new ye(0),ye.vbr_mt=new ye(1),ye.vbr_rh=new ye(2),ye.vbr_abr=new ye(3),ye.vbr_mtrh=new ye(4),ye.vbr_default=ye.vbr_mtrh;function Ee(e){var t=e;this.ordinal=function(){return t}}function k(){var M=null;function v(e){this.bits=0|e}this.qupvt=null,this.setModules=function(e){this.qupvt=e,M=e};var n=[[0,0],[0,0],[0,0],[0,0],[0,0],[0,1],[1,1],[1,1],[1,2],[2,2],[2,3],[2,3],[3,4],[3,4],[3,4],[4,5],[4,5],[4,6],[5,6],[5,6],[5,7],[6,7],[6,7]];function w(e,t,a,s,n,r){var i=.5946/t;for(e>>=1;0!=e--;)n[r++]=i>a[s++]?0:1,n[r++]=i>a[s++]?0:1}function R(e,t,a,s,n,r){var i=(e>>=1)%2;for(e>>=1;0!=e--;){var _,o,l,f,c,h,u,m;_=a[s++]*t,o=a[s++]*t,c=0|_,l=a[s++]*t,h=0|o,f=a[s++]*t,u=0|l,_+=M.adj43[c],m=0|f,o+=M.adj43[h],n[r++]=0|_,l+=M.adj43[u],n[r++]=0|o,f+=M.adj43[m],n[r++]=0|l,n[r++]=0|f}0!=i&&(c=0|(_=a[s++]*t),h=0|(o=a[s++]*t),_+=M.adj43[c],o+=M.adj43[h],n[r++]=0|_,n[r++]=0|o)}var _=[1,2,5,7,7,10,10,13,13,13,13,13,13,13,13];function d(e,t,a,s){var n=function(e,t,a){var s=0,n=0;do{var r=e[t++],i=e[t++];s<r&&(s=r),n<i&&(n=i)}while(t<a);return s<n&&(s=n),s}(e,t,a);switch(n){case 0:return n;case 1:return function(e,t,a,s){var n=0,r=j.ht[1].hlen;do{var i=2*e[t+0]+e[t+1];t+=2,n+=r[i]}while(t<a);return s.bits+=n,1}(e,t,a,s);case 2:case 3:return function(e,t,a,s,n){var r,i,_=0,o=j.ht[s].xlen;i=2==s?j.table23:j.table56;do{var l=e[t+0]*o+e[t+1];t+=2,_+=i[l]}while(t<a);return(r=65535&_)<(_>>=16)&&(_=r,s++),n.bits+=_,s}(e,t,a,_[n-1],s);case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:return function(e,t,a,s,n){var r=0,i=0,_=0,o=j.ht[s].xlen,l=j.ht[s].hlen,f=j.ht[s+1].hlen,c=j.ht[s+2].hlen;do{var h=e[t+0]*o+e[t+1];t+=2,r+=l[h],i+=f[h],_+=c[h]}while(t<a);var u=s;return i<r&&(r=i,u++),_<r&&(r=_,u=s+2),n.bits+=r,u}(e,t,a,_[n-1],s);default:if(y.IXMAX_VAL<n)return s.bits=y.LARGE_BITS,-1;var r,i;for(n-=15,r=24;r<32&&!(j.ht[r].linmax>=n);r++);for(i=r-8;i<24&&!(j.ht[i].linmax>=n);i++);return function(e,t,a,s,n,r){var i,_=65536*j.ht[s].xlen+j.ht[n].xlen,o=0;do{var l=e[t++],f=e[t++];0!=l&&(14<l&&(l=15,o+=_),l*=16),0!=f&&(14<f&&(f=15,o+=_),l+=f),o+=j.largetbl[l]}while(t<a);return(i=65535&o)<(o>>=16)&&(o=i,s=n),r.bits+=o,s}(e,t,a,i,r,s)}}function u(e,t,a,s,n,r,i,_){for(var o=t.big_values,l=2;l<Pe.SBMAX_l+1;l++){var f=e.scalefac_band.l[l];if(o<=f)break;var c=n[l-2]+t.count1bits;if(a.part2_3_length<=c)break;var h=new v(c),u=d(s,f,o,h);c=h.bits,a.part2_3_length<=c||(a.assign(t),a.part2_3_length=c,a.region0_count=r[l-2],a.region1_count=l-2-r[l-2],a.table_select[0]=i[l-2],a.table_select[1]=_[l-2],a.table_select[2]=u)}}this.noquant_count_bits=function(e,t,a){var s=t.l3_enc,n=Math.min(576,t.max_nonzero_coeff+2>>1<<1);for(null!=a&&(a.sfb_count1=0);1<n&&0==(s[n-1]|s[n-2]);n-=2);t.count1=n;for(var r=0,i=0;3<n;n-=4){var _;if(1<(2147483647&(s[n-1]|s[n-2]|s[n-3]|s[n-4])))break;_=2*(2*(2*s[n-4]+s[n-3])+s[n-2])+s[n-1],r+=j.t32l[_],i+=j.t33l[_]}var o=r;if(t.count1table_select=0,i<r&&(o=i,t.count1table_select=1),t.count1bits=o,0==(t.big_values=n))return o;if(t.block_type==Pe.SHORT_TYPE)(r=3*e.scalefac_band.s[3])>t.big_values&&(r=t.big_values),i=t.big_values;else if(t.block_type==Pe.NORM_TYPE){if(r=t.region0_count=e.bv_scf[n-2],i=t.region1_count=e.bv_scf[n-1],i=e.scalefac_band.l[r+i+2],r=e.scalefac_band.l[r+1],i<n){var l=new v(o);t.table_select[2]=d(s,i,n,l),o=l.bits}}else t.region0_count=7,t.region1_count=Pe.SBMAX_l-1-7-1,(i=n)<(r=e.scalefac_band.l[8])&&(r=i);if(r=Math.min(r,n),i=Math.min(i,n),0<r){l=new v(o);t.table_select[0]=d(s,0,r,l),o=l.bits}if(r<i){l=new v(o);t.table_select[1]=d(s,r,i,l),o=l.bits}if(2==e.use_best_huffman&&(t.part2_3_length=o,best_huffman_divide(e,t),o=t.part2_3_length),null!=a&&t.block_type==Pe.NORM_TYPE){for(var f=0;e.scalefac_band.l[f]<t.big_values;)f++;a.sfb_count1=f}return o},this.count_bits=function(e,t,a,s){var n=a.l3_enc,r=y.IXMAX_VAL/M.IPOW20(a.global_gain);if(a.xrpow_max>r)return y.LARGE_BITS;if(function(e,t,a,s,n){var r,i,_,o=0,l=0,f=0,c=0,h=t,u=0,m=h,p=0,b=e,v=0;for(_=null!=n&&s.global_gain==n.global_gain,i=s.block_type==Pe.SHORT_TYPE?38:21,r=0;r<=i;r++){var d=-1;if((_||s.block_type==Pe.NORM_TYPE)&&(d=s.global_gain-(s.scalefac[r]+(0!=s.preflag?M.pretab[r]:0)<<s.scalefac_scale+1)-8*s.subblock_gain[s.window[r]]),_&&n.step[r]==d)0!=l&&(R(l,a,b,v,m,p),l=0),0!=f&&(w(f,a,b,v,m,p),f=0);else{var g,S=s.width[r];if(o+s.width[r]>s.max_nonzero_coeff&&(g=s.max_nonzero_coeff-o+1,Te.fill(t,s.max_nonzero_coeff,576,0),(S=g)<0&&(S=0),r=i+1),0==l&&0==f&&(m=h,p=u,b=e,v=c),null!=n&&0<n.sfb_count1&&r>=n.sfb_count1&&0<n.step[r]&&d>=n.step[r]?(0!=l&&(R(l,a,b,v,m,p),l=0,m=h,p=u,b=e,v=c),f+=S):(0!=f&&(w(f,a,b,v,m,p),f=0,m=h,p=u,b=e,v=c),l+=S),S<=0){0!=f&&(w(f,a,b,v,m,p),f=0),0!=l&&(R(l,a,b,v,m,p),l=0);break}}r<=i&&(u+=s.width[r],c+=s.width[r],o+=s.width[r])}0!=l&&(R(l,a,b,v,m,p),l=0),0!=f&&(w(f,a,b,v,m,p),f=0)}(t,n,M.IPOW20(a.global_gain),a,s),0!=(2&e.substep_shaping))for(var i=0,_=a.global_gain+a.scalefac_scale,o=.634521682242439/M.IPOW20(_),l=0;l<a.sfbmax;l++){var f,c=a.width[l];if(0==e.pseudohalf[l])i+=c;else for(f=i,i+=c;f<i;++f)n[f]=t[f]>=o?n[f]:0}return this.noquant_count_bits(e,a,s)},this.best_huffman_divide=function(e,t){var a=new x,s=t.l3_enc,n=Be(23),r=Be(23),i=Be(23),_=Be(23);if(t.block_type!=Pe.SHORT_TYPE||1!=e.mode_gr){a.assign(t),t.block_type==Pe.NORM_TYPE&&(!function(e,t,a,s,n,r,i){for(var _=t.big_values,o=0;o<=22;o++)s[o]=y.LARGE_BITS;for(o=0;o<16;o++){var l=e.scalefac_band.l[o+1];if(_<=l)break;var f=0,c=new v(f),h=d(a,0,l,c);f=c.bits;for(var u=0;u<8;u++){var m=e.scalefac_band.l[o+u+2];if(_<=m)break;var p=f,b=d(a,l,m,c=new v(p));p=c.bits,s[o+u]>p&&(s[o+u]=p,r[(n[o+u]=o)+u]=h,i[o+u]=b)}}}(e,t,s,n,r,i,_),u(e,a,t,s,n,r,i,_));var o=a.big_values;if(!(0==o||1<(s[o-2]|s[o-1])||576<(o=t.count1+2))){a.assign(t),a.count1=o;for(var l=0,f=0;o>a.big_values;o-=4){var c=2*(2*(2*s[o-4]+s[o-3])+s[o-2])+s[o-1];l+=j.t32l[c],f+=j.t33l[c]}if(a.big_values=o,a.count1table_select=0,f<l&&(l=f,a.count1table_select=1),a.count1bits=l,a.block_type==Pe.NORM_TYPE)u(e,a,t,s,n,r,i,_);else{if(a.part2_3_length=l,o<(l=e.scalefac_band.l[8])&&(l=o),0<l){var h=new v(a.part2_3_length);a.table_select[0]=d(s,0,l,h),a.part2_3_length=h.bits}if(l<o){h=new v(a.part2_3_length);a.table_select[1]=d(s,l,o,h),a.part2_3_length=h.bits}t.part2_3_length>a.part2_3_length&&t.assign(a)}}}};var h=[1,1,1,1,8,2,2,2,4,4,4,8,8,8,16,16],m=[1,2,4,8,1,2,4,8,2,4,8,2,4,8,4,8],p=[0,0,0,0,3,1,1,1,2,2,2,3,3,3,4,4],b=[0,1,2,3,0,1,2,3,1,2,3,1,2,3,2,3];k.slen1_tab=p,k.slen2_tab=b,this.best_scalefac_store=function(e,t,a,s){var n,r,i,_,o=s.tt[t][a],l=0;for(n=i=0;n<o.sfbmax;n++){var f=o.width[n];for(i+=f,_=-f;_<0&&0==o.l3_enc[_+i];_++);0==_&&(o.scalefac[n]=l=-2)}if(0==o.scalefac_scale&&0==o.preflag){var c=0;for(n=0;n<o.sfbmax;n++)0<o.scalefac[n]&&(c|=o.scalefac[n]);if(0==(1&c)&&0!=c){for(n=0;n<o.sfbmax;n++)0<o.scalefac[n]&&(o.scalefac[n]>>=1);o.scalefac_scale=l=1}}if(0==o.preflag&&o.block_type!=Pe.SHORT_TYPE&&2==e.mode_gr){for(n=11;n<Pe.SBPSY_l&&!(o.scalefac[n]<M.pretab[n]&&-2!=o.scalefac[n]);n++);if(n==Pe.SBPSY_l){for(n=11;n<Pe.SBPSY_l;n++)0<o.scalefac[n]&&(o.scalefac[n]-=M.pretab[n]);o.preflag=l=1}}for(r=0;r<4;r++)s.scfsi[a][r]=0;for(2==e.mode_gr&&1==t&&s.tt[0][a].block_type!=Pe.SHORT_TYPE&&s.tt[1][a].block_type!=Pe.SHORT_TYPE&&(!function(e,t){for(var a,s=t.tt[1][e],n=t.tt[0][e],r=0;r<j.scfsi_band.length-1;r++){for(a=j.scfsi_band[r];a<j.scfsi_band[r+1]&&!(n.scalefac[a]!=s.scalefac[a]&&0<=s.scalefac[a]);a++);if(a==j.scfsi_band[r+1]){for(a=j.scfsi_band[r];a<j.scfsi_band[r+1];a++)s.scalefac[a]=-1;t.scfsi[e][r]=1}}var i=0,_=0;for(a=0;a<11;a++)-1!=s.scalefac[a]&&(_++,i<s.scalefac[a]&&(i=s.scalefac[a]));for(var o=0,l=0;a<Pe.SBPSY_l;a++)-1!=s.scalefac[a]&&(l++,o<s.scalefac[a]&&(o=s.scalefac[a]));for(r=0;r<16;r++)if(i<h[r]&&o<m[r]){var f=p[r]*_+b[r]*l;s.part2_length>f&&(s.part2_length=f,s.scalefac_compress=r)}}(a,s),l=0),n=0;n<o.sfbmax;n++)-2==o.scalefac[n]&&(o.scalefac[n]=0);0!=l&&(2==e.mode_gr?this.scale_bitcount(o):this.scale_bitcount_lsf(e,o))};var o=[0,18,36,54,54,36,54,72,54,72,90,72,90,108,108,126],l=[0,18,36,54,51,35,53,71,52,70,88,69,87,105,104,122],f=[0,10,20,30,33,21,31,41,32,42,52,43,53,63,64,74];this.scale_bitcount=function(e){var t,a,s,n=0,r=0,i=e.scalefac;if(e.block_type==Pe.SHORT_TYPE)s=o,0!=e.mixed_block_flag&&(s=l);else if(s=f,0==e.preflag){for(a=11;a<Pe.SBPSY_l&&!(i[a]<M.pretab[a]);a++);if(a==Pe.SBPSY_l)for(e.preflag=1,a=11;a<Pe.SBPSY_l;a++)i[a]-=M.pretab[a]}for(a=0;a<e.sfbdivide;a++)n<i[a]&&(n=i[a]);for(;a<e.sfbmax;a++)r<i[a]&&(r=i[a]);for(e.part2_length=y.LARGE_BITS,t=0;t<16;t++)n<h[t]&&r<m[t]&&e.part2_length>s[t]&&(e.part2_length=s[t],e.scalefac_compress=t);return e.part2_length==y.LARGE_BITS};var g=[[15,15,7,7],[15,15,7,0],[7,3,0,0],[15,31,31,0],[7,7,7,0],[3,3,0,0]];this.scale_bitcount_lsf=function(e,t){var a,s,n,r,i,_,o,l,f=Be(4),c=t.scalefac;for(a=0!=t.preflag?2:0,o=0;o<4;o++)f[o]=0;if(t.block_type==Pe.SHORT_TYPE){s=1;var h=M.nr_of_sfb_block[a][s];for(n=l=0;n<4;n++)for(r=h[n]/3,o=0;o<r;o++,l++)for(i=0;i<3;i++)c[3*l+i]>f[n]&&(f[n]=c[3*l+i])}else{s=0;h=M.nr_of_sfb_block[a][s];for(n=l=0;n<4;n++)for(r=h[n],o=0;o<r;o++,l++)c[l]>f[n]&&(f[n]=c[l])}for(_=!1,n=0;n<4;n++)f[n]>g[a][n]&&(_=!0);if(!_){var u,m,p,b;for(t.sfb_partition_table=M.nr_of_sfb_block[a][s],n=0;n<4;n++)t.slen[n]=S[f[n]];switch(u=t.slen[0],m=t.slen[1],p=t.slen[2],b=t.slen[3],a){case 0:t.scalefac_compress=(5*u+m<<4)+(p<<2)+b;break;case 1:t.scalefac_compress=400+(5*u+m<<2)+p;break;case 2:t.scalefac_compress=500+3*u+m;break;default:$.err.printf("intensity stereo not implemented yet\n")}}if(!_)for(n=t.part2_length=0;n<4;n++)t.part2_length+=t.slen[n]*t.sfb_partition_table[n];return _};var S=[0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4];this.huffman_init=function(e){for(var t=2;t<=576;t+=2){for(var a,s=0;e.scalefac_band.l[++s]<t;);for(a=n[s][0];e.scalefac_band.l[a+1]>t;)a--;for(a<0&&(a=n[s][0]),e.bv_scf[t-2]=a,a=n[s][1];e.scalefac_band.l[a+e.bv_scf[t-2]+2]>t;)a--;a<0&&(a=n[s][1]),e.bv_scf[t-1]=a}}}function X(){}function M(){this.setModules=function(e,t,a){e,t,a};var _=[0,49345,49537,320,49921,960,640,49729,50689,1728,1920,51009,1280,50625,50305,1088,52225,3264,3456,52545,3840,53185,52865,3648,2560,51905,52097,2880,51457,2496,2176,51265,55297,6336,6528,55617,6912,56257,55937,6720,7680,57025,57217,8e3,56577,7616,7296,56385,5120,54465,54657,5440,55041,6080,5760,54849,53761,4800,4992,54081,4352,53697,53377,4160,61441,12480,12672,61761,13056,62401,62081,12864,13824,63169,63361,14144,62721,13760,13440,62529,15360,64705,64897,15680,65281,16320,16e3,65089,64001,15040,15232,64321,14592,63937,63617,14400,10240,59585,59777,10560,60161,11200,10880,59969,60929,11968,12160,61249,11520,60865,60545,11328,58369,9408,9600,58689,9984,59329,59009,9792,8704,58049,58241,9024,57601,8640,8320,57409,40961,24768,24960,41281,25344,41921,41601,25152,26112,42689,42881,26432,42241,26048,25728,42049,27648,44225,44417,27968,44801,28608,28288,44609,43521,27328,27520,43841,26880,43457,43137,26688,30720,47297,47489,31040,47873,31680,31360,47681,48641,32448,32640,48961,32e3,48577,48257,31808,46081,29888,30080,46401,30464,47041,46721,30272,29184,45761,45953,29504,45313,29120,28800,45121,20480,37057,37249,20800,37633,21440,21120,37441,38401,22208,22400,38721,21760,38337,38017,21568,39937,23744,23936,40257,24320,40897,40577,24128,23040,39617,39809,23360,39169,22976,22656,38977,34817,18624,18816,35137,19200,35777,35457,19008,19968,36545,36737,20288,36097,19904,19584,35905,17408,33985,34177,17728,34561,18368,18048,34369,33281,17088,17280,33601,16640,33217,32897,16448];this.updateMusicCRC=function(e,t,a,s){for(var n=0;n<s;++n)e[0]=(r=t[a+n],i=(i=e[0])>>8^_[255&(i^r)]);var r,i}}function q(){var o=this,s=32773,c=null,h=null,r=null,u=null;this.setModules=function(e,t,a,s){c=e,h=t,r=a,u=s};var m=null,l=0,p=0,b=0;function v(e,t,a){for(;0<a;){var s;0==b&&(b=8,p++,e.header[e.w_ptr].write_timing==l&&(n=e,$.arraycopy(n.header[n.w_ptr].buf,0,m,p,n.sideinfo_len),p+=n.sideinfo_len,l+=8*n.sideinfo_len,n.w_ptr=n.w_ptr+1&Z.MAX_HEADER_BUF-1),m[p]=0),a-=s=Math.min(a,b),b-=s,m[p]|=t>>a<<b,l+=s}var n}function i(e,t,a){for(;0<a;){var s;0==b&&(b=8,m[++p]=0),a-=s=Math.min(a,b),b-=s,m[p]|=t>>a<<b,l+=s}}function _(e,t){var a,s=e.internal_flags;if(8<=t&&(v(s,76,8),t-=8),8<=t&&(v(s,65,8),t-=8),8<=t&&(v(s,77,8),t-=8),8<=t&&(v(s,69,8),t-=8),32<=t){var n=r.getLameShortVersion();if(32<=t)for(a=0;a<n.length&&8<=t;++a)t-=8,v(s,n.charCodeAt(a),8)}for(;1<=t;t-=1)v(s,s.ancillary_flag,1),s.ancillary_flag^=e.disable_reservoir?0:1}function f(e,t,a){for(var s=e.header[e.h_ptr].ptr;0<a;){var n=Math.min(a,8-(7&s));a-=n,e.header[e.h_ptr].buf[s>>3]|=t>>a<<8-(7&s)-n,s+=n}e.header[e.h_ptr].ptr=s}function n(e,t){e<<=8;for(var a=0;a<8;a++)0!=(65536&((t<<=1)^(e<<=1)))&&(t^=s);return t}function d(e,t){var a,s=j.ht[t.count1table_select+32],n=0,r=t.big_values,i=t.big_values;for(a=(t.count1-t.big_values)/4;0<a;--a){var _=0,o=0;0!=t.l3_enc[r+0]&&(o+=8,t.xr[i+0]<0&&_++),0!=t.l3_enc[r+1]&&(o+=4,_*=2,t.xr[i+1]<0&&_++),0!=t.l3_enc[r+2]&&(o+=2,_*=2,t.xr[i+2]<0&&_++),0!=t.l3_enc[r+3]&&(o++,_*=2,t.xr[i+3]<0&&_++),r+=4,i+=4,v(e,_+s.table[o],s.hlen[o]),n+=s.hlen[o]}return n}function g(e,t,a,s,n){var r=j.ht[t],i=0;if(0==t)return i;for(var _=a;_<s;_+=2){var o=0,l=0,f=r.xlen,c=r.xlen,h=0,u=n.l3_enc[_],m=n.l3_enc[_+1];if(0!=u&&(n.xr[_]<0&&h++,o--),15<t){if(14<u)h|=u-15<<1,l=f,u=15;if(14<m)h<<=f,h|=m-15,l+=f,m=15;c=16}0!=m&&(h<<=1,n.xr[_+1]<0&&h++,o--),u=u*c+m,l-=o,o+=r.hlen[u],v(e,r.table[u],o),v(e,h,l),i+=o+l}return i}function S(e,t){var a=3*e.scalefac_band.s[3];a>t.big_values&&(a=t.big_values);var s=g(e,t.table_select[0],0,a,t);return s+=g(e,t.table_select[1],a,t.big_values,t)}function M(e,t){var a,s,n,r;a=t.big_values;var i=t.region0_count+1;return n=e.scalefac_band.l[i],i+=t.region1_count+1,a<n&&(n=a),a<(r=e.scalefac_band.l[i])&&(r=a),s=g(e,t.table_select[0],0,n,t),s+=g(e,t.table_select[1],n,r,t),s+=g(e,t.table_select[2],r,a,t)}function w(){this.total=0}function R(e,t){var a,s,n,r,i,_=e.internal_flags;return i=_.w_ptr,-1==(r=_.h_ptr-1)&&(r=Z.MAX_HEADER_BUF-1),a=_.header[r].write_timing-l,0<=(t.total=a)&&(s=1+r-i,r<i&&(s=1+r-i+Z.MAX_HEADER_BUF),a-=8*s*_.sideinfo_len),a+=n=o.getframebits(e),t.total+=n,t.total%8!=0?t.total=1+t.total/8:t.total=t.total/8,t.total+=p+1,a<0&&$.err.println("strange error flushing buffer ... \n"),a}this.getframebits=function(e){var t,a=e.internal_flags;return t=0!=a.bitrate_index?j.bitrate_table[e.version][a.bitrate_index]:e.brate,8*(0|72e3*(e.version+1)*t/e.out_samplerate+a.padding)},this.CRC_writeheader=function(e,t){var a=65535;a=n(255&t[2],a),a=n(255&t[3],a);for(var s=6;s<e.sideinfo_len;s++)a=n(255&t[s],a);t[4]=byte(a>>8),t[5]=byte(255&a)},this.flush_bitstream=function(e){var t,a,s=e.internal_flags,n=s.h_ptr-1;if(-1==n&&(n=Z.MAX_HEADER_BUF-1),t=s.l3_side,!((a=R(e,new w))<0)){if(_(e,a),s.ResvSize=0,t.main_data_begin=0,s.findReplayGain){var r=c.GetTitleGain(s.rgdata);s.RadioGain=0|Math.floor(10*r+.5)}s.findPeakSample&&(s.noclipGainChange=0|Math.ceil(20*A(s.PeakSample/32767)*10),0<s.noclipGainChange&&(EQ(e.scale,1)||EQ(e.scale,0))?s.noclipScale=Math.floor(32767/s.PeakSample*100)/100:s.noclipScale=-1)}},this.add_dummy_byte=function(e,t,a){for(var s,n=e.internal_flags;0<a--;)for(i(0,t,8),s=0;s<Z.MAX_HEADER_BUF;++s)n.header[s].write_timing+=8},this.format_bitstream=function(e){var t,a=e.internal_flags;t=a.l3_side;var s=this.getframebits(e);_(e,t.resvDrain_pre),function(e,t){var a,s,n,r=e.internal_flags;if(a=r.l3_side,r.header[r.h_ptr].ptr=0,Te.fill(r.header[r.h_ptr].buf,0,r.sideinfo_len,0),e.out_samplerate<16e3?f(r,4094,12):f(r,4095,12),f(r,e.version,1),f(r,1,2),f(r,e.error_protection?0:1,1),f(r,r.bitrate_index,4),f(r,r.samplerate_index,2),f(r,r.padding,1),f(r,e.extension,1),f(r,e.mode.ordinal(),2),f(r,r.mode_ext,2),f(r,e.copyright,1),f(r,e.original,1),f(r,e.emphasis,2),e.error_protection&&f(r,0,16),1==e.version){for(f(r,a.main_data_begin,9),2==r.channels_out?f(r,a.private_bits,3):f(r,a.private_bits,5),n=0;n<r.channels_out;n++){var i;for(i=0;i<4;i++)f(r,a.scfsi[n][i],1)}for(s=0;s<2;s++)for(n=0;n<r.channels_out;n++)f(r,(_=a.tt[s][n]).part2_3_length+_.part2_length,12),f(r,_.big_values/2,9),f(r,_.global_gain,8),f(r,_.scalefac_compress,4),_.block_type!=Pe.NORM_TYPE?(f(r,1,1),f(r,_.block_type,2),f(r,_.mixed_block_flag,1),14==_.table_select[0]&&(_.table_select[0]=16),f(r,_.table_select[0],5),14==_.table_select[1]&&(_.table_select[1]=16),f(r,_.table_select[1],5),f(r,_.subblock_gain[0],3),f(r,_.subblock_gain[1],3),f(r,_.subblock_gain[2],3)):(f(r,0,1),14==_.table_select[0]&&(_.table_select[0]=16),f(r,_.table_select[0],5),14==_.table_select[1]&&(_.table_select[1]=16),f(r,_.table_select[1],5),14==_.table_select[2]&&(_.table_select[2]=16),f(r,_.table_select[2],5),f(r,_.region0_count,4),f(r,_.region1_count,3)),f(r,_.preflag,1),f(r,_.scalefac_scale,1),f(r,_.count1table_select,1)}else for(f(r,a.main_data_begin,8),f(r,a.private_bits,r.channels_out),n=s=0;n<r.channels_out;n++){var _;f(r,(_=a.tt[s][n]).part2_3_length+_.part2_length,12),f(r,_.big_values/2,9),f(r,_.global_gain,8),f(r,_.scalefac_compress,9),_.block_type!=Pe.NORM_TYPE?(f(r,1,1),f(r,_.block_type,2),f(r,_.mixed_block_flag,1),14==_.table_select[0]&&(_.table_select[0]=16),f(r,_.table_select[0],5),14==_.table_select[1]&&(_.table_select[1]=16),f(r,_.table_select[1],5),f(r,_.subblock_gain[0],3),f(r,_.subblock_gain[1],3),f(r,_.subblock_gain[2],3)):(f(r,0,1),14==_.table_select[0]&&(_.table_select[0]=16),f(r,_.table_select[0],5),14==_.table_select[1]&&(_.table_select[1]=16),f(r,_.table_select[1],5),14==_.table_select[2]&&(_.table_select[2]=16),f(r,_.table_select[2],5),f(r,_.region0_count,4),f(r,_.region1_count,3)),f(r,_.scalefac_scale,1),f(r,_.count1table_select,1)}e.error_protection&&CRC_writeheader(r,r.header[r.h_ptr].buf);var o=r.h_ptr;r.h_ptr=o+1&Z.MAX_HEADER_BUF-1,r.header[r.h_ptr].write_timing=r.header[o].write_timing+t,r.h_ptr==r.w_ptr&&$.err.println("Error: MAX_HEADER_BUF too small in bitstream.c \n")}(e,s);var n=8*a.sideinfo_len;if(n+=function(e){var t,a,s,n,r=0,i=e.internal_flags,_=i.l3_side;if(1==e.version)for(t=0;t<2;t++)for(a=0;a<i.channels_out;a++){var o=_.tt[t][a],l=k.slen1_tab[o.scalefac_compress],f=k.slen2_tab[o.scalefac_compress];for(s=n=0;s<o.sfbdivide;s++)-1!=o.scalefac[s]&&(v(i,o.scalefac[s],l),n+=l);for(;s<o.sfbmax;s++)-1!=o.scalefac[s]&&(v(i,o.scalefac[s],f),n+=f);o.block_type==Pe.SHORT_TYPE?n+=S(i,o):n+=M(i,o),r+=n+=d(i,o)}else for(a=t=0;a<i.channels_out;a++){var c,h,u=0;if(h=s=n=0,(o=_.tt[t][a]).block_type==Pe.SHORT_TYPE){for(;h<4;h++){var m=o.sfb_partition_table[h]/3,p=o.slen[h];for(c=0;c<m;c++,s++)v(i,Math.max(o.scalefac[3*s+0],0),p),v(i,Math.max(o.scalefac[3*s+1],0),p),v(i,Math.max(o.scalefac[3*s+2],0),p),u+=3*p}n+=S(i,o)}else{for(;h<4;h++)for(m=o.sfb_partition_table[h],p=o.slen[h],c=0;c<m;c++,s++)v(i,Math.max(o.scalefac[s],0),p),u+=p;n+=M(i,o)}r+=u+(n+=d(i,o))}return r}(e),_(e,t.resvDrain_post),n+=t.resvDrain_post,t.main_data_begin+=(s-n)/8,R(e,new w)!=a.ResvSize&&$.err.println("Internal buffer inconsistency. flushbits <> ResvSize"),8*t.main_data_begin!=a.ResvSize&&($.err.printf("bit reservoir error: \nl3_side.main_data_begin: %d \nResvoir size: %d \nresv drain (post) %d \nresv drain (pre) %d \nheader and sideinfo: %d \ndata bits: %d \ntotal bits: %d (remainder: %d) \nbitsperframe: %d \n",8*t.main_data_begin,a.ResvSize,t.resvDrain_post,t.resvDrain_pre,8*a.sideinfo_len,n-t.resvDrain_post-8*a.sideinfo_len,n,n%8,s),$.err.println("This is a fatal error. It has several possible causes:"),$.err.println("90%% LAME compiled with buggy version of gcc using advanced optimizations"),$.err.println(" 9%% Your system is overclocked"),$.err.println(" 1%% bug in LAME encoding library"),a.ResvSize=8*t.main_data_begin),1e9<l){var r;for(r=0;r<Z.MAX_HEADER_BUF;++r)a.header[r].write_timing-=l;l=0}return 0},this.copy_buffer=function(e,t,a,s,n){var r=p+1;if(r<=0)return 0;if(0!=s&&s<r)return-1;if($.arraycopy(m,0,t,a,r),p=-1,(b=0)!=n){var i=Be(1);if(i[0]=e.nMusicCRC,u.updateMusicCRC(i,t,a,r),e.nMusicCRC=i[0],0<r&&(e.VBR_seek_table.nBytesWritten+=r),e.decode_on_the_fly)for(var _,o=ke([2,1152]),l=r,f=-1;0!=f;)if(f=h.hip_decode1_unclipped(e.hip,t,a,l,o[0],o[1]),l=0,-1==f&&(f=0),0<f){if(e.findPeakSample){for(_=0;_<f;_++)o[0][_]>e.PeakSample?e.PeakSample=o[0][_]:-o[0][_]>e.PeakSample&&(e.PeakSample=-o[0][_]);if(1<e.channels_out)for(_=0;_<f;_++)o[1][_]>e.PeakSample?e.PeakSample=o[1][_]:-o[1][_]>e.PeakSample&&(e.PeakSample=-o[1][_])}if(e.findReplayGain&&c.AnalyzeSamples(e.rgdata,o[0],0,o[1],0,f,e.channels_out)==X.GAIN_ANALYSIS_ERROR)return-6}}return r},this.init_bit_stream_w=function(e){m=B(U.LAME_MAXMP3BUFFER),e.h_ptr=e.w_ptr=0,e.header[e.h_ptr].write_timing=0,p=-1,l=b=0}}function e(e,t,a,s){this.xlen=e,this.linmax=t,this.table=a,this.hlen=s}Ee.STEREO=new Ee(0),Ee.JOINT_STEREO=new Ee(1),Ee.DUAL_CHANNEL=new Ee(2),Ee.MONO=new Ee(3),Ee.NOT_SET=new Ee(4),X.STEPS_per_dB=100,X.MAX_dB=120,X.GAIN_NOT_ENOUGH_SAMPLES=-24601,X.GAIN_ANALYSIS_ERROR=0,X.GAIN_ANALYSIS_OK=1,X.INIT_GAIN_ANALYSIS_ERROR=0,X.INIT_GAIN_ANALYSIS_OK=1,X.MAX_ORDER=X.YULE_ORDER=10,X.MAX_SAMPLES_PER_WINDOW=(X.MAX_SAMP_FREQ=48e3)*(X.RMS_WINDOW_TIME_NUMERATOR=1)/(X.RMS_WINDOW_TIME_DENOMINATOR=20)+1,M.NUMTOCENTRIES=100,M.MAXFRAMESIZE=2880,q.EQ=function(e,t){return Math.abs(e)>Math.abs(t)?Math.abs(e-t)<=1e-6*Math.abs(e):Math.abs(e-t)<=1e-6*Math.abs(t)},q.NEQ=function(e,t){return!q.EQ(e,t)};var j={};function F(e){this.bits=e}function T(){this.over_noise=0,this.tot_noise=0,this.max_noise=0,this.over_count=0,this.over_SSD=0,this.bits=0}function r(e,t,a,s){this.l=Be(1+Pe.SBMAX_l),this.s=Be(1+Pe.SBMAX_s),this.psfb21=Be(1+Pe.PSFB21),this.psfb12=Be(1+Pe.PSFB12);var n=this.l,r=this.s;4==arguments.length&&(this.arrL=e,this.arrS=t,this.arr21=a,this.arr12=s,$.arraycopy(this.arrL,0,n,0,Math.min(this.arrL.length,this.l.length)),$.arraycopy(this.arrS,0,r,0,Math.min(this.arrS.length,this.s.length)),$.arraycopy(this.arr21,0,this.psfb21,0,Math.min(this.arr21.length,this.psfb21.length)),$.arraycopy(this.arr12,0,this.psfb12,0,Math.min(this.arr12.length,this.psfb12.length)))}function y(){var l=null,m=null,s=null;this.setModules=function(e,t,a){l=e,m=t,s=a},this.IPOW20=function(e){return u[e]};var x=2.220446049250313e-16,f=y.IXMAX_VAL+2,c=y.Q_MAX,h=y.Q_MAX2,n=100;this.nr_of_sfb_block=[[[6,5,5,5],[9,9,9,9],[6,9,9,9]],[[6,5,7,3],[9,9,12,6],[6,9,12,6]],[[11,10,0,0],[18,18,0,0],[15,18,0,0]],[[7,7,7,0],[12,12,12,0],[6,15,12,0]],[[6,6,6,3],[12,9,9,6],[6,12,9,6]],[[8,8,5,0],[15,12,9,0],[6,18,9,0]]];var w=[0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,2,2,3,3,3,2,0];this.pretab=w,this.sfBandIndex=[new r([0,6,12,18,24,30,36,44,54,66,80,96,116,140,168,200,238,284,336,396,464,522,576],[0,4,8,12,18,24,32,42,56,74,100,132,174,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new r([0,6,12,18,24,30,36,44,54,66,80,96,114,136,162,194,232,278,332,394,464,540,576],[0,4,8,12,18,26,36,48,62,80,104,136,180,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new r([0,6,12,18,24,30,36,44,54,66,80,96,116,140,168,200,238,284,336,396,464,522,576],[0,4,8,12,18,26,36,48,62,80,104,134,174,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new r([0,4,8,12,16,20,24,30,36,44,52,62,74,90,110,134,162,196,238,288,342,418,576],[0,4,8,12,16,22,30,40,52,66,84,106,136,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new r([0,4,8,12,16,20,24,30,36,42,50,60,72,88,106,128,156,190,230,276,330,384,576],[0,4,8,12,16,22,28,38,50,64,80,100,126,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new r([0,4,8,12,16,20,24,30,36,44,54,66,82,102,126,156,194,240,296,364,448,550,576],[0,4,8,12,16,22,30,42,58,78,104,138,180,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new r([0,6,12,18,24,30,36,44,54,66,80,96,116,140,168,200,238,284,336,396,464,522,576],[0,4,8,12,18,26,36,48,62,80,104,134,174,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new r([0,6,12,18,24,30,36,44,54,66,80,96,116,140,168,200,238,284,336,396,464,522,576],[0,4,8,12,18,26,36,48,62,80,104,134,174,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new r([0,12,24,36,48,60,72,88,108,132,160,192,232,280,336,400,476,566,568,570,572,574,576],[0,8,16,24,36,52,72,96,124,160,162,164,166,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0])];var R=Ae(c+h+1),u=Ae(c),p=Ae(f),b=Ae(f);function v(e,t){var a=s.ATHformula(t,e);return a-=n,a=Math.pow(10,a/10+e.ATHlower)}function B(e){this.s=e}this.adj43=b,this.iteration_init=function(e){var t,a=e.internal_flags,s=a.l3_side;if(0==a.iteration_init_init){for(a.iteration_init_init=1,s.main_data_begin=0,function(e){for(var t=e.internal_flags.ATH.l,a=e.internal_flags.ATH.psfb21,s=e.internal_flags.ATH.s,n=e.internal_flags.ATH.psfb12,r=e.internal_flags,i=e.out_samplerate,_=0;_<Pe.SBMAX_l;_++){var o=r.scalefac_band.l[_],l=r.scalefac_band.l[_+1];t[_]=K.MAX_VALUE;for(var f=o;f<l;f++){var c=v(e,f*i/1152);t[_]=Math.min(t[_],c)}}for(_=0;_<Pe.PSFB21;_++)for(o=r.scalefac_band.psfb21[_],l=r.scalefac_band.psfb21[_+1],a[_]=K.MAX_VALUE,f=o;f<l;f++)c=v(e,f*i/1152),a[_]=Math.min(a[_],c);for(_=0;_<Pe.SBMAX_s;_++){for(o=r.scalefac_band.s[_],l=r.scalefac_band.s[_+1],s[_]=K.MAX_VALUE,f=o;f<l;f++)c=v(e,f*i/384),s[_]=Math.min(s[_],c);s[_]*=r.scalefac_band.s[_+1]-r.scalefac_band.s[_]}for(_=0;_<Pe.PSFB12;_++){for(o=r.scalefac_band.psfb12[_],l=r.scalefac_band.psfb12[_+1],n[_]=K.MAX_VALUE,f=o;f<l;f++)c=v(e,f*i/384),n[_]=Math.min(n[_],c);n[_]*=r.scalefac_band.s[13]-r.scalefac_band.s[12]}if(e.noATH){for(_=0;_<Pe.SBMAX_l;_++)t[_]=1e-20;for(_=0;_<Pe.PSFB21;_++)a[_]=1e-20;for(_=0;_<Pe.SBMAX_s;_++)s[_]=1e-20;for(_=0;_<Pe.PSFB12;_++)n[_]=1e-20}r.ATH.floor=10*A(v(e,-1))}(e),p[0]=0,t=1;t<f;t++)p[t]=Math.pow(t,4/3);for(t=0;t<f-1;t++)b[t]=t+1-Math.pow(.5*(p[t]+p[t+1]),.75);for(b[t]=.5,t=0;t<c;t++)u[t]=Math.pow(2,-.1875*(t-210));for(t=0;t<=c+h;t++)R[t]=Math.pow(2,.25*(t-210-h));var n,r,i,_;for(l.huffman_init(a),32<=(t=e.exp_nspsytune>>2&63)&&(t-=64),n=Math.pow(10,t/4/10),32<=(t=e.exp_nspsytune>>8&63)&&(t-=64),r=Math.pow(10,t/4/10),32<=(t=e.exp_nspsytune>>14&63)&&(t-=64),i=Math.pow(10,t/4/10),32<=(t=e.exp_nspsytune>>20&63)&&(t-=64),_=i*Math.pow(10,t/4/10),t=0;t<Pe.SBMAX_l;t++){o=t<=6?n:t<=13?r:t<=20?i:_,a.nsPsy.longfact[t]=o}for(t=0;t<Pe.SBMAX_s;t++){var o;o=t<=5?n:t<=10?r:t<=11?i:_,a.nsPsy.shortfact[t]=o}}},this.on_pe=function(e,t,a,s,n,r){var i,_,o=e.internal_flags,l=0,f=Be(2),c=new F(l),h=m.ResvMaxBits(e,s,c,r),u=(l=c.bits)+h;for(Z.MAX_BITS_PER_GRANULE<u&&(u=Z.MAX_BITS_PER_GRANULE),_=i=0;_<o.channels_out;++_)a[_]=Math.min(Z.MAX_BITS_PER_CHANNEL,l/o.channels_out),f[_]=0|a[_]*t[n][_]/700-a[_],f[_]>3*s/4&&(f[_]=3*s/4),f[_]<0&&(f[_]=0),f[_]+a[_]>Z.MAX_BITS_PER_CHANNEL&&(f[_]=Math.max(0,Z.MAX_BITS_PER_CHANNEL-a[_])),i+=f[_];if(h<i)for(_=0;_<o.channels_out;++_)f[_]=h*f[_]/i;for(_=0;_<o.channels_out;++_)a[_]+=f[_],h-=f[_];for(_=i=0;_<o.channels_out;++_)i+=a[_];if(Z.MAX_BITS_PER_GRANULE<i){for(_=0;_<o.channels_out;++_)a[_]*=Z.MAX_BITS_PER_GRANULE,a[_]/=i,a[_]}return u},this.reduce_side=function(e,t,a,s){var n=.33*(.5-t)/.5;n<0&&(n=0),.5<n&&(n=.5);var r=0|.5*n*(e[0]+e[1]);r>Z.MAX_BITS_PER_CHANNEL-e[0]&&(r=Z.MAX_BITS_PER_CHANNEL-e[0]),r<0&&(r=0),125<=e[1]&&(125<e[1]-r?(e[0]<a&&(e[0]+=r),e[1]-=r):(e[0]+=e[1]-125,e[1]=125)),s<(r=e[0]+e[1])&&(e[0]=s*e[0]/r,e[1]=s*e[1]/r)},this.athAdjust=function(e,t,a){var s=90.30873362,n=ee.FAST_LOG10_X(t,10),r=e*e,i=0;return n-=a,1e-20<r&&(i=1+ee.FAST_LOG10_X(r,10/s)),i<0&&(i=0),n*=i,n+=a+s-94.82444863,Math.pow(10,.1*n)},this.calc_xmin=function(e,t,a,s){var n,r=0,i=e.internal_flags,_=0,o=0,l=i.ATH,f=a.xr,c=e.VBR==ye.vbr_mtrh?1:0,h=i.masking_lower;for(e.VBR!=ye.vbr_mtrh&&e.VBR!=ye.vbr_mt||(h=1),n=0;n<a.psy_lmax;n++){S=(g=e.VBR==ye.vbr_rh||e.VBR==ye.vbr_mtrh?athAdjust(l.adjust,l.l[n],l.floor):l.adjust*l.l[n])/(b=a.width[n]),M=x,A=b>>1,B=0;do{B+=k=f[_]*f[_],M+=k<S?k:S,B+=T=f[++_]*f[_],M+=T<S?T:S,_++}while(0<--A);if(g<B&&o++,n==Pe.SBPSY_l)M<(R=g*i.nsPsy.longfact[n])&&(M=R);if(0!=c&&(g=M),!e.ATHonly)if(0<(w=t.en.l[n]))R=B*t.thm.l[n]*h/w,0!=c&&(R*=i.nsPsy.longfact[n]),g<R&&(g=R);s[r++]=0!=c?g:g*i.nsPsy.longfact[n]}var u=575;if(a.block_type!=Pe.SHORT_TYPE)for(var m=576;0!=m--&&q.EQ(f[m],0);)u=m;a.max_nonzero_coeff=u;for(var p=a.sfb_smin;n<a.psymax;p++,n+=3){var b,v,d;for(d=e.VBR==ye.vbr_rh||e.VBR==ye.vbr_mtrh?athAdjust(l.adjust,l.s[p],l.floor):l.adjust*l.s[p],b=a.width[n],v=0;v<3;v++){var g,S,M,w,R,B=0,A=b>>1;S=d/b,M=x;do{var k,T;B+=k=f[_]*f[_],M+=k<S?k:S,B+=T=f[++_]*f[_],M+=T<S?T:S,_++}while(0<--A);if(d<B&&o++,p==Pe.SBPSY_s)M<(R=d*i.nsPsy.shortfact[p])&&(M=R);if(g=0!=c?M:d,!e.ATHonly&&!e.ATHshort)if(0<(w=t.en.s[p][v]))R=B*t.thm.s[p][v]*h/w,0!=c&&(R*=i.nsPsy.shortfact[p]),g<R&&(g=R);s[r++]=0!=c?g:g*i.nsPsy.shortfact[p]}e.useTemporal&&(s[r-3]>s[r-3+1]&&(s[r-3+1]+=(s[r-3]-s[r-3+1])*i.decay),s[r-3+1]>s[r-3+2]&&(s[r-3+2]+=(s[r-3+1]-s[r-3+2])*i.decay))}return o},this.calc_noise_core=function(e,t,a,s){var n=0,r=t.s,i=e.l3_enc;if(r>e.count1)for(;0!=a--;){o=e.xr[r],r++,n+=o*o,o=e.xr[r],r++,n+=o*o}else if(r>e.big_values){var _=Ae(2);for(_[0]=0,_[1]=s;0!=a--;){o=Math.abs(e.xr[r])-_[i[r]],r++,n+=o*o,o=Math.abs(e.xr[r])-_[i[r]],r++,n+=o*o}}else for(;0!=a--;){var o;o=Math.abs(e.xr[r])-p[i[r]]*s,r++,n+=o*o,o=Math.abs(e.xr[r])-p[i[r]]*s,r++,n+=o*o}return t.s=r,n},this.calc_noise=function(e,t,a,s,n){var r,i,_=0,o=0,l=0,f=0,c=0,h=-20,u=0,m=e.scalefac,p=0;for(r=s.over_SSD=0;r<e.psymax;r++){var b,v=e.global_gain-(m[p++]+(0!=e.preflag?w[r]:0)<<e.scalefac_scale+1)-8*e.subblock_gain[e.window[r]],d=0;if(null!=n&&n.step[r]==v)d=n.noise[r],u+=e.width[r],a[_++]=d/t[o++],d=n.noise_log[r];else{var g,S=R[v+y.Q_MAX2];if(i=e.width[r]>>1,u+e.width[r]>e.max_nonzero_coeff)i=0<(g=e.max_nonzero_coeff-u+1)?g>>1:0;var M=new B(u);d=this.calc_noise_core(e,M,i,S),u=M.s,null!=n&&(n.step[r]=v,n.noise[r]=d),d=a[_++]=d/t[o++],d=ee.FAST_LOG10(Math.max(d,1e-20)),null!=n&&(n.noise_log[r]=d)}if(null!=n&&(n.global_gain=e.global_gain),c+=d,0<d)b=Math.max(0|10*d+.5,1),s.over_SSD+=b*b,l++,f+=d;h=Math.max(h,d)}return s.over_count=l,s.tot_noise=c,s.over_noise=f,s.max_noise=h,l},this.set_pinfo=function(e,t,a,s,n){var r,i,_,o,l,f=e.internal_flags,c=0==t.scalefac_scale?.5:1,h=t.scalefac,u=Ae(z.SFBMAX),m=Ae(z.SFBMAX),p=new T;calc_xmin(e,a,t,u),calc_noise(t,u,m,p,null);var b=0;for(i=t.sfb_lmax,t.block_type!=Pe.SHORT_TYPE&&0==t.mixed_block_flag&&(i=22),r=0;r<i;r++){var v=f.scalefac_band.l[r],d=(g=f.scalefac_band.l[r+1])-v;for(o=0;b<g;b++)o+=t.xr[b]*t.xr[b];o/=d,l=1e15,f.pinfo.en[s][n][r]=l*o,f.pinfo.xfsf[s][n][r]=l*u[r]*m[r]/d,0<a.en.l[r]&&!e.ATHonly?o/=a.en.l[r]:o=0,f.pinfo.thr[s][n][r]=l*Math.max(o*a.thm.l[r],f.ATH.l[r]),(f.pinfo.LAMEsfb[s][n][r]=0)!=t.preflag&&11<=r&&(f.pinfo.LAMEsfb[s][n][r]=-c*w[r]),r<Pe.SBPSY_l&&(f.pinfo.LAMEsfb[s][n][r]-=c*h[r])}if(t.block_type==Pe.SHORT_TYPE)for(i=r,r=t.sfb_smin;r<Pe.SBMAX_s;r++){v=f.scalefac_band.s[r],d=(g=f.scalefac_band.s[r+1])-v;for(var g,S=0;S<3;S++){for(o=0,_=v;_<g;_++)o+=t.xr[b]*t.xr[b],b++;o=Math.max(o/d,1e-20),l=1e15,f.pinfo.en_s[s][n][3*r+S]=l*o,f.pinfo.xfsf_s[s][n][3*r+S]=l*u[i]*m[i]/d,0<a.en.s[r][S]?o/=a.en.s[r][S]:o=0,(e.ATHonly||e.ATHshort)&&(o=0),f.pinfo.thr_s[s][n][3*r+S]=l*Math.max(o*a.thm.s[r][S],f.ATH.s[r]),f.pinfo.LAMEsfb_s[s][n][3*r+S]=-2*t.subblock_gain[S],r<Pe.SBPSY_s&&(f.pinfo.LAMEsfb_s[s][n][3*r+S]-=c*h[i]),i++}}f.pinfo.LAMEqss[s][n]=t.global_gain,f.pinfo.LAMEmainbits[s][n]=t.part2_3_length+t.part2_length,f.pinfo.LAMEsfbits[s][n]=t.part2_length,f.pinfo.over[s][n]=p.over_count,f.pinfo.max_noise[s][n]=10*p.max_noise,f.pinfo.over_noise[s][n]=10*p.over_noise,f.pinfo.tot_noise[s][n]=10*p.tot_noise,f.pinfo.over_SSD[s][n]=p.over_SSD}}function x(){this.xr=Ae(576),this.l3_enc=Be(576),this.scalefac=Be(z.SFBMAX),this.xrpow_max=0,this.part2_3_length=0,this.big_values=0,this.count1=0,this.global_gain=0,this.scalefac_compress=0,this.block_type=0,this.mixed_block_flag=0,this.table_select=Be(3),this.subblock_gain=Be(4),this.region0_count=0,this.region1_count=0,this.preflag=0,this.scalefac_scale=0,this.count1table_select=0,this.part2_length=0,this.sfb_lmax=0,this.sfb_smin=0,this.psy_lmax=0,this.sfbmax=0,this.psymax=0,this.sfbdivide=0,this.width=Be(z.SFBMAX),this.window=Be(z.SFBMAX),this.count1bits=0,this.sfb_partition_table=null,this.slen=Be(4),this.max_nonzero_coeff=0;var a=this;function s(e){return new Int32Array(e)}this.assign=function(e){var t;a.xr=(t=e.xr,new Float32Array(t)),a.l3_enc=s(e.l3_enc),a.scalefac=s(e.scalefac),a.xrpow_max=e.xrpow_max,a.part2_3_length=e.part2_3_length,a.big_values=e.big_values,a.count1=e.count1,a.global_gain=e.global_gain,a.scalefac_compress=e.scalefac_compress,a.block_type=e.block_type,a.mixed_block_flag=e.mixed_block_flag,a.table_select=s(e.table_select),a.subblock_gain=s(e.subblock_gain),a.region0_count=e.region0_count,a.region1_count=e.region1_count,a.preflag=e.preflag,a.scalefac_scale=e.scalefac_scale,a.count1table_select=e.count1table_select,a.part2_length=e.part2_length,a.sfb_lmax=e.sfb_lmax,a.sfb_smin=e.sfb_smin,a.psy_lmax=e.psy_lmax,a.sfbmax=e.sfbmax,a.psymax=e.psymax,a.sfbdivide=e.sfbdivide,a.width=s(e.width),a.window=s(e.window),a.count1bits=e.count1bits,a.sfb_partition_table=e.sfb_partition_table.slice(0),a.slen=s(e.slen),a.max_nonzero_coeff=e.max_nonzero_coeff}}j.t1HB=[1,1,1,0],j.t2HB=[1,2,1,3,1,1,3,2,0],j.t3HB=[3,2,1,1,1,1,3,2,0],j.t5HB=[1,2,6,5,3,1,4,4,7,5,7,1,6,1,1,0],j.t6HB=[7,3,5,1,6,2,3,2,5,4,4,1,3,3,2,0],j.t7HB=[1,2,10,19,16,10,3,3,7,10,5,3,11,4,13,17,8,4,12,11,18,15,11,2,7,6,9,14,3,1,6,4,5,3,2,0],j.t8HB=[3,4,6,18,12,5,5,1,2,16,9,3,7,3,5,14,7,3,19,17,15,13,10,4,13,5,8,11,5,1,12,4,4,1,1,0],j.t9HB=[7,5,9,14,15,7,6,4,5,5,6,7,7,6,8,8,8,5,15,6,9,10,5,1,11,7,9,6,4,1,14,4,6,2,6,0],j.t10HB=[1,2,10,23,35,30,12,17,3,3,8,12,18,21,12,7,11,9,15,21,32,40,19,6,14,13,22,34,46,23,18,7,20,19,33,47,27,22,9,3,31,22,41,26,21,20,5,3,14,13,10,11,16,6,5,1,9,8,7,8,4,4,2,0],j.t11HB=[3,4,10,24,34,33,21,15,5,3,4,10,32,17,11,10,11,7,13,18,30,31,20,5,25,11,19,59,27,18,12,5,35,33,31,58,30,16,7,5,28,26,32,19,17,15,8,14,14,12,9,13,14,9,4,1,11,4,6,6,6,3,2,0],j.t12HB=[9,6,16,33,41,39,38,26,7,5,6,9,23,16,26,11,17,7,11,14,21,30,10,7,17,10,15,12,18,28,14,5,32,13,22,19,18,16,9,5,40,17,31,29,17,13,4,2,27,12,11,15,10,7,4,1,27,12,8,12,6,3,1,0],j.t13HB=[1,5,14,21,34,51,46,71,42,52,68,52,67,44,43,19,3,4,12,19,31,26,44,33,31,24,32,24,31,35,22,14,15,13,23,36,59,49,77,65,29,40,30,40,27,33,42,16,22,20,37,61,56,79,73,64,43,76,56,37,26,31,25,14,35,16,60,57,97,75,114,91,54,73,55,41,48,53,23,24,58,27,50,96,76,70,93,84,77,58,79,29,74,49,41,17,47,45,78,74,115,94,90,79,69,83,71,50,59,38,36,15,72,34,56,95,92,85,91,90,86,73,77,65,51,44,43,42,43,20,30,44,55,78,72,87,78,61,46,54,37,30,20,16,53,25,41,37,44,59,54,81,66,76,57,54,37,18,39,11,35,33,31,57,42,82,72,80,47,58,55,21,22,26,38,22,53,25,23,38,70,60,51,36,55,26,34,23,27,14,9,7,34,32,28,39,49,75,30,52,48,40,52,28,18,17,9,5,45,21,34,64,56,50,49,45,31,19,12,15,10,7,6,3,48,23,20,39,36,35,53,21,16,23,13,10,6,1,4,2,16,15,17,27,25,20,29,11,17,12,16,8,1,1,0,1],j.t15HB=[7,12,18,53,47,76,124,108,89,123,108,119,107,81,122,63,13,5,16,27,46,36,61,51,42,70,52,83,65,41,59,36,1