From 55026d6575467a5c7d0108a01bc8758352f559df Mon Sep 17 00:00:00 2001 From: Borewit Date: Thu, 17 Jul 2025 11:51:11 +0200 Subject: [PATCH] Remove build files from repository Ignore custom user configuration file --- .gitignore | 6 +++++ public/audioMotion.js | 2 -- public/audioMotion.js.LICENSE.txt | 30 ------------------------ public/vendors.js | 2 -- public/vendors.js.LICENSE.txt | 38 ------------------------------- 5 files changed, 6 insertions(+), 72 deletions(-) delete mode 100644 public/audioMotion.js delete mode 100644 public/audioMotion.js.LICENSE.txt delete mode 100644 public/vendors.js delete mode 100644 public/vendors.js.LICENSE.txt diff --git a/.gitignore b/.gitignore index 63eb428..96f6e71 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,11 @@ **/node_modules package-lock.json +# Build files +public/audioMotion.js +public/audioMotion.js.LICENSE.txt +public/vendors.js +public/vendors.js.LICENSE.txt + # User configuration public/config.yaml diff --git a/public/audioMotion.js b/public/audioMotion.js deleted file mode 100644 index 6b56f35..0000000 --- a/public/audioMotion.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see audioMotion.js.LICENSE.txt */ -(()=>{var e,t={6965:(e,t,a)=>{"use strict";var n=a(4015);const o="/music",s=!!window.showDirectoryPicker,i="Click to open a new root folder",r="No music found on server and no browser support for File System API",l=40,c="loading",d="local",u="server";let f,p,h,m,b,g=[],v=/.*/,k=[],y=!1,w=!1,x=!1;function L(e,t){m.innerHTML="",b.innerHTML="",b.style.backgroundImage="";const a=(e,t)=>{const a=document.createElement("li"),n=e.name||e;a.dataset.type=null!==n.match(/\.(m3u|m3u8)$/)&&"file"==t?"list":t,a.dataset.path=n,a.dataset.subs=+!!e.subs,a.innerText=n,a.handle=e.handle,a.dirHandle=e.dirHandle,a.subs=e.subs,b.append(a)},n=e=>b.style.backgroundImage="linear-gradient( #fff9 0%, #fff9 100% )"+(e?`, url('${e}')`:"");if(0==k.length&&(m.innerHTML=r),g.forEach((({dir:e},t)=>{m.innerHTML+=`
  • ${e}
  • ${"/"==e?"":"/"} `;let a=0;for(;m.getBoundingClientRect().height>l&&a{b.innerHTML+=`
  • [ ${e} ]
  • `})),g.length>1&&(b.innerHTML+='
  • [ parent folder ]
  • '),e){const{cover:t,dirs:o,files:s}=e;o&&o.forEach((e=>a(e,"dir"))),s&&s.forEach((e=>a(e,"file"))),t&&t.handle?t.handle.getFile().then((e=>n(URL.createObjectURL(e)))):n(t?C(t.name):"")}b.scrollTop=t||0}async function S(e,t){let a,n=e&&"string"!=typeof e?e:null,o=f,s=[...g];const i=m.parentElement;if(n&&(e=n.name),e)if(".."==e){a=g.pop();const e=g[g.length-1];e&&e.handle&&(n=e.handle)}else g.push({dir:e,scrollTop:b.scrollTop,handle:n});i.classList.add(c),i.classList.toggle(d,w),i.classList.toggle(u,x&&!w),f&&n&&(f=n);const r=await T(C(),f);return i.classList.remove(c),!1!==r?(L(r,t||a&&a.scrollTop),h&&h(g),!0):(g=s,f=o,!1)}function E(e){return e.replace(/[#%&]/g,(e=>({"#":"%23","%":"%25","&":"%26"}[e])))}function C(e){let t="";return g.forEach((({dir:e})=>{t+=e+("/"==e?"":"/")})),e&&(t+=e),t=E(t),x&&"/"==t[0]&&(t=t.slice(1)),t}function $(e="li"){let t=[];return b.querySelectorAll(e).forEach((e=>{const{path:a,type:n}=e.dataset,{handle:o,dirHandle:s,subs:i}=e;["file","list"].includes(n)&&t.push({file:C(a),handle:o,dirHandle:s,subs:i,type:n})})),t}async function T(e,t){let a;try{if(s&&t instanceof FileSystemDirectoryHandle){a=[];for await(const[e,n]of t.entries())a.push({name:e,handle:n,dirHandle:t})}else{const t=await fetch(e);a=!!t.ok&&await t.text()}}catch(e){a=!1}return!1!==a&&function(e,t){const a=/\.(jpg|jpeg|webp|avif|png|gif|bmp)$/i,n=/\.vtt$/i;let o=[],i=[],r=[],l=[];const c=(e,t)=>{const n=new RegExp(`${t}.*${a.source}`,"i");return e.find((e=>(e.name||e).match(n)))};if(Array.isArray(e)&&s)for(const t of e){const{name:e,handle:s,dirHandle:c}=t;s instanceof FileSystemDirectoryHandle?o.push(t):s instanceof FileSystemFileHandle&&(e.match(a)?r.push(t):e.match(n)&&l.push(t),e.match(v)&&i.push(t))}else for(const{url:t,file:s}of _(e)){const e={name:s};"/"==t.slice(-1)?o.push(e):(s.match(a)?r.push(e):s.match(n)&&l.push(e),s.match(v)&&i.push(e))}for(const e of l){const{name:a,handle:n}=e,[,o,,s]=a.match(/(.*?)(\.([a-z]{0,3}))?\.vtt$/i)||[],r=i.find((e=>e.name.startsWith(o)));r&&(r.subs={src:t?t+a:C(a),lang:s,handle:n})}const d=c(r,"cover")||c(r,"folder")||c(r,"front")||r[0],u=new Intl.Collator,f=(e,t)=>u.compare(e.name,t.name);return{cover:d,dirs:o.sort(f),files:i.sort(f)}}(a,e)}async function A(e){const t=[...g],a=e.split("/");let n=t[t.length-1].handle;for(;a.length>1;){const e=a.shift();if(".."==e)t.pop(),n=t[t.length-1].handle;else{try{n=await n.getDirectoryHandle(e)}catch(e){return{}}t.push({handle:n})}}const o=a.shift(),s=n;try{n=await n.getFileHandle(o)}catch(e){n=void 0}return{handle:n,dirHandle:s}}function _(e){const t=e.match(/href="[^"]*"[^>]*>[^<]*<\/a>/gi);let a=[];for(const e of t){const[,t,n]=e.match(/href="([^"]*)"[^>]*>\s*([^<]*)<\/a>/i),o="/"==t.slice(-1),s=t.slice(t.lastIndexOf("/",o?t.length-2:void 0)+1),i=decodeURIComponent(s.slice(0,o?-1:void 0));o&&n.match(/^(parent directory|\.\.)/i)||a.push({url:s,file:i})}return a}async function O(e){const t=e&&e[e.length-1],a=f,n=[...g];g=e,t&&t.handle&&(f=t.handle);const o=!!e&&await S();return o||(f=a,g=n,w||g.length?w&&!f&&L():S(k[0])),o}var I=a(6015),P=(a(6216),a(7783)),M=a(246),R=a(4596),D=a.n(R);M.Ay.mount(new M.cR);const H=location.origin+location.pathname,F="25.7-beta.7",B="backgrounds/",N=4,q=2e3,j=-1,U="0",z="1",G="2",W="3",K="4",V="0",Y="1",J="2",X="0",Z="1",Q="2",ee="3",te="6",ae="7",ne="8",oe={album:"",artist:"",codec:"",cover:"",duration:"",file:"",quality:"",title:""},se="compact",ie="fit-video",re="warning",le="dual-combined",ce="single",de="gradient",ue="bar-index",fe="bar-level",pe=20,he=["mp3","flac","m4a","aac","ogg","wav"],me=["jpg","jpeg","webp","avif","png","gif","bmp"],be=["m3u","m3u8"],ge=["mkv","mpg","webm","mp4","avi","mov"],ve="local",ke="bgDir",ye="custom-grads",we="custom-preset",xe="disabled-bgfit",Le="disabled-gradients",Se="disabled-properties",Ee="display-options",Ce="force-filesystem",$e="general-settings",Te="last-config",Ae="last-dir",_e="last-version",Oe="peak-settings",Ie="playlists",Pe="playqueue",Me="sensitivity-presets",Re="subtitles-settings",De="pl_",He="11",Fe="0",Be="10",Ne="101",qe="close",je="open",Ue=0,ze=2,Ge="default",We="last",Ke="No description",Ve="0",Ye="1",Je="2",Xe="3",Ze="alpha",Qe="nobg",et="bands",tt="imgfit",at="colormode",nt="gradient",ot="leds",st="lumi",it="mode",rt="outline",lt="peaks",ct="presets",dt="radial",ut="reflex",ft="round",pt="split",ht="bark",mt="log",bt=0,gt=2,vt="config.json",kt={defaultAccessMode:ve,enableLocalAccess:!0,frontPanel:je},yt="shadow",wt="white",xt="subs-bg-",Lt="subs-color-",St="bottom",Et="center",Ct="show",$t="D",Tt=812,At=document.querySelector.bind(document),_t=document.querySelectorAll.bind(document),Ot=At("#alpha_bars"),It=At("#analyzer"),Pt=At("#ansi_bands"),Mt=At("#auto_hide"),Rt=At("#background"),Dt=At("#band_count"),Ht=At("#bar_space"),Ft=At("#bg_img_dim"),Bt=At("#bg_img_fit"),Nt=At("#bg_location"),qt=At("#bg_max_items"),jt=At("#channel_layout"),Ut=At("#color_mode"),zt=At("#bg_container"),Gt=At("#debug"),Wt=At("#bg_dim"),Kt=At("#end_timeout"),Vt=At("#fft_size"),Yt=At("#fill_alpha"),Jt=At("#fps"),Xt=At("#freq_scale"),Zt=At("#fs_height"),Qt=At("#gradient"),ea=At("#gradientRight"),ta=At("#gravity"),aa=At("#info_timeout"),na=At("#invert_volume"),oa=At("#led_display"),sa=At("#linear_amplitude"),ia=At("#line_width"),ra=At("#link_grads"),la=At("#lo_res"),ca=At("#lumi_bars"),da=At("#max_fps"),ua=At("#files_panel"),fa=At("#mirror"),pa=At("#mode"),ha=At("#mute"),ma=At("#no_dim_subs"),ba=At("#no_dim_video"),ga=At("#no_shadow"),va=At("#outline"),ka=At("#osd"),ya=At("#osd_font_size"),wa=At("#panel_selection"),xa=At("#peak_fade"),La=At("#peak_hold"),Sa=At("#pip_ratio"),Ea=At("#playlists"),Ca=At("#presets"),$a=At("#radial"),Ta=At("#radius"),Aa=At("#random_mode"),_a=At("#freq_max"),Oa=At("#freq_min"),Ia=At("#reduce_subs"),Pa=At("#reduce_video"),Ma=At("#reflex"),Ra=At("#repeat"),Da=At("#round_bars"),Ha=At("#save_dir"),Fa=At("#save_queue"),Ba=At("#scaleX"),Na=At("#scaleY"),qa=At("#sensitivity"),ja=At("#show_count"),Ua=At("#show_cover"),za=At("#show_peaks"),Ga=At("#show_song"),Wa=At("#show_subs"),Ka=At("#smoothing"),Va=At("#song_duration"),Ya=At("#current_time"),Ja=At("#progress"),Xa=At("#source"),Za=At("#spin"),Qa=At("#split_grad"),en=At("#subs_background"),tn=At("#subs_color"),an=At("#subs_position"),nn=At("#subs_position_audio"),on=At("#enable_surround"),sn=At("#toggle_panel"),rn=At("#track_timeout"),ln=At("#video"),cn=At("#video_fill"),dn=At("#volume"),un=At("#warp"),fn=At("#weighting"),pn=[{key:"demo",name:"Demo (random)",options:{randomMode:6}},{key:"bands",name:"Octave Bands",options:{alphaBars:0,ansiBands:0,background:G,barSpace:.25,bgImageDim:.3,bgImageFit:X,channelLayout:ce,colorMode:de,freqMax:2e4,freqMin:25,freqScale:mt,gradient:"rainbow",ledDisplay:0,linearAmpl:1,lumiBars:0,mirror:0,mode:"2",outlineBars:0,radial:0,randomMode:0,reflex:Ye,roundBars:0,showPeaks:1,showScaleX:gt,showScaleY:bt,showSong:1,splitGrad:0,weighting:$t}},{key:"ledbars",name:"Classic LED bars",options:{alphaBars:0,ansiBands:1,background:G,barSpace:.25,bgImageDim:.3,bgImageFit:Z,channelLayout:ce,colorMode:de,freqMax:2e4,freqMin:25,freqScale:mt,gradient:"classic",ledDisplay:1,linearAmpl:1,lumiBars:0,outlineBars:0,mirror:0,mode:"6",radial:0,randomMode:0,reflex:Ve,roundBars:0,showPeaks:1,showScaleX:1,showScaleY:bt,showSong:1,splitGrad:0,weighting:$t}},{key:"dual",name:"Dual-channel combined Graph, Bark frequency scale",options:{ansiBands:0,background:G,bgImageDim:.3,bgImageFit:Z,channelLayout:le,colorMode:de,fillAlpha:.3,freqMax:2e4,freqMin:20,freqScale:ht,gradient:"cool",gradientRight:"dusk",linearAmpl:1,lineWidth:1.5,linkGrads:0,mirror:0,mode:Ne,radial:0,randomMode:0,reflex:Ve,showPeaks:Ue,showScaleX:bt,showScaleY:bt,showSong:1,splitGrad:0,weighting:$t}},{key:"radial",name:"Radial Color by Level",options:{alphaBars:1,ansiBands:0,background:G,barSpace:.1,bgImageDim:.3,bgImageFit:ee,channelLayout:ce,colorMode:fe,freqMax:2e4,freqMin:20,freqScale:mt,gradient:"prism",ledDisplay:0,linearAmpl:1,lumiBars:0,mirror:0,mode:"5",outlineBars:0,radial:1,radius:.35,randomMode:0,showPeaks:1,showScaleX:1,showScaleY:bt,showSong:1,spin:1,splitGrad:0,weighting:$t}},{key:"round",name:"Round Bars reflex",options:{alphaBars:0,background:G,barSpace:.25,bgImageDim:.3,bgImageFit:ae,channelLayout:ce,colorMode:ue,freqMax:2e4,freqMin:20,freqScale:mt,gradient:"apple",ledDisplay:0,linearAmpl:1,lumiBars:0,mirror:0,mode:"3",outlineBars:0,radial:0,randomMode:0,reflex:Je,roundBars:1,showPeaks:Ue,showScaleX:bt,showScaleY:bt,showSong:1,splitGrad:0,weighting:$t}},{key:We,name:"Last session",options:{}},{key:Ge,name:"Restore defaults",options:{alphaBars:0,ansiBands:0,background:U,bandCount:"6",barSpace:.1,bgImageDim:.5,bgImageFit:Z,channelLayout:ce,colorMode:de,fftSize:8192,fillAlpha:.1,freqMax:2e4,freqMin:20,freqScale:mt,gradient:"prism",gradientRight:"prism",ledDisplay:0,linearAmpl:0,lineWidth:2,linkGrads:0,loRes:0,lumiBars:0,micSource:0,mirror:0,mode:Fe,mute:0,noShadow:1,outlineBars:0,radial:0,radius:.35,randomMode:0,reflex:Ve,repeat:0,roundBars:0,sensitivity:1,showFPS:0,showPeaks:1,showScaleX:1,showScaleY:bt,showSong:1,showSubtitles:1,smoothing:.7,spin:2,splitGrad:0,volume:1,weighting:""}}],hn={apple:{name:"Apple ][",colorStops:[{pos:.1667,color:"#61bb46"},{pos:.3333,color:"#fdb827"},{pos:.5,color:"#f5821f"},{pos:.6667,color:"#e03a3e"},{pos:.8333,color:"#963d97"},{pos:1,color:"#009ddc"}],disabled:!1},aurora:{name:"Aurora",bgColor:"#0e172a",colorStops:[{pos:.1,color:"hsl( 120, 100%, 50% )"},{pos:1,color:"hsl( 216, 100%, 50% )"}],disabled:!1},borealis:{name:"Borealis",bgColor:"#0d1526",colorStops:[{pos:.1,color:"hsl( 120, 100%, 50% )"},{pos:.5,color:"hsl( 189, 100%, 40% )"},{pos:1,color:"hsl( 290, 60%, 40% )"}],disabled:!1},candy:{name:"Candy",bgColor:"#0d0619",colorStops:[{pos:.1,color:"#ffaf7b"},{pos:.5,color:"#d76d77"},{pos:1,color:"#3a1c71"}],disabled:!1},classic:{name:"Classic",colorStops:["#f00",{color:"#ff0",level:.85,pos:.6},{color:"#0f0",level:.475}],disabled:!1},cool:{name:"Cool",bgColor:"#0b202b",colorStops:["hsl( 208, 0%, 100% )","hsl( 208, 100%, 35% )"],disabled:!1},dusk:{name:"Dusk",bgColor:"#0e172a",colorStops:[{pos:.2,color:"hsl( 55, 100%, 50% )"},{pos:1,color:"hsl( 16, 100%, 50% )"}],disabled:!1},miami:{name:"Miami",bgColor:"#110a11",colorStops:[{pos:.024,color:"rgb( 251, 198, 6 )"},{pos:.283,color:"rgb( 224, 82, 95 )"},{pos:.462,color:"rgb( 194, 78, 154 )"},{pos:.794,color:"rgb( 32, 173, 190 )"},{pos:1,color:"rgb( 22, 158, 95 )"}],disabled:!1},orient:{name:"Orient",bgColor:"#100",colorStops:[{pos:.1,color:"#f00"},{pos:1,color:"#600"}],disabled:!1},outrun:{name:"Outrun",bgColor:"#101",colorStops:[{pos:0,color:"rgb( 255, 223, 67 )"},{pos:.182,color:"rgb( 250, 84, 118 )"},{pos:.364,color:"rgb( 198, 59, 243 )"},{pos:.525,color:"rgb( 133, 80, 255 )"},{pos:.688,color:"rgb( 74, 104, 247 )"},{pos:1,color:"rgb( 35, 210, 255 )"}],disabled:!1},pacific:{name:"Pacific Dream",bgColor:"#051319",colorStops:[{pos:.1,color:"#34e89e"},{pos:1,color:"#0f3443"}],disabled:!1},prism:{name:"Prism",colorStops:["#a35","#c66","#e94","#ed0","#9d5","#4d8","#2cb","#0bc","#09c","#36b"],disabled:!1},prism_old:{name:"Prism (legacy)",colorStops:["hsl( 0, 100%, 50% )","hsl( 60, 100%, 50% )","hsl( 120, 100%, 50% )","hsl( 180, 100%, 50% )","hsl( 240, 100%, 50% )"],disabled:!0},rainbow:{name:"Rainbow",dir:"h",colorStops:["#817","#a35","#c66","#e94","#ed0","#9d5","#4d8","#2cb","#0bc","#09c","#36b","#639"],disabled:!1},rainbow_old:{name:"Rainbow (legacy)",dir:"h",colorStops:["hsl( 0, 100%, 50% )","hsl( 60, 100%, 50% )","hsl( 120, 100%, 50% )","hsl( 180, 100%, 47% )","hsl( 240, 100%, 58% )","hsl( 300, 100%, 50% )","hsl( 360, 100%, 50% )"],disabled:!0},shahabi:{name:"Shahabi",bgColor:"#060613",colorStops:[{pos:.1,color:"#66ff00"},{pos:1,color:"#a80077"}],disabled:!1},summer:{name:"Summer",bgColor:"#041919",colorStops:[{pos:.1,color:"#fdbb2d"},{pos:1,color:"#22c1c3"}],disabled:!1},sunset:{name:"Sunset",bgColor:"#021119",colorStops:[{pos:.1,color:"#f56217"},{pos:1,color:"#0b486b"}],disabled:!1},tiedye:{name:"Tie Dye",colorStops:[{pos:.038,color:"rgb( 15, 209, 165 )"},{pos:.208,color:"rgb( 15, 157, 209 )"},{pos:.519,color:"rgb( 133, 13, 230 )"},{pos:.731,color:"rgb( 230, 13, 202 )"},{pos:.941,color:"rgb( 242, 180, 107 )"}],disabled:!1}},mn=[[He,"Bars"],[Fe,"FFT"],[Be,"Graph"]],bn=[[ce,"Single"],[le,"Comb"],["dual-horizontal","Horiz"],["dual-vertical","Vert"]],gn=[{value:ct,text:"User Presets",disabled:!0},{value:Ze,text:"Alpha",disabled:!1},{value:it,text:"Analyzer Mode",disabled:!1},{value:Qe,text:"Background",disabled:!1},{value:tt,text:"BG Image Fit",disabled:!1},{value:et,text:"Band Count",disabled:!1},{value:at,text:"Color Mode",disabled:!1},{value:nt,text:"Gradients",disabled:!1},{value:ot,text:"LEDs",disabled:!1},{value:st,text:"Lumi",disabled:!1},{value:rt,text:"Outline",disabled:!1},{value:lt,text:"Peaks",disabled:!1},{value:dt,text:"Radial",disabled:!1},{value:ut,text:"Reflex",disabled:!1},{value:ft,text:"Round",disabled:!1},{value:pt,text:"Split",disabled:!1}],vn=[{min:-70,max:-20,boost:1},{min:-85,max:-25,boost:1.6},{min:-100,max:-30,boost:2.4}],kn=[Kt,aa,ya,ja,Ua,rn],yn={info:5,track:10,end:10,covers:!0,count:!0,osdFontSize:"1"},wn=[{value:X,text:"Adjust",disabled:!1},{value:Z,text:"Center",disabled:!1},{value:ee,text:"Pulse",disabled:!1},{value:Q,text:"Repeat",disabled:!1},{value:te,text:"Warp",disabled:!1},{value:ae,text:"Warp Drive",disabled:!1},{value:ne,text:"Wormhole",disabled:!1},{value:"4",text:"Zoom In",disabled:!1},{value:"5",text:"Zoom Out",disabled:!1}],xn=[Mt,Nt,qt,Zt,na,da,Sa,Ha,Fa,on],Ln={autoHide:!1,bgLocation:Y,bgMaxItems:100,fsHeight:100,invertVol:!1,maxFPS:60,pipRatio:2.35,saveDir:!0,saveQueue:!0,surround:!1},Sn=[[30,"30"],[60,"60"],[0,"unlimited"]],En=[[1,"1:1"],[1.33,"4:3"],[1.78,"16:9"],[2.35,"2.35:1"],[3.55,"32:9"]],Cn=[ta,xa,La],$n={gravity:3.8,peakFade:750,peakHold:500},Tn=[ma,ba,Ia,Pa,en,tn,an,nn,cn],An={background:yt,color:wt,noDimVideo:!0,noDimSubs:!0,posAudio:"top",position:St,reduceOnSubs:!1,reduceOnVideo:!0,videoFill:!0},_n=[{value:"files_panel",text:"Media"},{value:"settings",text:"Settings"},{value:"advanced",text:"Advanced"},{value:"console",text:"Console"}];let On,In,Pn,Mn,Rn,Dn,Hn,Fn,Bn,Nn,qn,jn,Un,zn,Gn,Wn,Kn,Vn,Yn,Jn,Xn,Zn,Qn,eo,to,ao,no,oo,so,io=[],ro=[],lo=[],co={},uo=null,fo={},po=!1,ho=0,mo=[],bo=!1,go=!1,vo=0;const ko=ka.getContext("2d"),yo=new Image,wo=document.createElement("video"),xo=e=>"data:text/json;charset=utf-8,"+encodeURIComponent(JSON.stringify(e,null,2)),Lo=e=>Math.round(100*e)/100,So=(e,t="")=>(e+"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]/g,t),Eo=e=>{if(!e)return;let t=0;for(;e=e.previousElementSibling;)t++;return t},Co=e=>{let t="";if(Mo(e)){const a=e.querySelector(":checked ~ label");a&&(t=a.textContent)}else t=e[e.selectedIndex].text;return t},$o=e=>{let t=e.value;return e==Dt?t=9-t:Mo(e)?t=e.elements[e.dataset.prop].value:e.className.includes("switch")&&(t=e.dataset.active||0),""+t},To=e=>({alphaBars:$o(Ot),ansiBands:$o(Pt),background:$o(Rt),bandCount:$o(Dt),barSpace:$o(Ht),bgImageDim:$o(Ft),bgImageFit:$o(Bt),channelLayout:$o(jt),colorMode:$o(Ut),fftSize:$o(Vt),fillAlpha:$o(Yt),freqMax:$o(_a),freqMin:$o(Oa),freqScale:$o(Xt),gradient:$o(Qt),gradientRight:$o(ea),ledDisplay:$o(oa),linearAmpl:$o(sa),lineWidth:$o(ia),linkGrads:$o(ra),loRes:$o(la),lumiBars:$o(ca),mirror:$o(fa),mode:$o(pa),noShadow:$o(ga),outlineBars:$o(va),radial:$o($a),radius:$o(Ta),randomMode:$o(Aa),reflex:$o(Ma),repeat:$o(Ra),roundBars:$o(Da),sensitivity:$o(qa),showFPS:$o(Jt),showPeaks:$o(za),showScaleX:$o(Ba),showScaleY:$o(Na),showSong:$o(Ga),showSubtitles:$o(Wa),smoothing:$o(Ka),spin:$o(Za),splitGrad:$o(Qa),weighting:$o(fn)}),Ao=e=>{const t=+e==e?e:pn.findIndex((t=>t.key==e));return t<0||t>pn.length-1?-1:t},_o=e=>{const t=Ao(e);return-1==t?{}:pn[t].options},Oo=e=>{const t=Ao(e);return-1!=t&&pn[t].name},Io=()=>{const e=$o(jt)!=ce&&!Bo(ra);return`Gradient${e?"s":""}: ${hn[Qt.value].name+(e?" / "+hn[ea.value].name:"")}`},Po=e=>e&&e.startsWith("blob:"),Mo=e=>"FORM"==e.tagName&&null!=e.dataset.prop,Ro=e=>e.startsWith("http")&&!e.startsWith(H),Do=e=>!e||"object"!=typeof e||!Object.keys(e).length,Ho=e=>zt.classList.contains("pip"),Fo=(e=io[In])=>e&&e.currentTime>0&&!e.paused&&!e.ended,Bo=e=>!!+$o(e),No=e=>"number"!=e.type||+e.value>=+e.min&&+e.value<=+e.max,qo=(e=io[In])=>ge.includes(zo(e.dataset.file).extension),jo=e=>"string"==typeof e?e.replace(/\\/g,"/"):e,Uo=e=>Bo(e)?"ON":"OFF",zo=e=>{if("string"!=typeof e)return{};const t=jo(e),a=t.lastIndexOf("/")+1,n=t.slice(0,a),o=t.slice(a),s=o.lastIndexOf("."),i=s>=0?o.slice(0,s):o,r=s>=0?o.slice(s+1).toLowerCase():"";return{path:n,fileName:o,baseName:i,extension:r}},Go=e=>{const t=/\s*\([0-9]{4}\)/;let a=(e=e.replace(/_/g," ")).match(t);a&&(a=a[0].trim(),e=e.replace(t,"").trim());const[,,n,o,,s,i]=e.match(/(^(-?\d+)([,\.\-\s]))?((.*?)\s+-\s+)?(.*)/);return{album:a,artist:s,title:i,duration:","==o?Yo(n):""}},Wo=e=>Fn.children.length,Ko=(e=2)=>Math.random()*e|0,Vo=e=>{Un?(0,P.hZ)(Ae,e):Wn&&Gs(Ae,e)},Yo=(e,t)=>{if(Math.abs(e)==1/0||"-1"===e)return"LIVE";let a="",n="",o="";return e<0&&(e=-e,n="-"),(e>=3600||t)&&(o=(e/3600|0)+":",e%=3600,a="0"),o+=(a+(e/60|0)).slice(-2)+":"+("0"+(e%60|0)).slice(-2),n+o},Jo=(e,t)=>{if(e==ha)gi(t);else if(e==Xa)ai(t);else if(e==dn)ii(t);else if(e==Dt)e.value=9-t;else if(Mo(e)){const a=e.querySelector(`[value="${t}"]`);a&&(a.checked=!0)}else e.classList.contains("switch")?e.dataset.active=+t:(e.value=t,-1==e.selectedIndex&&(e.selectedIndex=0));ki(e)},Xo=(e,t,a,n=1)=>{e.min=t,e.max=a,e.step=n},Zo=(e,t)=>{void 0===t&&(t=!!e.style.display),e.style.display=t?"":"none"},Qo=async e=>new Promise(((t,a)=>{e.onerror=()=>{e.onerror=e.onloadeddata=null,a()},e.onloadeddata=()=>{e.onerror=e.onloadeddata=null,ds("onLoadedData",{mediaEl:e.id.slice(-1)}),t()}}));function es(e,t=!1){const a=e.map((e=>ns(e,t)));Promise.all(a).then((e=>{const t=e.reduce(((e,t)=>e+t),0),a=`${t} song${t>1?"s":""} added to the queue${Wo(){if(Wo()>=q)return void a(0);const{fileName:n,baseName:o,extension:s}=zo(function(e){return e.replace(/%2[356]/g,(e=>({"%23":"#","%25":"%","%26":"&"}[e])))}(e.file)),i=jo(e.file),r=document.createElement("li"),l=r.dataset;Object.assign(l,oe),t||(t=Go(o)),l.album=t.album||"",l.artist=t.artist||"",l.title=t.title||n||i.slice(i.lastIndexOf("//")+2),l.duration=t.duration||"",l.codec=t.codec||s.toUpperCase(),l.file=i,r.handle=e.handle,r.dirHandle=e.dirHandle,r.subs=e.subs,Fn.appendChild(r),!he.includes(s)&&s||(l.retrieve=1,qs()),1!=Wo()||Fo()?(Bn>Wo()-3&&Ss(j),a(1)):Ss(0).then((()=>a(1)))}))}function ns(e,t=!1){let a;return a=be.includes(zo(e.file).extension)?ws(e):as(e),a.then((e=>{t&&!Fo()&&e>0&&_s(Wo()-e)})),a}function os(e){const t=+Zt.value;(1==e&&t<+Zt.max||-1==e&&t>+Zt.min)&&(Zt.value=t+Zt.step*e,ti(Zt)),Ys(`Analyzer height: ${Zt.value}%`)}function ss(e){let t=Lo((+dn.dataset.value||0)+.05*e);t<0?t=0:t>1&&(t=1),ii(t),Ys("Volume: "+20*t),vi()}function is(e=In){const t=e instanceof HTMLMediaElement?e:io[e],a=t.dataset;vs(t,null),Es(t),Object.assign(a,oe),t.load(),e==In&&Js()}function rs(e=On){const t=e.pixelRatio,a=ka.height=zt.clientHeight*t,n=ka.width=zt.clientWidth*t;Kn=Math.max(12,Math.min(n,a)/[24,17,13.5][+ya.value]),Vn=3*Kn,Yn=n/2,Jn=n-Kn,Xn=1.4*Kn,Zn=1.8*Xn,ao=n/3-Kn,Qn=a-4*Kn,eo=a-2.8*Kn,to=a-1.6*Kn,no=n-8*Kn,oo=`bold ${.7*Kn}px sans-serif`,so=`bold ${Kn}px sans-serif`}function ls(e,t,a){const n=At("#console-content"),o=new Date,s=o.toLocaleTimeString([],{hour12:!1})+"."+String(o.getMilliseconds()).padStart(3,"0");a&&(n.innerHTML="",Pn.classList.remove(re)),t&&Pn&&Pn.classList.add(re),e&&(n.innerHTML+=`
    ${s} > ${e}
    `),n.scrollTop=n.scrollHeight}function cs(e,t){const a=Mo(e)?e.elements[e.dataset.prop]:e.options;let n=(Mo(e)?Array.from(a).findIndex((e=>e.checked)):e.selectedIndex)+(t?-1:1);n<0?n=a.length-1:n>=a.length&&(n=0),Mo(e)?a[n].checked=!0:e.selectedIndex=n,ti(e)}function ds(e,t){if(Gt.checked){if("object"==typeof e&&(t=e,e=""),t){e+=(e?", ":"")+"{ ";let a=0;for(const[n,o]of Object.entries(t))e+=(a?", ":"")+n+": "+o,a++;e+=" }"}ls(e)}}function us(e){for(;e.firstChild;)e.removeChild(e.firstChild)}function fs(e,t){const a=document.createElement("a");a.setAttribute("href",xo(e)),a.setAttribute("download",`${t}.json`),a.click()}function ps(e,t){if(Do(zn[e]))return;const a=`User Preset #${e+1}`,n=zn[e].name?"
    "+zn[e].name:"";t?(zn[e]={},Gs(we,zn),D().alert({text:`Deleted ${a}`}),Rs()):D().confirm({text:`Do you really want to DELETE ${a}?${n}
    THIS CANNOT BE UNDONE!`,submitText:"DELETE",submitCallback:()=>{ps(e,!0)},cancelCallback:()=>{D().alert({text:"Canceled!"})}})}function hs(e=1){const t=io[In];if(t.duration>0&&t.duration<1/0){let a=t.currentTime+5*e;a<0?a=0:a>t.duration-1&&(a=t.duration-1),Ys(1),t.currentTime=a}"m"==po&&Ks("m",e)}function ms(){return clearTimeout(Mn),!!po&&(po=!1,!0)}async function bs(){Ho()&&await document.exitPictureInPicture(),On.toggleFullscreen(),document.activeElement.blur()}function gs(e){if(e.altKey||e.ctrlKey||e.metaKey)return;const t=e.shiftKey;if("F1"==e.code&&!t)return location.href="#help",void e.preventDefault();if("BODY"==e.target.tagName){if("keydown"==e.type)switch(e.code){case"ArrowUp":t?os(1):ss(1);break;case"ArrowDown":t?os(-1):ss(-1);break;case"ArrowLeft":po?(Ys("Rewind",1),hs(-1)):Ks("k",-1);break;case"ArrowRight":po?(Ys("Fast forward",1),hs()):Ks("k");break;default:return}else if(e.code.match(/^(Digit|Numpad)[0-9]$/)){const a=e.code.slice(-1)-1;if(-1==a)t||(Hs(!0),ti(Aa,!1));else if(t){const e=To();e.randomMode=0,Ws(a,e)}else xs(a)}else switch(e.code){case"Delete":case"Backspace":Fn.querySelectorAll(".selected").forEach((e=>{js(e),e.remove()}));const e=Eo(Fn.querySelector(".current"));void 0!==e?Bn=e:Bn>Wo()-1?Bn=Wo()-1:Bn--,Wo()?Ss(j):(is(Dn),Fo()||is()),ui(!0);break;case"Space":Ys(Fo()?"Pause":"Play",1),Ts();break;case"ArrowLeft":case"KeyJ":ms()||t||(Ys("Previous track",1),ci(!0));break;case"KeyG":cs(Qt,t),Ys(Io());break;case"ArrowRight":case"KeyK":ms()||t||(Ys("Next track",1),ci());break;case"KeyA":cs(Aa,t),Ys("Randomize: "+Co(Aa)),ti(Aa);break;case"KeyB":cs(t?Bt:Rt);const a=Rt.value[0];Ys("Background: "+Co(Rt)+(a>1&&a<7?` (${Co(Bt)})`:""));break;case"KeyC":$a.click(),Ys("Radial "+Uo($a));break;case"KeyD":hi();break;case"KeyE":Wo()>0&&(li(),Ys("Shuffle"));break;case"KeyF":bs();break;case"KeyH":Jt.click();break;case"KeyI":Ga.click(),Ys("Song info display "+Uo(Ga));break;case"KeyL":oa.click(),Ys("LED effect "+Uo(oa));break;case"KeyM":case"KeyV":cs(pa,t),Ys("Mode: "+Co(pa));break;case"KeyN":cs(qa,t),Ys(Co(qa).toUpperCase()+" sensitivity");break;case"KeyO":la.click(),Ys((Bo(la)?"LOW":"HIGH")+" Resolution");break;case"KeyP":cs(za,t),Ys("Peaks "+Co(za));break;case"KeyR":Ra.click(),Ys("Queue repeat "+Uo(Ra));break;case"KeyS":const n=["None","Frequencies","Musical Notes",,"Level"],o=function(e){e=-2*e+1;let t=+$o(Ba)+(+$o(Na)<<2)+e;return t<0?t=6:3==t?t+=e:t>6&&(t=0),Jo(Ba,3&t),Jo(Na,t>>2),ti([Ba,Na]),t}(t);Ys("Scale labels: "+(o<5?n[o]:n[o-4]+" + "+n[4]));break;case"KeyT":ga.click(),Ys((Bo(ga)?"Flat":"Shadowed")+" text mode");break;case"KeyU":ca.click(),Ys("Luminance bars "+Uo(ca));break;case"KeyX":cs(Ma,t),Ys("Reflex: "+Co(Ma));break;default:return}e.preventDefault()}}function vs(e,t){const a=e.src||"";Po(a)&&URL.revokeObjectURL(a),t?e.src=t:e.removeAttribute("src"),Qs()}async function ks(e,t,a){const n=URL.createObjectURL(e);vs(t,n);try{await Qo(t),a&&t.play()}catch(e){}return n}function ys(e){return JSON.parse(localStorage.getItem(e))}function ws(e){let t=jo(e.file);return new Promise((async a=>{let n=[];const o=e=>{Promise.all(n).then((t=>{const n=t.reduce(((e,t)=>e+t),0);a(n),e&&ui(!0)}))},s=async e=>{let a,s;t=zo(t).path;for(let o of e.split(/[\r\n]+/))if("#"!=o.charAt(0)&&""!=o.trim()){let e,i;if(o=jo(o),s||(s=zo(o).baseName),!Ro(o)){if(Un&&(({handle:e,dirHandle:i}=await A(o)),!e)){ls(`Cannot resolve file handle for ${o}`,!0),s="";continue}o=E(o),":"!=o[1]&&"/"!=o[0]&&(o=t+o)}n.push(as({file:o,handle:e,dirHandle:i},{...Go(s),...a?{album:a}:{}})),s=""}else o.startsWith("#EXTINF")?s=o.slice(8):o.startsWith("#EXTALB")&&(a=o.slice(8));o()};if(t)if("string"==typeof t&&be.includes(zo(t).extension))e.handle?e.handle.getFile().then((e=>e.text())).then(s).catch((e=>{ls(e,!0),a(0)})):fetch(t).then((e=>e.ok?e.text():(ls(`Fetch returned error code ${e.status} for URI ${t}`,!0),""))).then(s).catch((e=>{ls(e,!0),a(0)}));else{const e=await(0,P.Jt)(!0===t?Pe:De+t);Array.isArray(e)?(e.forEach((e=>{const{file:t,handle:a,dirHandle:o,subs:s,content:i}=e;n.push(as({file:t,handle:a,dirHandle:o,...a&&!o?{subs:s}:{}},i))})),o(e!=Pe)):(!0!==t&&ls(`Unrecognized playlist file: ${t}`,!0),a(0))}else a(-1)}))}function xs(e,t=!0,a,n){const o=+e==e,s="object"==typeof e,i=s?e:o?zn[e].options:_o(e),r=_o(Ge);Do(i)||(t&&!s&&ls("Loading "+(o?"User Preset #"+(+e+1):"'"+Oo(e)+"' preset")),e==Ge&&delete i.volume,void 0!==i.stereo&&(i.channelLayout=bn[+i.stereo][0]),1.5==i.barSpace&&(i.barSpace=1),+i.fadePeaks&&+i.showPeaks&&(i.showPeaks=ze),i.mode==Ne&&(i.mode=Be),[Fe,He,Be].includes(i.mode)||(i.bandCount=i.mode,i.mode=He),+i.noteLabels&&+i.showScaleX&&(i.showScaleX=gt),_t("[data-prop]").forEach((e=>{const t=e.dataset.prop,o=void 0!==i[t]?i[t]:a?r[t]:void 0;void 0===o||e==Aa&&n||Jo(e,o)})),On.setOptions({alphaBars:Bo(Ot),ansiBands:+$o(Pt),colorMode:$o(Ut),fftSize:$o(Vt),fillAlpha:$o(Yt),frequencyScale:$o(Xt),ledBars:Bo(oa),linearAmplitude:+$o(sa),lineWidth:$o(ia),loRes:Bo(la),lumiBars:Bo(ca),maxFPS:$o(da),maxFreq:$o(_a),minFreq:$o(Oa),mirror:$o(fa),outlineBars:Bo(va),peakFadeTime:$o(xa),peakHoldTime:$o(La),radial:Bo($a),radius:$o(Ta),roundBars:Bo(Da),showFPS:Bo(Jt),showScaleY:+$o(Na),smoothing:$o(Ka),spinSpeed:$o(Za),splitGradient:Bo(Qa),weightingFilter:$o(fn)}),ti([Rt,Bt,Ft,jt,za,ta,ra,qa,Ma,Qt,ea,...n?[]:[Aa],Ht,Wa,Ba,pa]),"demo"==e&&Hs(!0),t&&D().alert({text:"Settings loaded!"}))}async function Ls(e){us(Ea);const t=new Option("Select a playlist","");t.disabled=!0,t.selected=!0,Ea.options[Ea.options.length]=t;let a=await(0,P.Jt)(Ie);const n=ys(Ie);if(n){for(const e of Object.keys(n)){const t=De+e,o=ys(t);let s=[];for(const e of o)s.push({file:e});await(0,P.hZ)(t,s),Fs(t),a[e]=n[e]}await(0,P.hZ)(Ie,a),Fs(Ie)}if(a){const t=Object.keys(a),n=new Intl.Collator;t.sort(((e,t)=>n.compare(a[e],a[t])));for(const n of t){const t=new Option(a[n],n);n==e&&(t.selected=!0),Ea.options[Ea.options.length]=t}}}async function Ss(e,t){const a=e!==j,n=a?e:Bne.name.startsWith(a)));e&&e.subs&&(n=e.subs,t.subs=n)}}if(n){const{src:e,lang:t,handle:o}=n;a.srclang=t||navigator.language,o?o.getFile().then((e=>a.src=URL.createObjectURL(e))).catch((e=>{})):a.src=e}else a.removeAttribute("src"),a.removeAttribute("srclang")}function Cs(e){e?(uo.name+=" (copy)",uo.key=""):uo={name:"New Gradient",bgColor:"#111111",colorStops:[{pos:.1,color:"#222222"},{pos:1,color:"#eeeeee"}],disabled:!1,key:""},Bs(),Zo(At("#btn-delete-gradient"),!1),Zo(At("#btn-save-gradient"),!0),Zo(At("#btn-export-gradient"),!1),Zo(At("#btn-save-gradient-copy"),!1),location.href="#gradient-editor"}function $s(e){if(ds("playNextSong",{play:e,playlistPos:Bn,skipping:go}),go||Xa.checked||Bn>Wo()-1)return!0;if(go=!0,BnSs(j))).catch((e=>{ds({err:e}),e.code!=pe&&(ls(e,!0),Ss(j),$s(!0))})):Ss(j),bi(),!0}function Ts(e){Xa.checked||(Fo()&&!e?(io[In].pause(),Ho()&&wo.pause()):io[In].play().catch((e=>{e.code!=pe&&(ls(e,!0),$s(!0))})))}function As(){let e=!0;return Fo()?io[In].currentTime>2?io[In].currentTime=0:Bn>0?_s(Bn-1):e=!1:e=Ss(Bn-1),e}function _s(e){Ss(e,!0)}function Os(){let e=[{value:G,text:"Album cover"},{value:z,text:"Black"},{value:U,text:"Gradient default"}];const t=e.length,a=ro.length,n=lo.length;e=[...e,...ro.map(((e,t)=>({value:W+e.name,text:"🖼️ "+e.name,idx:t}))),...lo.map(((e,t)=>({value:K+e.name,text:"🎬 "+e.name,idx:t})))].slice(0,t+ +qt.value),n&&e.splice(t,0,{value:K,text:"Random video"}),a&&e.splice(t,0,{value:W,text:"Random image"}),Ds(Rt,e)}function Is(e,t,a){a||(a=e.dataset.prop);const n=!Array.isArray(t[0]);for(const o of n?t.filter((e=>!e.disabled)):t){const t=o.text||o[1],n=o.value||o[0],s=a+"-"+n,i=document.createElement("input"),r=document.createElement("label");i.name=a,i.id=s,i.type="radio",i.value=n,r.htmlFor=s,r.innerText=t,e.append(i,r)}}function Ps(){const e=At("#enabled_gradients"),t=Object.keys(hn),a=new Intl.Collator;t.sort(((e,t)=>a.compare(hn[e].name,hn[t].name))),us(e),t.forEach((t=>{e.innerHTML+=``})),_t(".enabledGradient").forEach((e=>{e.addEventListener("click",(t=>{if(!e.checked&&Object.keys(hn).reduce(((e,t)=>e+!hn[t].disabled),0)<2)return D().alert({text:"At least one Gradient must be enabled!"}),t.preventDefault(),!1;hn[e.dataset.grad].disabled=!e.checked,Ms(),zs(Le)}))})),_t(".grad-edit-link").forEach((e=>{e.addEventListener("click",(e=>{var t;e.preventDefault(),function(e){if(!hn[e])throw new Error(`gradients[${e}] is null or undefined.`);const t=(e,t,a)=>{const n=t*Math.min(a,1-a),o=(t,o=(t+e/30)%12)=>a-n*Math.max(Math.min(o-3,9-o,1),-1);let s="#";for(const e of[0,8,4])s+=Math.round(255*o(e)).toString(16).padStart(2,"0");return s},a=e=>e.match(/\(\s+(.*),\s+(.*?)%?,\s+(.*?)%?\s+\)/).slice(1),n=hn[e],o={...n};o.colorStops=[];for(const e of n.colorStops){if(e.color.startsWith("rgb")){const{color:t}=e;e.color="#";for(const n of a(t))e.color+=(+n).toString(16).padStart(2,"0")}else if(e.color.startsWith("hsl")){const[n,o,s]=a(e.color);e.color=t(n,o/100,s/100)}else if(4==e.color.length){const[t,a,n,o]=e.color;e.color="#"+a+a+n+n+o+o}o.colorStops.push({...e})}uo=o}(t=e.target.getAttribute("data-grad")),Bs(),Zo(At("#btn-delete-gradient"),!!hn[t].key),Zo(At("#btn-save-gradient"),!!hn[t].key),Zo(At("#btn-export-gradient"),!0),Zo(At("#btn-save-gradient-copy"),!0),location.href="#gradient-editor"}))}))}function Ms(){const e=Object.keys(hn),t=new Intl.Collator;e.sort(((e,a)=>t.compare(hn[e].name,hn[a].name)));for(const t of[Qt,ea]){let a=t.value;us(t);for(const a of e)hn[a].disabled||(t.options[t.options.length]=new Option(hn[a].name,a));""!==a&&(t.value=a,ti(t))}}function Rs(){const e=(e,t)=>{const a=document.createElement("optgroup");a.label=e;for(const[e,n]of t)a.appendChild(new Option(n,e));Ca.appendChild(a)};us(Ca),Ca.appendChild(new Option("Select a preset to load",""));const t=zn.map(((e,t)=>[t,e.name?`[${t+1}] ${e.name}`:""])).filter((([e,t])=>!!t));t.length&&e("User Presets",t),e("Built-in Presets",pn.filter((e=>![We,Ge].includes(e.key))).map((e=>[e.key,e.name])))}function Ds(e,t){const a=e.value;Array.isArray(t)||(t=[t]),us(e);for(const a of t.filter((e=>e&&!e.disabled))){const t=new Option(a.text||a[1],a.value||a[0]);null===a[0]&&(t.disabled=!0),void 0!==a.idx&&(t.idx=a.idx),e[e.options.length]=t}""!==a&&(e.value=a,-1==e.selectedIndex&&(e.selectedIndex=0),ti(e))}function Hs(e=Xa.checked){if(!Fo()&&!e)return;const t=e=>!gn.find((t=>t.value==e)).disabled,a=(e,t=()=>!0)=>{let a=9;do{if(Mo(e)){const t=e.elements[e.dataset.prop];t[Ko(t.length)].checked=!0}else if(void 0!==e.dataset.active)e.dataset.active=Ko();else if(e.step){const{min:t,max:a,step:n}=e,o=Ko((a-t)/n+1)*n+ +t;Jo(e,(10*o|0)/10)}else e.selectedIndex=Ko(e.options.length)}while(!t($o(e))&&a--);ti(e)};if(t(ct)){const e=zn.map(((e,t)=>Do(e)?null:t)).filter((e=>null!==e)),t=e.length;t&&xs(e[Ko(t)],!1,!1,!0)}if(t(it)&&a(pa),t(Ze)&&a(Ot),t(Qe)&&a(Rt),t(et)&&a(Dt),t(tt)&&a(Bt),t(at)&&a(Ut),t(lt)&&a(za),t(ot)&&a(oa),t(st)&&a(ca,(e=>!+e||!On.overlay||!Bo(oa))),t(rt)&&a(va),t(ut)&&a(Ma,(e=>e!=Je||!Bo(oa))),t(dt)&&a($a),t(ft)&&a(Da),t(pt)&&a(Qa),t(nt))for(const e of[Qt,...Bo(ra)?[]:[ea]])a(e)}function Fs(e){localStorage.removeItem(e)}function Bs(){if(null==uo)throw new Error("Current gradient must be set before editing gradient");const e=At("#grad-color-table");us(e),At("#new-gradient-name").value=uo.name,At("#new-gradient-horizontal").checked="h"===uo.dir;const t=At("#grad-row-label-template").cloneNode(!0);t.removeAttribute("id"),e.appendChild(t),uo.colorStops.forEach(((e,t)=>{!function(e,t){const a=At("#grad-color-table"),n=At("#grad-row-template").cloneNode(!0),o=n.querySelector(".grad-color-picker"),s=n.querySelector(".grad-color-value"),i=n.querySelector(".grad-color-stop"),r=n.querySelector(".grad-add-stop"),l=n.querySelector(".grad-remove-stop");o.value=t.color,s.value=t.color,i.value=t.pos,o.addEventListener("input",(t=>{s.value=t.target.value,uo.colorStops[e].color=o.value})),s.addEventListener("input",(t=>{o.value=t.target.value,uo.colorStops[e].color=o.value})),i.addEventListener("input",(t=>{uo.colorStops[e].pos=parseFloat(t.target.value)})),r.addEventListener("click",(()=>{uo.colorStops.splice(e+1,0,{pos:(()=>{if(e===uo.colorStops.length-1){const e=uo.colorStops[uo.colorStops.length-1].pos;return uo.colorStops[uo.colorStops.length-1].pos=(uo.colorStops[uo.colorStops.length-2].pos+e)/2,e}return(uo.colorStops[e].pos+uo.colorStops[e+1].pos)/2})(),color:"#111111"}),Bs()})),2===uo.colorStops.length?l.setAttribute("disabled","true"):l.addEventListener("click",(()=>{uo.colorStops.splice(e,1),Bs()})),n.removeAttribute("id"),a.appendChild(n)}(t,uo.colorStops[t])})),At("#new-gradient-bkgd").value=uo.bgColor}async function Ns(){const e=Nt.value,t=new RegExp("\\.("+me.join("|")+")$","i"),a=new RegExp("\\.("+ge.join("|")+")$","i");if(ro=[],lo=[],e==Y)try{const e=await fetch(B),n=await e.text();for(const{url:e,file:o}of _(n)){const n=zo(o).baseName;t.test(o)?ro.push({name:n,url:B+e}):a.test(o)&&lo.push({name:n,url:B+e})}}catch(e){}else if(e==J){const e=await(0,P.Jt)(ke);try{if(e)for await(const[n,o]of e.entries())if(o instanceof FileSystemFileHandle){const e=t.test(n),s=a.test(n);if(e||s){const t=await o.getFile(),a=URL.createObjectURL(t);e?ro.push({name:n,url:a}):lo.push({name:n,url:a})}}}catch(e){}}if(e!=V){const e=ro.length,t=lo.length;ls("Found "+(e+t==0?"no media":e+" image files and "+t+" video")+" files in the backgrounds folder")}Os()}async function qs(){if(vo>=N)return;const e=Array.from(Fn.children).find((e=>e.dataset.retrieve));if(e){let t=e.dataset.file,a=!1;vo++,delete e.dataset.retrieve;e:{if(e.handle)try{if("granted"!=await e.handle.requestPermission())break e;t=URL.createObjectURL(await e.handle.getFile()),a=!0}catch(e){break e}try{const a=await I.WC(t,{skipPostHeaders:!0});a&&(ts(a,e),fi(e),a.common.picture&&a.common.picture.length||async function(e){const{path:t}=zo(e.dataset.file),{dirHandle:a}=e;if(!Wn||Ro(t))return"";if(void 0!==fo[t])return fo[t];{if(e.handle&&!a)return"";let n="";try{const e=await T(t,a);if(e&&e.cover){const{handle:a,name:o}=e.cover;if(a){const e=await a.getFile();n=URL.createObjectURL(e)}else n=t+o}}catch(e){}return fo[t]=n,n}}(e).then((t=>{e.dataset.cover=t,fi(e)})))}catch(e){}a&&URL.revokeObjectURL(t)}vo--,qs()}}function js(e){const t=e.dataset.cover;Po(t)&&URL.revokeObjectURL(t)}function Us(e){if(null!==uo){if(!uo.key||e){let t=e&&uo.key||So(uo.name);uo.key=t;let a=1;for(;Object.keys(hn).some((e=>e===uo.key))&&a<1e3;)uo.key=`${t}-${a}`,a++;for(a=1;Object.keys(hn).some((e=>hn[e].name===uo.name))&&a<1e3;)uo.name+=` (${a})`,a++}hn[uo.key]=uo,On.registerGradient(uo.key,uo),Ms(),Ps(),zs(ye),uo=null,location.href="#config"}}function zs(e){const t=e=>e.map((({value:e,disabled:t})=>({value:e,disabled:t})));if(e&&e!=xe||Gs(xe,t(wn)),e&&e!=Le||Gs(Le,Object.keys(hn).map((e=>({value:e,disabled:hn[e].disabled})))),!e||e==ye){const e={};Object.keys(hn).filter((e=>hn[e].key)).forEach((t=>e[t]=hn[t])),Gs(ye,e)}if(e&&e!=Se||Gs(Se,t(gn)),!e||e==Me){let e=[];for(const t of[0,1,2])e.push({min:At(`.min-db[data-preset="${t}"]`).value,max:At(`.max-db[data-preset="${t}"]`).value,boost:At(`.linear-boost[data-preset="${t}"]`).value});Gs(Me,e)}if(!e||e==Ee){const e={info:aa.value,track:rn.value,end:Kt.value,covers:Ua.checked,count:ja.checked,osdFontSize:ya.value};Gs(Ee,e)}if(!e||e==$e){const e={autoHide:Mt.checked,bgLocation:Nt.value,bgMaxItems:qt.value,fsHeight:Zt.value,invertVol:na.checked,maxFPS:da.value,pipRatio:Sa.value,saveDir:Ha.checked,saveQueue:Fa.checked,surround:on.checked};Gs($e,e)}if(!e||e==Oe){const e={gravity:ta.value,peakFade:xa.value,peakHold:La.value};Gs(Oe,e)}if(!e||e==Re){const e={background:en.value,color:tn.value,noDimSubs:ma.checked,noDimVideo:ba.checked,position:an.value,posAudio:nn.value,reduceOnSubs:Ia.checked,reduceOnVideo:Pa.checked,videoFill:cn.checked};Gs(Re,e)}}function Gs(e,t){localStorage.setItem(e,JSON.stringify(t))}function Ws(e,t,a,n){const o=`User Preset #${e+1}`,s=zn[e].name||"",i=On.isFullscreen;if(!Do(zn[e])&&!n&&bo!==e)return void(i?(Ys(`Overwrite ${o} - Press again to confirm!`,5),bo=e,setTimeout((()=>{bo===e&&(bo=!1)}),5e3)):D().confirm({text:`Do you really want to overwrite ${o}?
    ${s}`,submitText:"Overwrite",submitCallback:()=>{Ws(e,t,a,!0)},cancelCallback:()=>{D().alert({text:"Canceled!"})}}));if(bo=!1,!a||!`${a}`.trim()){if(!i)return void D().input({text:"Give this preset a name or short description",submitText:"Save",value:s,maxlength:40,submitCallback:a=>{Ws(e,t,a.trim()||Ke,!0)},cancelCallback:()=>{D().alert({text:"Save canceled!"})}});a=""}a==Ke&&(a=""),zn[e]={name:a,options:t},Gs(we,zn);const r=`Saved to ${o}`;i?Ys(r,5):D().alert({text:r}),Rs()}function Ks(e,t=1){Mn=setTimeout((()=>{po=e,hs(t)}),200)}function Vs(e){document.documentElement.style.setProperty("--background-image",e?`url('${e.replace(/['()]/g,"\\$&")}')`:"none")}function Ys(e,t=2,a=-1){if(e){const n=performance.now(),o=n+1e3*t;e==+e?(co.info=e,co.startTime=n,co.endTime=Math.max(o,co.endTime||0),co.fade=t==1/0?0:t/3*a):(co.msg=e,2==co.info&&(co.info=1),co.msgTimer=o)}else co={endTime:0,msgTimer:0}}function Js(){yo.src=io[In].dataset.cover,Rt.value==G&&Vs(yo.src)}function Xs(e){Mt.checked=e.autoHide,Nt.value=e.bgLocation,qt.value=e.bgMaxItems,Zt.value=e.fsHeight,na.checked=e.invertVol,da.value=e.maxFPS,Sa.value=e.pipRatio,Ha.checked=e.saveDir,Fa.checked=e.saveQueue,on.checked=e.surround}function Zs(e){aa.value=e.info,rn.value=e.track,Kt.value=e.end,ya.value=e.osdFontSize,Ua.checked=e.covers,ja.checked=e.count}function Qs(){const e=Rt.value[0],t=Bo(Wa)&&!!io[In].querySelector("track").src,a=qo(),n=a||t||e!=U&&e!=z,o=Pa.checked&&a||Ia.checked&&t;for(const e of io)Zo(e,(a||t)&&e==io[In]);return On.overlay=n,On.showBgColor=!a&&e==U,zt.style.backgroundImage=a?"none":"var(--background-image)",Zo(ln,e==K&&!a),Zo(Wt,!(a&&ba.checked||t&&ma.checked)),It.classList.toggle(se,o),zt.classList.toggle(se,o),n}function ei(e){ta.value=e.gravity,xa.value=e.peakFade,La.value=e.peakHold}function ti(e,t=!0){Array.isArray(e)||(e=[e]);const a=()=>Zo(ea,$o(jt)!=ce&&!Bo(ra));for(const n of e){switch(n){case Ot:On.alphaBars=Bo(Ot);break;case Pt:On.ansiBands=+$o(Pt);break;case Mt:pi(!0);break;case Rt:const e=Rt.value[0],o=Rt[Rt.selectedIndex].idx,s=Qs();if(e==K){Vs();const e=lo[void 0===o?Ko(lo.length):o].url;try{decodeURIComponent(ln.src).endsWith(decodeURIComponent(e))||(ln.src=e)}catch(t){ln.src=e}}else s&&![U,z].includes(e)?Vs(e==G?yo.src:ro[void 0===o?Ko(ro.length):o].url):Vs();break;case Dt:Jo(pa,$o(Dt)),ti(pa,!1);break;case Ht:const i=$o(Ht);On.barSpace=On.isLumiBars||1==i?1.5:i;break;case Bt:const r=Bt.value,l=r==te||r==ae||r==ne;zt.classList.toggle("repeat",r==Q),zt.classList.toggle("cover",r==X||l),zt.style.backgroundSize="",Zo(un,l),un.classList.toggle("rotating",r==ne),un.classList.toggle("paused",r==te);break;case Ft:Wt.style.background=`rgba(0,0,0,${1-Ft.value})`;break;case Nt:Nt.value==J?window.showDirectoryPicker({startIn:"pictures"}).then((e=>{(0,P.hZ)(ke,e)})).catch((e=>{Nt.value=V,(0,P.yH)(ke)})).finally((()=>Ns())):((0,P.yH)(ke),Ns());break;case qt:Os();break;case jt:On.channelLayout=$o(jt),a();break;case Ut:On.colorMode=$o(Ut);break;case Yt:On.fillAlpha=Yt.value;break;case Vt:On.fftSize=$o(Vt),ls("FFT size is "+On.fftSize+" samples");break;case Jt:On.showFPS=Bo(Jt);break;case Xt:On.frequencyScale=$o(Xt);break;case Zt:It.style.height=`${Zt.value}%`;break;case Qt:case ea:""===n.value&&(n.selectedIndex=0),Bo(ra)?On.gradient=Qt.value=ea.value=n.value:On[n==Qt?"gradientLeft":"gradientRight"]=n.value;break;case oa:On.ledBars=Bo(oa);break;case sa:On.linearAmplitude=+$o(sa);break;case ia:On.lineWidth=ia.value;break;case ra:a(),Bo(ra)&&ti(Qt,!1);break;case la:On.loRes=Bo(la);break;case ca:On.lumiBars=Bo(ca),ti(Ht,!1);break;case da:On.maxFPS=da.value;break;case fa:On.mirror=$o(fa);break;case pa:const c=$o(pa);On.mode=c==He?$o(Dt):c,ti(Ht,!1);break;case ha:gi();break;case ma:case ba:Qs();break;case ya:rs();break;case va:On.outlineBars=Bo(va);break;case ta:On.gravity=ta.value;break;case xa:On.peakFadeTime=xa.value;break;case La:On.peakHoldTime=La.value;break;case Sa:Ho()&&(On.width=On.height*Sa.value);break;case $a:On.radial=Bo($a),ti(Ht,!1);break;case Ta:On.radius=$o(Ta);break;case Aa:const d=Aa.value;Nn&&(Nn=clearInterval(Nn)),d>1&&(Nn=setInterval(Hs,2500*d));break;case Oa:case _a:for(;+_a.value<=+Oa.value;)_a.selectedIndex++;On.setFreqRange(Oa.value,_a.value);break;case Ia:case Pa:Qs();break;case Ma:switch($o(Ma)){case Xe:On.reflexRatio=.25,On.reflexAlpha=.2;break;case Ye:On.reflexRatio=.4,On.reflexAlpha=.2;break;case Je:On.reflexRatio=.5,On.reflexAlpha=1;break;default:On.reflexRatio=0}break;case Da:On.roundBars=Bo(Da);break;case Ha:Ha.checked?Vo(g):((0,P.yH)(Ae),Fs(Ae));break;case Fa:Fa.checked?ui(!0):(0,P.yH)(Pe);break;case Ba:On.showScaleX=$o(Ba)!=bt,On.noteLabels=$o(Ba)==gt;break;case Na:On.showScaleY=+$o(Na);break;case qa:const u=$o(qa);On.setSensitivity(At(`.min-db[data-preset="${u}"]`).value,At(`.max-db[data-preset="${u}"]`).value),On.linearBoost=At(`.linear-boost[data-preset="${u}"]`).value;break;case za:On.showPeaks=$o(za)!=Ue,On.fadePeaks=$o(za)==ze;break;case Wa:ni();break;case Ka:On.smoothing=Ka.value,ls("smoothingTimeConstant is "+On.smoothing);break;case Xa:const f=Xa.checked;t=!1,ai(f,(e=>{f&&e?(Gn=ha.checked,gi(!0)):f||gi(!!Gn),vi()}));break;case Za:On.spinSpeed=Za.value;break;case Qa:On.splitGradient=Bo(Qa);break;case en:case tn:zt.className=zt.className.replace(new RegExp(`(${xt}|${Lt})\\S*`,"gi"),""),zt.classList.add(xt+en.value,Lt+tn.value);break;case nn:case an:si();break;case on:mi();break;case cn:zt.classList.toggle(ie,!cn.checked);break;case fn:On.weightingFilter=$o(fn)}t&&(xn.includes(n)?zs($e):kn.includes(n)?zs(Ee):Cn.includes(n)?zs(Oe):Tn.includes(n)?zs(Re):vi())}}async function ai(e,t){Xa.checked=e,e?navigator.mediaDevices?navigator.mediaDevices.getUserMedia({audio:!0}).then((e=>{Rn=On.audioCtx.createMediaStreamSource(e),Fo()&&io[In].pause(),On.connectInput(Rn),ls("Audio source set to microphone")})).catch((e=>{ls(`Could not change audio source - ${e}`,!0),Xa.checked=!1})).finally((()=>{t&&t(Xa.checked)})):(ls("Cannot access user microphone",!0),Xa.checked=!1,t&&t(!1)):(Rn&&(On.disconnectInput(Rn),Rn.mediaStream.getTracks()[0].stop(),Rn=null),ls("Audio source set to built-in player"),t&&t(!0))}function ni(){for(const e of io)e.textTracks[0].mode="hidden",Bo(Wa)&&(e.textTracks[0].mode="showing");Qs()}function oi(e){ma.checked=e.noDimSubs,ba.checked=e.noDimVideo,Ia.checked=e.reduceOnSubs,Pa.checked=e.reduceOnVideo,en.value=e.background,tn.value=e.color,an.value=e.position,nn.value=e.posAudio,cn.checked=e.videoFill}function si(e){const t=e?[e.target]:_t("track");for(const e of t){let t,a,n=!1;switch((qo(e.parentElement)?an:nn).value){case St:t="end",a=95;break;case Et:t="center",a=50;break;default:t="start",a=1,n=!0}for(const o of e.track.cues)o.line=a,o.snapToLines=n,o.lineAlign=t}}function ii(e){dn.dataset.value=e,On.volume=e**2.5,dn.querySelector(".marker").style.transform=`rotate( ${125+290*e}deg )`}function ri(){let e;zt.addEventListener("mouseenter",(()=>{Mt.checked&&!On.isFullscreen&&(e=setTimeout((()=>pi(!1)),500))})),zt.addEventListener("mouseleave",(()=>clearTimeout(e))),sn.addEventListener("click",(()=>pi())),zt.addEventListener("transitionend",(()=>{if(zt.style.height)for(const e of _n)Zo(At(`#${e.value}`),!1);document.body.style.overflowY=window.innerHeight{e.addEventListener("click",(a=>{t.forEach((e=>At(`#${e.value}`).classList.toggle("active",e==a.target))),pi(!0),"console"==e.value&&(Pn.classList.remove(re),ls())}))})),At(`#panel-${_n[0].value}`).checked=!0,ua.classList.add("active"),At("#console-clear").addEventListener("click",(()=>ls("Console cleared.",!1,!0))),At("#console-copy").addEventListener("click",(()=>{let e="";for(const t of _t("#console-content div"))e+=t.innerText+"\n";navigator.clipboard&&navigator.clipboard.writeText(e).then((()=>ls("Console messages copied to clipboard"))).catch((e=>ls(e,!0)))})),Gt.addEventListener("click",(()=>ls("Debug "+(Gt.checked?"enabled":"disabled")))),_t(".switch").forEach((e=>{e.addEventListener("click",(()=>{e.dataset.active=+!+e.dataset.active,ti(e)}))})),_t("[data-prop]").forEach((e=>{Mo(e)?e.elements[e.dataset.prop].forEach((t=>{t.addEventListener("click",(()=>ti(e)))})):e.addEventListener("input",(()=>{ti(e),ki(e)}))})),dn.addEventListener("wheel",(e=>{e.preventDefault(),a||(a=setTimeout((()=>a=!1),50),ss(Math.sign(e.deltaY||0)*(na.checked?-1:1)))})),At("#btn_play").addEventListener("click",(()=>Ts())),At("#btn_stop").addEventListener("click",di),At("#btn_shuf").addEventListener("click",li),At("#btn_prev").addEventListener("mousedown",(()=>Ks("m",-1))),At("#btn_prev").addEventListener("click",(e=>{ms()||ci(!0)})),At("#btn_next").addEventListener("mousedown",(()=>Ks("m"))),At("#btn_next").addEventListener("click",(()=>{ms()||ci()})),Ja.addEventListener("input",(()=>{const e=io[In],{duration:t}=e;t&&t!=1/0?e.currentTime=t*Ja.value:Ja.value=0})),Ca.addEventListener("input",(()=>{const e=Ca.value;e&&(D().confirm({text:`Load preset ${Co(Ca)}?`,submitText:"LOAD",submitCallback:()=>xs(e)}),Ca.value="")})),At("#btn_manage_presets").addEventListener("click",(()=>{const e=[];zn.map(((e,t)=>`[${t+1}]  ${Do(e)?'Empty slot':e.name||Ke}`)).forEach(((t,a)=>{const{name:n,options:o}=zn[a];e.push({type:1,text:t,handler:()=>Ws(a,To())},{type:2,text:Do(o)?"":'',handler:()=>Ws(a,o,"",!0)},{type:2,text:Do(o)?"":'',handler:()=>fs(o,n)},{type:2,text:Do(o)?"":'',handler:()=>ps(a)})})),D().select({text:"Click slot to SAVE - Use buttons to Rename, Download or Delete",choices:e})}));for(const[e,t]of[[At("#preset_last"),We],[At("#preset_default"),Ge]])e.addEventListener("click",(()=>{D().confirm({text:`Restore all options in Settings and Advanced panels to ${t==Ge?"defaults":"session start"}?`,submitText:"RESTORE",submitCallback:()=>xs(t)})}));At("#btn_clear").addEventListener("click",(()=>{!function(){for(;Fn.hasChildNodes();)js(Fn.removeChild(Fn.firstChild));Fo()?Bn=-1:(Bn=0,is(In)),is(Dn),bi()}(),ui(!0)})),At("#create_playlist").addEventListener("click",(()=>ui())),At("#delete_playlist").addEventListener("click",(()=>{return e=Ea.selectedIndex,void(Ea[e].value&&D().confirm({text:`Do you really want to DELETE the "${Ea[e].innerText}" playlist?
    THIS CANNOT BE UNDONE!`,submitText:"Delete",submitCallback:async()=>{const t=Ea[e].value,a=De+t,n=await(0,P.Jt)(Ie);n&&delete n[t],await(0,P.yH)(a),await(0,P.hZ)(Ie,n),D().alert({text:"Playlist deleted"}),Ls()},cancelCallback:()=>{D().alert({text:"Canceled"})}}));var e})),At("#load_playlist").addEventListener("click",(()=>{ws({file:Ea.value}).then((e=>{const t=-1==e?"No playlist selected":`${e} song${e>1?"s":""} added to the queue`;D().alert({text:t,time:5})}))})),At("#save_playlist").addEventListener("click",(()=>{var e;(e=Ea.selectedIndex)?D().confirm({text:`Overwrite "${Ea[e].innerText}" with the current play queue?`,submitText:"Overwrite",submitCallback:()=>{ui(Ea[e].value)},cancelCallback:()=>{D().alert({text:"Canceled"})}}):ui()})),ka.addEventListener("click",(()=>hi()));const n=At("#btn_toggle_filesystem"),s=()=>n.innerText=Un?"cloud":"hard_drive";(qn||Un)&&jn?(s(),n.addEventListener("click",(async()=>{Un=!Un;const e=Un?await(0,P.Jt)(Ae):ys(Ae);Un&&e&&"granted"!=await e[0].handle.requestPermission()?Un=!1:(w=!w,g=[],f=null,k=[w?i:o],O(e),s(),Gs(Ce,Un))}))):Zo(n,!1);const r=At("#btn_add_selected"),l=At("#btn_add_folder");qn||Un?(r.addEventListener("mousedown",(()=>es($(".selected")))),l.addEventListener("click",(()=>es($())))):(Zo(r,!1),Zo(l,!1));const c=At("#local_file");let d,u;jn?Zo(c.parentElement,!1):c.addEventListener("change",(e=>function(e){const t=e.files[0];if(t){is();const e=io[In];e.dataset.file=t.name,e.dataset.title=zo(t.name).baseName,ks(t,e,!0).then((e=>I.WC(e))).then((t=>ts(t,e))).catch((e=>{}))}}(e.target))),At("#btn_load_url").addEventListener("click",(()=>{D().input({text:"Load audio file or stream from URL",submitText:"Load",submitCallback:e=>{e.trim()&&(ns({file:e},!0),ui(!0))}})})),At("#btn_fullscreen").addEventListener("click",bs);const p=At("#btn_pip");document.pictureInPictureEnabled?p.addEventListener("click",(async()=>{if(wo!==document.pictureInPictureElement){const e=On.canvas.captureStream();d=e.getTracks()[0],wo.muted=!0,wo.srcObject=e,await wo.play(),wo.requestPictureInPicture()}else document.exitPictureInPicture()})):p.classList.add("disabled");const h=((e,t=300)=>{let a;return(...n)=>{clearTimeout(a),a=setTimeout((()=>e.apply(this,n)),t)}})((()=>On.setCanvasSize(u.width,u.height)));wo.addEventListener("enterpictureinpicture",(e=>{u=e.pictureInPictureWindow,zt.classList.add("pip"),p.classList.add("active"),On.setCanvasSize(u.height*Sa.value,u.height),u.addEventListener("resize",h)})),wo.addEventListener("leavepictureinpicture",(()=>{u.removeEventListener("resize",h),wo.pause(),d.stop(),wo.srcObject=d=null,p.classList.remove("active"),zt.classList.remove("pip"),On.setCanvasSize()}));const m=navigator.mediaSession;m&&(m.setActionHandler("play",(()=>Ts())),m.setActionHandler("pause",(()=>Ts())),m.setActionHandler("previoustrack",(()=>As())),m.setActionHandler("nexttrack",(()=>$s()))),At("#add-gradient").addEventListener("click",(()=>Cs())),At("#btn-save-gradient").addEventListener("click",(()=>Us())),At("#btn-save-gradient-copy").addEventListener("click",(()=>Cs(!0))),At("#btn-delete-gradient").addEventListener("click",(()=>{D().confirm({text:`Do you really want to DELETE ${uo.name}?
    THIS CANNOT BE UNDONE!`,submitText:"DELETE",submitCallback:()=>{uo&&uo.key&&(delete hn[uo.key],0===Object.keys(hn).filter((e=>!hn[e].disabled)).length&&(hn[Object.keys(hn)[0]].disabled=!1),Ms(),Ps(),zs(ye),zs(Le),uo=null,location.href="#config")}})})),At("#btn-export-gradient").addEventListener("click",(()=>fs(uo,`audioMotion-gradient-${uo.key}`)));const b=At("#import_gradient");b.addEventListener("input",(()=>{const e=b.files[0];b.value="",e.text().then((e=>{try{uo=JSON.parse(e)}catch(e){return void ls(e,!0)}Us(!0)}))})),At("#new-gradient-bkgd").addEventListener("input",(e=>{uo.bgColor=e.target.value})),At("#new-gradient-name").addEventListener("input",(e=>{uo.name=e.target.value})),At("#new-gradient-horizontal").addEventListener("input",(e=>{uo.dir=e.target.checked?"h":void 0}));const v=_t("details"),y=e=>v.forEach((e=>e.open=!1));v.forEach((e=>{e.addEventListener("click",(()=>{e.open||y()}))})),At("#manage_gradients").addEventListener("click",(()=>{location.href="#config",y(),At("#gradients_management").open=!0})),At("#export_settings").addEventListener("click",(()=>fs(To(),"audioMotion-settings")));const x=At("#import_settings");x.addEventListener("input",(()=>{const e=x.files[0];x.value="",D().confirm({text:"ATTENTION!
    This will overwrite all current options in the Settings and Advanced panels!",submitText:"IMPORT",submitCallback:()=>{e.text().then((e=>{try{xs(JSON.parse(e))}catch(e){ls(e,!0)}}))}})}))}function li(){for(let e=Wo()-1;e>0;e--){const t=Math.random()*(e+1)|0,a=Fn.replaceChild(Fn.children[t],Fn.children[e]);Fn.insertBefore(a,Fn.children[t])}_s(0),ui(!0)}function ci(e=!1){(e?As():$s())||Ys(`Already at ${e?"first":"last"} track`)}function di(){for(const e of io)e.pause();Ys(),Ss(0)}async function ui(e,t=!0){const a=1==e;if(!a||Fa.checked)if(0!=Wo()||a)if(e){let n;if(!a&&!t){n=So(e,"_");let t=await(0,P.Jt)(Ie)||{},a=0,o=n;for(;t.hasOwnProperty(n)&&a<1e3;)n=o+"_"+a,a++;t[n]=e,await(0,P.hZ)(Ie,t),Ls(n)}let o=[];for(const e of Fn.childNodes){const{album:t,artist:a,codec:n,duration:s,file:i,title:r}=e.dataset,{handle:l,dirHandle:c}=e;o.push({file:i,handle:l,dirHandle:c,content:{album:t,artist:a,codec:n,duration:s,title:r}})}a?(0,P.hZ)(Pe,o):(0,P.hZ)(De+n,o).then((()=>D().alert({text:"Playlist saved!"})))}else D().input({text:"Give this playlist a name:",submitText:"Save",submitCallback:e=>{e&&ui(e,!1)},cancelCallback:()=>{D().alert({text:"Canceled"})}});else D().alert({text:"Queue is empty!"})}function fi(e){for(const t of io)t.dataset.file==e.dataset.file&&ts(e,t)}function pi(e){if(void 0===e&&(e=!!zt.style.height),window.innerHeight>=Tt&&(document.body.style.overflowY="hidden"),e)for(const e of _n)Zo(At(`#${e.value}`),!0);const t=At(".player-panel").clientHeight+At(".bottom-panel").clientHeight+10;zt.style.height=e?"":`calc( 100vh - ${t}px )`,sn.classList.toggle("closed",!e)}function hi(){co.endTime{const{abs:a,sign:n}=Math;return e==Dt?["","10 bands (octaves)","20 bands (half octaves)","30 bands (1/3rd oct.)","40 bands (1/4th oct.)","60 bands (1/6th oct.)","80 bands (1/8th oct.)","120 bands (1/12th oct.)","240 bands (1/24th oct.)"][+t||0]:e==Ht?0==t?"None":1==t?"Legacy":(100*t|0)+"%":e==Yt?0==t?0:(100*t|0)+"%":e==Za?0==t?"OFF":a(t)+" RPM"+(-1==n(t)?" (CCW)":""):t})(e.value))}!async function(){const e=e=>{const t=$s(!0);ds("audioOnEnded",{mediaEl:e.target.id.slice(-1),isNextSong:t}),t||(di(),Ys("Queue ended",10),Ho()&&wo.pause())},t=e=>{e.target.attributes.src&&ls("Error loading "+e.target.src,!0)},a=e=>{ds("audioOnPlay",{mediaEl:e.target.id.slice(-1)}),io[In].attributes.src?(Ho()&&wo.play(),io[In].currentTime<.1&&"1"==Aa.value&&Hs(!0),Bo(Ga)&&Ys(1,+rn.value||1/0)):_s(Bn)},r=e=>{if(e.target!=io[In])return;const{currentTime:t,duration:a}=io[In];Ja.value=a&&a!=1/0?t/a:0,Ya.innerText=Yo(t,!0),Va.innerHTML=Yo(a?t-a:0,!0).padEnd(6).replaceAll(" "," ")};let l=!1;const c="audiomotion.app"!=window.location.hostname,d=new URL(window.location).searchParams,u=d.get("mode"),E=d.get("frontPanel")||d.get("mediaPanel");null!=d.get("debug")&&(Gt.checked=!0,ls("Debug enabled via URL parameter")),Is(wa,_n,"panel"),Pn=At('label[for="panel-console"]'),window.addEventListener("error",(e=>ls(`Unexpected ${e.error}`,!0))),ls(`audioMotion v${F} initializing...`),ls(`User agent: ${navigator.userAgent}`),At("#version").innerText=F;const $=ys(_e),T=At("#update-banner");let A;null!=$&&$!=F||T.remove(),$!=F&&(Gs(_e,F),null!=$&&(T.classList.add(Ct),T.addEventListener("click",(()=>T.classList.remove(Ct))),setTimeout((()=>{T.classList.remove(Ct)}),1e4)));try{A=await fetch(vt)}catch(e){}let _=A&&A.ok?await A.text():"{}";try{_=JSON.parse(_)}catch(e){ls(`Error parsing ${vt} - ${e}`,!0),_={}}_={...kt,frontPanel:_.mediaPanel,..._},jn=_.enableLocalAccess&&!!window.showDirectoryPicker;let I=_.enableLocalAccess&&(!c||u==ve||"server"!=u&&ys(Ce));null===I&&(I=_.defaultAccessMode==ve),(E==qe||_.frontPanel==qe&&E!=je)&&pi(!1),ls(`Instantiating audioMotion-analyzer v${n.A.version}`),On=new n.A(It,{bgAlpha:0,fsElement:zt,onCanvasDraw:(e,t)=>{if(!io.length)return;const a=io[In],n=a.dataset,o=a.duration-a.currentTime,s=+Kt.value,i=Rt.value[0],r=Bt.value,l=ho+1/e.fps,c=Bo(ga),d=e.pixelRatio,{timestamp:u}=t;if(o0&&o<=s&&Bo(Ga)&&u>co.endTime&&Fo()&&Ys(1,o,1),!(r!=ee&&"4"!=r&&"5"!=r||i!=G&&i!=W)){let t;if(r==ee)t=(70*e.getEnergy()|0)-25;else{const e=a.currentTime/a.duration;t=100*("4"==r?e:1-e)}zt.style.backgroundSize=`auto ${100+t}%`}ka.width|=0;const{endTime:f,startTime:p,msgTimer:h,info:m,msg:b,fade:g}=co;if(u>f&&u>h)return;const v=(e,t,a,n)=>{c?(ko.strokeText(e,t,a,n),ko.fillText(e,t,a,n)):(ko.shadowOffsetX=ko.shadowOffsetY=3*d,ko.fillText(e,t,a,n),ko.shadowOffsetX=ko.shadowOffsetY=0)};if(ko.lineWidth=4*d,ko.lineJoin="round",ko.font=oo,ko.textAlign="center",ko.fillStyle="#fff",ko.strokeStyle=ko.shadowColor="#000",h>u&&(u>f||2!=m)){const e=(h-u)/1e3;ko.globalAlpha=e>1?1:e,v(co.msg,Yn,Xn)}if(f>u){if(g<0){const e=(f-u)/1e3;ko.globalAlpha=e>-g?1:e/-g}else{const e=Math.max(0,(u-p)/1e3);ko.globalAlpha=e>g?1:e/g}if(2==co.info&&(v(Io(),Yn,Xn,ao),ko.textAlign="left",v(Co(pa),Kn,Xn,ao),v(`Randomize: ${Co(Aa)}`,Kn,Zn,ao),ko.textAlign="right",v(Co(qa).toUpperCase()+" sensitivity",Jn,Xn,ao),v(`Repeat is ${Uo(Ra)}`,Jn,Zn,ao)),Xa.checked)ko.textAlign="left",ko.font=so,v("MIC source",Kn,eo,no);else{ko.textAlign="right",v(n.codec,Jn,Qn),v(n.quality,Jn,Qn+Kn);const e=Wo();e&&ja.checked&&v(`Track ${Bn+1} of ${e}`,Jn,Qn-Kn),ko.textAlign="left",v(n.artist.toUpperCase(),Kn,Qn,no),ko.font=`italic ${oo}`,v(n.album,Kn,to,no),ko.font=so,v(a.src?n.title:"No song loaded",Kn,eo,no),(a.duration||n.duration)&&(n.duration||(n.duration=Yo(a.duration),Fn.children[Bn]&&(Fn.children[Bn].dataset.duration=n.duration)),ko.textAlign="right",v(Yo(a.currentTime)+" / "+n.duration,Jn,to)),yo.width&&Ua.checked&&ko.drawImage(yo,Kn,Qn-1.3*Vn,Vn,Vn)}}},onCanvasResize:(e,t)=>{rs(t);const{canvas:a,fsWidth:n,fsHeight:o,isFullscreen:s,loRes:i,pixelRatio:r}=t;let l;switch(e){case"create":ls(`Display resolution: ${n} x ${o} px (pixelRatio: ${window.devicePixelRatio})`),l="Canvas created";break;case"lores":l=`Lo-res ${i?"ON":"OFF"} (pixelRatio = ${r})`;break;case"fschange":l=(s?"Enter":"Exit")+"ed fullscreen";break;case"user":l=(Ho()?"Resized for":"Closed")+" PIP";break;default:return}ls(`${l||e}. Canvas size is ${a.width} x ${a.height} px`)}});const R=On.audioCtx,H=function(){const e=(e,t)=>{Array.isArray(e)&&e.forEach((e=>{const{value:a,disabled:n}="object"==typeof e?e:{value:e,disabled:!0},o=Array.isArray(t)?t.find((e=>e.value==a)):t[a];o&&(o.disabled=n)}))},t=ys(Te),a=null!==t,n=ys($e)||{},{fftSize:o,smoothing:s}=n;((e,t)=>{const a=Ao(e);-1!=a&&(pn[a].options=t)})(We,{..._o(Ge),fftSize:o,smoothing:s,...t}),zn=ys(we)||[],Array.isArray(zn)||(zn=[{name:"Custom",options:zn}]);for(let e=0;e<9;e++)void 0===zn[e]?zn[e]={}:Do(zn[e])||zn[e].options||(zn[e]={options:zn[e]});e(ys(xe),wn);const i=ys(ye);i&&Object.keys(i).forEach((e=>{hn[e]=i[e],hn[e].key=e})),e(ys(Le),hn),e(ys(Se),gn);const r=_t(".min-db");r.forEach((e=>Xo(e,-120,-60)));const l=_t(".max-db");l.forEach((e=>Xo(e,-50,0)));const c=_t(".linear-boost");c.forEach((e=>Xo(e,1,5,.2))),(ys(Me)||vn).forEach(((e,t)=>{r[t].value=e.min,l[t].value=e.max,c[t].value=e.boost||vn[t].boost})),Ds(Sa,En),Xo(Zt,25,100,5),Ds(da,Sn),Ds(Nt,[[V,"Disable"],[Y,"Built-in"],[...jn?[J,"Local folder"]:[]]]),Xo(qt,0,1e3),on.disabled=On.audioCtx.destination.maxChannelCount<=2,Xs({...Ln,...n}),Ds(ya,[["0","Small"],["1","Medium"],["2","Large"]]),Zs({...yn,...ys(Ee)||{}}),Xo(ta,.01,25,.01),Xo(xa,0,5e3,50),Xo(La,0,5e3,50),ei({...$n,...ys(Oe)||{}}),Ds(en,[["none","None"],[yt,"Shadow"],["solid","Solid"]]),Ds(tn,[["gold","Gold"],["gray","Gray"],[wt,"White"],["yellow","Yellow"]]);const d=[["top","Top"],[Et,"Center"],[St,"Bottom"]];return Ds(an,d),Ds(nn,d),oi({...An,...n,...ys(Re)||{}}),a}();Fn=At("#playlist"),Fn.addEventListener("dblclick",(e=>{e.target&&e.target.dataset.file&&(_s(Eo(e.target)),e.target.classList.remove("selected","sortable-chosen"))})),Bn=0,M.Ay.create(Fn,{animation:150,group:{name:"filelist",pull:!1,put:!0},multiDrag:!0,multiDragKey:"ctrl",selectedClass:"selected",onEnd:e=>{Bn=Eo(Fn.querySelector(".current")),0!=e.newIndex||Fo()?Ss(j):Ss(0),ui(!0)}}),In=0,Dn=1,R.createStereoPanner&&(Hn=R.createStereoPanner());for(const n of[0,1])io[n]=At(`#player${n}`),is(n),io[n].addEventListener("abort",(()=>ds(`mediaEl ${n} load aborted`))),io[n].addEventListener("canplay",(()=>ds(`mediaEl ${n} can play`))),io[n].addEventListener("canplaythrough",(()=>ds(`mediaEl ${n} can play through`))),io[n].addEventListener("pause",(()=>ds(`mediaEl ${n} is paused`))),io[n].addEventListener("play",a),io[n].addEventListener("playing",(()=>ds(`mediaEl ${n} is playing`))),io[n].addEventListener("emptied",(()=>ds(`mediaEl ${n} emptied`))),io[n].addEventListener("ended",e),io[n].addEventListener("error",t),io[n].addEventListener("timeupdate",r),io[n].querySelector("track").addEventListener("load",si),Hn?(mo[n]=R.createMediaElementSource(io[n]),mo[n].connect(Hn)):On.connectInput(io[n]);Xo(Ja,0,1,.001),Ja.value=0,Ya.innerText=Va.innerText=Yo(0,!0),function(){var e,t,a,n,o;e=At("#enabled_bgfit"),t="enabledBgFit",n=Bt,o=xe,(a=wn).forEach((a=>{e.innerHTML+=``})),_t(`.${t}`).forEach((e=>{e.addEventListener("click",(t=>{if(!e.checked&&a.filter((e=>!e.disabled)).length<2)return D().alert({text:"At least one item must be enabled!"}),t.preventDefault(),!1;const s=a.find((t=>t.value==e.dataset.option));s&&(s.disabled=!e.checked,Ds(n,a),zs(o))}))}));const s=At("#enabled_gradients");Object.keys(hn).forEach((e=>{s.innerHTML+=``})),Ps();const i=At("#random_properties");gn.forEach((e=>{i.innerHTML+=` ${e.text}`})),_t(".randomProperty").forEach((e=>{e.addEventListener("click",(t=>{gn.find((t=>t.value==e.value)).disabled=!e.checked,zs(Se)}))})),_t("[data-preset]").forEach((e=>{"reset-sens"==e.className?e.addEventListener("click",(()=>{const t=e.dataset.preset;At(`.min-db[data-preset="${t}"]`).value=vn[t].min,At(`.max-db[data-preset="${t}"]`).value=vn[t].max,At(`.linear-boost[data-preset="${t}"]`).value=vn[t].boost,_t(`[data-preset="${t}"]`).forEach((e=>{e.classList.remove("field-error")})),e.dataset.preset==$o(qa)&&ti(qa,!1),zs(Me)})):e.addEventListener("change",(()=>{No(e)&&(e.dataset.preset==$o(qa)&&ti(qa,!1),zs(Me)),e.classList.toggle("field-error",!No(e))}))}));for(const e of[...kn,...xn,...Cn,...Tn])e.addEventListener("change",(()=>{No(e)&&ti(e),e.classList.toggle("field-error",!No(e))}));At("#reset_osd").addEventListener("click",(()=>{Zs(yn),ti(kn)})),At("#reset_general").addEventListener("click",(()=>{Xs(Ln),ti(xn)})),At("#reset_peak").addEventListener("click",(()=>{ei($n),ti(Cn)})),At("#reset_subs").addEventListener("click",(()=>{oi(An),ti(Tn)}))}(),Rs();for(const e of[16,20,25,30,40,50,60,100,250,500,1e3,2e3])Oa[Oa.options.length]=new Option((e>=1e3?e/1e3+"k":e)+"Hz",e);for(const e of[1e3,2e3,4e3,8e3,12e3,16e3,2e4,22e3])_a[_a.options.length]=new Option(e/1e3+"kHz",e);Is(pa,mn),Is(jt,bn),Is(qa,[["0","Low"],["1","Medium"],["2","High"]]),Ds(Aa,[["0","OFF"],["1","On track change"],["2","every 5 seconds"],["6","every 15 seconds"],["12","every 30 seconds"],["24","every minute"],["48","every 2 minutes"],["120","every 5 minutes"]]),Is(Ma,[[Ve,"Off"],[Xe,"25%"],[Ye,"40%"],[Je,"Mirror"]]),Ds(Bt,wn),Is(fa,[["-1","Left"],["0","Off"],["1","Right"]]),Is(Xt,[[ht,"Bark"],["linear","Linear"],[mt,"Log"],["mel","Mel"]]),Is(fn,[["","Off"],["A","A"],["B","B"],["C","C"],[$t,"D"],["468","468"]]),Is(Ut,[[de,"Gradient"],[ue,"Index"],[fe,"Level"]]),Is(za,[[Ue,"Off"],[1,"Drop"],[ze,"Fade"]]),Is(Ba,[[bt,"Off"],[1,"Freqs"],[gt,"Notes"]]),Is(Na,[[bt,"Off"],[1,"On"]]),Is(Pt,[[0,"Tempered"],[1,"ANSI/IEC"]]),Is(sa,[[0,"Decibels"],[1,"Linear"]]);let B=[];for(let e=10;e<16;e++){const t=2**e;B.push([t,(t/1024|0)+"k"])}Is(Vt,B),Xo(Dt,1,8),Xo(Ht,0,1,.05),Xo(Ft,.1,1,.05),Xo(Yt,0,1,.05),Xo(ia,0,3,.5),Xo(Ta,0,1,.05),Xo(Ka,0,.95,.05),Xo(Za,-10,10,1),Ys(),Object.keys(hn).forEach((e=>{const{bgColor:t,dir:a,colorStops:n}=hn[e];n&&On.registerGradient(e,{bgColor:t,dir:a,colorStops:n})})),Ms();const N=function(e,t={}){let a;var n;return m=document.createElement("ul"),m.className="breadcrumb",e.append(m),b=document.createElement("ul"),b.className="filelist",e.append(b),a=setTimeout((()=>{m.innerHTML="Waiting for server..."}),5e3),m.innerHTML="Initializing... please wait...",m.addEventListener("click",(async function(e){e.target&&"LI"==e.target.nodeName&&function(e){let t;for(;e>0;)t=g.pop(),e--;const a=g[g.length-1];a&&a.handle&&(f=a.handle,t=null),S(t,t&&t.scrollTop)}(e.target.dataset.depth)})),b.addEventListener("click",(async function(e){const t=e.target;if(t&&"LI"==t.nodeName)if("dir"==t.dataset.type)S(t.handle||t.dataset.path);else if("mount"==t.dataset.type)if(w)try{f=await window.showDirectoryPicker({startIn:"music"}),g=[],S(f)}catch(e){}else g=[],S(t.dataset.path)})),b.addEventListener("dblclick",(function(e){const t=e.target;t&&"LI"==t.nodeName&&p&&["file","list"].includes(t.dataset.type)&&p({file:C(t.dataset.path),handle:t.handle,dirHandle:t.dirHandle,subs:t.subs},e)})),"function"==typeof t.onDblClick&&(p=t.onDblClick),"function"==typeof t.onEnterDir&&(h=t.onEnterDir),t.fileExtensions&&(n=t.fileExtensions,v=new RegExp("\\.("+n.join("|")+")$","i")),new Promise((e=>{fetch(".",{method:"HEAD"}).then((async n=>{clearTimeout(a),x=!0,k=[t.rootPath||o],y=await S(k[0]),(t.forceFileSystemAPI&&s||!y)&&(g=[],s?(k=[i],w=!0):k=[],L()),e({webServer:x,useFileSystemAPI:w,serverHasMedia:y,filelist:b})})).catch((t=>{clearTimeout(a),s?(k=[i],w=!0):k=[],L(),e({webServer:x,useFileSystemAPI:w,filelist:b})}))}))}(At("#file_explorer"),{onDblClick:(e,t)=>{es([e],!0),t.target.classList.remove("selected","sortable-chosen")},onEnterDir:e=>{Ha.checked&&l&&Vo(e)},fileExtensions:[...he,...be,...ge],forceFileSystemAPI:I}).then((e=>{Wn=e.webServer,qn=e.serverHasMedia,Un=e.useFileSystemAPI;const{filelist:t}=e;qn||ls(Wn?"Cannot access music directory on server":"No server found",!0),Un&&ls("Accessing files from local device via File System Access API."),!jn&&_.enableLocalAccess&&ls('No browser support for File System Access API. Cannot access files from local device. Learn more...',I),Gs(Ce,I&&jn),Ls(),(Un||qn)&&M.Ay.create(t,{animation:150,draggable:'[data-type="file"], [data-type="list"]',group:{name:"filelist",pull:"clone",put:!1},multiDrag:!0,multiDragKey:"ctrl",selectedClass:"selected",sort:!1,onEnd:e=>{if("playlist"==e.to.id){let t=e.items.length?e.items:[e.item],a=[];t.forEach((e=>{const{handle:t,dirHandle:n,subs:o}=e;a.push(ns({file:C(e.dataset.path),handle:t,dirHandle:n,subs:o})),e.remove()})),Promise.all(a).then((()=>ui(!0)))}}}),ri()}));if(window.addEventListener("keydown",gs),window.addEventListener("keyup",gs),D().setOptions({positions:{alert:"bottom"}}),window.ResizeObserver){let e;new ResizeObserver((()=>{e||(e=setTimeout((()=>{rs(),e=0}),60))})).observe(zt)}Promise.all([Ns(),N]).then((async()=>{const e=()=>{a&&O(a),Fa.checked&&ws({file:!0})},t=async()=>{!(o&&"granted"!=await n.requestPermission()||s&&"granted"!=await a[0].handle.requestPermission())&&(ua.classList.remove("locked"),window.removeEventListener("click",t),o&&Ns(),e())},a=Un?await(0,P.Jt)(Ae):ys(Ae),n=await(0,P.Jt)(ke),o=jn&&n&&"granted"!=await n.queryPermission(),s=Un&&Array.isArray(a)&&a[0]&&"granted"!=await a[0].handle.queryPermission();ls(`Loading ${H?"last session":"default"} settings`),xs(We,!1,!0),o||s?(ua.classList.add("locked"),window.addEventListener("click",t)):e(),ti([Zt,on,cn,...Tn],!1),ho=(R.outputLatency||0)+R.baseLatency,ls(`AudioContext sample rate is ${R.sampleRate}Hz; Total latency is ${1e3*ho|0}ms`),ls("Initialization complete!"),l=!0}))}()},6216:()=>{Element.prototype.scrollIntoViewIfNeeded||(Element.prototype.scrollIntoViewIfNeeded=function(e){e=0===arguments.length||!!e;var t=this.parentNode,a=window.getComputedStyle(t,null),n=parseInt(a.getPropertyValue("border-top-width")),o=parseInt(a.getPropertyValue("border-left-width")),s=this.offsetTop-t.offsetTopt.scrollTop+t.clientHeight,r=this.offsetLeft-t.offsetLeftt.scrollLeft+t.clientWidth,c=s&&!i;(s||i)&&e&&(t.scrollTop=this.offsetTop-t.offsetTop-t.clientHeight/2-n+this.clientHeight/2),(r||l)&&e&&(t.scrollLeft=this.offsetLeft-t.offsetLeft-t.clientWidth/2-o+this.clientWidth/2),(s||i||r||l)&&!e&&this.scrollIntoView(c)})},143:()=>{},3411:()=>{}},a={};function n(e){var o=a[e];if(void 0!==o)return o.exports;var s=a[e]={exports:{}};return t[e].call(s.exports,s,s.exports,n),s.exports}n.m=t,e=[],n.O=(t,a,o,s)=>{if(!a){var i=1/0;for(d=0;d=s)&&Object.keys(n.O).every((e=>n.O[e](a[l])))?a.splice(l--,1):(r=!1,s0&&e[d-1][2]>s;d--)e[d]=e[d-1];e[d]=[a,o,s]},n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var a in t)n.o(t,a)&&!n.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={792:0};n.O.j=t=>0===e[t];var t=(t,a)=>{var o,s,[i,r,l]=a,c=0;if(i.some((t=>0!==e[t]))){for(o in r)n.o(r,o)&&(n.m[o]=r[o]);if(l)var d=l(n)}for(t&&t(a);cn(6965)));o=n.O(o)})(); \ No newline at end of file diff --git a/public/audioMotion.js.LICENSE.txt b/public/audioMotion.js.LICENSE.txt deleted file mode 100644 index b0e42d0..0000000 --- a/public/audioMotion.js.LICENSE.txt +++ /dev/null @@ -1,30 +0,0 @@ -/** - * ░ ░ ░ ░ ░ - * ░ ░░ ░░ ░ - * ░░░ ░ ░ ░░░░ ░░ ░░░ ░ ░ ░ ░ ░░░ ░░░ ░░ ░░░ ░░░░ - * ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ - * ▒▒▒▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ - * ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ - * ▓▓▓▓ ▓▓▓▓ ▓▓▓▓ ▓▓▓▓▓ ▓▓▓ ▓ ▓ ▓▓▓ ▓▓ ▓▓▓▓▓ ▓▓▓ ▓ ▓ - * - * audioMotion | media player and real-time audio spectrum analyzer - * - * https://github.com/hvianna/audioMotion.js - * - * @author Henrique Vianna - * @copyright (c) 2018-2025 Henrique Avila Vianna - * @license AGPL-3.0-or-later - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ diff --git a/public/vendors.js b/public/vendors.js deleted file mode 100644 index bade948..0000000 --- a/public/vendors.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see vendors.js.LICENSE.txt */ -(self.webpackChunkaudioMotion=self.webpackChunkaudioMotion||[]).push([[96],{7526:(e,t)=>{"use strict";t.byteLength=function(e){var t=o(e),r=t[0],a=t[1];return 3*(r+a)/4-a},t.toByteArray=function(e){var t,r,n=o(e),s=n[0],l=n[1],c=new i(function(e,t,r){return 3*(t+r)/4-r}(0,s,l)),u=0,d=l>0?s-4:s;for(r=0;r>16&255,c[u++]=t>>8&255,c[u++]=255&t;return 2===l&&(t=a[e.charCodeAt(r)]<<2|a[e.charCodeAt(r+1)]>>4,c[u++]=255&t),1===l&&(t=a[e.charCodeAt(r)]<<10|a[e.charCodeAt(r+1)]<<4|a[e.charCodeAt(r+2)]>>2,c[u++]=t>>8&255,c[u++]=255&t),c},t.fromByteArray=function(e){for(var t,a=e.length,i=a%3,n=[],s=16383,o=0,c=a-i;oc?c:o+s));return 1===i?(t=e[a-1],n.push(r[t>>2]+r[t<<4&63]+"==")):2===i&&(t=(e[a-2]<<8)+e[a-1],n.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"=")),n.join("")};for(var r=[],a=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0;s<64;++s)r[s]=n[s],a[n.charCodeAt(s)]=s;function o(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function l(e,t,a){for(var i,n,s=[],o=t;o>18&63]+r[n>>12&63]+r[n>>6&63]+r[63&n]);return s.join("")}a["-".charCodeAt(0)]=62,a["_".charCodeAt(0)]=63},8287:(e,t,r)=>{"use strict";const a=r(7526),i=r(251),n="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=l,t.SlowBuffer=function(e){return+e!=e&&(e=0),l.alloc(+e)},t.INSPECT_MAX_BYTES=50;const s=2147483647;function o(e){if(e>s)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new Uint8Array(e);return Object.setPrototypeOf(t,l.prototype),t}function l(e,t,r){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return d(e)}return c(e,t,r)}function c(e,t,r){if("string"==typeof e)return function(e,t){if("string"==typeof t&&""!==t||(t="utf8"),!l.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const r=0|m(e,t);let a=o(r);const i=a.write(e,t);return i!==r&&(a=a.slice(0,i)),a}(e,t);if(ArrayBuffer.isView(e))return function(e){if(Y(e,Uint8Array)){const t=new Uint8Array(e);return f(t.buffer,t.byteOffset,t.byteLength)}return h(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(Y(e,ArrayBuffer)||e&&Y(e.buffer,ArrayBuffer))return f(e,t,r);if("undefined"!=typeof SharedArrayBuffer&&(Y(e,SharedArrayBuffer)||e&&Y(e.buffer,SharedArrayBuffer)))return f(e,t,r);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const a=e.valueOf&&e.valueOf();if(null!=a&&a!==e)return l.from(a,t,r);const i=function(e){if(l.isBuffer(e)){const t=0|p(e.length),r=o(t);return 0===r.length||e.copy(r,0,0,t),r}return void 0!==e.length?"number"!=typeof e.length||K(e.length)?o(0):h(e):"Buffer"===e.type&&Array.isArray(e.data)?h(e.data):void 0}(e);if(i)return i;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return l.from(e[Symbol.toPrimitive]("string"),t,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function u(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function d(e){return u(e),o(e<0?0:0|p(e))}function h(e){const t=e.length<0?0:0|p(e.length),r=o(t);for(let a=0;a=s)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s.toString(16)+" bytes");return 0|e}function m(e,t){if(l.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||Y(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);const r=e.length,a=arguments.length>2&&!0===arguments[2];if(!a&&0===r)return 0;let i=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return $(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return q(e).length;default:if(i)return a?-1:$(e).length;t=(""+t).toLowerCase(),i=!0}}function g(e,t,r){let a=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return D(this,t,r);case"utf8":case"utf-8":return I(this,t,r);case"ascii":return A(this,t,r);case"latin1":case"binary":return x(this,t,r);case"base64":return S(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return B(this,t,r);default:if(a)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),a=!0}}function b(e,t,r){const a=e[t];e[t]=e[r],e[r]=a}function y(e,t,r,a,i){if(0===e.length)return-1;if("string"==typeof r?(a=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),K(r=+r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof t&&(t=l.from(t,a)),l.isBuffer(t))return 0===t.length?-1:v(e,t,r,a,i);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):v(e,[t],r,a,i);throw new TypeError("val must be string, number or Buffer")}function v(e,t,r,a,i){let n,s=1,o=e.length,l=t.length;if(void 0!==a&&("ucs2"===(a=String(a).toLowerCase())||"ucs-2"===a||"utf16le"===a||"utf-16le"===a)){if(e.length<2||t.length<2)return-1;s=2,o/=2,l/=2,r/=2}function c(e,t){return 1===s?e[t]:e.readUInt16BE(t*s)}if(i){let a=-1;for(n=r;no&&(r=o-l),n=r;n>=0;n--){let r=!0;for(let a=0;ai&&(a=i):a=i;const n=t.length;let s;for(a>n/2&&(a=n/2),s=0;s>8,i=r%256,n.push(i),n.push(a);return n}(t,e.length-r),e,r,a)}function S(e,t,r){return 0===t&&r===e.length?a.fromByteArray(e):a.fromByteArray(e.slice(t,r))}function I(e,t,r){r=Math.min(e.length,r);const a=[];let i=t;for(;i239?4:t>223?3:t>191?2:1;if(i+s<=r){let r,a,o,l;switch(s){case 1:t<128&&(n=t);break;case 2:r=e[i+1],128==(192&r)&&(l=(31&t)<<6|63&r,l>127&&(n=l));break;case 3:r=e[i+1],a=e[i+2],128==(192&r)&&128==(192&a)&&(l=(15&t)<<12|(63&r)<<6|63&a,l>2047&&(l<55296||l>57343)&&(n=l));break;case 4:r=e[i+1],a=e[i+2],o=e[i+3],128==(192&r)&&128==(192&a)&&128==(192&o)&&(l=(15&t)<<18|(63&r)<<12|(63&a)<<6|63&o,l>65535&&l<1114112&&(n=l))}}null===n?(n=65533,s=1):n>65535&&(n-=65536,a.push(n>>>10&1023|55296),n=56320|1023&n),a.push(n),i+=s}return function(e){const t=e.length;if(t<=C)return String.fromCharCode.apply(String,e);let r="",a=0;for(;aa.length?(l.isBuffer(t)||(t=l.from(t)),t.copy(a,i)):Uint8Array.prototype.set.call(a,t,i);else{if(!l.isBuffer(t))throw new TypeError('"list" argument must be an Array of Buffers');t.copy(a,i)}i+=t.length}return a},l.byteLength=m,l.prototype._isBuffer=!0,l.prototype.swap16=function(){const e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;tr&&(e+=" ... "),""},n&&(l.prototype[n]=l.prototype.inspect),l.prototype.compare=function(e,t,r,a,i){if(Y(e,Uint8Array)&&(e=l.from(e,e.offset,e.byteLength)),!l.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===a&&(a=0),void 0===i&&(i=this.length),t<0||r>e.length||a<0||i>this.length)throw new RangeError("out of range index");if(a>=i&&t>=r)return 0;if(a>=i)return-1;if(t>=r)return 1;if(this===e)return 0;let n=(i>>>=0)-(a>>>=0),s=(r>>>=0)-(t>>>=0);const o=Math.min(n,s),c=this.slice(a,i),u=e.slice(t,r);for(let e=0;e>>=0,isFinite(r)?(r>>>=0,void 0===a&&(a="utf8")):(a=r,r=void 0)}const i=this.length-t;if((void 0===r||r>i)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");a||(a="utf8");let n=!1;for(;;)switch(a){case"hex":return T(this,e,t,r);case"utf8":case"utf-8":return w(this,e,t,r);case"ascii":case"latin1":case"binary":return _(this,e,t,r);case"base64":return k(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return E(this,e,t,r);default:if(n)throw new TypeError("Unknown encoding: "+a);a=(""+a).toLowerCase(),n=!0}},l.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const C=4096;function A(e,t,r){let a="";r=Math.min(e.length,r);for(let i=t;ia)&&(r=a);let i="";for(let a=t;ar)throw new RangeError("Trying to access beyond buffer length")}function P(e,t,r,a,i,n){if(!l.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function L(e,t,r,a,i){H(t,a,i,e,r,7);let n=Number(t&BigInt(4294967295));e[r++]=n,n>>=8,e[r++]=n,n>>=8,e[r++]=n,n>>=8,e[r++]=n;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[r++]=s,s>>=8,e[r++]=s,s>>=8,e[r++]=s,s>>=8,e[r++]=s,r}function O(e,t,r,a,i){H(t,a,i,e,r,7);let n=Number(t&BigInt(4294967295));e[r+7]=n,n>>=8,e[r+6]=n,n>>=8,e[r+5]=n,n>>=8,e[r+4]=n;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[r+3]=s,s>>=8,e[r+2]=s,s>>=8,e[r+1]=s,s>>=8,e[r]=s,r+8}function R(e,t,r,a,i,n){if(r+a>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function F(e,t,r,a,n){return t=+t,r>>>=0,n||R(e,0,r,4),i.write(e,t,r,a,23,4),r+4}function N(e,t,r,a,n){return t=+t,r>>>=0,n||R(e,0,r,8),i.write(e,t,r,a,52,8),r+8}l.prototype.slice=function(e,t){const r=this.length;(e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t>>=0,t>>>=0,r||M(e,t,this.length);let a=this[e],i=1,n=0;for(;++n>>=0,t>>>=0,r||M(e,t,this.length);let a=this[e+--t],i=1;for(;t>0&&(i*=256);)a+=this[e+--t]*i;return a},l.prototype.readUint8=l.prototype.readUInt8=function(e,t){return e>>>=0,t||M(e,1,this.length),this[e]},l.prototype.readUint16LE=l.prototype.readUInt16LE=function(e,t){return e>>>=0,t||M(e,2,this.length),this[e]|this[e+1]<<8},l.prototype.readUint16BE=l.prototype.readUInt16BE=function(e,t){return e>>>=0,t||M(e,2,this.length),this[e]<<8|this[e+1]},l.prototype.readUint32LE=l.prototype.readUInt32LE=function(e,t){return e>>>=0,t||M(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},l.prototype.readUint32BE=l.prototype.readUInt32BE=function(e,t){return e>>>=0,t||M(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},l.prototype.readBigUInt64LE=J((function(e){G(e>>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||W(e,this.length-8);const a=t+256*this[++e]+65536*this[++e]+this[++e]*2**24,i=this[++e]+256*this[++e]+65536*this[++e]+r*2**24;return BigInt(a)+(BigInt(i)<>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||W(e,this.length-8);const a=t*2**24+65536*this[++e]+256*this[++e]+this[++e],i=this[++e]*2**24+65536*this[++e]+256*this[++e]+r;return(BigInt(a)<>>=0,t>>>=0,r||M(e,t,this.length);let a=this[e],i=1,n=0;for(;++n=i&&(a-=Math.pow(2,8*t)),a},l.prototype.readIntBE=function(e,t,r){e>>>=0,t>>>=0,r||M(e,t,this.length);let a=t,i=1,n=this[e+--a];for(;a>0&&(i*=256);)n+=this[e+--a]*i;return i*=128,n>=i&&(n-=Math.pow(2,8*t)),n},l.prototype.readInt8=function(e,t){return e>>>=0,t||M(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},l.prototype.readInt16LE=function(e,t){e>>>=0,t||M(e,2,this.length);const r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},l.prototype.readInt16BE=function(e,t){e>>>=0,t||M(e,2,this.length);const r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},l.prototype.readInt32LE=function(e,t){return e>>>=0,t||M(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},l.prototype.readInt32BE=function(e,t){return e>>>=0,t||M(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},l.prototype.readBigInt64LE=J((function(e){G(e>>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||W(e,this.length-8);const a=this[e+4]+256*this[e+5]+65536*this[e+6]+(r<<24);return(BigInt(a)<>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||W(e,this.length-8);const a=(t<<24)+65536*this[++e]+256*this[++e]+this[++e];return(BigInt(a)<>>=0,t||M(e,4,this.length),i.read(this,e,!0,23,4)},l.prototype.readFloatBE=function(e,t){return e>>>=0,t||M(e,4,this.length),i.read(this,e,!1,23,4)},l.prototype.readDoubleLE=function(e,t){return e>>>=0,t||M(e,8,this.length),i.read(this,e,!0,52,8)},l.prototype.readDoubleBE=function(e,t){return e>>>=0,t||M(e,8,this.length),i.read(this,e,!1,52,8)},l.prototype.writeUintLE=l.prototype.writeUIntLE=function(e,t,r,a){e=+e,t>>>=0,r>>>=0,a||P(this,e,t,r,Math.pow(2,8*r)-1,0);let i=1,n=0;for(this[t]=255&e;++n>>=0,r>>>=0,a||P(this,e,t,r,Math.pow(2,8*r)-1,0);let i=r-1,n=1;for(this[t+i]=255&e;--i>=0&&(n*=256);)this[t+i]=e/n&255;return t+r},l.prototype.writeUint8=l.prototype.writeUInt8=function(e,t,r){return e=+e,t>>>=0,r||P(this,e,t,1,255,0),this[t]=255&e,t+1},l.prototype.writeUint16LE=l.prototype.writeUInt16LE=function(e,t,r){return e=+e,t>>>=0,r||P(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},l.prototype.writeUint16BE=l.prototype.writeUInt16BE=function(e,t,r){return e=+e,t>>>=0,r||P(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},l.prototype.writeUint32LE=l.prototype.writeUInt32LE=function(e,t,r){return e=+e,t>>>=0,r||P(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},l.prototype.writeUint32BE=l.prototype.writeUInt32BE=function(e,t,r){return e=+e,t>>>=0,r||P(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},l.prototype.writeBigUInt64LE=J((function(e,t=0){return L(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),l.prototype.writeBigUInt64BE=J((function(e,t=0){return O(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),l.prototype.writeIntLE=function(e,t,r,a){if(e=+e,t>>>=0,!a){const a=Math.pow(2,8*r-1);P(this,e,t,r,a-1,-a)}let i=0,n=1,s=0;for(this[t]=255&e;++i>>=0,!a){const a=Math.pow(2,8*r-1);P(this,e,t,r,a-1,-a)}let i=r-1,n=1,s=0;for(this[t+i]=255&e;--i>=0&&(n*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/n|0)-s&255;return t+r},l.prototype.writeInt8=function(e,t,r){return e=+e,t>>>=0,r||P(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},l.prototype.writeInt16LE=function(e,t,r){return e=+e,t>>>=0,r||P(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},l.prototype.writeInt16BE=function(e,t,r){return e=+e,t>>>=0,r||P(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},l.prototype.writeInt32LE=function(e,t,r){return e=+e,t>>>=0,r||P(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},l.prototype.writeInt32BE=function(e,t,r){return e=+e,t>>>=0,r||P(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},l.prototype.writeBigInt64LE=J((function(e,t=0){return L(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),l.prototype.writeBigInt64BE=J((function(e,t=0){return O(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),l.prototype.writeFloatLE=function(e,t,r){return F(this,e,t,!0,r)},l.prototype.writeFloatBE=function(e,t,r){return F(this,e,t,!1,r)},l.prototype.writeDoubleLE=function(e,t,r){return N(this,e,t,!0,r)},l.prototype.writeDoubleBE=function(e,t,r){return N(this,e,t,!1,r)},l.prototype.copy=function(e,t,r,a){if(!l.isBuffer(e))throw new TypeError("argument should be a Buffer");if(r||(r=0),a||0===a||(a=this.length),t>=e.length&&(t=e.length),t||(t=0),a>0&&a=this.length)throw new RangeError("Index out of range");if(a<0)throw new RangeError("sourceEnd out of bounds");a>this.length&&(a=this.length),e.length-t>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(i=t;i=a+4;r-=3)t=`_${e.slice(r-3,r)}${t}`;return`${e.slice(0,r)}${t}`}function H(e,t,r,a,i,n){if(e>r||e3?0===t||t===BigInt(0)?`>= 0${a} and < 2${a} ** ${8*(n+1)}${a}`:`>= -(2${a} ** ${8*(n+1)-1}${a}) and < 2 ** ${8*(n+1)-1}${a}`:`>= ${t}${a} and <= ${r}${a}`,new z.ERR_OUT_OF_RANGE("value",i,e)}!function(e,t,r){G(t,"offset"),void 0!==e[t]&&void 0!==e[t+r]||W(t,e.length-(r+1))}(a,i,n)}function G(e,t){if("number"!=typeof e)throw new z.ERR_INVALID_ARG_TYPE(t,"number",e)}function W(e,t,r){if(Math.floor(e)!==e)throw G(e,r),new z.ERR_OUT_OF_RANGE(r||"offset","an integer",e);if(t<0)throw new z.ERR_BUFFER_OUT_OF_BOUNDS;throw new z.ERR_OUT_OF_RANGE(r||"offset",`>= ${r?1:0} and <= ${t}`,e)}U("ERR_BUFFER_OUT_OF_BOUNDS",(function(e){return e?`${e} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"}),RangeError),U("ERR_INVALID_ARG_TYPE",(function(e,t){return`The "${e}" argument must be of type number. Received type ${typeof t}`}),TypeError),U("ERR_OUT_OF_RANGE",(function(e,t,r){let a=`The value of "${e}" is out of range.`,i=r;return Number.isInteger(r)&&Math.abs(r)>2**32?i=j(String(r)):"bigint"==typeof r&&(i=String(r),(r>BigInt(2)**BigInt(32)||r<-(BigInt(2)**BigInt(32)))&&(i=j(i)),i+="n"),a+=` It must be ${t}. Received ${i}`,a}),RangeError);const X=/[^+/0-9A-Za-z-_]/g;function $(e,t){let r;t=t||1/0;const a=e.length;let i=null;const n=[];for(let s=0;s55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&n.push(239,191,189);continue}if(s+1===a){(t-=3)>-1&&n.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&n.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(t-=3)>-1&&n.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;n.push(r)}else if(r<2048){if((t-=2)<0)break;n.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;n.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;n.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return n}function q(e){return a.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(X,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function V(e,t,r,a){let i;for(i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function Y(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function K(e){return e!=e}const Z=function(){const e="0123456789abcdef",t=new Array(256);for(let r=0;r<16;++r){const a=16*r;for(let i=0;i<16;++i)t[a+i]=e[r]+e[i]}return t}();function J(e){return"undefined"==typeof BigInt?Q:e}function Q(){throw new Error("BigInt not supported")}},8597:(e,t)=>{"use strict";var r=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,a=/^[\u000b\u0020-\u007e\u0080-\u00ff]+$/,i=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,n=/\\([\u000b\u0020-\u00ff])/g,s=/([\\"])/g,o=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;function l(e){var t=String(e);if(i.test(t))return t;if(t.length>0&&!a.test(t))throw new TypeError("invalid parameter value");return'"'+t.replace(s,"\\$1")+'"'}function c(e){this.parameters=Object.create(null),this.type=e}t.format=function(e){if(!e||"object"!=typeof e)throw new TypeError("argument obj is required");var t=e.parameters,r=e.type;if(!r||!o.test(r))throw new TypeError("invalid type");var a=r;if(t&&"object"==typeof t)for(var n,s=Object.keys(t).sort(),c=0;c{var a=r(5606);t.formatArgs=function(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff),!this.useColors)return;const r="color: "+this.color;t.splice(1,0,r,"color: inherit");let a=0,i=0;t[0].replace(/%[a-zA-Z%]/g,(e=>{"%%"!==e&&(a++,"%c"===e&&(i=a))})),t.splice(i,0,r)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(e){}},t.load=function(){let e;try{e=t.storage.getItem("debug")}catch(e){}return!e&&void 0!==a&&"env"in a&&(e=a.env.DEBUG),e},t.useColors=function(){if("undefined"!=typeof window&&window.process&&("renderer"===window.process.type||window.process.__nwjs))return!0;if("undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return"undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},t.storage=function(){try{return localStorage}catch(e){}}(),t.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],t.log=console.debug||console.log||(()=>{}),e.exports=r(736)(t);const{formatters:i}=e.exports;i.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},736:(e,t,r)=>{e.exports=function(e){function t(e){let r,i,n,s=null;function o(...e){if(!o.enabled)return;const a=o,i=Number(new Date),n=i-(r||i);a.diff=n,a.prev=r,a.curr=i,r=i,e[0]=t.coerce(e[0]),"string"!=typeof e[0]&&e.unshift("%O");let s=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,((r,i)=>{if("%%"===r)return"%";s++;const n=t.formatters[i];if("function"==typeof n){const t=e[s];r=n.call(a,t),e.splice(s,1),s--}return r})),t.formatArgs.call(a,e),(a.log||t.log).apply(a,e)}return o.namespace=e,o.useColors=t.useColors(),o.color=t.selectColor(e),o.extend=a,o.destroy=t.destroy,Object.defineProperty(o,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==s?s:(i!==t.namespaces&&(i=t.namespaces,n=t.enabled(e)),n),set:e=>{s=e}}),"function"==typeof t.init&&t.init(o),o}function a(e,r){const a=t(this.namespace+(void 0===r?":":r)+e);return a.log=this.log,a}function i(e){return e.toString().substring(2,e.toString().length-2).replace(/\.\*\?$/,"*")}return t.debug=t,t.default=t,t.coerce=function(e){return e instanceof Error?e.stack||e.message:e},t.disable=function(){const e=[...t.names.map(i),...t.skips.map(i).map((e=>"-"+e))].join(",");return t.enable(""),e},t.enable=function(e){let r;t.save(e),t.namespaces=e,t.names=[],t.skips=[];const a=("string"==typeof e?e:"").split(/[\s,]+/),i=a.length;for(r=0;r{t[r]=e[r]})),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let r=0;for(let t=0;t{"use strict";var t,r="object"==typeof Reflect?Reflect:null,a=r&&"function"==typeof r.apply?r.apply:function(e,t,r){return Function.prototype.apply.call(e,t,r)};t=r&&"function"==typeof r.ownKeys?r.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var i=Number.isNaN||function(e){return e!=e};function n(){n.init.call(this)}e.exports=n,e.exports.once=function(e,t){return new Promise((function(r,a){function i(r){e.removeListener(t,n),a(r)}function n(){"function"==typeof e.removeListener&&e.removeListener("error",i),r([].slice.call(arguments))}m(e,t,n,{once:!0}),"error"!==t&&function(e,t){"function"==typeof e.on&&m(e,"error",t,{once:!0})}(e,i)}))},n.EventEmitter=n,n.prototype._events=void 0,n.prototype._eventsCount=0,n.prototype._maxListeners=void 0;var s=10;function o(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function l(e){return void 0===e._maxListeners?n.defaultMaxListeners:e._maxListeners}function c(e,t,r,a){var i,n,s,c;if(o(r),void 0===(n=e._events)?(n=e._events=Object.create(null),e._eventsCount=0):(void 0!==n.newListener&&(e.emit("newListener",t,r.listener?r.listener:r),n=e._events),s=n[t]),void 0===s)s=n[t]=r,++e._eventsCount;else if("function"==typeof s?s=n[t]=a?[r,s]:[s,r]:a?s.unshift(r):s.push(r),(i=l(e))>0&&s.length>i&&!s.warned){s.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=e,u.type=t,u.count=s.length,c=u,console&&console.warn&&console.warn(c)}return e}function u(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function d(e,t,r){var a={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},i=u.bind(a);return i.listener=r,a.wrapFn=i,i}function h(e,t,r){var a=e._events;if(void 0===a)return[];var i=a[t];return void 0===i?[]:"function"==typeof i?r?[i.listener||i]:[i]:r?function(e){for(var t=new Array(e.length),r=0;r0&&(s=t[0]),s instanceof Error)throw s;var o=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw o.context=s,o}var l=n[e];if(void 0===l)return!1;if("function"==typeof l)a(l,this,t);else{var c=l.length,u=p(l,c);for(r=0;r=0;n--)if(r[n]===t||r[n].listener===t){s=r[n].listener,i=n;break}if(i<0)return this;0===i?r.shift():function(e,t){for(;t+1=0;a--)this.removeListener(e,t[a]);return this},n.prototype.listeners=function(e){return h(this,e,!0)},n.prototype.rawListeners=function(e){return h(this,e,!1)},n.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):f.call(e,t)},n.prototype.listenerCount=f,n.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]}},251:(e,t)=>{t.read=function(e,t,r,a,i){var n,s,o=8*i-a-1,l=(1<>1,u=-7,d=r?i-1:0,h=r?-1:1,f=e[t+d];for(d+=h,n=f&(1<<-u)-1,f>>=-u,u+=o;u>0;n=256*n+e[t+d],d+=h,u-=8);for(s=n&(1<<-u)-1,n>>=-u,u+=a;u>0;s=256*s+e[t+d],d+=h,u-=8);if(0===n)n=1-c;else{if(n===l)return s?NaN:1/0*(f?-1:1);s+=Math.pow(2,a),n-=c}return(f?-1:1)*s*Math.pow(2,n-a)},t.write=function(e,t,r,a,i,n){var s,o,l,c=8*n-i-1,u=(1<>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=a?0:n-1,p=a?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(o=isNaN(t)?1:0,s=u):(s=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-s))<1&&(s--,l*=2),(t+=s+d>=1?h/l:h*Math.pow(2,1-d))*l>=2&&(s++,l/=2),s+d>=u?(o=0,s=u):s+d>=1?(o=(t*l-1)*Math.pow(2,i),s+=d):(o=t*Math.pow(2,d-1)*Math.pow(2,i),s=0));i>=8;e[r+f]=255&o,f+=p,o/=256,i-=8);for(s=s<0;e[r+f]=255&s,f+=p,s/=256,c-=8);e[r+f-p]|=128*m}},6698:e=>{"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}}},864:(e,t)=>{"use strict";var r=/^[A-Za-z0-9][A-Za-z0-9!#$&^_.-]{0,126}$/,a=/^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/,i=/^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$/;function n(e,t,r){this.type=e,this.subtype=t,this.suffix=r}t.format=function(e){if(!e||"object"!=typeof e)throw new TypeError("argument obj is required");var t=e.subtype,i=e.suffix,n=e.type;if(!n||!a.test(n))throw new TypeError("invalid type");if(!t||!r.test(t))throw new TypeError("invalid subtype");var s=n+"/"+t;if(i){if(!a.test(i))throw new TypeError("invalid suffix");s+="+"+i}return s},t.parse=function(e){if(!e)throw new TypeError("argument string is required");if("string"!=typeof e)throw new TypeError("argument string is required to be a string");var t=i.exec(e.toLowerCase());if(!t)throw new TypeError("invalid media type");var r,a=t[1],s=t[2],o=s.lastIndexOf("+");return-1!==o&&(r=s.substr(o+1),s=s.substr(0,o)),new n(a,s,r)},t.test=function(e){if(!e)throw new TypeError("argument string is required");if("string"!=typeof e)throw new TypeError("argument string is required to be a string");return i.test(e.toLowerCase())}},6585:e=>{var t=1e3,r=60*t,a=60*r,i=24*a,n=7*i;function s(e,t,r,a){var i=t>=1.5*r;return Math.round(e/r)+" "+a+(i?"s":"")}e.exports=function(e,o){o=o||{};var l,c,u=typeof e;if("string"===u&&e.length>0)return function(e){if(!((e=String(e)).length>100)){var s=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(s){var o=parseFloat(s[1]);switch((s[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*o;case"weeks":case"week":case"w":return o*n;case"days":case"day":case"d":return o*i;case"hours":case"hour":case"hrs":case"hr":case"h":return o*a;case"minutes":case"minute":case"mins":case"min":case"m":return o*r;case"seconds":case"second":case"secs":case"sec":case"s":return o*t;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return o;default:return}}}}(e);if("number"===u&&isFinite(e))return o.long?(l=e,(c=Math.abs(l))>=i?s(l,c,i,"day"):c>=a?s(l,c,a,"hour"):c>=r?s(l,c,r,"minute"):c>=t?s(l,c,t,"second"):l+" ms"):function(e){var n=Math.abs(e);return n>=i?Math.round(e/i)+"d":n>=a?Math.round(e/a)+"h":n>=r?Math.round(e/r)+"m":n>=t?Math.round(e/t)+"s":e+"ms"}(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},6015:(e,t,r)=>{"use strict";t.WC=t.wZ=void 0;const a=r(7833),i=r(6501),n=r(7286),s=a("music-metadata-browser:main");r(6501);async function o(e,r,a){const i=new n.ReadableWebToNodeStream(e),s=await(0,t.wZ)(i,"string"==typeof r?{mimeType:r}:r,a);return await i.close(),s}t.wZ=i.parseStream,t.WC=async function(e,t){const r=await fetch(e),a={size:parseInt(r.headers.get("Content-Length"),10),mimeType:r.headers.get("Content-Type")};if(r.ok){if(r.body){const e=await o(r.body,a,t);return s("Closing HTTP-readable-stream..."),r.body.locked||await r.body.cancel(),s("HTTP-readable-stream closed."),e}return async function(e,t){const r={mimeType:e.type,size:e.size};return e instanceof File&&(r.path=e.name),o(e.stream?e.stream():function(e){const t=new FileReader;return new ReadableStream({start(r){t.onloadend=e=>{let t=e.target.result;t instanceof ArrayBuffer&&(t=new Uint8Array(t)),r.enqueue(t),r.close()},t.onerror=e=>{r.close()},t.onabort=e=>{r.close()},t.readAsArrayBuffer(e)}})}(e),{mimeType:e.type,size:e.size},t)}(await r.blob(),t)}throw new Error(`HTTP error status=${r.status}: ${r.statusText}`)}},9549:(module,__unused_webpack_exports,__webpack_require__)=>{"use strict";var Buffer=__webpack_require__(8287).Buffer;const Token=__webpack_require__(1028),strtok3=__webpack_require__(5534),{stringToBytes,tarHeaderChecksumMatches,uint32SyncSafeToken}=__webpack_require__(1110),supported=__webpack_require__(134),minimumBytes=4100;async function fromStream(e){const t=await strtok3.fromStream(e);try{return await fromTokenizer(t)}finally{await t.close()}}async function fromBuffer(e){if(!(e instanceof Uint8Array||e instanceof ArrayBuffer||Buffer.isBuffer(e)))throw new TypeError(`Expected the \`input\` argument to be of type \`Uint8Array\` or \`Buffer\` or \`ArrayBuffer\`, got \`${typeof e}\``);const t=e instanceof Buffer?e:Buffer.from(e);if(t&&t.length>1)return fromTokenizer(strtok3.fromBuffer(t))}function _check(e,t,r){r={offset:0,...r};for(const[a,i]of t.entries())if(r.mask){if(i!==(r.mask[a]&e[a+r.offset]))return!1}else if(i!==e[a+r.offset])return!1;return!0}async function fromTokenizer(e){try{return _fromTokenizer(e)}catch(e){if(!(e instanceof strtok3.EndOfStreamError))throw e}}async function _fromTokenizer(e){let t=Buffer.alloc(minimumBytes);const r=(e,r)=>_check(t,e,r),a=(e,t)=>r(stringToBytes(e),t);if(e.fileInfo.size||(e.fileInfo.size=Number.MAX_SAFE_INTEGER),await e.peekBuffer(t,{length:12,mayBeLess:!0}),r([66,77]))return{ext:"bmp",mime:"image/bmp"};if(r([11,119]))return{ext:"ac3",mime:"audio/vnd.dolby.dd-raw"};if(r([120,1]))return{ext:"dmg",mime:"application/x-apple-diskimage"};if(r([77,90]))return{ext:"exe",mime:"application/x-msdownload"};if(r([37,33]))return await e.peekBuffer(t,{length:24,mayBeLess:!0}),a("PS-Adobe-",{offset:2})&&a(" EPSF-",{offset:14})?{ext:"eps",mime:"application/eps"}:{ext:"ps",mime:"application/postscript"};if(r([31,160])||r([31,157]))return{ext:"Z",mime:"application/x-compress"};if(r([255,216,255]))return{ext:"jpg",mime:"image/jpeg"};if(r([73,73,188]))return{ext:"jxr",mime:"image/vnd.ms-photo"};if(r([31,139,8]))return{ext:"gz",mime:"application/gzip"};if(r([66,90,104]))return{ext:"bz2",mime:"application/x-bzip2"};if(a("ID3")){await e.ignore(6);const i=await e.readToken(uint32SyncSafeToken);return e.position+i>e.fileInfo.size?{ext:"mp3",mime:"audio/mpeg"}:(await e.ignore(i),fromTokenizer(e))}if(a("MP+"))return{ext:"mpc",mime:"audio/x-musepack"};if((67===t[0]||70===t[0])&&r([87,83],{offset:1}))return{ext:"swf",mime:"application/x-shockwave-flash"};if(r([71,73,70]))return{ext:"gif",mime:"image/gif"};if(a("FLIF"))return{ext:"flif",mime:"image/flif"};if(a("8BPS"))return{ext:"psd",mime:"image/vnd.adobe.photoshop"};if(a("WEBP",{offset:8}))return{ext:"webp",mime:"image/webp"};if(a("MPCK"))return{ext:"mpc",mime:"audio/x-musepack"};if(a("FORM"))return{ext:"aif",mime:"audio/aiff"};if(a("icns",{offset:0}))return{ext:"icns",mime:"image/icns"};if(r([80,75,3,4])){try{for(;e.position+30=0?s:t.length)}else await e.ignore(n.compressedSize)}}catch(o){if(!(o instanceof strtok3.EndOfStreamError))throw o}return{ext:"zip",mime:"application/zip"}}if(a("OggS")){await e.ignore(28);const l=Buffer.alloc(8);return await e.readBuffer(l),_check(l,[79,112,117,115,72,101,97,100])?{ext:"opus",mime:"audio/opus"}:_check(l,[128,116,104,101,111,114,97])?{ext:"ogv",mime:"video/ogg"}:_check(l,[1,118,105,100,101,111,0])?{ext:"ogm",mime:"video/ogg"}:_check(l,[127,70,76,65,67])?{ext:"oga",mime:"audio/ogg"}:_check(l,[83,112,101,101,120,32,32])?{ext:"spx",mime:"audio/ogg"}:_check(l,[1,118,111,114,98,105,115])?{ext:"ogg",mime:"audio/ogg"}:{ext:"ogx",mime:"application/ogg"}}if(r([80,75])&&(3===t[2]||5===t[2]||7===t[2])&&(4===t[3]||6===t[3]||8===t[3]))return{ext:"zip",mime:"application/zip"};if(a("ftyp",{offset:4})&&96&t[8]){const c=t.toString("binary",8,12).replace("\0"," ").trim();switch(c){case"avif":return{ext:"avif",mime:"image/avif"};case"mif1":return{ext:"heic",mime:"image/heif"};case"msf1":return{ext:"heic",mime:"image/heif-sequence"};case"heic":case"heix":return{ext:"heic",mime:"image/heic"};case"hevc":case"hevx":return{ext:"heic",mime:"image/heic-sequence"};case"qt":return{ext:"mov",mime:"video/quicktime"};case"M4V":case"M4VH":case"M4VP":return{ext:"m4v",mime:"video/x-m4v"};case"M4P":return{ext:"m4p",mime:"video/mp4"};case"M4B":return{ext:"m4b",mime:"audio/mp4"};case"M4A":return{ext:"m4a",mime:"audio/x-m4a"};case"F4V":return{ext:"f4v",mime:"video/mp4"};case"F4P":return{ext:"f4p",mime:"video/mp4"};case"F4A":return{ext:"f4a",mime:"audio/mp4"};case"F4B":return{ext:"f4b",mime:"audio/mp4"};case"crx":return{ext:"cr3",mime:"image/x-canon-cr3"};default:return c.startsWith("3g")?c.startsWith("3g2")?{ext:"3g2",mime:"video/3gpp2"}:{ext:"3gp",mime:"video/3gpp"}:{ext:"mp4",mime:"video/mp4"}}}if(a("MThd"))return{ext:"mid",mime:"audio/midi"};if(a("wOFF")&&(r([0,1,0,0],{offset:4})||a("OTTO",{offset:4})))return{ext:"woff",mime:"font/woff"};if(a("wOF2")&&(r([0,1,0,0],{offset:4})||a("OTTO",{offset:4})))return{ext:"woff2",mime:"font/woff2"};if(r([212,195,178,161])||r([161,178,195,212]))return{ext:"pcap",mime:"application/vnd.tcpdump.pcap"};if(a("DSD "))return{ext:"dsf",mime:"audio/x-dsf"};if(a("LZIP"))return{ext:"lz",mime:"application/x-lzip"};if(a("fLaC"))return{ext:"flac",mime:"audio/x-flac"};if(r([66,80,71,251]))return{ext:"bpg",mime:"image/bpg"};if(a("wvpk"))return{ext:"wv",mime:"audio/wavpack"};if(a("%PDF")){await e.ignore(1350);const u=10485760,d=Buffer.alloc(Math.min(u,e.fileInfo.size));return await e.readBuffer(d,{mayBeLess:!0}),d.includes(Buffer.from("AIPrivateData"))?{ext:"ai",mime:"application/postscript"}:{ext:"pdf",mime:"application/pdf"}}if(r([0,97,115,109]))return{ext:"wasm",mime:"application/wasm"};if(r([73,73,42,0]))return a("CR",{offset:8})?{ext:"cr2",mime:"image/x-canon-cr2"}:r([28,0,254,0],{offset:8})||r([31,0,11,0],{offset:8})?{ext:"nef",mime:"image/x-nikon-nef"}:r([8,0,0,0],{offset:4})&&(r([45,0,254,0],{offset:8})||r([39,0,254,0],{offset:8}))?{ext:"dng",mime:"image/x-adobe-dng"}:(t=Buffer.alloc(24),await e.peekBuffer(t),(r([16,251,134,1],{offset:4})||r([8,0,0,0],{offset:4}))&&r([0,254,0,4,0,1,0,0,0,1,0,0,0,3,1],{offset:9})?{ext:"arw",mime:"image/x-sony-arw"}:{ext:"tif",mime:"image/tiff"});if(r([77,77,0,42]))return{ext:"tif",mime:"image/tiff"};if(a("MAC "))return{ext:"ape",mime:"audio/ape"};if(r([26,69,223,163])){async function h(){const t=await e.peekNumber(Token.UINT8);let r=128,a=0;for(;!(t&r)&&0!==r;)++a,r>>=1;const i=Buffer.alloc(a+1);return await e.readBuffer(i),i}async function f(){const e=await h(),t=await h();t[0]^=128>>t.length-1;const r=Math.min(6,t.length);return{id:e.readUIntBE(0,e.length),len:t.readUIntBE(t.length-r,r)}}async function p(t,r){for(;r>0;){const t=await f();if(17026===t.id)return e.readToken(new Token.StringType(t.len,"utf-8"));await e.ignore(t.len),--r}}const m=await f();switch(await p(0,m.len)){case"webm":return{ext:"webm",mime:"video/webm"};case"matroska":return{ext:"mkv",mime:"video/x-matroska"};default:return}}if(r([82,73,70,70])){if(r([65,86,73],{offset:8}))return{ext:"avi",mime:"video/vnd.avi"};if(r([87,65,86,69],{offset:8}))return{ext:"wav",mime:"audio/vnd.wave"};if(r([81,76,67,77],{offset:8}))return{ext:"qcp",mime:"audio/qcelp"}}if(a("SQLi"))return{ext:"sqlite",mime:"application/x-sqlite3"};if(r([78,69,83,26]))return{ext:"nes",mime:"application/x-nintendo-nes-rom"};if(a("Cr24"))return{ext:"crx",mime:"application/x-google-chrome-extension"};if(a("MSCF")||a("ISc("))return{ext:"cab",mime:"application/vnd.ms-cab-compressed"};if(r([237,171,238,219]))return{ext:"rpm",mime:"application/x-rpm"};if(r([197,208,211,198]))return{ext:"eps",mime:"application/eps"};if(r([40,181,47,253]))return{ext:"zst",mime:"application/zstd"};if(r([79,84,84,79,0]))return{ext:"otf",mime:"font/otf"};if(a("#!AMR"))return{ext:"amr",mime:"audio/amr"};if(a("{\\rtf"))return{ext:"rtf",mime:"application/rtf"};if(r([70,76,86,1]))return{ext:"flv",mime:"video/x-flv"};if(a("IMPM"))return{ext:"it",mime:"audio/x-it"};if(a("-lh0-",{offset:2})||a("-lh1-",{offset:2})||a("-lh2-",{offset:2})||a("-lh3-",{offset:2})||a("-lh4-",{offset:2})||a("-lh5-",{offset:2})||a("-lh6-",{offset:2})||a("-lh7-",{offset:2})||a("-lzs-",{offset:2})||a("-lz4-",{offset:2})||a("-lz5-",{offset:2})||a("-lhd-",{offset:2}))return{ext:"lzh",mime:"application/x-lzh-compressed"};if(r([0,0,1,186])){if(r([33],{offset:4,mask:[241]}))return{ext:"mpg",mime:"video/MP1S"};if(r([68],{offset:4,mask:[196]}))return{ext:"mpg",mime:"video/MP2P"}}if(a("ITSF"))return{ext:"chm",mime:"application/vnd.ms-htmlhelp"};if(r([253,55,122,88,90,0]))return{ext:"xz",mime:"application/x-xz"};if(a(""))return await e.ignore(8),"debian-binary"===await e.readToken(new Token.StringType(13,"ascii"))?{ext:"deb",mime:"application/x-deb"}:{ext:"ar",mime:"application/x-unix-archive"};if(r([137,80,78,71,13,10,26,10])){async function g(){return{length:await e.readToken(Token.INT32_BE),type:await e.readToken(new Token.StringType(4,"binary"))}}await e.ignore(8);do{const b=await g();if(b.length<0)return;switch(b.type){case"IDAT":return{ext:"png",mime:"image/png"};case"acTL":return{ext:"apng",mime:"image/apng"};default:await e.ignore(b.length+4)}}while(e.position+8=16){const _=t.readUInt32LE(12);if(_>12&&t.length>=_+16)try{const k=t.slice(16,_+16).toString();if(JSON.parse(k).files)return{ext:"asar",mime:"application/x-asar"}}catch(E){}}if(r([6,14,43,52,2,5,1,1,13,1,2,1,1,2]))return{ext:"mxf",mime:"application/mxf"};if(a("SCRM",{offset:44}))return{ext:"s3m",mime:"audio/x-s3m"};if(r([71],{offset:4})&&(r([71],{offset:192})||r([71],{offset:196})))return{ext:"mts",mime:"video/mp2t"};if(r([66,79,79,75,77,79,66,73],{offset:60}))return{ext:"mobi",mime:"application/x-mobipocket-ebook"};if(r([68,73,67,77],{offset:128}))return{ext:"dcm",mime:"application/dicom"};if(r([76,0,0,0,1,20,2,0,0,0,0,0,192,0,0,0,0,0,0,70]))return{ext:"lnk",mime:"application/x.ms.shortcut"};if(r([98,111,111,107,0,0,0,0,109,97,114,107,0,0,0,0]))return{ext:"alias",mime:"application/x.apple.alias"};if(r([76,80],{offset:34})&&(r([0,0,1],{offset:8})||r([1,0,2],{offset:8})||r([2,0,2],{offset:8})))return{ext:"eot",mime:"application/vnd.ms-fontobject"};if(r([6,6,237,245,216,29,70,229,189,49,239,231,254,116,183,29]))return{ext:"indd",mime:"application/x-indesign"};if(await e.peekBuffer(t,{length:Math.min(512,e.fileInfo.size),mayBeLess:!0}),tarHeaderChecksumMatches(t))return{ext:"tar",mime:"application/x-tar"};if(r([255,254,255,14,83,0,107,0,101,0,116,0,99,0,104,0,85,0,112,0,32,0,77,0,111,0,100,0,101,0,108,0]))return{ext:"skp",mime:"application/vnd.sketchup.skp"};if(a("-----BEGIN PGP MESSAGE-----"))return{ext:"pgp",mime:"application/pgp-encrypted"};if(t.length>=2&&r([255,224],{offset:0,mask:[255,224]})){if(r([16],{offset:1,mask:[22]}))return r([8],{offset:1,mask:[8]}),{ext:"aac",mime:"audio/aac"};if(r([2],{offset:1,mask:[6]}))return{ext:"mp3",mime:"audio/mpeg"};if(r([4],{offset:1,mask:[6]}))return{ext:"mp2",mime:"audio/mpeg"};if(r([6],{offset:1,mask:[6]}))return{ext:"mp1",mime:"audio/mpeg"}}}const stream=readableStream=>new Promise(((resolve,reject)=>{const stream=eval("require")("stream");readableStream.on("error",reject),readableStream.once("readable",(async()=>{const e=new stream.PassThrough;let t;t=stream.pipeline?stream.pipeline(readableStream,e,(()=>{})):readableStream.pipe(e);const r=readableStream.read(minimumBytes)||readableStream.read()||Buffer.alloc(0);try{const t=await fromBuffer(r);e.fileType=t}catch(e){reject(e)}resolve(t)}))})),fileType={fromStream,fromTokenizer,fromBuffer,stream};Object.defineProperty(fileType,"extensions",{get:()=>new Set(supported.extensions)}),Object.defineProperty(fileType,"mimeTypes",{get:()=>new Set(supported.mimeTypes)}),module.exports=fileType},134:e=>{"use strict";e.exports={extensions:["jpg","png","apng","gif","webp","flif","xcf","cr2","cr3","orf","arw","dng","nef","rw2","raf","tif","bmp","icns","jxr","psd","indd","zip","tar","rar","gz","bz2","7z","dmg","mp4","mid","mkv","webm","mov","avi","mpg","mp2","mp3","m4a","oga","ogg","ogv","opus","flac","wav","spx","amr","pdf","epub","exe","swf","rtf","wasm","woff","woff2","eot","ttf","otf","ico","flv","ps","xz","sqlite","nes","crx","xpi","cab","deb","ar","rpm","Z","lz","cfb","mxf","mts","blend","bpg","docx","pptx","xlsx","3gp","3g2","jp2","jpm","jpx","mj2","aif","qcp","odt","ods","odp","xml","mobi","heic","cur","ktx","ape","wv","dcm","ics","glb","pcap","dsf","lnk","alias","voc","ac3","m4v","m4p","m4b","f4v","f4p","f4b","f4a","mie","asf","ogm","ogx","mpc","arrow","shp","aac","mp1","it","s3m","xm","ai","skp","avif","eps","lzh","pgp","asar","stl","chm","3mf","zst","jxl","vcf"],mimeTypes:["image/jpeg","image/png","image/gif","image/webp","image/flif","image/x-xcf","image/x-canon-cr2","image/x-canon-cr3","image/tiff","image/bmp","image/vnd.ms-photo","image/vnd.adobe.photoshop","application/x-indesign","application/epub+zip","application/x-xpinstall","application/vnd.oasis.opendocument.text","application/vnd.oasis.opendocument.spreadsheet","application/vnd.oasis.opendocument.presentation","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.openxmlformats-officedocument.presentationml.presentation","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","application/zip","application/x-tar","application/x-rar-compressed","application/gzip","application/x-bzip2","application/x-7z-compressed","application/x-apple-diskimage","application/x-apache-arrow","video/mp4","audio/midi","video/x-matroska","video/webm","video/quicktime","video/vnd.avi","audio/vnd.wave","audio/qcelp","audio/x-ms-asf","video/x-ms-asf","application/vnd.ms-asf","video/mpeg","video/3gpp","audio/mpeg","audio/mp4","audio/opus","video/ogg","audio/ogg","application/ogg","audio/x-flac","audio/ape","audio/wavpack","audio/amr","application/pdf","application/x-msdownload","application/x-shockwave-flash","application/rtf","application/wasm","font/woff","font/woff2","application/vnd.ms-fontobject","font/ttf","font/otf","image/x-icon","video/x-flv","application/postscript","application/eps","application/x-xz","application/x-sqlite3","application/x-nintendo-nes-rom","application/x-google-chrome-extension","application/vnd.ms-cab-compressed","application/x-deb","application/x-unix-archive","application/x-rpm","application/x-compress","application/x-lzip","application/x-cfb","application/x-mie","application/mxf","video/mp2t","application/x-blender","image/bpg","image/jp2","image/jpx","image/jpm","image/mj2","audio/aiff","application/xml","application/x-mobipocket-ebook","image/heif","image/heif-sequence","image/heic","image/heic-sequence","image/icns","image/ktx","application/dicom","audio/x-musepack","text/calendar","text/vcard","model/gltf-binary","application/vnd.tcpdump.pcap","audio/x-dsf","application/x.ms.shortcut","application/x.apple.alias","audio/x-voc","audio/vnd.dolby.dd-raw","audio/x-m4a","image/apng","image/x-olympus-orf","image/x-sony-arw","image/x-adobe-dng","image/x-nikon-nef","image/x-panasonic-rw2","image/x-fujifilm-raf","video/x-m4v","video/3gpp2","application/x-esri-shape","audio/aac","audio/x-it","audio/x-s3m","audio/x-xm","video/MP1S","video/MP2P","application/vnd.sketchup.skp","image/avif","application/x-lzh-compressed","application/pgp-encrypted","application/x-asar","model/stl","application/vnd.ms-htmlhelp","model/3mf","image/jxl","application/zstd"]}},1110:(e,t)=>{"use strict";t.stringToBytes=e=>[...e].map((e=>e.charCodeAt(0))),t.tarHeaderChecksumMatches=(e,t=0)=>{const r=parseInt(e.toString("utf8",148,154).replace(/\0.*$/,"").trim(),8);if(isNaN(r))return!1;let a=256;for(let r=t;r127&e[t+3]|e[t+2]<<7|e[t+1]<<14|e[t]<<21,len:4}},7727:(e,t,r)=>{"use strict";var a=r(8287).Buffer;Object.defineProperty(t,"__esModule",{value:!0}),t.ParserFactory=t.parseHttpContentType=void 0;const i=r(9549),n=r(8597),s=r(864),o=r(7833),l=r(3340),c=r(4082),u=r(9156),d=r(7648),h=r(1650),f=r(8296),p=r(3960),m=r(1446),g=r(4272),b=r(6879),y=r(9400),v=r(9432),T=r(2986),w=r(2030),_=(0,o.default)("music-metadata:parser:factory");function k(e){const t=n.parse(e),r=s.parse(t.type);return{type:r.type,subtype:r.subtype,suffix:r.suffix,parameters:t.parameters}}t.parseHttpContentType=k;class E{static async parseOnContentType(e,t){const{mimeType:r,path:a,url:i}=await e.fileInfo,n=E.getParserIdForMimeType(r)||E.getParserIdForExtension(a)||E.getParserIdForExtension(i);return n||_("No parser found for MIME-type / extension: "+r),this.parse(e,n,t)}static async parse(e,t,r){if(!t){_("Guess parser on content...");const r=a.alloc(4100);if(await e.peekBuffer(r,{mayBeLess:!0}),e.fileInfo.path&&(t=this.getParserIdForExtension(e.fileInfo.path)),!t){const e=await i.fromBuffer(r);if(!e)throw new Error("Failed to determine audio format");if(_(`Guessed file type is mime=${e.mime}, extension=${e.ext}`),!(t=E.getParserIdForMimeType(e.mime)))throw new Error("Guessed MIME-type not supported: "+e.mime)}}return async function(e,t,r={}){const a=await E.loadParser(t),i=new l.MetadataCollector(r);return await a.init(i,e,r).parse(),i.toCommonMetadata()}(e,t,r)}static getParserIdForExtension(e){if(e)switch(this.getExtension(e).toLocaleLowerCase()||e){case".mp2":case".mp3":case".m2a":case".aac":return"mpeg";case".ape":return"apev2";case".mp4":case".m4a":case".m4b":case".m4pa":case".m4v":case".m4r":case".3gp":return"mp4";case".wma":case".wmv":case".asf":return"asf";case".flac":return"flac";case".ogg":case".ogv":case".oga":case".ogm":case".ogx":case".opus":case".spx":return"ogg";case".aif":case".aiff":case".aifc":return"aiff";case".wav":case".bwf":return"riff";case".wv":case".wvp":return"wavpack";case".mpc":return"musepack";case".dsf":return"dsf";case".dff":return"dsdiff";case".mka":case".mkv":case".mk3d":case".mks":case".webm":return"matroska"}}static async loadParser(e){switch(e){case"aiff":return new c.AIFFParser;case"adts":case"mpeg":return new p.MpegParser;case"apev2":return new u.APEv2Parser;case"asf":return new d.AsfParser;case"dsf":return new v.DsfParser;case"dsdiff":return new T.DsdiffParser;case"flac":return new h.FlacParser;case"mp4":return new f.MP4Parser;case"musepack":return new m.default;case"ogg":return new g.OggParser;case"riff":return new b.WaveParser;case"wavpack":return new y.WavPackParser;case"matroska":return new w.MatroskaParser;default:throw new Error(`Unknown parser type: ${e}`)}}static getExtension(e){const t=e.lastIndexOf(".");return-1===t?"":e.slice(t)}static getParserIdForMimeType(e){let t;try{t=k(e)}catch(t){return void _(`Invalid HTTP Content-Type header value: ${e}`)}const r=0===t.subtype.indexOf("x-")?t.subtype.substring(2):t.subtype;switch(t.type){case"audio":switch(r){case"mp3":case"mpeg":return"mpeg";case"aac":case"aacp":return"adts";case"flac":return"flac";case"ape":case"monkeys-audio":return"apev2";case"mp4":case"m4a":return"mp4";case"ogg":case"opus":case"speex":return"ogg";case"ms-wma":case"ms-wmv":case"ms-asf":return"asf";case"aiff":case"aif":case"aifc":return"aiff";case"vnd.wave":case"wav":case"wave":return"riff";case"wavpack":return"wavpack";case"musepack":return"musepack";case"matroska":case"webm":return"matroska";case"dsf":return"dsf"}break;case"video":switch(r){case"ms-asf":case"ms-wmv":return"asf";case"m4v":case"mp4":return"mp4";case"ogg":return"ogg";case"matroska":case"webm":return"matroska"}break;case"application":switch(r){case"vnd.ms-asf":return"asf";case"ogg":return"ogg"}}}}t.ParserFactory=E},4082:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AIFFParser=void 0;const a=r(1028),i=r(7833),n=r(5534),s=r(8344),o=r(3232),l=r(6373),c=r(4432),u=r(7636),d=(0,i.default)("music-metadata:parser:aiff"),h={NONE:"not compressed\tPCM\tApple Computer",sowt:"PCM (byte swapped)",fl32:"32-bit floating point IEEE 32-bit float",fl64:"64-bit floating point IEEE 64-bit float\tApple Computer",alaw:"ALaw 2:1\t8-bit ITU-T G.711 A-law",ulaw:"µLaw 2:1\t8-bit ITU-T G.711 µ-law\tApple Computer",ULAW:"CCITT G.711 u-law 8-bit ITU-T G.711 µ-law",ALAW:"CCITT G.711 A-law 8-bit ITU-T G.711 A-law",FL32:"Float 32\tIEEE 32-bit float "};class f extends l.BasicParser{async parse(){if("FORM"!==(await this.tokenizer.readToken(u.Header)).chunkID)throw new Error("Invalid Chunk-ID, expected 'FORM'");const e=await this.tokenizer.readToken(o.FourCcToken);switch(e){case"AIFF":this.metadata.setFormat("container",e),this.isCompressed=!1;break;case"AIFC":this.metadata.setFormat("container","AIFF-C"),this.isCompressed=!0;break;default:throw Error("Unsupported AIFF type: "+e)}this.metadata.setFormat("lossless",!this.isCompressed);try{for(;!this.tokenizer.fileInfo.size||this.tokenizer.fileInfo.size-this.tokenizer.position>=u.Header.len;){d("Reading AIFF chunk at offset="+this.tokenizer.position);const e=await this.tokenizer.readToken(u.Header),t=2*Math.round(e.chunkSize/2),r=await this.readData(e);await this.tokenizer.ignore(t-r)}}catch(e){if(!(e instanceof n.EndOfStreamError))throw e;d("End-of-stream")}}async readData(e){var t;switch(e.chunkID){case"COMM":const r=await this.tokenizer.readToken(new c.Common(e,this.isCompressed));return this.metadata.setFormat("bitsPerSample",r.sampleSize),this.metadata.setFormat("sampleRate",r.sampleRate),this.metadata.setFormat("numberOfChannels",r.numChannels),this.metadata.setFormat("numberOfSamples",r.numSampleFrames),this.metadata.setFormat("duration",r.numSampleFrames/r.sampleRate),this.metadata.setFormat("codec",null!==(t=r.compressionName)&&void 0!==t?t:h[r.compressionType]),e.chunkSize;case"ID3 ":const i=await this.tokenizer.readToken(new a.Uint8ArrayType(e.chunkSize)),o=n.fromBuffer(i);return await(new s.ID3v2Parser).parse(this.metadata,o,this.options),e.chunkSize;case"SSND":return this.metadata.format.duration&&this.metadata.setFormat("bitrate",8*e.chunkSize/this.metadata.format.duration),0;case"NAME":case"AUTH":case"(c) ":case"ANNO":return this.readTextChunk(e);default:return d(`Ignore chunk id=${e.chunkID}, size=${e.chunkSize}`),0}}async readTextChunk(e){return(await this.tokenizer.readToken(new a.StringType(e.chunkSize,"ascii"))).split("\0").map((e=>e.trim())).filter((e=>e&&e.length>0)).forEach((t=>{this.metadata.addTag("AIFF",e.chunkID,t.trim())})),e.chunkSize}}t.AIFFParser=f},5047:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AiffTagMapper=void 0;const a=r(8872),i={NAME:"title",AUTH:"artist","(c) ":"copyright",ANNO:"comment"};class n extends a.CommonTagMapper{constructor(){super(["AIFF"],i)}}t.AiffTagMapper=n},4432:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Common=void 0;const a=r(1028),i=r(3232);t.Common=class{constructor(e,t){this.isAifc=t;const r=t?22:18;if(e.chunkSize>Math.abs(r):n<22){const r=e.readInt8(t+22);if(r>0){if(23+r+(r+1)%2!==this.len)throw new Error("Illegal pstring length");s.compressionName=new a.StringType(r,"binary").get(e,t+23)}else s.compressionName=void 0}}else s.compressionName="PCM";return s}}},9156:(e,t,r)=>{"use strict";var a=r(8287).Buffer;Object.defineProperty(t,"__esModule",{value:!0}),t.APEv2Parser=void 0;const i=r(7833),n=r(5534),s=r(1028),o=r(6378),l=r(6373),c=r(4726),u=(0,i.default)("music-metadata:parser:APEv2"),d="APEv2",h="APETAGEX";class f extends l.BasicParser{constructor(){super(...arguments),this.ape={}}static tryParseApeHeader(e,t,r){const a=new f;return a.init(e,t,r),a.tryParseApeHeader()}static calculateDuration(e){let t=e.totalFrames>1?e.blocksPerFrame*(e.totalFrames-1):0;return t+=e.finalFrameBlocks,t/e.sampleRate}static async findApeFooterOffset(e,t){const r=a.alloc(c.TagFooter.len);await e.randomRead(r,0,c.TagFooter.len,t-c.TagFooter.len);const i=c.TagFooter.get(r,0);if("APETAGEX"===i.ID)return u(`APE footer header at offset=${t}`),{footer:i,offset:t-i.size}}static parseTagFooter(e,t,r){const a=c.TagFooter.get(t,t.length-c.TagFooter.len);if(a.ID!==h)throw new Error("Unexpected APEv2 Footer ID preamble value.");n.fromBuffer(t);const i=new f;return i.init(e,n.fromBuffer(t),r),i.parseTags(a)}async tryParseApeHeader(){if(this.tokenizer.fileInfo.size&&this.tokenizer.fileInfo.size-this.tokenizer.position0?this.parseDescriptorExpansion(t):this.parseHeader());return await this.tokenizer.ignore(r.forwardBytes),this.tryParseApeHeader()}async parseTags(e){const t=a.alloc(256);let r=e.size-c.TagFooter.len;u(`Parse APE tags at offset=${this.tokenizer.position}, size=${r}`);for(let i=0;i{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.APEv2TagMapper=void 0;const a=r(4151),i={Title:"title",Artist:"artist",Artists:"artists","Album Artist":"albumartist",Album:"album",Year:"date",Originalyear:"originalyear",Originaldate:"originaldate",Comment:"comment",Track:"track",Disc:"disk",DISCNUMBER:"disk",Genre:"genre","Cover Art (Front)":"picture","Cover Art (Back)":"picture",Composer:"composer",Lyrics:"lyrics",ALBUMSORT:"albumsort",TITLESORT:"titlesort",WORK:"work",ARTISTSORT:"artistsort",ALBUMARTISTSORT:"albumartistsort",COMPOSERSORT:"composersort",Lyricist:"lyricist",Writer:"writer",Conductor:"conductor",MixArtist:"remixer",Arranger:"arranger",Engineer:"engineer",Producer:"producer",DJMixer:"djmixer",Mixer:"mixer",Label:"label",Grouping:"grouping",Subtitle:"subtitle",DiscSubtitle:"discsubtitle",Compilation:"compilation",BPM:"bpm",Mood:"mood",Media:"media",CatalogNumber:"catalognumber",MUSICBRAINZ_ALBUMSTATUS:"releasestatus",MUSICBRAINZ_ALBUMTYPE:"releasetype",RELEASECOUNTRY:"releasecountry",Script:"script",Language:"language",Copyright:"copyright",LICENSE:"license",EncodedBy:"encodedby",EncoderSettings:"encodersettings",Barcode:"barcode",ISRC:"isrc",ASIN:"asin",musicbrainz_trackid:"musicbrainz_recordingid",musicbrainz_releasetrackid:"musicbrainz_trackid",MUSICBRAINZ_ALBUMID:"musicbrainz_albumid",MUSICBRAINZ_ARTISTID:"musicbrainz_artistid",MUSICBRAINZ_ALBUMARTISTID:"musicbrainz_albumartistid",MUSICBRAINZ_RELEASEGROUPID:"musicbrainz_releasegroupid",MUSICBRAINZ_WORKID:"musicbrainz_workid",MUSICBRAINZ_TRMID:"musicbrainz_trmid",MUSICBRAINZ_DISCID:"musicbrainz_discid",Acoustid_Id:"acoustid_id",ACOUSTID_FINGERPRINT:"acoustid_fingerprint",MUSICIP_PUID:"musicip_puid",Weblink:"website",REPLAYGAIN_TRACK_GAIN:"replaygain_track_gain",REPLAYGAIN_TRACK_PEAK:"replaygain_track_peak",MP3GAIN_MINMAX:"replaygain_track_minmax",MP3GAIN_UNDO:"replaygain_undo"};class n extends a.CaseInsensitiveTagMap{constructor(){super(["APEv2"],i)}}t.APEv2TagMapper=n},4726:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isBitSet=t.parseTagFlags=t.TagField=t.TagItemHeader=t.TagFooter=t.Header=t.DescriptorParser=t.DataType=void 0;const a=r(1028),i=r(3232);var n;function s(e){return{containsHeader:o(e,31),containsFooter:o(e,30),isHeader:o(e,31),readOnly:o(e,0),dataType:(6&e)>>1}}function o(e,t){return!!(e&1<({ID:i.FourCcToken.get(e,t),version:a.UINT32_LE.get(e,t+4)/1e3,descriptorBytes:a.UINT32_LE.get(e,t+8),headerBytes:a.UINT32_LE.get(e,t+12),seekTableBytes:a.UINT32_LE.get(e,t+16),headerDataBytes:a.UINT32_LE.get(e,t+20),apeFrameDataBytes:a.UINT32_LE.get(e,t+24),apeFrameDataBytesHigh:a.UINT32_LE.get(e,t+28),terminatingDataBytes:a.UINT32_LE.get(e,t+32),fileMD5:new a.Uint8ArrayType(16).get(e,t+36)})},t.Header={len:24,get:(e,t)=>({compressionLevel:a.UINT16_LE.get(e,t),formatFlags:a.UINT16_LE.get(e,t+2),blocksPerFrame:a.UINT32_LE.get(e,t+4),finalFrameBlocks:a.UINT32_LE.get(e,t+8),totalFrames:a.UINT32_LE.get(e,t+12),bitsPerSample:a.UINT16_LE.get(e,t+16),channel:a.UINT16_LE.get(e,t+18),sampleRate:a.UINT32_LE.get(e,t+20)})},t.TagFooter={len:32,get:(e,t)=>({ID:new a.StringType(8,"ascii").get(e,t),version:a.UINT32_LE.get(e,t+8),size:a.UINT32_LE.get(e,t+12),fields:a.UINT32_LE.get(e,t+16),flags:s(a.UINT32_LE.get(e,t+20))})},t.TagItemHeader={len:8,get:(e,t)=>({size:a.UINT32_LE.get(e,t),flags:s(a.UINT32_LE.get(e,t+4))})},t.TagField=e=>new a.Uint8ArrayType(e.size-t.TagFooter.len),t.parseTagFlags=s,t.isBitSet=o},4256:(e,t,r)=>{"use strict";var a=r(8287).Buffer;Object.defineProperty(t,"__esModule",{value:!0}),t.WmPictureToken=t.MetadataLibraryObjectState=t.MetadataObjectState=t.ExtendedStreamPropertiesObjectState=t.ExtendedContentDescriptionObjectState=t.ContentDescriptionObjectState=t.readCodecEntries=t.HeaderExtensionObject=t.StreamPropertiesObject=t.FilePropertiesObject=t.IgnoreObjectState=t.State=t.HeaderObjectToken=t.TopLevelHeaderObjectToken=t.DataType=void 0;const i=r(6378),n=r(1028),s=r(2268),o=r(3407),l=r(2298);var c;(c=t.DataType||(t.DataType={}))[c.UnicodeString=0]="UnicodeString",c[c.ByteArray=1]="ByteArray",c[c.Bool=2]="Bool",c[c.DWord=3]="DWord",c[c.QWord=4]="QWord",c[c.Word=5]="Word",t.TopLevelHeaderObjectToken={len:30,get:(e,t)=>({objectId:s.default.fromBin(new n.BufferType(16).get(e,t)),objectSize:Number(n.UINT64_LE.get(e,t+16)),numberOfHeaderObjects:n.UINT32_LE.get(e,t+24)})},t.HeaderObjectToken={len:24,get:(e,t)=>({objectId:s.default.fromBin(new n.BufferType(16).get(e,t)),objectSize:Number(n.UINT64_LE.get(e,t+16))})};class u{constructor(e){this.len=Number(e.objectSize)-t.HeaderObjectToken.len}postProcessTag(e,t,r,a){if("WM/Picture"===t)e.push({id:t,value:k.fromBuffer(a)});else{const i=o.AsfUtil.getParserForAttr(r);if(!i)throw new Error("unexpected value headerType: "+r);e.push({id:t,value:i(a)})}}}t.State=u,t.IgnoreObjectState=class extends u{constructor(e){super(e)}get(e,t){return null}};class d extends u{constructor(e){super(e)}get(e,t){return{fileId:s.default.fromBin(e,t),fileSize:n.UINT64_LE.get(e,t+16),creationDate:n.UINT64_LE.get(e,t+24),dataPacketsCount:n.UINT64_LE.get(e,t+32),playDuration:n.UINT64_LE.get(e,t+40),sendDuration:n.UINT64_LE.get(e,t+48),preroll:n.UINT64_LE.get(e,t+56),flags:{broadcast:i.getBit(e,t+64,24),seekable:i.getBit(e,t+64,25)},minimumDataPacketSize:n.UINT32_LE.get(e,t+68),maximumDataPacketSize:n.UINT32_LE.get(e,t+72),maximumBitrate:n.UINT32_LE.get(e,t+76)}}}d.guid=s.default.FilePropertiesObject,t.FilePropertiesObject=d;class h extends u{constructor(e){super(e)}get(e,t){return{streamType:s.default.decodeMediaType(s.default.fromBin(e,t)),errorCorrectionType:s.default.fromBin(e,t+8)}}}h.guid=s.default.StreamPropertiesObject,t.StreamPropertiesObject=h;class f{constructor(){this.len=22}get(e,t){return{reserved1:s.default.fromBin(e,t),reserved2:e.readUInt16LE(t+16),extensionDataSize:e.readUInt32LE(t+18)}}}f.guid=s.default.HeaderExtensionObject,t.HeaderExtensionObject=f;const p={len:20,get:(e,t)=>({entryCount:e.readUInt16LE(t+16)})};async function m(e){const t=await e.readNumber(n.UINT16_LE);return(await e.readToken(new n.StringType(2*t,"utf16le"))).replace("\0","")}async function g(e){const t=await e.readNumber(n.UINT16_LE),r=a.alloc(t);return await e.readBuffer(r),r}async function b(e){const t=await e.readNumber(n.UINT16_LE);return{type:{videoCodec:!(1&~t),audioCodec:!(2&~t)},codecName:await m(e),description:await m(e),information:await g(e)}}t.readCodecEntries=async function(e){const t=await e.readToken(p),r=[];for(let a=0;a0){const t=y.contentDescTags[i],s=a+n;r.push({id:t,value:o.AsfUtil.parseUnicodeAttr(e.slice(a,s))}),a=s}}return r}}y.guid=s.default.ContentDescriptionObject,y.contentDescTags=["Title","Author","Copyright","Description","Rating"],t.ContentDescriptionObjectState=y;class v extends u{constructor(e){super(e)}get(e,t){const r=[],a=e.readUInt16LE(t);let i=t+2;for(let t=0;t{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AsfParser=void 0;const a=r(7833),i=r(7338),n=r(2268),s=r(4256),o=r(6373),l=(0,a.default)("music-metadata:parser:ASF");class c extends o.BasicParser{async parse(){const e=await this.tokenizer.readToken(s.TopLevelHeaderObjectToken);if(!e.objectId.equals(n.default.HeaderObject))throw new Error("expected asf header; but was not found; got: "+e.objectId.str);try{await this.parseObjectHeader(e.numberOfHeaderObjects)}catch(e){l("Error while parsing ASF: %s",e)}}async parseObjectHeader(e){let t;do{const e=await this.tokenizer.readToken(s.HeaderObjectToken);switch(l("header GUID=%s",e.objectId.str),e.objectId.str){case s.FilePropertiesObject.guid.str:const r=await this.tokenizer.readToken(new s.FilePropertiesObject(e));this.metadata.setFormat("duration",Number(r.playDuration/BigInt(1e3))/1e4-Number(r.preroll)/1e3),this.metadata.setFormat("bitrate",r.maximumBitrate);break;case s.StreamPropertiesObject.guid.str:const a=await this.tokenizer.readToken(new s.StreamPropertiesObject(e));this.metadata.setFormat("container","ASF/"+a.streamType);break;case s.HeaderExtensionObject.guid.str:const o=await this.tokenizer.readToken(new s.HeaderExtensionObject);await this.parseExtensionObject(o.extensionDataSize);break;case s.ContentDescriptionObjectState.guid.str:t=await this.tokenizer.readToken(new s.ContentDescriptionObjectState(e)),this.addTags(t);break;case s.ExtendedContentDescriptionObjectState.guid.str:t=await this.tokenizer.readToken(new s.ExtendedContentDescriptionObjectState(e)),this.addTags(t);break;case n.default.CodecListObject.str:const c=await s.readCodecEntries(this.tokenizer);c.forEach((e=>{this.metadata.addStreamInfo({type:e.type.videoCodec?i.TrackType.video:i.TrackType.audio,codecName:e.codecName})}));const u=c.filter((e=>e.type.audioCodec)).map((e=>e.codecName)).join("/");this.metadata.setFormat("codec",u);break;case n.default.StreamBitratePropertiesObject.str:await this.tokenizer.ignore(e.objectSize-s.HeaderObjectToken.len);break;case n.default.PaddingObject.str:l("Padding: %s bytes",e.objectSize-s.HeaderObjectToken.len),await this.tokenizer.ignore(e.objectSize-s.HeaderObjectToken.len);break;default:this.metadata.addWarning("Ignore ASF-Object-GUID: "+e.objectId.str),l("Ignore ASF-Object-GUID: %s",e.objectId.str),await this.tokenizer.readToken(new s.IgnoreObjectState(e))}}while(--e)}addTags(e){e.forEach((e=>{this.metadata.addTag("asf",e.id,e.value)}))}async parseExtensionObject(e){do{const t=await this.tokenizer.readToken(s.HeaderObjectToken),r=t.objectSize-s.HeaderObjectToken.len;switch(t.objectId.str){case s.ExtendedStreamPropertiesObjectState.guid.str:await this.tokenizer.readToken(new s.ExtendedStreamPropertiesObjectState(t));break;case s.MetadataObjectState.guid.str:const e=await this.tokenizer.readToken(new s.MetadataObjectState(t));this.addTags(e);break;case s.MetadataLibraryObjectState.guid.str:const a=await this.tokenizer.readToken(new s.MetadataLibraryObjectState(t));this.addTags(a);break;case n.default.PaddingObject.str:await this.tokenizer.ignore(r);break;case n.default.CompatibilityObject.str:this.tokenizer.ignore(r);break;case n.default.ASF_Index_Placeholder_Object.str:await this.tokenizer.ignore(r);break;default:this.metadata.addWarning("Ignore ASF-Object-GUID: "+t.objectId.str),await this.tokenizer.readToken(new s.IgnoreObjectState(t))}e-=t.objectSize}while(e>0)}}t.AsfParser=c},8626:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AsfTagMapper=void 0;const a=r(8872),i={Title:"title",Author:"artist","WM/AlbumArtist":"albumartist","WM/AlbumTitle":"album","WM/Year":"date","WM/OriginalReleaseTime":"originaldate","WM/OriginalReleaseYear":"originalyear",Description:"comment","WM/TrackNumber":"track","WM/PartOfSet":"disk","WM/Genre":"genre","WM/Composer":"composer","WM/Lyrics":"lyrics","WM/AlbumSortOrder":"albumsort","WM/TitleSortOrder":"titlesort","WM/ArtistSortOrder":"artistsort","WM/AlbumArtistSortOrder":"albumartistsort","WM/ComposerSortOrder":"composersort","WM/Writer":"lyricist","WM/Conductor":"conductor","WM/ModifiedBy":"remixer","WM/Engineer":"engineer","WM/Producer":"producer","WM/DJMixer":"djmixer","WM/Mixer":"mixer","WM/Publisher":"label","WM/ContentGroupDescription":"grouping","WM/SubTitle":"subtitle","WM/SetSubTitle":"discsubtitle","WM/IsCompilation":"compilation","WM/SharedUserRating":"rating","WM/BeatsPerMinute":"bpm","WM/Mood":"mood","WM/Media":"media","WM/CatalogNo":"catalognumber","MusicBrainz/Album Status":"releasestatus","MusicBrainz/Album Type":"releasetype","MusicBrainz/Album Release Country":"releasecountry","WM/Script":"script","WM/Language":"language",Copyright:"copyright",LICENSE:"license","WM/EncodedBy":"encodedby","WM/EncodingSettings":"encodersettings","WM/Barcode":"barcode","WM/ISRC":"isrc","MusicBrainz/Track Id":"musicbrainz_recordingid","MusicBrainz/Release Track Id":"musicbrainz_trackid","MusicBrainz/Album Id":"musicbrainz_albumid","MusicBrainz/Artist Id":"musicbrainz_artistid","MusicBrainz/Album Artist Id":"musicbrainz_albumartistid","MusicBrainz/Release Group Id":"musicbrainz_releasegroupid","MusicBrainz/Work Id":"musicbrainz_workid","MusicBrainz/TRM Id":"musicbrainz_trmid","MusicBrainz/Disc Id":"musicbrainz_discid","Acoustid/Id":"acoustid_id","Acoustid/Fingerprint":"acoustid_fingerprint","MusicIP/PUID":"musicip_puid","WM/ARTISTS":"artists","WM/InitialKey":"key",ASIN:"asin","WM/Work":"work","WM/AuthorURL":"website","WM/Picture":"picture"};class n extends a.CommonTagMapper{static toRating(e){return{rating:parseFloat(e+1)/5}}constructor(){super(["asf"],i)}postMap(e){if("WM/SharedUserRating"===e.id){const t=e.id.split(":");e.value=n.toRating(e.value),e.id=t[0]}}}t.AsfTagMapper=n},3407:(e,t,r)=>{"use strict";var a=r(8287).Buffer;Object.defineProperty(t,"__esModule",{value:!0}),t.AsfUtil=void 0;const i=r(1028),n=r(6378);class s{static getParserForAttr(e){return s.attributeParsers[e]}static parseUnicodeAttr(e){return n.stripNulls(n.decodeString(e,"utf16le"))}static parseByteArrayAttr(e){return a.from(e)}static parseBoolAttr(e,t=0){return 1===s.parseWordAttr(e,t)}static parseDWordAttr(e,t=0){return e.readUInt32LE(t)}static parseQWordAttr(e,t=0){return i.UINT64_LE.get(e,t)}static parseWordAttr(e,t=0){return e.readUInt16LE(t)}}s.attributeParsers=[s.parseUnicodeAttr,s.parseByteArrayAttr,s.parseBoolAttr,s.parseDWordAttr,s.parseQWordAttr,s.parseWordAttr,s.parseByteArrayAttr],t.AsfUtil=s},2268:(e,t,r)=>{"use strict";var a=r(8287).Buffer;Object.defineProperty(t,"__esModule",{value:!0});class i{static fromBin(e,t=0){return new i(this.decode(e,t))}static decode(e,t=0){return(e.readUInt32LE(t).toString(16)+"-"+e.readUInt16LE(t+4).toString(16)+"-"+e.readUInt16LE(t+6).toString(16)+"-"+e.readUInt16BE(t+8).toString(16)+"-"+e.slice(t+10,t+16).toString("hex")).toUpperCase()}static decodeMediaType(e){switch(e.str){case i.AudioMedia.str:return"audio";case i.VideoMedia.str:return"video";case i.CommandMedia.str:return"command";case i.Degradable_JPEG_Media.str:return"degradable-jpeg";case i.FileTransferMedia.str:return"file-transfer";case i.BinaryMedia.str:return"binary"}}static encode(e){const t=a.alloc(16);return t.writeUInt32LE(parseInt(e.slice(0,8),16),0),t.writeUInt16LE(parseInt(e.slice(9,13),16),4),t.writeUInt16LE(parseInt(e.slice(14,18),16),6),a.from(e.slice(19,23),"hex").copy(t,8),a.from(e.slice(24),"hex").copy(t,10),t}constructor(e){this.str=e}equals(e){return this.str===e.str}toBin(){return i.encode(this.str)}}i.HeaderObject=new i("75B22630-668E-11CF-A6D9-00AA0062CE6C"),i.DataObject=new i("75B22636-668E-11CF-A6D9-00AA0062CE6C"),i.SimpleIndexObject=new i("33000890-E5B1-11CF-89F4-00A0C90349CB"),i.IndexObject=new i("D6E229D3-35DA-11D1-9034-00A0C90349BE"),i.MediaObjectIndexObject=new i("FEB103F8-12AD-4C64-840F-2A1D2F7AD48C"),i.TimecodeIndexObject=new i("3CB73FD0-0C4A-4803-953D-EDF7B6228F0C"),i.FilePropertiesObject=new i("8CABDCA1-A947-11CF-8EE4-00C00C205365"),i.StreamPropertiesObject=new i("B7DC0791-A9B7-11CF-8EE6-00C00C205365"),i.HeaderExtensionObject=new i("5FBF03B5-A92E-11CF-8EE3-00C00C205365"),i.CodecListObject=new i("86D15240-311D-11D0-A3A4-00A0C90348F6"),i.ScriptCommandObject=new i("1EFB1A30-0B62-11D0-A39B-00A0C90348F6"),i.MarkerObject=new i("F487CD01-A951-11CF-8EE6-00C00C205365"),i.BitrateMutualExclusionObject=new i("D6E229DC-35DA-11D1-9034-00A0C90349BE"),i.ErrorCorrectionObject=new i("75B22635-668E-11CF-A6D9-00AA0062CE6C"),i.ContentDescriptionObject=new i("75B22633-668E-11CF-A6D9-00AA0062CE6C"),i.ExtendedContentDescriptionObject=new i("D2D0A440-E307-11D2-97F0-00A0C95EA850"),i.ContentBrandingObject=new i("2211B3FA-BD23-11D2-B4B7-00A0C955FC6E"),i.StreamBitratePropertiesObject=new i("7BF875CE-468D-11D1-8D82-006097C9A2B2"),i.ContentEncryptionObject=new i("2211B3FB-BD23-11D2-B4B7-00A0C955FC6E"),i.ExtendedContentEncryptionObject=new i("298AE614-2622-4C17-B935-DAE07EE9289C"),i.DigitalSignatureObject=new i("2211B3FC-BD23-11D2-B4B7-00A0C955FC6E"),i.PaddingObject=new i("1806D474-CADF-4509-A4BA-9AABCB96AAE8"),i.ExtendedStreamPropertiesObject=new i("14E6A5CB-C672-4332-8399-A96952065B5A"),i.AdvancedMutualExclusionObject=new i("A08649CF-4775-4670-8A16-6E35357566CD"),i.GroupMutualExclusionObject=new i("D1465A40-5A79-4338-B71B-E36B8FD6C249"),i.StreamPrioritizationObject=new i("D4FED15B-88D3-454F-81F0-ED5C45999E24"),i.BandwidthSharingObject=new i("A69609E6-517B-11D2-B6AF-00C04FD908E9"),i.LanguageListObject=new i("7C4346A9-EFE0-4BFC-B229-393EDE415C85"),i.MetadataObject=new i("C5F8CBEA-5BAF-4877-8467-AA8C44FA4CCA"),i.MetadataLibraryObject=new i("44231C94-9498-49D1-A141-1D134E457054"),i.IndexParametersObject=new i("D6E229DF-35DA-11D1-9034-00A0C90349BE"),i.MediaObjectIndexParametersObject=new i("6B203BAD-3F11-48E4-ACA8-D7613DE2CFA7"),i.TimecodeIndexParametersObject=new i("F55E496D-9797-4B5D-8C8B-604DFE9BFB24"),i.CompatibilityObject=new i("26F18B5D-4584-47EC-9F5F-0E651F0452C9"),i.AdvancedContentEncryptionObject=new i("43058533-6981-49E6-9B74-AD12CB86D58C"),i.AudioMedia=new i("F8699E40-5B4D-11CF-A8FD-00805F5C442B"),i.VideoMedia=new i("BC19EFC0-5B4D-11CF-A8FD-00805F5C442B"),i.CommandMedia=new i("59DACFC0-59E6-11D0-A3AC-00A0C90348F6"),i.JFIF_Media=new i("B61BE100-5B4E-11CF-A8FD-00805F5C442B"),i.Degradable_JPEG_Media=new i("35907DE0-E415-11CF-A917-00805F5C442B"),i.FileTransferMedia=new i("91BD222C-F21C-497A-8B6D-5AA86BFC0185"),i.BinaryMedia=new i("3AFB65E2-47EF-40F2-AC2C-70A90D71D343"),i.ASF_Index_Placeholder_Object=new i("D9AADE20-7C17-4F9C-BC28-8555DD98E2A2"),t.default=i},6373:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BasicParser=void 0,t.BasicParser=class{init(e,t,r){return this.metadata=e,this.tokenizer=t,this.options=r,this}}},4151:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CaseInsensitiveTagMap=void 0;const a=r(8872);class i extends a.CommonTagMapper{constructor(e,t){const r={};for(const e of Object.keys(t))r[e.toUpperCase()]=t[e];super(e,r)}getCommonName(e){return this.tagMap[e.toUpperCase()]}}t.CaseInsensitiveTagMap=i},4824:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CombinedTagMapper=void 0;const a=r(7925),i=r(3814),n=r(8626),s=r(6664),o=r(1158),l=r(7802),c=r(7806),u=r(609),d=r(5896),h=r(5047);t.CombinedTagMapper=class{constructor(){this.tagMappers={},[new a.ID3v1TagMapper,new s.ID3v22TagMapper,new i.ID3v24TagMapper,new l.MP4TagMapper,new l.MP4TagMapper,new c.VorbisTagMapper,new o.APEv2TagMapper,new n.AsfTagMapper,new u.RiffInfoTagMapper,new d.MatroskaTagMapper,new h.AiffTagMapper].forEach((e=>{this.registerTagMapper(e)}))}mapTag(e,t,r){if(this.tagMappers[e])return this.tagMappers[e].mapGenericTag(t,r);throw new Error("No generic tag mapper defined for tag-format: "+e)}registerTagMapper(e){for(const t of e.tagTypes)this.tagMappers[t]=e}}},3232:(e,t,r)=>{"use strict";var a=r(8287).Buffer;Object.defineProperty(t,"__esModule",{value:!0}),t.FourCcToken=void 0;const i=r(6378),n=/^[\x21-\x7e©][\x20-\x7e\x00()]{3}/;t.FourCcToken={len:4,get:(e,r)=>{const a=e.toString("binary",r,r+t.FourCcToken.len);if(!a.match(n))throw new Error(`FourCC contains invalid characters: ${i.a2hex(a)} "${a}"`);return a},put:(e,t,r)=>{const i=a.from(r,"binary");if(4!==i.length)throw new Error("Invalid length");return i.copy(e,t)}}},8872:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CommonTagMapper=void 0;class r{static toIntOrNull(e){const t=parseInt(e,10);return isNaN(t)?null:t}static normalizeTrack(e){const t=e.toString().split("/");return{no:parseInt(t[0],10)||null,of:parseInt(t[1],10)||null}}constructor(e,t){this.tagTypes=e,this.tagMap=t}mapGenericTag(e,t){e={id:e.id,value:e.value},this.postMap(e,t);const r=this.getCommonName(e.id);return r?{id:r,value:e.value}:null}getCommonName(e){return this.tagMap[e]}postMap(e,t){}}r.maxRatingScore=1,t.CommonTagMapper=r},9056:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isUnique=t.isSingleton=t.commonTags=void 0,t.commonTags={year:{multiple:!1},track:{multiple:!1},disk:{multiple:!1},title:{multiple:!1},artist:{multiple:!1},artists:{multiple:!0,unique:!0},albumartist:{multiple:!1},album:{multiple:!1},date:{multiple:!1},originaldate:{multiple:!1},originalyear:{multiple:!1},comment:{multiple:!0,unique:!1},genre:{multiple:!0,unique:!0},picture:{multiple:!0,unique:!0},composer:{multiple:!0,unique:!0},lyrics:{multiple:!0,unique:!1},albumsort:{multiple:!1,unique:!0},titlesort:{multiple:!1,unique:!0},work:{multiple:!1,unique:!0},artistsort:{multiple:!1,unique:!0},albumartistsort:{multiple:!1,unique:!0},composersort:{multiple:!1,unique:!0},lyricist:{multiple:!0,unique:!0},writer:{multiple:!0,unique:!0},conductor:{multiple:!0,unique:!0},remixer:{multiple:!0,unique:!0},arranger:{multiple:!0,unique:!0},engineer:{multiple:!0,unique:!0},producer:{multiple:!0,unique:!0},technician:{multiple:!0,unique:!0},djmixer:{multiple:!0,unique:!0},mixer:{multiple:!0,unique:!0},label:{multiple:!0,unique:!0},grouping:{multiple:!1},subtitle:{multiple:!0},discsubtitle:{multiple:!1},totaltracks:{multiple:!1},totaldiscs:{multiple:!1},compilation:{multiple:!1},rating:{multiple:!0},bpm:{multiple:!1},mood:{multiple:!1},media:{multiple:!1},catalognumber:{multiple:!0,unique:!0},tvShow:{multiple:!1},tvShowSort:{multiple:!1},tvSeason:{multiple:!1},tvEpisode:{multiple:!1},tvEpisodeId:{multiple:!1},tvNetwork:{multiple:!1},podcast:{multiple:!1},podcasturl:{multiple:!1},releasestatus:{multiple:!1},releasetype:{multiple:!0},releasecountry:{multiple:!1},script:{multiple:!1},language:{multiple:!1},copyright:{multiple:!1},license:{multiple:!1},encodedby:{multiple:!1},encodersettings:{multiple:!1},gapless:{multiple:!1},barcode:{multiple:!1},isrc:{multiple:!0},asin:{multiple:!1},musicbrainz_recordingid:{multiple:!1},musicbrainz_trackid:{multiple:!1},musicbrainz_albumid:{multiple:!1},musicbrainz_artistid:{multiple:!0},musicbrainz_albumartistid:{multiple:!0},musicbrainz_releasegroupid:{multiple:!1},musicbrainz_workid:{multiple:!1},musicbrainz_trmid:{multiple:!1},musicbrainz_discid:{multiple:!1},acoustid_id:{multiple:!1},acoustid_fingerprint:{multiple:!1},musicip_puid:{multiple:!1},musicip_fingerprint:{multiple:!1},website:{multiple:!1},"performer:instrument":{multiple:!0,unique:!0},averageLevel:{multiple:!1},peakLevel:{multiple:!1},notes:{multiple:!0,unique:!1},key:{multiple:!1},originalalbum:{multiple:!1},originalartist:{multiple:!1},discogs_artist_id:{multiple:!0,unique:!0},discogs_release_id:{multiple:!1},discogs_label_id:{multiple:!1},discogs_master_release_id:{multiple:!1},discogs_votes:{multiple:!1},discogs_rating:{multiple:!1},replaygain_track_peak:{multiple:!1},replaygain_track_gain:{multiple:!1},replaygain_album_peak:{multiple:!1},replaygain_album_gain:{multiple:!1},replaygain_track_minmax:{multiple:!1},replaygain_album_minmax:{multiple:!1},replaygain_undo:{multiple:!1},description:{multiple:!0},longDescription:{multiple:!1},category:{multiple:!0},hdVideo:{multiple:!1},keywords:{multiple:!0},movement:{multiple:!1},movementIndex:{multiple:!1},movementTotal:{multiple:!1},podcastId:{multiple:!1},showMovement:{multiple:!1},stik:{multiple:!1}},t.isSingleton=function(e){return t.commonTags.hasOwnProperty(e)&&!t.commonTags[e].multiple},t.isUnique=function(e){return!t.commonTags[e].multiple||t.commonTags[e].unique}},3340:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.joinArtists=t.MetadataCollector=void 0;const a=r(7338),i=r(7833),n=r(9056),s=r(4824),o=r(8872),l=r(6378),c=r(9549),u=(0,i.default)("music-metadata:collector"),d=["matroska","APEv2","vorbis","ID3v2.4","ID3v2.3","ID3v2.2","exif","asf","iTunes","AIFF","ID3v1"];function h(e){return e.length>2?e.slice(0,e.length-1).join(", ")+" & "+e[e.length-1]:e.join(" & ")}t.MetadataCollector=class{constructor(e){this.opts=e,this.format={tagTypes:[],trackInfo:[]},this.native={},this.common={track:{no:null,of:null},disk:{no:null,of:null},movementIndex:{}},this.quality={warnings:[]},this.commonOrigin={},this.originPriority={},this.tagMapper=new s.CombinedTagMapper;let t=1;for(const e of d)this.originPriority[e]=t++;this.originPriority.artificial=500,this.originPriority.id3v1=600}hasAny(){return Object.keys(this.native).length>0}addStreamInfo(e){u(`streamInfo: type=${a.TrackType[e.type]}, codec=${e.codecName}`),this.format.trackInfo.push(e)}setFormat(e,t){u(`format: ${e} = ${t}`),this.format[e]=t,this.opts.observer&&this.opts.observer({metadata:this,tag:{type:"format",id:e,value:t}})}addTag(e,t,r){u(`tag ${e}.${t} = ${r}`),this.native[e]||(this.format.tagTypes.push(e),this.native[e]=[]),this.native[e].push({id:t,value:r}),this.toCommon(e,t,r)}addWarning(e){this.quality.warnings.push({message:e})}postMap(e,t){switch(t.id){case"artist":if(this.commonOrigin.artist===this.originPriority[e])return this.postMap("artificial",{id:"artists",value:t.value});this.common.artists||this.setGenericTag("artificial",{id:"artists",value:t.value});break;case"artists":if(!(this.common.artist&&this.commonOrigin.artist!==this.originPriority.artificial||this.common.artists&&-1!==this.common.artists.indexOf(t.value))){const e={id:"artist",value:h((this.common.artists||[]).concat([t.value]))};this.setGenericTag("artificial",e)}break;case"picture":return void this.postFixPicture(t.value).then((r=>{null!==r&&(t.value=r,this.setGenericTag(e,t))}));case"totaltracks":return void(this.common.track.of=o.CommonTagMapper.toIntOrNull(t.value));case"totaldiscs":return void(this.common.disk.of=o.CommonTagMapper.toIntOrNull(t.value));case"movementTotal":return void(this.common.movementIndex.of=o.CommonTagMapper.toIntOrNull(t.value));case"track":case"disk":case"movementIndex":const r=this.common[t.id].of;return this.common[t.id]=o.CommonTagMapper.normalizeTrack(t.value),void(this.common[t.id].of=null!=r?r:this.common[t.id].of);case"bpm":case"year":case"originalyear":t.value=parseInt(t.value,10);break;case"date":const a=parseInt(t.value.substr(0,4),10);isNaN(a)||(this.common.year=a);break;case"discogs_label_id":case"discogs_release_id":case"discogs_master_release_id":case"discogs_artist_id":case"discogs_votes":t.value="string"==typeof t.value?parseInt(t.value,10):t.value;break;case"replaygain_track_gain":case"replaygain_track_peak":case"replaygain_album_gain":case"replaygain_album_peak":t.value=(0,l.toRatio)(t.value);break;case"replaygain_track_minmax":t.value=t.value.split(",").map((e=>parseInt(e,10)));break;case"replaygain_undo":const i=t.value.split(",").map((e=>parseInt(e,10)));t.value={leftChannel:i[0],rightChannel:i[1]};break;case"gapless":case"compilation":case"podcast":case"showMovement":t.value="1"===t.value||1===t.value;break;case"isrc":if(this.common[t.id]&&-1!==this.common[t.id].indexOf(t.value))return}null!==t.value&&this.setGenericTag(e,t)}toCommonMetadata(){return{format:this.format,native:this.native,quality:this.quality,common:this.common}}async postFixPicture(e){if(e.data&&e.data.length>0){if(!e.format){const t=await c.fromBuffer(e.data);if(!t)return null;e.format=t.mime}return e.format=e.format.toLocaleLowerCase(),"image/jpg"===e.format&&(e.format="image/jpeg"),e}return this.addWarning("Empty picture tag found"),null}toCommon(e,t,r){const a={id:t,value:r},i=this.tagMapper.mapTag(e,a,this);i&&this.postMap(e,i)}setGenericTag(e,t){u(`common.${t.id} = ${t.value}`);const r=this.commonOrigin[t.id]||1e3,a=this.originPriority[e];if((0,n.isSingleton)(t.id)){if(!(a<=r))return u(`Ignore native tag (singleton): ${e}.${t.id} = ${t.value}`);this.common[t.id]=t.value,this.commonOrigin[t.id]=a}else if(a===r)(0,n.isUnique)(t.id)&&-1!==this.common[t.id].indexOf(t.value)?u(`Ignore duplicate value: ${e}.${t.id} = ${t.value}`):this.common[t.id].push(t.value);else{if(!(a{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RandomUint8ArrayReader=void 0,t.RandomUint8ArrayReader=class{constructor(e){this.uint8Array=e,this.fileSize=e.length}async randomRead(e,t,r,a){return e.set(this.uint8Array.subarray(a,a+r),t),r}}},6378:(e,t,r)=>{"use strict";var a=r(8287).Buffer;function i(e,t,r,a){const n=r%8;let s=e[t+~~(r/8)];s&=255>>n;const o=8-n,l=a-o;return l<0?s>>=8-n-a:l>0&&(s<<=l,s|=i(e,t,r+o,l)),s}function n(e){return 10*Math.log10(e)}function s(e){return Math.pow(10,e/10)}Object.defineProperty(t,"__esModule",{value:!0}),t.toRatio=t.dbToRatio=t.ratioToDb=t.a2hex=t.isBitSet=t.getBitAllignedNumber=t.stripNulls=t.decodeString=t.trimRightNull=t.findZero=t.getBit=void 0,t.getBit=function(e,t,r){return!!(e[t]&1<=r)return r;i+=2}return i}for(;0!==e[i];){if(i>=r)return r;i++}return i},t.trimRightNull=function(e){const t=e.indexOf("\0");return-1===t?e:e.substr(0,t)},t.decodeString=function e(t,r){if(255===t[0]&&254===t[1])return e(t.subarray(2),r);if("utf16le"===r&&254===t[0]&&255===t[1]){if(1&t.length)throw new Error("Expected even number of octets for 16-bit unicode string");return e(function(e){const t=e.length;if(1&t)throw new Error("Buffer length must be even");for(let r=0;re.trim().toLowerCase()));if(t.length>=1){const e=parseFloat(t[0]);return 2===t.length&&"db"===t[1]?{dB:e,ratio:s(e)}:{dB:n(e),ratio:e}}}},6501:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.scanAppendingHeaders=t.selectCover=t.ratingToStars=t.orderTags=t.parseFromTokenizer=t.parseBuffer=t.parseStream=void 0;const a=r(5534),i=r(7727),n=r(5379),s=r(9156),o=r(3512),l=r(3595);function c(e,t){return i.ParserFactory.parseOnContentType(e,t)}async function u(e,t={}){let r=e.fileSize;await(0,o.hasID3v1Header)(e)&&(r-=128,r-=await(0,l.getLyricsHeaderLength)(e)),t.apeHeader=await s.APEv2Parser.findApeFooterOffset(e,r)}t.parseStream=function(e,t,r={}){return c(a.fromStream(e,"string"==typeof t?{mimeType:t}:t),r)},t.parseBuffer=async function(e,t,r={}){const i=new n.RandomUint8ArrayReader(e);return await u(i,r),c(a.fromBuffer(e,"string"==typeof t?{mimeType:t}:t),r)},t.parseFromTokenizer=c,t.orderTags=function(e){const t={};for(const r of e)(t[r.id]=t[r.id]||[]).push(r.value);return t},t.ratingToStars=function(e){return void 0===e?0:1+Math.round(4*e)},t.selectCover=function(e){return e?e.reduce(((e,t)=>t.name&&t.name.toLowerCase()in["front","cover","cover (front)"]?t:e)):null},t.scanAppendingHeaders=u},2986:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DsdiffParser=void 0;const a=r(1028),i=r(7833),n=r(5534),s=r(3232),o=r(6373),l=r(8344),c=r(5384),u=(0,i.default)("music-metadata:parser:aiff");class d extends o.BasicParser{async parse(){const e=await this.tokenizer.readToken(c.ChunkHeader64);if("FRM8"!==e.chunkID)throw new Error("Unexpected chunk-ID");const t=(await this.tokenizer.readToken(s.FourCcToken)).trim();if("DSD"===t)return this.metadata.setFormat("container",`DSDIFF/${t}`),this.metadata.setFormat("lossless",!0),this.readFmt8Chunks(e.chunkSize-BigInt(s.FourCcToken.len));throw Error(`Unsupported DSDIFF type: ${t}`)}async readFmt8Chunks(e){for(;e>=c.ChunkHeader64.len;){const t=await this.tokenizer.readToken(c.ChunkHeader64);u(`Chunk id=${t.chunkID}`),await this.readData(t),e-=BigInt(c.ChunkHeader64.len)+t.chunkSize}}async readData(e){u(`Reading data of chunk[ID=${e.chunkID}, size=${e.chunkSize}]`);const t=this.tokenizer.position;switch(e.chunkID.trim()){case"FVER":const t=await this.tokenizer.readToken(a.UINT32_LE);u(`DSDIFF version=${t}`);break;case"PROP":if("SND "!==await this.tokenizer.readToken(s.FourCcToken))throw new Error("Unexpected PROP-chunk ID");await this.handleSoundPropertyChunks(e.chunkSize-BigInt(s.FourCcToken.len));break;case"ID3":const r=await this.tokenizer.readToken(new a.Uint8ArrayType(Number(e.chunkSize))),i=n.fromBuffer(r);await(new l.ID3v2Parser).parse(this.metadata,i,this.options);break;default:u(`Ignore chunk[ID=${e.chunkID}, size=${e.chunkSize}]`);break;case"DSD":this.metadata.setFormat("numberOfSamples",Number(e.chunkSize*BigInt(8)/BigInt(this.metadata.format.numberOfChannels))),this.metadata.setFormat("duration",this.metadata.format.numberOfSamples/this.metadata.format.sampleRate)}const r=e.chunkSize-BigInt(this.tokenizer.position-t);r>0&&(u(`After Parsing chunk, remaining ${r} bytes`),await this.tokenizer.ignore(Number(r)))}async handleSoundPropertyChunks(e){for(u(`Parsing sound-property-chunks, remainingSize=${e}`);e>0;){const t=await this.tokenizer.readToken(c.ChunkHeader64);u(`Sound-property-chunk[ID=${t.chunkID}, size=${t.chunkSize}]`);const r=this.tokenizer.position;switch(t.chunkID.trim()){case"FS":const e=await this.tokenizer.readToken(a.UINT32_BE);this.metadata.setFormat("sampleRate",e);break;case"CHNL":const r=await this.tokenizer.readToken(a.UINT16_BE);this.metadata.setFormat("numberOfChannels",r),await this.handleChannelChunks(t.chunkSize-BigInt(a.UINT16_BE.len));break;case"CMPR":const i=(await this.tokenizer.readToken(s.FourCcToken)).trim(),n=await this.tokenizer.readToken(a.UINT8),o=await this.tokenizer.readToken(new a.StringType(n,"ascii"));"DSD"===i&&(this.metadata.setFormat("lossless",!0),this.metadata.setFormat("bitsPerSample",1)),this.metadata.setFormat("codec",`${i} (${o})`);break;case"ABSS":const l=await this.tokenizer.readToken(a.UINT16_BE),c=await this.tokenizer.readToken(a.UINT8),d=await this.tokenizer.readToken(a.UINT8),h=await this.tokenizer.readToken(a.UINT32_BE);u(`ABSS ${l}:${c}:${d}.${h}`);break;case"LSCO":const f=await this.tokenizer.readToken(a.UINT16_BE);u(`LSCO lsConfig=${f}`);break;default:u(`Unknown sound-property-chunk[ID=${t.chunkID}, size=${t.chunkSize}]`),await this.tokenizer.ignore(Number(t.chunkSize))}const i=t.chunkSize-BigInt(this.tokenizer.position-r);i>0&&(u(`After Parsing sound-property-chunk ${t.chunkSize}, remaining ${i} bytes`),await this.tokenizer.ignore(Number(i))),e-=BigInt(c.ChunkHeader64.len)+t.chunkSize,u(`Parsing sound-property-chunks, remainingSize=${e}`)}if(this.metadata.format.lossless&&this.metadata.format.sampleRate&&this.metadata.format.numberOfChannels&&this.metadata.format.bitsPerSample){const e=this.metadata.format.sampleRate*this.metadata.format.numberOfChannels*this.metadata.format.bitsPerSample;this.metadata.setFormat("bitrate",e)}}async handleChannelChunks(e){u(`Parsing channel-chunks, remainingSize=${e}`);const t=[];for(;e>=s.FourCcToken.len;){const r=await this.tokenizer.readToken(s.FourCcToken);u(`Channel[ID=${r}]`),t.push(r),e-=BigInt(s.FourCcToken.len)}return u(`Channels: ${t.join(", ")}`),t}}t.DsdiffParser=d},5384:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ChunkHeader64=void 0;const a=r(1028),i=r(3232);t.ChunkHeader64={len:12,get:(e,t)=>({chunkID:i.FourCcToken.get(e,t),chunkSize:a.INT64_BE.get(e,t+4)})}},1426:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FormatChunk=t.ChannelType=t.DsdChunk=t.ChunkHeader=void 0;const a=r(1028),i=r(3232);var n;t.ChunkHeader={len:12,get:(e,t)=>({id:i.FourCcToken.get(e,t),size:a.UINT64_LE.get(e,t+4)})},t.DsdChunk={len:16,get:(e,t)=>({fileSize:a.INT64_LE.get(e,t),metadataPointer:a.INT64_LE.get(e,t+8)})},(n=t.ChannelType||(t.ChannelType={}))[n.mono=1]="mono",n[n.stereo=2]="stereo",n[n.channels=3]="channels",n[n.quad=4]="quad",n[n["4 channels"]=5]="4 channels",n[n["5 channels"]=6]="5 channels",n[n["5.1 channels"]=7]="5.1 channels",t.FormatChunk={len:40,get:(e,t)=>({formatVersion:a.INT32_LE.get(e,t),formatID:a.INT32_LE.get(e,t+4),channelType:a.INT32_LE.get(e,t+8),channelNum:a.INT32_LE.get(e,t+12),samplingFrequency:a.INT32_LE.get(e,t+16),bitsPerSample:a.INT32_LE.get(e,t+20),sampleCount:a.INT64_LE.get(e,t+24),blockSizePerChannel:a.INT32_LE.get(e,t+32)})}},9432:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DsfParser=void 0;const a=r(7833),i=r(7270),n=r(1426),s=r(8344),o=(0,a.default)("music-metadata:parser:DSF");class l extends i.AbstractID3Parser{async postId3v2Parse(){const e=this.tokenizer.position,t=await this.tokenizer.readToken(n.ChunkHeader);if("DSD "!==t.id)throw new Error("Invalid chunk signature");this.metadata.setFormat("container","DSF"),this.metadata.setFormat("lossless",!0);const r=await this.tokenizer.readToken(n.DsdChunk);if(r.metadataPointer!==BigInt(0))return o(`expect ID3v2 at offset=${r.metadataPointer}`),await this.parseChunks(r.fileSize-t.size),await this.tokenizer.ignore(Number(r.metadataPointer)-this.tokenizer.position-e),(new s.ID3v2Parser).parse(this.metadata,this.tokenizer,this.options);o("No ID3v2 tag present")}async parseChunks(e){for(;e>=n.ChunkHeader.len;){const t=await this.tokenizer.readToken(n.ChunkHeader);if(o(`Parsing chunk name=${t.id} size=${t.size}`),"fmt "===t.id){const e=await this.tokenizer.readToken(n.FormatChunk);this.metadata.setFormat("numberOfChannels",e.channelNum),this.metadata.setFormat("sampleRate",e.samplingFrequency),this.metadata.setFormat("bitsPerSample",e.bitsPerSample),this.metadata.setFormat("numberOfSamples",e.sampleCount),this.metadata.setFormat("duration",Number(e.sampleCount)/e.samplingFrequency);const t=e.bitsPerSample*e.samplingFrequency*e.channelNum;return void this.metadata.setFormat("bitrate",t)}this.tokenizer.ignore(Number(t.size)-n.ChunkHeader.len),e-=t.size}}}t.DsfParser=l},1650:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FlacParser=void 0;const a=r(1028),i=r(7833),n=r(6378),s=r(431),o=r(7270),l=r(3232),c=r(2668),u=r(668),d=(0,i.default)("music-metadata:parser:FLAC");var h;!function(e){e[e.STREAMINFO=0]="STREAMINFO",e[e.PADDING=1]="PADDING",e[e.APPLICATION=2]="APPLICATION",e[e.SEEKTABLE=3]="SEEKTABLE",e[e.VORBIS_COMMENT=4]="VORBIS_COMMENT",e[e.CUESHEET=5]="CUESHEET",e[e.PICTURE=6]="PICTURE"}(h||(h={}));class f extends o.AbstractID3Parser{constructor(){super(...arguments),this.padding=0}init(e,t,r){return super.init(e,t,r),this.vorbisParser=new c.VorbisParser(e,r),this}async postId3v2Parse(){if("fLaC"!==(await this.tokenizer.readToken(l.FourCcToken)).toString())throw new Error("Invalid FLAC preamble");let e;do{e=await this.tokenizer.readToken(p.BlockHeader),await this.parseDataBlock(e)}while(!e.lastBlock);if(this.tokenizer.fileInfo.size&&this.metadata.format.duration){const e=this.tokenizer.fileInfo.size-this.tokenizer.position;this.metadata.setFormat("bitrate",8*e/this.metadata.format.duration)}}parseDataBlock(e){switch(d(`blockHeader type=${e.type}, length=${e.length}`),e.type){case h.STREAMINFO:return this.parseBlockStreamInfo(e.length);case h.PADDING:this.padding+=e.length;break;case h.APPLICATION:case h.SEEKTABLE:break;case h.VORBIS_COMMENT:return this.parseComment(e.length);case h.CUESHEET:break;case h.PICTURE:return this.parsePicture(e.length).then();default:this.metadata.addWarning("Unknown block type: "+e.type)}return this.tokenizer.ignore(e.length).then()}async parseBlockStreamInfo(e){if(e!==p.BlockStreamInfo.len)throw new Error("Unexpected block-stream-info length");const t=await this.tokenizer.readToken(p.BlockStreamInfo);this.metadata.setFormat("container","FLAC"),this.metadata.setFormat("codec","FLAC"),this.metadata.setFormat("lossless",!0),this.metadata.setFormat("numberOfChannels",t.channels),this.metadata.setFormat("bitsPerSample",t.bitsPerSample),this.metadata.setFormat("sampleRate",t.sampleRate),t.totalSamples>0&&this.metadata.setFormat("duration",t.totalSamples/t.sampleRate)}async parseComment(e){const t=await this.tokenizer.readToken(new a.Uint8ArrayType(e)),r=new u.VorbisDecoder(t,0);r.readStringUtf8();const i=r.readInt32();for(let e=0;e({lastBlock:n.getBit(e,t,7),type:n.getBitAllignedNumber(e,t,1,7),length:a.UINT24_BE.get(e,t+1)})},p.BlockStreamInfo={len:34,get:(e,t)=>({minimumBlockSize:a.UINT16_BE.get(e,t),maximumBlockSize:a.UINT16_BE.get(e,t+2)/1e3,minimumFrameSize:a.UINT24_BE.get(e,t+4),maximumFrameSize:a.UINT24_BE.get(e,t+7),sampleRate:a.UINT24_BE.get(e,t+10)>>4,channels:n.getBitAllignedNumber(e,t+12,4,3)+1,bitsPerSample:n.getBitAllignedNumber(e,t+12,7,5)+1,totalSamples:n.getBitAllignedNumber(e,t+13,4,36),fileMD5:new a.Uint8ArrayType(16).get(e,t+18)})}},3512:(e,t,r)=>{"use strict";var a=r(8287).Buffer;Object.defineProperty(t,"__esModule",{value:!0}),t.hasID3v1Header=t.ID3v1Parser=t.Genres=void 0;const i=r(7833),n=r(1028),s=r(6378),o=r(6373),l=r(9156),c=(0,i.default)("music-metadata:parser:ID3v1");t.Genres=["Blues","Classic Rock","Country","Dance","Disco","Funk","Grunge","Hip-Hop","Jazz","Metal","New Age","Oldies","Other","Pop","R&B","Rap","Reggae","Rock","Techno","Industrial","Alternative","Ska","Death Metal","Pranks","Soundtrack","Euro-Techno","Ambient","Trip-Hop","Vocal","Jazz+Funk","Fusion","Trance","Classical","Instrumental","Acid","House","Game","Sound Clip","Gospel","Noise","Alt. Rock","Bass","Soul","Punk","Space","Meditative","Instrumental Pop","Instrumental Rock","Ethnic","Gothic","Darkwave","Techno-Industrial","Electronic","Pop-Folk","Eurodance","Dream","Southern Rock","Comedy","Cult","Gangsta Rap","Top 40","Christian Rap","Pop/Funk","Jungle","Native American","Cabaret","New Wave","Psychedelic","Rave","Showtunes","Trailer","Lo-Fi","Tribal","Acid Punk","Acid Jazz","Polka","Retro","Musical","Rock & Roll","Hard Rock","Folk","Folk/Rock","National Folk","Swing","Fast-Fusion","Bebob","Latin","Revival","Celtic","Bluegrass","Avantgarde","Gothic Rock","Progressive Rock","Psychedelic Rock","Symphonic Rock","Slow Rock","Big Band","Chorus","Easy Listening","Acoustic","Humour","Speech","Chanson","Opera","Chamber Music","Sonata","Symphony","Booty Bass","Primus","Porn Groove","Satire","Slow Jam","Club","Tango","Samba","Folklore","Ballad","Power Ballad","Rhythmic Soul","Freestyle","Duet","Punk Rock","Drum Solo","A Cappella","Euro-House","Dance Hall","Goa","Drum & Bass","Club-House","Hardcore","Terror","Indie","BritPop","Negerpunk","Polsk Punk","Beat","Christian Gangsta Rap","Heavy Metal","Black Metal","Crossover","Contemporary Christian","Christian Rock","Merengue","Salsa","Thrash Metal","Anime","JPop","Synthpop","Abstract","Art Rock","Baroque","Bhangra","Big Beat","Breakbeat","Chillout","Downtempo","Dub","EBM","Eclectic","Electro","Electroclash","Emo","Experimental","Garage","Global","IDM","Illbient","Industro-Goth","Jam Band","Krautrock","Leftfield","Lounge","Math Rock","New Romantic","Nu-Breakz","Post-Punk","Post-Rock","Psytrance","Shoegaze","Space Rock","Trop Rock","World Music","Neoclassical","Audiobook","Audio Theatre","Neue Deutsche Welle","Podcast","Indie Rock","G-Funk","Dubstep","Garage Rock","Psybient"];const u={len:128,get:(e,t)=>{const r=new d(3).get(e,t);return"TAG"===r?{header:r,title:new d(30).get(e,t+3),artist:new d(30).get(e,t+33),album:new d(30).get(e,t+63),year:new d(4).get(e,t+93),comment:new d(28).get(e,t+97),zeroByte:n.UINT8.get(e,t+127),track:n.UINT8.get(e,t+126),genre:n.UINT8.get(e,t+127)}:null}};class d extends n.StringType{constructor(e){super(e,"binary")}get(e,t){let r=super.get(e,t);return r=s.trimRightNull(r),r=r.trim(),r.length>0?r:void 0}}class h extends o.BasicParser{static getGenre(e){if(ee)return void c("Already consumed the last 128 bytes");const t=await this.tokenizer.readToken(u,e);if(t){c("ID3v1 header found at: pos=%s",this.tokenizer.fileInfo.size-u.len);for(const e of["title","artist","album","comment","track","year"])t[e]&&""!==t[e]&&this.addTag(e,t[e]);const e=h.getGenre(t.genre);e&&this.addTag("genre",e)}else c("ID3v1 header not found at: pos=%s",this.tokenizer.fileInfo.size-u.len)}addTag(e,t){this.metadata.addTag("ID3v1",e,t)}}t.ID3v1Parser=h,t.hasID3v1Header=async function(e){if(e.fileSize>=128){const t=a.alloc(3);return await e.randomRead(t,0,t.length,e.fileSize-128),"TAG"===t.toString("binary")}return!1}},7925:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ID3v1TagMapper=void 0;const a=r(8872),i={title:"title",artist:"artist",album:"album",year:"year",comment:"comment",track:"track",genre:"genre"};class n extends a.CommonTagMapper{constructor(){super(["ID3v1"],i)}}t.ID3v1TagMapper=n},7270:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractID3Parser=void 0;const a=r(5534),i=r(7833),n=r(2298),s=r(8344),o=r(3512),l=r(6373),c=(0,i.default)("music-metadata:parser:ID3");class u extends l.BasicParser{constructor(){super(...arguments),this.id3parser=new s.ID3v2Parser}static async startsWithID3v2Header(e){return"ID3"===(await e.peekToken(n.ID3v2Header)).fileIdentifier}async parse(){try{await this.parseID3v2()}catch(e){if(!(e instanceof a.EndOfStreamError))throw e;c("End-of-stream")}}finalize(){}async parseID3v2(){if(await this.tryReadId3v2Headers(),c("End of ID3v2 header, go to MPEG-parser: pos=%s",this.tokenizer.position),await this.postId3v2Parse(),this.options.skipPostHeaders&&this.metadata.hasAny())this.finalize();else{const e=new o.ID3v1Parser;await e.init(this.metadata,this.tokenizer,this.options).parse(),this.finalize()}}async tryReadId3v2Headers(){if("ID3"===(await this.tokenizer.peekToken(n.ID3v2Header)).fileIdentifier)return c("Found ID3v2 header, pos=%s",this.tokenizer.position),await this.id3parser.parse(this.metadata,this.tokenizer,this.options),this.tryReadId3v2Headers()}}t.AbstractID3Parser=u},3571:(e,t,r)=>{"use strict";var a=r(8287).Buffer;Object.defineProperty(t,"__esModule",{value:!0}),t.FrameParser=t.parseGenre=void 0;const i=r(7833),n=r(1028),s=r(6378),o=r(2298),l=r(3512),c=(0,i.default)("music-metadata:id3v2:frame-parser"),u="latin1";function d(e){const t=[];let r,a="";for(const i of e)if("string"==typeof r)if("("===i&&""===r)a+="(",r=void 0;else if(")"===i){""!==a&&(t.push(a),a="");const e=h(r);e&&t.push(e),r=void 0}else r+=i;else"("===i?r="":a+=i;return a&&(0===t.length&&a.match(/^\d*$/)&&(a=l.Genres[a]),t.push(a)),t}function h(e){return"RX"===e?"Remix":"CR"===e?"Cover":e.match(/^\d*$/)?l.Genres[e]:void 0}t.parseGenre=d;class f{constructor(e,t){this.major=e,this.warningCollector=t}readData(e,t,r){if(0===e.length)return void this.warningCollector.addWarning(`id3v2.${this.major} header has empty tag type=${t}`);const{encoding:i,bom:l}=o.TextEncodingToken.get(e,0),h=e.length;let p=0,m=[];const g=f.getNullTerminatorLength(i);let b;const y={};switch(c(`Parsing tag type=${t}, encoding=${i}, bom=${l}`),"TXXX"!==t&&"T"===t[0]?"T*":t){case"T*":case"IPLS":case"MVIN":case"MVNM":case"PCS":case"PCST":let l;try{l=s.decodeString(e.slice(1),i).replace(/\x00+$/,"")}catch(e){this.warningCollector.addWarning(`id3v2.${this.major} type=${t} header has invalid string value: ${e.message}`)}switch(t){case"TMCL":case"TIPL":case"IPLS":m=this.splitValue(t,l),m=f.functionList(m);break;case"TRK":case"TRCK":case"TPOS":m=l;break;case"TCOM":case"TEXT":case"TOLY":case"TOPE":case"TPE1":case"TSRC":m=this.splitValue(t,l);break;case"TCO":case"TCON":m=this.splitValue(t,l).map((e=>d(e))).reduce(((e,t)=>e.concat(t)),[]);break;case"PCS":case"PCST":m=this.major>=4?this.splitValue(t,l):[l],m=Array.isArray(m)&&""===m[0]?1:0;break;default:m=this.major>=4?this.splitValue(t,l):[l]}break;case"TXXX":m=f.readIdentifierAndData(e,p+1,h,i),m={description:m.id,text:this.splitValue(t,s.decodeString(m.data,i).replace(/\x00+$/,""))};break;case"PIC":case"APIC":if(r){const t={};switch(p+=1,this.major){case 2:t.format=s.decodeString(e.slice(p,p+3),"latin1"),p+=3;break;case 3:case 4:b=s.findZero(e,p,h,u),t.format=s.decodeString(e.slice(p,b),u),p=b+1;break;default:throw new Error("Warning: unexpected major versionIndex: "+this.major)}t.format=f.fixPictureMimeType(t.format),t.type=o.AttachedPictureType[e[p]],p+=1,b=s.findZero(e,p,h,i),t.description=s.decodeString(e.slice(p,b),i),p=b+g,t.data=a.from(e.slice(p,h)),m=t}break;case"CNT":case"PCNT":m=n.UINT32_BE.get(e,0);break;case"SYLT":for(p+=7,m=[];p=5?n.UINT32_BE.get(e,p+1):void 0};break;case"GEOB":{b=s.findZero(e,p+1,h,i);const t=s.decodeString(e.slice(p+1,b),u);p=b+1,b=s.findZero(e,p,h-p,i);const r=s.decodeString(e.slice(p,b),u);p=b+1,b=s.findZero(e,p,h-p,i),m={type:t,filename:r,description:s.decodeString(e.slice(p,b),u),data:e.slice(p+1,h)};break}case"WCOM":case"WCOP":case"WOAF":case"WOAR":case"WOAS":case"WORS":case"WPAY":case"WPUB":m=s.decodeString(e.slice(p,b),u);break;case"WXXX":{b=s.findZero(e,p+1,h,i);const t=s.decodeString(e.slice(p+1,b),i);p=b+("utf16le"===i?2:1),m={description:t,url:s.decodeString(e.slice(p,h),u)};break}case"WFD":case"WFED":m=s.decodeString(e.slice(p+1,s.findZero(e,p+1,h,i)),i);break;case"MCDI":m=e.slice(0,h);break;default:c("Warning: unsupported id3v2-tag-type: "+t)}return m}static fixPictureMimeType(e){switch(e=e.toLocaleLowerCase()){case"jpg":return"image/jpeg";case"png":return"image/png"}return e}static functionList(e){const t={};for(let r=0;r+11?this.warningCollector.addWarning(`ID3v2.${this.major} ${e} uses non standard null-separator.`):r=t.split(/\//g)):r=t.split(/\x00/g),f.trimArray(r)}static trimArray(e){return e.map((e=>e.replace(/\x00+$/,"").trim()))}static readIdentifierAndData(e,t,r,a){const i=s.findZero(e,t,r,a),n=s.decodeString(e.slice(t,i),a);return t=i+f.getNullTerminatorLength(a),{id:n,data:e.slice(t,r)}}static getNullTerminatorLength(e){return"utf16le"===e?2:1}}t.FrameParser=f},6664:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ID3v22TagMapper=t.id3v22TagMap=void 0;const a=r(4151);t.id3v22TagMap={TT2:"title",TP1:"artist",TP2:"albumartist",TAL:"album",TYE:"year",COM:"comment",TRK:"track",TPA:"disk",TCO:"genre",PIC:"picture",TCM:"composer",TOR:"originaldate",TOT:"originalalbum",TXT:"lyricist",TP3:"conductor",TPB:"label",TT1:"grouping",TT3:"subtitle",TLA:"language",TCR:"copyright",WCP:"license",TEN:"encodedby",TSS:"encodersettings",WAR:"website","COM:iTunPGAP":"gapless",PCS:"podcast",TCP:"compilation",TDR:"date",TS2:"albumartistsort",TSA:"albumsort",TSC:"composersort",TSP:"artistsort",TST:"titlesort",WFD:"podcasturl",TBP:"bpm"};class i extends a.CaseInsensitiveTagMap{constructor(){super(["ID3v2.2"],t.id3v22TagMap)}}t.ID3v22TagMapper=i},3814:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ID3v24TagMapper=void 0;const a=r(8872),i=r(4151),n=r(6378),s={TIT2:"title",TPE1:"artist","TXXX:Artists":"artists",TPE2:"albumartist",TALB:"album",TDRV:"date",TORY:"originalyear",TPOS:"disk",TCON:"genre",APIC:"picture",TCOM:"composer","USLT:description":"lyrics",TSOA:"albumsort",TSOT:"titlesort",TOAL:"originalalbum",TSOP:"artistsort",TSO2:"albumartistsort",TSOC:"composersort",TEXT:"lyricist","TXXX:Writer":"writer",TPE3:"conductor",TPE4:"remixer","IPLS:arranger":"arranger","IPLS:engineer":"engineer","IPLS:producer":"producer","IPLS:DJ-mix":"djmixer","IPLS:mix":"mixer",TPUB:"label",TIT1:"grouping",TIT3:"subtitle",TRCK:"track",TCMP:"compilation",POPM:"rating",TBPM:"bpm",TMED:"media","TXXX:CATALOGNUMBER":"catalognumber","TXXX:MusicBrainz Album Status":"releasestatus","TXXX:MusicBrainz Album Type":"releasetype","TXXX:MusicBrainz Album Release Country":"releasecountry","TXXX:RELEASECOUNTRY":"releasecountry","TXXX:SCRIPT":"script",TLAN:"language",TCOP:"copyright",WCOP:"license",TENC:"encodedby",TSSE:"encodersettings","TXXX:BARCODE":"barcode","TXXX:ISRC":"isrc",TSRC:"isrc","TXXX:ASIN":"asin","TXXX:originalyear":"originalyear","UFID:http://musicbrainz.org":"musicbrainz_recordingid","TXXX:MusicBrainz Release Track Id":"musicbrainz_trackid","TXXX:MusicBrainz Album Id":"musicbrainz_albumid","TXXX:MusicBrainz Artist Id":"musicbrainz_artistid","TXXX:MusicBrainz Album Artist Id":"musicbrainz_albumartistid","TXXX:MusicBrainz Release Group Id":"musicbrainz_releasegroupid","TXXX:MusicBrainz Work Id":"musicbrainz_workid","TXXX:MusicBrainz TRM Id":"musicbrainz_trmid","TXXX:MusicBrainz Disc Id":"musicbrainz_discid","TXXX:ACOUSTID_ID":"acoustid_id","TXXX:Acoustid Id":"acoustid_id","TXXX:Acoustid Fingerprint":"acoustid_fingerprint","TXXX:MusicIP PUID":"musicip_puid","TXXX:MusicMagic Fingerprint":"musicip_fingerprint",WOAR:"website",TDRC:"date",TYER:"year",TDOR:"originaldate","TIPL:arranger":"arranger","TIPL:engineer":"engineer","TIPL:producer":"producer","TIPL:DJ-mix":"djmixer","TIPL:mix":"mixer",TMOO:"mood",SYLT:"lyrics",TSST:"discsubtitle",TKEY:"key",COMM:"comment",TOPE:"originalartist","PRIV:AverageLevel":"averageLevel","PRIV:PeakLevel":"peakLevel","TXXX:DISCOGS_ARTIST_ID":"discogs_artist_id","TXXX:DISCOGS_ARTISTS":"artists","TXXX:DISCOGS_ARTIST_NAME":"artists","TXXX:DISCOGS_ALBUM_ARTISTS":"albumartist","TXXX:DISCOGS_CATALOG":"catalognumber","TXXX:DISCOGS_COUNTRY":"releasecountry","TXXX:DISCOGS_DATE":"originaldate","TXXX:DISCOGS_LABEL":"label","TXXX:DISCOGS_LABEL_ID":"discogs_label_id","TXXX:DISCOGS_MASTER_RELEASE_ID":"discogs_master_release_id","TXXX:DISCOGS_RATING":"discogs_rating","TXXX:DISCOGS_RELEASED":"date","TXXX:DISCOGS_RELEASE_ID":"discogs_release_id","TXXX:DISCOGS_VOTES":"discogs_votes","TXXX:CATALOGID":"catalognumber","TXXX:STYLE":"genre","TXXX:REPLAYGAIN_TRACK_PEAK":"replaygain_track_peak","TXXX:REPLAYGAIN_TRACK_GAIN":"replaygain_track_gain","TXXX:REPLAYGAIN_ALBUM_PEAK":"replaygain_album_peak","TXXX:REPLAYGAIN_ALBUM_GAIN":"replaygain_album_gain","TXXX:MP3GAIN_MINMAX":"replaygain_track_minmax","TXXX:MP3GAIN_ALBUM_MINMAX":"replaygain_album_minmax","TXXX:MP3GAIN_UNDO":"replaygain_undo",MVNM:"movement",MVIN:"movementIndex",PCST:"podcast",TCAT:"category",TDES:"description",TDRL:"date",TGID:"podcastId",TKWD:"keywords",WFED:"podcasturl"};class o extends i.CaseInsensitiveTagMap{static toRating(e){return{source:e.email,rating:e.rating>0?(e.rating-1)/254*a.CommonTagMapper.maxRatingScore:void 0}}constructor(){super(["ID3v2.3","ID3v2.4"],s)}postMap(e,t){switch(e.id){case"UFID":"http://musicbrainz.org"===e.value.owner_identifier&&(e.id+=":"+e.value.owner_identifier,e.value=n.decodeString(e.value.identifier,"latin1"));break;case"PRIV":switch(e.value.owner_identifier){case"AverageLevel":case"PeakValue":e.id+=":"+e.value.owner_identifier,e.value=4===e.value.data.length?e.value.data.readUInt32LE(0):null,null===e.value&&t.addWarning("Failed to parse PRIV:PeakValue");break;default:t.addWarning(`Unknown PRIV owner-identifier: ${e.value.owner_identifier}`)}break;case"COMM":e.value=e.value?e.value.text:null;break;case"POPM":e.value=o.toRating(e.value)}}}t.ID3v24TagMapper=o},8344:(e,t,r)=>{"use strict";var a=r(8287).Buffer;Object.defineProperty(t,"__esModule",{value:!0}),t.ID3v2Parser=void 0;const i=r(1028),n=r(6378),s=r(3571),o=r(2298);class l{static removeUnsyncBytes(e){let t=0,r=0;for(;t0?this.parseExtendedHeaderData(t,e.size):this.parseId3Data(this.id3Header.size-e.size)}async parseExtendedHeaderData(e,t){return await this.tokenizer.ignore(e),this.parseId3Data(this.id3Header.size-t)}async parseId3Data(e){const t=await this.tokenizer.readToken(new i.Uint8ArrayType(e));for(const e of this.parseMetadata(t))if("TXXX"===e.id){if(e.value)for(const t of e.value.text)this.addTag(l.makeDescriptionTagName(e.id,e.value.description),t)}else if("COM"===e.id)for(const t of e.value)this.addTag(l.makeDescriptionTagName(e.id,t.description),t.text);else if("COMM"===e.id)for(const t of e.value)this.addTag(l.makeDescriptionTagName(e.id,t.description),t);else if(Array.isArray(e.value))for(const t of e.value)this.addTag(e.id,t);else this.addTag(e.id,e.value)}addTag(e,t){this.metadata.addTag(this.headerType,e,t)}parseMetadata(e){let t=0;const r=[];for(;t!==e.length;){const a=l.getFrameHeaderLength(this.id3Header.version.major);if(t+a>e.length){this.metadata.addWarning("Illegal ID3v2 tag length");break}const i=e.slice(t,t+=a),n=this.readFrameHeader(i,this.id3Header.version.major),s=e.slice(t,t+=n.length),o=l.readFrameData(s,n,this.id3Header.version.major,!this.options.skipCovers,this.metadata);o&&r.push({id:n.id,value:o})}return r}readFrameHeader(e,t){let r;switch(t){case 2:r={id:a.from(e.slice(0,3)).toString("ascii"),length:i.UINT24_BE.get(e,3)},r.id.match(/[A-Z0-9]{3}/g)||this.metadata.addWarning(`Invalid ID3v2.${this.id3Header.version.major} frame-header-ID: ${r.id}`);break;case 3:case 4:r={id:a.from(e.slice(0,4)).toString("ascii"),length:(4===t?o.UINT32SYNCSAFE:i.UINT32_BE).get(e,4),flags:l.readFrameFlags(e.slice(8,10))},r.id.match(/[A-Z0-9]{4}/g)||this.metadata.addWarning(`Invalid ID3v2.${this.id3Header.version.major} frame-header-ID: ${r.id}`);break;default:throw new Error("Unexpected majorVer: "+t)}return r}}t.ID3v2Parser=l},2298:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TextEncodingToken=t.ExtendedHeader=t.ID3v2Header=t.UINT32SYNCSAFE=t.AttachedPictureType=void 0;const a=r(1028),i=r(6378);var n;(n=t.AttachedPictureType||(t.AttachedPictureType={}))[n.Other=0]="Other",n[n["32x32 pixels 'file icon' (PNG only)"]=1]="32x32 pixels 'file icon' (PNG only)",n[n["Other file icon"]=2]="Other file icon",n[n["Cover (front)"]=3]="Cover (front)",n[n["Cover (back)"]=4]="Cover (back)",n[n["Leaflet page"]=5]="Leaflet page",n[n["Media (e.g. label side of CD)"]=6]="Media (e.g. label side of CD)",n[n["Lead artist/lead performer/soloist"]=7]="Lead artist/lead performer/soloist",n[n["Artist/performer"]=8]="Artist/performer",n[n.Conductor=9]="Conductor",n[n["Band/Orchestra"]=10]="Band/Orchestra",n[n.Composer=11]="Composer",n[n["Lyricist/text writer"]=12]="Lyricist/text writer",n[n["Recording Location"]=13]="Recording Location",n[n["During recording"]=14]="During recording",n[n["During performance"]=15]="During performance",n[n["Movie/video screen capture"]=16]="Movie/video screen capture",n[n["A bright coloured fish"]=17]="A bright coloured fish",n[n.Illustration=18]="Illustration",n[n["Band/artist logotype"]=19]="Band/artist logotype",n[n["Publisher/Studio logotype"]=20]="Publisher/Studio logotype",t.UINT32SYNCSAFE={get:(e,t)=>127&e[t+3]|e[t+2]<<7|e[t+1]<<14|e[t]<<21,len:4},t.ID3v2Header={len:10,get:(e,r)=>({fileIdentifier:new a.StringType(3,"ascii").get(e,r),version:{major:a.INT8.get(e,r+3),revision:a.INT8.get(e,r+4)},flags:{unsynchronisation:i.getBit(e,r+5,7),isExtendedHeader:i.getBit(e,r+5,6),expIndicator:i.getBit(e,r+5,5),footer:i.getBit(e,r+5,4)},size:t.UINT32SYNCSAFE.get(e,r+6)})},t.ExtendedHeader={len:10,get:(e,t)=>({size:a.UINT32_BE.get(e,t),extendedFlags:a.UINT16_BE.get(e,t+4),sizeOfPadding:a.UINT32_BE.get(e,t+6),crcDataPresent:i.getBit(e,t+4,31)})},t.TextEncodingToken={len:1,get:(e,t)=>{switch(e[t]){case 0:return{encoding:"latin1"};case 1:return{encoding:"utf16le",bom:!0};case 2:return{encoding:"utf16le",bom:!1};default:return{encoding:"utf8",bom:!1}}}}},7636:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Header=void 0;const a=r(1028),i=r(3232);t.Header={len:8,get:(e,t)=>({chunkID:i.FourCcToken.get(e,t),chunkSize:Number(BigInt(a.UINT32_BE.get(e,t+4)))})}},3595:(e,t,r)=>{"use strict";var a=r(8287).Buffer;Object.defineProperty(t,"__esModule",{value:!0}),t.getLyricsHeaderLength=t.endTag2=void 0,t.endTag2="LYRICS200",t.getLyricsHeaderLength=async function(e){if(e.fileSize>=143){const r=a.alloc(15);await e.randomRead(r,0,r.length,e.fileSize-143);const i=r.toString("binary");if(i.substr(6)===t.endTag2)return parseInt(i.substr(0,6),10)+15}return 0}},5:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.elements=void 0;const a=r(14);t.elements={440786851:{name:"ebml",container:{17030:{name:"ebmlVersion",value:a.DataType.uint},17143:{name:"ebmlReadVersion",value:a.DataType.uint},17138:{name:"ebmlMaxIDWidth",value:a.DataType.uint},17139:{name:"ebmlMaxSizeWidth",value:a.DataType.uint},17026:{name:"docType",value:a.DataType.string},17031:{name:"docTypeVersion",value:a.DataType.uint},17029:{name:"docTypeReadVersion",value:a.DataType.uint}}},408125543:{name:"segment",container:{290298740:{name:"seekHead",container:{19899:{name:"seek",container:{21419:{name:"seekId",value:a.DataType.binary},21420:{name:"seekPosition",value:a.DataType.uint}}}}},357149030:{name:"info",container:{29604:{name:"uid",value:a.DataType.uid},29572:{name:"filename",value:a.DataType.string},3979555:{name:"prevUID",value:a.DataType.uid},3965867:{name:"prevFilename",value:a.DataType.string},4110627:{name:"nextUID",value:a.DataType.uid},4096955:{name:"nextFilename",value:a.DataType.string},2807729:{name:"timecodeScale",value:a.DataType.uint},17545:{name:"duration",value:a.DataType.float},17505:{name:"dateUTC",value:a.DataType.uint},31657:{name:"title",value:a.DataType.string},19840:{name:"muxingApp",value:a.DataType.string},22337:{name:"writingApp",value:a.DataType.string}}},524531317:{name:"cluster",multiple:!0,container:{231:{name:"timecode",value:a.DataType.uid},163:{name:"unknown",value:a.DataType.binary},167:{name:"position",value:a.DataType.uid},171:{name:"prevSize",value:a.DataType.uid}}},374648427:{name:"tracks",container:{174:{name:"entries",multiple:!0,container:{215:{name:"trackNumber",value:a.DataType.uint},29637:{name:"uid",value:a.DataType.uid},131:{name:"trackType",value:a.DataType.uint},185:{name:"flagEnabled",value:a.DataType.bool},136:{name:"flagDefault",value:a.DataType.bool},21930:{name:"flagForced",value:a.DataType.bool},156:{name:"flagLacing",value:a.DataType.bool},28135:{name:"minCache",value:a.DataType.uint},28136:{name:"maxCache",value:a.DataType.uint},2352003:{name:"defaultDuration",value:a.DataType.uint},2306383:{name:"timecodeScale",value:a.DataType.float},21358:{name:"name",value:a.DataType.string},2274716:{name:"language",value:a.DataType.string},134:{name:"codecID",value:a.DataType.string},25506:{name:"codecPrivate",value:a.DataType.binary},2459272:{name:"codecName",value:a.DataType.string},3839639:{name:"codecSettings",value:a.DataType.string},3883072:{name:"codecInfoUrl",value:a.DataType.string},2536e3:{name:"codecDownloadUrl",value:a.DataType.string},170:{name:"codecDecodeAll",value:a.DataType.bool},28587:{name:"trackOverlay",value:a.DataType.uint},224:{name:"video",container:{154:{name:"flagInterlaced",value:a.DataType.bool},21432:{name:"stereoMode",value:a.DataType.uint},176:{name:"pixelWidth",value:a.DataType.uint},186:{name:"pixelHeight",value:a.DataType.uint},21680:{name:"displayWidth",value:a.DataType.uint},21690:{name:"displayHeight",value:a.DataType.uint},21683:{name:"aspectRatioType",value:a.DataType.uint},3061028:{name:"colourSpace",value:a.DataType.uint},3126563:{name:"gammaValue",value:a.DataType.float}}},225:{name:"audio",container:{181:{name:"samplingFrequency",value:a.DataType.float},30901:{name:"outputSamplingFrequency",value:a.DataType.float},159:{name:"channels",value:a.DataType.uint},148:{name:"channels",value:a.DataType.uint},32123:{name:"channelPositions",value:a.DataType.binary},25188:{name:"bitDepth",value:a.DataType.uint}}},28032:{name:"contentEncodings",container:{25152:{name:"contentEncoding",container:{20529:{name:"order",value:a.DataType.uint},20530:{name:"scope",value:a.DataType.bool},20531:{name:"type",value:a.DataType.uint},20532:{name:"contentEncoding",container:{16980:{name:"contentCompAlgo",value:a.DataType.uint},16981:{name:"contentCompSettings",value:a.DataType.binary}}},20533:{name:"contentEncoding",container:{18401:{name:"contentEncAlgo",value:a.DataType.uint},18402:{name:"contentEncKeyID",value:a.DataType.binary},18403:{name:"contentSignature ",value:a.DataType.binary},18404:{name:"ContentSigKeyID ",value:a.DataType.binary},18405:{name:"contentSigAlgo ",value:a.DataType.uint},18406:{name:"contentSigHashAlgo ",value:a.DataType.uint}}},25188:{name:"bitDepth",value:a.DataType.uint}}}}}}}}},475249515:{name:"cues",container:{187:{name:"cuePoint",container:{179:{name:"cueTime",value:a.DataType.uid},183:{name:"positions",container:{247:{name:"track",value:a.DataType.uint},241:{name:"clusterPosition",value:a.DataType.uint},21368:{name:"blockNumber",value:a.DataType.uint},234:{name:"codecState",value:a.DataType.uint},219:{name:"reference",container:{150:{name:"time",value:a.DataType.uint},151:{name:"cluster",value:a.DataType.uint},21343:{name:"number",value:a.DataType.uint},235:{name:"codecState",value:a.DataType.uint}}},240:{name:"relativePosition",value:a.DataType.uint}}}}}}},423732329:{name:"attachments",container:{24999:{name:"attachedFiles",multiple:!0,container:{18046:{name:"description",value:a.DataType.string},18030:{name:"name",value:a.DataType.string},18016:{name:"mimeType",value:a.DataType.string},18012:{name:"data",value:a.DataType.binary},18094:{name:"uid",value:a.DataType.uid}}}}},272869232:{name:"chapters",container:{17849:{name:"editionEntry",container:{182:{name:"chapterAtom",container:{29636:{name:"uid",value:a.DataType.uid},145:{name:"timeStart",value:a.DataType.uint},146:{name:"timeEnd",value:a.DataType.uid},152:{name:"hidden",value:a.DataType.bool},17816:{name:"enabled",value:a.DataType.uid},143:{name:"track",container:{137:{name:"trackNumber",value:a.DataType.uid},128:{name:"display",container:{133:{name:"string",value:a.DataType.string},17276:{name:"language ",value:a.DataType.string},17278:{name:"country ",value:a.DataType.string}}}}}}}}}}},307544935:{name:"tags",container:{29555:{name:"tag",multiple:!0,container:{25536:{name:"target",container:{25541:{name:"tagTrackUID",value:a.DataType.uid},25540:{name:"tagChapterUID",value:a.DataType.uint},25542:{name:"tagAttachmentUID",value:a.DataType.uid},25546:{name:"targetType",value:a.DataType.string},26826:{name:"targetTypeValue",value:a.DataType.uint},25545:{name:"tagEditionUID",value:a.DataType.uid}}},26568:{name:"simpleTags",multiple:!0,container:{17827:{name:"name",value:a.DataType.string},17543:{name:"string",value:a.DataType.string},17541:{name:"binary",value:a.DataType.binary},17530:{name:"language",value:a.DataType.string},17531:{name:"languageIETF",value:a.DataType.string},17540:{name:"default",value:a.DataType.bool}}}}}}}}}}},2030:(e,t,r)=>{"use strict";var a=r(8287).Buffer;Object.defineProperty(t,"__esModule",{value:!0}),t.MatroskaParser=void 0;const i=r(1028),n=r(7833),s=r(6373),o=r(14),l=r(5),c=(0,n.default)("music-metadata:parser:matroska");class u extends s.BasicParser{constructor(){super(),this.padding=0,this.parserMap=new Map,this.ebmlMaxIDLength=4,this.ebmlMaxSizeLength=8,this.parserMap.set(o.DataType.uint,(e=>this.readUint(e))),this.parserMap.set(o.DataType.string,(e=>this.readString(e))),this.parserMap.set(o.DataType.binary,(e=>this.readBuffer(e))),this.parserMap.set(o.DataType.uid,(async e=>1===await this.readUint(e))),this.parserMap.set(o.DataType.bool,(e=>this.readFlag(e))),this.parserMap.set(o.DataType.float,(e=>this.readFloat(e)))}init(e,t,r){return super.init(e,t,r),this}async parse(){const e=await this.parseContainer(l.elements,this.tokenizer.fileInfo.size,[]);if(this.metadata.setFormat("container",`EBML/${e.ebml.docType}`),e.segment){const t=e.segment.info;if(t){const e=t.timecodeScale?t.timecodeScale:1e6;if("number"==typeof t.duration){const r=t.duration*e/1e9;this.addTag("segment:title",t.title),this.metadata.setFormat("duration",r)}}const r=e.segment.tracks;if(r&&r.entries){r.entries.forEach((e=>{const t={codecName:e.codecID.replace("A_","").replace("V_",""),codecSettings:e.codecSettings,flagDefault:e.flagDefault,flagLacing:e.flagLacing,flagEnabled:e.flagEnabled,language:e.language,name:e.name,type:e.trackType,audio:e.audio,video:e.video};this.metadata.addStreamInfo(t)}));const t=r.entries.filter((e=>e.trackType===o.TrackType.audio.valueOf())).reduce(((e,t)=>e?!e.flagDefault&&t.flagDefault||t.trackNumber&&t.trackNumber{const t=e.target,r=(null==t?void 0:t.targetTypeValue)?o.TargetType[t.targetTypeValue]:(null==t?void 0:t.targetType)?t.targetType:"track";e.simpleTags.forEach((e=>{const t=e.string?e.string:e.binary;this.addTag(`${r}:${e.name}`,t)}))})),e.segment.attachments&&e.segment.attachments.attachedFiles.filter((e=>e.mimeType.startsWith("image/"))).map((e=>({data:e.data,format:e.mimeType,description:e.description,name:e.name}))).forEach((e=>{this.addTag("picture",e)}))}}}async parseContainer(e,t,r){const a={};for(;this.tokenizer.position=0?this.tokenizer.position+t.len:-1,r.concat([i.name]));i.multiple?(a[i.name]||(a[i.name]=[]),a[i.name].push(e)):a[i.name]=e}else a[i.name]=await this.parserMap.get(i.value)(t);else 236===t.id?(this.padding+=t.len,await this.tokenizer.ignore(t.len)):(c(`parseEbml: path=${r.join("/")}, unknown element: id=${t.id.toString(16)}`),this.padding+=t.len,await this.tokenizer.ignore(t.len))}return a}async readVintData(e){const t=await this.tokenizer.peekNumber(i.UINT8);let r=128,n=1;for(;!(t&r);){if(n>e)throw new Error("VINT value exceeding maximum size");++n,r>>=1}const s=a.alloc(n);return await this.tokenizer.readBuffer(s),s}async readElement(){const e=await this.readVintData(this.ebmlMaxIDLength),t=await this.readVintData(this.ebmlMaxSizeLength);t[0]^=128>>t.length-1;const r=Math.min(6,t.length);return{id:e.readUIntBE(0,e.length),len:t.readUIntBE(t.length-r,r)}}isMaxValue(e){if(e.length===this.ebmlMaxSizeLength){for(let t=1;t{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MatroskaTagMapper=void 0;const a=r(4151),i={"segment:title":"title","album:ARTIST":"albumartist","album:ARTISTSORT":"albumartistsort","album:TITLE":"album","album:DATE_RECORDED":"originaldate","album:PART_NUMBER":"disk","album:TOTAL_PARTS":"totaltracks","track:ARTIST":"artist","track:ARTISTSORT":"artistsort","track:TITLE":"title","track:PART_NUMBER":"track","track:MUSICBRAINZ_TRACKID":"musicbrainz_recordingid","track:MUSICBRAINZ_ALBUMID":"musicbrainz_albumid","track:MUSICBRAINZ_ARTISTID":"musicbrainz_artistid","track:PUBLISHER":"label","track:GENRE":"genre","track:ENCODER":"encodedby","track:ENCODER_OPTIONS":"encodersettings","edition:TOTAL_PARTS":"totaldiscs",picture:"picture"};class n extends a.CaseInsensitiveTagMap{constructor(){super(["matroska"],i)}}t.MatroskaTagMapper=n},14:(e,t)=>{"use strict";var r,a,i;Object.defineProperty(t,"__esModule",{value:!0}),t.TrackType=t.TargetType=t.DataType=void 0,(i=t.DataType||(t.DataType={}))[i.string=0]="string",i[i.uint=1]="uint",i[i.uid=2]="uid",i[i.bool=3]="bool",i[i.binary=4]="binary",i[i.float=5]="float",(a=t.TargetType||(t.TargetType={}))[a.shot=10]="shot",a[a.scene=20]="scene",a[a.track=30]="track",a[a.part=40]="part",a[a.album=50]="album",a[a.edition=60]="edition",a[a.collection=70]="collection",(r=t.TrackType||(t.TrackType={}))[r.video=1]="video",r[r.audio=2]="audio",r[r.complex=3]="complex",r[r.logo=4]="logo",r[r.subtitle=17]="subtitle",r[r.button=18]="button",r[r.control=32]="control"},1919:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Atom=void 0;const a=r(7833),i=r(7550),n=(0,a.default)("music-metadata:parser:MP4:Atom");class s{static async readAtom(e,t,r,a){const o=e.position,l=await e.readToken(i.Header);l.length===BigInt(1)&&(l.length=await e.readToken(i.ExtendedSize));const c=new s(l,l.length===BigInt(1),r),u=c.getPayloadLength(a);return n(`parse atom name=${c.atomPath}, extended=${c.extended}, offset=${o}, len=${c.header.length}`),await c.readData(e,t,u),c}constructor(e,t,r){this.header=e,this.extended=t,this.parent=r,this.children=[],this.atomPath=(this.parent?this.parent.atomPath+".":"")+this.header.name}getHeaderLength(){return this.extended?16:8}getPayloadLength(e){return(this.header.length===BigInt(0)?e:Number(this.header.length))-this.getHeaderLength()}async readAtoms(e,t,r){for(;r>0;){const a=await s.readAtom(e,t,this,r);this.children.push(a),r-=a.header.length===BigInt(0)?r:Number(a.header.length)}}async readData(e,t,r){switch(this.header.name){case"moov":case"udta":case"trak":case"mdia":case"minf":case"stbl":case"":case"ilst":case"tref":return this.readAtoms(e,t,this.getPayloadLength(r));case"meta":const a="hdlr"===(await e.peekToken(i.Header)).name?0:4;return await e.ignore(a),this.readAtoms(e,t,this.getPayloadLength(r)-a);default:return t(this,r)}}}t.Atom=s},7550:(e,t,r)=>{"use strict";var a=r(8287).Buffer;Object.defineProperty(t,"__esModule",{value:!0}),t.ChapterText=t.StcoAtom=t.StszAtom=t.StscAtom=t.SampleToChunkToken=t.SttsAtom=t.TimeToSampleToken=t.SoundSampleDescriptionV0=t.SoundSampleDescriptionVersion=t.StsdAtom=t.TrackHeaderAtom=t.NameAtom=t.DataAtom=t.MvhdAtom=t.MdhdAtom=t.FixedLengthAtom=t.mhdr=t.tkhd=t.ftyp=t.ExtendedSize=t.Header=void 0;const i=r(1028),n=r(7833),s=r(3232),o=(0,n.default)("music-metadata:parser:MP4:atom");t.Header={len:8,get:(e,t)=>{const r=i.UINT32_BE.get(e,t);if(r<0)throw new Error("Invalid atom header length");return{length:BigInt(r),name:new i.StringType(4,"binary").get(e,t+4)}},put:(e,t,r)=>(i.UINT32_BE.put(e,t,Number(r.length)),s.FourCcToken.put(e,t+4,r.name))},t.ExtendedSize=i.UINT64_BE,t.ftyp={len:4,get:(e,t)=>({type:new i.StringType(4,"ascii").get(e,t)})},t.tkhd={len:4,get:(e,t)=>({type:new i.StringType(4,"ascii").get(e,t)})},t.mhdr={len:8,get:(e,t)=>({version:i.UINT8.get(e,t),flags:i.UINT24_BE.get(e,t+1),nextItemID:i.UINT32_BE.get(e,t+4)})};class l{constructor(e,t,r){if(this.len=e,et&&o(`Warning: atom ${r} expected to be ${t}, but was actually ${e} bytes long.`)}}t.FixedLengthAtom=l;const c=(e,t)=>{const r=i.UINT32_BE.get(e,t)-2082844800;return new Date(1e3*r)};t.MdhdAtom=class extends l{constructor(e){super(e,24,"mdhd"),this.len=e}get(e,t){return{version:i.UINT8.get(e,t+0),flags:i.UINT24_BE.get(e,t+1),creationTime:c(e,t+4),modificationTime:c(e,t+8),timeScale:i.UINT32_BE.get(e,t+12),duration:i.UINT32_BE.get(e,t+16),language:i.UINT16_BE.get(e,t+20),quality:i.UINT16_BE.get(e,t+22)}}},t.MvhdAtom=class extends l{constructor(e){super(e,100,"mvhd"),this.len=e}get(e,t){return{version:i.UINT8.get(e,t),flags:i.UINT24_BE.get(e,t+1),creationTime:c(e,t+4),modificationTime:c(e,t+8),timeScale:i.UINT32_BE.get(e,t+12),duration:i.UINT32_BE.get(e,t+16),preferredRate:i.UINT32_BE.get(e,t+20),preferredVolume:i.UINT16_BE.get(e,t+24),previewTime:i.UINT32_BE.get(e,t+72),previewDuration:i.UINT32_BE.get(e,t+76),posterTime:i.UINT32_BE.get(e,t+80),selectionTime:i.UINT32_BE.get(e,t+84),selectionDuration:i.UINT32_BE.get(e,t+88),currentTime:i.UINT32_BE.get(e,t+92),nextTrackID:i.UINT32_BE.get(e,t+96)}}},t.DataAtom=class{constructor(e){this.len=e}get(e,t){return{type:{set:i.UINT8.get(e,t+0),type:i.UINT24_BE.get(e,t+1)},locale:i.UINT24_BE.get(e,t+4),value:a.from(new i.Uint8ArrayType(this.len-8).get(e,t+8))}}},t.NameAtom=class{constructor(e){this.len=e}get(e,t){return{version:i.UINT8.get(e,t),flags:i.UINT24_BE.get(e,t+1),name:new i.StringType(this.len-4,"utf-8").get(e,t+4)}}},t.TrackHeaderAtom=class{constructor(e){this.len=e}get(e,t){return{version:i.UINT8.get(e,t),flags:i.UINT24_BE.get(e,t+1),creationTime:c(e,t+4),modificationTime:c(e,t+8),trackId:i.UINT32_BE.get(e,t+12),duration:i.UINT32_BE.get(e,t+20),layer:i.UINT16_BE.get(e,t+24),alternateGroup:i.UINT16_BE.get(e,t+26),volume:i.UINT16_BE.get(e,t+28)}}};class u{constructor(e){this.len=e}get(e,t){return{dataFormat:s.FourCcToken.get(e,t),dataReferenceIndex:i.UINT16_BE.get(e,t+10),description:new i.Uint8ArrayType(this.len-12).get(e,t+12)}}}t.StsdAtom=class{constructor(e){this.len=e}get(e,t){const r=((e,t)=>({version:i.UINT8.get(e,t),flags:i.UINT24_BE.get(e,t+1),numberOfEntries:i.UINT32_BE.get(e,t+4)}))(e,t);t+=8;const a=[];for(let n=0;n({version:i.INT16_BE.get(e,t),revision:i.INT16_BE.get(e,t+2),vendor:i.INT32_BE.get(e,t+4)})},t.SoundSampleDescriptionV0={len:12,get:(e,t)=>({numAudioChannels:i.INT16_BE.get(e,t+0),sampleSize:i.INT16_BE.get(e,t+2),compressionId:i.INT16_BE.get(e,t+4),packetSize:i.INT16_BE.get(e,t+6),sampleRate:i.UINT16_BE.get(e,t+8)+i.UINT16_BE.get(e,t+10)/1e4})};class d{constructor(e,t){this.len=e,this.token=t}get(e,t){const r=i.INT32_BE.get(e,t+4);return{version:i.INT8.get(e,t+0),flags:i.INT24_BE.get(e,t+1),numberOfEntries:r,entries:h(e,this.token,t+8,this.len-8,r)}}}function h(e,t,r,a,i){if(o(`remainingLen=${a}, numberOfEntries=${i} * token-len=${t.len}`),0===a)return[];if(a!==i*t.len)throw new Error("mismatch number-of-entries with remaining atom-length");const n=[];for(let a=0;a({count:i.INT32_BE.get(e,t+0),duration:i.INT32_BE.get(e,t+4)})},t.SttsAtom=class extends d{constructor(e){super(e,t.TimeToSampleToken),this.len=e}},t.SampleToChunkToken={len:12,get:(e,t)=>({firstChunk:i.INT32_BE.get(e,t),samplesPerChunk:i.INT32_BE.get(e,t+4),sampleDescriptionId:i.INT32_BE.get(e,t+8)})},t.StscAtom=class extends d{constructor(e){super(e,t.SampleToChunkToken),this.len=e}},t.StszAtom=class{constructor(e){this.len=e}get(e,t){const r=i.INT32_BE.get(e,t+8);return{version:i.INT8.get(e,t),flags:i.INT24_BE.get(e,t+1),sampleSize:i.INT32_BE.get(e,t+4),numberOfEntries:r,entries:h(e,i.INT32_BE,t+12,this.len-12,r)}}},t.StcoAtom=class extends d{constructor(e){super(e,i.INT32_BE),this.len=e}},t.ChapterText=class{constructor(e){this.len=e}get(e,t){const r=i.INT16_BE.get(e,t+0);return new i.StringType(r,"utf-8").get(e,t+2)}}},8296:(e,t,r)=>{"use strict";var a=r(8287).Buffer;Object.defineProperty(t,"__esModule",{value:!0}),t.MP4Parser=void 0;const i=r(7833),n=r(1028),s=r(6373),o=r(3512),l=r(7338),c=r(1919),u=r(7550),d=(0,i.default)("music-metadata:parser:MP4"),h={raw:{lossy:!1,format:"raw"},MAC3:{lossy:!0,format:"MACE 3:1"},MAC6:{lossy:!0,format:"MACE 6:1"},ima4:{lossy:!0,format:"IMA 4:1"},ulaw:{lossy:!0,format:"uLaw 2:1"},alaw:{lossy:!0,format:"uLaw 2:1"},Qclp:{lossy:!0,format:"QUALCOMM PureVoice"},".mp3":{lossy:!0,format:"MPEG-1 layer 3"},alac:{lossy:!1,format:"ALAC"},"ac-3":{lossy:!0,format:"AC-3"},mp4a:{lossy:!0,format:"MPEG-4/AAC"},mp4s:{lossy:!0,format:"MP4S"},c608:{lossy:!0,format:"CEA-608"},c708:{lossy:!0,format:"CEA-708"}};function f(e,t,r){return r.indexOf(e)===t}class p extends s.BasicParser{constructor(){super(...arguments),this.atomParsers={mvhd:async e=>{const t=await this.tokenizer.readToken(new u.MvhdAtom(e));this.metadata.setFormat("creationTime",t.creationTime),this.metadata.setFormat("modificationTime",t.modificationTime)},mdhd:async e=>{const t=await this.tokenizer.readToken(new u.MdhdAtom(e)),r=this.getTrackDescription();r.creationTime=t.creationTime,r.modificationTime=t.modificationTime,r.timeScale=t.timeScale,r.duration=t.duration},chap:async e=>{const t=this.getTrackDescription(),r=[];for(;e>=n.UINT32_BE.len;)r.push(await this.tokenizer.readNumber(n.UINT32_BE)),e-=n.UINT32_BE.len;t.chapterList=r},tkhd:async e=>{const t=await this.tokenizer.readToken(new u.TrackHeaderAtom(e));this.tracks.push(t)},mdat:async e=>{if(this.audioLengthInBytes=e,this.calculateBitRate(),this.options.includeChapters){const t=this.tracks.filter((e=>e.chapterList));if(1===t.length){const r=t[0].chapterList,a=this.tracks.filter((e=>-1!==r.indexOf(e.trackId)));if(1===a.length)return this.parseChapterTrack(a[0],t[0],e)}}await this.tokenizer.ignore(e)},ftyp:async e=>{const t=[];for(;e>0;){const r=await this.tokenizer.readToken(u.ftyp);e-=u.ftyp.len;const a=r.type.replace(/\W/g,"");a.length>0&&t.push(a)}d(`ftyp: ${t.join("/")}`);const r=t.filter(f).join("/");this.metadata.setFormat("container",r)},stsd:async e=>{const t=await this.tokenizer.readToken(new u.StsdAtom(e));this.getTrackDescription().soundSampleDescription=t.table.map((e=>this.parseSoundSampleDescription(e)))},stsc:async e=>{const t=await this.tokenizer.readToken(new u.StscAtom(e));this.getTrackDescription().sampleToChunkTable=t.entries},stts:async e=>{const t=await this.tokenizer.readToken(new u.SttsAtom(e));this.getTrackDescription().timeToSampleTable=t.entries},stsz:async e=>{const t=await this.tokenizer.readToken(new u.StszAtom(e)),r=this.getTrackDescription();r.sampleSize=t.sampleSize,r.sampleSizeTable=t.entries},stco:async e=>{const t=await this.tokenizer.readToken(new u.StcoAtom(e));this.getTrackDescription().chunkOffsetTable=t.entries},date:async e=>{const t=await this.tokenizer.readToken(new n.StringType(e,"utf-8"));this.addTag("date",t)}}}static read_BE_Integer(e,t){const r=(t?"INT":"UINT")+8*e.length+(e.length>1?"_BE":""),a=n[r];if(!a)throw new Error('Token for integer type not found: "'+r+'"');return Number(a.get(e,0))}async parse(){this.tracks=[];let e=this.tokenizer.fileInfo.size;for(;!this.tokenizer.fileInfo.size||e>0;){try{if("\0\0\0\0"===(await this.tokenizer.peekToken(u.Header)).name){const e=`Error at offset=${this.tokenizer.position}: box.id=0`;d(e),this.addWarning(e);break}}catch(e){const t=`Error at offset=${this.tokenizer.position}: ${e.message}`;d(t),this.addWarning(t);break}const t=await c.Atom.readAtom(this.tokenizer,((e,t)=>this.handleAtom(e,t)),null,e);e-=t.header.length===BigInt(0)?e:Number(t.header.length)}const t=[];this.tracks.forEach((e=>{const r=[];e.soundSampleDescription.forEach((e=>{const t={},a=h[e.dataFormat];if(a?(r.push(a.format),t.codecName=a.format):t.codecName=`<${e.dataFormat}>`,e.description){const{description:r}=e;r.sampleRate>0&&(t.type=l.TrackType.audio,t.audio={samplingFrequency:r.sampleRate,bitDepth:r.sampleSize,channels:r.numAudioChannels})}this.metadata.addStreamInfo(t)})),r.length>=1&&t.push(r.join("/"))})),t.length>0&&this.metadata.setFormat("codec",t.filter(f).join("+"));const r=this.tracks.filter((e=>e.soundSampleDescription.length>=1&&e.soundSampleDescription[0].description&&e.soundSampleDescription[0].description.numAudioChannels>0));if(r.length>=1){const e=r[0];if(e.timeScale>0){const t=e.duration/e.timeScale;this.metadata.setFormat("duration",t)}const t=e.soundSampleDescription[0];if(t.description&&(this.metadata.setFormat("sampleRate",t.description.sampleRate),this.metadata.setFormat("bitsPerSample",t.description.sampleSize),this.metadata.setFormat("numberOfChannels",t.description.numAudioChannels),0===e.timeScale&&e.timeToSampleTable.length>0)){const r=e.timeToSampleTable.map((e=>e.count*e.duration)).reduce(((e,t)=>e+t))/t.description.sampleRate;this.metadata.setFormat("duration",r)}const a=h[t.dataFormat];a&&this.metadata.setFormat("lossless",!a.lossy),this.calculateBitRate()}}async handleAtom(e,t){if(e.parent)switch(e.parent.header.name){case"ilst":case"":return this.parseMetadataItemData(e)}if(this.atomParsers[e.header.name])return this.atomParsers[e.header.name](t);d(`No parser for atom path=${e.atomPath}, payload-len=${t}, ignoring atom`),await this.tokenizer.ignore(t)}getTrackDescription(){return this.tracks[this.tracks.length-1]}calculateBitRate(){this.audioLengthInBytes&&this.metadata.format.duration&&this.metadata.setFormat("bitrate",8*this.audioLengthInBytes/this.metadata.format.duration)}addTag(e,t){this.metadata.addTag("iTunes",e,t)}addWarning(e){d("Warning: "+e),this.metadata.addWarning(e)}parseMetadataItemData(e){let t=e.header.name;return e.readAtoms(this.tokenizer,(async(e,r)=>{const a=e.getPayloadLength(r);switch(e.header.name){case"data":return this.parseValueAtom(t,e);case"name":case"mean":case"rate":const r=await this.tokenizer.readToken(new u.NameAtom(a));t+=":"+r.name;break;default:const i=await this.tokenizer.readToken(new n.BufferType(a));this.addWarning("Unsupported meta-item: "+t+"["+e.header.name+"] => value="+i.toString("hex")+" ascii="+i.toString("ascii"))}}),e.getPayloadLength(0))}async parseValueAtom(e,t){const r=await this.tokenizer.readToken(new u.DataAtom(Number(t.header.length)-u.Header.len));if(0!==r.type.set)throw new Error("Unsupported type-set != 0: "+r.type.set);switch(r.type.type){case 0:switch(e){case"trkn":case"disk":const a=n.UINT8.get(r.value,3),i=n.UINT8.get(r.value,5);this.addTag(e,a+"/"+i);break;case"gnre":const s=n.UINT8.get(r.value,1),l=o.Genres[s-1];this.addTag(e,l);break;case"rate":const c=r.value.toString("ascii");this.addTag(e,c);break;default:d("unknown proprietary value type for: "+t.atomPath)}break;case 1:case 18:this.addTag(e,r.value.toString("utf-8"));break;case 13:if(this.options.skipCovers)break;this.addTag(e,{format:"image/jpeg",data:a.from(r.value)});break;case 14:if(this.options.skipCovers)break;this.addTag(e,{format:"image/png",data:a.from(r.value)});break;case 21:this.addTag(e,p.read_BE_Integer(r.value,!0));break;case 22:this.addTag(e,p.read_BE_Integer(r.value,!1));break;case 65:this.addTag(e,r.value.readInt8(0));break;case 66:this.addTag(e,r.value.readInt16BE(0));break;case 67:this.addTag(e,r.value.readInt32BE(0));break;default:this.addWarning(`atom key=${e}, has unknown well-known-type (data-type): ${r.type.type}`)}}parseSoundSampleDescription(e){const t={dataFormat:e.dataFormat,dataReferenceIndex:e.dataReferenceIndex};let r=0;const a=u.SoundSampleDescriptionVersion.get(e.description,r);return r+=u.SoundSampleDescriptionVersion.len,0===a.version||1===a.version?t.description=u.SoundSampleDescriptionV0.get(e.description,r):d(`Warning: sound-sample-description ${a} not implemented`),t}async parseChapterTrack(e,t,r){if(!e.sampleSize&&e.chunkOffsetTable.length!==e.sampleSizeTable.length)throw new Error("Expected equal chunk-offset-table & sample-size-table length.");const a=[];for(let i=0;i0;++i){const n=e.chunkOffsetTable[i]-this.tokenizer.position,s=e.sampleSize>0?e.sampleSize:e.sampleSizeTable[i];if((r-=n+s)<0)throw new Error("Chapter chunk exceeding token length");await this.tokenizer.ignore(n);const o=await this.tokenizer.readToken(new u.ChapterText(s));d(`Chapter ${i+1}: ${o}`);const l={title:o,sampleOffset:this.findSampleOffset(t,this.tokenizer.position)};d(`Chapter title=${l.title}, offset=${l.sampleOffset}/${this.tracks[0].duration}`),a.push(l)}this.metadata.setFormat("chapters",a),await this.tokenizer.ignore(r)}findSampleOffset(e,t){let r=0;e.timeToSampleTable.forEach((e=>{r+=e.count*e.duration})),d(`Total duration=${r}`);let a=0;for(;a=t[r].firstChunk&&e{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MP4TagMapper=t.tagType=void 0;const a=r(4151),i={"©nam":"title","©ART":"artist",aART:"albumartist","----:com.apple.iTunes:Band":"albumartist","©alb":"album","©day":"date","©cmt":"comment","©com":"comment",trkn:"track",disk:"disk","©gen":"genre",covr:"picture","©wrt":"composer","©lyr":"lyrics",soal:"albumsort",sonm:"titlesort",soar:"artistsort",soaa:"albumartistsort",soco:"composersort","----:com.apple.iTunes:LYRICIST":"lyricist","----:com.apple.iTunes:CONDUCTOR":"conductor","----:com.apple.iTunes:REMIXER":"remixer","----:com.apple.iTunes:ENGINEER":"engineer","----:com.apple.iTunes:PRODUCER":"producer","----:com.apple.iTunes:DJMIXER":"djmixer","----:com.apple.iTunes:MIXER":"mixer","----:com.apple.iTunes:LABEL":"label","©grp":"grouping","----:com.apple.iTunes:SUBTITLE":"subtitle","----:com.apple.iTunes:DISCSUBTITLE":"discsubtitle",cpil:"compilation",tmpo:"bpm","----:com.apple.iTunes:MOOD":"mood","----:com.apple.iTunes:MEDIA":"media","----:com.apple.iTunes:CATALOGNUMBER":"catalognumber",tvsh:"tvShow",tvsn:"tvSeason",tves:"tvEpisode",sosn:"tvShowSort",tven:"tvEpisodeId",tvnn:"tvNetwork",pcst:"podcast",purl:"podcasturl","----:com.apple.iTunes:MusicBrainz Album Status":"releasestatus","----:com.apple.iTunes:MusicBrainz Album Type":"releasetype","----:com.apple.iTunes:MusicBrainz Album Release Country":"releasecountry","----:com.apple.iTunes:SCRIPT":"script","----:com.apple.iTunes:LANGUAGE":"language",cprt:"copyright","©cpy":"copyright","----:com.apple.iTunes:LICENSE":"license","©too":"encodedby",pgap:"gapless","----:com.apple.iTunes:BARCODE":"barcode","----:com.apple.iTunes:ISRC":"isrc","----:com.apple.iTunes:ASIN":"asin","----:com.apple.iTunes:NOTES":"comment","----:com.apple.iTunes:MusicBrainz Track Id":"musicbrainz_recordingid","----:com.apple.iTunes:MusicBrainz Release Track Id":"musicbrainz_trackid","----:com.apple.iTunes:MusicBrainz Album Id":"musicbrainz_albumid","----:com.apple.iTunes:MusicBrainz Artist Id":"musicbrainz_artistid","----:com.apple.iTunes:MusicBrainz Album Artist Id":"musicbrainz_albumartistid","----:com.apple.iTunes:MusicBrainz Release Group Id":"musicbrainz_releasegroupid","----:com.apple.iTunes:MusicBrainz Work Id":"musicbrainz_workid","----:com.apple.iTunes:MusicBrainz TRM Id":"musicbrainz_trmid","----:com.apple.iTunes:MusicBrainz Disc Id":"musicbrainz_discid","----:com.apple.iTunes:Acoustid Id":"acoustid_id","----:com.apple.iTunes:Acoustid Fingerprint":"acoustid_fingerprint","----:com.apple.iTunes:MusicIP PUID":"musicip_puid","----:com.apple.iTunes:fingerprint":"musicip_fingerprint","----:com.apple.iTunes:replaygain_track_gain":"replaygain_track_gain","----:com.apple.iTunes:replaygain_track_peak":"replaygain_track_peak","----:com.apple.iTunes:replaygain_album_gain":"replaygain_album_gain","----:com.apple.iTunes:replaygain_album_peak":"replaygain_album_peak","----:com.apple.iTunes:replaygain_track_minmax":"replaygain_track_minmax","----:com.apple.iTunes:replaygain_album_minmax":"replaygain_album_minmax","----:com.apple.iTunes:replaygain_undo":"replaygain_undo",gnre:"genre","----:com.apple.iTunes:ALBUMARTISTSORT":"albumartistsort","----:com.apple.iTunes:ARTISTS":"artists","----:com.apple.iTunes:ORIGINALDATE":"originaldate","----:com.apple.iTunes:ORIGINALYEAR":"originalyear",desc:"description",ldes:"longDescription","©mvn":"movement","©mvi":"movementIndex","©mvc":"movementTotal","©wrk":"work",catg:"category",egid:"podcastId",hdvd:"hdVideo",keyw:"keywords",shwm:"showMovement",stik:"stik",rate:"rating"};t.tagType="iTunes";class n extends a.CaseInsensitiveTagMap{constructor(){super([t.tagType],i)}postMap(e,t){"rate"===e.id&&(e.value={source:void 0,rating:parseFloat(e.value)/100})}}t.MP4TagMapper=n},9767:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ExtendedLameHeader=void 0;const a=r(1028),i=r(6378),n=r(6185);t.ExtendedLameHeader={len:27,get:(e,t)=>{const r=a.UINT32_BE.get(e,t+2);return{revision:i.getBitAllignedNumber(e,t,0,4),vbr_method:i.getBitAllignedNumber(e,t,4,4),lowpass_filter:100*a.UINT8.get(e,t+1),track_peak:0===r?void 0:r/Math.pow(2,23),track_gain:n.ReplayGain.get(e,6),album_gain:n.ReplayGain.get(e,8),music_length:a.UINT32_BE.get(e,t+20),music_crc:a.UINT8.get(e,t+24),header_crc:a.UINT16_BE.get(e,t+24)}}}},3960:(e,t,r)=>{"use strict";var a=r(8287).Buffer;Object.defineProperty(t,"__esModule",{value:!0}),t.MpegParser=void 0;const i=r(1028),n=r(5534),s=r(7833),o=r(6378),l=r(7270),c=r(9128),u=(0,s.default)("music-metadata:parser:mpeg"),d={AudioObjectTypes:["AAC Main","AAC LC","AAC SSR","AAC LTP"],SamplingFrequencies:[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350,void 0,void 0,-1]},h=[void 0,["front-center"],["front-left","front-right"],["front-center","front-left","front-right"],["front-center","front-left","front-right","back-center"],["front-center","front-left","front-right","back-left","back-right"],["front-center","front-left","front-right","back-left","back-right","LFE-channel"],["front-center","front-left","front-right","side-left","side-right","back-left","back-right","LFE-channel"]];class f{constructor(e,t){this.versionIndex=o.getBitAllignedNumber(e,t+1,3,2),this.layer=f.LayerDescription[o.getBitAllignedNumber(e,t+1,5,2)],this.versionIndex>1&&0===this.layer?this.parseAdtsHeader(e,t):this.parseMpegHeader(e,t),this.isProtectedByCRC=!o.isBitSet(e,t+1,7)}calcDuration(e){return e*this.calcSamplesPerFrame()/this.samplingRate}calcSamplesPerFrame(){return f.samplesInFrameTable[1===this.version?0:1][this.layer]}calculateSideInfoLength(){if(3!==this.layer)return 2;if(3===this.channelModeIndex){if(1===this.version)return 17;if(2===this.version||2.5===this.version)return 9}else{if(1===this.version)return 32;if(2===this.version||2.5===this.version)return 17}}calcSlotSize(){return[null,4,1,1][this.layer]}parseMpegHeader(e,t){this.container="MPEG",this.bitrateIndex=o.getBitAllignedNumber(e,t+2,0,4),this.sampRateFreqIndex=o.getBitAllignedNumber(e,t+2,4,2),this.padding=o.isBitSet(e,t+2,6),this.privateBit=o.isBitSet(e,t+2,7),this.channelModeIndex=o.getBitAllignedNumber(e,t+3,0,2),this.modeExtension=o.getBitAllignedNumber(e,t+3,2,2),this.isCopyrighted=o.isBitSet(e,t+3,4),this.isOriginalMedia=o.isBitSet(e,t+3,5),this.emphasis=o.getBitAllignedNumber(e,t+3,7,2),this.version=f.VersionID[this.versionIndex],this.channelMode=f.ChannelMode[this.channelModeIndex],this.codec=`MPEG ${this.version} Layer ${this.layer}`;const r=this.calcBitrate();if(!r)throw new Error("Cannot determine bit-rate");if(this.bitrate=1e3*r,this.samplingRate=this.calcSamplingRate(),null==this.samplingRate)throw new Error("Cannot determine sampling-rate")}parseAdtsHeader(e,t){u("layer=0 => ADTS"),this.version=2===this.versionIndex?4:2,this.container="ADTS/MPEG-"+this.version;const r=o.getBitAllignedNumber(e,t+2,0,2);this.codec="AAC",this.codecProfile=d.AudioObjectTypes[r],u(`MPEG-4 audio-codec=${this.codec}`);const a=o.getBitAllignedNumber(e,t+2,2,4);this.samplingRate=d.SamplingFrequencies[a],u(`sampling-rate=${this.samplingRate}`);const i=o.getBitAllignedNumber(e,t+2,7,3);this.mp4ChannelConfig=h[i],u(`channel-config=${this.mp4ChannelConfig.join("+")}`),this.frameLength=o.getBitAllignedNumber(e,t+3,6,2)<<11}calcBitrate(){if(0===this.bitrateIndex||15===this.bitrateIndex)return;const e=`${Math.floor(this.version)}${this.layer}`;return f.bitrate_index[this.bitrateIndex][e]}calcSamplingRate(){return 3===this.sampRateFreqIndex?null:f.sampling_rate_freq_index[this.version][this.sampRateFreqIndex]}}f.SyncByte1=255,f.SyncByte2=224,f.VersionID=[2.5,null,2,1],f.LayerDescription=[0,3,2,1],f.ChannelMode=["stereo","joint_stereo","dual_channel","mono"],f.bitrate_index={1:{11:32,12:32,13:32,21:32,22:8,23:8},2:{11:64,12:48,13:40,21:48,22:16,23:16},3:{11:96,12:56,13:48,21:56,22:24,23:24},4:{11:128,12:64,13:56,21:64,22:32,23:32},5:{11:160,12:80,13:64,21:80,22:40,23:40},6:{11:192,12:96,13:80,21:96,22:48,23:48},7:{11:224,12:112,13:96,21:112,22:56,23:56},8:{11:256,12:128,13:112,21:128,22:64,23:64},9:{11:288,12:160,13:128,21:144,22:80,23:80},10:{11:320,12:192,13:160,21:160,22:96,23:96},11:{11:352,12:224,13:192,21:176,22:112,23:112},12:{11:384,12:256,13:224,21:192,22:128,23:128},13:{11:416,12:320,13:256,21:224,22:144,23:144},14:{11:448,12:384,13:320,21:256,22:160,23:160}},f.sampling_rate_freq_index={1:{0:44100,1:48e3,2:32e3},2:{0:22050,1:24e3,2:16e3},2.5:{0:11025,1:12e3,2:8e3}},f.samplesInFrameTable=[[0,384,1152,1152],[0,384,1152,576]];class p extends l.AbstractID3Parser{constructor(){super(...arguments),this.frameCount=0,this.syncFrameCount=-1,this.countSkipFrameData=0,this.totalDataLength=0,this.bitrates=[],this.calculateEofDuration=!1,this.buf_frame_header=a.alloc(4),this.syncPeek={buf:a.alloc(1024),len:0}}async postId3v2Parse(){this.metadata.setFormat("lossless",!1);try{let e=!1;for(;!e;)await this.sync(),e=await this.parseCommonMpegHeader()}catch(e){if(!(e instanceof n.EndOfStreamError))throw e;if(u("End-of-stream"),this.calculateEofDuration){const e=this.frameCount*this.samplesPerFrame;this.metadata.setFormat("numberOfSamples",e);const t=e/this.metadata.format.sampleRate;u(`Calculate duration at EOF: ${t} sec.`,t),this.metadata.setFormat("duration",t)}}}finalize(){const e=this.metadata.format,t=this.metadata.native.hasOwnProperty("ID3v1");if(e.duration&&this.tokenizer.fileInfo.size){const r=this.tokenizer.fileInfo.size-this.mpegOffset-(t?128:0);e.codecProfile&&"V"===e.codecProfile[0]&&this.metadata.setFormat("bitrate",8*r/e.duration)}else if(this.tokenizer.fileInfo.size&&"CBR"===e.codecProfile){const r=this.tokenizer.fileInfo.size-this.mpegOffset-(t?128:0),a=Math.round(r/this.frame_size)*this.samplesPerFrame;this.metadata.setFormat("numberOfSamples",a);const i=a/e.sampleRate;u("Calculate CBR duration based on file size: %s",i),this.metadata.setFormat("duration",i)}}async sync(){let e=!1;for(;;){let t=0;if(this.syncPeek.len=await this.tokenizer.peekBuffer(this.syncPeek.buf,{length:1024,mayBeLess:!0}),this.syncPeek.len<=163)throw new n.EndOfStreamError;for(;;){if(e&&!(224&~this.syncPeek.buf[t]))return this.buf_frame_header[0]=f.SyncByte1,this.buf_frame_header[1]=this.syncPeek.buf[t],await this.tokenizer.ignore(t),u(`Sync at offset=${this.tokenizer.position-1}, frameCount=${this.frameCount}`),this.syncFrameCount===this.frameCount&&(u(`Re-synced MPEG stream, frameCount=${this.frameCount}`),this.frameCount=0,this.frame_size=0),void(this.syncFrameCount=this.frameCount);if(e=!1,t=this.syncPeek.buf.indexOf(f.SyncByte1,t),-1===t){if(this.syncPeek.len=2&&0===e.layer?this.parseAdts(e):this.parseAudioFrameHeader(e)}async parseAudioFrameHeader(e){this.metadata.setFormat("numberOfChannels","mono"===e.channelMode?1:2),this.metadata.setFormat("bitrate",e.bitrate),this.frameCount<2e5&&u("offset=%s MP%s bitrate=%s sample-rate=%s",this.tokenizer.position-4,e.layer,e.bitrate,e.samplingRate);const t=e.calcSlotSize();if(null===t)throw new Error("invalid slot_size");const r=e.calcSamplesPerFrame();u(`samples_per_frame=${r}`);const a=r/8*e.bitrate/e.samplingRate+(e.padding?t:0);if(this.frame_size=Math.floor(a),this.audioFrameHeader=e,this.bitrates.push(e.bitrate),1===this.frameCount)return this.offset=4,await this.skipSideInformation(),!1;if(3===this.frameCount){if(this.areAllSame(this.bitrates)){if(this.samplesPerFrame=r,this.metadata.setFormat("codecProfile","CBR"),this.tokenizer.fileInfo.size)return!0}else if(this.metadata.format.duration)return!0;if(!this.options.duration)return!0}return this.options.duration&&4===this.frameCount&&(this.samplesPerFrame=r,this.calculateEofDuration=!0),this.offset=4,e.isProtectedByCRC?(await this.parseCrc(),!1):(await this.skipSideInformation(),!1)}async parseAdts(e){const t=a.alloc(3);await this.tokenizer.readBuffer(t),e.frameLength+=o.getBitAllignedNumber(t,0,0,11),this.totalDataLength+=e.frameLength,this.samplesPerFrame=1024;const r=e.samplingRate/this.samplesPerFrame,i=8*(0===this.frameCount?0:this.totalDataLength/this.frameCount)*r+.5;if(this.metadata.setFormat("bitrate",i),u(`frame-count=${this.frameCount}, size=${e.frameLength} bytes, bit-rate=${i}`),await this.tokenizer.ignore(e.frameLength>7?e.frameLength-7:1),3===this.frameCount){if(this.metadata.setFormat("codecProfile",e.codecProfile),e.mp4ChannelConfig&&this.metadata.setFormat("numberOfChannels",e.mp4ChannelConfig.length),!this.options.duration)return!0;this.calculateEofDuration=!0}return!1}async parseCrc(){return this.crc=await this.tokenizer.readNumber(i.INT16_BE),this.offset+=2,this.skipSideInformation()}async skipSideInformation(){const e=this.audioFrameHeader.calculateSideInfoLength();await this.tokenizer.readToken(new i.Uint8ArrayType(e)),this.offset+=e,await this.readXtraInfoHeader()}async readXtraInfoHeader(){const e=await this.tokenizer.readToken(c.InfoTagHeaderTag);switch(this.offset+=c.InfoTagHeaderTag.len,e){case"Info":return this.metadata.setFormat("codecProfile","CBR"),this.readXingInfoHeader();case"Xing":const e=(t=(await this.readXingInfoHeader()).vbrScale,"V"+Math.floor((100-t)/10));return this.metadata.setFormat("codecProfile",e),null;case"Xtra":break;case"LAME":const r=await this.tokenizer.readToken(c.LameEncoderVersion);if(this.frame_size>=this.offset+c.LameEncoderVersion.len)return this.offset+=c.LameEncoderVersion.len,this.metadata.setFormat("tool","LAME "+r),await this.skipFrameData(this.frame_size-this.offset),null;this.metadata.addWarning("Corrupt LAME header")}var t;const r=this.frame_size-this.offset;return r<0?this.metadata.addWarning("Frame "+this.frameCount+"corrupt: negative frameDataLeft"):await this.skipFrameData(r),null}async readXingInfoHeader(){const e=this.tokenizer.position,t=await(0,c.readXingHeader)(this.tokenizer);if(this.offset+=this.tokenizer.position-e,t.lame&&(this.metadata.setFormat("tool","LAME "+o.stripNulls(t.lame.version)),t.lame.extended&&(this.metadata.setFormat("trackPeakLevel",t.lame.extended.track_peak),t.lame.extended.track_gain&&this.metadata.setFormat("trackGain",t.lame.extended.track_gain.adjustment),t.lame.extended.album_gain&&this.metadata.setFormat("albumGain",t.lame.extended.album_gain.adjustment),this.metadata.setFormat("duration",t.lame.extended.music_length/1e3))),t.streamSize){const e=this.audioFrameHeader.calcDuration(t.numFrames);return this.metadata.setFormat("duration",e),u("Get duration from Xing header: %s",this.metadata.format.duration),t}const r=this.frame_size-this.offset;return await this.skipFrameData(r),t}async skipFrameData(e){if(e<0)throw new Error("frame-data-left cannot be negative");await this.tokenizer.ignore(e),this.countSkipFrameData+=e}areAllSame(e){const t=e[0];return e.every((e=>e===t))}}t.MpegParser=p},6185:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ReplayGain=void 0;const a=r(6378);var i,n;!function(e){e[e.not_set=0]="not_set",e[e.radio=1]="radio",e[e.audiophile=2]="audiophile"}(i||(i={})),function(e){e[e.unspecified=0]="unspecified",e[e.engineer=1]="engineer",e[e.user=2]="user",e[e.automatic=3]="automatic",e[e.rms_average=4]="rms_average"}(n||(n={})),t.ReplayGain={len:2,get:(e,t)=>{const r=a.getBitAllignedNumber(e,t,0,3),i=a.getBitAllignedNumber(e,t,6,1),n=a.getBitAllignedNumber(e,t,7,9)/10;if(r>0)return{type:a.getBitAllignedNumber(e,t,0,3),origin:a.getBitAllignedNumber(e,t,3,3),adjustment:i?-n:n}}}},9128:(e,t,r)=>{"use strict";var a=r(8287).Buffer;Object.defineProperty(t,"__esModule",{value:!0}),t.readXingHeader=t.XingHeaderFlags=t.LameEncoderVersion=t.InfoTagHeaderTag=void 0;const i=r(1028),n=r(6378),s=r(9767);t.InfoTagHeaderTag=new i.StringType(4,"ascii"),t.LameEncoderVersion=new i.StringType(6,"ascii"),t.XingHeaderFlags={len:4,get:(e,t)=>({frames:n.isBitSet(e,t,31),bytes:n.isBitSet(e,t,30),toc:n.isBitSet(e,t,29),vbrScale:n.isBitSet(e,t,28)})},t.readXingHeader=async function(e){const r=await e.readToken(t.XingHeaderFlags),n={};if(r.frames&&(n.numFrames=await e.readToken(i.UINT32_BE)),r.bytes&&(n.streamSize=await e.readToken(i.UINT32_BE)),r.toc&&(n.toc=a.alloc(100),await e.readBuffer(n.toc)),r.vbrScale&&(n.vbrScale=await e.readToken(i.UINT32_BE)),"LAME"===await e.peekToken(new i.StringType(4,"ascii"))&&(await e.ignore(4),n.lame={version:await e.readToken(new i.StringType(5,"ascii"))},n.lame.version.match(/\d+.\d+/g))){const t=n.lame.version.match(/\d+.\d+/g)[0].split(".").map((e=>parseInt(e,10)));t[0]>=3&&t[1]>=90&&(n.lame.extended=await e.readToken(s.ExtendedLameHeader))}return n}},1446:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const a=r(7833),i=r(1028),n=r(7270),s=r(8058),o=r(5056),l=(0,a.default)("music-metadata:parser:musepack");class c extends n.AbstractID3Parser{async postId3v2Parse(){let e;switch(await this.tokenizer.peekToken(new i.StringType(3,"binary"))){case"MP+":l("Musepack stream-version 7"),e=new o.MpcSv7Parser;break;case"MPC":l("Musepack stream-version 8"),e=new s.MpcSv8Parser;break;default:throw new Error("Invalid Musepack signature prefix")}return e.init(this.metadata,this.tokenizer,this.options),e.parse()}}t.default=c},5279:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BitReader=void 0;const a=r(1028);t.BitReader=class{constructor(e){this.tokenizer=e,this.pos=0,this.dword=void 0}async read(e){for(;void 0===this.dword;)this.dword=await this.tokenizer.readToken(a.UINT32_LE);let t=this.dword;return this.pos+=e,this.pos<32?(t>>>=32-this.pos,t&(1<>>32-this.pos),t&(1<0){const t=32-this.pos;this.dword=void 0,e-=t,this.pos=0}const t=e%32,r=(e-t)/32;return await this.tokenizer.ignore(4*r),this.read(t)}}},5056:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MpcSv7Parser=void 0;const a=r(7833),i=r(6373),n=r(9156),s=r(5279),o=r(7086),l=(0,a.default)("music-metadata:parser:musepack");class c extends i.BasicParser{constructor(){super(...arguments),this.audioLength=0}async parse(){const e=await this.tokenizer.readToken(o.Header);if("MP+"!==e.signature)throw new Error("Unexpected magic number");l(`stream-version=${e.streamMajorVersion}.${e.streamMinorVersion}`),this.metadata.setFormat("container","Musepack, SV7"),this.metadata.setFormat("sampleRate",e.sampleFrequency);const t=1152*(e.frameCount-1)+e.lastFrameLength;this.metadata.setFormat("numberOfSamples",t),this.duration=t/e.sampleFrequency,this.metadata.setFormat("duration",this.duration),this.bitreader=new s.BitReader(this.tokenizer),this.metadata.setFormat("numberOfChannels",e.midSideStereo||e.intensityStereo?2:1);const r=await this.bitreader.read(8);return this.metadata.setFormat("codec",(r/100).toFixed(2)),await this.skipAudioData(e.frameCount),l(`End of audio stream, switching to APEv2, offset=${this.tokenizer.position}`),n.APEv2Parser.tryParseApeHeader(this.metadata,this.tokenizer,this.options)}async skipAudioData(e){for(;e-- >0;){const e=await this.bitreader.read(20);this.audioLength+=20+e,await this.bitreader.ignore(e)}const t=await this.bitreader.read(11);this.audioLength+=t,this.metadata.setFormat("bitrate",this.audioLength/this.duration)}}t.MpcSv7Parser=c},7086:(e,t,r)=>{"use strict";var a=r(8287).Buffer;Object.defineProperty(t,"__esModule",{value:!0}),t.Header=void 0;const i=r(1028),n=r(6378);t.Header={len:24,get:(e,t)=>{const r={signature:a.from(e).toString("latin1",t,t+3),streamMinorVersion:n.getBitAllignedNumber(e,t+3,0,4),streamMajorVersion:n.getBitAllignedNumber(e,t+3,4,4),frameCount:i.UINT32_LE.get(e,t+4),maxLevel:i.UINT16_LE.get(e,t+8),sampleFrequency:[44100,48e3,37800,32e3][n.getBitAllignedNumber(e,t+10,0,2)],link:n.getBitAllignedNumber(e,t+10,2,2),profile:n.getBitAllignedNumber(e,t+10,4,4),maxBand:n.getBitAllignedNumber(e,t+11,0,6),intensityStereo:n.isBitSet(e,t+11,6),midSideStereo:n.isBitSet(e,t+11,7),titlePeak:i.UINT16_LE.get(e,t+12),titleGain:i.UINT16_LE.get(e,t+14),albumPeak:i.UINT16_LE.get(e,t+16),albumGain:i.UINT16_LE.get(e,t+18),lastFrameLength:i.UINT32_LE.get(e,t+20)>>>20&2047,trueGapless:n.isBitSet(e,t+23,0)};return r.lastFrameLength=r.trueGapless?i.UINT32_LE.get(e,20)>>>20&2047:0,r}}},8058:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MpcSv8Parser=void 0;const a=r(7833),i=r(6373),n=r(9156),s=r(3232),o=r(1032),l=(0,a.default)("music-metadata:parser:musepack");class c extends i.BasicParser{constructor(){super(...arguments),this.audioLength=0}async parse(){if("MPCK"!==await this.tokenizer.readToken(s.FourCcToken))throw new Error("Invalid Magic number");return this.metadata.setFormat("container","Musepack, SV8"),this.parsePacket()}async parsePacket(){const e=new o.StreamReader(this.tokenizer);for(;;){const t=await e.readPacketHeader();switch(l(`packet-header key=${t.key}, payloadLength=${t.payloadLength}`),t.key){case"SH":const r=await e.readStreamHeader(t.payloadLength);this.metadata.setFormat("numberOfSamples",r.sampleCount),this.metadata.setFormat("sampleRate",r.sampleFrequency),this.metadata.setFormat("duration",r.sampleCount/r.sampleFrequency),this.metadata.setFormat("numberOfChannels",r.channelCount);break;case"AP":this.audioLength+=t.payloadLength,await this.tokenizer.ignore(t.payloadLength);break;case"RG":case"EI":case"SO":case"ST":case"CT":await this.tokenizer.ignore(t.payloadLength);break;case"SE":return this.metadata.setFormat("bitrate",8*this.audioLength/this.metadata.format.duration),n.APEv2Parser.tryParseApeHeader(this.metadata,this.tokenizer,this.options);default:throw new Error(`Unexpected header: ${t.key}`)}}}}t.MpcSv8Parser=c},1032:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StreamReader=void 0;const a=r(1028),i=r(7833),n=r(6378),s=(0,i.default)("music-metadata:parser:musepack:sv8"),o=new a.StringType(2,"binary"),l={len:5,get:(e,t)=>({crc:a.UINT32_LE.get(e,t),streamVersion:a.UINT8.get(e,t+4)})},c={len:2,get:(e,t)=>({sampleFrequency:[44100,48e3,37800,32e3][n.getBitAllignedNumber(e,t,0,3)],maxUsedBands:n.getBitAllignedNumber(e,t,3,5),channelCount:n.getBitAllignedNumber(e,t+1,0,4)+1,msUsed:n.isBitSet(e,t+1,4),audioBlockFrames:n.getBitAllignedNumber(e,t+1,5,3)})};t.StreamReader=class{constructor(e){this.tokenizer=e}async readPacketHeader(){const e=await this.tokenizer.readToken(o),t=await this.readVariableSizeField();return{key:e,payloadLength:t.value-2-t.len}}async readStreamHeader(e){const t={};s(`Reading SH at offset=${this.tokenizer.position}`);const r=await this.tokenizer.readToken(l);e-=l.len,Object.assign(t,r),s(`SH.streamVersion = ${r.streamVersion}`);const a=await this.readVariableSizeField();e-=a.len,t.sampleCount=a.value;const i=await this.readVariableSizeField();e-=i.len,t.beginningOfSilence=i.value;const n=await this.tokenizer.readToken(c);return e-=c.len,Object.assign(t,n),await this.tokenizer.ignore(e),t}async readVariableSizeField(e=1,t=0){let r=await this.tokenizer.readNumber(a.UINT8);return 128&r?(r&=127,r+=t,this.readVariableSizeField(e+1,r<<7)):{len:e,value:t+r}}}},4272:(e,t,r)=>{"use strict";var a=r(8287).Buffer;Object.defineProperty(t,"__esModule",{value:!0}),t.OggParser=t.SegmentTable=void 0;const i=r(1028),n=r(5534),s=r(7833),o=r(6378),l=r(3232),c=r(6373),u=r(2668),d=r(8736),h=r(2724),f=r(4660),p=(0,s.default)("music-metadata:parser:ogg");class m{static sum(e,t,r){let a=0;for(let i=t;i0&&(this.metadata.addWarning("Invalid FourCC ID, maybe last OGG-page is not marked with last-page flag"),this.pageConsumer.flush())}}}}g.Header={len:27,get:(e,t)=>({capturePattern:l.FourCcToken.get(e,t),version:i.UINT8.get(e,t+4),headerType:{continued:o.getBit(e,t+5,0),firstPage:o.getBit(e,t+5,1),lastPage:o.getBit(e,t+5,2)},absoluteGranulePosition:Number(i.UINT64_LE.get(e,t+6)),streamSerialNumber:i.UINT32_LE.get(e,t+14),pageSequenceNo:i.UINT32_LE.get(e,t+18),pageChecksum:i.UINT32_LE.get(e,t+22),page_segments:i.UINT8.get(e,t+26)})},t.OggParser=g},1403:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IdHeader=void 0;const a=r(1028);t.IdHeader=class{constructor(e){if(this.len=e,e<19)throw new Error("ID-header-page 0 should be at least 19 bytes long")}get(e,t){return{magicSignature:new a.StringType(8,"ascii").get(e,t+0),version:e.readUInt8(t+8),channelCount:e.readUInt8(t+9),preSkip:e.readInt16LE(t+10),inputSampleRate:e.readInt32LE(t+12),outputGain:e.readInt16LE(t+16),channelMapping:e.readUInt8(t+18)}}}},8736:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OpusParser=void 0;const a=r(1028),i=r(2668),n=r(1403);class s extends i.VorbisParser{constructor(e,t,r){super(e,t),this.tokenizer=r,this.lastPos=-1}parseFirstPage(e,t){if(this.metadata.setFormat("codec","Opus"),this.idHeader=new n.IdHeader(t.length).get(t,0),"OpusHead"!==this.idHeader.magicSignature)throw new Error("Illegal ogg/Opus magic-signature");this.metadata.setFormat("sampleRate",this.idHeader.inputSampleRate),this.metadata.setFormat("numberOfChannels",this.idHeader.channelCount)}parseFullPage(e){"OpusTags"===new a.StringType(8,"ascii").get(e,0)&&(this.parseUserCommentList(e,8),this.lastPos=this.tokenizer.position-e.length)}calculateDuration(e){if(this.metadata.format.sampleRate&&e.absoluteGranulePosition>=0){const t=e.absoluteGranulePosition-this.idHeader.preSkip;if(this.metadata.setFormat("numberOfSamples",t),this.metadata.setFormat("duration",t/48e3),-1!==this.lastPos&&this.tokenizer.fileInfo.size&&this.metadata.format.duration){const e=this.tokenizer.fileInfo.size-this.lastPos;this.metadata.setFormat("bitrate",8*e/this.metadata.format.duration)}}}}t.OpusParser=s},1319:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Header=void 0;const a=r(1028),i=r(6378);t.Header={len:80,get:(e,t)=>({speex:new a.StringType(8,"ascii").get(e,t+0),version:i.trimRightNull(new a.StringType(20,"ascii").get(e,t+8)),version_id:e.readInt32LE(t+28),header_size:e.readInt32LE(t+32),rate:e.readInt32LE(t+36),mode:e.readInt32LE(t+40),mode_bitstream_version:e.readInt32LE(t+44),nb_channels:e.readInt32LE(t+48),bitrate:e.readInt32LE(t+52),frame_size:e.readInt32LE(t+56),vbr:e.readInt32LE(t+60),frames_per_packet:e.readInt32LE(t+64),extra_headers:e.readInt32LE(t+68),reserved1:e.readInt32LE(t+72),reserved2:e.readInt32LE(t+76)})}},2724:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SpeexParser=void 0;const a=r(7833),i=r(2668),n=r(1319),s=(0,a.default)("music-metadata:parser:ogg:speex");class o extends i.VorbisParser{constructor(e,t,r){super(e,t),this.tokenizer=r}parseFirstPage(e,t){s("First Ogg/Speex page");const r=n.Header.get(t,0);this.metadata.setFormat("codec",`Speex ${r.version}`),this.metadata.setFormat("numberOfChannels",r.nb_channels),this.metadata.setFormat("sampleRate",r.rate),-1!==r.bitrate&&this.metadata.setFormat("bitrate",r.bitrate)}}t.SpeexParser=o},7143:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IdentificationHeader=void 0;const a=r(1028);t.IdentificationHeader={len:42,get:(e,t)=>({id:new a.StringType(7,"ascii").get(e,t),vmaj:e.readUInt8(t+7),vmin:e.readUInt8(t+8),vrev:e.readUInt8(t+9),vmbw:e.readUInt16BE(t+10),vmbh:e.readUInt16BE(t+17),nombr:a.UINT24_BE.get(e,t+37),nqual:e.readUInt8(t+40)})}},4660:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TheoraParser=void 0;const a=r(7833),i=r(7143),n=(0,a.default)("music-metadata:parser:ogg:theora");t.TheoraParser=class{constructor(e,t,r){this.metadata=e,this.tokenizer=r}parsePage(e,t){e.headerType.firstPage&&this.parseFirstPage(e,t)}flush(){n("flush")}calculateDuration(e){n("duration calculation not implemented")}parseFirstPage(e,t){n("First Ogg/Theora page"),this.metadata.setFormat("codec","Theora");const r=i.IdentificationHeader.get(t,0);this.metadata.setFormat("bitrate",r.nombr)}}},431:(e,t,r)=>{"use strict";var a=r(8287).Buffer;Object.defineProperty(t,"__esModule",{value:!0}),t.IdentificationHeader=t.CommonHeader=t.VorbisPictureToken=void 0;const i=r(1028),n=r(2298);class s{static fromBase64(e){return this.fromBuffer(a.from(e,"base64"))}static fromBuffer(e){return new s(e.length).get(e,0)}constructor(e){this.len=e}get(e,t){const r=n.AttachedPictureType[i.UINT32_BE.get(e,t)],s=i.UINT32_BE.get(e,t+=4),o=e.toString("utf-8",t+=4,t+s),l=i.UINT32_BE.get(e,t+=s),c=e.toString("utf-8",t+=4,t+l),u=i.UINT32_BE.get(e,t+=l),d=i.UINT32_BE.get(e,t+=4),h=i.UINT32_BE.get(e,t+=4),f=i.UINT32_BE.get(e,t+=4),p=i.UINT32_BE.get(e,t+=4);return{type:r,format:o,description:c,width:u,height:d,colour_depth:h,indexed_color:f,data:a.from(e.slice(t+=4,t+p))}}}t.VorbisPictureToken=s,t.CommonHeader={len:7,get:(e,t)=>({packetType:e.readUInt8(t),vorbis:new i.StringType(6,"ascii").get(e,t+1)})},t.IdentificationHeader={len:23,get:(e,t)=>{const r=new DataView(e.buffer,e.byteOffset);return{version:r.getUint32(t+0,!0),channelMode:r.getUint8(t+4),sampleRate:r.getUint32(t+5,!0),bitrateMax:r.getUint32(t+9,!0),bitrateNominal:r.getUint32(t+13,!0),bitrateMin:r.getUint32(t+17,!0)}}}},668:(e,t,r)=>{"use strict";var a=r(8287).Buffer;Object.defineProperty(t,"__esModule",{value:!0}),t.VorbisDecoder=void 0;const i=r(1028);t.VorbisDecoder=class{constructor(e,t){this.data=e,this.offset=t}readInt32(){const e=i.UINT32_LE.get(this.data,this.offset);return this.offset+=4,e}readStringUtf8(){const e=this.readInt32(),t=a.from(this.data).toString("utf-8",this.offset,this.offset+e);return this.offset+=e,t}parseUserComment(){const e=this.offset,t=this.readStringUtf8(),r=t.indexOf("=");return{key:t.slice(0,r).toUpperCase(),value:t.slice(r+1),len:this.offset-e}}}},2668:(e,t,r)=>{"use strict";var a=r(8287).Buffer;Object.defineProperty(t,"__esModule",{value:!0}),t.VorbisParser=void 0;const i=r(1028),n=r(7833),s=r(668),o=r(431),l=(0,n.default)("music-metadata:parser:ogg:vorbis1");t.VorbisParser=class{constructor(e,t){this.metadata=e,this.options=t,this.pageSegments=[]}parsePage(e,t){if(e.headerType.firstPage)this.parseFirstPage(e,t);else{if(e.headerType.continued){if(0===this.pageSegments.length)throw new Error("Cannot continue on previous page");this.pageSegments.push(t)}if(e.headerType.lastPage||!e.headerType.continued){if(this.pageSegments.length>0){const e=a.concat(this.pageSegments);this.parseFullPage(e)}this.pageSegments=e.headerType.lastPage?[]:[t]}}e.headerType.lastPage&&this.calculateDuration(e)}flush(){this.parseFullPage(a.concat(this.pageSegments))}parseUserComment(e,t){const r=new s.VorbisDecoder(e,t).parseUserComment();return this.addTag(r.key,r.value),r.len}addTag(e,t){if("METADATA_BLOCK_PICTURE"===e&&"string"==typeof t){if(this.options.skipCovers)return void l("Ignore picture");t=o.VorbisPictureToken.fromBase64(t),l(`Push picture: id=${e}, format=${t.format}`)}else l(`Push tag: id=${e}, value=${t}`);this.metadata.addTag("vorbis",e,t)}calculateDuration(e){this.metadata.format.sampleRate&&e.absoluteGranulePosition>=0&&(this.metadata.setFormat("numberOfSamples",e.absoluteGranulePosition),this.metadata.setFormat("duration",this.metadata.format.numberOfSamples/this.metadata.format.sampleRate))}parseFirstPage(e,t){this.metadata.setFormat("codec","Vorbis I"),l("Parse first page");const r=o.CommonHeader.get(t,0);if("vorbis"!==r.vorbis)throw new Error("Metadata does not look like Vorbis");if(1!==r.packetType)throw new Error("First Ogg page should be type 1: the identification header");{const e=o.IdentificationHeader.get(t,o.CommonHeader.len);this.metadata.setFormat("sampleRate",e.sampleRate),this.metadata.setFormat("bitrate",e.bitrateNominal),this.metadata.setFormat("numberOfChannels",e.channelMode),l("sample-rate=%s[hz], bitrate=%s[b/s], channel-mode=%s",e.sampleRate,e.bitrateNominal,e.channelMode)}}parseFullPage(e){const t=o.CommonHeader.get(e,0);if(l("Parse full page: type=%s, byteLength=%s",t.packetType,e.byteLength),3===t.packetType)return this.parseUserCommentList(e,o.CommonHeader.len)}parseUserCommentList(e,t){const r=i.UINT32_LE.get(e,t);t+=4,t+=r;let a=i.UINT32_LE.get(e,t);for(t+=4;a-- >0;)t+=this.parseUserComment(e,t)}}},7806:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.VorbisTagMapper=void 0;const a=r(8872),i={TITLE:"title",ARTIST:"artist",ARTISTS:"artists",ALBUMARTIST:"albumartist","ALBUM ARTIST":"albumartist",ALBUM:"album",DATE:"date",ORIGINALDATE:"originaldate",ORIGINALYEAR:"originalyear",COMMENT:"comment",TRACKNUMBER:"track",DISCNUMBER:"disk",GENRE:"genre",METADATA_BLOCK_PICTURE:"picture",COMPOSER:"composer",LYRICS:"lyrics",ALBUMSORT:"albumsort",TITLESORT:"titlesort",WORK:"work",ARTISTSORT:"artistsort",ALBUMARTISTSORT:"albumartistsort",COMPOSERSORT:"composersort",LYRICIST:"lyricist",WRITER:"writer",CONDUCTOR:"conductor",REMIXER:"remixer",ARRANGER:"arranger",ENGINEER:"engineer",PRODUCER:"producer",DJMIXER:"djmixer",MIXER:"mixer",LABEL:"label",GROUPING:"grouping",SUBTITLE:"subtitle",DISCSUBTITLE:"discsubtitle",TRACKTOTAL:"totaltracks",DISCTOTAL:"totaldiscs",COMPILATION:"compilation",RATING:"rating",BPM:"bpm",KEY:"key",MOOD:"mood",MEDIA:"media",CATALOGNUMBER:"catalognumber",RELEASESTATUS:"releasestatus",RELEASETYPE:"releasetype",RELEASECOUNTRY:"releasecountry",SCRIPT:"script",LANGUAGE:"language",COPYRIGHT:"copyright",LICENSE:"license",ENCODEDBY:"encodedby",ENCODERSETTINGS:"encodersettings",BARCODE:"barcode",ISRC:"isrc",ASIN:"asin",MUSICBRAINZ_TRACKID:"musicbrainz_recordingid",MUSICBRAINZ_RELEASETRACKID:"musicbrainz_trackid",MUSICBRAINZ_ALBUMID:"musicbrainz_albumid",MUSICBRAINZ_ARTISTID:"musicbrainz_artistid",MUSICBRAINZ_ALBUMARTISTID:"musicbrainz_albumartistid",MUSICBRAINZ_RELEASEGROUPID:"musicbrainz_releasegroupid",MUSICBRAINZ_WORKID:"musicbrainz_workid",MUSICBRAINZ_TRMID:"musicbrainz_trmid",MUSICBRAINZ_DISCID:"musicbrainz_discid",ACOUSTID_ID:"acoustid_id",ACOUSTID_ID_FINGERPRINT:"acoustid_fingerprint",MUSICIP_PUID:"musicip_puid",WEBSITE:"website",NOTES:"notes",TOTALTRACKS:"totaltracks",TOTALDISCS:"totaldiscs",DISCOGS_ARTIST_ID:"discogs_artist_id",DISCOGS_ARTISTS:"artists",DISCOGS_ARTIST_NAME:"artists",DISCOGS_ALBUM_ARTISTS:"albumartist",DISCOGS_CATALOG:"catalognumber",DISCOGS_COUNTRY:"releasecountry",DISCOGS_DATE:"originaldate",DISCOGS_LABEL:"label",DISCOGS_LABEL_ID:"discogs_label_id",DISCOGS_MASTER_RELEASE_ID:"discogs_master_release_id",DISCOGS_RATING:"discogs_rating",DISCOGS_RELEASED:"date",DISCOGS_RELEASE_ID:"discogs_release_id",DISCOGS_VOTES:"discogs_votes",CATALOGID:"catalognumber",STYLE:"genre",REPLAYGAIN_TRACK_GAIN:"replaygain_track_gain",REPLAYGAIN_TRACK_PEAK:"replaygain_track_peak",REPLAYGAIN_ALBUM_GAIN:"replaygain_album_gain",REPLAYGAIN_ALBUM_PEAK:"replaygain_album_peak",REPLAYGAIN_MINMAX:"replaygain_track_minmax",REPLAYGAIN_ALBUM_MINMAX:"replaygain_album_minmax",REPLAYGAIN_UNDO:"replaygain_undo"};class n extends a.CommonTagMapper{static toRating(e,t,r){return{source:e?e.toLowerCase():e,rating:parseFloat(t)/r*a.CommonTagMapper.maxRatingScore}}constructor(){super(["vorbis"],i)}postMap(e){if("RATING"===e.id)e.value=n.toRating(void 0,e.value,100);else if(0===e.id.indexOf("RATING:")){const t=e.id.split(":");e.value=n.toRating(t[1],e.value,1),e.id=t[0]}}}t.VorbisTagMapper=n},9090:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ListInfoTagValue=t.Header=void 0;const a=r(1028);t.Header={len:8,get:(e,t)=>({chunkID:e.toString("binary",t,t+4),chunkSize:a.UINT32_LE.get(e,4)})},t.ListInfoTagValue=class{constructor(e){this.tagHeader=e,this.len=e.chunkSize,this.len+=1&this.len}get(e,t){return new a.StringType(this.tagHeader.chunkSize,"ascii").get(e,t)}}},609:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RiffInfoTagMapper=t.riffInfoTagMap=void 0;const a=r(8872);t.riffInfoTagMap={IART:"artist",ICRD:"date",INAM:"title",TITL:"title",IPRD:"album",ITRK:"track",IPRT:"track",COMM:"comment",ICMT:"comment",ICNT:"releasecountry",GNRE:"genre",IWRI:"writer",RATE:"rating",YEAR:"year",ISFT:"encodedby",CODE:"encodedby",TURL:"website",IGNR:"genre",IENG:"engineer",ITCH:"technician",IMED:"media",IRPD:"album"};class i extends a.CommonTagMapper{constructor(){super(["exif"],t.riffInfoTagMap)}}t.RiffInfoTagMapper=i},7338:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TrackType=void 0;var a=r(14);Object.defineProperty(t,"TrackType",{enumerable:!0,get:function(){return a.TrackType}})},6549:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BroadcastAudioExtensionChunk=void 0;const a=r(1028),i=r(6378);t.BroadcastAudioExtensionChunk={len:420,get:(e,t)=>({description:(0,i.stripNulls)(new a.StringType(256,"ascii").get(e,t)).trim(),originator:(0,i.stripNulls)(new a.StringType(32,"ascii").get(e,t+256)).trim(),originatorReference:(0,i.stripNulls)(new a.StringType(32,"ascii").get(e,t+288)).trim(),originationDate:(0,i.stripNulls)(new a.StringType(10,"ascii").get(e,t+320)).trim(),originationTime:(0,i.stripNulls)(new a.StringType(8,"ascii").get(e,t+330)).trim(),timeReferenceLow:a.UINT32_LE.get(e,t+338),timeReferenceHigh:a.UINT32_LE.get(e,t+342),version:a.UINT16_LE.get(e,t+346),umid:new a.Uint8ArrayType(64).get(e,t+348),loudnessValue:a.UINT16_LE.get(e,t+412),maxTruePeakLevel:a.UINT16_LE.get(e,t+414),maxMomentaryLoudness:a.UINT16_LE.get(e,t+416),maxShortTermLoudness:a.UINT16_LE.get(e,t+418)})}},9019:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.FactChunk=t.Format=t.WaveFormat=void 0,(r=t.WaveFormat||(t.WaveFormat={}))[r.PCM=1]="PCM",r[r.ADPCM=2]="ADPCM",r[r.IEEE_FLOAT=3]="IEEE_FLOAT",r[r.MPEG_ADTS_AAC=5632]="MPEG_ADTS_AAC",r[r.MPEG_LOAS=5634]="MPEG_LOAS",r[r.RAW_AAC1=255]="RAW_AAC1",r[r.DOLBY_AC3_SPDIF=146]="DOLBY_AC3_SPDIF",r[r.DVM=8192]="DVM",r[r.RAW_SPORT=576]="RAW_SPORT",r[r.ESST_AC3=577]="ESST_AC3",r[r.DRM=9]="DRM",r[r.DTS2=8193]="DTS2",r[r.MPEG=80]="MPEG",t.Format=class{constructor(e){if(e.chunkSize<16)throw new Error("Invalid chunk size");this.len=e.chunkSize}get(e,t){return{wFormatTag:e.readUInt16LE(t),nChannels:e.readUInt16LE(t+2),nSamplesPerSec:e.readUInt32LE(t+4),nAvgBytesPerSec:e.readUInt32LE(t+8),nBlockAlign:e.readUInt16LE(t+12),wBitsPerSample:e.readUInt16LE(t+14)}}},t.FactChunk=class{constructor(e){if(e.chunkSize<4)throw new Error("Invalid fact chunk size.");this.len=e.chunkSize}get(e,t){return{dwSampleLength:e.readUInt32LE(t)}}}},6879:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WaveParser=void 0;const a=r(5534),i=r(1028),n=r(7833),s=r(9090),o=r(9019),l=r(8344),c=r(6378),u=r(3232),d=r(6373),h=r(6549),f=(0,n.default)("music-metadata:parser:RIFF");class p extends d.BasicParser{async parse(){const e=await this.tokenizer.readToken(s.Header);if(f(`pos=${this.tokenizer.position}, parse: chunkID=${e.chunkID}`),"RIFF"===e.chunkID)return this.parseRiffChunk(e.chunkSize).catch((e=>{if(!(e instanceof a.EndOfStreamError))throw e}))}async parseRiffChunk(e){const t=await this.tokenizer.readToken(u.FourCcToken);if(this.metadata.setFormat("container",t),"WAVE"===t)return this.readWaveChunk(e-u.FourCcToken.len);throw new Error(`Unsupported RIFF format: RIFF/${t}`)}async readWaveChunk(e){for(;e>=s.Header.len;){const t=await this.tokenizer.readToken(s.Header);switch(e-=s.Header.len+t.chunkSize,t.chunkSize>e&&this.metadata.addWarning("Data chunk size exceeds file size"),this.header=t,f(`pos=${this.tokenizer.position}, readChunk: chunkID=RIFF/WAVE/${t.chunkID}`),t.chunkID){case"LIST":await this.parseListTag(t);break;case"fact":this.metadata.setFormat("lossless",!1),this.fact=await this.tokenizer.readToken(new o.FactChunk(t));break;case"fmt ":const e=await this.tokenizer.readToken(new o.Format(t));let r=o.WaveFormat[e.wFormatTag];r||(f("WAVE/non-PCM format="+e.wFormatTag),r="non-PCM ("+e.wFormatTag+")"),this.metadata.setFormat("codec",r),this.metadata.setFormat("bitsPerSample",e.wBitsPerSample),this.metadata.setFormat("sampleRate",e.nSamplesPerSec),this.metadata.setFormat("numberOfChannels",e.nChannels),this.metadata.setFormat("bitrate",e.nBlockAlign*e.nSamplesPerSec*8),this.blockAlign=e.nBlockAlign;break;case"id3 ":case"ID3 ":const n=await this.tokenizer.readToken(new i.Uint8ArrayType(t.chunkSize)),s=a.fromBuffer(n);await(new l.ID3v2Parser).parse(this.metadata,s,this.options);break;case"data":!1!==this.metadata.format.lossless&&this.metadata.setFormat("lossless",!0);let c=t.chunkSize;if(this.tokenizer.fileInfo.size){const e=this.tokenizer.fileInfo.size-this.tokenizer.position;e{this.metadata.addTag("exif","bext."+e,d[e])}));const p=t.chunkSize-h.BroadcastAudioExtensionChunk.len;await this.tokenizer.ignore(p);break;case"\0\0\0\0":f(`Ignore padding chunk: RIFF/${t.chunkID} of ${t.chunkSize} bytes`),this.metadata.addWarning("Ignore chunk: RIFF/"+t.chunkID),await this.tokenizer.ignore(t.chunkSize);break;default:f(`Ignore chunk: RIFF/${t.chunkID} of ${t.chunkSize} bytes`),this.metadata.addWarning("Ignore chunk: RIFF/"+t.chunkID),await this.tokenizer.ignore(t.chunkSize)}this.header.chunkSize%2==1&&(f("Read odd padding byte"),await this.tokenizer.ignore(1))}}async parseListTag(e){const t=await this.tokenizer.readToken(new i.StringType(4,"binary"));return f("pos=%s, parseListTag: chunkID=RIFF/WAVE/LIST/%s",this.tokenizer.position,t),"INFO"===t?this.parseRiffInfoTags(e.chunkSize-4):(this.metadata.addWarning("Ignore chunk: RIFF/WAVE/LIST/"+t),f("Ignoring chunkID=RIFF/WAVE/LIST/"+t),this.tokenizer.ignore(e.chunkSize-4).then())}async parseRiffInfoTags(e){for(;e>=8;){const t=await this.tokenizer.readToken(s.Header),r=new s.ListInfoTagValue(t),a=await this.tokenizer.readToken(r);this.addTag(t.chunkID,c.stripNulls(a)),e-=8+r.len}if(0!==e)throw Error("Illegal remaining size: "+e)}addTag(e,t){this.metadata.addTag("exif",e,t)}}t.WaveParser=p},9400:(e,t,r)=>{"use strict";var a=r(8287).Buffer;Object.defineProperty(t,"__esModule",{value:!0}),t.WavPackParser=void 0;const i=r(1028),n=r(9156),s=r(3232),o=r(6373),l=r(3674),c=(0,r(7833).default)("music-metadata:parser:WavPack");class u extends o.BasicParser{async parse(){return this.audioDataSize=0,await this.parseWavPackBlocks(),n.APEv2Parser.tryParseApeHeader(this.metadata,this.tokenizer,this.options)}async parseWavPackBlocks(){do{if("wvpk"!==await this.tokenizer.peekToken(s.FourCcToken))break;const e=await this.tokenizer.readToken(l.WavPack.BlockHeaderToken);if("wvpk"!==e.BlockID)throw new Error("Invalid WavPack Block-ID");c(`WavPack header blockIndex=${e.blockIndex}, len=${l.WavPack.BlockHeaderToken.len}`),0!==e.blockIndex||this.metadata.format.container||(this.metadata.setFormat("container","WavPack"),this.metadata.setFormat("lossless",!e.flags.isHybrid),this.metadata.setFormat("bitsPerSample",e.flags.bitsPerSample),e.flags.isDSD||(this.metadata.setFormat("sampleRate",e.flags.samplingRate),this.metadata.setFormat("duration",e.totalSamples/e.flags.samplingRate)),this.metadata.setFormat("numberOfChannels",e.flags.isMono?1:2),this.metadata.setFormat("numberOfSamples",e.totalSamples),this.metadata.setFormat("codec",e.flags.isDSD?"DSD":"PCM"));const t=e.blockSize-(l.WavPack.BlockHeaderToken.len-8);await(0===e.blockIndex?this.parseMetadataSubBlock(e,t):this.tokenizer.ignore(t)),e.blockSamples>0&&(this.audioDataSize+=e.blockSize)}while(!this.tokenizer.fileInfo.size||this.tokenizer.fileInfo.size-this.tokenizer.position>=l.WavPack.BlockHeaderToken.len);this.metadata.setFormat("bitrate",8*this.audioDataSize/this.metadata.format.duration)}async parseMetadataSubBlock(e,t){for(;t>l.WavPack.MetadataIdToken.len;){const r=await this.tokenizer.readToken(l.WavPack.MetadataIdToken),n=await this.tokenizer.readNumber(r.largeBlock?i.UINT24_LE:i.UINT8),s=a.alloc(2*n-(r.isOddSize?1:0));switch(await this.tokenizer.readBuffer(s),c(`Metadata Sub-Blocks functionId=0x${r.functionId.toString(16)}, id.largeBlock=${r.largeBlock},data-size=${s.length}`),r.functionId){case 0:break;case 14:c("ID_DSD_BLOCK");const t=1<{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WavPack=void 0;const a=r(1028),i=r(3232),n=[6e3,8e3,9600,11025,12e3,16e3,22050,24e3,32e3,44100,48e3,64e3,88200,96e3,192e3,-1];class s{static isBitSet(e,t){return 1===s.getBitAllignedNumber(e,t,1)}static getBitAllignedNumber(e,t,r){return e>>>t&4294967295>>>32-r}}s.BlockHeaderToken={len:32,get:(e,t)=>{const r=a.UINT32_LE.get(e,t+24),o={BlockID:i.FourCcToken.get(e,t),blockSize:a.UINT32_LE.get(e,t+4),version:a.UINT16_LE.get(e,t+8),totalSamples:a.UINT32_LE.get(e,t+12),blockIndex:a.UINT32_LE.get(e,t+16),blockSamples:a.UINT32_LE.get(e,t+20),flags:{bitsPerSample:8*(1+s.getBitAllignedNumber(r,0,2)),isMono:s.isBitSet(r,2),isHybrid:s.isBitSet(r,3),isJointStereo:s.isBitSet(r,4),crossChannel:s.isBitSet(r,5),hybridNoiseShaping:s.isBitSet(r,6),floatingPoint:s.isBitSet(r,7),samplingRate:n[s.getBitAllignedNumber(r,23,4)],isDSD:s.isBitSet(r,31)},crc:new a.Uint8ArrayType(4).get(e,t+28)};return o.flags.isDSD&&(o.totalSamples*=8),o}},s.MetadataIdToken={len:1,get:(e,t)=>({functionId:s.getBitAllignedNumber(e[t],0,6),isOptional:s.isBitSet(e[t],5),isOddSize:s.isBitSet(e[t],6),largeBlock:s.isBitSet(e[t],7)})},t.WavPack=s},8052:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Deferred=void 0,t.Deferred=class{constructor(){this.resolve=()=>null,this.reject=()=>null,this.promise=new Promise(((e,t)=>{this.reject=t,this.resolve=e}))}}},5373:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EndOfStreamError=t.defaultMessages=void 0,t.defaultMessages="End-Of-Stream";class r extends Error{constructor(){super(t.defaultMessages)}}t.EndOfStreamError=r},9228:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StreamReader=t.EndOfStreamError=void 0;const a=r(5373),i=r(8052);var n=r(5373);Object.defineProperty(t,"EndOfStreamError",{enumerable:!0,get:function(){return n.EndOfStreamError}}),t.StreamReader=class{constructor(e){if(this.s=e,this.deferred=null,this.endOfStream=!1,this.peekQueue=[],!e.read||!e.once)throw new Error("Expected an instance of stream.Readable");this.s.once("end",(()=>this.reject(new a.EndOfStreamError))),this.s.once("error",(e=>this.reject(e))),this.s.once("close",(()=>this.reject(new Error("Stream closed"))))}async peek(e,t,r){const a=await this.read(e,t,r);return this.peekQueue.push(e.subarray(t,t+a)),a}async read(e,t,r){if(0===r)return 0;if(0===this.peekQueue.length&&this.endOfStream)throw new a.EndOfStreamError;let i=r,n=0;for(;this.peekQueue.length>0&&i>0;){const r=this.peekQueue.pop();if(!r)throw new Error("peekData should be defined");const a=Math.min(r.length,i);e.set(r.subarray(0,a),t+n),n+=a,i-=a,a0&&!this.endOfStream;){const r=Math.min(i,1048576),a=await this.readFromStream(e,t+n,r);if(n+=a,a{this.readDeferred(a)})),a.deferred.promise}}readDeferred(e){const t=this.s.read(e.length);t?(e.buffer.set(t,e.offset),e.deferred.resolve(t.length),this.deferred=null):this.s.once("readable",(()=>{this.readDeferred(e)}))}reject(e){this.endOfStream=!0,this.deferred&&(this.deferred.reject(e),this.deferred=null)}}},4263:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StreamReader=t.EndOfStreamError=void 0;var a=r(5373);Object.defineProperty(t,"EndOfStreamError",{enumerable:!0,get:function(){return a.EndOfStreamError}});var i=r(9228);Object.defineProperty(t,"StreamReader",{enumerable:!0,get:function(){return i.StreamReader}})},9838:(e,t,r)=>{"use strict";var a=r(8287).Buffer;Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractTokenizer=void 0;const i=r(4263);t.AbstractTokenizer=class{constructor(e){this.position=0,this.numBuffer=new Uint8Array(8),this.fileInfo=e||{}}async readToken(e,t=this.position){const r=a.alloc(e.len);if(await this.readBuffer(r,{position:t})t)return this.position+=t,t}return this.position+=e,e}async close(){}normalizeOptions(e,t){if(t&&void 0!==t.position&&t.position{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BufferTokenizer=void 0;const a=r(4263),i=r(9838);class n extends i.AbstractTokenizer{constructor(e,t){super(t),this.uint8Array=e,this.fileInfo.size=this.fileInfo.size?this.fileInfo.size:e.length}async readBuffer(e,t){if(t&&t.position){if(t.position{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ReadStreamTokenizer=void 0;const a=r(9838),i=r(4263);class n extends a.AbstractTokenizer{constructor(e,t){super(t),this.streamReader=new i.StreamReader(e)}async getFileInfo(){return this.fileInfo}async readBuffer(e,t){const r=this.normalizeOptions(e,t),a=r.position-this.position;if(a>0)return await this.ignore(a),this.readBuffer(e,t);if(a<0)throw new Error("`options.position` must be equal or greater than `tokenizer.position`");if(0===r.length)return 0;const n=await this.streamReader.read(e,r.offset,r.length);if(this.position+=n,(!t||!t.mayBeLess)&&n0){const i=new Uint8Array(r.length+t);return a=await this.peekBuffer(i,{mayBeLess:r.mayBeLess}),e.set(i.subarray(t),r.offset),a-t}if(t<0)throw new Error("Cannot peek from a negative offset in a stream")}if(r.length>0){try{a=await this.streamReader.peek(e,r.offset,r.length)}catch(e){if(t&&t.mayBeLess&&e instanceof i.EndOfStreamError)return 0;throw e}if(!r.mayBeLess&&a{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.fromBuffer=t.fromStream=t.EndOfStreamError=void 0;const a=r(6132),i=r(906);var n=r(4263);Object.defineProperty(t,"EndOfStreamError",{enumerable:!0,get:function(){return n.EndOfStreamError}}),t.fromStream=function(e,t){return t=t||{},new a.ReadStreamTokenizer(e,t)},t.fromBuffer=function(e,t){return new i.BufferTokenizer(e,t)}},1028:(e,t,r)=>{"use strict";var a=r(8287).Buffer;Object.defineProperty(t,"__esModule",{value:!0}),t.AnsiStringType=t.StringType=t.BufferType=t.Uint8ArrayType=t.IgnoreType=t.Float80_LE=t.Float80_BE=t.Float64_LE=t.Float64_BE=t.Float32_LE=t.Float32_BE=t.Float16_LE=t.Float16_BE=t.INT64_BE=t.UINT64_BE=t.INT64_LE=t.UINT64_LE=t.INT32_LE=t.INT32_BE=t.INT24_BE=t.INT24_LE=t.INT16_LE=t.INT16_BE=t.INT8=t.UINT32_BE=t.UINT32_LE=t.UINT24_BE=t.UINT24_LE=t.UINT16_BE=t.UINT16_LE=t.UINT8=void 0;const i=r(251);function n(e){return new DataView(e.buffer,e.byteOffset)}t.UINT8={len:1,get:(e,t)=>n(e).getUint8(t),put:(e,t,r)=>(n(e).setUint8(t,r),t+1)},t.UINT16_LE={len:2,get:(e,t)=>n(e).getUint16(t,!0),put:(e,t,r)=>(n(e).setUint16(t,r,!0),t+2)},t.UINT16_BE={len:2,get:(e,t)=>n(e).getUint16(t),put:(e,t,r)=>(n(e).setUint16(t,r),t+2)},t.UINT24_LE={len:3,get(e,t){const r=n(e);return r.getUint8(t)+(r.getUint16(t+1,!0)<<8)},put(e,t,r){const a=n(e);return a.setUint8(t,255&r),a.setUint16(t+1,r>>8,!0),t+3}},t.UINT24_BE={len:3,get(e,t){const r=n(e);return(r.getUint16(t)<<8)+r.getUint8(t+2)},put(e,t,r){const a=n(e);return a.setUint16(t,r>>8),a.setUint8(t+2,255&r),t+3}},t.UINT32_LE={len:4,get:(e,t)=>n(e).getUint32(t,!0),put:(e,t,r)=>(n(e).setUint32(t,r,!0),t+4)},t.UINT32_BE={len:4,get:(e,t)=>n(e).getUint32(t),put:(e,t,r)=>(n(e).setUint32(t,r),t+4)},t.INT8={len:1,get:(e,t)=>n(e).getInt8(t),put:(e,t,r)=>(n(e).setInt8(t,r),t+1)},t.INT16_BE={len:2,get:(e,t)=>n(e).getInt16(t),put:(e,t,r)=>(n(e).setInt16(t,r),t+2)},t.INT16_LE={len:2,get:(e,t)=>n(e).getInt16(t,!0),put:(e,t,r)=>(n(e).setInt16(t,r,!0),t+2)},t.INT24_LE={len:3,get(e,r){const a=t.UINT24_LE.get(e,r);return a>8388607?a-16777216:a},put(e,t,r){const a=n(e);return a.setUint8(t,255&r),a.setUint16(t+1,r>>8,!0),t+3}},t.INT24_BE={len:3,get(e,r){const a=t.UINT24_BE.get(e,r);return a>8388607?a-16777216:a},put(e,t,r){const a=n(e);return a.setUint16(t,r>>8),a.setUint8(t+2,255&r),t+3}},t.INT32_BE={len:4,get:(e,t)=>n(e).getInt32(t),put:(e,t,r)=>(n(e).setInt32(t,r),t+4)},t.INT32_LE={len:4,get:(e,t)=>n(e).getInt32(t,!0),put:(e,t,r)=>(n(e).setInt32(t,r,!0),t+4)},t.UINT64_LE={len:8,get:(e,t)=>n(e).getBigUint64(t,!0),put:(e,t,r)=>(n(e).setBigUint64(t,r,!0),t+8)},t.INT64_LE={len:8,get:(e,t)=>n(e).getBigInt64(t,!0),put:(e,t,r)=>(n(e).setBigInt64(t,r,!0),t+8)},t.UINT64_BE={len:8,get:(e,t)=>n(e).getBigUint64(t),put:(e,t,r)=>(n(e).setBigUint64(t,r),t+8)},t.INT64_BE={len:8,get:(e,t)=>n(e).getBigInt64(t),put:(e,t,r)=>(n(e).setBigInt64(t,r),t+8)},t.Float16_BE={len:2,get(e,t){return i.read(e,t,!1,10,this.len)},put(e,t,r){return i.write(e,r,t,!1,10,this.len),t+this.len}},t.Float16_LE={len:2,get(e,t){return i.read(e,t,!0,10,this.len)},put(e,t,r){return i.write(e,r,t,!0,10,this.len),t+this.len}},t.Float32_BE={len:4,get:(e,t)=>n(e).getFloat32(t),put:(e,t,r)=>(n(e).setFloat32(t,r),t+4)},t.Float32_LE={len:4,get:(e,t)=>n(e).getFloat32(t,!0),put:(e,t,r)=>(n(e).setFloat32(t,r,!0),t+4)},t.Float64_BE={len:8,get:(e,t)=>n(e).getFloat64(t),put:(e,t,r)=>(n(e).setFloat64(t,r),t+8)},t.Float64_LE={len:8,get:(e,t)=>n(e).getFloat64(t,!0),put:(e,t,r)=>(n(e).setFloat64(t,r,!0),t+8)},t.Float80_BE={len:10,get(e,t){return i.read(e,t,!1,63,this.len)},put(e,t,r){return i.write(e,r,t,!1,63,this.len),t+this.len}},t.Float80_LE={len:10,get(e,t){return i.read(e,t,!0,63,this.len)},put(e,t,r){return i.write(e,r,t,!0,63,this.len),t+this.len}},t.IgnoreType=class{constructor(e){this.len=e}get(e,t){}},t.Uint8ArrayType=class{constructor(e){this.len=e}get(e,t){return e.subarray(t,t+this.len)}},t.BufferType=class{constructor(e){this.len=e}get(e,t){return a.from(e.subarray(t,t+this.len))}},t.StringType=class{constructor(e,t){this.len=e,this.encoding=t}get(e,t){return a.from(e).toString(this.encoding,t,t+this.len)}};class s{constructor(e){this.len=e}static decode(e,t,r){let a="";for(let i=t;i>10),56320+(1023&e)))}static singleByteDecoder(e){if(s.inRange(e,0,127))return e;const t=s.windows1252[e-128];if(null===t)throw Error("invaliding encoding");return t}get(e,t=0){return s.decode(e,t,t+this.len)}}t.AnsiStringType=s,s.windows1252=[8364,129,8218,402,8222,8230,8224,8225,710,8240,352,8249,338,141,381,143,144,8216,8217,8220,8221,8226,8211,8212,732,8482,353,8250,339,157,382,376,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]},4596:function(e){e.exports=function(e){function t(a){if(r[a])return r[a].exports;var i=r[a]={i:a,l:!1,exports:{}};return e[a].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var r={};return t.m=e,t.c=r,t.i=function(e){return e},t.d=function(e,r,a){t.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:a})},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=1)}([function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,r){"use strict";(function(e){var r,a,i,n,s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};n=function(){return function(e){function t(a){if(r[a])return r[a].exports;var i=r[a]={i:a,l:!1,exports:{}};return e[a].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var r={};return t.m=e,t.c=r,t.i=function(e){return e},t.d=function(e,r,a){t.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:a})},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=0)}([function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0});var a="function"==typeof Symbol&&"symbol"===s(Symbol.iterator)?function(e){return void 0===e?"undefined":s(e)}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":void 0===e?"undefined":s(e)},i=Object.assign||function(e){for(var t=1;t'+a+"",v.onclick=function(){return y(T,p)},v.listener=function(e){(m(e)||g(e))&&w()},b(v,p),n&&n<1&&(n=1),!l&&n&&u(n).then((function(){return y(T,p)}))},k=t.force=function(e,t){var r=e.type,a=void 0===r?5:r,i=e.text,n=e.buttonText,s=void 0===n?"OK":n,l=e.callback,c=e.position,u=void 0===c?o.positions.force||u.top:c;d(),w();var p=document.createElement("div"),g=h();p.id=g;var _=document.createElement("div");_.classList.add(o.classes.textbox),_.classList.add(o.classes.backgroundInfo),_.innerHTML='
    '+i+"
    ";var k=document.createElement("div");k.classList.add(o.classes.button),k.classList.add(f[a]),k.innerHTML=s,k.onclick=function(){y(g,u),T(),l?l():t&&t()},p.appendChild(_),p.appendChild(k),p.listener=function(e){m(e)&&k.click()},b(p,u),v()},E=t.confirm=function(e,t,r){var a=e.text,i=e.submitText,n=void 0===i?"Yes":i,s=e.cancelText,l=void 0===s?"Cancel":s,c=e.submitCallback,u=e.cancelCallback,f=e.position,p=void 0===f?o.positions.confirm||p.top:f;d(),w();var _=document.createElement("div"),k=h();_.id=k;var E=document.createElement("div");E.classList.add(o.classes.textbox),E.classList.add(o.classes.backgroundInfo),E.innerHTML='
    '+a+"
    ";var S=document.createElement("div");S.classList.add(o.classes.button),S.classList.add(o.classes.elementHalf),S.classList.add(o.classes.backgroundSuccess),S.innerHTML=n,S.onclick=function(){y(k,p),T(),c?c():t&&t()};var I=document.createElement("div");I.classList.add(o.classes.button),I.classList.add(o.classes.elementHalf),I.classList.add(o.classes.backgroundError),I.innerHTML=l,I.onclick=function(){y(k,p),T(),u?u():r&&r()},_.appendChild(E),_.appendChild(S),_.appendChild(I),_.listener=function(e){m(e)?S.click():g(e)&&I.click()},b(_,p),v(_,p)},S=function(e,t,r){var i=e.text,n=e.submitText,s=void 0===n?"Submit":n,l=e.cancelText,c=void 0===l?"Cancel":l,u=e.submitCallback,f=e.cancelCallback,p=e.position,_=void 0===p?o.positions.input||_.top:p,k=function(e,t){var r={};for(var a in e)t.indexOf(a)>=0||Object.prototype.hasOwnProperty.call(e,a)&&(r[a]=e[a]);return r}(e,["text","submitText","cancelText","submitCallback","cancelCallback","position"]);d(),w();var E=document.createElement("div"),S=h();E.id=S;var I=document.createElement("div");I.classList.add(o.classes.textbox),I.classList.add(o.classes.backgroundInfo),I.innerHTML='
    '+i+"
    ";var C=document.createElement("input");C.classList.add(o.classes.inputField),C.setAttribute("autocapitalize",k.autocapitalize||"none"),C.setAttribute("autocomplete",k.autocomplete||"off"),C.setAttribute("autocorrect",k.autocorrect||"off"),C.setAttribute("autofocus",k.autofocus||"true"),C.setAttribute("inputmode",k.inputmode||"verbatim"),C.setAttribute("max",k.max||""),C.setAttribute("maxlength",k.maxlength||""),C.setAttribute("min",k.min||""),C.setAttribute("minlength",k.minlength||""),C.setAttribute("placeholder",k.placeholder||""),C.setAttribute("spellcheck",k.spellcheck||"default"),C.setAttribute("step",k.step||"any"),C.setAttribute("type",k.type||"text"),C.value=k.value||"",k.allowed&&(C.oninput=function(){var e=void 0;if(Array.isArray(k.allowed)){for(var t="",r=k.allowed,i=0;i'+r+"",u.appendChild(m),s.forEach((function(e,t){var r=e.type,a=void 0===r?1:r,i=e.text,n=e.handler,l=document.createElement("div");l.classList.add(f[a]),l.classList.add(o.classes.button),l.classList.add(o.classes.selectChoice);var d=s[t+1];d&&!d.type&&(d.type=1),d&&d.type===a&&l.classList.add(o.classes.selectChoiceRepeated),l.innerHTML=i,l.onclick=function(){y(p,c),T(),n()},u.appendChild(l)}));var _=document.createElement("div");_.classList.add(o.classes.backgroundNeutral),_.classList.add(o.classes.button),_.innerHTML=i,_.onclick=function(){y(p,c),T(),n?n():t&&t()},u.appendChild(_),u.listener=function(e){g(e)&&_.click()},b(u,c),v(u,c)},C=t.date=function(e,t,r){var a=e.value,i=void 0===a?new Date:a,n=e.submitText,s=void 0===n?"OK":n,l=e.cancelText,c=void 0===l?"Cancel":l,u=e.submitCallback,f=e.cancelCallback,p=e.position,_=void 0===p?o.positions.date||_.top:p;d(),w();var k="▾",E=document.createElement("div"),S=document.createElement("div"),I=document.createElement("div"),C=function(e){E.innerHTML=o.dateMonths[e.getMonth()],S.innerHTML=e.getDate(),I.innerHTML=e.getFullYear()},A=function(e){C(i)},x=function(e){var t=new Date(i.getFullYear(),i.getMonth()+e+1,0).getDate();i.getDate()>t&&i.setDate(t),i.setMonth(i.getMonth()+e),C(i)},D=function(e){i.setDate(i.getDate()+e),C(i)},B=function(e){i.getFullYear()+e<0?i.setFullYear(0):i.setFullYear(i.getFullYear()+e),C(i)},M=document.createElement("div"),P=h();M.id=P;var L=document.createElement("div");L.classList.add(o.classes.backgroundInfo);var O=document.createElement("div");O.classList.add(o.classes.dateSelectorInner);var R=document.createElement("div");R.classList.add(o.classes.button),R.classList.add(o.classes.elementThird),R.classList.add(o.classes.dateSelectorUp),R.innerHTML=k;var F=document.createElement("div");F.classList.add(o.classes.button),F.classList.add(o.classes.elementThird),F.classList.add(o.classes.dateSelectorUp),F.innerHTML=k;var N=document.createElement("div");N.classList.add(o.classes.button),N.classList.add(o.classes.elementThird),N.classList.add(o.classes.dateSelectorUp),N.innerHTML=k,E.classList.add(o.classes.element),E.classList.add(o.classes.elementThird),E.innerHTML=o.dateMonths[i.getMonth()],S.classList.add(o.classes.element),S.classList.add(o.classes.elementThird),S.setAttribute("contentEditable",!0),S.addEventListener("input",(function(e){var t=new Date(i.getFullYear(),i.getMonth()+1,0).getDate(),r=e.target.textContent.replace(/^0+/,"").replace(/[^\d]/g,"").slice(0,2);Number(r)>t&&(r=t.toString()),e.target.textContent=r,Number(r)<1&&(r="1"),i.setDate(Number(r))})),S.addEventListener("blur",A),S.innerHTML=i.getDate(),I.classList.add(o.classes.element),I.classList.add(o.classes.elementThird),I.setAttribute("contentEditable",!0),I.addEventListener("input",(function(e){var t=e.target.textContent.replace(/^0+/,"").replace(/[^\d]/g,"").slice(0,4);e.target.textContent=t,i.setFullYear(Number(t))})),I.addEventListener("blur",A),I.innerHTML=i.getFullYear();var z=document.createElement("div");z.classList.add(o.classes.button),z.classList.add(o.classes.elementThird),z.innerHTML=k;var U=document.createElement("div");U.classList.add(o.classes.button),U.classList.add(o.classes.elementThird),U.innerHTML=k;var j=document.createElement("div");j.classList.add(o.classes.button),j.classList.add(o.classes.elementThird),j.innerHTML=k,R.onclick=function(){return x(1)},F.onclick=function(){return D(1)},N.onclick=function(){return B(1)},z.onclick=function(){return x(-1)},U.onclick=function(){return D(-1)},j.onclick=function(){return B(-1)};var H=document.createElement("div");H.classList.add(o.classes.button),H.classList.add(o.classes.elementHalf),H.classList.add(o.classes.backgroundSuccess),H.innerHTML=s,H.onclick=function(){y(P,_),T(),u?u(i):t&&t(i)};var G=document.createElement("div");G.classList.add(o.classes.button),G.classList.add(o.classes.elementHalf),G.classList.add(o.classes.backgroundError),G.innerHTML=c,G.onclick=function(){y(P,_),T(),f?f(i):r&&r(i)},O.appendChild(R),O.appendChild(F),O.appendChild(N),O.appendChild(E),O.appendChild(S),O.appendChild(I),O.appendChild(z),O.appendChild(U),O.appendChild(j),L.appendChild(O),M.appendChild(L),M.appendChild(H),M.appendChild(G),M.listener=function(e){m(e)?H.click():g(e)&&G.click()},b(M,_),v(M,_)};t.default={alert:_,force:k,confirm:E,input:S,select:I,date:C,setOptions:l,hideAlerts:w}}])},"object"===s(t)&&"object"===s(e)?e.exports=n():(a=[],void 0===(i="function"==typeof(r=n)?r.apply(t,a):r)||(e.exports=i))}).call(t,r(0)(e))}])},5606:e=>{var t,r,a=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function n(){throw new Error("clearTimeout has not been defined")}function s(e){if(t===setTimeout)return setTimeout(e,0);if((t===i||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(r){try{return t.call(null,e,0)}catch(r){return t.call(this,e,0)}}}!function(){try{t="function"==typeof setTimeout?setTimeout:i}catch(e){t=i}try{r="function"==typeof clearTimeout?clearTimeout:n}catch(e){r=n}}();var o,l=[],c=!1,u=-1;function d(){c&&o&&(c=!1,o.length?l=o.concat(l):u=-1,l.length&&h())}function h(){if(!c){var e=s(d);c=!0;for(var t=l.length;t;){for(o=l,l=[];++u1)for(var r=1;r{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ReadableWebToNodeStream=void 0;const a=r(2692);class i extends a.Readable{constructor(e){super(),this.bytesRead=0,this.released=!1,this.reader=e.getReader()}async _read(){if(this.released)return void this.push(null);this.pendingRead=this.reader.read();const e=await this.pendingRead;delete this.pendingRead,e.done||this.released?this.push(null):(this.bytesRead+=e.value.length,this.push(e.value))}async waitForReadToComplete(){this.pendingRead&&await this.pendingRead}async close(){await this.syncAndRelease()}async syncAndRelease(){this.released=!0,await this.waitForReadToComplete(),await this.reader.releaseLock()}}t.ReadableWebToNodeStream=i},6699:e=>{"use strict";var t={};function r(e,r,a){a||(a=Error);var i=function(e){var t,a;function i(t,a,i){return e.call(this,function(e,t,a){return"string"==typeof r?r:r(e,t,a)}(t,a,i))||this}return a=e,(t=i).prototype=Object.create(a.prototype),t.prototype.constructor=t,t.__proto__=a,i}(a);i.prototype.name=a.name,i.prototype.code=e,t[e]=i}function a(e,t){if(Array.isArray(e)){var r=e.length;return e=e.map((function(e){return String(e)})),r>2?"one of ".concat(t," ").concat(e.slice(0,r-1).join(", "),", or ")+e[r-1]:2===r?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}return"of ".concat(t," ").concat(String(e))}r("ERR_INVALID_OPT_VALUE",(function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'}),TypeError),r("ERR_INVALID_ARG_TYPE",(function(e,t,r){var i,n,s,o,l;if("string"==typeof t&&(n="not ",t.substr(0,4)===n)?(i="must not be",t=t.replace(/^not /,"")):i="must be",function(e,t,r){return(void 0===r||r>e.length)&&(r=e.length),e.substring(r-9,r)===t}(e," argument"))s="The ".concat(e," ").concat(i," ").concat(a(t,"type"));else{var c=("number"!=typeof l&&(l=0),l+1>(o=e).length||-1===o.indexOf(".",l)?"argument":"property");s='The "'.concat(e,'" ').concat(c," ").concat(i," ").concat(a(t,"type"))}return s+". Received type ".concat(typeof r)}),TypeError),r("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),r("ERR_METHOD_NOT_IMPLEMENTED",(function(e){return"The "+e+" method is not implemented"})),r("ERR_STREAM_PREMATURE_CLOSE","Premature close"),r("ERR_STREAM_DESTROYED",(function(e){return"Cannot call "+e+" after a stream was destroyed"})),r("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),r("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),r("ERR_STREAM_WRITE_AFTER_END","write after end"),r("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),r("ERR_UNKNOWN_ENCODING",(function(e){return"Unknown encoding: "+e}),TypeError),r("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),e.exports.F=t},1545:(e,t,r)=>{"use strict";var a=r(5606),i=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};e.exports=u;var n=r(1311),s=r(1299);r(6698)(u,n);for(var o=i(s.prototype),l=0;l{"use strict";e.exports=i;var a=r(8687);function i(e){if(!(this instanceof i))return new i(e);a.call(this,e)}r(6698)(i,a),i.prototype._transform=function(e,t,r){r(null,e)}},1311:(e,t,r)=>{"use strict";var a,i=r(5606);e.exports=S,S.ReadableState=E,r(7007).EventEmitter;var n,s=function(e,t){return e.listeners(t).length},o=r(2240),l=r(8287).Buffer,c=(void 0!==r.g?r.g:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{}).Uint8Array||function(){},u=r(3411);n=u&&u.debuglog?u.debuglog("stream"):function(){};var d,h,f,p=r(6714),m=r(2039),g=r(1976).getHighWaterMark,b=r(6699).F,y=b.ERR_INVALID_ARG_TYPE,v=b.ERR_STREAM_PUSH_AFTER_EOF,T=b.ERR_METHOD_NOT_IMPLEMENTED,w=b.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;r(6698)(S,o);var _=m.errorOrDestroy,k=["error","close","destroy","pause","resume"];function E(e,t,i){a=a||r(1545),e=e||{},"boolean"!=typeof i&&(i=t instanceof a),this.objectMode=!!e.objectMode,i&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=g(this,e,"readableHighWaterMark",i),this.buffer=new p,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(d||(d=r(3141).I),this.decoder=new d(e.encoding),this.encoding=e.encoding)}function S(e){if(a=a||r(1545),!(this instanceof S))return new S(e);var t=this instanceof a;this._readableState=new E(e,this,t),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),o.call(this)}function I(e,t,r,a,i){n("readableAddChunk",t);var s,o=e._readableState;if(null===t)o.reading=!1,function(e,t){if(n("onEofChunk"),!t.ended){if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,t.sync?D(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,B(e)))}}(e,o);else if(i||(s=function(e,t){var r,a;return a=t,l.isBuffer(a)||a instanceof c||"string"==typeof t||void 0===t||e.objectMode||(r=new y("chunk",["string","Buffer","Uint8Array"],t)),r}(o,t)),s)_(e,s);else if(o.objectMode||t&&t.length>0)if("string"==typeof t||o.objectMode||Object.getPrototypeOf(t)===l.prototype||(t=function(e){return l.from(e)}(t)),a)o.endEmitted?_(e,new w):C(e,o,t,!0);else if(o.ended)_(e,new v);else{if(o.destroyed)return!1;o.reading=!1,o.decoder&&!r?(t=o.decoder.write(t),o.objectMode||0!==t.length?C(e,o,t,!1):M(e,o)):C(e,o,t,!1)}else a||(o.reading=!1,M(e,o));return!o.ended&&(o.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=A?e=A:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function D(e){var t=e._readableState;n("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(n("emitReadable",t.flowing),t.emittedReadable=!0,i.nextTick(B,e))}function B(e){var t=e._readableState;n("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||!t.length&&!t.ended||(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,F(e)}function M(e,t){t.readingMore||(t.readingMore=!0,i.nextTick(P,e,t))}function P(e,t){for(;!t.reading&&!t.ended&&(t.length0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function O(e){n("readable nexttick read 0"),e.read(0)}function R(e,t){n("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),F(e),t.flowing&&!t.reading&&e.read(0)}function F(e){var t=e._readableState;for(n("flow",t.flowing);t.flowing&&null!==e.read(););}function N(e,t){return 0===t.length?null:(t.objectMode?r=t.buffer.shift():!e||e>=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):r=t.buffer.consume(e,t.decoder),r);var r}function z(e){var t=e._readableState;n("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,i.nextTick(U,t,e))}function U(e,t){if(n("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&0===e.length&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var r=t._writableState;(!r||r.autoDestroy&&r.finished)&&t.destroy()}}function j(e,t){for(var r=0,a=e.length;r=t.highWaterMark:t.length>0)||t.ended))return n("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?z(this):D(this),null;if(0===(e=x(e,t))&&t.ended)return 0===t.length&&z(this),null;var a,i=t.needReadable;return n("need readable",i),(0===t.length||t.length-e0?N(e,t):null)?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.awaitDrain=0),0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&z(this)),null!==a&&this.emit("data",a),a},S.prototype._read=function(e){_(this,new T("_read()"))},S.prototype.pipe=function(e,t){var r=this,a=this._readableState;switch(a.pipesCount){case 0:a.pipes=e;break;case 1:a.pipes=[a.pipes,e];break;default:a.pipes.push(e)}a.pipesCount+=1,n("pipe count=%d opts=%j",a.pipesCount,t);var o=t&&!1===t.end||e===i.stdout||e===i.stderr?m:l;function l(){n("onend"),e.end()}a.endEmitted?i.nextTick(o):r.once("end",o),e.on("unpipe",(function t(i,s){n("onunpipe"),i===r&&s&&!1===s.hasUnpiped&&(s.hasUnpiped=!0,n("cleanup"),e.removeListener("close",f),e.removeListener("finish",p),e.removeListener("drain",c),e.removeListener("error",h),e.removeListener("unpipe",t),r.removeListener("end",l),r.removeListener("end",m),r.removeListener("data",d),u=!0,!a.awaitDrain||e._writableState&&!e._writableState.needDrain||c())}));var c=function(e){return function(){var t=e._readableState;n("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&s(e,"data")&&(t.flowing=!0,F(e))}}(r);e.on("drain",c);var u=!1;function d(t){n("ondata");var i=e.write(t);n("dest.write",i),!1===i&&((1===a.pipesCount&&a.pipes===e||a.pipesCount>1&&-1!==j(a.pipes,e))&&!u&&(n("false write response, pause",a.awaitDrain),a.awaitDrain++),r.pause())}function h(t){n("onerror",t),m(),e.removeListener("error",h),0===s(e,"error")&&_(e,t)}function f(){e.removeListener("finish",p),m()}function p(){n("onfinish"),e.removeListener("close",f),m()}function m(){n("unpipe"),r.unpipe(e)}return r.on("data",d),function(e,t,r){if("function"==typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}(e,"error",h),e.once("close",f),e.once("finish",p),e.emit("pipe",r),a.flowing||(n("pipe resume"),r.resume()),e},S.prototype.unpipe=function(e){var t=this._readableState,r={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,r)),this;if(!e){var a=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var n=0;n0,!1!==a.flowing&&this.resume()):"readable"===e&&(a.endEmitted||a.readableListening||(a.readableListening=a.needReadable=!0,a.flowing=!1,a.emittedReadable=!1,n("on readable",a.length,a.reading),a.length?D(this):a.reading||i.nextTick(O,this))),r},S.prototype.addListener=S.prototype.on,S.prototype.removeListener=function(e,t){var r=o.prototype.removeListener.call(this,e,t);return"readable"===e&&i.nextTick(L,this),r},S.prototype.removeAllListeners=function(e){var t=o.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||i.nextTick(L,this),t},S.prototype.resume=function(){var e=this._readableState;return e.flowing||(n("resume"),e.flowing=!e.readableListening,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,i.nextTick(R,e,t))}(this,e)),e.paused=!1,this},S.prototype.pause=function(){return n("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(n("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},S.prototype.wrap=function(e){var t=this,r=this._readableState,a=!1;for(var i in e.on("end",(function(){if(n("wrapped end"),r.decoder&&!r.ended){var e=r.decoder.end();e&&e.length&&t.push(e)}t.push(null)})),e.on("data",(function(i){n("wrapped data"),r.decoder&&(i=r.decoder.write(i)),r.objectMode&&null==i||(r.objectMode||i&&i.length)&&(t.push(i)||(a=!0,e.pause()))})),e)void 0===this[i]&&"function"==typeof e[i]&&(this[i]=function(t){return function(){return e[t].apply(e,arguments)}}(i));for(var s=0;s{"use strict";e.exports=u;var a=r(6699).F,i=a.ERR_METHOD_NOT_IMPLEMENTED,n=a.ERR_MULTIPLE_CALLBACK,s=a.ERR_TRANSFORM_ALREADY_TRANSFORMING,o=a.ERR_TRANSFORM_WITH_LENGTH_0,l=r(1545);function c(e,t){var r=this._transformState;r.transforming=!1;var a=r.writecb;if(null===a)return this.emit("error",new n);r.writechunk=null,r.writecb=null,null!=t&&this.push(t),a(e);var i=this._readableState;i.reading=!1,(i.needReadable||i.length{"use strict";var a,i=r(5606);function n(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t){var r=e.entry;for(e.entry=null;r;){var a=r.callback;t.pendingcb--,a(undefined),r=r.next}t.corkedRequestsFree.next=e}(t,e)}}e.exports=S,S.WritableState=E;var s,o={deprecate:r(4643)},l=r(2240),c=r(8287).Buffer,u=(void 0!==r.g?r.g:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{}).Uint8Array||function(){},d=r(2039),h=r(1976).getHighWaterMark,f=r(6699).F,p=f.ERR_INVALID_ARG_TYPE,m=f.ERR_METHOD_NOT_IMPLEMENTED,g=f.ERR_MULTIPLE_CALLBACK,b=f.ERR_STREAM_CANNOT_PIPE,y=f.ERR_STREAM_DESTROYED,v=f.ERR_STREAM_NULL_VALUES,T=f.ERR_STREAM_WRITE_AFTER_END,w=f.ERR_UNKNOWN_ENCODING,_=d.errorOrDestroy;function k(){}function E(e,t,s){a=a||r(1545),e=e||{},"boolean"!=typeof s&&(s=t instanceof a),this.objectMode=!!e.objectMode,s&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=h(this,e,"writableHighWaterMark",s),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var o=!1===e.decodeStrings;this.decodeStrings=!o,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var r=e._writableState,a=r.sync,n=r.writecb;if("function"!=typeof n)throw new g;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(r),t)!function(e,t,r,a,n){--t.pendingcb,r?(i.nextTick(n,a),i.nextTick(B,e,t),e._writableState.errorEmitted=!0,_(e,a)):(n(a),e._writableState.errorEmitted=!0,_(e,a),B(e,t))}(e,r,a,t,n);else{var s=x(r)||e.destroyed;s||r.corked||r.bufferProcessing||!r.bufferedRequest||A(e,r),a?i.nextTick(C,e,r,s,n):C(e,r,s,n)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new n(this)}function S(e){var t=this instanceof(a=a||r(1545));if(!t&&!s.call(S,this))return new S(e);this._writableState=new E(e,this,t),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),l.call(this)}function I(e,t,r,a,i,n,s){t.writelen=a,t.writecb=s,t.writing=!0,t.sync=!0,t.destroyed?t.onwrite(new y("write")):r?e._writev(i,t.onwrite):e._write(i,n,t.onwrite),t.sync=!1}function C(e,t,r,a){r||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,a(),B(e,t)}function A(e,t){t.bufferProcessing=!0;var r=t.bufferedRequest;if(e._writev&&r&&r.next){var a=t.bufferedRequestCount,i=new Array(a),s=t.corkedRequestsFree;s.entry=r;for(var o=0,l=!0;r;)i[o]=r,r.isBuf||(l=!1),r=r.next,o+=1;i.allBuffers=l,I(e,t,!0,t.length,i,"",s.finish),t.pendingcb++,t.lastBufferedRequest=null,s.next?(t.corkedRequestsFree=s.next,s.next=null):t.corkedRequestsFree=new n(t),t.bufferedRequestCount=0}else{for(;r;){var c=r.chunk,u=r.encoding,d=r.callback;if(I(e,t,!1,t.objectMode?1:c.length,c,u,d),r=r.next,t.bufferedRequestCount--,t.writing)break}null===r&&(t.lastBufferedRequest=null)}t.bufferedRequest=r,t.bufferProcessing=!1}function x(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function D(e,t){e._final((function(r){t.pendingcb--,r&&_(e,r),t.prefinished=!0,e.emit("prefinish"),B(e,t)}))}function B(e,t){var r=x(t);if(r&&(function(e,t){t.prefinished||t.finalCalled||("function"!=typeof e._final||t.destroyed?(t.prefinished=!0,e.emit("prefinish")):(t.pendingcb++,t.finalCalled=!0,i.nextTick(D,e,t)))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"),t.autoDestroy))){var a=e._readableState;(!a||a.autoDestroy&&a.endEmitted)&&e.destroy()}return r}r(6698)(S,l),E.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(E.prototype,"buffer",{get:o.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(s=Function.prototype[Symbol.hasInstance],Object.defineProperty(S,Symbol.hasInstance,{value:function(e){return!!s.call(this,e)||this===S&&e&&e._writableState instanceof E}})):s=function(e){return e instanceof this},S.prototype.pipe=function(){_(this,new b)},S.prototype.write=function(e,t,r){var a,n=this._writableState,s=!1,o=!n.objectMode&&(a=e,c.isBuffer(a)||a instanceof u);return o&&!c.isBuffer(e)&&(e=function(e){return c.from(e)}(e)),"function"==typeof t&&(r=t,t=null),o?t="buffer":t||(t=n.defaultEncoding),"function"!=typeof r&&(r=k),n.ending?function(e,t){var r=new T;_(e,r),i.nextTick(t,r)}(this,r):(o||function(e,t,r,a){var n;return null===r?n=new v:"string"==typeof r||t.objectMode||(n=new p("chunk",["string","Buffer"],r)),!n||(_(e,n),i.nextTick(a,n),!1)}(this,n,e,r))&&(n.pendingcb++,s=function(e,t,r,a,i,n){if(!r){var s=function(e,t,r){return e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=c.from(t,r)),t}(t,a,i);a!==s&&(r=!0,i="buffer",a=s)}var o=t.objectMode?1:a.length;t.length+=o;var l=t.length-1))throw new w(e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(S.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(S.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),S.prototype._write=function(e,t,r){r(new m("_write()"))},S.prototype._writev=null,S.prototype.end=function(e,t,r){var a=this._writableState;return"function"==typeof e?(r=e,e=null,t=null):"function"==typeof t&&(r=t,t=null),null!=e&&this.write(e,t),a.corked&&(a.corked=1,this.uncork()),a.ending||function(e,t,r){t.ending=!0,B(e,t),r&&(t.finished?i.nextTick(r):e.once("finish",r)),t.ended=!0,e.writable=!1}(this,a,r),this},Object.defineProperty(S.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(S.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),S.prototype.destroy=d.destroy,S.prototype._undestroy=d.undestroy,S.prototype._destroy=function(e,t){t(e)}},5934:(e,t,r)=>{"use strict";var a,i=r(5606);function n(e,t,r){return(t=function(e){var t=function(e){if("object"!=typeof e||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var s=r(1149),o=Symbol("lastResolve"),l=Symbol("lastReject"),c=Symbol("error"),u=Symbol("ended"),d=Symbol("lastPromise"),h=Symbol("handlePromise"),f=Symbol("stream");function p(e,t){return{value:e,done:t}}function m(e){var t=e[o];if(null!==t){var r=e[f].read();null!==r&&(e[d]=null,e[o]=null,e[l]=null,t(p(r,!1)))}}function g(e){i.nextTick(m,e)}var b=Object.getPrototypeOf((function(){})),y=Object.setPrototypeOf((n(a={get stream(){return this[f]},next:function(){var e=this,t=this[c];if(null!==t)return Promise.reject(t);if(this[u])return Promise.resolve(p(void 0,!0));if(this[f].destroyed)return new Promise((function(t,r){i.nextTick((function(){e[c]?r(e[c]):t(p(void 0,!0))}))}));var r,a=this[d];if(a)r=new Promise(function(e,t){return function(r,a){e.then((function(){t[u]?r(p(void 0,!0)):t[h](r,a)}),a)}}(a,this));else{var n=this[f].read();if(null!==n)return Promise.resolve(p(n,!1));r=new Promise(this[h])}return this[d]=r,r}},Symbol.asyncIterator,(function(){return this})),n(a,"return",(function(){var e=this;return new Promise((function(t,r){e[f].destroy(null,(function(e){e?r(e):t(p(void 0,!0))}))}))})),a),b);e.exports=function(e){var t,r=Object.create(y,(n(t={},f,{value:e,writable:!0}),n(t,o,{value:null,writable:!0}),n(t,l,{value:null,writable:!0}),n(t,c,{value:null,writable:!0}),n(t,u,{value:e._readableState.endEmitted,writable:!0}),n(t,h,{value:function(e,t){var a=r[f].read();a?(r[d]=null,r[o]=null,r[l]=null,e(p(a,!1))):(r[o]=e,r[l]=t)},writable:!0}),t));return r[d]=null,s(e,(function(e){if(e&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code){var t=r[l];return null!==t&&(r[d]=null,r[o]=null,r[l]=null,t(e)),void(r[c]=e)}var a=r[o];null!==a&&(r[d]=null,r[o]=null,r[l]=null,a(p(void 0,!0))),r[u]=!0})),e.on("readable",g.bind(null,r)),r}},6714:(e,t,r)=>{"use strict";function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t0?this.tail.next=t:this.head=t,this.tail=t,++this.length}},{key:"unshift",value:function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}},{key:"shift",value:function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(e){if(0===this.length)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r}},{key:"concat",value:function(e){if(0===this.length)return l.alloc(0);for(var t,r,a,i=l.allocUnsafe(e>>>0),n=this.head,s=0;n;)t=n.data,r=i,a=s,l.prototype.copy.call(t,r,a),s+=n.data.length,n=n.next;return i}},{key:"consume",value:function(e,t){var r;return ei.length?i.length:e;if(n===i.length?a+=i:a+=i.slice(0,e),0==(e-=n)){n===i.length?(++r,t.next?this.head=t.next:this.head=this.tail=null):(this.head=t,t.data=i.slice(n));break}++r}return this.length-=r,a}},{key:"_getBuffer",value:function(e){var t=l.allocUnsafe(e),r=this.head,a=1;for(r.data.copy(t),e-=r.data.length;r=r.next;){var i=r.data,n=e>i.length?i.length:e;if(i.copy(t,t.length-e,0,n),0==(e-=n)){n===i.length?(++a,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=i.slice(n));break}++a}return this.length-=a,t}},{key:u,value:function(e,t){return c(this,i(i({},t),{},{depth:0,customInspect:!1}))}}])&&s(t.prototype,r),Object.defineProperty(t,"prototype",{writable:!1}),e}()},2039:(e,t,r)=>{"use strict";var a=r(5606);function i(e,t){s(e,t),n(e)}function n(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function s(e,t){e.emit("error",t)}e.exports={destroy:function(e,t){var r=this,o=this._readableState&&this._readableState.destroyed,l=this._writableState&&this._writableState.destroyed;return o||l?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,a.nextTick(s,this,e)):a.nextTick(s,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!t&&e?r._writableState?r._writableState.errorEmitted?a.nextTick(n,r):(r._writableState.errorEmitted=!0,a.nextTick(i,r,e)):a.nextTick(i,r,e):t?(a.nextTick(n,r),t(e)):a.nextTick(n,r)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(e,t){var r=e._readableState,a=e._writableState;r&&r.autoDestroy||a&&a.autoDestroy?e.destroy(t):e.emit("error",t)}}},1149:(e,t,r)=>{"use strict";var a=r(6699).F.ERR_STREAM_PREMATURE_CLOSE;function i(){}e.exports=function e(t,r,n){if("function"==typeof r)return e(t,null,r);r||(r={}),n=function(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,a=new Array(r),i=0;i{e.exports=function(){throw new Error("Readable.from is not available in the browser")}},3399:(e,t,r)=>{"use strict";var a,i=r(6699).F,n=i.ERR_MISSING_ARGS,s=i.ERR_STREAM_DESTROYED;function o(e){if(e)throw e}function l(e){e()}function c(e,t){return e.pipe(t)}e.exports=function(){for(var e=arguments.length,t=new Array(e),i=0;i0,(function(e){u||(u=e),e&&h.forEach(l),n||(h.forEach(l),d(u))}))}));return t.reduce(c)}},1976:(e,t,r)=>{"use strict";var a=r(6699).F.ERR_INVALID_OPT_VALUE;e.exports={getHighWaterMark:function(e,t,r,i){var n=function(e,t,r){return null!=e.highWaterMark?e.highWaterMark:t?e[r]:null}(t,i,r);if(null!=n){if(!isFinite(n)||Math.floor(n)!==n||n<0)throw new a(i?r:"highWaterMark",n);return Math.floor(n)}return e.objectMode?16:16384}}},2240:(e,t,r)=>{e.exports=r(7007).EventEmitter},2692:(e,t,r)=>{(t=e.exports=r(1311)).Stream=t,t.Readable=t,t.Writable=r(1299),t.Duplex=r(1545),t.Transform=r(8687),t.PassThrough=r(717),t.finished=r(1149),t.pipeline=r(3399)},246:(e,t,r)=>{"use strict";function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,a=new Array(t);rwt,cR:()=>yt});var u=c(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),d=c(/Edge/i),h=c(/firefox/i),f=c(/safari/i)&&!c(/chrome/i)&&!c(/android/i),p=c(/iP(ad|od|hone)/i),m=c(/chrome/i)&&c(/android/i),g={capture:!1,passive:!1};function b(e,t,r){e.addEventListener(t,r,!u&&g)}function y(e,t,r){e.removeEventListener(t,r,!u&&g)}function v(e,t){if(t){if(">"===t[0]&&(t=t.substring(1)),e)try{if(e.matches)return e.matches(t);if(e.msMatchesSelector)return e.msMatchesSelector(t);if(e.webkitMatchesSelector)return e.webkitMatchesSelector(t)}catch(e){return!1}return!1}}function T(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function w(e,t,r,a){if(e){r=r||document;do{if(null!=t&&(">"===t[0]?e.parentNode===r&&v(e,t):v(e,t))||a&&e===r)return e;if(e===r)break}while(e=T(e))}return null}var _,k=/\s+/g;function E(e,t,r){if(e&&t)if(e.classList)e.classList[r?"add":"remove"](t);else{var a=(" "+e.className+" ").replace(k," ").replace(" "+t+" "," ");e.className=(a+(r?" "+t:"")).replace(k," ")}}function S(e,t,r){var a=e&&e.style;if(a){if(void 0===r)return document.defaultView&&document.defaultView.getComputedStyle?r=document.defaultView.getComputedStyle(e,""):e.currentStyle&&(r=e.currentStyle),void 0===t?r:r[t];t in a||-1!==t.indexOf("webkit")||(t="-webkit-"+t),a[t]=r+("string"==typeof r?"":"px")}}function I(e,t){var r="";if("string"==typeof e)r=e;else do{var a=S(e,"transform");a&&"none"!==a&&(r=a+" "+r)}while(!t&&(e=e.parentNode));var i=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return i&&new i(r)}function C(e,t,r){if(e){var a=e.getElementsByTagName(t),i=0,n=a.length;if(r)for(;i=n:i<=n))return a;if(a===A())break;a=O(a,!1)}return!1}function B(e,t,r,a){for(var i=0,n=0,s=e.children;n2&&void 0!==arguments[2]?arguments[2]:{},a=r.evt,n=function(e,t){if(null==e)return{};var r,a,i=function(e,t){if(null==e)return{};var r,a,i={},n=Object.keys(e);for(a=0;a=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}(r,V);$.pluginEvent.bind(je)(e,t,i({dragEl:Z,parentEl:J,ghostEl:Q,rootEl:ee,nextEl:te,lastDownEl:re,cloneEl:ae,cloneHidden:ie,dragStarted:be,putSortable:ue,activeSortable:je.active,originalEvent:a,oldIndex:ne,oldDraggableIndex:oe,newIndex:se,newDraggableIndex:le,hideGhostForTarget:Fe,unhideGhostForTarget:Ne,cloneNowHidden:function(){ie=!0},cloneNowShown:function(){ie=!1},dispatchSortableEvent:function(e){K({sortable:t,name:e,originalEvent:a})}},n))};function K(e){q(i({putSortable:ue,cloneEl:ae,targetEl:Z,rootEl:ee,oldIndex:ne,oldDraggableIndex:oe,newIndex:se,newDraggableIndex:le},e))}var Z,J,Q,ee,te,re,ae,ie,ne,se,oe,le,ce,ue,de,he,fe,pe,me,ge,be,ye,ve,Te,we,_e=!1,ke=!1,Ee=[],Se=!1,Ie=!1,Ce=[],Ae=!1,xe=[],De="undefined"!=typeof document,Be=p,Me=d||u?"cssFloat":"float",Pe=De&&!m&&!p&&"draggable"in document.createElement("div"),Le=function(){if(De){if(u)return!1;var e=document.createElement("x");return e.style.cssText="pointer-events:auto","auto"===e.style.pointerEvents}}(),Oe=function(e,t){var r=S(e),a=parseInt(r.width)-parseInt(r.paddingLeft)-parseInt(r.paddingRight)-parseInt(r.borderLeftWidth)-parseInt(r.borderRightWidth),i=B(e,0,t),n=B(e,1,t),s=i&&S(i),o=n&&S(n),l=s&&parseInt(s.marginLeft)+parseInt(s.marginRight)+x(i).width,c=o&&parseInt(o.marginLeft)+parseInt(o.marginRight)+x(n).width;if("flex"===r.display)return"column"===r.flexDirection||"column-reverse"===r.flexDirection?"vertical":"horizontal";if("grid"===r.display)return r.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(i&&s.float&&"none"!==s.float){var u="left"===s.float?"left":"right";return!n||"both"!==o.clear&&o.clear!==u?"horizontal":"vertical"}return i&&("block"===s.display||"flex"===s.display||"table"===s.display||"grid"===s.display||l>=a&&"none"===r[Me]||n&&"none"===r[Me]&&l+c>a)?"vertical":"horizontal"},Re=function(e){function t(e,r){return function(a,i,n,s){var o=a.options.group.name&&i.options.group.name&&a.options.group.name===i.options.group.name;if(null==e&&(r||o))return!0;if(null==e||!1===e)return!1;if(r&&"clone"===e)return e;if("function"==typeof e)return t(e(a,i,n,s),r)(a,i,n,s);var l=(r?a:i).options.group.name;return!0===e||"string"==typeof e&&e===l||e.join&&e.indexOf(l)>-1}}var r={},a=e.group;a&&"object"==n(a)||(a={name:a}),r.name=a.name,r.checkPull=t(a.pull,!0),r.checkPut=t(a.put),r.revertClone=a.revertClone,e.group=r},Fe=function(){!Le&&Q&&S(Q,"display","none")},Ne=function(){!Le&&Q&&S(Q,"display","")};De&&!m&&document.addEventListener("click",(function(e){if(ke)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),ke=!1,!1}),!0);var ze=function(e){if(Z){e=e.touches?e.touches[0]:e;var t=(i=e.clientX,n=e.clientY,Ee.some((function(e){var t=e[G].options.emptyInsertThreshold;if(t&&!M(e)){var r=x(e),a=i>=r.left-t&&i<=r.right+t,o=n>=r.top-t&&n<=r.bottom+t;return a&&o?s=e:void 0}})),s);if(t){var r={};for(var a in e)e.hasOwnProperty(a)&&(r[a]=e[a]);r.target=r.rootEl=t,r.preventDefault=void 0,r.stopPropagation=void 0,t[G]._onDragOver(r)}}var i,n,s},Ue=function(e){Z&&Z.parentNode[G]._isOutsideThisEl(e.target)};function je(e,t){if(!e||!e.nodeType||1!==e.nodeType)throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(e));this.el=e,this.options=t=o({},t),e[G]=this;var r,a,n={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(e.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return Oe(e,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(e,t){e.setData("Text",t.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:!1!==je.supportPointer&&"PointerEvent"in window&&!f,emptyInsertThreshold:5};for(var s in $.initializePlugins(this,e,n),n)!(s in t)&&(t[s]=n[s]);for(var l in Re(t),this)"_"===l.charAt(0)&&"function"==typeof this[l]&&(this[l]=this[l].bind(this));this.nativeDraggable=!t.forceFallback&&Pe,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?b(e,"pointerdown",this._onTapStart):(b(e,"mousedown",this._onTapStart),b(e,"touchstart",this._onTapStart)),this.nativeDraggable&&(b(e,"dragover",this),b(e,"dragenter",this)),Ee.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),o(this,(a=[],{captureAnimationState:function(){a=[],this.options.animation&&[].slice.call(this.el.children).forEach((function(e){if("none"!==S(e,"display")&&e!==je.ghost){a.push({target:e,rect:x(e)});var t=i({},a[a.length-1].rect);if(e.thisAnimationDuration){var r=I(e,!0);r&&(t.top-=r.f,t.left-=r.e)}e.fromRect=t}}))},addAnimationState:function(e){a.push(e)},removeAnimationState:function(e){a.splice(function(e,t){for(var r in e)if(e.hasOwnProperty(r))for(var a in t)if(t.hasOwnProperty(a)&&t[a]===e[r][a])return Number(r);return-1}(a,{target:e}),1)},animateAll:function(e){var t=this;if(!this.options.animation)return clearTimeout(r),void("function"==typeof e&&e());var i=!1,n=0;a.forEach((function(e){var r=0,a=e.target,s=a.fromRect,o=x(a),l=a.prevFromRect,c=a.prevToRect,u=e.rect,d=I(a,!0);d&&(o.top-=d.f,o.left-=d.e),a.toRect=o,a.thisAnimationDuration&&R(l,o)&&!R(s,o)&&(u.top-o.top)/(u.left-o.left)==(s.top-o.top)/(s.left-o.left)&&(r=function(e,t,r,a){return Math.sqrt(Math.pow(t.top-e.top,2)+Math.pow(t.left-e.left,2))/Math.sqrt(Math.pow(t.top-r.top,2)+Math.pow(t.left-r.left,2))*a.animation}(u,l,c,t.options)),R(o,s)||(a.prevFromRect=s,a.prevToRect=o,r||(r=t.options.animation),t.animate(a,u,o,r)),r&&(i=!0,n=Math.max(n,r),clearTimeout(a.animationResetTimer),a.animationResetTimer=setTimeout((function(){a.animationTime=0,a.prevFromRect=null,a.fromRect=null,a.prevToRect=null,a.thisAnimationDuration=null}),r),a.thisAnimationDuration=r)})),clearTimeout(r),i?r=setTimeout((function(){"function"==typeof e&&e()}),n):"function"==typeof e&&e(),a=[]},animate:function(e,t,r,a){if(a){S(e,"transition",""),S(e,"transform","");var i=I(this.el),n=i&&i.a,s=i&&i.d,o=(t.left-r.left)/(n||1),l=(t.top-r.top)/(s||1);e.animatingX=!!o,e.animatingY=!!l,S(e,"transform","translate3d("+o+"px,"+l+"px,0)"),this.forRepaintDummy=function(e){return e.offsetWidth}(e),S(e,"transition","transform "+a+"ms"+(this.options.easing?" "+this.options.easing:"")),S(e,"transform","translate3d(0,0,0)"),"number"==typeof e.animated&&clearTimeout(e.animated),e.animated=setTimeout((function(){S(e,"transition",""),S(e,"transform",""),e.animated=!1,e.animatingX=!1,e.animatingY=!1}),a)}}}))}function He(e,t,r,a,i,n,s,o){var l,c,h=e[G],f=h.options.onMove;return!window.CustomEvent||u||d?(l=document.createEvent("Event")).initEvent("move",!0,!0):l=new CustomEvent("move",{bubbles:!0,cancelable:!0}),l.to=t,l.from=e,l.dragged=r,l.draggedRect=a,l.related=i||t,l.relatedRect=n||x(t),l.willInsertAfter=o,l.originalEvent=s,e.dispatchEvent(l),f&&(c=f.call(h,l,s)),c}function Ge(e){e.draggable=!1}function We(){Ae=!1}function Xe(e){for(var t=e.tagName+e.className+e.src+e.href+e.textContent,r=t.length,a=0;r--;)a+=t.charCodeAt(r);return a.toString(36)}function $e(e){return setTimeout(e,0)}function qe(e){return clearTimeout(e)}je.prototype={constructor:je,_isOutsideThisEl:function(e){this.el.contains(e)||e===this.el||(ye=null)},_getDirection:function(e,t){return"function"==typeof this.options.direction?this.options.direction.call(this,e,t,Z):this.options.direction},_onTapStart:function(e){if(e.cancelable){var t=this,r=this.el,a=this.options,i=a.preventOnFilter,n=e.type,s=e.touches&&e.touches[0]||e.pointerType&&"touch"===e.pointerType&&e,o=(s||e).target,l=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||o,c=a.filter;if(function(e){xe.length=0;for(var t=e.getElementsByTagName("input"),r=t.length;r--;){var a=t[r];a.checked&&xe.push(a)}}(r),!Z&&!(/mousedown|pointerdown/.test(n)&&0!==e.button||a.disabled)&&!l.isContentEditable&&(this.nativeDraggable||!f||!o||"SELECT"!==o.tagName.toUpperCase())&&!((o=w(o,a.draggable,r,!1))&&o.animated||re===o)){if(ne=P(o),oe=P(o,a.draggable),"function"==typeof c){if(c.call(this,e,o,this))return K({sortable:t,rootEl:l,name:"filter",targetEl:o,toEl:r,fromEl:r}),Y("filter",t,{evt:e}),void(i&&e.cancelable&&e.preventDefault())}else if(c&&(c=c.split(",").some((function(a){if(a=w(l,a.trim(),r,!1))return K({sortable:t,rootEl:a,name:"filter",targetEl:o,fromEl:r,toEl:r}),Y("filter",t,{evt:e}),!0}))))return void(i&&e.cancelable&&e.preventDefault());a.handle&&!w(l,a.handle,r,!1)||this._prepareDragStart(e,s,o)}}},_prepareDragStart:function(e,t,r){var a,i=this,n=i.el,s=i.options,o=n.ownerDocument;if(r&&!Z&&r.parentNode===n){var l=x(r);if(ee=n,J=(Z=r).parentNode,te=Z.nextSibling,re=r,ce=s.group,je.dragged=Z,de={target:Z,clientX:(t||e).clientX,clientY:(t||e).clientY},me=de.clientX-l.left,ge=de.clientY-l.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,Z.style["will-change"]="all",a=function(){Y("delayEnded",i,{evt:e}),je.eventCanceled?i._onDrop():(i._disableDelayedDragEvents(),!h&&i.nativeDraggable&&(Z.draggable=!0),i._triggerDragStart(e,t),K({sortable:i,name:"choose",originalEvent:e}),E(Z,s.chosenClass,!0))},s.ignore.split(",").forEach((function(e){C(Z,e.trim(),Ge)})),b(o,"dragover",ze),b(o,"mousemove",ze),b(o,"touchmove",ze),b(o,"mouseup",i._onDrop),b(o,"touchend",i._onDrop),b(o,"touchcancel",i._onDrop),h&&this.nativeDraggable&&(this.options.touchStartThreshold=4,Z.draggable=!0),Y("delayStart",this,{evt:e}),!s.delay||s.delayOnTouchOnly&&!t||this.nativeDraggable&&(d||u))a();else{if(je.eventCanceled)return void this._onDrop();b(o,"mouseup",i._disableDelayedDrag),b(o,"touchend",i._disableDelayedDrag),b(o,"touchcancel",i._disableDelayedDrag),b(o,"mousemove",i._delayedDragTouchMoveHandler),b(o,"touchmove",i._delayedDragTouchMoveHandler),s.supportPointer&&b(o,"pointermove",i._delayedDragTouchMoveHandler),i._dragStartTimer=setTimeout(a,s.delay)}}},_delayedDragTouchMoveHandler:function(e){var t=e.touches?e.touches[0]:e;Math.max(Math.abs(t.clientX-this._lastX),Math.abs(t.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){Z&&Ge(Z),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;y(e,"mouseup",this._disableDelayedDrag),y(e,"touchend",this._disableDelayedDrag),y(e,"touchcancel",this._disableDelayedDrag),y(e,"mousemove",this._delayedDragTouchMoveHandler),y(e,"touchmove",this._delayedDragTouchMoveHandler),y(e,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t=t||"touch"==e.pointerType&&e,!this.nativeDraggable||t?this.options.supportPointer?b(document,"pointermove",this._onTouchMove):b(document,t?"touchmove":"mousemove",this._onTouchMove):(b(Z,"dragend",this),b(ee,"dragstart",this._onDragStart));try{document.selection?$e((function(){document.selection.empty()})):window.getSelection().removeAllRanges()}catch(e){}},_dragStarted:function(e,t){if(_e=!1,ee&&Z){Y("dragStarted",this,{evt:t}),this.nativeDraggable&&b(document,"dragover",Ue);var r=this.options;!e&&E(Z,r.dragClass,!1),E(Z,r.ghostClass,!0),je.active=this,e&&this._appendGhost(),K({sortable:this,name:"start",originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(he){this._lastX=he.clientX,this._lastY=he.clientY,Fe();for(var e=document.elementFromPoint(he.clientX,he.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(he.clientX,he.clientY))!==t;)t=e;if(Z.parentNode[G]._isOutsideThisEl(e),t)do{if(t[G]&&t[G]._onDragOver({clientX:he.clientX,clientY:he.clientY,target:e,rootEl:t})&&!this.options.dragoverBubble)break;e=t}while(t=t.parentNode);Ne()}},_onTouchMove:function(e){if(de){var t=this.options,r=t.fallbackTolerance,a=t.fallbackOffset,i=e.touches?e.touches[0]:e,n=Q&&I(Q,!0),s=Q&&n&&n.a,o=Q&&n&&n.d,l=Be&&we&&L(we),c=(i.clientX-de.clientX+a.x)/(s||1)+(l?l[0]-Ce[0]:0)/(s||1),u=(i.clientY-de.clientY+a.y)/(o||1)+(l?l[1]-Ce[1]:0)/(o||1);if(!je.active&&!_e){if(r&&Math.max(Math.abs(i.clientX-this._lastX),Math.abs(i.clientY-this._lastY))i.right+10||e.clientY>a.bottom&&e.clientX>a.left:e.clientY>i.bottom+10||e.clientX>a.right&&e.clientY>a.top}(e,n,this)&&!g.animated){if(g===Z)return j(!1);if(g&&s===e.target&&(o=g),o&&(r=x(o)),!1!==He(ee,s,Z,t,o,r,e,!!o))return U(),g&&g.nextSibling?s.insertBefore(Z,g.nextSibling):s.appendChild(Z),J=s,W(),j(!0)}else if(g&&function(e,t,r){var a=x(B(r.el,0,r.options,!0)),i=H(r.el,r.options,Q);return t?e.clientXu+c*n/2:ld-Te)return-ve}else if(l>u+c*(1-i)/2&&ld-c*n/2)?l>u+c/2?1:-1:0}(e,o,r,n,k?1:l.swapThreshold,null==l.invertedSwapThreshold?l.swapThreshold:l.invertedSwapThreshold,Ie,ye===o),0!==y){var L=P(Z);do{L-=y,T=J.children[L]}while(T&&("none"===S(T,"display")||T===Q))}if(0===y||T===o)return j(!1);ye=o,ve=y;var O=o.nextElementSibling,R=!1,F=He(ee,s,Z,t,o,r,e,R=1===y);if(!1!==F)return 1!==F&&-1!==F||(R=1===F),Ae=!0,setTimeout(We,30),U(),R&&!O?s.appendChild(Z):o.parentNode.insertBefore(Z,R?O:o),C&&N(C,0,A-C.scrollTop),J=Z.parentNode,void 0===v||Ie||(Te=Math.abs(v-x(o)[I])),W(),j(!0)}if(s.contains(Z))return j(!1)}return!1}function z(l,c){Y(l,p,i({evt:e,isOwner:d,axis:n?"vertical":"horizontal",revert:a,dragRect:t,targetRect:r,canSort:h,fromSortable:f,target:o,completed:j,onMove:function(r,a){return He(ee,s,Z,t,r,x(r),e,a)},changed:W},c))}function U(){z("dragOverAnimationCapture"),p.captureAnimationState(),p!==f&&f.captureAnimationState()}function j(t){return z("dragOverCompleted",{insertion:t}),t&&(d?u._hideClone():u._showClone(p),p!==f&&(E(Z,ue?ue.options.ghostClass:u.options.ghostClass,!1),E(Z,l.ghostClass,!0)),ue!==p&&p!==je.active?ue=p:p===je.active&&ue&&(ue=null),f===p&&(p._ignoreWhileAnimating=o),p.animateAll((function(){z("dragOverAnimationComplete"),p._ignoreWhileAnimating=null})),p!==f&&(f.animateAll(),f._ignoreWhileAnimating=null)),(o===Z&&!Z.animated||o===s&&!o.animated)&&(ye=null),l.dragoverBubble||e.rootEl||o===document||(Z.parentNode[G]._isOutsideThisEl(e.target),!t&&ze(e)),!l.dragoverBubble&&e.stopPropagation&&e.stopPropagation(),m=!0}function W(){se=P(Z),le=P(Z,l.draggable),K({sortable:p,name:"change",toEl:s,newIndex:se,newDraggableIndex:le,originalEvent:e})}},_ignoreWhileAnimating:null,_offMoveEvents:function(){y(document,"mousemove",this._onTouchMove),y(document,"touchmove",this._onTouchMove),y(document,"pointermove",this._onTouchMove),y(document,"dragover",ze),y(document,"mousemove",ze),y(document,"touchmove",ze)},_offUpEvents:function(){var e=this.el.ownerDocument;y(e,"mouseup",this._onDrop),y(e,"touchend",this._onDrop),y(e,"pointerup",this._onDrop),y(e,"touchcancel",this._onDrop),y(document,"selectstart",this)},_onDrop:function(e){var t=this.el,r=this.options;se=P(Z),le=P(Z,r.draggable),Y("drop",this,{evt:e}),J=Z&&Z.parentNode,se=P(Z),le=P(Z,r.draggable),je.eventCanceled||(_e=!1,Ie=!1,Se=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),qe(this.cloneId),qe(this._dragStartId),this.nativeDraggable&&(y(document,"drop",this),y(t,"dragstart",this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),f&&S(document.body,"user-select",""),S(Z,"transform",""),e&&(be&&(e.cancelable&&e.preventDefault(),!r.dropBubble&&e.stopPropagation()),Q&&Q.parentNode&&Q.parentNode.removeChild(Q),(ee===J||ue&&"clone"!==ue.lastPutMode)&&ae&&ae.parentNode&&ae.parentNode.removeChild(ae),Z&&(this.nativeDraggable&&y(Z,"dragend",this),Ge(Z),Z.style["will-change"]="",be&&!_e&&E(Z,ue?ue.options.ghostClass:this.options.ghostClass,!1),E(Z,this.options.chosenClass,!1),K({sortable:this,name:"unchoose",toEl:J,newIndex:null,newDraggableIndex:null,originalEvent:e}),ee!==J?(se>=0&&(K({rootEl:J,name:"add",toEl:J,fromEl:ee,originalEvent:e}),K({sortable:this,name:"remove",toEl:J,originalEvent:e}),K({rootEl:J,name:"sort",toEl:J,fromEl:ee,originalEvent:e}),K({sortable:this,name:"sort",toEl:J,originalEvent:e})),ue&&ue.save()):se!==ne&&se>=0&&(K({sortable:this,name:"update",toEl:J,originalEvent:e}),K({sortable:this,name:"sort",toEl:J,originalEvent:e})),je.active&&(null!=se&&-1!==se||(se=ne,le=oe),K({sortable:this,name:"end",toEl:J,originalEvent:e}),this.save())))),this._nulling()},_nulling:function(){Y("nulling",this),ee=Z=J=Q=te=ae=re=ie=de=he=be=se=le=ne=oe=ye=ve=ue=ce=je.dragged=je.ghost=je.clone=je.active=null,xe.forEach((function(e){e.checked=!0})),xe.length=fe=pe=0},handleEvent:function(e){switch(e.type){case"drop":case"dragend":this._onDrop(e);break;case"dragenter":case"dragover":Z&&(this._onDragOver(e),function(e){e.dataTransfer&&(e.dataTransfer.dropEffect="move"),e.cancelable&&e.preventDefault()}(e));break;case"selectstart":e.preventDefault()}},toArray:function(){for(var e,t=[],r=this.el.children,a=0,i=r.length,n=this.options;a1&&(ft.forEach((function(e){a.addAnimationState({target:e,rect:gt?x(e):i}),j(e),e.fromRect=i,t.removeAnimationState(e)})),gt=!1,function(e,t){ft.forEach((function(r,a){var i=t.children[r.sortableIndex+(e?Number(a):0)];i?t.insertBefore(r,i):t.appendChild(r)}))}(!this.options.removeCloneOnHide,r))},dragOverCompleted:function(e){var t=e.sortable,r=e.isOwner,a=e.insertion,i=e.activeSortable,n=e.parentEl,s=e.putSortable,o=this.options;if(a){if(r&&i._hideClone(),mt=!1,o.animation&&ft.length>1&&(gt||!r&&!i.options.sort&&!s)){var l=x(ut,!1,!0,!0);ft.forEach((function(e){e!==ut&&(U(e,l),n.appendChild(e))})),gt=!0}if(!r)if(gt||Tt(),ft.length>1){var c=ht;i._showClone(t),i.options.animation&&!ht&&c&&pt.forEach((function(e){i.addAnimationState({target:e,rect:dt}),e.fromRect=dt,e.thisAnimationDuration=null}))}else i._showClone(t)}},dragOverAnimationCapture:function(e){var t=e.dragRect,r=e.isOwner,a=e.activeSortable;if(ft.forEach((function(e){e.thisAnimationDuration=null})),a.options.animation&&!r&&a.multiDrag.isMultiDrag){dt=o({},t);var i=I(ut,!0);dt.top-=i.f,dt.left-=i.e}},dragOverAnimationComplete:function(){gt&&(gt=!1,Tt())},drop:function(e){var t=e.originalEvent,r=e.rootEl,a=e.parentEl,i=e.sortable,n=e.dispatchSortableEvent,s=e.oldIndex,o=e.putSortable,l=o||this.sortable;if(t){var c=this.options,u=a.children;if(!bt)if(c.multiDragKey&&!this.multiDragKeyDown&&this._deselectMultiDrag(),E(ut,c.selectedClass,!~ft.indexOf(ut)),~ft.indexOf(ut))ft.splice(ft.indexOf(ut),1),lt=null,q({sortable:i,rootEl:r,name:"deselect",targetEl:ut,originalEvent:t});else{if(ft.push(ut),q({sortable:i,rootEl:r,name:"select",targetEl:ut,originalEvent:t}),t.shiftKey&<&&i.el.contains(lt)){var d,h,f=P(lt),p=P(ut);if(~f&&~p&&f!==p)for(p>f?(h=f,d=p):(h=p,d=f+1);h1){var m=x(ut),g=P(ut,":not(."+this.options.selectedClass+")");if(!mt&&c.animation&&(ut.thisAnimationDuration=null),l.captureAnimationState(),!mt&&(c.animation&&(ut.fromRect=m,ft.forEach((function(e){if(e.thisAnimationDuration=null,e!==ut){var t=gt?x(e):m;e.fromRect=t,l.addAnimationState({target:e,rect:t})}}))),Tt(),ft.forEach((function(e){u[g]?a.insertBefore(e,u[g]):a.appendChild(e),g++})),s===P(ut))){var b=!1;ft.forEach((function(e){e.sortableIndex===P(e)||(b=!0)})),b&&(n("update"),n("sort"))}ft.forEach((function(e){j(e)})),l.animateAll()}ct=l}(r===a||o&&"clone"!==o.lastPutMode)&&pt.forEach((function(e){e.parentNode&&e.parentNode.removeChild(e)}))}},nullingGlobal:function(){this.isMultiDrag=bt=!1,pt.length=0},destroyGlobal:function(){this._deselectMultiDrag(),y(document,"pointerup",this._deselectMultiDrag),y(document,"mouseup",this._deselectMultiDrag),y(document,"touchend",this._deselectMultiDrag),y(document,"keydown",this._checkKeyDown),y(document,"keyup",this._checkKeyUp)},_deselectMultiDrag:function(e){if(!(void 0!==bt&&bt||ct!==this.sortable||e&&w(e.target,this.options.draggable,this.sortable.el,!1)||e&&0!==e.button))for(;ft.length;){var t=ft[0];E(t,this.options.selectedClass,!1),ft.shift(),q({sortable:this.sortable,rootEl:this.sortable.el,name:"deselect",targetEl:t,originalEvent:e})}},_checkKeyDown:function(e){e.key===this.options.multiDragKey&&(this.multiDragKeyDown=!0)},_checkKeyUp:function(e){e.key===this.options.multiDragKey&&(this.multiDragKeyDown=!1)}},o(e,{pluginName:"multiDrag",utils:{select:function(e){var t=e.parentNode[G];t&&t.options.multiDrag&&!~ft.indexOf(e)&&(ct&&ct!==t&&(ct.multiDrag._deselectMultiDrag(),ct=t),E(e,t.options.selectedClass,!0),ft.push(e))},deselect:function(e){var t=e.parentNode[G],r=ft.indexOf(e);t&&t.options.multiDrag&&~r&&(E(e,t.options.selectedClass,!1),ft.splice(r,1))}},eventProperties:function(){var e,t=this,r=[],a=[];return ft.forEach((function(e){var i;r.push({multiDragElement:e,index:e.sortableIndex}),i=gt&&e!==ut?-1:gt?P(e,":not(."+t.options.selectedClass+")"):P(e),a.push({multiDragElement:e,index:i})})),{items:(e=ft,function(e){if(Array.isArray(e))return l(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return l(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?l(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),clones:[].concat(pt),oldIndicies:r,newIndicies:a}},optionListeners:{multiDragKey:function(e){return"ctrl"===(e=e.toLowerCase())?e="Control":e.length>1&&(e=e.charAt(0).toUpperCase()+e.substr(1)),e}}})}function vt(e,t){pt.forEach((function(r,a){var i=t.children[r.sortableIndex+(e?Number(a):0)];i?t.insertBefore(r,i):t.appendChild(r)}))}function Tt(){ft.forEach((function(e){e!==ut&&e.parentNode&&e.parentNode.removeChild(e)}))}je.mount(new function(){function e(){for(var e in this.defaults={scroll:!0,forceAutoScrollFallback:!1,scrollSensitivity:30,scrollSpeed:10,bubbleScroll:!0},this)"_"===e.charAt(0)&&"function"==typeof this[e]&&(this[e]=this[e].bind(this))}return e.prototype={dragStarted:function(e){var t=e.originalEvent;this.sortable.nativeDraggable?b(document,"dragover",this._handleAutoScroll):this.options.supportPointer?b(document,"pointermove",this._handleFallbackAutoScroll):t.touches?b(document,"touchmove",this._handleFallbackAutoScroll):b(document,"mousemove",this._handleFallbackAutoScroll)},dragOverCompleted:function(e){var t=e.originalEvent;this.options.dragOverBubble||t.rootEl||this._handleAutoScroll(t)},drop:function(){this.sortable.nativeDraggable?y(document,"dragover",this._handleAutoScroll):(y(document,"pointermove",this._handleFallbackAutoScroll),y(document,"touchmove",this._handleFallbackAutoScroll),y(document,"mousemove",this._handleFallbackAutoScroll)),at(),rt(),clearTimeout(_),_=void 0},nulling:function(){Je=Ye=Ve=tt=Qe=Ke=Ze=null,et.length=0},_handleFallbackAutoScroll:function(e){this._handleAutoScroll(e,!0)},_handleAutoScroll:function(e,t){var r=this,a=(e.touches?e.touches[0]:e).clientX,i=(e.touches?e.touches[0]:e).clientY,n=document.elementFromPoint(a,i);if(Je=e,t||this.options.forceAutoScrollFallback||d||u||f){it(e,this.options,n,t);var s=O(n,!0);!tt||Qe&&a===Ke&&i===Ze||(Qe&&at(),Qe=setInterval((function(){var n=O(document.elementFromPoint(a,i),!0);n!==s&&(s=n,rt()),it(e,r.options,n,t)}),10),Ke=a,Ze=i)}else{if(!this.options.bubbleScroll||O(n,!0)===A())return void rt();it(e,this.options,O(n,!1),!1)}}},o(e,{pluginName:"scroll",initializeByDefault:!0})}),je.mount(ot,st);const wt=je},3141:(e,t,r)=>{"use strict";var a=r(5003).Buffer,i=a.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function n(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(a.isEncoding===i||!i(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=l,this.end=c,t=4;break;case"utf8":this.fillLast=o,t=4;break;case"base64":this.text=u,this.end=d,t=3;break;default:return this.write=h,void(this.end=f)}this.lastNeed=0,this.lastTotal=0,this.lastChar=a.allocUnsafe(t)}function s(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function o(e){var t=this.lastTotal-this.lastNeed,r=function(e,t){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==r?r:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function l(e,t){if((e.length-t)%2==0){var r=e.toString("utf16le",t);if(r){var a=r.charCodeAt(r.length-1);if(a>=55296&&a<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function c(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function u(e,t){var r=(e.length-t)%3;return 0===r?e.toString("base64",t):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-r))}function d(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function h(e){return e.toString(this.encoding)}function f(e){return e&&e.length?this.write(e):""}t.I=n,n.prototype.write=function(e){if(0===e.length)return"";var t,r;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r=0?(i>0&&(e.lastNeed=i-1),i):--a=0?(i>0&&(e.lastNeed=i-2),i):--a=0?(i>0&&(2===i?i=0:e.lastNeed=i-3),i):0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var a=e.length-(r-this.lastNeed);return e.copy(this.lastChar,0,a),e.toString("utf8",t,a)},n.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},5003:(e,t,r)=>{var a=r(8287),i=a.Buffer;function n(e,t){for(var r in e)t[r]=e[r]}function s(e,t,r){return i(e,t,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=a:(n(a,t),t.Buffer=s),s.prototype=Object.create(i.prototype),n(i,s),s.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,r)},s.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var a=i(e);return void 0!==t?"string"==typeof r?a.fill(t,r):a.fill(t):a.fill(0),a},s.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},s.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return a.SlowBuffer(e)}},4643:(e,t,r)=>{function a(e){try{if(!r.g.localStorage)return!1}catch(e){return!1}var t=r.g.localStorage[e];return null!=t&&"true"===String(t).toLowerCase()}e.exports=function(e,t){if(a("noDeprecation"))return e;var r=!1;return function(){if(!r){if(a("throwDeprecation"))throw new Error(t);a("traceDeprecation")?console.trace(t):console.warn(t),r=!0}return e.apply(this,arguments)}}},4015:(e,t,r)=>{"use strict";r.d(t,{A:()=>$});const a=Math.PI,i=2*a,n=a/2,s=8.17579892,o="dual-combined",l="dual-horizontal",c="single",u="dual-vertical",d="bar-index",h="bar-level",f="gradient",p="click",m="resize",g="sans-serif",b=10,y="create",v="fschange",T=m,w="user",_="#fff",k="#888",E="bark",S="linear",I="log",C="mel",A=["#a35","#c66","#e94","#ed0","#9d5","#4d8","#2cb","#0bc","#09c","#36b"],x=[["classic",{colorStops:["red",{color:"yellow",level:.85,pos:.6},{color:"lime",level:.475}]}],["prism",{colorStops:A}],["rainbow",{dir:"h",colorStops:["#817",...A,"#639"]}],["orangered",{bgColor:"#3e2f29",colorStops:["OrangeRed"]}],["steelblue",{bgColor:"#222c35",colorStops:["SteelBlue"]}]],D={alphaBars:!1,ansiBands:!1,barSpace:.1,bgAlpha:.7,channelLayout:c,colorMode:f,fadePeaks:!1,fftSize:8192,fillAlpha:1,frequencyScale:I,gradient:x[0][0],gravity:3.8,height:void 0,ledBars:!1,linearAmplitude:!1,linearBoost:1,lineWidth:0,loRes:!1,lumiBars:!1,maxDecibels:-25,maxFPS:0,maxFreq:22e3,minDecibels:-85,minFreq:20,mirror:0,mode:0,noteLabels:!1,outlineBars:!1,overlay:!1,peakFadeTime:750,peakHoldTime:500,peakLine:!1,radial:!1,radialInvert:!1,radius:.3,reflexAlpha:.15,reflexBright:1,reflexFit:!0,reflexRatio:0,roundBars:!1,showBgColor:!0,showFPS:!1,showPeaks:!0,showScaleX:!0,showScaleY:!1,smoothing:.5,spinSpeed:0,splitGradient:!1,start:!0,trueLeds:!1,useCanvas:!0,volume:1,weightingFilter:"",width:void 0},B=["ERR_AUDIO_CONTEXT_FAIL","Could not create audio context. Web Audio API not supported?"],M=["ERR_INVALID_AUDIO_CONTEXT","Provided audio context is not valid"],P=["ERR_UNKNOWN_GRADIENT","Unknown gradient"],L=["ERR_FREQUENCY_TOO_LOW","Frequency values must be >= 1"],O=["ERR_INVALID_MODE","Invalid mode"],R=["ERR_REFLEX_OUT_OF_RANGE","Reflex ratio must be >= 0 and < 1"],F=["ERR_INVALID_AUDIO_SOURCE","Audio source must be an instance of HTMLMediaElement or AudioNode"],N=["ERR_GRADIENT_INVALID_NAME","Gradient name must be a non-empty string"],z=["ERR_GRADIENT_NOT_AN_OBJECT","Gradient options must be an object"],U=["ERR_GRADIENT_MISSING_COLOR","Gradient colorStops must be a non-empty array"];class j extends Error{constructor(e,t){const[r,a]=e;super(a+(void 0!==t?`: ${t}`:"")),this.name="AudioMotionError",this.code=r}}const H=(e,t)=>console.warn(`${e} is deprecated. Use ${t} instead.`),G=e=>{for(const t in e)return!1;return!0},W=(e,t,r="toLowerCase")=>t[Math.max(0,t.indexOf((""+e)[r]()))],X=(e,t,r,a,i)=>t+(a-t)*(i-e)/(r-e);Array.prototype.findLastIndex||(Array.prototype.findLastIndex=function(e){let t=this.length;for(;t-- >0;)if(e(this[t]))return t;return-1});const $=class{constructor(e,t={}){this._ready=!1,this._aux={},this._canvasGradients=[],this._destroyed=!1,this._energy={val:0,peak:0,hold:0},this._flg={},this._fps=0,this._gradients={},this._last=0,this._outNodes=[],this._ownContext=!1,this._selectedGrads=[],this._sources=[],e instanceof Element||(G(t)&&!G(e)&&(t=e),e=null),this._ownCanvas=!(t.canvas instanceof HTMLCanvasElement);const r=this._ownCanvas?document.createElement("canvas"):t.canvas;r.style="max-width: 100%;",this._ctx=r.getContext("2d");for(const[e,t]of x)this.registerGradient(e,t);let a;if(this._container=e||!this._ownCanvas&&r.parentElement||document.body,this._defaultWidth=this._container.clientWidth||640,this._defaultHeight=this._container.clientHeight||270,t.source&&(a=t.source.context));else if(a=t.audioCtx);else try{a=new(window.AudioContext||window.webkitAudioContext),this._ownContext=!0}catch(e){throw new j(B)}if(!a.createGain)throw new j(M);const i=this._analyzer=[a.createAnalyser(),a.createAnalyser()],n=this._splitter=a.createChannelSplitter(2),s=this._merger=a.createChannelMerger(2);this._input=a.createGain(),this._output=a.createGain(),t.source&&this.connectInput(t.source);for(const e of[0,1])n.connect(i[e],e);s.connect(this._output),!1!==t.connectSpeakers&&this.connectOutput();for(const e of["_scaleX","_scaleR"])this[e]=document.createElement("canvas").getContext("2d");this._fsEl=t.fsElement||r;const o=()=>{this._fsTimeout||(this._fsTimeout=window.setTimeout((()=>{this._fsChanging||(this._setCanvas(T),this._fsTimeout=0)}),60))};window.ResizeObserver&&(this._observer=new ResizeObserver(o),this._observer.observe(this._container)),this._controller=new AbortController;const l=this._controller.signal;window.addEventListener(m,o,{signal:l}),r.addEventListener("fullscreenchange",(()=>{this._fsChanging=!0,this._fsTimeout&&window.clearTimeout(this._fsTimeout),this._setCanvas(v),this._fsTimeout=window.setTimeout((()=>{this._fsChanging=!1,this._fsTimeout=0}),60)}),{signal:l});const c=()=>{"suspended"==a.state&&a.resume().then((()=>window.removeEventListener(p,c)))};window.addEventListener(p,c),document.addEventListener("visibilitychange",(()=>{"hidden"!=document.visibilityState&&(this._frames=0,this._time=performance.now())}),{signal:l}),this._setProps(t,!0),this.useCanvas&&this._ownCanvas&&this._container.appendChild(r),this._ready=!0,this._setCanvas(y)}get alphaBars(){return this._alphaBars}set alphaBars(e){this._alphaBars=!!e,this._calcBars()}get ansiBands(){return this._ansiBands}set ansiBands(e){this._ansiBands=!!e,this._calcBars()}get barSpace(){return this._barSpace}set barSpace(e){this._barSpace=+e||0,this._calcBars()}get channelLayout(){return this._chLayout}set channelLayout(e){this._chLayout=W(e,[c,l,u,o]),this._input.disconnect(),this._input.connect(this._chLayout!=c?this._splitter:this._analyzer[0]),this._analyzer[0].disconnect(),this._outNodes.length&&this._analyzer[0].connect(this._chLayout!=c?this._merger:this._output),this._calcBars(),this._makeGrad()}get colorMode(){return this._colorMode}set colorMode(e){this._colorMode=W(e,[f,d,h])}get fadePeaks(){return this._fadePeaks}set fadePeaks(e){this._fadePeaks=!!e}get fftSize(){return this._analyzer[0].fftSize}set fftSize(e){for(const t of[0,1])this._analyzer[t].fftSize=e;const t=this._analyzer[0].frequencyBinCount;this._fftData=[new Float32Array(t),new Float32Array(t)],this._calcBars()}get frequencyScale(){return this._frequencyScale}set frequencyScale(e){this._frequencyScale=W(e,[I,E,C,S]),this._calcBars()}get gradient(){return this._selectedGrads[0]}set gradient(e){this._setGradient(e)}get gradientLeft(){return this._selectedGrads[0]}set gradientLeft(e){this._setGradient(e,0)}get gradientRight(){return this._selectedGrads[1]}set gradientRight(e){this._setGradient(e,1)}get gravity(){return this._gravity}set gravity(e){this._gravity=e>0?+e:this._gravity||D.gravity}get height(){return this._height}set height(e){this._height=e,this._setCanvas(w)}get ledBars(){return this._showLeds}set ledBars(e){this._showLeds=!!e,this._calcBars()}get linearAmplitude(){return this._linearAmplitude}set linearAmplitude(e){this._linearAmplitude=!!e}get linearBoost(){return this._linearBoost}set linearBoost(e){this._linearBoost=e>=1?+e:1}get lineWidth(){return this._lineWidth}set lineWidth(e){this._lineWidth=+e||0}get loRes(){return this._loRes}set loRes(e){this._loRes=!!e,this._setCanvas("lores")}get lumiBars(){return this._lumiBars}set lumiBars(e){this._lumiBars=!!e,this._calcBars(),this._makeGrad()}get maxDecibels(){return this._analyzer[0].maxDecibels}set maxDecibels(e){for(const t of[0,1])this._analyzer[t].maxDecibels=e}get maxFPS(){return this._maxFPS}set maxFPS(e){this._maxFPS=e<0?0:+e||0}get maxFreq(){return this._maxFreq}set maxFreq(e){if(e<1)throw new j(L);this._maxFreq=Math.min(e,this.audioCtx.sampleRate/2),this._calcBars()}get minDecibels(){return this._analyzer[0].minDecibels}set minDecibels(e){for(const t of[0,1])this._analyzer[t].minDecibels=e}get minFreq(){return this._minFreq}set minFreq(e){if(e<1)throw new j(L);this._minFreq=+e,this._calcBars()}get mirror(){return this._mirror}set mirror(e){this._mirror=0|Math.sign(e),this._calcBars(),this._makeGrad()}get mode(){return this._mode}set mode(e){const t=0|e;if(!(t>=0&&t<=10&&9!=t))throw new j(O,e);this._mode=t,this._calcBars(),this._makeGrad()}get noteLabels(){return this._noteLabels}set noteLabels(e){this._noteLabels=!!e,this._createScales()}get outlineBars(){return this._outlineBars}set outlineBars(e){this._outlineBars=!!e,this._calcBars()}get peakFadeTime(){return this._peakFadeTime}set peakFadeTime(e){this._peakFadeTime=e>=0?+e:this._peakFadeTime||D.peakFadeTime}get peakHoldTime(){return this._peakHoldTime}set peakHoldTime(e){this._peakHoldTime=+e||0}get peakLine(){return this._peakLine}set peakLine(e){this._peakLine=!!e}get radial(){return this._radial}set radial(e){this._radial=!!e,this._calcBars(),this._makeGrad()}get radialInvert(){return this._radialInvert}set radialInvert(e){this._radialInvert=!!e,this._calcBars(),this._makeGrad()}get radius(){return this._radius}set radius(e){this._radius=+e||0,this._calcBars(),this._makeGrad()}get reflexRatio(){return this._reflexRatio}set reflexRatio(e){if((e=+e||0)<0||e>=1)throw new j(R);this._reflexRatio=e,this._calcBars(),this._makeGrad()}get roundBars(){return this._roundBars}set roundBars(e){this._roundBars=!!e,this._calcBars()}get smoothing(){return this._analyzer[0].smoothingTimeConstant}set smoothing(e){for(const t of[0,1])this._analyzer[t].smoothingTimeConstant=e}get spinSpeed(){return this._spinSpeed}set spinSpeed(e){e=+e||0,void 0!==this._spinSpeed&&0!=e||(this._spinAngle=-n),this._spinSpeed=e}get splitGradient(){return this._splitGradient}set splitGradient(e){this._splitGradient=!!e,this._makeGrad()}get stereo(){return H("stereo","channelLayout"),this._chLayout!=c}set stereo(e){H("stereo","channelLayout"),this.channelLayout=e?u:c}get trueLeds(){return this._trueLeds}set trueLeds(e){this._trueLeds=!!e}get volume(){return this._output.gain.value}set volume(e){this._output.gain.value=e}get weightingFilter(){return this._weightingFilter}set weightingFilter(e){this._weightingFilter=W(e,["","A","B","C","D","468"],"toUpperCase")}get width(){return this._width}set width(e){this._width=e,this._setCanvas(w)}get audioCtx(){return this._input.context}get canvas(){return this._ctx.canvas}get canvasCtx(){return this._ctx}get connectedSources(){return this._sources}get connectedTo(){return this._outNodes}get fps(){return this._fps}get fsHeight(){return this._fsHeight}get fsWidth(){return this._fsWidth}get isAlphaBars(){return this._flg.isAlpha}get isBandsMode(){return this._flg.isBands}get isDestroyed(){return this._destroyed}get isFullscreen(){return this._fsEl&&(document.fullscreenElement||document.webkitFullscreenElement)===this._fsEl}get isLedBars(){return this._flg.isLeds}get isLumiBars(){return this._flg.isLumi}get isOctaveBands(){return this._flg.isOctaves}get isOn(){return!!this._runId}get isOutlineBars(){return this._flg.isOutline}get pixelRatio(){return this._pixelRatio}get isRoundBars(){return this._flg.isRound}static get version(){return"4.5.1"}connectInput(e){const t=e instanceof HTMLMediaElement;if(!t&&!e.connect)throw new j(F);const r=t?this.audioCtx.createMediaElementSource(e):e;return this._sources.includes(r)||(r.connect(this._input),this._sources.push(r)),r}connectOutput(e=this.audioCtx.destination){if(!this._outNodes.includes(e)&&(this._output.connect(e),this._outNodes.push(e),1==this._outNodes.length))for(const e of[0,1])this._analyzer[e].connect(this._chLayout!=c||e?this._merger:this._output,0,e)}destroy(){if(!this._ready)return;const{audioCtx:e,canvas:t,_controller:r,_input:a,_merger:i,_observer:n,_ownCanvas:s,_ownContext:o,_splitter:l}=this;this._destroyed=!0,this._ready=!1,this.stop(),r.abort(),n&&n.disconnect(),this.onCanvasResize=null,this.onCanvasDraw=null,this._fsEl=null,this.disconnectInput(),this.disconnectOutput(),a.disconnect(),l.disconnect(),i.disconnect(),o&&e.close(),s&&t.remove(),this._calcBars()}disconnectInput(e,t){e?Array.isArray(e)||(e=[e]):e=Array.from(this._sources);for(const r of e){const e=this._sources.indexOf(r);if(t&&r.mediaStream)for(const e of r.mediaStream.getAudioTracks())e.stop();e>=0&&(r.disconnect(this._input),this._sources.splice(e,1))}}disconnectOutput(e){if((!e||this._outNodes.includes(e))&&(this._output.disconnect(e),this._outNodes=e?this._outNodes.filter((t=>t!==e)):[],0==this._outNodes.length))for(const e of[0,1])this._analyzer[e].disconnect()}getBars(){return Array.from(this._bars,(({posX:e,freq:t,freqLo:r,freqHi:a,hold:i,peak:n,value:s})=>({posX:e,freq:t,freqLo:r,freqHi:a,hold:i,peak:n,value:s})))}getEnergy(e,t){if(void 0===e)return this._energy.val;if(e!=+e){if("peak"==e)return this._energy.peak;const r={bass:[20,250],lowMid:[250,500],mid:[500,2e3],highMid:[2e3,4e3],treble:[4e3,16e3]};if(!r[e])return null;[e,t]=r[e]}const r=this._freqToBin(e),a=t?this._freqToBin(t):r,i=this._chLayout==c?1:2;let n=0;for(let e=0;e+e!=e||e<0||e>1;r.forEach(((e,t)=>{const n=t/Math.max(1,a-1);"object"!=typeof e?r[t]={pos:n,color:e}:i(e.pos)&&(e.pos=n),i(e.level)&&(r[t].level=1-t/a)})),r.sort(((e,t)=>e.levelt.level?-1:0)),r[0].level=1,this._gradients[e]={bgColor:t.bgColor||"#111",dir:t.dir,colorStops:r},this._selectedGrads.includes(e)&&this._makeGrad()}setCanvasSize(e,t){this._width=e,this._height=t,this._setCanvas(w)}setFreqRange(e,t){if(e<1||t<1)throw new j(L);this._minFreq=Math.min(e,t),this.maxFreq=Math.max(e,t)}setLedParams(e){let t,r,a;e&&(t=0|e.maxLeds,r=+e.spaceV,a=+e.spaceH),this._ledParams=t>0&&r>0&&a>=0?[t,r,a]:void 0,this._calcBars()}setOptions(e){this._setProps(e)}setSensitivity(e,t){for(const r of[0,1])this._analyzer[r].minDecibels=Math.min(e,t),this._analyzer[r].maxDecibels=Math.max(e,t)}start(){this.toggleAnalyzer(!0)}stop(){this.toggleAnalyzer(!1)}toggleAnalyzer(e){const t=this.isOn;return void 0===e&&(e=!t),t&&!e?(cancelAnimationFrame(this._runId),this._runId=0):t||!e||this._destroyed||(this._frames=0,this._time=performance.now(),this._runId=requestAnimationFrame((e=>this._draw(e)))),this.isOn}toggleFullscreen(){if(this.isFullscreen)document.exitFullscreen?document.exitFullscreen():document.webkitExitFullscreen&&document.webkitExitFullscreen();else{const e=this._fsEl;if(!e)return;e.requestFullscreen?e.requestFullscreen():e.webkitRequestFullscreen&&e.webkitRequestFullscreen()}}_binToFreq(e){return e*this.audioCtx.sampleRate/this.fftSize||1}_calcBars(){const e=this._bars=[];if(!this._ready)return void(this._flg={isAlpha:!1,isBands:!1,isLeds:!1,isLumi:!1,isOctaves:!1,isOutline:!1,isRound:!1,noLedGap:!1});const{_ansiBands:t,_barSpace:r,canvas:a,_chLayout:i,_maxFreq:n,_minFreq:o,_mirror:c,_mode:d,_radial:h,_radialInvert:f,_reflexRatio:p}=this,m=a.width>>1,g=a.height>>1,y=i==u&&!h,v=i==l,T=d%10!=0,w=T&&this._frequencyScale==I,_=this._showLeds&&T&&!h,k=this._lumiBars&&T&&!h,A=this._alphaBars&&!k&&d!=b,x=this._outlineBars&&T&&!k&&!_,D=this._roundBars&&T&&!k&&!_,B=i!=u||p>0&&!k,M=a.height-(y&&!_?.5:0)>>y,P=M*(k||h?1:1-p)|0,L=a.width-m*(v||0!=c),O=y?a.height-2*M:0,R=m*(-1==c&&!v&&!h);let F=.375*Math.min(a.width,a.height)*(i==u?1:this._radius)|0,N=Math.min(m,g);f&&i!=u&&([F,N]=[N,F]);const z=t=>e.push({...t,peak:[0,0],hold:[0],alpha:[0],value:[0]}),U=e=>{const t=this._freqToBin(e,"floor"),r=this._binToFreq(t),a=this._binToFreq(t+1);return[t,Math.log2(e/r)/Math.log2(a/r)]};let j,H,G;if(w){const r=(e,t,r)=>+e.toPrecision(r?Math.max(t,1+Math.log10(e)|0):t),a=e=>{const t=[1,1.12,1.25,1.4,1.6,1.8,2,2.24,2.5,2.8,3.15,3.55,4,4.5,5,5.6,6.3,7.1,8,9,10],r=0|Math.log10(e),a=e/10**r;let i=1;for(;it[i];)i++;return a-t[i-1]=o&&z({posX:0,freq:e,freqLo:n,freqHi:s,binLo:d,binHi:f,ratioLo:h,ratioHi:p}),u*=l}while(u<=n);j=L/e.length,e.forEach(((e,t)=>e.posX=R+t*j));const h=e[0],f=e[e.length-1];H=this._freqScaling(h.freqLo),G=L/(this._freqScaling(f.freqHi)-H),h.freqLon&&(f.freqHi=n,[f.binHi,f.ratioHi]=U(n))}else if(T){const e=10*[0,24,12,8,6,4,3,2,1][d],t=e=>{switch(this._frequencyScale){case E:return 1960/(26.81/(e+.53)-1);case C:return 700*(2**e-1);case S:return e}};j=L/e,H=this._freqScaling(o),G=L/(this._freqScaling(n)-H);for(let r=0,a=0;ra)z({posX:r,freq:t,freqLo:t,freqHi:t,binLo:i,binHi:i,ratioLo:0,ratioHi:0}),a=r;else if(e.length){const r=e[e.length-1];r.binHi=i,r.freqHi=t,r.freq=(r.freqLo*t)**.5}}}let W=0,X=0;if(_){const e=this._pixelRatio/(window.devicePixelRatio>1&&window.screen.height<=540?2:1),t=[[],[128,3,.45],[128,4,.225],[96,6,.225],[80,6,.225],[80,6,.125],[64,6,.125],[48,8,.125],[24,16,.125]],r=this._ledParams,[a,i,n]=r||t[d];let s,o=P;if(r){const t=2*e;let r;s=a+1;do{s--,r=o/s/(1+i),X=r*i}while((r1)}else{const t=540/i;X=Math.min(i*e,Math.max(2,o/t+.1|0))}B&&(o+=X),r||(s=Math.min(a,o/(2*X)|0)),W=n>=1?n:j*n,this._leds=[s,W,X,o/s-X]}const $=Math.min(j-1,r*(r>0&&r<1?j:1));T&&(j-=Math.max(_?W:0,$)),e.forEach(((t,a)=>{let i=t.posX,n=j;T&&(0!=r||_?i+=Math.max(_?W:0,$)/2:(i|=0,n|=0,a>0&&i>e[a-1].posX+e[a-1].width&&(i--,n++)),t.posX=i),t.barCenter=i+(1==j?0:n/2),t.width=n}));const q=[];for(const e of[0,1]){const t=i==u?(M+O)*e:0,r=t+M,a=t+P-(!_||B?0:X);q.push({channelTop:t,channelBottom:r,analyzerBottom:a})}this._aux={analyzerHeight:P,analyzerWidth:L,centerX:m,centerY:g,channelCoords:q,channelHeight:M,channelGap:O,initialX:R,innerRadius:F,outerRadius:N,scaleMin:H,unitWidth:G},this._flg={isAlpha:A,isBands:T,isLeds:_,isLumi:k,isOctaves:w,isOutline:x,isRound:D,noLedGap:B},this._createScales()}_createScales(){if(!this._ready)return;const{analyzerWidth:e,initialX:t,innerRadius:r,scaleMin:a,unitWidth:o}=this._aux,{canvas:c,_frequencyScale:d,_mirror:h,_noteLabels:f,_radial:p,_scaleX:m,_scaleR:b}=this,y=m.canvas,v=b.canvas,T=[],w=this._chLayout==l,k=this._chLayout==u,E=Math.min(c.width,c.height),C=["C",,"D",,"E","F",,"G",,"A",,"B"],A=E/34|0,x=y.height>>1,D=A>>1,B=x*(f?.7:1.5),M=D*(f?1:2),P=2**(1/12);if(f||!this._ansiBands&&d==I){let e=s;for(let t=-1;t<11;t++)for(let r=0;r<12;r++){if(e>=this._minFreq&&e<=this._maxFreq){const a=C[r],i="C"==a;(a&&f&&!h&&!w||i)&&T.push(f?[e,a+(i?t:"")]:e)}e*=P}}else T.push(16,31.5,63,125,250,500,1e3,2e3,4e3),d==S?T.push(6e3,8e3,1e4,12e3,14e3,16e3,18e3,2e4,22e3):T.push(8e3,16e3);v.width=v.height=Math.max(.15*E,(r<<1)+k*A);const L=v.width>>1,O=L-.7*A,R=(e,t)=>{const r=i*(e/c.width),a=r-n,s=O*Math.cos(a),o=O*Math.sin(a);b.save(),b.translate(L+s,L+o),b.rotate(r),b.fillText(t,0,0),b.restore()};y.width|=0,m.fillStyle=b.strokeStyle="#000c",m.fillRect(0,0,y.width,y.height),b.arc(L,L,L-A/2,0,i),b.lineWidth=A,b.stroke(),m.fillStyle=b.fillStyle=_,m.font=`${x}px ${g}`,b.font=`${D}px ${g}`,m.textAlign=b.textAlign="center";let F=-B/4,N=-M;for(const r of T){const[i,n]=Array.isArray(r)?r:[r,r<1e3?0|r:(r/100|0)/10+"k"],s=o*(this._freqScaling(i)-a),l=.75*y.height,u="C"==n[0],g=x*(!f||h||w?3:u?1.2:.6);if(m.fillStyle=b.fillStyle=!u||h||w?_:"#4f4",f){const e=d==I,t=d==S;let r=["C"];if((e||i>2e3||!t&&i>250||(!p||k)&&(!t&&i>125||i>1e3))&&r.push("G"),(e||i>4e3||!t&&i>500||(!p||k)&&(!t&&i>250||i>2e3))&&r.push("E"),(t&&i>4e3||(!p||k)&&(e||i>2e3||!t&&i>500))&&r.push("D","F","A","B"),!r.includes(n[0]))continue}s>=F+B/2&&s<=e&&(m.fillText(n,w&&-1==h?e-s:t+s,l,g),(w||h&&(s>B||1==h))&&m.fillText(n,w&&1!=h?e+s:(t||c.width)-s,l,g),F=s+Math.min(g,m.measureText(n).width)/2),s>=N+M&&sM||1==h))&&R(w&&-1!=h?e+s:-s,n),N=s)}}_draw(e){this._runId=requestAnimationFrame((e=>this._draw(e)));const t=e-this._time,r=e-this._last,s=this._maxFPS?975/this._maxFPS:0;if(r=1e3&&(this._fps=this._frames/t*1e3,this._frames=0,this._time=e);const{isAlpha:p,isBands:m,isLeds:y,isLumi:v,isOctaves:T,isOutline:w,isRound:_,noLedGap:E}=this._flg,{analyzerHeight:S,centerX:I,centerY:C,channelCoords:A,channelHeight:x,channelGap:D,initialX:B,innerRadius:M,outerRadius:P}=this._aux,{_bars:L,canvas:O,_canvasGradients:R,_chLayout:F,_colorMode:N,_ctx:z,_energy:U,_fadePeaks:j,fillAlpha:H,_fps:G,_linearAmplitude:W,_lineWidth:$,maxDecibels:q,minDecibels:V,_mirror:Y,_mode:K,overlay:Z,_radial:J,showBgColor:Q,showPeaks:ee,useCanvas:te,_weightingFilter:re}=this,ae=this._scaleX.canvas,ie=this._scaleR.canvas,ne=G*this._peakFadeTime/1e3,se=G**2,oe=1e3*this._gravity,le=G*this._peakHoldTime/1e3,ce=F==o,ue=F==l,de=F==u,he=F==c,fe=y&&this._trueLeds&&N==f,pe=J?O.width:this._aux.analyzerWidth,me=B+pe,ge=ee&&this._peakLine&&K==b,be=J?P-M:S,ye=be/this._pixelRatio,[ve,Te,we,_e]=this._leds||[];U.val>0&&G>0&&(this._spinAngle+=this._spinSpeed*i/60/G);const ke=e=>{if(this._reflexRatio>0&&!v&&!J){let t,r;this.reflexFit||de?(t=de&&0==e?x+D:0,r=x-S):(t=O.height-2*S,r=S),z.save(),z.globalAlpha=this.reflexAlpha,1!=this.reflexBright&&(z.filter=`brightness(${this.reflexBright})`),z.setTransform(1,0,0,-1,0,O.height),z.drawImage(O,0,A[e].channelTop,O.width,S,0,t,O.width,r),z.restore()}},Ee=e=>{const t=e**2,r=424.36,a=148693636,i=e=>20*Math.log10(e);switch(re){case"A":return 2+i(a*t**2/((t+r)*Math.sqrt((t+11599.29)*(t+544496.41))*(t+a)));case"B":return.17+i(a*t*e/((t+r)*Math.sqrt(t+25122.25)*(t+a)));case"C":return.06+i(a*t/((t+r)*(t+a)));case"D":const n=((1037918.48-t)**2+1080768.16*t)/((9837328-t)**2+11723776*t);return i(e/68966888496476e-18*Math.sqrt(n/((t+79919.29)*(t+1345600))));case"468":const s=-4737338981378384e-39*e**6+2043828333606125e-30*e**4-1.363894795463638e-7*t+1,o=1306612257412824e-34*e**5-2118150887518656e-26*e**3+.0005559488023498642*e;return 18.2+i(.0001246332637532143*e/Math.hypot(s,o))}return 0},Se=(e,t,r)=>{z.beginPath(),z.moveTo(e,t),z.lineTo(e,r),z.stroke()},Ie=e=>{if(e&&$){const e=z.globalAlpha;z.globalAlpha=1,z.stroke(),z.globalAlpha=e}},Ce=e=>Math.max(0,(e*ve|0)*(_e+we)-we);Z&&z.clearRect(0,0,O.width,O.height);let Ae=0;const xe=L.length,De=he?1:2;for(let e=0;e>(e||!m),E=ue&&m?-1:1,P=()=>{const r=ae.height,a=r>>1,i=W?100:q,n=W?0:V,s=W?20:5,o=S/(i-n),l=-1!=Y&&(!ue||0==e||1==Y),c=1!=Y&&(!ue||e!=Y);z.save(),z.fillStyle=k,z.font=`${a}px ${g}`,z.textAlign="right",z.lineWidth=1;for(let e=i;e>n;e-=s){const n=t+(i-e)*o,s=e%2==0|0;if(s){const i=n+a*(n==t?.8:.35);l&&z.fillText(e,.85*r,i),c&&z.fillText(e,(ue?pe:O.width)-.1*r,i),z.strokeStyle=k,z.setLineDash([2,4]),z.lineDashOffset=0}else z.strokeStyle="#555",z.setLineDash([2,8]),z.lineDashOffset=1;z.beginPath(),z.moveTo(B+r*s*l,.5+~~n),z.lineTo(me-r*s*c,.5+~~n),z.stroke()}z.restore()},F=(e,t)=>{const r=ve[e]+(et*i*((e+T)/O.width)+this._spinAngle,G=(e,t,r)=>{const a=M+t*u,i=U(e,r);return[I+a*Math.cos(i),C+a*Math.sin(i)]},ie=(e,t,r,a,i)=>{z.beginPath();for(const n of Y&&!ue?[1,-1]:[E]){const[s,o]=_?[U(e,n),U(e+r,n)]:[];z.moveTo(...G(e,t,n)),z.lineTo(...G(e,t+a,n)),_?z.arc(I,C,M+(t+a)*u,s,o,1!=n):z.lineTo(...G(e+r,t+a,n)),z.lineTo(...G(e+r,t,n)),_&&!i&&z.arc(I,C,M+t*u,o,s,1==n)}Ie(i),z.fill()},he=(t=0,r=0)=>{let a;if(N==f&&!fe||K==b)a=R[e];else{const e=N==d?r%l:o.findLastIndex((e=>y?Ce(t)<=Ce(e.level):t<=e.level));a=o[e].color}z.fillStyle=z.strokeStyle=a};if(te){if(ue&&!J){const t=pe*(e+m),r=m?-1:1;z.setTransform(r,0,0,1,t,0)}if(Z&&!Q||(Z&&(z.globalAlpha=this.bgAlpha),z.fillStyle=c,0!=e&&(J||ce)||z.fillRect(B,t-D,pe,(Z&&1==this.reflexAlpha?S:x)+D),z.globalAlpha=1),!this.showScaleY||v||J||0!=e&&ce||P(),y?(z.setLineDash([_e,we]),z.lineWidth=L[0].width):z.lineWidth=w?Math.min($,L[0].width/2):$,z.save(),!J){const e=new Path2D;e.rect(0,t,O.width,S),z.clip(e)}}let ve=this._fftData[e];this._analyzer[e].getFloatFrequencyData(ve),re&&(ve=ve.map(((e,t)=>e+Ee(this._binToFreq(t))))),z.beginPath();let Te=[];for(let r=0;rE&&(E=ve[e]);if(E=this._normalizedB(E),s.value[e]=E,Ae+=E,s.peak[e]>0&&s.alpha[e]>0&&(s.hold[e]--,s.hold[e]<0)){if(j&&!ge){const t=!p||w&&$>0?1:p?s.peak[e]:H;s.alpha[e]=t*(1+s.hold[e]/ne)}else s.peak[e]+=s.hold[e]*oe/se/ye;s.alpha[e]<=0&&(s.peak[e]=0)}if(E>=s.peak[e]&&(s.peak[e]=E,s.hold[e]=le,s.alpha[e]=!p||w&&$>0?1:p?E:H),!te)continue;z.globalAlpha=v||p?E:w?H:1,he(E,r);const S=v?be:y?Ce(E):E*be|0;if(K==b){const e=r?0:(this._normalizedB(ve[L[1].binLo])*be+S)/2;if(J){if(0==r&&(ue&&z.moveTo(...G(0,0)),z.lineTo(...G(0,c<0?e:S))),c>=0){const e=[c,S];z.lineTo(...G(...e)),Te.push(e)}}else{if(0==r)if(-1!=Y||ue){const e=m?this._normalizedB(ve[m-1])*be:S;z.moveTo(B-$,n-e)}else z.moveTo(B,n-(c=B)&&z.lineTo(c,n-S)}}else if(y){if(Q&&!Z&&(0==e||!ce)){const e=z.globalAlpha;z.strokeStyle="#7f7f7f22",z.globalAlpha=1,Se(u,t,n),z.strokeStyle=z.fillStyle,z.globalAlpha=e}if(fe){const e=v?0:o.findLastIndex((e=>Ce(E)<=Ce(e.level)));let t=n;for(let r=l-1;r>=e;r--){z.strokeStyle=o[r].color;let a=n-(r==e?S:Ce(o[r].level));Se(u,t,a),t=a-we}}else Se(u,n,n-S)}else if(c>=B)if(J)ie(c,0,d,S,w);else if(_){const e=d/2,t=n+e;z.beginPath(),z.moveTo(c,t),z.lineTo(c,t-S),z.arc(u,t-S,e,a,i),z.lineTo(c+d,t),Ie(w),z.fill()}else{const e=w?z.lineWidth:0;z.beginPath(),z.rect(c,n+e,d,-S-e),Ie(w),z.fill()}const I=s.peak[e],C=s.alpha[e];if(I>0&&C>0&&ee&&!ge&&!v&&c>=B&&c0?z.globalAlpha=1:p&&(z.globalAlpha=I),(N==h||fe)&&he(I),y){const e=Ce(I);e>=we&&z.fillRect(c,n-e,d,_e)}else if(J){if(K!=b){const e=I*be;ie(c,e,d,!this._radialInvert||de||e+M>=2?-2:2)}}else z.fillRect(c,n-I*be,d,2)}if(te){if(z.globalAlpha=1,K==b){if(he(),J&&!ue){if(Y){let e;for(;e=Te.pop();)z.lineTo(...G(...e,-1))}z.closePath()}if($>0&&z.stroke(),H>0){if(J){const e=ue?U(pe>>1):0,t=ue?U(pe):i;z.moveTo(...G(ue?pe>>1:0,0)),z.arc(I,C,M,e,t,!ue||!m)}else z.lineTo(me,n),z.lineTo(B,n);z.globalAlpha=H,z.fill(),z.globalAlpha=1}if((ge||J&&ee)&&(Te=[],z.beginPath(),L.forEach(((t,r)=>{let a=t.posX,i=t.peak[e],s=r?"lineTo":"moveTo";if(J&&a<0){const t=L[r+1];i=X(a,i,t.posX,t.peak[e],0),a=0}i*=be,ge?(z[s](...J?G(a,i):[a,n-i]),J&&Y&&!ue&&Te.push([a,i])):i>0&&ie(a,i,1,-2)})),ge)){let e;for(;e=Te.pop();)z.lineTo(...G(...e,-1));z.lineWidth=1,z.stroke()}}z.restore(),ue&&!J&&z.setTransform(1,0,0,1,0,0),(!ue&&!ce||e)&&ke(e)}}if((e=>{U.val=e,U.peak>0&&(U.hold--,U.hold<0&&(U.peak+=U.hold*oe/se/O.height*this._pixelRatio)),e>=U.peak&&(U.peak=e,U.hold=le)})(Ae/(xe<{this.showScaleX&&(J?(z.save(),z.translate(I,C),this._spinSpeed&&z.rotate(this._spinAngle+n),z.drawImage(ie,-ie.width>>1,-ie.width>>1),z.restore()):z.drawImage(ae,0,O.height-ae.height))})()),this.showFPS){const e=ae.height;z.font=`bold ${e}px ${g}`,z.fillStyle="#0f0",z.textAlign="right",z.fillText(Math.round(G),O.width-e,2*e)}this.onCanvasDraw&&(z.save(),z.fillStyle=z.strokeStyle=R[0],this.onCanvasDraw(this,{timestamp:e,canvasGradients:R}),z.restore())}_freqScaling(e){switch(this._frequencyScale){case I:return Math.log2(e);case E:return 26.81*e/(1960+e)-.53;case C:return Math.log2(1+e/700);case S:return e}}_freqToBin(e,t="round"){const r=this._analyzer[0].frequencyBinCount-1,a=Math[t](e*this.fftSize/this.audioCtx.sampleRate);return a{let o=n.pos;e&&(o/=2),!h||d||r||g||(o*=f,!e&&o>.5*f&&(o+=.5*a)),1==t&&(r||d?o=1-(n=m[i-s]).pos/2:(0==s&&o>0&&b.addColorStop(.5,n.color),o+=.5)),b.addColorStop(o,n.color),h&&s==i&&o<.5&&b.addColorStop(.5,n.color)}))}}this._canvasGradients[e]=b}}_normalizedB(e){const t=this._linearAmplitude,r=t?1/this._linearBoost:1,a=e=>10**(e/20);let i=this.maxDecibels,n=this.minDecibels;return t&&(i=a(i),n=a(n),e=a(e)**r),(s=(e-n)/(i-n)**r)<=0?0:s>=1?1:s;var s}_setCanvas(e){if(!this._ready)return;const{canvas:t,_ctx:r}=this,a=this._scaleX.canvas,i=window.devicePixelRatio/(this._loRes+1);let n=window.screen.width*i,s=window.screen.height*i;90==Math.abs(window.orientation)&&n"start"!=e)).concat(r,["gradientLeft","gradientRight","stereo"]);(t||void 0===e)&&(e={...D,...e});for(const t of Object.keys(e))r.includes(t)&&"function"!=typeof e[t]?this[t]=void 0:a.includes(t)&&(this[t]=e[t]);void 0!==e.start&&this.toggleAnalyzer(e.start)}}},7783:(e,t,r)=>{"use strict";function a(e){return new Promise(((t,r)=>{e.oncomplete=e.onsuccess=()=>t(e.result),e.onabort=e.onerror=()=>r(e.error)}))}let i;function n(){return i||(i=function(e,t){const r=indexedDB.open("keyval-store");r.onupgradeneeded=()=>r.result.createObjectStore(t);const i=a(r);return(e,r)=>i.then((a=>r(a.transaction(t,e).objectStore(t))))}(0,"keyval")),i}function s(e,t=n()){return t("readonly",(t=>a(t.get(e))))}function o(e,t,r=n()){return r("readwrite",(r=>(r.put(t,e),a(r.transaction))))}function l(e,t=n()){return t("readwrite",(t=>(t.delete(e),a(t.transaction))))}r.d(t,{Jt:()=>s,hZ:()=>o,yH:()=>l})}}]); \ No newline at end of file diff --git a/public/vendors.js.LICENSE.txt b/public/vendors.js.LICENSE.txt deleted file mode 100644 index a0efb64..0000000 --- a/public/vendors.js.LICENSE.txt +++ /dev/null @@ -1,38 +0,0 @@ -/*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh - * @license MIT - */ - -/*! - * content-type - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - */ - -/*! - * media-typer - * Copyright(c) 2014-2017 Douglas Christopher Wilson - * MIT Licensed - */ - -/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ - -/*! safe-buffer. MIT License. Feross Aboukhadijeh */ - -/**! - * Sortable 1.15.2 - * @author RubaXa - * @author owenm - * @license MIT - */ - -/**! - * audioMotion-analyzer - * High-resolution real-time graphic audio spectrum analyzer JS module - * - * @version 4.5.1 - * @author Henrique Avila Vianna - * @license AGPL-3.0-or-later - */