From 35f43b7fd79f9f0757aa195ee7b60b8e173fb83e Mon Sep 17 00:00:00 2001 From: Martin Tillmann Date: Sat, 11 Jan 2025 11:43:43 +0100 Subject: [PATCH] bump version to 0.5.2 and update @mtillmann/chapters dependency to 0.1.3 fixes #18 --- package-lock.json | 15 ++++++++------- package.json | 4 ++-- static/app.js | 2 +- static/version | 2 +- 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index 883155d..47f3340 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "0.5.1", "license": "MIT", "dependencies": { - "@mtillmann/chapters": "^0.1.0", + "@mtillmann/chapters": "^0.1.3", "@zip.js/zip.js": "^2.7.32", "bootstrap": "^5.3.2", "bootstrap-icons": "^1.11.3", @@ -1951,9 +1951,10 @@ } }, "node_modules/@mtillmann/chapters": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@mtillmann/chapters/-/chapters-0.1.0.tgz", - "integrity": "sha512-5+Ll6Y+nOfi5zns0bG9ZE1TzromrwnZOa3QD8JJ2OiE7u0hBoVz+9eyKPRhAn13Nqkg0ghiWOOJgOat4n8L47g==", + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@mtillmann/chapters/-/chapters-0.1.3.tgz", + "integrity": "sha512-sLydBqReLYBKndjhBk/EjzNRr49wXd8hmH1ZsNZU7djX2xsWkBHyEO6u3yEAgSEyIoHdbIIp13TMta1A1Ew46Q==", + "license": "MIT", "dependencies": { "filenamify": "^6.0.0", "jsdom": "^24.0.0" @@ -8700,9 +8701,9 @@ } }, "@mtillmann/chapters": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@mtillmann/chapters/-/chapters-0.1.0.tgz", - "integrity": "sha512-5+Ll6Y+nOfi5zns0bG9ZE1TzromrwnZOa3QD8JJ2OiE7u0hBoVz+9eyKPRhAn13Nqkg0ghiWOOJgOat4n8L47g==", + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@mtillmann/chapters/-/chapters-0.1.3.tgz", + "integrity": "sha512-sLydBqReLYBKndjhBk/EjzNRr49wXd8hmH1ZsNZU7djX2xsWkBHyEO6u3yEAgSEyIoHdbIIp13TMta1A1Ew46Q==", "requires": { "filenamify": "^6.0.0", "jsdom": "^24.0.0" diff --git a/package.json b/package.json index a4305f0..7416ae9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "chaptertool", - "version": "0.5.1", + "version": "0.5.2", "description": "Manage and generate chapters for podcasts and other media via cli or web", "keywords": [ "podcast", @@ -41,7 +41,7 @@ ], "license": "MIT", "dependencies": { - "@mtillmann/chapters": "^0.1.0", + "@mtillmann/chapters": "^0.1.3", "@zip.js/zip.js": "^2.7.32", "bootstrap": "^5.3.2", "bootstrap-icons": "^1.11.3", diff --git a/static/app.js b/static/app.js index dba7bba..0379bf0 100644 --- a/static/app.js +++ b/static/app.js @@ -4,6 +4,6 @@ * Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ -const elementMap=new Map,Data={set(element,key,instance){elementMap.has(element)||elementMap.set(element,new Map);const instanceMap=elementMap.get(element);instanceMap.has(key)||0===instanceMap.size?instanceMap.set(key,instance):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`)},get:(element,key)=>elementMap.has(element)&&elementMap.get(element).get(key)||null,remove(element,key){if(!elementMap.has(element))return;const instanceMap=elementMap.get(element);instanceMap.delete(key),0===instanceMap.size&&elementMap.delete(element)}},parseSelector=selector=>(selector&&window.CSS&&window.CSS.escape&&(selector=selector.replace(/#([^\s"#']+)/g,((match,id)=>`#${CSS.escape(id)}`))),selector),triggerTransitionEnd=element=>{element.dispatchEvent(new Event("transitionend"))},isElement$2=object=>!(!object||"object"!=typeof object)&&(void 0!==object.jquery&&(object=object[0]),void 0!==object.nodeType),getElement=object=>isElement$2(object)?object.jquery?object[0]:object:"string"==typeof object&&object.length>0?document.querySelector(parseSelector(object)):null,isVisible=element=>{if(!isElement$2(element)||0===element.getClientRects().length)return!1;const elementIsVisible="visible"===getComputedStyle(element).getPropertyValue("visibility"),closedDetails=element.closest("details:not([open])");if(!closedDetails)return elementIsVisible;if(closedDetails!==element){const summary=element.closest("summary");if(summary&&summary.parentNode!==closedDetails)return!1;if(null===summary)return!1}return elementIsVisible},isDisabled=element=>!element||element.nodeType!==Node.ELEMENT_NODE||(!!element.classList.contains("disabled")||(void 0!==element.disabled?element.disabled:element.hasAttribute("disabled")&&"false"!==element.getAttribute("disabled"))),findShadowRoot=element=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof element.getRootNode){const root=element.getRootNode();return root instanceof ShadowRoot?root:null}return element instanceof ShadowRoot?element:element.parentNode?findShadowRoot(element.parentNode):null},noop$1=()=>{},reflow=element=>{element.offsetHeight},getjQuery=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,DOMContentLoadedCallbacks=[],isRTL$1=()=>"rtl"===document.documentElement.dir,defineJQueryPlugin=plugin=>{var callback;callback=()=>{const $=getjQuery();if($){const name=plugin.NAME,JQUERY_NO_CONFLICT=$.fn[name];$.fn[name]=plugin.jQueryInterface,$.fn[name].Constructor=plugin,$.fn[name].noConflict=()=>($.fn[name]=JQUERY_NO_CONFLICT,plugin.jQueryInterface)}},"loading"===document.readyState?(DOMContentLoadedCallbacks.length||document.addEventListener("DOMContentLoaded",(()=>{for(const callback of DOMContentLoadedCallbacks)callback()})),DOMContentLoadedCallbacks.push(callback)):callback()},execute=(possibleCallback,args=[],defaultValue=possibleCallback)=>"function"==typeof possibleCallback?possibleCallback(...args):defaultValue,executeAfterTransition=(callback,transitionElement,waitForTransition=!0)=>{if(!waitForTransition)return void execute(callback);const emulatedDuration=(element=>{if(!element)return 0;let{transitionDuration:transitionDuration,transitionDelay:transitionDelay}=window.getComputedStyle(element);const floatTransitionDuration=Number.parseFloat(transitionDuration),floatTransitionDelay=Number.parseFloat(transitionDelay);return floatTransitionDuration||floatTransitionDelay?(transitionDuration=transitionDuration.split(",")[0],transitionDelay=transitionDelay.split(",")[0],1e3*(Number.parseFloat(transitionDuration)+Number.parseFloat(transitionDelay))):0})(transitionElement)+5;let called=!1;const handler=({target:target})=>{target===transitionElement&&(called=!0,transitionElement.removeEventListener("transitionend",handler),execute(callback))};transitionElement.addEventListener("transitionend",handler),setTimeout((()=>{called||triggerTransitionEnd(transitionElement)}),emulatedDuration)},getNextActiveElement=(list,activeElement,shouldGetNext,isCycleAllowed)=>{const listLength=list.length;let index=list.indexOf(activeElement);return-1===index?!shouldGetNext&&isCycleAllowed?list[listLength-1]:list[0]:(index+=shouldGetNext?1:-1,isCycleAllowed&&(index=(index+listLength)%listLength),list[Math.max(0,Math.min(index,listLength-1))])},namespaceRegex=/[^.]*(?=\..*)\.|.*/,stripNameRegex=/\..*/,stripUidRegex=/::\d+$/,eventRegistry={};let uidEvent=1;const customEvents={mouseenter:"mouseover",mouseleave:"mouseout"},nativeEvents=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function makeEventUid(element,uid){return uid&&`${uid}::${uidEvent++}`||element.uidEvent||uidEvent++}function getElementEvents(element){const uid=makeEventUid(element);return element.uidEvent=uid,eventRegistry[uid]=eventRegistry[uid]||{},eventRegistry[uid]}function findHandler(events,callable,delegationSelector=null){return Object.values(events).find((event=>event.callable===callable&&event.delegationSelector===delegationSelector))}function normalizeParameters(originalTypeEvent,handler,delegationFunction){const isDelegated="string"==typeof handler,callable=isDelegated?delegationFunction:handler||delegationFunction;let typeEvent=getTypeEvent(originalTypeEvent);return nativeEvents.has(typeEvent)||(typeEvent=originalTypeEvent),[isDelegated,callable,typeEvent]}function addHandler(element,originalTypeEvent,handler,delegationFunction,oneOff){if("string"!=typeof originalTypeEvent||!element)return;let[isDelegated,callable,typeEvent]=normalizeParameters(originalTypeEvent,handler,delegationFunction);if(originalTypeEvent in customEvents){const wrapFunction=fn=>function(event){if(!event.relatedTarget||event.relatedTarget!==event.delegateTarget&&!event.delegateTarget.contains(event.relatedTarget))return fn.call(this,event)};callable=wrapFunction(callable)}const events=getElementEvents(element),handlers=events[typeEvent]||(events[typeEvent]={}),previousFunction=findHandler(handlers,callable,isDelegated?handler:null);if(previousFunction)return void(previousFunction.oneOff=previousFunction.oneOff&&oneOff);const uid=makeEventUid(callable,originalTypeEvent.replace(namespaceRegex,"")),fn=isDelegated?function(element,selector,fn){return function handler(event){const domElements=element.querySelectorAll(selector);for(let{target:target}=event;target&&target!==this;target=target.parentNode)for(const domElement of domElements)if(domElement===target)return hydrateObj(event,{delegateTarget:target}),handler.oneOff&&EventHandler.off(element,event.type,selector,fn),fn.apply(target,[event])}}(element,handler,callable):function(element,fn){return function handler(event){return hydrateObj(event,{delegateTarget:element}),handler.oneOff&&EventHandler.off(element,event.type,fn),fn.apply(element,[event])}}(element,callable);fn.delegationSelector=isDelegated?handler:null,fn.callable=callable,fn.oneOff=oneOff,fn.uidEvent=uid,handlers[uid]=fn,element.addEventListener(typeEvent,fn,isDelegated)}function removeHandler(element,events,typeEvent,handler,delegationSelector){const fn=findHandler(events[typeEvent],handler,delegationSelector);fn&&(element.removeEventListener(typeEvent,fn,Boolean(delegationSelector)),delete events[typeEvent][fn.uidEvent])}function removeNamespacedHandlers(element,events,typeEvent,namespace){const storeElementEvent=events[typeEvent]||{};for(const[handlerKey,event]of Object.entries(storeElementEvent))handlerKey.includes(namespace)&&removeHandler(element,events,typeEvent,event.callable,event.delegationSelector)}function getTypeEvent(event){return event=event.replace(stripNameRegex,""),customEvents[event]||event}const EventHandler={on(element,event,handler,delegationFunction){addHandler(element,event,handler,delegationFunction,!1)},one(element,event,handler,delegationFunction){addHandler(element,event,handler,delegationFunction,!0)},off(element,originalTypeEvent,handler,delegationFunction){if("string"!=typeof originalTypeEvent||!element)return;const[isDelegated,callable,typeEvent]=normalizeParameters(originalTypeEvent,handler,delegationFunction),inNamespace=typeEvent!==originalTypeEvent,events=getElementEvents(element),storeElementEvent=events[typeEvent]||{},isNamespace=originalTypeEvent.startsWith(".");if(void 0===callable){if(isNamespace)for(const elementEvent of Object.keys(events))removeNamespacedHandlers(element,events,elementEvent,originalTypeEvent.slice(1));for(const[keyHandlers,event]of Object.entries(storeElementEvent)){const handlerKey=keyHandlers.replace(stripUidRegex,"");inNamespace&&!originalTypeEvent.includes(handlerKey)||removeHandler(element,events,typeEvent,event.callable,event.delegationSelector)}}else{if(!Object.keys(storeElementEvent).length)return;removeHandler(element,events,typeEvent,callable,isDelegated?handler:null)}},trigger(element,event,args){if("string"!=typeof event||!element)return null;const $=getjQuery();let jQueryEvent=null,bubbles=!0,nativeDispatch=!0,defaultPrevented=!1;event!==getTypeEvent(event)&&$&&(jQueryEvent=$.Event(event,args),$(element).trigger(jQueryEvent),bubbles=!jQueryEvent.isPropagationStopped(),nativeDispatch=!jQueryEvent.isImmediatePropagationStopped(),defaultPrevented=jQueryEvent.isDefaultPrevented());const evt=hydrateObj(new Event(event,{bubbles:bubbles,cancelable:!0}),args);return defaultPrevented&&evt.preventDefault(),nativeDispatch&&element.dispatchEvent(evt),evt.defaultPrevented&&jQueryEvent&&jQueryEvent.preventDefault(),evt}};function hydrateObj(obj,meta={}){for(const[key,value]of Object.entries(meta))try{obj[key]=value}catch(_unused){Object.defineProperty(obj,key,{configurable:!0,get:()=>value})}return obj}function normalizeData(value){if("true"===value)return!0;if("false"===value)return!1;if(value===Number(value).toString())return Number(value);if(""===value||"null"===value)return null;if("string"!=typeof value)return value;try{return JSON.parse(decodeURIComponent(value))}catch(_unused){return value}}function normalizeDataKey(key){return key.replace(/[A-Z]/g,(chr=>`-${chr.toLowerCase()}`))}const Manipulator={setDataAttribute(element,key,value){element.setAttribute(`data-bs-${normalizeDataKey(key)}`,value)},removeDataAttribute(element,key){element.removeAttribute(`data-bs-${normalizeDataKey(key)}`)},getDataAttributes(element){if(!element)return{};const attributes={},bsKeys=Object.keys(element.dataset).filter((key=>key.startsWith("bs")&&!key.startsWith("bsConfig")));for(const key of bsKeys){let pureKey=key.replace(/^bs/,"");pureKey=pureKey.charAt(0).toLowerCase()+pureKey.slice(1,pureKey.length),attributes[pureKey]=normalizeData(element.dataset[key])}return attributes},getDataAttribute:(element,key)=>normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`))};let Config$1=class{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(config){return config=this._mergeConfigObj(config),config=this._configAfterMerge(config),this._typeCheckConfig(config),config}_configAfterMerge(config){return config}_mergeConfigObj(config,element){const jsonConfig=isElement$2(element)?Manipulator.getDataAttribute(element,"config"):{};return{...this.constructor.Default,..."object"==typeof jsonConfig?jsonConfig:{},...isElement$2(element)?Manipulator.getDataAttributes(element):{},..."object"==typeof config?config:{}}}_typeCheckConfig(config,configTypes=this.constructor.DefaultType){for(const[property,expectedTypes]of Object.entries(configTypes)){const value=config[property],valueType=isElement$2(value)?"element":null==(object=value)?`${object}`:Object.prototype.toString.call(object).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(expectedTypes).test(valueType))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`)}var object}};class BaseComponent extends Config$1{constructor(element,config){super(),(element=getElement(element))&&(this._element=element,this._config=this._getConfig(config),Data.set(this._element,this.constructor.DATA_KEY,this))}dispose(){Data.remove(this._element,this.constructor.DATA_KEY),EventHandler.off(this._element,this.constructor.EVENT_KEY);for(const propertyName of Object.getOwnPropertyNames(this))this[propertyName]=null}_queueCallback(callback,element,isAnimated=!0){executeAfterTransition(callback,element,isAnimated)}_getConfig(config){return config=this._mergeConfigObj(config,this._element),config=this._configAfterMerge(config),this._typeCheckConfig(config),config}static getInstance(element){return Data.get(getElement(element),this.DATA_KEY)}static getOrCreateInstance(element,config={}){return this.getInstance(element)||new this(element,"object"==typeof config?config:null)}static get VERSION(){return"5.3.2"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(name){return`${name}${this.EVENT_KEY}`}}const getSelector=element=>{let selector=element.getAttribute("data-bs-target");if(!selector||"#"===selector){let hrefAttribute=element.getAttribute("href");if(!hrefAttribute||!hrefAttribute.includes("#")&&!hrefAttribute.startsWith("."))return null;hrefAttribute.includes("#")&&!hrefAttribute.startsWith("#")&&(hrefAttribute=`#${hrefAttribute.split("#")[1]}`),selector=hrefAttribute&&"#"!==hrefAttribute?parseSelector(hrefAttribute.trim()):null}return selector},SelectorEngine={find:(selector,element=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(element,selector)),findOne:(selector,element=document.documentElement)=>Element.prototype.querySelector.call(element,selector),children:(element,selector)=>[].concat(...element.children).filter((child=>child.matches(selector))),parents(element,selector){const parents=[];let ancestor=element.parentNode.closest(selector);for(;ancestor;)parents.push(ancestor),ancestor=ancestor.parentNode.closest(selector);return parents},prev(element,selector){let previous=element.previousElementSibling;for(;previous;){if(previous.matches(selector))return[previous];previous=previous.previousElementSibling}return[]},next(element,selector){let next=element.nextElementSibling;for(;next;){if(next.matches(selector))return[next];next=next.nextElementSibling}return[]},focusableChildren(element){const focusables=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((selector=>`${selector}:not([tabindex^="-"])`)).join(",");return this.find(focusables,element).filter((el=>!isDisabled(el)&&isVisible(el)))},getSelectorFromElement(element){const selector=getSelector(element);return selector&&SelectorEngine.findOne(selector)?selector:null},getElementFromSelector(element){const selector=getSelector(element);return selector?SelectorEngine.findOne(selector):null},getMultipleElementsFromSelector(element){const selector=getSelector(element);return selector?SelectorEngine.find(selector):[]}},enableDismissTrigger=(component,method="hide")=>{const clickEvent=`click.dismiss${component.EVENT_KEY}`,name=component.NAME;EventHandler.on(document,clickEvent,`[data-bs-dismiss="${name}"]`,(function(event){if(["A","AREA"].includes(this.tagName)&&event.preventDefault(),isDisabled(this))return;const target=SelectorEngine.getElementFromSelector(this)||this.closest(`.${name}`);component.getOrCreateInstance(target)[method]()}))};class Alert extends BaseComponent{static get NAME(){return"alert"}close(){if(EventHandler.trigger(this._element,"close.bs.alert").defaultPrevented)return;this._element.classList.remove("show");const isAnimated=this._element.classList.contains("fade");this._queueCallback((()=>this._destroyElement()),this._element,isAnimated)}_destroyElement(){this._element.remove(),EventHandler.trigger(this._element,"closed.bs.alert"),this.dispose()}static jQueryInterface(config){return this.each((function(){const data=Alert.getOrCreateInstance(this);if("string"==typeof config){if(void 0===data[config]||config.startsWith("_")||"constructor"===config)throw new TypeError(`No method named "${config}"`);data[config](this)}}))}}enableDismissTrigger(Alert,"close"),defineJQueryPlugin(Alert);class Button extends BaseComponent{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(config){return this.each((function(){const data=Button.getOrCreateInstance(this);"toggle"===config&&data[config]()}))}}EventHandler.on(document,"click.bs.button.data-api",'[data-bs-toggle="button"]',(event=>{event.preventDefault();const button=event.target.closest('[data-bs-toggle="button"]');Button.getOrCreateInstance(button).toggle()})),defineJQueryPlugin(Button);const Default$c={endCallback:null,leftCallback:null,rightCallback:null},DefaultType$c={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"};class Swipe extends Config$1{constructor(element,config){super(),this._element=element,element&&Swipe.isSupported()&&(this._config=this._getConfig(config),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return Default$c}static get DefaultType(){return DefaultType$c}static get NAME(){return"swipe"}dispose(){EventHandler.off(this._element,".bs.swipe")}_start(event){this._supportPointerEvents?this._eventIsPointerPenTouch(event)&&(this._deltaX=event.clientX):this._deltaX=event.touches[0].clientX}_end(event){this._eventIsPointerPenTouch(event)&&(this._deltaX=event.clientX-this._deltaX),this._handleSwipe(),execute(this._config.endCallback)}_move(event){this._deltaX=event.touches&&event.touches.length>1?0:event.touches[0].clientX-this._deltaX}_handleSwipe(){const absDeltaX=Math.abs(this._deltaX);if(absDeltaX<=40)return;const direction=absDeltaX/this._deltaX;this._deltaX=0,direction&&execute(direction>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(EventHandler.on(this._element,"pointerdown.bs.swipe",(event=>this._start(event))),EventHandler.on(this._element,"pointerup.bs.swipe",(event=>this._end(event))),this._element.classList.add("pointer-event")):(EventHandler.on(this._element,"touchstart.bs.swipe",(event=>this._start(event))),EventHandler.on(this._element,"touchmove.bs.swipe",(event=>this._move(event))),EventHandler.on(this._element,"touchend.bs.swipe",(event=>this._end(event))))}_eventIsPointerPenTouch(event){return this._supportPointerEvents&&("pen"===event.pointerType||"touch"===event.pointerType)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const KEY_TO_DIRECTION={ArrowLeft:"right",ArrowRight:"left"},Default$b={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},DefaultType$b={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class Carousel extends BaseComponent{constructor(element,config){super(element,config),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=SelectorEngine.findOne(".carousel-indicators",this._element),this._addEventListeners(),"carousel"===this._config.ride&&this.cycle()}static get Default(){return Default$b}static get DefaultType(){return DefaultType$b}static get NAME(){return"carousel"}next(){this._slide("next")}nextWhenVisible(){!document.hidden&&isVisible(this._element)&&this.next()}prev(){this._slide("prev")}pause(){this._isSliding&&triggerTransitionEnd(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval((()=>this.nextWhenVisible()),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?EventHandler.one(this._element,"slid.bs.carousel",(()=>this.cycle())):this.cycle())}to(index){const items=this._getItems();if(index>items.length-1||index<0)return;if(this._isSliding)return void EventHandler.one(this._element,"slid.bs.carousel",(()=>this.to(index)));const activeIndex=this._getItemIndex(this._getActive());if(activeIndex===index)return;const order=index>activeIndex?"next":"prev";this._slide(order,items[index])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(config){return config.defaultInterval=config.interval,config}_addEventListeners(){this._config.keyboard&&EventHandler.on(this._element,"keydown.bs.carousel",(event=>this._keydown(event))),"hover"===this._config.pause&&(EventHandler.on(this._element,"mouseenter.bs.carousel",(()=>this.pause())),EventHandler.on(this._element,"mouseleave.bs.carousel",(()=>this._maybeEnableCycle()))),this._config.touch&&Swipe.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const img of SelectorEngine.find(".carousel-item img",this._element))EventHandler.on(img,"dragstart.bs.carousel",(event=>event.preventDefault()));const swipeConfig={leftCallback:()=>this._slide(this._directionToOrder("left")),rightCallback:()=>this._slide(this._directionToOrder("right")),endCallback:()=>{"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((()=>this._maybeEnableCycle()),500+this._config.interval))}};this._swipeHelper=new Swipe(this._element,swipeConfig)}_keydown(event){if(/input|textarea/i.test(event.target.tagName))return;const direction=KEY_TO_DIRECTION[event.key];direction&&(event.preventDefault(),this._slide(this._directionToOrder(direction)))}_getItemIndex(element){return this._getItems().indexOf(element)}_setActiveIndicatorElement(index){if(!this._indicatorsElement)return;const activeIndicator=SelectorEngine.findOne(".active",this._indicatorsElement);activeIndicator.classList.remove("active"),activeIndicator.removeAttribute("aria-current");const newActiveIndicator=SelectorEngine.findOne(`[data-bs-slide-to="${index}"]`,this._indicatorsElement);newActiveIndicator&&(newActiveIndicator.classList.add("active"),newActiveIndicator.setAttribute("aria-current","true"))}_updateInterval(){const element=this._activeElement||this._getActive();if(!element)return;const elementInterval=Number.parseInt(element.getAttribute("data-bs-interval"),10);this._config.interval=elementInterval||this._config.defaultInterval}_slide(order,element=null){if(this._isSliding)return;const activeElement=this._getActive(),isNext="next"===order,nextElement=element||getNextActiveElement(this._getItems(),activeElement,isNext,this._config.wrap);if(nextElement===activeElement)return;const nextElementIndex=this._getItemIndex(nextElement),triggerEvent=eventName=>EventHandler.trigger(this._element,eventName,{relatedTarget:nextElement,direction:this._orderToDirection(order),from:this._getItemIndex(activeElement),to:nextElementIndex});if(triggerEvent("slide.bs.carousel").defaultPrevented)return;if(!activeElement||!nextElement)return;const isCycling=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(nextElementIndex),this._activeElement=nextElement;const directionalClassName=isNext?"carousel-item-start":"carousel-item-end",orderClassName=isNext?"carousel-item-next":"carousel-item-prev";nextElement.classList.add(orderClassName),reflow(nextElement),activeElement.classList.add(directionalClassName),nextElement.classList.add(directionalClassName);this._queueCallback((()=>{nextElement.classList.remove(directionalClassName,orderClassName),nextElement.classList.add("active"),activeElement.classList.remove("active",orderClassName,directionalClassName),this._isSliding=!1,triggerEvent("slid.bs.carousel")}),activeElement,this._isAnimated()),isCycling&&this.cycle()}_isAnimated(){return this._element.classList.contains("slide")}_getActive(){return SelectorEngine.findOne(".active.carousel-item",this._element)}_getItems(){return SelectorEngine.find(".carousel-item",this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(direction){return isRTL$1()?"left"===direction?"prev":"next":"left"===direction?"next":"prev"}_orderToDirection(order){return isRTL$1()?"prev"===order?"left":"right":"prev"===order?"right":"left"}static jQueryInterface(config){return this.each((function(){const data=Carousel.getOrCreateInstance(this,config);if("number"!=typeof config){if("string"==typeof config){if(void 0===data[config]||config.startsWith("_")||"constructor"===config)throw new TypeError(`No method named "${config}"`);data[config]()}}else data.to(config)}))}}EventHandler.on(document,"click.bs.carousel.data-api","[data-bs-slide], [data-bs-slide-to]",(function(event){const target=SelectorEngine.getElementFromSelector(this);if(!target||!target.classList.contains("carousel"))return;event.preventDefault();const carousel=Carousel.getOrCreateInstance(target),slideIndex=this.getAttribute("data-bs-slide-to");return slideIndex?(carousel.to(slideIndex),void carousel._maybeEnableCycle()):"next"===Manipulator.getDataAttribute(this,"slide")?(carousel.next(),void carousel._maybeEnableCycle()):(carousel.prev(),void carousel._maybeEnableCycle())})),EventHandler.on(window,"load.bs.carousel.data-api",(()=>{const carousels=SelectorEngine.find('[data-bs-ride="carousel"]');for(const carousel of carousels)Carousel.getOrCreateInstance(carousel)})),defineJQueryPlugin(Carousel);const Default$a={parent:null,toggle:!0},DefaultType$a={parent:"(null|element)",toggle:"boolean"};class Collapse extends BaseComponent{constructor(element,config){super(element,config),this._isTransitioning=!1,this._triggerArray=[];const toggleList=SelectorEngine.find('[data-bs-toggle="collapse"]');for(const elem of toggleList){const selector=SelectorEngine.getSelectorFromElement(elem),filterElement=SelectorEngine.find(selector).filter((foundElement=>foundElement===this._element));null!==selector&&filterElement.length&&this._triggerArray.push(elem)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return Default$a}static get DefaultType(){return DefaultType$a}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let activeChildren=[];if(this._config.parent&&(activeChildren=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter((element=>element!==this._element)).map((element=>Collapse.getOrCreateInstance(element,{toggle:!1})))),activeChildren.length&&activeChildren[0]._isTransitioning)return;if(EventHandler.trigger(this._element,"show.bs.collapse").defaultPrevented)return;for(const activeInstance of activeChildren)activeInstance.hide();const dimension=this._getDimension();this._element.classList.remove("collapse"),this._element.classList.add("collapsing"),this._element.style[dimension]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const scrollSize=`scroll${dimension[0].toUpperCase()+dimension.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove("collapsing"),this._element.classList.add("collapse","show"),this._element.style[dimension]="",EventHandler.trigger(this._element,"shown.bs.collapse")}),this._element,!0),this._element.style[dimension]=`${this._element[scrollSize]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(EventHandler.trigger(this._element,"hide.bs.collapse").defaultPrevented)return;const dimension=this._getDimension();this._element.style[dimension]=`${this._element.getBoundingClientRect()[dimension]}px`,reflow(this._element),this._element.classList.add("collapsing"),this._element.classList.remove("collapse","show");for(const trigger of this._triggerArray){const element=SelectorEngine.getElementFromSelector(trigger);element&&!this._isShown(element)&&this._addAriaAndCollapsedClass([trigger],!1)}this._isTransitioning=!0;this._element.style[dimension]="",this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove("collapsing"),this._element.classList.add("collapse"),EventHandler.trigger(this._element,"hidden.bs.collapse")}),this._element,!0)}_isShown(element=this._element){return element.classList.contains("show")}_configAfterMerge(config){return config.toggle=Boolean(config.toggle),config.parent=getElement(config.parent),config}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const children=this._getFirstLevelChildren('[data-bs-toggle="collapse"]');for(const element of children){const selected=SelectorEngine.getElementFromSelector(element);selected&&this._addAriaAndCollapsedClass([element],this._isShown(selected))}}_getFirstLevelChildren(selector){const children=SelectorEngine.find(":scope .collapse .collapse",this._config.parent);return SelectorEngine.find(selector,this._config.parent).filter((element=>!children.includes(element)))}_addAriaAndCollapsedClass(triggerArray,isOpen){if(triggerArray.length)for(const element of triggerArray)element.classList.toggle("collapsed",!isOpen),element.setAttribute("aria-expanded",isOpen)}static jQueryInterface(config){const _config={};return"string"==typeof config&&/show|hide/.test(config)&&(_config.toggle=!1),this.each((function(){const data=Collapse.getOrCreateInstance(this,_config);if("string"==typeof config){if(void 0===data[config])throw new TypeError(`No method named "${config}"`);data[config]()}}))}}EventHandler.on(document,"click.bs.collapse.data-api",'[data-bs-toggle="collapse"]',(function(event){("A"===event.target.tagName||event.delegateTarget&&"A"===event.delegateTarget.tagName)&&event.preventDefault();for(const element of SelectorEngine.getMultipleElementsFromSelector(this))Collapse.getOrCreateInstance(element,{toggle:!1}).toggle()})),defineJQueryPlugin(Collapse);const ARROW_UP_KEY$1="ArrowUp",ARROW_DOWN_KEY$1="ArrowDown",SELECTOR_DATA_TOGGLE$3='[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)',SELECTOR_DATA_TOGGLE_SHOWN=`${SELECTOR_DATA_TOGGLE$3}.show`,PLACEMENT_TOP=isRTL$1()?"top-end":"top-start",PLACEMENT_TOPEND=isRTL$1()?"top-start":"top-end",PLACEMENT_BOTTOM=isRTL$1()?"bottom-end":"bottom-start",PLACEMENT_BOTTOMEND=isRTL$1()?"bottom-start":"bottom-end",PLACEMENT_RIGHT=isRTL$1()?"left-start":"right-start",PLACEMENT_LEFT=isRTL$1()?"right-start":"left-start",Default$9={autoClose:!0,boundary:"clippingParents",display:"dynamic",offset:[0,2],popperConfig:null,reference:"toggle"},DefaultType$9={autoClose:"(boolean|string)",boundary:"(string|element)",display:"string",offset:"(array|string|function)",popperConfig:"(null|object|function)",reference:"(string|element|object)"};class Dropdown extends BaseComponent{constructor(element,config){super(element,config),this._popper=null,this._parent=this._element.parentNode,this._menu=SelectorEngine.next(this._element,".dropdown-menu")[0]||SelectorEngine.prev(this._element,".dropdown-menu")[0]||SelectorEngine.findOne(".dropdown-menu",this._parent),this._inNavbar=this._detectNavbar()}static get Default(){return Default$9}static get DefaultType(){return DefaultType$9}static get NAME(){return"dropdown"}toggle(){return this._isShown()?this.hide():this.show()}show(){if(isDisabled(this._element)||this._isShown())return;const relatedTarget={relatedTarget:this._element};if(!EventHandler.trigger(this._element,"show.bs.dropdown",relatedTarget).defaultPrevented){if(this._createPopper(),"ontouchstart"in document.documentElement&&!this._parent.closest(".navbar-nav"))for(const element of[].concat(...document.body.children))EventHandler.on(element,"mouseover",noop$1);this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add("show"),this._element.classList.add("show"),EventHandler.trigger(this._element,"shown.bs.dropdown",relatedTarget)}}hide(){if(isDisabled(this._element)||!this._isShown())return;const relatedTarget={relatedTarget:this._element};this._completeHide(relatedTarget)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(relatedTarget){if(!EventHandler.trigger(this._element,"hide.bs.dropdown",relatedTarget).defaultPrevented){if("ontouchstart"in document.documentElement)for(const element of[].concat(...document.body.children))EventHandler.off(element,"mouseover",noop$1);this._popper&&this._popper.destroy(),this._menu.classList.remove("show"),this._element.classList.remove("show"),this._element.setAttribute("aria-expanded","false"),Manipulator.removeDataAttribute(this._menu,"popper"),EventHandler.trigger(this._element,"hidden.bs.dropdown",relatedTarget)}}_getConfig(config){if("object"==typeof(config=super._getConfig(config)).reference&&!isElement$2(config.reference)&&"function"!=typeof config.reference.getBoundingClientRect)throw new TypeError(`${"dropdown".toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return config}_createPopper(){if(void 0===Popper)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let referenceElement=this._element;"parent"===this._config.reference?referenceElement=this._parent:isElement$2(this._config.reference)?referenceElement=getElement(this._config.reference):"object"==typeof this._config.reference&&(referenceElement=this._config.reference);const popperConfig=this._getPopperConfig();this._popper=createPopper(referenceElement,this._menu,popperConfig)}_isShown(){return this._menu.classList.contains("show")}_getPlacement(){const parentDropdown=this._parent;if(parentDropdown.classList.contains("dropend"))return PLACEMENT_RIGHT;if(parentDropdown.classList.contains("dropstart"))return PLACEMENT_LEFT;if(parentDropdown.classList.contains("dropup-center"))return"top";if(parentDropdown.classList.contains("dropdown-center"))return"bottom";const isEnd="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return parentDropdown.classList.contains("dropup")?isEnd?PLACEMENT_TOPEND:PLACEMENT_TOP:isEnd?PLACEMENT_BOTTOMEND:PLACEMENT_BOTTOM}_detectNavbar(){return null!==this._element.closest(".navbar")}_getOffset(){const{offset:offset}=this._config;return"string"==typeof offset?offset.split(",").map((value=>Number.parseInt(value,10))):"function"==typeof offset?popperData=>offset(popperData,this._element):offset}_getPopperConfig(){const defaultBsPopperConfig={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||"static"===this._config.display)&&(Manipulator.setDataAttribute(this._menu,"popper","static"),defaultBsPopperConfig.modifiers=[{name:"applyStyles",enabled:!1}]),{...defaultBsPopperConfig,...execute(this._config.popperConfig,[defaultBsPopperConfig])}}_selectMenuItem({key:key,target:target}){const items=SelectorEngine.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter((element=>isVisible(element)));items.length&&getNextActiveElement(items,target,key===ARROW_DOWN_KEY$1,!items.includes(target)).focus()}static jQueryInterface(config){return this.each((function(){const data=Dropdown.getOrCreateInstance(this,config);if("string"==typeof config){if(void 0===data[config])throw new TypeError(`No method named "${config}"`);data[config]()}}))}static clearMenus(event){if(2===event.button||"keyup"===event.type&&"Tab"!==event.key)return;const openToggles=SelectorEngine.find(SELECTOR_DATA_TOGGLE_SHOWN);for(const toggle of openToggles){const context=Dropdown.getInstance(toggle);if(!context||!1===context._config.autoClose)continue;const composedPath=event.composedPath(),isMenuTarget=composedPath.includes(context._menu);if(composedPath.includes(context._element)||"inside"===context._config.autoClose&&!isMenuTarget||"outside"===context._config.autoClose&&isMenuTarget)continue;if(context._menu.contains(event.target)&&("keyup"===event.type&&"Tab"===event.key||/input|select|option|textarea|form/i.test(event.target.tagName)))continue;const relatedTarget={relatedTarget:context._element};"click"===event.type&&(relatedTarget.clickEvent=event),context._completeHide(relatedTarget)}}static dataApiKeydownHandler(event){const isInput=/input|textarea/i.test(event.target.tagName),isEscapeEvent="Escape"===event.key,isUpOrDownEvent=[ARROW_UP_KEY$1,ARROW_DOWN_KEY$1].includes(event.key);if(!isUpOrDownEvent&&!isEscapeEvent)return;if(isInput&&!isEscapeEvent)return;event.preventDefault();const getToggleButton=this.matches(SELECTOR_DATA_TOGGLE$3)?this:SelectorEngine.prev(this,SELECTOR_DATA_TOGGLE$3)[0]||SelectorEngine.next(this,SELECTOR_DATA_TOGGLE$3)[0]||SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3,event.delegateTarget.parentNode),instance=Dropdown.getOrCreateInstance(getToggleButton);if(isUpOrDownEvent)return event.stopPropagation(),instance.show(),void instance._selectMenuItem(event);instance._isShown()&&(event.stopPropagation(),instance.hide(),getToggleButton.focus())}}EventHandler.on(document,"keydown.bs.dropdown.data-api",SELECTOR_DATA_TOGGLE$3,Dropdown.dataApiKeydownHandler),EventHandler.on(document,"keydown.bs.dropdown.data-api",".dropdown-menu",Dropdown.dataApiKeydownHandler),EventHandler.on(document,"click.bs.dropdown.data-api",Dropdown.clearMenus),EventHandler.on(document,"keyup.bs.dropdown.data-api",Dropdown.clearMenus),EventHandler.on(document,"click.bs.dropdown.data-api",SELECTOR_DATA_TOGGLE$3,(function(event){event.preventDefault(),Dropdown.getOrCreateInstance(this).toggle()})),defineJQueryPlugin(Dropdown);const Default$8={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},DefaultType$8={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"};class Backdrop extends Config$1{constructor(config){super(),this._config=this._getConfig(config),this._isAppended=!1,this._element=null}static get Default(){return Default$8}static get DefaultType(){return DefaultType$8}static get NAME(){return"backdrop"}show(callback){if(!this._config.isVisible)return void execute(callback);this._append();const element=this._getElement();this._config.isAnimated&&reflow(element),element.classList.add("show"),this._emulateAnimation((()=>{execute(callback)}))}hide(callback){this._config.isVisible?(this._getElement().classList.remove("show"),this._emulateAnimation((()=>{this.dispose(),execute(callback)}))):execute(callback)}dispose(){this._isAppended&&(EventHandler.off(this._element,"mousedown.bs.backdrop"),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const backdrop=document.createElement("div");backdrop.className=this._config.className,this._config.isAnimated&&backdrop.classList.add("fade"),this._element=backdrop}return this._element}_configAfterMerge(config){return config.rootElement=getElement(config.rootElement),config}_append(){if(this._isAppended)return;const element=this._getElement();this._config.rootElement.append(element),EventHandler.on(element,"mousedown.bs.backdrop",(()=>{execute(this._config.clickCallback)})),this._isAppended=!0}_emulateAnimation(callback){executeAfterTransition(callback,this._getElement(),this._config.isAnimated)}}const Default$7={autofocus:!0,trapElement:null},DefaultType$7={autofocus:"boolean",trapElement:"element"};class FocusTrap extends Config$1{constructor(config){super(),this._config=this._getConfig(config),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return Default$7}static get DefaultType(){return DefaultType$7}static get NAME(){return"focustrap"}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),EventHandler.off(document,".bs.focustrap"),EventHandler.on(document,"focusin.bs.focustrap",(event=>this._handleFocusin(event))),EventHandler.on(document,"keydown.tab.bs.focustrap",(event=>this._handleKeydown(event))),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,EventHandler.off(document,".bs.focustrap"))}_handleFocusin(event){const{trapElement:trapElement}=this._config;if(event.target===document||event.target===trapElement||trapElement.contains(event.target))return;const elements=SelectorEngine.focusableChildren(trapElement);0===elements.length?trapElement.focus():"backward"===this._lastTabNavDirection?elements[elements.length-1].focus():elements[0].focus()}_handleKeydown(event){"Tab"===event.key&&(this._lastTabNavDirection=event.shiftKey?"backward":"forward")}}class ScrollBarHelper{constructor(){this._element=document.body}getWidth(){const documentWidth=document.documentElement.clientWidth;return Math.abs(window.innerWidth-documentWidth)}hide(){const width=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,"padding-right",(calculatedValue=>calculatedValue+width)),this._setElementAttributes(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top","padding-right",(calculatedValue=>calculatedValue+width)),this._setElementAttributes(".sticky-top","margin-right",(calculatedValue=>calculatedValue-width))}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,"padding-right"),this._resetElementAttributes(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top","padding-right"),this._resetElementAttributes(".sticky-top","margin-right")}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(selector,styleProperty,callback){const scrollbarWidth=this.getWidth();this._applyManipulationCallback(selector,(element=>{if(element!==this._element&&window.innerWidth>element.clientWidth+scrollbarWidth)return;this._saveInitialAttribute(element,styleProperty);const calculatedValue=window.getComputedStyle(element).getPropertyValue(styleProperty);element.style.setProperty(styleProperty,`${callback(Number.parseFloat(calculatedValue))}px`)}))}_saveInitialAttribute(element,styleProperty){const actualValue=element.style.getPropertyValue(styleProperty);actualValue&&Manipulator.setDataAttribute(element,styleProperty,actualValue)}_resetElementAttributes(selector,styleProperty){this._applyManipulationCallback(selector,(element=>{const value=Manipulator.getDataAttribute(element,styleProperty);null!==value?(Manipulator.removeDataAttribute(element,styleProperty),element.style.setProperty(styleProperty,value)):element.style.removeProperty(styleProperty)}))}_applyManipulationCallback(selector,callBack){if(isElement$2(selector))callBack(selector);else for(const sel of SelectorEngine.find(selector,this._element))callBack(sel)}}const Default$6={backdrop:!0,focus:!0,keyboard:!0},DefaultType$6={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"};class Modal extends BaseComponent{constructor(element,config){super(element,config),this._dialog=SelectorEngine.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new ScrollBarHelper,this._addEventListeners()}static get Default(){return Default$6}static get DefaultType(){return DefaultType$6}static get NAME(){return"modal"}toggle(relatedTarget){return this._isShown?this.hide():this.show(relatedTarget)}show(relatedTarget){if(this._isShown||this._isTransitioning)return;EventHandler.trigger(this._element,"show.bs.modal",{relatedTarget:relatedTarget}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add("modal-open"),this._adjustDialog(),this._backdrop.show((()=>this._showElement(relatedTarget))))}hide(){if(!this._isShown||this._isTransitioning)return;EventHandler.trigger(this._element,"hide.bs.modal").defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove("show"),this._queueCallback((()=>this._hideModal()),this._element,this._isAnimated()))}dispose(){EventHandler.off(window,".bs.modal"),EventHandler.off(this._dialog,".bs.modal"),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new Backdrop({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new FocusTrap({trapElement:this._element})}_showElement(relatedTarget){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;const modalBody=SelectorEngine.findOne(".modal-body",this._dialog);modalBody&&(modalBody.scrollTop=0),reflow(this._element),this._element.classList.add("show");this._queueCallback((()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,EventHandler.trigger(this._element,"shown.bs.modal",{relatedTarget:relatedTarget})}),this._dialog,this._isAnimated())}_addEventListeners(){EventHandler.on(this._element,"keydown.dismiss.bs.modal",(event=>{"Escape"===event.key&&(this._config.keyboard?this.hide():this._triggerBackdropTransition())})),EventHandler.on(window,"resize.bs.modal",(()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()})),EventHandler.on(this._element,"mousedown.dismiss.bs.modal",(event=>{EventHandler.one(this._element,"click.dismiss.bs.modal",(event2=>{this._element===event.target&&this._element===event2.target&&("static"!==this._config.backdrop?this._config.backdrop&&this.hide():this._triggerBackdropTransition())}))}))}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide((()=>{document.body.classList.remove("modal-open"),this._resetAdjustments(),this._scrollBar.reset(),EventHandler.trigger(this._element,"hidden.bs.modal")}))}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(EventHandler.trigger(this._element,"hidePrevented.bs.modal").defaultPrevented)return;const isModalOverflowing=this._element.scrollHeight>document.documentElement.clientHeight,initialOverflowY=this._element.style.overflowY;"hidden"===initialOverflowY||this._element.classList.contains("modal-static")||(isModalOverflowing||(this._element.style.overflowY="hidden"),this._element.classList.add("modal-static"),this._queueCallback((()=>{this._element.classList.remove("modal-static"),this._queueCallback((()=>{this._element.style.overflowY=initialOverflowY}),this._dialog)}),this._dialog),this._element.focus())}_adjustDialog(){const isModalOverflowing=this._element.scrollHeight>document.documentElement.clientHeight,scrollbarWidth=this._scrollBar.getWidth(),isBodyOverflowing=scrollbarWidth>0;if(isBodyOverflowing&&!isModalOverflowing){const property=isRTL$1()?"paddingLeft":"paddingRight";this._element.style[property]=`${scrollbarWidth}px`}if(!isBodyOverflowing&&isModalOverflowing){const property=isRTL$1()?"paddingRight":"paddingLeft";this._element.style[property]=`${scrollbarWidth}px`}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(config,relatedTarget){return this.each((function(){const data=Modal.getOrCreateInstance(this,config);if("string"==typeof config){if(void 0===data[config])throw new TypeError(`No method named "${config}"`);data[config](relatedTarget)}}))}}EventHandler.on(document,"click.bs.modal.data-api",'[data-bs-toggle="modal"]',(function(event){const target=SelectorEngine.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&event.preventDefault(),EventHandler.one(target,"show.bs.modal",(showEvent=>{showEvent.defaultPrevented||EventHandler.one(target,"hidden.bs.modal",(()=>{isVisible(this)&&this.focus()}))}));const alreadyOpen=SelectorEngine.findOne(".modal.show");alreadyOpen&&Modal.getInstance(alreadyOpen).hide();Modal.getOrCreateInstance(target).toggle(this)})),enableDismissTrigger(Modal),defineJQueryPlugin(Modal);const EVENT_KEY$3=".bs.offcanvas",EVENT_LOAD_DATA_API$2=`load${EVENT_KEY$3}.data-api`,EVENT_SHOW$3=`show${EVENT_KEY$3}`,EVENT_SHOWN$3=`shown${EVENT_KEY$3}`,EVENT_HIDE$3=`hide${EVENT_KEY$3}`,EVENT_HIDE_PREVENTED=`hidePrevented${EVENT_KEY$3}`,EVENT_HIDDEN$3=`hidden${EVENT_KEY$3}`,EVENT_RESIZE=`resize${EVENT_KEY$3}`,EVENT_CLICK_DATA_API$1=`click${EVENT_KEY$3}.data-api`,EVENT_KEYDOWN_DISMISS=`keydown.dismiss${EVENT_KEY$3}`,Default$5={backdrop:!0,keyboard:!0,scroll:!1},DefaultType$5={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class Offcanvas extends BaseComponent{constructor(element,config){super(element,config),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return Default$5}static get DefaultType(){return DefaultType$5}static get NAME(){return"offcanvas"}toggle(relatedTarget){return this._isShown?this.hide():this.show(relatedTarget)}show(relatedTarget){if(this._isShown)return;if(EventHandler.trigger(this._element,EVENT_SHOW$3,{relatedTarget:relatedTarget}).defaultPrevented)return;this._isShown=!0,this._backdrop.show(),this._config.scroll||(new ScrollBarHelper).hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add("showing");this._queueCallback((()=>{this._config.scroll&&!this._config.backdrop||this._focustrap.activate(),this._element.classList.add("show"),this._element.classList.remove("showing"),EventHandler.trigger(this._element,EVENT_SHOWN$3,{relatedTarget:relatedTarget})}),this._element,!0)}hide(){if(!this._isShown)return;if(EventHandler.trigger(this._element,EVENT_HIDE$3).defaultPrevented)return;this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add("hiding"),this._backdrop.hide();this._queueCallback((()=>{this._element.classList.remove("show","hiding"),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||(new ScrollBarHelper).reset(),EventHandler.trigger(this._element,EVENT_HIDDEN$3)}),this._element,!0)}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const isVisible=Boolean(this._config.backdrop);return new Backdrop({className:"offcanvas-backdrop",isVisible:isVisible,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:isVisible?()=>{"static"!==this._config.backdrop?this.hide():EventHandler.trigger(this._element,EVENT_HIDE_PREVENTED)}:null})}_initializeFocusTrap(){return new FocusTrap({trapElement:this._element})}_addEventListeners(){EventHandler.on(this._element,EVENT_KEYDOWN_DISMISS,(event=>{"Escape"===event.key&&(this._config.keyboard?this.hide():EventHandler.trigger(this._element,EVENT_HIDE_PREVENTED))}))}static jQueryInterface(config){return this.each((function(){const data=Offcanvas.getOrCreateInstance(this,config);if("string"==typeof config){if(void 0===data[config]||config.startsWith("_")||"constructor"===config)throw new TypeError(`No method named "${config}"`);data[config](this)}}))}}EventHandler.on(document,EVENT_CLICK_DATA_API$1,'[data-bs-toggle="offcanvas"]',(function(event){const target=SelectorEngine.getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&event.preventDefault(),isDisabled(this))return;EventHandler.one(target,EVENT_HIDDEN$3,(()=>{isVisible(this)&&this.focus()}));const alreadyOpen=SelectorEngine.findOne(".offcanvas.show");alreadyOpen&&alreadyOpen!==target&&Offcanvas.getInstance(alreadyOpen).hide();Offcanvas.getOrCreateInstance(target).toggle(this)})),EventHandler.on(window,EVENT_LOAD_DATA_API$2,(()=>{for(const selector of SelectorEngine.find(".offcanvas.show"))Offcanvas.getOrCreateInstance(selector).show()})),EventHandler.on(window,EVENT_RESIZE,(()=>{for(const element of SelectorEngine.find("[aria-modal][class*=show][class*=offcanvas-]"))"fixed"!==getComputedStyle(element).position&&Offcanvas.getOrCreateInstance(element).hide()})),enableDismissTrigger(Offcanvas),defineJQueryPlugin(Offcanvas);const DefaultAllowlist={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},uriAttributes=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),SAFE_URL_PATTERN=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,allowedAttribute=(attribute,allowedAttributeList)=>{const attributeName=attribute.nodeName.toLowerCase();return allowedAttributeList.includes(attributeName)?!uriAttributes.has(attributeName)||Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue)):allowedAttributeList.filter((attributeRegex=>attributeRegex instanceof RegExp)).some((regex=>regex.test(attributeName)))};const Default$4={allowList:DefaultAllowlist,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"
"},DefaultType$4={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},DefaultContentType={entry:"(string|element|function|null)",selector:"(string|element)"};class TemplateFactory extends Config$1{constructor(config){super(),this._config=this._getConfig(config)}static get Default(){return Default$4}static get DefaultType(){return DefaultType$4}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map((config=>this._resolvePossibleFunction(config))).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(content){return this._checkContent(content),this._config.content={...this._config.content,...content},this}toHtml(){const templateWrapper=document.createElement("div");templateWrapper.innerHTML=this._maybeSanitize(this._config.template);for(const[selector,text]of Object.entries(this._config.content))this._setContent(templateWrapper,text,selector);const template=templateWrapper.children[0],extraClass=this._resolvePossibleFunction(this._config.extraClass);return extraClass&&template.classList.add(...extraClass.split(" ")),template}_typeCheckConfig(config){super._typeCheckConfig(config),this._checkContent(config.content)}_checkContent(arg){for(const[selector,content]of Object.entries(arg))super._typeCheckConfig({selector:selector,entry:content},DefaultContentType)}_setContent(template,content,selector){const templateElement=SelectorEngine.findOne(selector,template);templateElement&&((content=this._resolvePossibleFunction(content))?isElement$2(content)?this._putElementInTemplate(getElement(content),templateElement):this._config.html?templateElement.innerHTML=this._maybeSanitize(content):templateElement.textContent=content:templateElement.remove())}_maybeSanitize(arg){return this._config.sanitize?function(unsafeHtml,allowList,sanitizeFunction){if(!unsafeHtml.length)return unsafeHtml;if(sanitizeFunction&&"function"==typeof sanitizeFunction)return sanitizeFunction(unsafeHtml);const createdDocument=(new window.DOMParser).parseFromString(unsafeHtml,"text/html"),elements=[].concat(...createdDocument.body.querySelectorAll("*"));for(const element of elements){const elementName=element.nodeName.toLowerCase();if(!Object.keys(allowList).includes(elementName)){element.remove();continue}const attributeList=[].concat(...element.attributes),allowedAttributes=[].concat(allowList["*"]||[],allowList[elementName]||[]);for(const attribute of attributeList)allowedAttribute(attribute,allowedAttributes)||element.removeAttribute(attribute.nodeName)}return createdDocument.body.innerHTML}(arg,this._config.allowList,this._config.sanitizeFn):arg}_resolvePossibleFunction(arg){return execute(arg,[this])}_putElementInTemplate(element,templateElement){if(this._config.html)return templateElement.innerHTML="",void templateElement.append(element);templateElement.textContent=element.textContent}}const DISALLOWED_ATTRIBUTES=new Set(["sanitize","allowList","sanitizeFn"]),AttachmentMap={AUTO:"auto",TOP:"top",RIGHT:isRTL$1()?"left":"right",BOTTOM:"bottom",LEFT:isRTL$1()?"right":"left"},Default$3={allowList:DefaultAllowlist,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},DefaultType$3={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class Tooltip extends BaseComponent{constructor(element,config){if(void 0===Popper)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(element,config),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return Default$3}static get DefaultType(){return DefaultType$3}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),EventHandler.off(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const showEvent=EventHandler.trigger(this._element,this.constructor.eventName("show")),isInTheDom=(findShadowRoot(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(showEvent.defaultPrevented||!isInTheDom)return;this._disposePopper();const tip=this._getTipElement();this._element.setAttribute("aria-describedby",tip.getAttribute("id"));const{container:container}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(container.append(tip),EventHandler.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(tip),tip.classList.add("show"),"ontouchstart"in document.documentElement)for(const element of[].concat(...document.body.children))EventHandler.on(element,"mouseover",noop$1);this._queueCallback((()=>{EventHandler.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}hide(){if(!this._isShown())return;if(EventHandler.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented)return;if(this._getTipElement().classList.remove("show"),"ontouchstart"in document.documentElement)for(const element of[].concat(...document.body.children))EventHandler.off(element,"mouseover",noop$1);this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,this._isHovered=null;this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),EventHandler.trigger(this._element,this.constructor.eventName("hidden")))}),this.tip,this._isAnimated())}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(content){const tip=this._getTemplateFactory(content).toHtml();if(!tip)return null;tip.classList.remove("fade","show"),tip.classList.add(`bs-${this.constructor.NAME}-auto`);const tipId=(prefix=>{do{prefix+=Math.floor(1e6*Math.random())}while(document.getElementById(prefix));return prefix})(this.constructor.NAME).toString();return tip.setAttribute("id",tipId),this._isAnimated()&&tip.classList.add("fade"),tip}setContent(content){this._newContent=content,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(content){return this._templateFactory?this._templateFactory.changeContent(content):this._templateFactory=new TemplateFactory({...this._config,content:content,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{".tooltip-inner":this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(event){return this.constructor.getOrCreateInstance(event.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains("fade")}_isShown(){return this.tip&&this.tip.classList.contains("show")}_createPopper(tip){const placement=execute(this._config.placement,[this,tip,this._element]),attachment=AttachmentMap[placement.toUpperCase()];return createPopper(this._element,tip,this._getPopperConfig(attachment))}_getOffset(){const{offset:offset}=this._config;return"string"==typeof offset?offset.split(",").map((value=>Number.parseInt(value,10))):"function"==typeof offset?popperData=>offset(popperData,this._element):offset}_resolvePossibleFunction(arg){return execute(arg,[this._element])}_getPopperConfig(attachment){const defaultBsPopperConfig={placement:attachment,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:data=>{this._getTipElement().setAttribute("data-popper-placement",data.state.placement)}}]};return{...defaultBsPopperConfig,...execute(this._config.popperConfig,[defaultBsPopperConfig])}}_setListeners(){const triggers=this._config.trigger.split(" ");for(const trigger of triggers)if("click"===trigger)EventHandler.on(this._element,this.constructor.eventName("click"),this._config.selector,(event=>{this._initializeOnDelegatedTarget(event).toggle()}));else if("manual"!==trigger){const eventIn="hover"===trigger?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),eventOut="hover"===trigger?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");EventHandler.on(this._element,eventIn,this._config.selector,(event=>{const context=this._initializeOnDelegatedTarget(event);context._activeTrigger["focusin"===event.type?"focus":"hover"]=!0,context._enter()})),EventHandler.on(this._element,eventOut,this._config.selector,(event=>{const context=this._initializeOnDelegatedTarget(event);context._activeTrigger["focusout"===event.type?"focus":"hover"]=context._element.contains(event.relatedTarget),context._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},EventHandler.on(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler)}_fixTitle(){const title=this._element.getAttribute("title");title&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",title),this._element.setAttribute("data-bs-original-title",title),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((()=>{this._isHovered&&this.show()}),this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((()=>{this._isHovered||this.hide()}),this._config.delay.hide))}_setTimeout(handler,timeout){clearTimeout(this._timeout),this._timeout=setTimeout(handler,timeout)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(config){const dataAttributes=Manipulator.getDataAttributes(this._element);for(const dataAttribute of Object.keys(dataAttributes))DISALLOWED_ATTRIBUTES.has(dataAttribute)&&delete dataAttributes[dataAttribute];return config={...dataAttributes,..."object"==typeof config&&config?config:{}},config=this._mergeConfigObj(config),config=this._configAfterMerge(config),this._typeCheckConfig(config),config}_configAfterMerge(config){return config.container=!1===config.container?document.body:getElement(config.container),"number"==typeof config.delay&&(config.delay={show:config.delay,hide:config.delay}),"number"==typeof config.title&&(config.title=config.title.toString()),"number"==typeof config.content&&(config.content=config.content.toString()),config}_getDelegateConfig(){const config={};for(const[key,value]of Object.entries(this._config))this.constructor.Default[key]!==value&&(config[key]=value);return config.selector=!1,config.trigger="manual",config}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(config){return this.each((function(){const data=Tooltip.getOrCreateInstance(this,config);if("string"==typeof config){if(void 0===data[config])throw new TypeError(`No method named "${config}"`);data[config]()}}))}}defineJQueryPlugin(Tooltip);const Default$2={...Tooltip.Default,content:"",offset:[0,8],placement:"right",template:'',trigger:"click"},DefaultType$2={...Tooltip.DefaultType,content:"(null|string|element|function)"};class Popover extends Tooltip{static get Default(){return Default$2}static get DefaultType(){return DefaultType$2}static get NAME(){return"popover"}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{".popover-header":this._getTitle(),".popover-body":this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(config){return this.each((function(){const data=Popover.getOrCreateInstance(this,config);if("string"==typeof config){if(void 0===data[config])throw new TypeError(`No method named "${config}"`);data[config]()}}))}}defineJQueryPlugin(Popover);const Default$1={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},DefaultType$1={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"};class ScrollSpy extends BaseComponent{constructor(element,config){super(element,config),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement="visible"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return Default$1}static get DefaultType(){return DefaultType$1}static get NAME(){return"scrollspy"}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const section of this._observableSections.values())this._observer.observe(section)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(config){return config.target=getElement(config.target)||document.body,config.rootMargin=config.offset?`${config.offset}px 0px -30%`:config.rootMargin,"string"==typeof config.threshold&&(config.threshold=config.threshold.split(",").map((value=>Number.parseFloat(value)))),config}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(EventHandler.off(this._config.target,"click.bs.scrollspy"),EventHandler.on(this._config.target,"click.bs.scrollspy","[href]",(event=>{const observableSection=this._observableSections.get(event.target.hash);if(observableSection){event.preventDefault();const root=this._rootElement||window,height=observableSection.offsetTop-this._element.offsetTop;if(root.scrollTo)return void root.scrollTo({top:height,behavior:"smooth"});root.scrollTop=height}})))}_getNewObserver(){const options={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver((entries=>this._observerCallback(entries)),options)}_observerCallback(entries){const targetElement=entry=>this._targetLinks.get(`#${entry.target.id}`),activate=entry=>{this._previousScrollData.visibleEntryTop=entry.target.offsetTop,this._process(targetElement(entry))},parentScrollTop=(this._rootElement||document.documentElement).scrollTop,userScrollsDown=parentScrollTop>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=parentScrollTop;for(const entry of entries){if(!entry.isIntersecting){this._activeTarget=null,this._clearActiveClass(targetElement(entry));continue}const entryIsLowerThanPrevious=entry.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(userScrollsDown&&entryIsLowerThanPrevious){if(activate(entry),!parentScrollTop)return}else userScrollsDown||entryIsLowerThanPrevious||activate(entry)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const targetLinks=SelectorEngine.find("[href]",this._config.target);for(const anchor of targetLinks){if(!anchor.hash||isDisabled(anchor))continue;const observableSection=SelectorEngine.findOne(decodeURI(anchor.hash),this._element);isVisible(observableSection)&&(this._targetLinks.set(decodeURI(anchor.hash),anchor),this._observableSections.set(anchor.hash,observableSection))}}_process(target){this._activeTarget!==target&&(this._clearActiveClass(this._config.target),this._activeTarget=target,target.classList.add("active"),this._activateParents(target),EventHandler.trigger(this._element,"activate.bs.scrollspy",{relatedTarget:target}))}_activateParents(target){if(target.classList.contains("dropdown-item"))SelectorEngine.findOne(".dropdown-toggle",target.closest(".dropdown")).classList.add("active");else for(const listGroup of SelectorEngine.parents(target,".nav, .list-group"))for(const item of SelectorEngine.prev(listGroup,".nav-link, .nav-item > .nav-link, .list-group-item"))item.classList.add("active")}_clearActiveClass(parent){parent.classList.remove("active");const activeNodes=SelectorEngine.find("[href].active",parent);for(const node of activeNodes)node.classList.remove("active")}static jQueryInterface(config){return this.each((function(){const data=ScrollSpy.getOrCreateInstance(this,config);if("string"==typeof config){if(void 0===data[config]||config.startsWith("_")||"constructor"===config)throw new TypeError(`No method named "${config}"`);data[config]()}}))}}EventHandler.on(window,"load.bs.scrollspy.data-api",(()=>{for(const spy of SelectorEngine.find('[data-bs-spy="scroll"]'))ScrollSpy.getOrCreateInstance(spy)})),defineJQueryPlugin(ScrollSpy);const ARROW_LEFT_KEY="ArrowLeft",ARROW_RIGHT_KEY="ArrowRight",ARROW_UP_KEY="ArrowUp",ARROW_DOWN_KEY="ArrowDown",HOME_KEY="Home",END_KEY="End",SELECTOR_DATA_TOGGLE='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',SELECTOR_INNER_ELEM=`.nav-link:not(.dropdown-toggle), .list-group-item:not(.dropdown-toggle), [role="tab"]:not(.dropdown-toggle), ${SELECTOR_DATA_TOGGLE}`;class Tab extends BaseComponent{constructor(element){super(element),this._parent=this._element.closest('.list-group, .nav, [role="tablist"]'),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),EventHandler.on(this._element,"keydown.bs.tab",(event=>this._keydown(event))))}static get NAME(){return"tab"}show(){const innerElem=this._element;if(this._elemIsActive(innerElem))return;const active=this._getActiveElem(),hideEvent=active?EventHandler.trigger(active,"hide.bs.tab",{relatedTarget:innerElem}):null;EventHandler.trigger(innerElem,"show.bs.tab",{relatedTarget:active}).defaultPrevented||hideEvent&&hideEvent.defaultPrevented||(this._deactivate(active,innerElem),this._activate(innerElem,active))}_activate(element,relatedElem){if(!element)return;element.classList.add("active"),this._activate(SelectorEngine.getElementFromSelector(element));this._queueCallback((()=>{"tab"===element.getAttribute("role")?(element.removeAttribute("tabindex"),element.setAttribute("aria-selected",!0),this._toggleDropDown(element,!0),EventHandler.trigger(element,"shown.bs.tab",{relatedTarget:relatedElem})):element.classList.add("show")}),element,element.classList.contains("fade"))}_deactivate(element,relatedElem){if(!element)return;element.classList.remove("active"),element.blur(),this._deactivate(SelectorEngine.getElementFromSelector(element));this._queueCallback((()=>{"tab"===element.getAttribute("role")?(element.setAttribute("aria-selected",!1),element.setAttribute("tabindex","-1"),this._toggleDropDown(element,!1),EventHandler.trigger(element,"hidden.bs.tab",{relatedTarget:relatedElem})):element.classList.remove("show")}),element,element.classList.contains("fade"))}_keydown(event){if(![ARROW_LEFT_KEY,ARROW_RIGHT_KEY,ARROW_UP_KEY,ARROW_DOWN_KEY,HOME_KEY,END_KEY].includes(event.key))return;event.stopPropagation(),event.preventDefault();const children=this._getChildren().filter((element=>!isDisabled(element)));let nextActiveElement;if([HOME_KEY,END_KEY].includes(event.key))nextActiveElement=children[event.key===HOME_KEY?0:children.length-1];else{const isNext=[ARROW_RIGHT_KEY,ARROW_DOWN_KEY].includes(event.key);nextActiveElement=getNextActiveElement(children,event.target,isNext,!0)}nextActiveElement&&(nextActiveElement.focus({preventScroll:!0}),Tab.getOrCreateInstance(nextActiveElement).show())}_getChildren(){return SelectorEngine.find(SELECTOR_INNER_ELEM,this._parent)}_getActiveElem(){return this._getChildren().find((child=>this._elemIsActive(child)))||null}_setInitialAttributes(parent,children){this._setAttributeIfNotExists(parent,"role","tablist");for(const child of children)this._setInitialAttributesOnChild(child)}_setInitialAttributesOnChild(child){child=this._getInnerElement(child);const isActive=this._elemIsActive(child),outerElem=this._getOuterElement(child);child.setAttribute("aria-selected",isActive),outerElem!==child&&this._setAttributeIfNotExists(outerElem,"role","presentation"),isActive||child.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(child,"role","tab"),this._setInitialAttributesOnTargetPanel(child)}_setInitialAttributesOnTargetPanel(child){const target=SelectorEngine.getElementFromSelector(child);target&&(this._setAttributeIfNotExists(target,"role","tabpanel"),child.id&&this._setAttributeIfNotExists(target,"aria-labelledby",`${child.id}`))}_toggleDropDown(element,open){const outerElem=this._getOuterElement(element);if(!outerElem.classList.contains("dropdown"))return;const toggle=(selector,className)=>{const element=SelectorEngine.findOne(selector,outerElem);element&&element.classList.toggle(className,open)};toggle(".dropdown-toggle","active"),toggle(".dropdown-menu","show"),outerElem.setAttribute("aria-expanded",open)}_setAttributeIfNotExists(element,attribute,value){element.hasAttribute(attribute)||element.setAttribute(attribute,value)}_elemIsActive(elem){return elem.classList.contains("active")}_getInnerElement(elem){return elem.matches(SELECTOR_INNER_ELEM)?elem:SelectorEngine.findOne(SELECTOR_INNER_ELEM,elem)}_getOuterElement(elem){return elem.closest(".nav-item, .list-group-item")||elem}static jQueryInterface(config){return this.each((function(){const data=Tab.getOrCreateInstance(this);if("string"==typeof config){if(void 0===data[config]||config.startsWith("_")||"constructor"===config)throw new TypeError(`No method named "${config}"`);data[config]()}}))}}EventHandler.on(document,"click.bs.tab",SELECTOR_DATA_TOGGLE,(function(event){["A","AREA"].includes(this.tagName)&&event.preventDefault(),isDisabled(this)||Tab.getOrCreateInstance(this).show()})),EventHandler.on(window,"load.bs.tab",(()=>{for(const element of SelectorEngine.find('.active[data-bs-toggle="tab"], .active[data-bs-toggle="pill"], .active[data-bs-toggle="list"]'))Tab.getOrCreateInstance(element)})),defineJQueryPlugin(Tab);const DefaultType={animation:"boolean",autohide:"boolean",delay:"number"},Default={animation:!0,autohide:!0,delay:5e3};class Toast extends BaseComponent{constructor(element,config){super(element,config),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return Default}static get DefaultType(){return DefaultType}static get NAME(){return"toast"}show(){if(EventHandler.trigger(this._element,"show.bs.toast").defaultPrevented)return;this._clearTimeout(),this._config.animation&&this._element.classList.add("fade");this._element.classList.remove("hide"),reflow(this._element),this._element.classList.add("show","showing"),this._queueCallback((()=>{this._element.classList.remove("showing"),EventHandler.trigger(this._element,"shown.bs.toast"),this._maybeScheduleHide()}),this._element,this._config.animation)}hide(){if(!this.isShown())return;if(EventHandler.trigger(this._element,"hide.bs.toast").defaultPrevented)return;this._element.classList.add("showing"),this._queueCallback((()=>{this._element.classList.add("hide"),this._element.classList.remove("showing","show"),EventHandler.trigger(this._element,"hidden.bs.toast")}),this._element,this._config.animation)}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove("show"),super.dispose()}isShown(){return this._element.classList.contains("show")}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout((()=>{this.hide()}),this._config.delay)))}_onInteraction(event,isInteracting){switch(event.type){case"mouseover":case"mouseout":this._hasMouseInteraction=isInteracting;break;case"focusin":case"focusout":this._hasKeyboardInteraction=isInteracting}if(isInteracting)return void this._clearTimeout();const nextElement=event.relatedTarget;this._element===nextElement||this._element.contains(nextElement)||this._maybeScheduleHide()}_setListeners(){EventHandler.on(this._element,"mouseover.bs.toast",(event=>this._onInteraction(event,!0))),EventHandler.on(this._element,"mouseout.bs.toast",(event=>this._onInteraction(event,!1))),EventHandler.on(this._element,"focusin.bs.toast",(event=>this._onInteraction(event,!0))),EventHandler.on(this._element,"focusout.bs.toast",(event=>this._onInteraction(event,!1)))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(config){return this.each((function(){const data=Toast.getOrCreateInstance(this,config);if("string"==typeof config){if(void 0===data[config])throw new TypeError(`No method named "${config}"`);data[config](this)}}))}}enableDismissTrigger(Toast),defineJQueryPlugin(Toast);const reRelativePath=/^\.+(\\|\/)|^\.+$/,reTrailingPeriods=/\.+$/;function filenamify(string,options={}){const reControlChars=/[\u0000-\u001F\u0080-\u009F]/g,reRepeatedReservedCharacters=/([<>:"/\\|?*\u0000-\u001F]){2,}/g;if("string"!=typeof string)throw new TypeError("Expected a string");const replacement=void 0===options.replacement?"!":options.replacement;if(/[<>:"/\\|?*\u0000-\u001F]/g.test(replacement)&&reControlChars.test(replacement))throw new Error("Replacement string cannot contain reserved filename characters");if(replacement.length>0&&(string=string.replace(reRepeatedReservedCharacters,"$1")),string=(string=(string=(string=(string=string.normalize("NFD")).replace(reRelativePath,replacement)).replace(/[<>:"/\\|?*\u0000-\u001F]/g,replacement)).replace(reControlChars,replacement)).replace(reTrailingPeriods,""),replacement.length>0){"."===string[0]||"."!==string[0]||(string=replacement+string),"."===string[string.length-1]&&(string+=replacement)}string=/^(con|prn|aux|nul|com\d|lpt\d)$/i.test(string)?string+replacement:string;const allowedLength="number"==typeof options.maxLength?options.maxLength:100;if(string.length>allowedLength){const extensionIndex=string.lastIndexOf(".");if(-1===extensionIndex)string=string.slice(0,allowedLength);else{const filename=string.slice(0,extensionIndex),extension=string.slice(extensionIndex);string=filename.slice(0,Math.max(1,allowedLength-extension.length))+extension}}return string}var __defProp=Object.defineProperty;function zeroPad(num,len=3){return String(num).padStart(len,"0")}function secondsToTimestamp$1(seconds,options={}){options={hours:!0,milliseconds:!1,...options};const date=new Date(1e3*Int(seconds)).toISOString();"00"!==date.slice(11,13)&&(options.hours=!0);const hms=date.slice(options.hours?11:14,19);if(options.milliseconds){let fraction="000";return seconds.toString().includes(".")&&(fraction=(String(seconds).split(".").pop()+"000").slice(0,3)),hms+"."+fraction}return hms}function NPTToSeconds(npt){const parts=npt.split("."),hms=parts[0].split(":"),ms=parts.length>1?Int(parts[1]):0;for(;hms.length<3;)hms.unshift("0");const[hours,minutes,seconds]=Ints(hms);return timestampToSeconds$1(`${zeroPad(hours.toString(),2)}:${zeroPad(minutes.toString(),2)}:${zeroPad(seconds.toString(),2)}.${zeroPad(ms.toString(),3)}`)}function secondsToNPT(seconds){if(0===seconds)return"0";const regularTimestamp=secondsToTimestamp$1(seconds,{milliseconds:!0});let[hoursAndMinutesAndSeconds,milliseconds]=regularTimestamp.split(".");const[hours,minutes,secondsOnly]=Ints(hoursAndMinutesAndSeconds.split(":"));if(milliseconds="000"===milliseconds?"":"."+milliseconds,0===hours&&0===minutes)return`${secondsOnly}${milliseconds}`;const secondsString=zeroPad(secondsOnly,2);if(0===hours)return`${minutes}:${secondsString}${milliseconds}`;return`${hours}:${zeroPad(minutes,2)}:${secondsString}${milliseconds}`}function timestampToSeconds$1(timestamp,fixedString=!1){let[seconds,minutes,hours]=Ints(timestamp.split(":")).reverse(),milliseconds=timestamp.split(".").length>1?Int(timestamp.split(".").pop()):0;if(hours||(hours=0),minutes||(minutes=0),seconds||(seconds=0),milliseconds>0&&(milliseconds/=1e3),seconds>59){const extraMinutes=Math.floor(seconds/60);minutes+=extraMinutes,seconds-=60*extraMinutes}if(minutes>59){const extraHours=Math.floor(minutes/60);hours+=extraHours,minutes-=60*extraHours}return fixedString?Float((3600*hours+60*minutes+seconds+milliseconds).toFixed(3)):3600*hours+60*minutes+seconds+milliseconds}function hash$1(){return(Math.random()+1).toString(16).substring(7)}function escapeRegExpCharacters(text){return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}function enforceMilliseconds(seconds){return Float(seconds.toFixed(3))}function formatBytes$1(bytes,decimals=2,format="kB"){if(bytes<1)return"0 B";const k="kB"===format?1e3:1024,i=Math.floor(Math.log(bytes)/Math.log(k)),sizes=["","K","M","G","T","P","E","Z","Y"],suffix=["kB"===format?sizes[i].toLowerCase():sizes[i],"B"];return"KiB"===format&&suffix.splice(1,0,"i"),Float(bytes/Math.pow(k,i)).toFixed(decimals)+" "+suffix.join("")}function Int(value,defaultValue=0){const i=parseInt(String(value||defaultValue));return Number.isNaN(i)?defaultValue:i}function Float(value,defaultValue=0){const f=parseFloat(String(value||defaultValue));return Number.isNaN(f)?defaultValue:f}function Ints(value,defaultValue=0){return value.map((i=>Int(i,defaultValue)))}function Floats(value,defaultValue=0){return value.map((i=>Float(i,defaultValue)))}function indenter(spacesPerDepth=2){const character=0===spacesPerDepth?"":" ";return function(depth,string){return character.repeat(depth*spacesPerDepth)+string}}function stringToLines(string){return string.split(/\r?\n/).filter((line=>line.trim().length>0)).map((line=>line.trim()))}function toSeconds(input){return"number"==typeof input?input:input.includes(":")?timestampToSeconds$1(input):Float(input)}((target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})})({},{Float:()=>Float,Floats:()=>Floats,Int:()=>Int,Ints:()=>Ints,NPTToSeconds:()=>NPTToSeconds,enforceMilliseconds:()=>enforceMilliseconds,escapeRegExpCharacters:()=>escapeRegExpCharacters,formatBytes:()=>formatBytes$1,hash:()=>hash$1,indenter:()=>indenter,secondsToNPT:()=>secondsToNPT,secondsToTimestamp:()=>secondsToTimestamp$1,stringToLines:()=>stringToLines,timestampToSeconds:()=>timestampToSeconds$1,toSeconds:()=>toSeconds,zeroPad:()=>zeroPad});var Base=class{supportsPrettyPrint=!1;chapterTitleTemplate="Chapter $chapter of $total";chapters=[];defaultMeta={author:"",title:"",podcastName:"",description:"",fileName:"",waypoints:!1,version:"1.2.0"};meta={...this.defaultMeta};filename="chapters.json";mimeType="application/json";duration=0;isChapterFormat=!0;constructor(duration=3600){this.duration=duration}static create(input,duration){return new this(duration).from(input)}from(input){if(!input)throw new Error("No input provided");if("string"==typeof input?this.parse(input):"isChapterFormat"in input&&(this.chapters=JSON.parse(JSON.stringify(input.chapters)),this.meta={...this.meta,...JSON.parse(JSON.stringify(input.meta))}),this.chapters.length>0){const chapter=this.chapters.at(-1);chapter.endTime?this.duration=chapter.endTime:chapter.startTime&&(this.duration=chapter.startTime)}return this.bump(),this}detect(inputString){try{const data=JSON.parse(inputString),{errors:errors}=this.test(data);if(errors.length>0)throw new Error("data test failed")}catch(e){return!1}return!0}test(data){return"chapters"in data?"version"in data?{errors:[]}:{errors:['JSON Structure: missing "version"']}:{errors:['JSON Structure: missing "chapters"']}}bump(keepDuration=!1){this.chapters.sort(((a,b)=>a.startTime-b.startTime));const lastChapter=this.chapters.at(-1);lastChapter&&!keepDuration&&(this.duration=Math.max(parseFloat(String(this.duration||0)),parseFloat(String(lastChapter.endTime??0)),parseFloat(String(lastChapter.startTime??0)))),this.chapters=this.chapters.map(((chapter,index)=>{const endTime=this.endTime(index),duration=endTime-this.chapters[index].startTime,timestampOptions={hours:!1};return{id:hash$1(),startTime:0,...chapter,endTime:endTime,duration:duration,startTime_hr:secondsToTimestamp$1(chapter.startTime,timestampOptions),endTime_hr:secondsToTimestamp$1(endTime,timestampOptions),duration_hr:secondsToTimestamp$1(duration,timestampOptions),..."toc"in chapter?{}:{toc:!0}}}))}endTime(index){return this.chapters[index+1]?this.chapters[index+1].startTime-.001:this.duration}expandFirstToStart(){this.chapters[0].startTime=0,this.bump()}add(chapter){this.chapters.push(chapter),this.bump()}remove(index){"blob:"===this.chapters[index]?.img?.slice(0,5)&&URL.revokeObjectURL(String(this.chapters[index].img)),this.chapters.splice(index,1),this.bump()}to(className){return className.create(this)}parse(string){const data=JSON.parse(string),{errors:errors}=this.test(data);if(errors.length>0)throw new Error(errors.join(""));this.chapters=data.chapters,this.chapters=this.chapters.map((chapter=>("img"in chapter&&("http"===chapter.img?.slice(0,4)?chapter.img_type="absolute":(chapter.img_type="relative",chapter.img_filename=chapter.img)),chapter))),this.meta=Object.fromEntries(Object.entries(this.meta).map((([key,value])=>[key,data[key]||value])))}toString(pretty=!1,exportOptions={}){const options={imagePrefix:"",writeRedundantToc:!1,writeEndTimes:!1,...exportOptions},defaultMetaProperties=Object.keys(this.defaultMeta);return JSON.stringify({...Object.fromEntries(Object.entries(this.meta).filter((([key,value])=>defaultMetaProperties.includes(key)&&""!==value&&!1!==value))),chapters:this.chapters.map((chapter=>{const filtered={startTime:enforceMilliseconds(chapter.startTime)};return options.writeEndTimes&&(filtered.endTime=enforceMilliseconds(chapter.endTime)),"toc"in chapter&&!1===chapter.toc&&(filtered.toc=!1),!("toc"in filtered)&&options.writeRedundantToc&&(filtered.toc=!0),["location","img","url","title"].forEach((property=>{const key=property;key in chapter&&String(chapter[key]).trim().length>0&&(filtered[key]=chapter[key])})),"img_filename"in chapter&&"img"in filtered&&"relative"===chapter.img_type&&(filtered.img=filenamify(chapter.img_filename)),options.imagePrefix.trim().length>0&&"img"in filtered&&["relative","blob"].includes(chapter.img_type)&&(filtered.img=options.imagePrefix+String(filtered.img)),filtered}))},null,pretty?2:0)}applyChapterMinLength(seconds){const originalIdMap=this.chapters.map((chapter=>String(chapter.id))),newChapters=[];let currentChapter,elapsed=0;this.chapters.forEach((chapter=>{elapsed+=chapter.duration,currentChapter||(currentChapter=chapter),elapsed>=seconds&&(delete currentChapter.endTime,delete currentChapter.duration,newChapters.push(currentChapter),currentChapter=null,elapsed=0)})),this.chapters=newChapters,this.bump();const newIdMap=Object.fromEntries(this.chapters.map(((c,i)=>[c.id,i])));return Object.fromEntries(originalIdMap.map(((id,index)=>[index,id in newIdMap?newIdMap[id]:"deleted"])))}addChapterAt(index,chapter={}){let startTime=0;if(index>this.chapters.length){const start=this.chapters.at(-1)?this.chapters.at(-1).startTime:0;startTime=start+.5*(this.duration-start)}else if(0===index)startTime=0;else{const start=this.chapters.at(index-1).startTime;startTime=start+.5*((this.chapters.at(index)?this.chapters.at(index).startTime:this.duration)-start)}return chapter&&"startTime"in chapter&&delete chapter.startTime,this.chapters.push({...chapter,id:hash$1(),startTime:startTime}),this.bump(),startTime}addChapterAtTime(time,chapter={}){const startTime=toSeconds(time);return!this.chapterExistsAtStartTime(startTime)&&(this.chapters.push({...chapter,id:hash$1(),startTime:startTime}),this.bump(),!0)}rebuildChapterTitles(template){this.chapters.forEach(((chapter,index)=>{this.chapters[index].title=this.getChapterTitle(index,template)}))}ensureTitle(index){return this.chapters[index].title??this.getChapterTitle(index)}getChapterTitle(index,template){return(template=template??this.chapterTitleTemplate).replace("$chapter",String(index+1)).replace("$total",String(this.chapters.length))}chapterExistsAtStartTime(time){return time=toSeconds(time),this.chapters.filter((c=>c.startTime===time)).length>0}updateChapterStartTime(index,startTime){const newStartTime=toSeconds(startTime);return this.chapterExistsAtStartTime(newStartTime)?"timeInUse":(newStartTime>this.duration&&(this.duration=newStartTime),this.chapters[index].startTime=newStartTime,this.bump(),newStartTime)}chapterIndexFromStartTime(startTime){return startTime=toSeconds(startTime),this.chapters.reduce(((newIndex,chapter,index)=>(chapter.startTime===startTime&&(newIndex=index),newIndex)),0)}chapterIndexFromTime(time){const timeStamp=toSeconds(time);return this.chapters.reduce(((newIndex,chapter,index)=>(timeStamp>chapter.startTime&&(newIndex=index),newIndex)),null)}ensureUniqueFilenames(){const usedFilenames=[];this.chapters=this.chapters.map((chapter=>{if("blob"!==chapter.img_type)return chapter;chapter.img_filename=filenamify(chapter.img_filename);let filename=chapter.img_filename;return usedFilenames.includes(filename)&&(filename=filename.replace(/(\.\w+)$/,`_${hash$1()}$1`),chapter.img_filename=filename),usedFilenames.push(filename),chapter}))}applyImgUri(imgUri){this.chapters.forEach(((chapter,i)=>{"img"in chapter&&(this.chapters[i].img=imgUri.replace(/\/*$/,"")+"/"+chapter.img.replace(/^\/*/,""))}))}},MatroskaXML=class extends Base{supportsPrettyPrint=!0;filename="matroska-chapters.xml";mimeType="text/xml";chapterStringNodeName="ChapString";inputTimeToSeconds(string){return Float(string)/1e9}secondsToOutputTime(seconds){return String(Int(String(1e9*seconds)))}detect(inputString){return/^<\?xml/.test(inputString.trim())&&inputString.includes("")&&inputString.includes(`<${this.chapterStringNodeName}>`)}parse(string){if(!this.detect(string))throw new Error("Input needs xml declaration and a node");let dom;"undefined"!=typeof DOMParser?dom=(new DOMParser).parseFromString(string,"application/xml"):(dom=new jsdom.JSDOM(string,{contentType:"application/xml"}),dom=dom.window.document),this.chapters=[...dom.querySelectorAll("ChapterAtom")].map((chapter=>({title:String(chapter.querySelector(this.chapterStringNodeName)?.textContent),startTime:this.inputTimeToSeconds(String(chapter.querySelector("ChapterTimeStart")?.textContent)),endTime:this.inputTimeToSeconds(String(chapter.querySelector("ChapterTimeEnd")?.textContent))})))}toString(pretty=!1){const indent=indenter(pretty?2:0),output=['','',"",indent(1,""),indent(2,`${Date.now()}${Int(1e6*Math.random())}`)];return this.chapters.forEach(((chapter,index)=>{output.push(indent(2,"")),output.push(indent(3,`${this.secondsToOutputTime(chapter.startTime)}`)),output.push(indent(3,`${this.secondsToOutputTime(chapter.endTime)}`)),output.push(indent(3,`${Int(1+chapter.startTime)}${Int(1e6*Math.random())}`)),output.push(indent(3,"")),output.push(indent(4,`<${this.chapterStringNodeName}>${this.ensureTitle(index)}`)),output.push(indent(3,"")),output.push(indent(2,""))})),output.push(indent(1,""),""),output.join(pretty?"\n":"")}},ChaptersJson=class extends Base{supportsPrettyPrint=!0},MKVMergeSimple=class extends Base{filename="mkvmerge-chapters.txt";mimeType="text/plain";zeroPad=2;detect(inputString){return new RegExp(`^CHAPTER${zeroPad(1,this.zeroPad)}`).test(inputString.trim())}parse(string){if(!this.detect(string))throw new Error(`File must start with CHAPTER${zeroPad(1,this.zeroPad)}`);const lines=string.split(/\r?\n/).filter((line=>line.trim().length>0)).map((line=>line.trim())),chapters=[];lines.forEach((line=>{const match=/^CHAPTER(?\d+)(?NAME)?=(?.*)/.exec(line);if(!match?.groups)return!0;const index=Int(match.groups.index)-1,key="NAME"===match.groups.key?"title":"startTime",value="startTime"===key?timestampToSeconds$1(match.groups.value):match.groups.value;chapters[index]?chapters[index][key]=value:chapters[index]={[key]:value}})),this.chapters=chapters}toString(){return this.chapters.map(((chapter,index)=>{const i=zeroPad(index+1,this.zeroPad),output=[`CHAPTER${i}=${secondsToTimestamp$1(chapter.startTime,{hours:!0,milliseconds:!0})}`];return chapter.title&&chapter.title.trim().length>0&&output.push(`CHAPTER${i}NAME=${chapter.title}`),output.join("\n")})).join("\n")}},classMap={chaptersjson:ChaptersJson,ffmetadata:class extends Base{filename="FFMpegdata.txt";mimeType="text/plain";characters=["=",";","#","\\","\n"];safeCharacters=this.characters.map((char=>escapeRegExpCharacters(char))).join("|");unescapeRegexp=new RegExp("\\\\("+this.safeCharacters+")","g");escapeRegexp=new RegExp("("+this.safeCharacters+")","g");detect(inputString){return";FFMETADATA1"===inputString.trim().slice(0,12)}parse(string){if(!this.detect(string))throw new Error(";FFMETADATA1 header missing :(");const lines=stringToLines(string),chapters=[];let ignoreAllUntilNextChapter=!1,isMultilineTitle=!1;lines.forEach((line=>{const[key,value]=line.split("=");if(0!==chapters.length||"title"!==key){if("[CHAPTER]"===line){const c={startTime:0};return chapters.push(c),void(ignoreAllUntilNextChapter=!1)}"["===line.slice(0,1)&&(ignoreAllUntilNextChapter=!0),0===chapters.length||ignoreAllUntilNextChapter||(/[^\\]=/.test(line)||!isMultilineTitle?(isMultilineTitle=!1,"title"===key?(chapters[chapters.length-1].title=this.unescape(value),/\\$/.test(value)&&(isMultilineTitle=!0)):"START"===key?chapters[chapters.length-1].startTime=enforceMilliseconds(.001*parseFloat(value)):"END"===key&&(chapters[chapters.length-1].endTime=enforceMilliseconds(.001*parseFloat(value)))):chapters[chapters.length-1].title+=" "+line)}else this.meta.title=this.unescape(value)})),this.chapters=chapters}unescape(string){return string.replace(this.unescapeRegexp,"$1").replace(/\\$/g,"")}escape(string){return string.replace(this.escapeRegexp,"\\$1")}toString(){const output=[";FFMETADATA1"];return this.meta.title.trim().length>0&&output.push(`title=${this.escape(this.meta.title)}`),output.push(""),this.chapters.forEach((chapter=>{output.push("[CHAPTER]","TIMEBASE=1/1000"),output.push("START="+1e3*enforceMilliseconds(chapter.startTime)),output.push("END="+1e3*enforceMilliseconds(chapter.endTime)),chapter.title&&chapter.title.trim().length>0&&output.push(`title=${this.escape(chapter.title)}`),output.push("")})),output.join("\n")}},matroskaxml:MatroskaXML,mkvmergexml:class extends MatroskaXML{supportsPrettyPrint=!0;filename="mkvmerge-chapters.xml";mimeType="text/xml";chapterStringNodeName="ChapterString";inputTimeToSeconds(string){return timestampToSeconds$1(string)}secondsToOutputTime(seconds){return secondsToTimestamp$1(seconds,{hours:!0,milliseconds:!0})}},mkvmergesimple:MKVMergeSimple,webvtt:class extends Base{filename="webvtt-chapters.vtt";mimeType="text/vtt";detect(inputString){return"WEBVTT"===inputString.trim().slice(0,6)}parse(string){if(!this.detect(string))throw new Error("WEBVTT header missing :(");const lines=string.split(/\r?\n/).filter((line=>line.trim().length>0)).map((line=>line.trim())),header=lines.shift().split(/\s*-\s*/);header[1]&&(this.meta.title=header[1]);const chapters=[];lines.forEach((line=>{if(/^\d+$/.test(line))return void chapters.push({});const index=chapters.length-1,timestamps=/(.*)\s+-->\s+(.*)/.exec(line);if(timestamps&&3===timestamps.length)return chapters[index].startTime=timestampToSeconds$1(timestamps[1]),void(chapters[index].endTime=timestampToSeconds$1(timestamps[2]));chapters[index].title=line})),this.chapters=chapters}toString(){const output=["WEBVTT"];this.meta.title.trim().length>0&&(output[0]+=" - "+this.meta.title.trim());const options={hours:!0,milliseconds:!0};return this.chapters.forEach(((chapter,index)=>{output.push(""),output.push(...[String(index+1),secondsToTimestamp$1(chapter.startTime,options)+" --\x3e "+secondsToTimestamp$1(chapter.endTime,options),this.ensureTitle(index)].filter((line=>String(line).trim().length>0)))})),output.join("\n")}},youtube:class extends Base{filename="youtube-chapters.txt";mimeType="text/plain";detect(inputString){return/^0?0:00(:00)?\s/.test(inputString.trim())}parse(string){if(!this.detect(string))throw new Error("Youtube Chapters *MUST* begin with (0)0:00(:00), received: "+string.substr(0,10)+"...");this.chapters=stringToLines(string).map((line=>{const l=line.split(" ");return{startTime:timestampToSeconds$1(String(l.shift())),title:l.join(" ")}}))}toString(){const options={milliseconds:!1,hours:this.chapters.at(-1).startTime>3600};return this.chapters.map(((chapter,index)=>`${secondsToTimestamp$1(0===index&&0!==chapter.startTime?0:chapter.startTime,options)} ${this.ensureTitle(index)}`)).join("\n")}},ffmpeginfo:class extends Base{detect(inputString){return/^frame:\d/.test(inputString.trim())}parse(input){if(!this.detect(input))throw new Error("input must start with frame:");const matches=Array.from(input.matchAll(/frame:(\d+).*pts_time:([\d.]+)\r?\n/g));this.chapters=matches.map((match=>({startTime:enforceMilliseconds(parseFloat(match[2]))}))),this.rebuildChapterTitles()}toString(){throw new Error("this class won't generate actual output")}},pyscenedetect:class extends Base{filename="psd-scenes.csv";mimeType="text/csv";detect(inputString){return["Scene Number","Timecode Lis"].includes(inputString.trim().slice(0,12))}parse(string){if(!this.detect(string))throw new Error('File must start with "Scene Number" or "Timecode List"');const lines=string.split(/\r?\n/).filter((line=>line.trim().length>0)).map((line=>line.trim()));/^Timecode/.test(lines[0])&&lines.shift(),lines.shift(),this.chapters=lines.map((line=>{const cols=line.split(",");return{startTime:timestampToSeconds$1(cols[2]),endTime:timestampToSeconds$1(cols[5])}}))}toString(pretty=!1,exportOptions={}){const framerate=exportOptions.psdFramerate||23.976,omitTimecodes=!!exportOptions.psdOmitTimecodes,lines=this.chapters.map(((chapter,index)=>{const next=this.chapters[index+1],endTime=next?.startTime||this.duration,l=endTime-chapter.startTime;return[index+1,Math.round(chapter.startTime*framerate)+1,secondsToTimestamp$1(chapter.startTime,{hours:!0,milliseconds:!0}),Int(1e3*chapter.startTime),Math.round(endTime*framerate),secondsToTimestamp$1(endTime,{hours:!0,milliseconds:!0}),Int(1e3*endTime),Math.round((endTime-chapter.startTime)*framerate),secondsToTimestamp$1(l,{hours:!0,milliseconds:!0}),Int(Math.ceil(1e3*l))]})),tl="Timecode List:"+lines.slice(1).map((l=>l[2])).join(","),outputLines=lines.map((l=>l.join(",")));return outputLines.unshift("Scene Number,Start Frame,Start Timecode,Start Time (seconds),End Frame,End Timecode,End Time (seconds),Length (frames),Length (timecode),Length (seconds)"),omitTimecodes||outputLines.unshift(tl),outputLines.join("\n")}},vorbiscomment:class extends MKVMergeSimple{filename="vorbis-comment.txt";mimeType="text/plain";zeroPad=3},applechapters:class extends MatroskaXML{supportsPrettyPrint=!0;filename="apple-chapters.xml";mimeType="text/xml";detect(inputString){return/^<\?xml/.test(inputString.trim())&&inputString.includes(" node");let dom;"undefined"!=typeof DOMParser?dom=(new DOMParser).parseFromString(string,"application/xml"):(dom=new jsdom.JSDOM(string,{contentType:"application/xml"}),dom=dom.window.document),this.chapters=[...dom.querySelectorAll("TextSample")].map((chapter=>({title:String(chapter.getAttribute("text")??chapter.textContent),startTime:timestampToSeconds$1(String(chapter.getAttribute("sampleTime")))})))}toString(pretty=!1,exportOptions={}){const indent=indenter(pretty?2:0),output=['','',indent(1,""),indent(2,""),indent(2,""),indent(1,"")];return this.chapters.forEach((chapter=>{const attrContent=exportOptions.acUseTextAttr&&chapter.title?` text="${chapter.title}"`:"",content=!exportOptions.acUseTextAttr&&chapter.title?chapter.title:"";output.push(indent(3,`${content}`))})),output.push(""),output.join(pretty?"\n":"")}},shutteredl:class extends Base{detect(inputString){return/^TITLE:\s.*\r?\n/.test(inputString.trim())}decodeTime(timeString){return timeString.replace(/:(\d+)$/,".$10")}encodeTime(time){const string=secondsToTimestamp$1(time,{milliseconds:!0}),ms=String(Math.ceil(.1*Int(string.split(".").pop())));return string.replace(/\.(\d+)$/,`:${ms.padStart(2,"0")}`)}parse(input){if(!this.detect(input))throw new Error("input must start with TITLE:");const titleMatch=input.match(/^TITLE:\s(.*)\r?\n/);this.meta.title=titleMatch?.[1]??"Chapters",this.chapters=Array.from(input.matchAll(/(?\d{6})\s+(?[^\s]+)\s+\w+\s+\w+\s+(?<startTime>\d\d:\d\d:\d\d:\d\d)\s+(?<endTime>\d\d:\d\d:\d\d:\d\d)/g)).reduce(((acc,match)=>{if(!match?.groups)return acc;const startTime=timestampToSeconds$1(this.decodeTime(match.groups.startTime)),endTime=timestampToSeconds$1(this.decodeTime(match.groups.endTime)),title=match.groups.title,last=acc.at(-1);return last?.startTime===startTime||acc.push({startTime:startTime,endTime:endTime,title:title}),acc}),[])}toString(){const tracks=["V","A","A2"],output=this.chapters.reduce(((acc,chapter,i)=>{const index=3*i+1,startTime=this.encodeTime(chapter.startTime),endTime=this.encodeTime(chapter.endTime);for(let j=0;j<3;j++)acc.push(`${(j+index).toString().padStart(6,"0")} ${chapter.title} ${tracks[j]}${" ".repeat(6-tracks[j].length)}C ${startTime} ${endTime} ${startTime} ${endTime}`);return acc}),[]);return output.unshift("TITLE: "+(this.meta.title??"Chapters")),output.join("\n")}},psc:class extends Base{supportsPrettyPrint=!0;filename="podlove-simple-chapters-fragment.xml";mimeType="text/xml";detect(inputString){return inputString.includes("<psc:chapters")}parse(string){if(!this.detect(string))throw new Error("Input must contain <psc:chapters ...> node");let dom;"undefined"!=typeof DOMParser?dom=(new DOMParser).parseFromString(string,"application/xml"):(dom=new jsdom.JSDOM(string,{contentType:"application/xml"}),dom=dom.window.document),this.chapters=[...dom.querySelectorAll("[start]")].reduce(((acc,node)=>{if("psc:chapter"===node.tagName){const start=node.getAttribute("start"),title=node.getAttribute("title"),image=node.getAttribute("image"),href=node.getAttribute("href"),chapter={startTime:NPTToSeconds(start)};title&&(chapter.title=title),image&&(chapter.img=image),href&&(chapter.url=href),acc.push(chapter)}return acc}),[])}toString(pretty=!1){const indent=indenter(pretty?2:0),output=['<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">',indent(1,"<channel>"),indent(2,"\x3c!-- this is only a fragment of an rss feed, see --\x3e"),indent(2,"\x3c!-- https://podlove.org/simple-chapters/#:~:text=37%20seconds-,Embedding%20Example,-This%20is%20an --\x3e"),indent(2,"\x3c!-- for more information --\x3e"),indent(2,'<psc:chapters version="1.2" xmlns:psc="http://podlove.org/simple-chapters">')];return this.chapters.forEach((chapter=>{const node=[`<psc:chapter start="${secondsToNPT(chapter.startTime)}"`];chapter.title&&node.push(` title="${chapter.title}"`),chapter.img&&node.push(` image="${chapter.img}"`),chapter.url&&node.push(` href="${chapter.url}"`),node.push("/>"),output.push(indent(3,node.join("")))})),output.push(indent(2,"</psc:chapters>"),indent(1,"</channel>"),indent(0,"</rss>")),output.join(pretty?"\n":"")}},mp4chaps:class extends Base{filename="mp4chaps.txt";mimeType="text/plain";detect(inputString){return/^\d\d:\d\d:\d\d.\d\d?\d?\s/.test(inputString.trim())}parse(string){if(!this.detect(string))throw new Error("MP4Chaps *MUST* begin with 00:00:00, received: "+string.substr(0,10)+"...");this.chapters=stringToLines(string).map((line=>{const l=line.split(" "),startTime=timestampToSeconds$1(l.shift()),[title,href]=l.join(" ").split("<"),chapter={startTime:startTime,title:title.trim()};return href&&(chapter.url=href.replace(">","")),chapter}))}toString(){return this.chapters.map((chapter=>{const line=[];return line.push(secondsToTimestamp$1(chapter.startTime,{milliseconds:!0})),line.push(chapter.title),chapter.url&&line.push(`<${chapter.url}>`),line.join(" ")})).join("\n")}},podlovejson:class extends Base{filename="podlove-chapters.json";mimeType="application/json";test(data){return Array.isArray(data)?0===data.length?{errors:["JSON Structure: must not be empty"]}:data.every((chapter=>"start"in chapter))?{errors:[]}:{errors:["JSON Structure: every chapter must have a start property"]}:{errors:["JSON Structure: must be an array"]}}parse(string){const data=JSON.parse(string),{errors:errors}=this.test(data);if(errors.length>0)throw new Error(errors.join(""));this.chapters=data.map((raw=>{const{start:start,title:title,image:image,href:href}=raw,chapter={startTime:timestampToSeconds$1(start)};return title&&(chapter.title=title),image&&(chapter.img=image),href&&(chapter.url=href),chapter}))}toString(pretty=!1){return JSON.stringify(this.chapters.map(((chapter,i)=>({start:secondsToTimestamp$1(chapter.startTime,{milliseconds:!0}),title:this.ensureTitle(i),image:chapter.img??"",href:chapter.url??""}))),null,pretty?2:0)}},applehls:class extends Base{filename="apple-hls.json";mimeType="application/json";supportsPrettyPrint=!0;titleLanguage="en";imageDims=[1280,720];test(data){return Array.isArray(data)?0===data.length?{errors:["JSON Structure: must not be empty"]}:data.every((chapter=>"chapter"in chapter&&"start-time"in chapter))?{errors:[]}:{errors:["JSON Structure: every chapter must have a chapter and a start-time property"]}:{errors:["JSON Structure: must be an array"]}}parse(string){const data=JSON.parse(string),{errors:errors}=this.test(data);if(errors.length>0)throw new Error(errors.join(""));this.chapters=data.map((raw=>{const chapter={startTime:parseFloat(raw["start-time"])};return"titles"in raw&&raw.titles.length>0&&(chapter.title=raw.titles[0].title),"images"in raw&&raw.images.length>0&&(chapter.img=raw.images[0].url),chapter}))}toString(pretty=!1){return JSON.stringify(this.chapters.map(((c,i)=>{const chapter={"start-time":c.startTime,chapter:i+1,titles:[{title:this.ensureTitle(i),language:this.titleLanguage}]};return c.img&&(chapter.images=[{"image-category":"chapter",url:c.img,"pixel-width":this.imageDims[0],"pixel-height":this.imageDims[1]}]),chapter})),null,pretty?2:0)}},scenecut:class extends Base{supportsPrettyPrint=!0;filename="scene-cuts.json";mimeType="application/json";frameRate=30;ptsScale=1;score=.5;test(data){return Array.isArray(data)?0===data.length?{errors:["JSON Structure: must not be empty"]}:data.every((chapter=>"pts_time"in chapter))?{errors:[]}:{errors:["JSON Structure: every chapter must have a start property"]}:{errors:["JSON Structure: must be an array"]}}parse(string){const data=JSON.parse(string),{errors:errors}=this.test(data);if(errors.length>0)throw new Error(errors.join(""));this.chapters=data.map((raw=>{const chapter={startTime:Float(raw.pts_time)};return this.frameRate=raw.pts/raw.pts_time,chapter}))}toString(pretty=!1,exportOptions={}){const frameRate=Float("frameRate"in exportOptions?exportOptions.frameRate:this.frameRate),ptsScale=Float("ptsScale"in exportOptions?exportOptions.ptsScale:this.ptsScale),score=Float("score"in exportOptions?exportOptions.score:this.score);return JSON.stringify(this.chapters.map((chapter=>({frame:Math.round(chapter.startTime*frameRate),pts:Math.round(chapter.startTime*frameRate*ptsScale).toFixed(3),pts_time:chapter.startTime,score:score}))),null,pretty?2:0)}}},AutoFormat={classMap:classMap,detect(inputString,returnWhat="instance"){let detected;for(const[key,className]of Object.entries(this.classMap))try{if(detected=className.create(inputString),detected)return"class"===returnWhat?className:"key"===returnWhat?key:detected}catch(e){}if(!detected)throw new Error("failed to detect type of given input :(")},from(inputString){return this.detect(inputString)},as(classKeyOrClass,input){if("string"==typeof classKeyOrClass){if(!(classKeyOrClass in this.classMap))throw new Error(`invalid class key "${classKeyOrClass}"`);return this.classMap[classKeyOrClass].create(input)}return classKeyOrClass.create(input)}};const MAX_BITS$1=15,HEAP_SIZE=573;function extractArray(array){return flatArray(array.map((([length,value])=>new Array(length).fill(value,0,length))))}function flatArray(array){return array.reduce(((a,b)=>a.concat(Array.isArray(b)?flatArray(b):b)),[])}const _dist_code=[0,1,2,3].concat(...extractArray([[2,4],[2,5],[4,6],[4,7],[8,8],[8,9],[16,10],[16,11],[32,12],[32,13],[64,14],[64,15],[2,0],[1,16],[1,17],[2,18],[2,19],[4,20],[4,21],[8,22],[8,23],[16,24],[16,25],[32,26],[32,27],[64,28],[64,29]]));function Tree(){const that=this;function bi_reverse(code,len){let res=0;do{res|=1&code,code>>>=1,res<<=1}while(--len>0);return res>>>1}that.build_tree=function(s){const tree=that.dyn_tree,stree=that.stat_desc.static_tree,elems=that.stat_desc.elems;let n,m,node,max_code=-1;for(s.heap_len=0,s.heap_max=HEAP_SIZE,n=0;n<elems;n++)0!==tree[2*n]?(s.heap[++s.heap_len]=max_code=n,s.depth[n]=0):tree[2*n+1]=0;for(;s.heap_len<2;)node=s.heap[++s.heap_len]=max_code<2?++max_code:0,tree[2*node]=1,s.depth[node]=0,s.opt_len--,stree&&(s.static_len-=stree[2*node+1]);for(that.max_code=max_code,n=Math.floor(s.heap_len/2);n>=1;n--)s.pqdownheap(tree,n);node=elems;do{n=s.heap[1],s.heap[1]=s.heap[s.heap_len--],s.pqdownheap(tree,1),m=s.heap[1],s.heap[--s.heap_max]=n,s.heap[--s.heap_max]=m,tree[2*node]=tree[2*n]+tree[2*m],s.depth[node]=Math.max(s.depth[n],s.depth[m])+1,tree[2*n+1]=tree[2*m+1]=node,s.heap[1]=node++,s.pqdownheap(tree,1)}while(s.heap_len>=2);s.heap[--s.heap_max]=s.heap[1],function(s){const tree=that.dyn_tree,stree=that.stat_desc.static_tree,extra=that.stat_desc.extra_bits,base=that.stat_desc.extra_base,max_length=that.stat_desc.max_length;let h,n,m,bits,xbits,f,overflow=0;for(bits=0;bits<=MAX_BITS$1;bits++)s.bl_count[bits]=0;for(tree[2*s.heap[s.heap_max]+1]=0,h=s.heap_max+1;h<HEAP_SIZE;h++)n=s.heap[h],bits=tree[2*tree[2*n+1]+1]+1,bits>max_length&&(bits=max_length,overflow++),tree[2*n+1]=bits,n>that.max_code||(s.bl_count[bits]++,xbits=0,n>=base&&(xbits=extra[n-base]),f=tree[2*n],s.opt_len+=f*(bits+xbits),stree&&(s.static_len+=f*(stree[2*n+1]+xbits)));if(0!==overflow){do{for(bits=max_length-1;0===s.bl_count[bits];)bits--;s.bl_count[bits]--,s.bl_count[bits+1]+=2,s.bl_count[max_length]--,overflow-=2}while(overflow>0);for(bits=max_length;0!==bits;bits--)for(n=s.bl_count[bits];0!==n;)m=s.heap[--h],m>that.max_code||(tree[2*m+1]!=bits&&(s.opt_len+=(bits-tree[2*m+1])*tree[2*m],tree[2*m+1]=bits),n--)}}(s),function(tree,max_code,bl_count){const next_code=[];let bits,n,len,code=0;for(bits=1;bits<=MAX_BITS$1;bits++)next_code[bits]=code=code+bl_count[bits-1]<<1;for(n=0;n<=max_code;n++)len=tree[2*n+1],0!==len&&(tree[2*n]=bi_reverse(next_code[len]++,len))}(tree,that.max_code,s.bl_count)}}function StaticTree(static_tree,extra_bits,extra_base,elems,max_length){this.static_tree=static_tree,this.extra_bits=extra_bits,this.extra_base=extra_base,this.elems=elems,this.max_length=max_length}Tree._length_code=[0,1,2,3,4,5,6,7].concat(...extractArray([[2,8],[2,9],[2,10],[2,11],[4,12],[4,13],[4,14],[4,15],[8,16],[8,17],[8,18],[8,19],[16,20],[16,21],[16,22],[16,23],[32,24],[32,25],[32,26],[31,27],[1,28]])),Tree.base_length=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0],Tree.base_dist=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576],Tree.d_code=function(dist){return dist<256?_dist_code[dist]:_dist_code[256+(dist>>>7)]},Tree.extra_lbits=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],Tree.extra_dbits=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],Tree.extra_blbits=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],Tree.bl_order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];const static_ltree2_second_part=extractArray([[144,8],[112,9],[24,7],[8,8]]);StaticTree.static_ltree=flatArray([12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,19,275,147,403,83,339,211,467,51,307,179,435,115,371,243,499,11,267,139,395,75,331,203,459,43,299,171,427,107,363,235,491,27,283,155,411,91,347,219,475,59,315,187,443,123,379,251,507,7,263,135,391,71,327,199,455,39,295,167,423,103,359,231,487,23,279,151,407,87,343,215,471,55,311,183,439,119,375,247,503,15,271,143,399,79,335,207,463,47,303,175,431,111,367,239,495,31,287,159,415,95,351,223,479,63,319,191,447,127,383,255,511,0,64,32,96,16,80,48,112,8,72,40,104,24,88,56,120,4,68,36,100,20,84,52,116,3,131,67,195,35,163,99,227].map(((value,index)=>[value,static_ltree2_second_part[index]])));const static_dtree_second_part=extractArray([[30,5]]);StaticTree.static_dtree=flatArray([0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23].map(((value,index)=>[value,static_dtree_second_part[index]]))),StaticTree.static_l_desc=new StaticTree(StaticTree.static_ltree,Tree.extra_lbits,257,286,MAX_BITS$1),StaticTree.static_d_desc=new StaticTree(StaticTree.static_dtree,Tree.extra_dbits,0,30,MAX_BITS$1),StaticTree.static_bl_desc=new StaticTree(null,Tree.extra_blbits,0,19,7);function Config(good_length,max_lazy,nice_length,max_chain,func){this.good_length=good_length,this.max_lazy=max_lazy,this.nice_length=nice_length,this.max_chain=max_chain,this.func=func}const config_table=[new Config(0,0,0,0,0),new Config(4,4,8,4,1),new Config(4,5,16,8,1),new Config(4,6,32,32,1),new Config(4,4,16,16,2),new Config(8,16,32,32,2),new Config(8,16,128,128,2),new Config(8,32,128,256,2),new Config(32,128,258,1024,2),new Config(32,258,258,4096,2)],z_errmsg=["need dictionary","stream end","","","stream error","data error","","buffer error","",""];function smaller(tree,n,m,depth){const tn2=tree[2*n],tm2=tree[2*m];return tn2<tm2||tn2==tm2&&depth[n]<=depth[m]}function Deflate(){const that=this;let strm,status,pending_buf_size,last_flush,w_size,w_bits,w_mask,win,window_size,prev,head,ins_h,hash_size,hash_bits,hash_mask,hash_shift,block_start,match_length,prev_match,match_available,strstart,match_start,lookahead,prev_length,max_chain_length,max_lazy_match,level,strategy,good_match,nice_match,dyn_ltree,dyn_dtree,bl_tree;const l_desc=new Tree,d_desc=new Tree,bl_desc=new Tree;let lit_bufsize,last_lit,matches,last_eob_len,bi_buf,bi_valid;function init_block(){let i;for(i=0;i<286;i++)dyn_ltree[2*i]=0;for(i=0;i<30;i++)dyn_dtree[2*i]=0;for(i=0;i<19;i++)bl_tree[2*i]=0;dyn_ltree[512]=1,that.opt_len=that.static_len=0,last_lit=matches=0}function scan_tree(tree,max_code){let curlen,prevlen=-1,nextlen=tree[1],count=0,max_count=7,min_count=4;0===nextlen&&(max_count=138,min_count=3),tree[2*(max_code+1)+1]=65535;for(let n=0;n<=max_code;n++)curlen=nextlen,nextlen=tree[2*(n+1)+1],++count<max_count&&curlen==nextlen||(count<min_count?bl_tree[2*curlen]+=count:0!==curlen?(curlen!=prevlen&&bl_tree[2*curlen]++,bl_tree[32]++):count<=10?bl_tree[34]++:bl_tree[36]++,count=0,prevlen=curlen,0===nextlen?(max_count=138,min_count=3):curlen==nextlen?(max_count=6,min_count=3):(max_count=7,min_count=4))}function put_byte(p){that.pending_buf[that.pending++]=p}function put_short(w){put_byte(255&w),put_byte(w>>>8&255)}function send_bits(value,length){let val;const len=length;bi_valid>16-len?(val=value,bi_buf|=val<<bi_valid&65535,put_short(bi_buf),bi_buf=val>>>16-bi_valid,bi_valid+=len-16):(bi_buf|=value<<bi_valid&65535,bi_valid+=len)}function send_code(c,tree){const c2=2*c;send_bits(65535&tree[c2],65535&tree[c2+1])}function send_tree(tree,max_code){let n,curlen,prevlen=-1,nextlen=tree[1],count=0,max_count=7,min_count=4;for(0===nextlen&&(max_count=138,min_count=3),n=0;n<=max_code;n++)if(curlen=nextlen,nextlen=tree[2*(n+1)+1],!(++count<max_count&&curlen==nextlen)){if(count<min_count)do{send_code(curlen,bl_tree)}while(0!=--count);else 0!==curlen?(curlen!=prevlen&&(send_code(curlen,bl_tree),count--),send_code(16,bl_tree),send_bits(count-3,2)):count<=10?(send_code(17,bl_tree),send_bits(count-3,3)):(send_code(18,bl_tree),send_bits(count-11,7));count=0,prevlen=curlen,0===nextlen?(max_count=138,min_count=3):curlen==nextlen?(max_count=6,min_count=3):(max_count=7,min_count=4)}}function bi_flush(){16==bi_valid?(put_short(bi_buf),bi_buf=0,bi_valid=0):bi_valid>=8&&(put_byte(255&bi_buf),bi_buf>>>=8,bi_valid-=8)}function _tr_tally(dist,lc){let out_length,in_length,dcode;if(that.dist_buf[last_lit]=dist,that.lc_buf[last_lit]=255&lc,last_lit++,0===dist?dyn_ltree[2*lc]++:(matches++,dist--,dyn_ltree[2*(Tree._length_code[lc]+256+1)]++,dyn_dtree[2*Tree.d_code(dist)]++),0==(8191&last_lit)&&level>2){for(out_length=8*last_lit,in_length=strstart-block_start,dcode=0;dcode<30;dcode++)out_length+=dyn_dtree[2*dcode]*(5+Tree.extra_dbits[dcode]);if(out_length>>>=3,matches<Math.floor(last_lit/2)&&out_length<Math.floor(in_length/2))return!0}return last_lit==lit_bufsize-1}function compress_block(ltree,dtree){let dist,lc,code,extra,lx=0;if(0!==last_lit)do{dist=that.dist_buf[lx],lc=that.lc_buf[lx],lx++,0===dist?send_code(lc,ltree):(code=Tree._length_code[lc],send_code(code+256+1,ltree),extra=Tree.extra_lbits[code],0!==extra&&(lc-=Tree.base_length[code],send_bits(lc,extra)),dist--,code=Tree.d_code(dist),send_code(code,dtree),extra=Tree.extra_dbits[code],0!==extra&&(dist-=Tree.base_dist[code],send_bits(dist,extra)))}while(lx<last_lit);send_code(256,ltree),last_eob_len=ltree[513]}function bi_windup(){bi_valid>8?put_short(bi_buf):bi_valid>0&&put_byte(255&bi_buf),bi_buf=0,bi_valid=0}function _tr_stored_block(buf,stored_len,eof){send_bits(0+(eof?1:0),3),function(buf,len,header){bi_windup(),last_eob_len=8,put_short(len),put_short(~len),that.pending_buf.set(win.subarray(buf,buf+len),that.pending),that.pending+=len}(buf,stored_len)}function _tr_flush_block(buf,stored_len,eof){let opt_lenb,static_lenb,max_blindex=0;level>0?(l_desc.build_tree(that),d_desc.build_tree(that),max_blindex=function(){let max_blindex;for(scan_tree(dyn_ltree,l_desc.max_code),scan_tree(dyn_dtree,d_desc.max_code),bl_desc.build_tree(that),max_blindex=18;max_blindex>=3&&0===bl_tree[2*Tree.bl_order[max_blindex]+1];max_blindex--);return that.opt_len+=3*(max_blindex+1)+5+5+4,max_blindex}(),opt_lenb=that.opt_len+3+7>>>3,static_lenb=that.static_len+3+7>>>3,static_lenb<=opt_lenb&&(opt_lenb=static_lenb)):opt_lenb=static_lenb=stored_len+5,stored_len+4<=opt_lenb&&-1!=buf?_tr_stored_block(buf,stored_len,eof):static_lenb==opt_lenb?(send_bits(2+(eof?1:0),3),compress_block(StaticTree.static_ltree,StaticTree.static_dtree)):(send_bits(4+(eof?1:0),3),function(lcodes,dcodes,blcodes){let rank;for(send_bits(lcodes-257,5),send_bits(dcodes-1,5),send_bits(blcodes-4,4),rank=0;rank<blcodes;rank++)send_bits(bl_tree[2*Tree.bl_order[rank]+1],3);send_tree(dyn_ltree,lcodes-1),send_tree(dyn_dtree,dcodes-1)}(l_desc.max_code+1,d_desc.max_code+1,max_blindex+1),compress_block(dyn_ltree,dyn_dtree)),init_block(),eof&&bi_windup()}function flush_block_only(eof){_tr_flush_block(block_start>=0?block_start:-1,strstart-block_start,eof),block_start=strstart,strm.flush_pending()}function fill_window(){let n,m,p,more;do{if(more=window_size-lookahead-strstart,0===more&&0===strstart&&0===lookahead)more=w_size;else if(-1==more)more--;else if(strstart>=w_size+w_size-262){win.set(win.subarray(w_size,w_size+w_size),0),match_start-=w_size,strstart-=w_size,block_start-=w_size,n=hash_size,p=n;do{m=65535&head[--p],head[p]=m>=w_size?m-w_size:0}while(0!=--n);n=w_size,p=n;do{m=65535&prev[--p],prev[p]=m>=w_size?m-w_size:0}while(0!=--n);more+=w_size}if(0===strm.avail_in)return;n=strm.read_buf(win,strstart+lookahead,more),lookahead+=n,lookahead>=3&&(ins_h=255&win[strstart],ins_h=(ins_h<<hash_shift^255&win[strstart+1])&hash_mask)}while(lookahead<262&&0!==strm.avail_in)}function longest_match(cur_match){let match,len,chain_length=max_chain_length,scan=strstart,best_len=prev_length;const limit=strstart>w_size-262?strstart-(w_size-262):0;let _nice_match=nice_match;const wmask=w_mask,strend=strstart+258;let scan_end1=win[scan+best_len-1],scan_end=win[scan+best_len];prev_length>=good_match&&(chain_length>>=2),_nice_match>lookahead&&(_nice_match=lookahead);do{if(match=cur_match,win[match+best_len]==scan_end&&win[match+best_len-1]==scan_end1&&win[match]==win[scan]&&win[++match]==win[scan+1]){scan+=2,match++;do{}while(win[++scan]==win[++match]&&win[++scan]==win[++match]&&win[++scan]==win[++match]&&win[++scan]==win[++match]&&win[++scan]==win[++match]&&win[++scan]==win[++match]&&win[++scan]==win[++match]&&win[++scan]==win[++match]&&scan<strend);if(len=258-(strend-scan),scan=strend-258,len>best_len){if(match_start=cur_match,best_len=len,len>=_nice_match)break;scan_end1=win[scan+best_len-1],scan_end=win[scan+best_len]}}}while((cur_match=65535&prev[cur_match&wmask])>limit&&0!=--chain_length);return best_len<=lookahead?best_len:lookahead}function deflateReset(strm){return strm.total_in=strm.total_out=0,strm.msg=null,that.pending=0,that.pending_out=0,status=113,last_flush=0,l_desc.dyn_tree=dyn_ltree,l_desc.stat_desc=StaticTree.static_l_desc,d_desc.dyn_tree=dyn_dtree,d_desc.stat_desc=StaticTree.static_d_desc,bl_desc.dyn_tree=bl_tree,bl_desc.stat_desc=StaticTree.static_bl_desc,bi_buf=0,bi_valid=0,last_eob_len=8,init_block(),function(){window_size=2*w_size,head[hash_size-1]=0;for(let i=0;i<hash_size-1;i++)head[i]=0;max_lazy_match=config_table[level].max_lazy,good_match=config_table[level].good_length,nice_match=config_table[level].nice_length,max_chain_length=config_table[level].max_chain,strstart=0,block_start=0,lookahead=0,match_length=prev_length=2,match_available=0,ins_h=0}(),0}that.depth=[],that.bl_count=[],that.heap=[],dyn_ltree=[],dyn_dtree=[],bl_tree=[],that.pqdownheap=function(tree,k){const heap=that.heap,v=heap[k];let j=k<<1;for(;j<=that.heap_len&&(j<that.heap_len&&smaller(tree,heap[j+1],heap[j],that.depth)&&j++,!smaller(tree,v,heap[j],that.depth));)heap[k]=heap[j],k=j,j<<=1;heap[k]=v},that.deflateInit=function(strm,_level,bits,_method,memLevel,_strategy){return _method||(_method=8),memLevel||(memLevel=8),_strategy||(_strategy=0),strm.msg=null,-1==_level&&(_level=6),memLevel<1||memLevel>9||8!=_method||bits<9||bits>15||_level<0||_level>9||_strategy<0||_strategy>2?-2:(strm.dstate=that,w_bits=bits,w_size=1<<w_bits,w_mask=w_size-1,hash_bits=memLevel+7,hash_size=1<<hash_bits,hash_mask=hash_size-1,hash_shift=Math.floor((hash_bits+3-1)/3),win=new Uint8Array(2*w_size),prev=[],head=[],lit_bufsize=1<<memLevel+6,that.pending_buf=new Uint8Array(4*lit_bufsize),pending_buf_size=4*lit_bufsize,that.dist_buf=new Uint16Array(lit_bufsize),that.lc_buf=new Uint8Array(lit_bufsize),level=_level,strategy=_strategy,deflateReset(strm))},that.deflateEnd=function(){return 42!=status&&113!=status&&666!=status?-2:(that.lc_buf=null,that.dist_buf=null,that.pending_buf=null,head=null,prev=null,win=null,that.dstate=null,113==status?-3:0)},that.deflateParams=function(strm,_level,_strategy){let err=0;return-1==_level&&(_level=6),_level<0||_level>9||_strategy<0||_strategy>2?-2:(config_table[level].func!=config_table[_level].func&&0!==strm.total_in&&(err=strm.deflate(1)),level!=_level&&(level=_level,max_lazy_match=config_table[level].max_lazy,good_match=config_table[level].good_length,nice_match=config_table[level].nice_length,max_chain_length=config_table[level].max_chain),strategy=_strategy,err)},that.deflateSetDictionary=function(_strm,dictionary,dictLength){let n,length=dictLength,index=0;if(!dictionary||42!=status)return-2;if(length<3)return 0;for(length>w_size-262&&(length=w_size-262,index=dictLength-length),win.set(dictionary.subarray(index,index+length),0),strstart=length,block_start=length,ins_h=255&win[0],ins_h=(ins_h<<hash_shift^255&win[1])&hash_mask,n=0;n<=length-3;n++)ins_h=(ins_h<<hash_shift^255&win[n+2])&hash_mask,prev[n&w_mask]=head[ins_h],head[ins_h]=n;return 0},that.deflate=function(_strm,flush){let i,header,level_flags,old_flush,bstate;if(flush>4||flush<0)return-2;if(!_strm.next_out||!_strm.next_in&&0!==_strm.avail_in||666==status&&4!=flush)return _strm.msg=z_errmsg[4],-2;if(0===_strm.avail_out)return _strm.msg=z_errmsg[7],-5;var b;if(strm=_strm,old_flush=last_flush,last_flush=flush,42==status&&(header=8+(w_bits-8<<4)<<8,level_flags=(level-1&255)>>1,level_flags>3&&(level_flags=3),header|=level_flags<<6,0!==strstart&&(header|=32),header+=31-header%31,status=113,put_byte((b=header)>>8&255),put_byte(255&b)),0!==that.pending){if(strm.flush_pending(),0===strm.avail_out)return last_flush=-1,0}else if(0===strm.avail_in&&flush<=old_flush&&4!=flush)return strm.msg=z_errmsg[7],-5;if(666==status&&0!==strm.avail_in)return _strm.msg=z_errmsg[7],-5;if(0!==strm.avail_in||0!==lookahead||0!=flush&&666!=status){switch(bstate=-1,config_table[level].func){case 0:bstate=function(flush){let max_start,max_block_size=65535;for(max_block_size>pending_buf_size-5&&(max_block_size=pending_buf_size-5);;){if(lookahead<=1){if(fill_window(),0===lookahead&&0==flush)return 0;if(0===lookahead)break}if(strstart+=lookahead,lookahead=0,max_start=block_start+max_block_size,(0===strstart||strstart>=max_start)&&(lookahead=strstart-max_start,strstart=max_start,flush_block_only(!1),0===strm.avail_out))return 0;if(strstart-block_start>=w_size-262&&(flush_block_only(!1),0===strm.avail_out))return 0}return flush_block_only(4==flush),0===strm.avail_out?4==flush?2:0:4==flush?3:1}(flush);break;case 1:bstate=function(flush){let bflush,hash_head=0;for(;;){if(lookahead<262){if(fill_window(),lookahead<262&&0==flush)return 0;if(0===lookahead)break}if(lookahead>=3&&(ins_h=(ins_h<<hash_shift^255&win[strstart+2])&hash_mask,hash_head=65535&head[ins_h],prev[strstart&w_mask]=head[ins_h],head[ins_h]=strstart),0!==hash_head&&(strstart-hash_head&65535)<=w_size-262&&2!=strategy&&(match_length=longest_match(hash_head)),match_length>=3)if(bflush=_tr_tally(strstart-match_start,match_length-3),lookahead-=match_length,match_length<=max_lazy_match&&lookahead>=3){match_length--;do{strstart++,ins_h=(ins_h<<hash_shift^255&win[strstart+2])&hash_mask,hash_head=65535&head[ins_h],prev[strstart&w_mask]=head[ins_h],head[ins_h]=strstart}while(0!=--match_length);strstart++}else strstart+=match_length,match_length=0,ins_h=255&win[strstart],ins_h=(ins_h<<hash_shift^255&win[strstart+1])&hash_mask;else bflush=_tr_tally(0,255&win[strstart]),lookahead--,strstart++;if(bflush&&(flush_block_only(!1),0===strm.avail_out))return 0}return flush_block_only(4==flush),0===strm.avail_out?4==flush?2:0:4==flush?3:1}(flush);break;case 2:bstate=function(flush){let bflush,max_insert,hash_head=0;for(;;){if(lookahead<262){if(fill_window(),lookahead<262&&0==flush)return 0;if(0===lookahead)break}if(lookahead>=3&&(ins_h=(ins_h<<hash_shift^255&win[strstart+2])&hash_mask,hash_head=65535&head[ins_h],prev[strstart&w_mask]=head[ins_h],head[ins_h]=strstart),prev_length=match_length,prev_match=match_start,match_length=2,0!==hash_head&&prev_length<max_lazy_match&&(strstart-hash_head&65535)<=w_size-262&&(2!=strategy&&(match_length=longest_match(hash_head)),match_length<=5&&(1==strategy||3==match_length&&strstart-match_start>4096)&&(match_length=2)),prev_length>=3&&match_length<=prev_length){max_insert=strstart+lookahead-3,bflush=_tr_tally(strstart-1-prev_match,prev_length-3),lookahead-=prev_length-1,prev_length-=2;do{++strstart<=max_insert&&(ins_h=(ins_h<<hash_shift^255&win[strstart+2])&hash_mask,hash_head=65535&head[ins_h],prev[strstart&w_mask]=head[ins_h],head[ins_h]=strstart)}while(0!=--prev_length);if(match_available=0,match_length=2,strstart++,bflush&&(flush_block_only(!1),0===strm.avail_out))return 0}else if(0!==match_available){if(bflush=_tr_tally(0,255&win[strstart-1]),bflush&&flush_block_only(!1),strstart++,lookahead--,0===strm.avail_out)return 0}else match_available=1,strstart++,lookahead--}return 0!==match_available&&(bflush=_tr_tally(0,255&win[strstart-1]),match_available=0),flush_block_only(4==flush),0===strm.avail_out?4==flush?2:0:4==flush?3:1}(flush)}if(2!=bstate&&3!=bstate||(status=666),0==bstate||2==bstate)return 0===strm.avail_out&&(last_flush=-1),0;if(1==bstate){if(1==flush)send_bits(2,3),send_code(256,StaticTree.static_ltree),bi_flush(),1+last_eob_len+10-bi_valid<9&&(send_bits(2,3),send_code(256,StaticTree.static_ltree),bi_flush()),last_eob_len=7;else if(_tr_stored_block(0,0,!1),3==flush)for(i=0;i<hash_size;i++)head[i]=0;if(strm.flush_pending(),0===strm.avail_out)return last_flush=-1,0}}return 4!=flush?0:1}}function ZStream$1(){this.next_in_index=0,this.next_out_index=0,this.avail_in=0,this.total_in=0,this.avail_out=0,this.total_out=0}ZStream$1.prototype={deflateInit(level,bits){return this.dstate=new Deflate,bits||(bits=MAX_BITS$1),this.dstate.deflateInit(this,level,bits)},deflate(flush){return this.dstate?this.dstate.deflate(this,flush):-2},deflateEnd(){if(!this.dstate)return-2;const ret=this.dstate.deflateEnd();return this.dstate=null,ret},deflateParams(level,strategy){return this.dstate?this.dstate.deflateParams(this,level,strategy):-2},deflateSetDictionary(dictionary,dictLength){return this.dstate?this.dstate.deflateSetDictionary(this,dictionary,dictLength):-2},read_buf(buf,start,size){let len=this.avail_in;return len>size&&(len=size),0===len?0:(this.avail_in-=len,buf.set(this.next_in.subarray(this.next_in_index,this.next_in_index+len),start),this.next_in_index+=len,this.total_in+=len,len)},flush_pending(){const that=this;let len=that.dstate.pending;len>that.avail_out&&(len=that.avail_out),0!==len&&(that.next_out.set(that.dstate.pending_buf.subarray(that.dstate.pending_out,that.dstate.pending_out+len),that.next_out_index),that.next_out_index+=len,that.dstate.pending_out+=len,that.total_out+=len,that.avail_out-=len,that.dstate.pending-=len,0===that.dstate.pending&&(that.dstate.pending_out=0))}};const Z_OK=0,Z_STREAM_END=1,Z_STREAM_ERROR=-2,Z_DATA_ERROR=-3,Z_MEM_ERROR=-4,Z_BUF_ERROR=-5,inflate_mask=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],MANY=1440,fixed_tl=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],fixed_td=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],cplens=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],cplext=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,112,112],cpdist=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],cpdext=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],BMAX=15;function InfTree(){let hn,v,c,r,u,x;function huft_build(b,bindex,n,s,d,e,t,m,hp,hn,v){let a,f,g,h,i,j,k,l,mask,p,q,w,xp,y,z;p=0,i=n;do{c[b[bindex+p]]++,p++,i--}while(0!==i);if(c[0]==n)return t[0]=-1,m[0]=0,Z_OK;for(l=m[0],j=1;j<=BMAX&&0===c[j];j++);for(k=j,l<j&&(l=j),i=BMAX;0!==i&&0===c[i];i--);for(g=i,l>i&&(l=i),m[0]=l,y=1<<j;j<i;j++,y<<=1)if((y-=c[j])<0)return Z_DATA_ERROR;if((y-=c[i])<0)return Z_DATA_ERROR;for(c[i]+=y,x[1]=j=0,p=1,xp=2;0!=--i;)x[xp]=j+=c[p],xp++,p++;i=0,p=0;do{0!==(j=b[bindex+p])&&(v[x[j]++]=i),p++}while(++i<n);for(n=x[g],x[0]=i=0,p=0,h=-1,w=-l,u[0]=0,q=0,z=0;k<=g;k++)for(a=c[k];0!=a--;){for(;k>w+l;){if(h++,w+=l,z=g-w,z=z>l?l:z,(f=1<<(j=k-w))>a+1&&(f-=a+1,xp=k,j<z))for(;++j<z&&!((f<<=1)<=c[++xp]);)f-=c[xp];if(z=1<<j,hn[0]+z>MANY)return Z_DATA_ERROR;u[h]=q=hn[0],hn[0]+=z,0!==h?(x[h]=i,r[0]=j,r[1]=l,j=i>>>w-l,r[2]=q-u[h-1]-j,hp.set(r,3*(u[h-1]+j))):t[0]=q}for(r[1]=k-w,p>=n?r[0]=192:v[p]<s?(r[0]=v[p]<256?0:96,r[2]=v[p++]):(r[0]=e[v[p]-s]+16+64,r[2]=d[v[p++]-s]),f=1<<k-w,j=i>>>w;j<z;j+=f)hp.set(r,3*(q+j));for(j=1<<k-1;0!=(i&j);j>>>=1)i^=j;for(i^=j,mask=(1<<w)-1;(i&mask)!=x[h];)h--,w-=l,mask=(1<<w)-1}return 0!==y&&1!=g?Z_BUF_ERROR:Z_OK}function initWorkArea(vsize){let i;for(hn||(hn=[],v=[],c=new Int32Array(BMAX+1),r=[],u=new Int32Array(BMAX),x=new Int32Array(BMAX+1)),v.length<vsize&&(v=[]),i=0;i<vsize;i++)v[i]=0;for(i=0;i<BMAX+1;i++)c[i]=0;for(i=0;i<3;i++)r[i]=0;u.set(c.subarray(0,BMAX),0),x.set(c.subarray(0,BMAX+1),0)}this.inflate_trees_bits=function(c,bb,tb,hp,z){let result;return initWorkArea(19),hn[0]=0,result=huft_build(c,0,19,19,null,null,tb,bb,hp,hn,v),result==Z_DATA_ERROR?z.msg="oversubscribed dynamic bit lengths tree":result!=Z_BUF_ERROR&&0!==bb[0]||(z.msg="incomplete dynamic bit lengths tree",result=Z_DATA_ERROR),result},this.inflate_trees_dynamic=function(nl,nd,c,bl,bd,tl,td,hp,z){let result;return initWorkArea(288),hn[0]=0,result=huft_build(c,0,nl,257,cplens,cplext,tl,bl,hp,hn,v),result!=Z_OK||0===bl[0]?(result==Z_DATA_ERROR?z.msg="oversubscribed literal/length tree":result!=Z_MEM_ERROR&&(z.msg="incomplete literal/length tree",result=Z_DATA_ERROR),result):(initWorkArea(288),result=huft_build(c,nl,nd,0,cpdist,cpdext,td,bd,hp,hn,v),result!=Z_OK||0===bd[0]&&nl>257?(result==Z_DATA_ERROR?z.msg="oversubscribed distance tree":result==Z_BUF_ERROR?(z.msg="incomplete distance tree",result=Z_DATA_ERROR):result!=Z_MEM_ERROR&&(z.msg="empty distance tree with lengths",result=Z_DATA_ERROR),result):Z_OK)}}InfTree.inflate_trees_fixed=function(bl,bd,tl,td){return bl[0]=9,bd[0]=5,tl[0]=fixed_tl,td[0]=fixed_td,Z_OK};const START=0,LEN=1,LENEXT=2,DIST=3,DISTEXT=4,COPY=5,LIT=6,WASH=7,END=8,BADCODE=9;function InfCodes(){let mode,tree,ltree,dtree,len=0,tree_index=0,need=0,lit=0,get=0,dist=0,lbits=0,dbits=0,ltree_index=0,dtree_index=0;function inflate_fast(bl,bd,tl,tl_index,td,td_index,s,z){let t,tp,tp_index,e,b,k,p,n,q,m,ml,md,c,d,r,tp_index_t_3;p=z.next_in_index,n=z.avail_in,b=s.bitb,k=s.bitk,q=s.write,m=q<s.read?s.read-q-1:s.end-q,ml=inflate_mask[bl],md=inflate_mask[bd];do{for(;k<20;)n--,b|=(255&z.read_byte(p++))<<k,k+=8;if(t=b&ml,tp=tl,tp_index=tl_index,tp_index_t_3=3*(tp_index+t),0!==(e=tp[tp_index_t_3]))for(;;){if(b>>=tp[tp_index_t_3+1],k-=tp[tp_index_t_3+1],0!=(16&e)){for(e&=15,c=tp[tp_index_t_3+2]+(b&inflate_mask[e]),b>>=e,k-=e;k<15;)n--,b|=(255&z.read_byte(p++))<<k,k+=8;for(t=b&md,tp=td,tp_index=td_index,tp_index_t_3=3*(tp_index+t),e=tp[tp_index_t_3];;){if(b>>=tp[tp_index_t_3+1],k-=tp[tp_index_t_3+1],0!=(16&e)){for(e&=15;k<e;)n--,b|=(255&z.read_byte(p++))<<k,k+=8;if(d=tp[tp_index_t_3+2]+(b&inflate_mask[e]),b>>=e,k-=e,m-=c,q>=d)r=q-d,q-r>0&&2>q-r?(s.win[q++]=s.win[r++],s.win[q++]=s.win[r++],c-=2):(s.win.set(s.win.subarray(r,r+2),q),q+=2,r+=2,c-=2);else{r=q-d;do{r+=s.end}while(r<0);if(e=s.end-r,c>e){if(c-=e,q-r>0&&e>q-r)do{s.win[q++]=s.win[r++]}while(0!=--e);else s.win.set(s.win.subarray(r,r+e),q),q+=e,r+=e,e=0;r=0}}if(q-r>0&&c>q-r)do{s.win[q++]=s.win[r++]}while(0!=--c);else s.win.set(s.win.subarray(r,r+c),q),q+=c,r+=c,c=0;break}if(0!=(64&e))return z.msg="invalid distance code",c=z.avail_in-n,c=k>>3<c?k>>3:c,n+=c,p-=c,k-=c<<3,s.bitb=b,s.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,s.write=q,Z_DATA_ERROR;t+=tp[tp_index_t_3+2],t+=b&inflate_mask[e],tp_index_t_3=3*(tp_index+t),e=tp[tp_index_t_3]}break}if(0!=(64&e))return 0!=(32&e)?(c=z.avail_in-n,c=k>>3<c?k>>3:c,n+=c,p-=c,k-=c<<3,s.bitb=b,s.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,s.write=q,Z_STREAM_END):(z.msg="invalid literal/length code",c=z.avail_in-n,c=k>>3<c?k>>3:c,n+=c,p-=c,k-=c<<3,s.bitb=b,s.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,s.write=q,Z_DATA_ERROR);if(t+=tp[tp_index_t_3+2],t+=b&inflate_mask[e],tp_index_t_3=3*(tp_index+t),0===(e=tp[tp_index_t_3])){b>>=tp[tp_index_t_3+1],k-=tp[tp_index_t_3+1],s.win[q++]=tp[tp_index_t_3+2],m--;break}}else b>>=tp[tp_index_t_3+1],k-=tp[tp_index_t_3+1],s.win[q++]=tp[tp_index_t_3+2],m--}while(m>=258&&n>=10);return c=z.avail_in-n,c=k>>3<c?k>>3:c,n+=c,p-=c,k-=c<<3,s.bitb=b,s.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,s.write=q,Z_OK}this.init=function(bl,bd,tl,tl_index,td,td_index){mode=START,lbits=bl,dbits=bd,ltree=tl,ltree_index=tl_index,dtree=td,dtree_index=td_index,tree=null},this.proc=function(s,z,r){let j,tindex,e,n,q,m,f,b=0,k=0,p=0;for(p=z.next_in_index,n=z.avail_in,b=s.bitb,k=s.bitk,q=s.write,m=q<s.read?s.read-q-1:s.end-q;;)switch(mode){case START:if(m>=258&&n>=10&&(s.bitb=b,s.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,s.write=q,r=inflate_fast(lbits,dbits,ltree,ltree_index,dtree,dtree_index,s,z),p=z.next_in_index,n=z.avail_in,b=s.bitb,k=s.bitk,q=s.write,m=q<s.read?s.read-q-1:s.end-q,r!=Z_OK)){mode=r==Z_STREAM_END?WASH:BADCODE;break}need=lbits,tree=ltree,tree_index=ltree_index,mode=LEN;case LEN:for(j=need;k<j;){if(0===n)return s.bitb=b,s.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,s.write=q,s.inflate_flush(z,r);r=Z_OK,n--,b|=(255&z.read_byte(p++))<<k,k+=8}if(tindex=3*(tree_index+(b&inflate_mask[j])),b>>>=tree[tindex+1],k-=tree[tindex+1],e=tree[tindex],0===e){lit=tree[tindex+2],mode=LIT;break}if(0!=(16&e)){get=15&e,len=tree[tindex+2],mode=LENEXT;break}if(0==(64&e)){need=e,tree_index=tindex/3+tree[tindex+2];break}if(0!=(32&e)){mode=WASH;break}return mode=BADCODE,z.msg="invalid literal/length code",r=Z_DATA_ERROR,s.bitb=b,s.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,s.write=q,s.inflate_flush(z,r);case LENEXT:for(j=get;k<j;){if(0===n)return s.bitb=b,s.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,s.write=q,s.inflate_flush(z,r);r=Z_OK,n--,b|=(255&z.read_byte(p++))<<k,k+=8}len+=b&inflate_mask[j],b>>=j,k-=j,need=dbits,tree=dtree,tree_index=dtree_index,mode=DIST;case DIST:for(j=need;k<j;){if(0===n)return s.bitb=b,s.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,s.write=q,s.inflate_flush(z,r);r=Z_OK,n--,b|=(255&z.read_byte(p++))<<k,k+=8}if(tindex=3*(tree_index+(b&inflate_mask[j])),b>>=tree[tindex+1],k-=tree[tindex+1],e=tree[tindex],0!=(16&e)){get=15&e,dist=tree[tindex+2],mode=DISTEXT;break}if(0==(64&e)){need=e,tree_index=tindex/3+tree[tindex+2];break}return mode=BADCODE,z.msg="invalid distance code",r=Z_DATA_ERROR,s.bitb=b,s.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,s.write=q,s.inflate_flush(z,r);case DISTEXT:for(j=get;k<j;){if(0===n)return s.bitb=b,s.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,s.write=q,s.inflate_flush(z,r);r=Z_OK,n--,b|=(255&z.read_byte(p++))<<k,k+=8}dist+=b&inflate_mask[j],b>>=j,k-=j,mode=COPY;case COPY:for(f=q-dist;f<0;)f+=s.end;for(;0!==len;){if(0===m&&(q==s.end&&0!==s.read&&(q=0,m=q<s.read?s.read-q-1:s.end-q),0===m&&(s.write=q,r=s.inflate_flush(z,r),q=s.write,m=q<s.read?s.read-q-1:s.end-q,q==s.end&&0!==s.read&&(q=0,m=q<s.read?s.read-q-1:s.end-q),0===m)))return s.bitb=b,s.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,s.write=q,s.inflate_flush(z,r);s.win[q++]=s.win[f++],m--,f==s.end&&(f=0),len--}mode=START;break;case LIT:if(0===m&&(q==s.end&&0!==s.read&&(q=0,m=q<s.read?s.read-q-1:s.end-q),0===m&&(s.write=q,r=s.inflate_flush(z,r),q=s.write,m=q<s.read?s.read-q-1:s.end-q,q==s.end&&0!==s.read&&(q=0,m=q<s.read?s.read-q-1:s.end-q),0===m)))return s.bitb=b,s.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,s.write=q,s.inflate_flush(z,r);r=Z_OK,s.win[q++]=lit,m--,mode=START;break;case WASH:if(k>7&&(k-=8,n++,p--),s.write=q,r=s.inflate_flush(z,r),q=s.write,m=q<s.read?s.read-q-1:s.end-q,s.read!=s.write)return s.bitb=b,s.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,s.write=q,s.inflate_flush(z,r);mode=END;case END:return r=Z_STREAM_END,s.bitb=b,s.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,s.write=q,s.inflate_flush(z,r);case BADCODE:return r=Z_DATA_ERROR,s.bitb=b,s.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,s.write=q,s.inflate_flush(z,r);default:return r=Z_STREAM_ERROR,s.bitb=b,s.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,s.write=q,s.inflate_flush(z,r)}},this.free=function(){}}const border=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],TYPE=0,LENS=1,STORED=2,TABLE=3,BTREE=4,DTREE=5,CODES=6,DRY=7,DONELOCKS=8,BADBLOCKS=9;function InfBlocks(z,w){const that=this;let blens,mode=TYPE,left=0,table=0,index=0;const bb=[0],tb=[0],codes=new InfCodes;let last=0,hufts=new Int32Array(3*MANY);const inftree=new InfTree;that.bitk=0,that.bitb=0,that.win=new Uint8Array(w),that.end=w,that.read=0,that.write=0,that.reset=function(z,c){c&&(c[0]=0),mode==CODES&&codes.free(z),mode=TYPE,that.bitk=0,that.bitb=0,that.read=that.write=0},that.reset(z,null),that.inflate_flush=function(z,r){let n,p,q;return p=z.next_out_index,q=that.read,n=(q<=that.write?that.write:that.end)-q,n>z.avail_out&&(n=z.avail_out),0!==n&&r==Z_BUF_ERROR&&(r=Z_OK),z.avail_out-=n,z.total_out+=n,z.next_out.set(that.win.subarray(q,q+n),p),p+=n,q+=n,q==that.end&&(q=0,that.write==that.end&&(that.write=0),n=that.write-q,n>z.avail_out&&(n=z.avail_out),0!==n&&r==Z_BUF_ERROR&&(r=Z_OK),z.avail_out-=n,z.total_out+=n,z.next_out.set(that.win.subarray(q,q+n),p),p+=n,q+=n),z.next_out_index=p,that.read=q,r},that.proc=function(z,r){let t,b,k,p,n,q,m,i;for(p=z.next_in_index,n=z.avail_in,b=that.bitb,k=that.bitk,q=that.write,m=q<that.read?that.read-q-1:that.end-q;;){let bl,bd,tl,td,bl_,bd_,tl_,td_;switch(mode){case TYPE:for(;k<3;){if(0===n)return that.bitb=b,that.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,that.write=q,that.inflate_flush(z,r);r=Z_OK,n--,b|=(255&z.read_byte(p++))<<k,k+=8}switch(t=7&b,last=1&t,t>>>1){case 0:b>>>=3,k-=3,t=7&k,b>>>=t,k-=t,mode=LENS;break;case 1:bl=[],bd=[],tl=[[]],td=[[]],InfTree.inflate_trees_fixed(bl,bd,tl,td),codes.init(bl[0],bd[0],tl[0],0,td[0],0),b>>>=3,k-=3,mode=CODES;break;case 2:b>>>=3,k-=3,mode=TABLE;break;case 3:return b>>>=3,k-=3,mode=BADBLOCKS,z.msg="invalid block type",r=Z_DATA_ERROR,that.bitb=b,that.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,that.write=q,that.inflate_flush(z,r)}break;case LENS:for(;k<32;){if(0===n)return that.bitb=b,that.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,that.write=q,that.inflate_flush(z,r);r=Z_OK,n--,b|=(255&z.read_byte(p++))<<k,k+=8}if((~b>>>16&65535)!=(65535&b))return mode=BADBLOCKS,z.msg="invalid stored block lengths",r=Z_DATA_ERROR,that.bitb=b,that.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,that.write=q,that.inflate_flush(z,r);left=65535&b,b=k=0,mode=0!==left?STORED:0!==last?DRY:TYPE;break;case STORED:if(0===n)return that.bitb=b,that.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,that.write=q,that.inflate_flush(z,r);if(0===m&&(q==that.end&&0!==that.read&&(q=0,m=q<that.read?that.read-q-1:that.end-q),0===m&&(that.write=q,r=that.inflate_flush(z,r),q=that.write,m=q<that.read?that.read-q-1:that.end-q,q==that.end&&0!==that.read&&(q=0,m=q<that.read?that.read-q-1:that.end-q),0===m)))return that.bitb=b,that.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,that.write=q,that.inflate_flush(z,r);if(r=Z_OK,t=left,t>n&&(t=n),t>m&&(t=m),that.win.set(z.read_buf(p,t),q),p+=t,n-=t,q+=t,m-=t,0!=(left-=t))break;mode=0!==last?DRY:TYPE;break;case TABLE:for(;k<14;){if(0===n)return that.bitb=b,that.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,that.write=q,that.inflate_flush(z,r);r=Z_OK,n--,b|=(255&z.read_byte(p++))<<k,k+=8}if(table=t=16383&b,(31&t)>29||(t>>5&31)>29)return mode=BADBLOCKS,z.msg="too many length or distance symbols",r=Z_DATA_ERROR,that.bitb=b,that.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,that.write=q,that.inflate_flush(z,r);if(t=258+(31&t)+(t>>5&31),!blens||blens.length<t)blens=[];else for(i=0;i<t;i++)blens[i]=0;b>>>=14,k-=14,index=0,mode=BTREE;case BTREE:for(;index<4+(table>>>10);){for(;k<3;){if(0===n)return that.bitb=b,that.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,that.write=q,that.inflate_flush(z,r);r=Z_OK,n--,b|=(255&z.read_byte(p++))<<k,k+=8}blens[border[index++]]=7&b,b>>>=3,k-=3}for(;index<19;)blens[border[index++]]=0;if(bb[0]=7,t=inftree.inflate_trees_bits(blens,bb,tb,hufts,z),t!=Z_OK)return(r=t)==Z_DATA_ERROR&&(blens=null,mode=BADBLOCKS),that.bitb=b,that.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,that.write=q,that.inflate_flush(z,r);index=0,mode=DTREE;case DTREE:for(;t=table,!(index>=258+(31&t)+(t>>5&31));){let j,c;for(t=bb[0];k<t;){if(0===n)return that.bitb=b,that.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,that.write=q,that.inflate_flush(z,r);r=Z_OK,n--,b|=(255&z.read_byte(p++))<<k,k+=8}if(t=hufts[3*(tb[0]+(b&inflate_mask[t]))+1],c=hufts[3*(tb[0]+(b&inflate_mask[t]))+2],c<16)b>>>=t,k-=t,blens[index++]=c;else{for(i=18==c?7:c-14,j=18==c?11:3;k<t+i;){if(0===n)return that.bitb=b,that.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,that.write=q,that.inflate_flush(z,r);r=Z_OK,n--,b|=(255&z.read_byte(p++))<<k,k+=8}if(b>>>=t,k-=t,j+=b&inflate_mask[i],b>>>=i,k-=i,i=index,t=table,i+j>258+(31&t)+(t>>5&31)||16==c&&i<1)return blens=null,mode=BADBLOCKS,z.msg="invalid bit length repeat",r=Z_DATA_ERROR,that.bitb=b,that.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,that.write=q,that.inflate_flush(z,r);c=16==c?blens[i-1]:0;do{blens[i++]=c}while(0!=--j);index=i}}if(tb[0]=-1,bl_=[],bd_=[],tl_=[],td_=[],bl_[0]=9,bd_[0]=6,t=table,t=inftree.inflate_trees_dynamic(257+(31&t),1+(t>>5&31),blens,bl_,bd_,tl_,td_,hufts,z),t!=Z_OK)return t==Z_DATA_ERROR&&(blens=null,mode=BADBLOCKS),r=t,that.bitb=b,that.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,that.write=q,that.inflate_flush(z,r);codes.init(bl_[0],bd_[0],hufts,tl_[0],hufts,td_[0]),mode=CODES;case CODES:if(that.bitb=b,that.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,that.write=q,(r=codes.proc(that,z,r))!=Z_STREAM_END)return that.inflate_flush(z,r);if(r=Z_OK,codes.free(z),p=z.next_in_index,n=z.avail_in,b=that.bitb,k=that.bitk,q=that.write,m=q<that.read?that.read-q-1:that.end-q,0===last){mode=TYPE;break}mode=DRY;case DRY:if(that.write=q,r=that.inflate_flush(z,r),q=that.write,m=q<that.read?that.read-q-1:that.end-q,that.read!=that.write)return that.bitb=b,that.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,that.write=q,that.inflate_flush(z,r);mode=DONELOCKS;case DONELOCKS:return r=Z_STREAM_END,that.bitb=b,that.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,that.write=q,that.inflate_flush(z,r);case BADBLOCKS:return r=Z_DATA_ERROR,that.bitb=b,that.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,that.write=q,that.inflate_flush(z,r);default:return r=Z_STREAM_ERROR,that.bitb=b,that.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,that.write=q,that.inflate_flush(z,r)}}},that.free=function(z){that.reset(z,null),that.win=null,hufts=null},that.set_dictionary=function(d,start,n){that.win.set(d.subarray(start,start+n),0),that.read=that.write=n},that.sync_point=function(){return mode==LENS?1:0}}const mark=[0,0,255,255];function Inflate(){const that=this;function inflateReset(z){return z&&z.istate?(z.total_in=z.total_out=0,z.msg=null,z.istate.mode=7,z.istate.blocks.reset(z,null),Z_OK):Z_STREAM_ERROR}that.mode=0,that.method=0,that.was=[0],that.need=0,that.marker=0,that.wbits=0,that.inflateEnd=function(z){return that.blocks&&that.blocks.free(z),that.blocks=null,Z_OK},that.inflateInit=function(z,w){return z.msg=null,that.blocks=null,w<8||w>15?(that.inflateEnd(z),Z_STREAM_ERROR):(that.wbits=w,z.istate.blocks=new InfBlocks(z,1<<w),inflateReset(z),Z_OK)},that.inflate=function(z,f){let r,b;if(!z||!z.istate||!z.next_in)return Z_STREAM_ERROR;const istate=z.istate;for(f=4==f?Z_BUF_ERROR:Z_OK,r=Z_BUF_ERROR;;)switch(istate.mode){case 0:if(0===z.avail_in)return r;if(r=f,z.avail_in--,z.total_in++,8!=(15&(istate.method=z.read_byte(z.next_in_index++)))){istate.mode=13,z.msg="unknown compression method",istate.marker=5;break}if(8+(istate.method>>4)>istate.wbits){istate.mode=13,z.msg="invalid win size",istate.marker=5;break}istate.mode=1;case 1:if(0===z.avail_in)return r;if(r=f,z.avail_in--,z.total_in++,b=255&z.read_byte(z.next_in_index++),((istate.method<<8)+b)%31!=0){istate.mode=13,z.msg="incorrect header check",istate.marker=5;break}if(0==(32&b)){istate.mode=7;break}istate.mode=2;case 2:if(0===z.avail_in)return r;r=f,z.avail_in--,z.total_in++,istate.need=(255&z.read_byte(z.next_in_index++))<<24&4278190080,istate.mode=3;case 3:if(0===z.avail_in)return r;r=f,z.avail_in--,z.total_in++,istate.need+=(255&z.read_byte(z.next_in_index++))<<16&16711680,istate.mode=4;case 4:if(0===z.avail_in)return r;r=f,z.avail_in--,z.total_in++,istate.need+=(255&z.read_byte(z.next_in_index++))<<8&65280,istate.mode=5;case 5:return 0===z.avail_in?r:(r=f,z.avail_in--,z.total_in++,istate.need+=255&z.read_byte(z.next_in_index++),istate.mode=6,2);case 6:return istate.mode=13,z.msg="need dictionary",istate.marker=0,Z_STREAM_ERROR;case 7:if(r=istate.blocks.proc(z,r),r==Z_DATA_ERROR){istate.mode=13,istate.marker=0;break}if(r==Z_OK&&(r=f),r!=Z_STREAM_END)return r;r=f,istate.blocks.reset(z,istate.was),istate.mode=12;case 12:return z.avail_in=0,Z_STREAM_END;case 13:return Z_DATA_ERROR;default:return Z_STREAM_ERROR}},that.inflateSetDictionary=function(z,dictionary,dictLength){let index=0,length=dictLength;if(!z||!z.istate||6!=z.istate.mode)return Z_STREAM_ERROR;const istate=z.istate;return length>=1<<istate.wbits&&(length=(1<<istate.wbits)-1,index=dictLength-length),istate.blocks.set_dictionary(dictionary,index,length),istate.mode=7,Z_OK},that.inflateSync=function(z){let n,p,m,r,w;if(!z||!z.istate)return Z_STREAM_ERROR;const istate=z.istate;if(13!=istate.mode&&(istate.mode=13,istate.marker=0),0===(n=z.avail_in))return Z_BUF_ERROR;for(p=z.next_in_index,m=istate.marker;0!==n&&m<4;)z.read_byte(p)==mark[m]?m++:m=0!==z.read_byte(p)?0:4-m,p++,n--;return z.total_in+=p-z.next_in_index,z.next_in_index=p,z.avail_in=n,istate.marker=m,4!=m?Z_DATA_ERROR:(r=z.total_in,w=z.total_out,inflateReset(z),z.total_in=r,z.total_out=w,istate.mode=7,Z_OK)},that.inflateSyncPoint=function(z){return z&&z.istate&&z.istate.blocks?z.istate.blocks.sync_point():Z_STREAM_ERROR}}function ZStream(){}ZStream.prototype={inflateInit(bits){return this.istate=new Inflate,bits||(bits=15),this.istate.inflateInit(this,bits)},inflate(f){return this.istate?this.istate.inflate(this,f):Z_STREAM_ERROR},inflateEnd(){if(!this.istate)return Z_STREAM_ERROR;const ret=this.istate.inflateEnd(this);return this.istate=null,ret},inflateSync(){return this.istate?this.istate.inflateSync(this):Z_STREAM_ERROR},inflateSetDictionary(dictionary,dictLength){return this.istate?this.istate.inflateSetDictionary(this,dictionary,dictLength):Z_STREAM_ERROR},read_byte(start){return this.next_in[start]},read_buf(start,size){return this.next_in.subarray(start,start+size)}};const MAX_32_BITS=4294967295,COMPRESSION_METHOD_DEFLATE=8,COMPRESSION_METHOD_STORE=0,COMPRESSION_METHOD_AES=99,LOCAL_FILE_HEADER_SIGNATURE=67324752,SPLIT_ZIP_FILE_SIGNATURE=134695760,DATA_DESCRIPTOR_RECORD_SIGNATURE=SPLIT_ZIP_FILE_SIGNATURE,EXTRAFIELD_TYPE_ZIP64=1,EXTRAFIELD_TYPE_AES=39169,EXTRAFIELD_TYPE_NTFS=10,EXTRAFIELD_TYPE_NTFS_TAG1=1,EXTRAFIELD_TYPE_EXTENDED_TIMESTAMP=21589,EXTRAFIELD_TYPE_USDZ=6534,BITFLAG_ENCRYPTED=1,BITFLAG_DATA_DESCRIPTOR=8,BITFLAG_LANG_ENCODING_FLAG=2048,VERSION_ZIP64=45,VERSION_AES=51,MAX_DATE=new Date(2107,11,31),MIN_DATE=new Date(1980,0,1),UNDEFINED_VALUE=void 0,FUNCTION_TYPE$1="function";class StreamAdapter{constructor(Codec){return class extends TransformStream{constructor(_format,options){const codec=new Codec(options);super({transform(chunk,controller){controller.enqueue(codec.append(chunk))},flush(controller){const chunk=codec.flush();chunk&&controller.enqueue(chunk)}})}}}}const MINIMUM_CHUNK_SIZE=64;let maxWorkers=2;try{"undefined"!=typeof navigator&&navigator.hardwareConcurrency&&(maxWorkers=navigator.hardwareConcurrency)}catch(_error){}const DEFAULT_CONFIGURATION={chunkSize:524288,maxWorkers:maxWorkers,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,workerScripts:UNDEFINED_VALUE,CompressionStreamNative:"undefined"!=typeof CompressionStream&&CompressionStream,DecompressionStreamNative:"undefined"!=typeof DecompressionStream&&DecompressionStream},config=Object.assign({},DEFAULT_CONFIGURATION);function configure(configuration){const{baseURL:baseURL,chunkSize:chunkSize,maxWorkers:maxWorkers,terminateWorkerTimeout:terminateWorkerTimeout,useCompressionStream:useCompressionStream,useWebWorkers:useWebWorkers,Deflate:Deflate,Inflate:Inflate,CompressionStream:CompressionStream,DecompressionStream:DecompressionStream,workerScripts:workerScripts}=configuration;if(setIfDefined("baseURL",baseURL),setIfDefined("chunkSize",chunkSize),setIfDefined("maxWorkers",maxWorkers),setIfDefined("terminateWorkerTimeout",terminateWorkerTimeout),setIfDefined("useCompressionStream",useCompressionStream),setIfDefined("useWebWorkers",useWebWorkers),Deflate&&(config.CompressionStream=new StreamAdapter(Deflate)),Inflate&&(config.DecompressionStream=new StreamAdapter(Inflate)),setIfDefined("CompressionStream",CompressionStream),setIfDefined("DecompressionStream",DecompressionStream),workerScripts!==UNDEFINED_VALUE){const{deflate:deflate,inflate:inflate}=workerScripts;if((deflate||inflate)&&(config.workerScripts||(config.workerScripts={})),deflate){if(!Array.isArray(deflate))throw new Error("workerScripts.deflate must be an array");config.workerScripts.deflate=deflate}if(inflate){if(!Array.isArray(inflate))throw new Error("workerScripts.inflate must be an array");config.workerScripts.inflate=inflate}}}function setIfDefined(propertyName,propertyValue){propertyValue!==UNDEFINED_VALUE&&(config[propertyName]=propertyValue)}const table$1={application:{"andrew-inset":"ez",annodex:"anx","atom+xml":"atom","atomcat+xml":"atomcat","atomserv+xml":"atomsrv",bbolin:"lin","cu-seeme":"cu","davmount+xml":"davmount",dsptype:"tsp",ecmascript:["es","ecma"],futuresplash:"spl",hta:"hta","java-archive":"jar","java-serialized-object":"ser","java-vm":"class",m3g:"m3g","mac-binhex40":"hqx",mathematica:["nb","ma","mb"],msaccess:"mdb",msword:["doc","dot","wiz"],mxf:"mxf",oda:"oda",ogg:"ogx",pdf:"pdf","pgp-keys":"key","pgp-signature":["asc","sig"],"pics-rules":"prf",postscript:["ps","ai","eps","epsi","epsf","eps2","eps3"],rar:"rar","rdf+xml":"rdf","rss+xml":"rss",rtf:"rtf","xhtml+xml":["xhtml","xht"],xml:["xml","xsl","xsd","xpdl"],"xspf+xml":"xspf",zip:"zip","vnd.android.package-archive":"apk","vnd.cinderella":"cdy","vnd.google-earth.kml+xml":"kml","vnd.google-earth.kmz":"kmz","vnd.mozilla.xul+xml":"xul","vnd.ms-excel":["xls","xlb","xlt","xlm","xla","xlc","xlw"],"vnd.ms-pki.seccat":"cat","vnd.ms-pki.stl":"stl","vnd.ms-powerpoint":["ppt","pps","pot","ppa","pwz"],"vnd.oasis.opendocument.chart":"odc","vnd.oasis.opendocument.database":"odb","vnd.oasis.opendocument.formula":"odf","vnd.oasis.opendocument.graphics":"odg","vnd.oasis.opendocument.graphics-template":"otg","vnd.oasis.opendocument.image":"odi","vnd.oasis.opendocument.presentation":"odp","vnd.oasis.opendocument.presentation-template":"otp","vnd.oasis.opendocument.spreadsheet":"ods","vnd.oasis.opendocument.spreadsheet-template":"ots","vnd.oasis.opendocument.text":"odt","vnd.oasis.opendocument.text-master":["odm","otm"],"vnd.oasis.opendocument.text-template":"ott","vnd.oasis.opendocument.text-web":"oth","vnd.openxmlformats-officedocument.spreadsheetml.sheet":"xlsx","vnd.openxmlformats-officedocument.spreadsheetml.template":"xltx","vnd.openxmlformats-officedocument.presentationml.presentation":"pptx","vnd.openxmlformats-officedocument.presentationml.slideshow":"ppsx","vnd.openxmlformats-officedocument.presentationml.template":"potx","vnd.openxmlformats-officedocument.wordprocessingml.document":"docx","vnd.openxmlformats-officedocument.wordprocessingml.template":"dotx","vnd.smaf":"mmf","vnd.stardivision.calc":"sdc","vnd.stardivision.chart":"sds","vnd.stardivision.draw":"sda","vnd.stardivision.impress":"sdd","vnd.stardivision.math":["sdf","smf"],"vnd.stardivision.writer":["sdw","vor"],"vnd.stardivision.writer-global":"sgl","vnd.sun.xml.calc":"sxc","vnd.sun.xml.calc.template":"stc","vnd.sun.xml.draw":"sxd","vnd.sun.xml.draw.template":"std","vnd.sun.xml.impress":"sxi","vnd.sun.xml.impress.template":"sti","vnd.sun.xml.math":"sxm","vnd.sun.xml.writer":"sxw","vnd.sun.xml.writer.global":"sxg","vnd.sun.xml.writer.template":"stw","vnd.symbian.install":["sis","sisx"],"vnd.visio":["vsd","vst","vss","vsw","vsdx","vssx","vstx","vssm","vstm"],"vnd.wap.wbxml":"wbxml","vnd.wap.wmlc":"wmlc","vnd.wap.wmlscriptc":"wmlsc","vnd.wordperfect":"wpd","vnd.wordperfect5.1":"wp5","x-123":"wk","x-7z-compressed":"7z","x-abiword":"abw","x-apple-diskimage":"dmg","x-bcpio":"bcpio","x-bittorrent":"torrent","x-cbr":["cbr","cba","cbt","cb7"],"x-cbz":"cbz","x-cdf":["cdf","cda"],"x-cdlink":"vcd","x-chess-pgn":"pgn","x-cpio":"cpio","x-csh":"csh","x-director":["dir","dxr","cst","cct","cxt","w3d","fgd","swa"],"x-dms":"dms","x-doom":"wad","x-dvi":"dvi","x-httpd-eruby":"rhtml","x-font":"pcf.Z","x-freemind":"mm","x-gnumeric":"gnumeric","x-go-sgf":"sgf","x-graphing-calculator":"gcf","x-gtar":["gtar","taz"],"x-hdf":"hdf","x-httpd-php":["phtml","pht","php"],"x-httpd-php-source":"phps","x-httpd-php3":"php3","x-httpd-php3-preprocessed":"php3p","x-httpd-php4":"php4","x-httpd-php5":"php5","x-ica":"ica","x-info":"info","x-internet-signup":["ins","isp"],"x-iphone":"iii","x-iso9660-image":"iso","x-java-jnlp-file":"jnlp","x-jmol":"jmz","x-killustrator":"kil","x-latex":"latex","x-lyx":"lyx","x-lzx":"lzx","x-maker":["frm","fb","fbdoc"],"x-ms-wmd":"wmd","x-msdos-program":["com","exe","bat","dll"],"x-netcdf":["nc"],"x-ns-proxy-autoconfig":["pac","dat"],"x-nwc":"nwc","x-object":"o","x-oz-application":"oza","x-pkcs7-certreqresp":"p7r","x-python-code":["pyc","pyo"],"x-qgis":["qgs","shp","shx"],"x-quicktimeplayer":"qtl","x-redhat-package-manager":["rpm","rpa"],"x-ruby":"rb","x-sh":"sh","x-shar":"shar","x-shockwave-flash":["swf","swfl"],"x-silverlight":"scr","x-stuffit":"sit","x-sv4cpio":"sv4cpio","x-sv4crc":"sv4crc","x-tar":"tar","x-tex-gf":"gf","x-tex-pk":"pk","x-texinfo":["texinfo","texi"],"x-trash":["~","%","bak","old","sik"],"x-ustar":"ustar","x-wais-source":"src","x-wingz":"wz","x-x509-ca-cert":["crt","der","cer"],"x-xcf":"xcf","x-xfig":"fig","x-xpinstall":"xpi",applixware:"aw","atomsvc+xml":"atomsvc","ccxml+xml":"ccxml","cdmi-capability":"cdmia","cdmi-container":"cdmic","cdmi-domain":"cdmid","cdmi-object":"cdmio","cdmi-queue":"cdmiq","docbook+xml":"dbk","dssc+der":"dssc","dssc+xml":"xdssc","emma+xml":"emma","epub+zip":"epub",exi:"exi","font-tdpfr":"pfr","gml+xml":"gml","gpx+xml":"gpx",gxf:"gxf",hyperstudio:"stk","inkml+xml":["ink","inkml"],ipfix:"ipfix","jsonml+json":"jsonml","lost+xml":"lostxml","mads+xml":"mads",marc:"mrc","marcxml+xml":"mrcx","mathml+xml":["mathml","mml"],mbox:"mbox","mediaservercontrol+xml":"mscml","metalink+xml":"metalink","metalink4+xml":"meta4","mets+xml":"mets","mods+xml":"mods",mp21:["m21","mp21"],mp4:"mp4s","oebps-package+xml":"opf","omdoc+xml":"omdoc",onenote:["onetoc","onetoc2","onetmp","onepkg"],oxps:"oxps","patch-ops-error+xml":"xer","pgp-encrypted":"pgp",pkcs10:"p10","pkcs7-mime":["p7m","p7c"],"pkcs7-signature":"p7s",pkcs8:"p8","pkix-attr-cert":"ac","pkix-crl":"crl","pkix-pkipath":"pkipath",pkixcmp:"pki","pls+xml":"pls","prs.cww":"cww","pskc+xml":"pskcxml","reginfo+xml":"rif","relax-ng-compact-syntax":"rnc","resource-lists+xml":"rl","resource-lists-diff+xml":"rld","rls-services+xml":"rs","rpki-ghostbusters":"gbr","rpki-manifest":"mft","rpki-roa":"roa","rsd+xml":"rsd","sbml+xml":"sbml","scvp-cv-request":"scq","scvp-cv-response":"scs","scvp-vp-request":"spq","scvp-vp-response":"spp",sdp:"sdp","set-payment-initiation":"setpay","set-registration-initiation":"setreg","shf+xml":"shf","sparql-query":"rq","sparql-results+xml":"srx",srgs:"gram","srgs+xml":"grxml","sru+xml":"sru","ssdl+xml":"ssdl","ssml+xml":"ssml","tei+xml":["tei","teicorpus"],"thraud+xml":"tfi","timestamped-data":"tsd","vnd.3gpp.pic-bw-large":"plb","vnd.3gpp.pic-bw-small":"psb","vnd.3gpp.pic-bw-var":"pvb","vnd.3gpp2.tcap":"tcap","vnd.3m.post-it-notes":"pwn","vnd.accpac.simply.aso":"aso","vnd.accpac.simply.imp":"imp","vnd.acucobol":"acu","vnd.acucorp":["atc","acutc"],"vnd.adobe.air-application-installer-package+zip":"air","vnd.adobe.formscentral.fcdt":"fcdt","vnd.adobe.fxp":["fxp","fxpl"],"vnd.adobe.xdp+xml":"xdp","vnd.adobe.xfdf":"xfdf","vnd.ahead.space":"ahead","vnd.airzip.filesecure.azf":"azf","vnd.airzip.filesecure.azs":"azs","vnd.amazon.ebook":"azw","vnd.americandynamics.acc":"acc","vnd.amiga.ami":"ami","vnd.anser-web-certificate-issue-initiation":"cii","vnd.anser-web-funds-transfer-initiation":"fti","vnd.antix.game-component":"atx","vnd.apple.installer+xml":"mpkg","vnd.apple.mpegurl":"m3u8","vnd.aristanetworks.swi":"swi","vnd.astraea-software.iota":"iota","vnd.audiograph":"aep","vnd.blueice.multipass":"mpm","vnd.bmi":"bmi","vnd.businessobjects":"rep","vnd.chemdraw+xml":"cdxml","vnd.chipnuts.karaoke-mmd":"mmd","vnd.claymore":"cla","vnd.cloanto.rp9":"rp9","vnd.clonk.c4group":["c4g","c4d","c4f","c4p","c4u"],"vnd.cluetrust.cartomobile-config":"c11amc","vnd.cluetrust.cartomobile-config-pkg":"c11amz","vnd.commonspace":"csp","vnd.contact.cmsg":"cdbcmsg","vnd.cosmocaller":"cmc","vnd.crick.clicker":"clkx","vnd.crick.clicker.keyboard":"clkk","vnd.crick.clicker.palette":"clkp","vnd.crick.clicker.template":"clkt","vnd.crick.clicker.wordbank":"clkw","vnd.criticaltools.wbs+xml":"wbs","vnd.ctc-posml":"pml","vnd.cups-ppd":"ppd","vnd.curl.car":"car","vnd.curl.pcurl":"pcurl","vnd.dart":"dart","vnd.data-vision.rdz":"rdz","vnd.dece.data":["uvf","uvvf","uvd","uvvd"],"vnd.dece.ttml+xml":["uvt","uvvt"],"vnd.dece.unspecified":["uvx","uvvx"],"vnd.dece.zip":["uvz","uvvz"],"vnd.denovo.fcselayout-link":"fe_launch","vnd.dna":"dna","vnd.dolby.mlp":"mlp","vnd.dpgraph":"dpg","vnd.dreamfactory":"dfac","vnd.ds-keypoint":"kpxx","vnd.dvb.ait":"ait","vnd.dvb.service":"svc","vnd.dynageo":"geo","vnd.ecowin.chart":"mag","vnd.enliven":"nml","vnd.epson.esf":"esf","vnd.epson.msf":"msf","vnd.epson.quickanime":"qam","vnd.epson.salt":"slt","vnd.epson.ssf":"ssf","vnd.eszigno3+xml":["es3","et3"],"vnd.ezpix-album":"ez2","vnd.ezpix-package":"ez3","vnd.fdf":"fdf","vnd.fdsn.mseed":"mseed","vnd.fdsn.seed":["seed","dataless"],"vnd.flographit":"gph","vnd.fluxtime.clip":"ftc","vnd.framemaker":["fm","frame","maker","book"],"vnd.frogans.fnc":"fnc","vnd.frogans.ltf":"ltf","vnd.fsc.weblaunch":"fsc","vnd.fujitsu.oasys":"oas","vnd.fujitsu.oasys2":"oa2","vnd.fujitsu.oasys3":"oa3","vnd.fujitsu.oasysgp":"fg5","vnd.fujitsu.oasysprs":"bh2","vnd.fujixerox.ddd":"ddd","vnd.fujixerox.docuworks":"xdw","vnd.fujixerox.docuworks.binder":"xbd","vnd.fuzzysheet":"fzs","vnd.genomatix.tuxedo":"txd","vnd.geogebra.file":"ggb","vnd.geogebra.tool":"ggt","vnd.geometry-explorer":["gex","gre"],"vnd.geonext":"gxt","vnd.geoplan":"g2w","vnd.geospace":"g3w","vnd.gmx":"gmx","vnd.grafeq":["gqf","gqs"],"vnd.groove-account":"gac","vnd.groove-help":"ghf","vnd.groove-identity-message":"gim","vnd.groove-injector":"grv","vnd.groove-tool-message":"gtm","vnd.groove-tool-template":"tpl","vnd.groove-vcard":"vcg","vnd.hal+xml":"hal","vnd.handheld-entertainment+xml":"zmm","vnd.hbci":"hbci","vnd.hhe.lesson-player":"les","vnd.hp-hpgl":"hpgl","vnd.hp-hpid":"hpid","vnd.hp-hps":"hps","vnd.hp-jlyt":"jlt","vnd.hp-pcl":"pcl","vnd.hp-pclxl":"pclxl","vnd.hydrostatix.sof-data":"sfd-hdstx","vnd.ibm.minipay":"mpy","vnd.ibm.modcap":["afp","listafp","list3820"],"vnd.ibm.rights-management":"irm","vnd.ibm.secure-container":"sc","vnd.iccprofile":["icc","icm"],"vnd.igloader":"igl","vnd.immervision-ivp":"ivp","vnd.immervision-ivu":"ivu","vnd.insors.igm":"igm","vnd.intercon.formnet":["xpw","xpx"],"vnd.intergeo":"i2g","vnd.intu.qbo":"qbo","vnd.intu.qfx":"qfx","vnd.ipunplugged.rcprofile":"rcprofile","vnd.irepository.package+xml":"irp","vnd.is-xpr":"xpr","vnd.isac.fcs":"fcs","vnd.jam":"jam","vnd.jcp.javame.midlet-rms":"rms","vnd.jisp":"jisp","vnd.joost.joda-archive":"joda","vnd.kahootz":["ktz","ktr"],"vnd.kde.karbon":"karbon","vnd.kde.kchart":"chrt","vnd.kde.kformula":"kfo","vnd.kde.kivio":"flw","vnd.kde.kontour":"kon","vnd.kde.kpresenter":["kpr","kpt"],"vnd.kde.kspread":"ksp","vnd.kde.kword":["kwd","kwt"],"vnd.kenameaapp":"htke","vnd.kidspiration":"kia","vnd.kinar":["kne","knp"],"vnd.koan":["skp","skd","skt","skm"],"vnd.kodak-descriptor":"sse","vnd.las.las+xml":"lasxml","vnd.llamagraphics.life-balance.desktop":"lbd","vnd.llamagraphics.life-balance.exchange+xml":"lbe","vnd.lotus-1-2-3":"123","vnd.lotus-approach":"apr","vnd.lotus-freelance":"pre","vnd.lotus-notes":"nsf","vnd.lotus-organizer":"org","vnd.lotus-screencam":"scm","vnd.lotus-wordpro":"lwp","vnd.macports.portpkg":"portpkg","vnd.mcd":"mcd","vnd.medcalcdata":"mc1","vnd.mediastation.cdkey":"cdkey","vnd.mfer":"mwf","vnd.mfmp":"mfm","vnd.micrografx.flo":"flo","vnd.micrografx.igx":"igx","vnd.mif":"mif","vnd.mobius.daf":"daf","vnd.mobius.dis":"dis","vnd.mobius.mbk":"mbk","vnd.mobius.mqy":"mqy","vnd.mobius.msl":"msl","vnd.mobius.plc":"plc","vnd.mobius.txf":"txf","vnd.mophun.application":"mpn","vnd.mophun.certificate":"mpc","vnd.ms-artgalry":"cil","vnd.ms-cab-compressed":"cab","vnd.ms-excel.addin.macroenabled.12":"xlam","vnd.ms-excel.sheet.binary.macroenabled.12":"xlsb","vnd.ms-excel.sheet.macroenabled.12":"xlsm","vnd.ms-excel.template.macroenabled.12":"xltm","vnd.ms-fontobject":"eot","vnd.ms-htmlhelp":"chm","vnd.ms-ims":"ims","vnd.ms-lrm":"lrm","vnd.ms-officetheme":"thmx","vnd.ms-powerpoint.addin.macroenabled.12":"ppam","vnd.ms-powerpoint.presentation.macroenabled.12":"pptm","vnd.ms-powerpoint.slide.macroenabled.12":"sldm","vnd.ms-powerpoint.slideshow.macroenabled.12":"ppsm","vnd.ms-powerpoint.template.macroenabled.12":"potm","vnd.ms-project":["mpp","mpt"],"vnd.ms-word.document.macroenabled.12":"docm","vnd.ms-word.template.macroenabled.12":"dotm","vnd.ms-works":["wps","wks","wcm","wdb"],"vnd.ms-wpl":"wpl","vnd.ms-xpsdocument":"xps","vnd.mseq":"mseq","vnd.musician":"mus","vnd.muvee.style":"msty","vnd.mynfc":"taglet","vnd.neurolanguage.nlu":"nlu","vnd.nitf":["ntf","nitf"],"vnd.noblenet-directory":"nnd","vnd.noblenet-sealer":"nns","vnd.noblenet-web":"nnw","vnd.nokia.n-gage.data":"ngdat","vnd.nokia.n-gage.symbian.install":"n-gage","vnd.nokia.radio-preset":"rpst","vnd.nokia.radio-presets":"rpss","vnd.novadigm.edm":"edm","vnd.novadigm.edx":"edx","vnd.novadigm.ext":"ext","vnd.oasis.opendocument.chart-template":"otc","vnd.oasis.opendocument.formula-template":"odft","vnd.oasis.opendocument.image-template":"oti","vnd.olpc-sugar":"xo","vnd.oma.dd2+xml":"dd2","vnd.openofficeorg.extension":"oxt","vnd.openxmlformats-officedocument.presentationml.slide":"sldx","vnd.osgeo.mapguide.package":"mgp","vnd.osgi.dp":"dp","vnd.osgi.subsystem":"esa","vnd.palm":["pdb","pqa","oprc"],"vnd.pawaafile":"paw","vnd.pg.format":"str","vnd.pg.osasli":"ei6","vnd.picsel":"efif","vnd.pmi.widget":"wg","vnd.pocketlearn":"plf","vnd.powerbuilder6":"pbd","vnd.previewsystems.box":"box","vnd.proteus.magazine":"mgz","vnd.publishare-delta-tree":"qps","vnd.pvi.ptid1":"ptid","vnd.quark.quarkxpress":["qxd","qxt","qwd","qwt","qxl","qxb"],"vnd.realvnc.bed":"bed","vnd.recordare.musicxml":"mxl","vnd.recordare.musicxml+xml":"musicxml","vnd.rig.cryptonote":"cryptonote","vnd.rn-realmedia":"rm","vnd.rn-realmedia-vbr":"rmvb","vnd.route66.link66+xml":"link66","vnd.sailingtracker.track":"st","vnd.seemail":"see","vnd.sema":"sema","vnd.semd":"semd","vnd.semf":"semf","vnd.shana.informed.formdata":"ifm","vnd.shana.informed.formtemplate":"itp","vnd.shana.informed.interchange":"iif","vnd.shana.informed.package":"ipk","vnd.simtech-mindmapper":["twd","twds"],"vnd.smart.teacher":"teacher","vnd.solent.sdkm+xml":["sdkm","sdkd"],"vnd.spotfire.dxp":"dxp","vnd.spotfire.sfs":"sfs","vnd.stepmania.package":"smzip","vnd.stepmania.stepchart":"sm","vnd.sus-calendar":["sus","susp"],"vnd.svd":"svd","vnd.syncml+xml":"xsm","vnd.syncml.dm+wbxml":"bdm","vnd.syncml.dm+xml":"xdm","vnd.tao.intent-module-archive":"tao","vnd.tcpdump.pcap":["pcap","cap","dmp"],"vnd.tmobile-livetv":"tmo","vnd.trid.tpt":"tpt","vnd.triscape.mxs":"mxs","vnd.trueapp":"tra","vnd.ufdl":["ufd","ufdl"],"vnd.uiq.theme":"utz","vnd.umajin":"umj","vnd.unity":"unityweb","vnd.uoml+xml":"uoml","vnd.vcx":"vcx","vnd.visionary":"vis","vnd.vsf":"vsf","vnd.webturbo":"wtb","vnd.wolfram.player":"nbp","vnd.wqd":"wqd","vnd.wt.stf":"stf","vnd.xara":"xar","vnd.xfdl":"xfdl","vnd.yamaha.hv-dic":"hvd","vnd.yamaha.hv-script":"hvs","vnd.yamaha.hv-voice":"hvp","vnd.yamaha.openscoreformat":"osf","vnd.yamaha.openscoreformat.osfpvg+xml":"osfpvg","vnd.yamaha.smaf-audio":"saf","vnd.yamaha.smaf-phrase":"spf","vnd.yellowriver-custom-menu":"cmp","vnd.zul":["zir","zirz"],"vnd.zzazz.deck+xml":"zaz","voicexml+xml":"vxml",widget:"wgt",winhlp:"hlp","wsdl+xml":"wsdl","wspolicy+xml":"wspolicy","x-ace-compressed":"ace","x-authorware-bin":["aab","x32","u32","vox"],"x-authorware-map":"aam","x-authorware-seg":"aas","x-blorb":["blb","blorb"],"x-bzip":"bz","x-bzip2":["bz2","boz"],"x-cfs-compressed":"cfs","x-chat":"chat","x-conference":"nsc","x-dgc-compressed":"dgc","x-dtbncx+xml":"ncx","x-dtbook+xml":"dtb","x-dtbresource+xml":"res","x-eva":"eva","x-font-bdf":"bdf","x-font-ghostscript":"gsf","x-font-linux-psf":"psf","x-font-pcf":"pcf","x-font-snf":"snf","x-font-ttf":["ttf","ttc"],"x-font-type1":["pfa","pfb","pfm","afm"],"x-freearc":"arc","x-gca-compressed":"gca","x-glulx":"ulx","x-gramps-xml":"gramps","x-install-instructions":"install","x-lzh-compressed":["lzh","lha"],"x-mie":"mie","x-mobipocket-ebook":["prc","mobi"],"x-ms-application":"application","x-ms-shortcut":"lnk","x-ms-xbap":"xbap","x-msbinder":"obd","x-mscardfile":"crd","x-msclip":"clp","application/x-ms-installer":"msi","x-msmediaview":["mvb","m13","m14"],"x-msmetafile":["wmf","wmz","emf","emz"],"x-msmoney":"mny","x-mspublisher":"pub","x-msschedule":"scd","x-msterminal":"trm","x-mswrite":"wri","x-nzb":"nzb","x-pkcs12":["p12","pfx"],"x-pkcs7-certificates":["p7b","spc"],"x-research-info-systems":"ris","x-silverlight-app":"xap","x-sql":"sql","x-stuffitx":"sitx","x-subrip":"srt","x-t3vm-image":"t3","x-tex-tfm":"tfm","x-tgif":"obj","x-xliff+xml":"xlf","x-xz":"xz","x-zmachine":["z1","z2","z3","z4","z5","z6","z7","z8"],"xaml+xml":"xaml","xcap-diff+xml":"xdf","xenc+xml":"xenc","xml-dtd":"dtd","xop+xml":"xop","xproc+xml":"xpl","xslt+xml":"xslt","xv+xml":["mxml","xhvml","xvml","xvm"],yang:"yang","yin+xml":"yin",envoy:"evy",fractals:"fif","internet-property-stream":"acx",olescript:"axs","vnd.ms-outlook":"msg","vnd.ms-pkicertstore":"sst","x-compress":"z","x-perfmon":["pma","pmc","pmr","pmw"],"ynd.ms-pkipko":"pko",gzip:["gz","tgz"],"smil+xml":["smi","smil"],"vnd.debian.binary-package":["deb","udeb"],"vnd.hzn-3d-crossword":"x3d","vnd.sqlite3":["db","sqlite","sqlite3","db-wal","sqlite-wal","db-shm","sqlite-shm"],"vnd.wap.sic":"sic","vnd.wap.slc":"slc","x-krita":["kra","krz"],"x-perl":["pm","pl"],yaml:["yaml","yml"]},audio:{amr:"amr","amr-wb":"awb",annodex:"axa",basic:["au","snd"],flac:"flac",midi:["mid","midi","kar","rmi"],mpeg:["mpga","mpega","mp3","m4a","mp2a","m2a","m3a"],mpegurl:"m3u",ogg:["oga","ogg","spx"],"prs.sid":"sid","x-aiff":"aifc","x-gsm":"gsm","x-ms-wma":"wma","x-ms-wax":"wax","x-pn-realaudio":"ram","x-realaudio":"ra","x-sd2":"sd2",adpcm:"adp",mp4:"mp4a",s3m:"s3m",silk:"sil","vnd.dece.audio":["uva","uvva"],"vnd.digital-winds":"eol","vnd.dra":"dra","vnd.dts":"dts","vnd.dts.hd":"dtshd","vnd.lucent.voice":"lvp","vnd.ms-playready.media.pya":"pya","vnd.nuera.ecelp4800":"ecelp4800","vnd.nuera.ecelp7470":"ecelp7470","vnd.nuera.ecelp9600":"ecelp9600","vnd.rip":"rip",webm:"weba","x-caf":"caf","x-matroska":"mka","x-pn-realaudio-plugin":"rmp",xm:"xm",aac:"aac",aiff:["aiff","aif","aff"],opus:"opus",wav:"wav"},chemical:{"x-alchemy":"alc","x-cache":["cac","cache"],"x-cache-csf":"csf","x-cactvs-binary":["cbin","cascii","ctab"],"x-cdx":"cdx","x-chem3d":"c3d","x-cif":"cif","x-cmdf":"cmdf","x-cml":"cml","x-compass":"cpa","x-crossfire":"bsd","x-csml":["csml","csm"],"x-ctx":"ctx","x-cxf":["cxf","cef"],"x-embl-dl-nucleotide":["emb","embl"],"x-gamess-input":["inp","gam","gamin"],"x-gaussian-checkpoint":["fch","fchk"],"x-gaussian-cube":"cub","x-gaussian-input":["gau","gjc","gjf"],"x-gaussian-log":"gal","x-gcg8-sequence":"gcg","x-genbank":"gen","x-hin":"hin","x-isostar":["istr","ist"],"x-jcamp-dx":["jdx","dx"],"x-kinemage":"kin","x-macmolecule":"mcm","x-macromodel-input":"mmod","x-mdl-molfile":"mol","x-mdl-rdfile":"rd","x-mdl-rxnfile":"rxn","x-mdl-sdfile":"sd","x-mdl-tgf":"tgf","x-mmcif":"mcif","x-mol2":"mol2","x-molconn-Z":"b","x-mopac-graph":"gpt","x-mopac-input":["mop","mopcrt","zmt"],"x-mopac-out":"moo","x-ncbi-asn1":"asn","x-ncbi-asn1-ascii":["prt","ent"],"x-ncbi-asn1-binary":"val","x-rosdal":"ros","x-swissprot":"sw","x-vamas-iso14976":"vms","x-vmd":"vmd","x-xtel":"xtel","x-xyz":"xyz"},font:{otf:"otf",woff:"woff",woff2:"woff2"},image:{gif:"gif",ief:"ief",jpeg:["jpeg","jpg","jpe","jfif","jfif-tbnl","jif"],pcx:"pcx",png:"png","svg+xml":["svg","svgz"],tiff:["tiff","tif"],"vnd.djvu":["djvu","djv"],"vnd.wap.wbmp":"wbmp","x-canon-cr2":"cr2","x-canon-crw":"crw","x-cmu-raster":"ras","x-coreldraw":"cdr","x-coreldrawpattern":"pat","x-coreldrawtemplate":"cdt","x-corelphotopaint":"cpt","x-epson-erf":"erf","x-icon":"ico","x-jg":"art","x-jng":"jng","x-nikon-nef":"nef","x-olympus-orf":"orf","x-portable-anymap":"pnm","x-portable-bitmap":"pbm","x-portable-graymap":"pgm","x-portable-pixmap":"ppm","x-rgb":"rgb","x-xbitmap":"xbm","x-xpixmap":"xpm","x-xwindowdump":"xwd",bmp:"bmp",cgm:"cgm",g3fax:"g3",ktx:"ktx","prs.btif":"btif",sgi:"sgi","vnd.dece.graphic":["uvi","uvvi","uvg","uvvg"],"vnd.dwg":"dwg","vnd.dxf":"dxf","vnd.fastbidsheet":"fbs","vnd.fpx":"fpx","vnd.fst":"fst","vnd.fujixerox.edmics-mmr":"mmr","vnd.fujixerox.edmics-rlc":"rlc","vnd.ms-modi":"mdi","vnd.ms-photo":"wdp","vnd.net-fpx":"npx","vnd.xiff":"xif",webp:"webp","x-3ds":"3ds","x-cmx":"cmx","x-freehand":["fh","fhc","fh4","fh5","fh7"],"x-pict":["pic","pct"],"x-tga":"tga","cis-cod":"cod",avif:"avifs",heic:["heif","heic"],pjpeg:["pjpg"],"vnd.adobe.photoshop":"psd","x-adobe-dng":"dng","x-fuji-raf":"raf","x-icns":"icns","x-kodak-dcr":"dcr","x-kodak-k25":"k25","x-kodak-kdc":"kdc","x-minolta-mrw":"mrw","x-panasonic-raw":["raw","rw2","rwl"],"x-pentax-pef":["pef","ptx"],"x-sigma-x3f":"x3f","x-sony-arw":"arw","x-sony-sr2":"sr2","x-sony-srf":"srf"},message:{rfc822:["eml","mime","mht","mhtml","nws"]},model:{iges:["igs","iges"],mesh:["msh","mesh","silo"],vrml:["wrl","vrml"],"x3d+vrml":["x3dv","x3dvz"],"x3d+xml":"x3dz","x3d+binary":["x3db","x3dbz"],"vnd.collada+xml":"dae","vnd.dwf":"dwf","vnd.gdl":"gdl","vnd.gtw":"gtw","vnd.mts":"mts","vnd.usdz+zip":"usdz","vnd.vtu":"vtu"},text:{"cache-manifest":["manifest","appcache"],calendar:["ics","icz","ifb"],css:"css",csv:"csv",h323:"323",html:["html","htm","shtml","stm"],iuls:"uls",plain:["txt","text","brf","conf","def","list","log","in","bas","diff","ksh"],richtext:"rtx",scriptlet:["sct","wsc"],texmacs:"tm","tab-separated-values":"tsv","vnd.sun.j2me.app-descriptor":"jad","vnd.wap.wml":"wml","vnd.wap.wmlscript":"wmls","x-bibtex":"bib","x-boo":"boo","x-c++hdr":["h++","hpp","hxx","hh"],"x-c++src":["c++","cpp","cxx","cc"],"x-component":"htc","x-dsrc":"d","x-diff":"patch","x-haskell":"hs","x-java":"java","x-literate-haskell":"lhs","x-moc":"moc","x-pascal":["p","pas","pp","inc"],"x-pcs-gcd":"gcd","x-python":"py","x-scala":"scala","x-setext":"etx","x-tcl":["tcl","tk"],"x-tex":["tex","ltx","sty","cls"],"x-vcalendar":"vcs","x-vcard":"vcf",n3:"n3","prs.lines.tag":"dsc",sgml:["sgml","sgm"],troff:["t","tr","roff","man","me","ms"],turtle:"ttl","uri-list":["uri","uris","urls"],vcard:"vcard","vnd.curl":"curl","vnd.curl.dcurl":"dcurl","vnd.curl.scurl":"scurl","vnd.curl.mcurl":"mcurl","vnd.dvb.subtitle":"sub","vnd.fly":"fly","vnd.fmi.flexstor":"flx","vnd.graphviz":"gv","vnd.in3d.3dml":"3dml","vnd.in3d.spot":"spot","x-asm":["s","asm"],"x-c":["c","h","dic"],"x-fortran":["f","for","f77","f90"],"x-opml":"opml","x-nfo":"nfo","x-sfv":"sfv","x-uuencode":"uu",webviewhtml:"htt",javascript:"js",json:"json",markdown:["md","markdown","mdown","markdn"],"vnd.wap.si":"si","vnd.wap.sl":"sl"},video:{avif:"avif","3gpp":"3gp",annodex:"axv",dl:"dl",dv:["dif","dv"],fli:"fli",gl:"gl",mpeg:["mpeg","mpg","mpe","m1v","m2v","mp2","mpa","mpv2"],mp4:["mp4","mp4v","mpg4"],quicktime:["qt","mov"],ogg:"ogv","vnd.mpegurl":["mxu","m4u"],"x-flv":"flv","x-la-asf":["lsf","lsx"],"x-mng":"mng","x-ms-asf":["asf","asx","asr"],"x-ms-wm":"wm","x-ms-wmv":"wmv","x-ms-wmx":"wmx","x-ms-wvx":"wvx","x-msvideo":"avi","x-sgi-movie":"movie","x-matroska":["mpv","mkv","mk3d","mks"],"3gpp2":"3g2",h261:"h261",h263:"h263",h264:"h264",jpeg:"jpgv",jpm:["jpm","jpgm"],mj2:["mj2","mjp2"],"vnd.dece.hd":["uvh","uvvh"],"vnd.dece.mobile":["uvm","uvvm"],"vnd.dece.pd":["uvp","uvvp"],"vnd.dece.sd":["uvs","uvvs"],"vnd.dece.video":["uvv","uvvv"],"vnd.dvb.file":"dvb","vnd.fvt":"fvt","vnd.ms-playready.media.pyv":"pyv","vnd.uvvu.mp4":["uvu","uvvu"],"vnd.vivo":"viv",webm:"webm","x-f4v":"f4v","x-m4v":"m4v","x-ms-vob":"vob","x-smv":"smv",mp2t:"ts"},"x-conference":{"x-cooltalk":"ice"},"x-world":{"x-vrml":["vrm","flr","wrz","xaf","xof"]}};(()=>{const mimeTypes={};for(const type of Object.keys(table$1))for(const subtype of Object.keys(table$1[type])){const value=table$1[type][subtype];if("string"==typeof value)mimeTypes[value]=type+"/"+subtype;else for(let indexMimeType=0;indexMimeType<value.length;indexMimeType++)mimeTypes[value[indexMimeType]]=type+"/"+subtype}})();const table=[];for(let i=0;i<256;i++){let t=i;for(let j=0;j<8;j++)1&t?t=t>>>1^3988292384:t>>>=1;table[i]=t}class Crc32{constructor(crc){this.crc=crc||-1}append(data){let crc=0|this.crc;for(let offset=0,length=0|data.length;offset<length;offset++)crc=crc>>>8^table[255&(crc^data[offset])];this.crc=crc}get(){return~this.crc}}class Crc32Stream extends TransformStream{constructor(){let stream;const crc32=new Crc32;super({transform(chunk,controller){crc32.append(chunk),controller.enqueue(chunk)},flush(){const value=new Uint8Array(4);new DataView(value.buffer).setUint32(0,crc32.get()),stream.value=value}}),stream=this}}function encodeText(value){if("undefined"==typeof TextEncoder){value=unescape(encodeURIComponent(value));const result=new Uint8Array(value.length);for(let i=0;i<result.length;i++)result[i]=value.charCodeAt(i);return result}return(new TextEncoder).encode(value)}const bitArray={concat(a1,a2){if(0===a1.length||0===a2.length)return a1.concat(a2);const last=a1[a1.length-1],shift=bitArray.getPartial(last);return 32===shift?a1.concat(a2):bitArray._shiftRight(a2,shift,0|last,a1.slice(0,a1.length-1))},bitLength(a){const l=a.length;if(0===l)return 0;const x=a[l-1];return 32*(l-1)+bitArray.getPartial(x)},clamp(a,len){if(32*a.length<len)return a;const l=(a=a.slice(0,Math.ceil(len/32))).length;return len&=31,l>0&&len&&(a[l-1]=bitArray.partial(len,a[l-1]&2147483648>>len-1,1)),a},partial:(len,x,_end)=>32===len?x:(_end?0|x:x<<32-len)+1099511627776*len,getPartial:x=>Math.round(x/1099511627776)||32,_shiftRight(a,shift,carry,out){for(void 0===out&&(out=[]);shift>=32;shift-=32)out.push(carry),carry=0;if(0===shift)return out.concat(a);for(let i=0;i<a.length;i++)out.push(carry|a[i]>>>shift),carry=a[i]<<32-shift;const last2=a.length?a[a.length-1]:0,shift2=bitArray.getPartial(last2);return out.push(bitArray.partial(shift+shift2&31,shift+shift2>32?carry:out.pop(),1)),out}},codec={bytes:{fromBits(arr){const byteLength=bitArray.bitLength(arr)/8,out=new Uint8Array(byteLength);let tmp;for(let i=0;i<byteLength;i++)0==(3&i)&&(tmp=arr[i/4]),out[i]=tmp>>>24,tmp<<=8;return out},toBits(bytes){const out=[];let i,tmp=0;for(i=0;i<bytes.length;i++)tmp=tmp<<8|bytes[i],3==(3&i)&&(out.push(tmp),tmp=0);return 3&i&&out.push(bitArray.partial(8*(3&i),tmp)),out}}},hash={sha1:class{constructor(hash){const sha1=this;sha1.blockSize=512,sha1._init=[1732584193,4023233417,2562383102,271733878,3285377520],sha1._key=[1518500249,1859775393,2400959708,3395469782],hash?(sha1._h=hash._h.slice(0),sha1._buffer=hash._buffer.slice(0),sha1._length=hash._length):sha1.reset()}reset(){return this._h=this._init.slice(0),this._buffer=[],this._length=0,this}update(data){const sha1=this;"string"==typeof data&&(data=codec.utf8String.toBits(data));const b=sha1._buffer=bitArray.concat(sha1._buffer,data),ol=sha1._length,nl=sha1._length=ol+bitArray.bitLength(data);if(nl>9007199254740991)throw new Error("Cannot hash more than 2^53 - 1 bits");const c=new Uint32Array(b);let j=0;for(let i=sha1.blockSize+ol-(sha1.blockSize+ol&sha1.blockSize-1);i<=nl;i+=sha1.blockSize)sha1._block(c.subarray(16*j,16*(j+1))),j+=1;return b.splice(0,16*j),sha1}finalize(){const sha1=this;let b=sha1._buffer;const h=sha1._h;b=bitArray.concat(b,[bitArray.partial(1,1)]);for(let i=b.length+2;15&i;i++)b.push(0);for(b.push(Math.floor(sha1._length/4294967296)),b.push(0|sha1._length);b.length;)sha1._block(b.splice(0,16));return sha1.reset(),h}_f(t,b,c,d){return t<=19?b&c|~b&d:t<=39?b^c^d:t<=59?b&c|b&d|c&d:t<=79?b^c^d:void 0}_S(n,x){return x<<n|x>>>32-n}_block(words){const sha1=this,h=sha1._h,w=Array(80);for(let j=0;j<16;j++)w[j]=words[j];let a=h[0],b=h[1],c=h[2],d=h[3],e=h[4];for(let t=0;t<=79;t++){t>=16&&(w[t]=sha1._S(1,w[t-3]^w[t-8]^w[t-14]^w[t-16]));const tmp=sha1._S(5,a)+sha1._f(t,b,c,d)+e+w[t]+sha1._key[Math.floor(t/20)]|0;e=d,d=c,c=sha1._S(30,b),b=a,a=tmp}h[0]=h[0]+a|0,h[1]=h[1]+b|0,h[2]=h[2]+c|0,h[3]=h[3]+d|0,h[4]=h[4]+e|0}}},cipher={aes:class{constructor(key){const aes=this;aes._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],aes._tables[0][0][0]||aes._precompute();const sbox=aes._tables[0][4],decTable=aes._tables[1],keyLen=key.length;let i,encKey,decKey,rcon=1;if(4!==keyLen&&6!==keyLen&&8!==keyLen)throw new Error("invalid aes key size");for(aes._key=[encKey=key.slice(0),decKey=[]],i=keyLen;i<4*keyLen+28;i++){let tmp=encKey[i-1];(i%keyLen==0||8===keyLen&&i%keyLen==4)&&(tmp=sbox[tmp>>>24]<<24^sbox[tmp>>16&255]<<16^sbox[tmp>>8&255]<<8^sbox[255&tmp],i%keyLen==0&&(tmp=tmp<<8^tmp>>>24^rcon<<24,rcon=rcon<<1^283*(rcon>>7))),encKey[i]=encKey[i-keyLen]^tmp}for(let j=0;i;j++,i--){const tmp=encKey[3&j?i:i-4];decKey[j]=i<=4||j<4?tmp:decTable[0][sbox[tmp>>>24]]^decTable[1][sbox[tmp>>16&255]]^decTable[2][sbox[tmp>>8&255]]^decTable[3][sbox[255&tmp]]}}encrypt(data){return this._crypt(data,0)}decrypt(data){return this._crypt(data,1)}_precompute(){const encTable=this._tables[0],decTable=this._tables[1],sbox=encTable[4],sboxInv=decTable[4],d=[],th=[];let xInv,x2,x4,x8;for(let i=0;i<256;i++)th[(d[i]=i<<1^283*(i>>7))^i]=i;for(let x=xInv=0;!sbox[x];x^=x2||1,xInv=th[xInv]||1){let s=xInv^xInv<<1^xInv<<2^xInv<<3^xInv<<4;s=s>>8^255&s^99,sbox[x]=s,sboxInv[s]=x,x8=d[x4=d[x2=d[x]]];let tDec=16843009*x8^65537*x4^257*x2^16843008*x,tEnc=257*d[s]^16843008*s;for(let i=0;i<4;i++)encTable[i][x]=tEnc=tEnc<<24^tEnc>>>8,decTable[i][s]=tDec=tDec<<24^tDec>>>8}for(let i=0;i<5;i++)encTable[i]=encTable[i].slice(0),decTable[i]=decTable[i].slice(0)}_crypt(input,dir){if(4!==input.length)throw new Error("invalid aes block size");const key=this._key[dir],nInnerRounds=key.length/4-2,out=[0,0,0,0],table=this._tables[dir],t0=table[0],t1=table[1],t2=table[2],t3=table[3],sbox=table[4];let a2,b2,c2,a=input[0]^key[0],b=input[dir?3:1]^key[1],c=input[2]^key[2],d=input[dir?1:3]^key[3],kIndex=4;for(let i=0;i<nInnerRounds;i++)a2=t0[a>>>24]^t1[b>>16&255]^t2[c>>8&255]^t3[255&d]^key[kIndex],b2=t0[b>>>24]^t1[c>>16&255]^t2[d>>8&255]^t3[255&a]^key[kIndex+1],c2=t0[c>>>24]^t1[d>>16&255]^t2[a>>8&255]^t3[255&b]^key[kIndex+2],d=t0[d>>>24]^t1[a>>16&255]^t2[b>>8&255]^t3[255&c]^key[kIndex+3],kIndex+=4,a=a2,b=b2,c=c2;for(let i=0;i<4;i++)out[dir?3&-i:i]=sbox[a>>>24]<<24^sbox[b>>16&255]<<16^sbox[c>>8&255]<<8^sbox[255&d]^key[kIndex++],a2=a,a=b,b=c,c=d,d=a2;return out}}},random={getRandomValues(typedArray){const words=new Uint32Array(typedArray.buffer),r=m_w=>{let m_z=987654321;const mask=4294967295;return function(){m_z=36969*(65535&m_z)+(m_z>>16)&mask;return(((m_z<<16)+(m_w=18e3*(65535&m_w)+(m_w>>16)&mask)&mask)/4294967296+.5)*(Math.random()>.5?1:-1)}};for(let rcache,i=0;i<typedArray.length;i+=4){const _r=r(4294967296*(rcache||Math.random()));rcache=987654071*_r(),words[i/4]=4294967296*_r()|0}return typedArray}},mode={ctrGladman:class{constructor(prf,iv){this._prf=prf,this._initIv=iv,this._iv=iv}reset(){this._iv=this._initIv}update(data){return this.calculate(this._prf,data,this._iv)}incWord(word){if(255==(word>>24&255)){let b1=word>>16&255,b2=word>>8&255,b3=255&word;255===b1?(b1=0,255===b2?(b2=0,255===b3?b3=0:++b3):++b2):++b1,word=0,word+=b1<<16,word+=b2<<8,word+=b3}else word+=1<<24;return word}incCounter(counter){0===(counter[0]=this.incWord(counter[0]))&&(counter[1]=this.incWord(counter[1]))}calculate(prf,data,iv){let l;if(!(l=data.length))return[];const bl=bitArray.bitLength(data);for(let i=0;i<l;i+=4){this.incCounter(iv);const e=prf.encrypt(iv);data[i]^=e[0],data[i+1]^=e[1],data[i+2]^=e[2],data[i+3]^=e[3]}return bitArray.clamp(data,bl)}}},misc={importKey:password=>new misc.hmacSha1(codec.bytes.toBits(password)),pbkdf2(prf,salt,count,length){if(count=count||1e4,length<0||count<0)throw new Error("invalid params to pbkdf2");const byteLength=1+(length>>5)<<2;let u,ui,i,j,k;const arrayBuffer=new ArrayBuffer(byteLength),out=new DataView(arrayBuffer);let outLength=0;const b=bitArray;for(salt=codec.bytes.toBits(salt),k=1;outLength<(byteLength||1);k++){for(u=ui=prf.encrypt(b.concat(salt,[k])),i=1;i<count;i++)for(ui=prf.encrypt(ui),j=0;j<ui.length;j++)u[j]^=ui[j];for(i=0;outLength<(byteLength||1)&&i<u.length;i++)out.setInt32(outLength,u[i]),outLength+=4}return arrayBuffer.slice(0,length/8)},hmacSha1:class{constructor(key){const Hash=this._hash=hash.sha1,exKey=[[],[]];this._baseHash=[new Hash,new Hash];const bs=this._baseHash[0].blockSize/32;key.length>bs&&(key=(new Hash).update(key).finalize());for(let i=0;i<bs;i++)exKey[0][i]=909522486^key[i],exKey[1][i]=1549556828^key[i];this._baseHash[0].update(exKey[0]),this._baseHash[1].update(exKey[1]),this._resultHash=new Hash(this._baseHash[0])}reset(){this._resultHash=new this._hash(this._baseHash[0]),this._updated=!1}update(data){this._updated=!0,this._resultHash.update(data)}digest(){const w=this._resultHash.finalize(),result=new this._hash(this._baseHash[1]).update(w).finalize();return this.reset(),result}encrypt(data){if(this._updated)throw new Error("encrypt on already updated hmac called!");return this.update(data),this.digest(data)}}},GET_RANDOM_VALUES_SUPPORTED="undefined"!=typeof crypto&&"function"==typeof crypto.getRandomValues;function getRandomValues(array){return GET_RANDOM_VALUES_SUPPORTED?crypto.getRandomValues(array):random.getRandomValues(array)}const RAW_FORMAT="raw",PBKDF2_ALGORITHM={name:"PBKDF2"},BASE_KEY_ALGORITHM=Object.assign({hash:{name:"HMAC"}},PBKDF2_ALGORITHM),DERIVED_BITS_ALGORITHM=Object.assign({iterations:1e3,hash:{name:"SHA-1"}},PBKDF2_ALGORITHM),DERIVED_BITS_USAGE=["deriveBits"],SALT_LENGTH=[8,12,16],KEY_LENGTH=[16,24,32],COUNTER_DEFAULT_VALUE=[0,0,0,0],CRYPTO_API_SUPPORTED="undefined"!=typeof crypto,subtle=CRYPTO_API_SUPPORTED&&crypto.subtle,SUBTLE_API_SUPPORTED=CRYPTO_API_SUPPORTED&&void 0!==subtle,codecBytes=codec.bytes,Aes=cipher.aes,CtrGladman=mode.ctrGladman,HmacSha1=misc.hmacSha1;let IMPORT_KEY_SUPPORTED=CRYPTO_API_SUPPORTED&&SUBTLE_API_SUPPORTED&&"function"==typeof subtle.importKey,DERIVE_BITS_SUPPORTED=CRYPTO_API_SUPPORTED&&SUBTLE_API_SUPPORTED&&"function"==typeof subtle.deriveBits;class AESDecryptionStream extends TransformStream{constructor({password:password,signed:signed,encryptionStrength:encryptionStrength,checkPasswordOnly:checkPasswordOnly}){super({start(){Object.assign(this,{ready:new Promise((resolve=>this.resolveReady=resolve)),password:password,signed:signed,strength:encryptionStrength-1,pending:new Uint8Array})},async transform(chunk,controller){const aesCrypto=this,{password:password,strength:strength,resolveReady:resolveReady,ready:ready}=aesCrypto;password?(await async function(decrypt,strength,password,preamble){const passwordVerificationKey=await createKeys$1(decrypt,strength,password,subarray(preamble,0,SALT_LENGTH[strength])),passwordVerification=subarray(preamble,SALT_LENGTH[strength]);if(passwordVerificationKey[0]!=passwordVerification[0]||passwordVerificationKey[1]!=passwordVerification[1])throw new Error("Invalid password")}(aesCrypto,strength,password,subarray(chunk,0,SALT_LENGTH[strength]+2)),chunk=subarray(chunk,SALT_LENGTH[strength]+2),checkPasswordOnly?controller.error(new Error("zipjs-abort-check-password")):resolveReady()):await ready;const output=new Uint8Array(chunk.length-10-(chunk.length-10)%16);controller.enqueue(append$1(aesCrypto,chunk,output,0,10,!0))},async flush(controller){const{signed:signed,ctr:ctr,hmac:hmac,pending:pending,ready:ready}=this;if(hmac&&ctr){await ready;const chunkToDecrypt=subarray(pending,0,pending.length-10),originalSignature=subarray(pending,pending.length-10);let decryptedChunkArray=new Uint8Array;if(chunkToDecrypt.length){const encryptedChunk=toBits(codecBytes,chunkToDecrypt);hmac.update(encryptedChunk);const decryptedChunk=ctr.update(encryptedChunk);decryptedChunkArray=fromBits(codecBytes,decryptedChunk)}if(signed){const signature=subarray(fromBits(codecBytes,hmac.digest()),0,10);for(let indexSignature=0;indexSignature<10;indexSignature++)if(signature[indexSignature]!=originalSignature[indexSignature])throw new Error("Invalid signature")}controller.enqueue(decryptedChunkArray)}}})}}class AESEncryptionStream extends TransformStream{constructor({password:password,encryptionStrength:encryptionStrength}){let stream;super({start(){Object.assign(this,{ready:new Promise((resolve=>this.resolveReady=resolve)),password:password,strength:encryptionStrength-1,pending:new Uint8Array})},async transform(chunk,controller){const aesCrypto=this,{password:password,strength:strength,resolveReady:resolveReady,ready:ready}=aesCrypto;let preamble=new Uint8Array;password?(preamble=await async function(encrypt,strength,password){const salt=getRandomValues(new Uint8Array(SALT_LENGTH[strength])),passwordVerification=await createKeys$1(encrypt,strength,password,salt);return concat(salt,passwordVerification)}(aesCrypto,strength,password),resolveReady()):await ready;const output=new Uint8Array(preamble.length+chunk.length-chunk.length%16);output.set(preamble,0),controller.enqueue(append$1(aesCrypto,chunk,output,preamble.length,0))},async flush(controller){const{ctr:ctr,hmac:hmac,pending:pending,ready:ready}=this;if(hmac&&ctr){await ready;let encryptedChunkArray=new Uint8Array;if(pending.length){const encryptedChunk=ctr.update(toBits(codecBytes,pending));hmac.update(encryptedChunk),encryptedChunkArray=fromBits(codecBytes,encryptedChunk)}stream.signature=fromBits(codecBytes,hmac.digest()).slice(0,10),controller.enqueue(concat(encryptedChunkArray,stream.signature))}}}),stream=this}}function append$1(aesCrypto,input,output,paddingStart,paddingEnd,verifySignature){const{ctr:ctr,hmac:hmac,pending:pending}=aesCrypto,inputLength=input.length-paddingEnd;let offset;for(pending.length&&(input=concat(pending,input),output=function(inputArray,length){if(length&&length>inputArray.length){const array=inputArray;(inputArray=new Uint8Array(length)).set(array,0)}return inputArray}(output,inputLength-inputLength%16)),offset=0;offset<=inputLength-16;offset+=16){const inputChunk=toBits(codecBytes,subarray(input,offset,offset+16));verifySignature&&hmac.update(inputChunk);const outputChunk=ctr.update(inputChunk);verifySignature||hmac.update(outputChunk),output.set(fromBits(codecBytes,outputChunk),offset+paddingStart)}return aesCrypto.pending=subarray(input,offset),output}async function createKeys$1(aesCrypto,strength,password,salt){aesCrypto.password=null;const encodedPassword=encodeText(password),baseKey=await async function(format,password,algorithm,extractable,keyUsages){if(!IMPORT_KEY_SUPPORTED)return misc.importKey(password);try{return await subtle.importKey(format,password,algorithm,extractable,keyUsages)}catch(_error){return IMPORT_KEY_SUPPORTED=!1,misc.importKey(password)}}(RAW_FORMAT,encodedPassword,BASE_KEY_ALGORITHM,!1,DERIVED_BITS_USAGE),derivedBits=await async function(algorithm,baseKey,length){if(!DERIVE_BITS_SUPPORTED)return misc.pbkdf2(baseKey,algorithm.salt,DERIVED_BITS_ALGORITHM.iterations,length);try{return await subtle.deriveBits(algorithm,baseKey,length)}catch(_error){return DERIVE_BITS_SUPPORTED=!1,misc.pbkdf2(baseKey,algorithm.salt,DERIVED_BITS_ALGORITHM.iterations,length)}}(Object.assign({salt:salt},DERIVED_BITS_ALGORITHM),baseKey,8*(2*KEY_LENGTH[strength]+2)),compositeKey=new Uint8Array(derivedBits),key=toBits(codecBytes,subarray(compositeKey,0,KEY_LENGTH[strength])),authentication=toBits(codecBytes,subarray(compositeKey,KEY_LENGTH[strength],2*KEY_LENGTH[strength])),passwordVerification=subarray(compositeKey,2*KEY_LENGTH[strength]);return Object.assign(aesCrypto,{keys:{key:key,authentication:authentication,passwordVerification:passwordVerification},ctr:new CtrGladman(new Aes(key),Array.from(COUNTER_DEFAULT_VALUE)),hmac:new HmacSha1(authentication)}),passwordVerification}function concat(leftArray,rightArray){let array=leftArray;return leftArray.length+rightArray.length&&(array=new Uint8Array(leftArray.length+rightArray.length),array.set(leftArray,0),array.set(rightArray,leftArray.length)),array}function subarray(array,begin,end){return array.subarray(begin,end)}function fromBits(codecBytes,chunk){return codecBytes.fromBits(chunk)}function toBits(codecBytes,chunk){return codecBytes.toBits(chunk)}class ZipCryptoDecryptionStream extends TransformStream{constructor({password:password,passwordVerification:passwordVerification,checkPasswordOnly:checkPasswordOnly}){super({start(){Object.assign(this,{password:password,passwordVerification:passwordVerification}),createKeys(this,password)},transform(chunk,controller){const zipCrypto=this;if(zipCrypto.password){const decryptedHeader=decrypt(zipCrypto,chunk.subarray(0,12));if(zipCrypto.password=null,decryptedHeader[11]!=zipCrypto.passwordVerification)throw new Error("Invalid password");chunk=chunk.subarray(12)}checkPasswordOnly?controller.error(new Error("zipjs-abort-check-password")):controller.enqueue(decrypt(zipCrypto,chunk))}})}}class ZipCryptoEncryptionStream extends TransformStream{constructor({password:password,passwordVerification:passwordVerification}){super({start(){Object.assign(this,{password:password,passwordVerification:passwordVerification}),createKeys(this,password)},transform(chunk,controller){const zipCrypto=this;let output,offset;if(zipCrypto.password){zipCrypto.password=null;const header=getRandomValues(new Uint8Array(12));header[11]=zipCrypto.passwordVerification,output=new Uint8Array(chunk.length+header.length),output.set(encrypt(zipCrypto,header),0),offset=12}else output=new Uint8Array(chunk.length),offset=0;output.set(encrypt(zipCrypto,chunk),offset),controller.enqueue(output)}})}}function decrypt(target,input){const output=new Uint8Array(input.length);for(let index=0;index<input.length;index++)output[index]=getByte(target)^input[index],updateKeys(target,output[index]);return output}function encrypt(target,input){const output=new Uint8Array(input.length);for(let index=0;index<input.length;index++)output[index]=getByte(target)^input[index],updateKeys(target,input[index]);return output}function createKeys(target,password){const keys=[305419896,591751049,878082192];Object.assign(target,{keys:keys,crcKey0:new Crc32(keys[0]),crcKey2:new Crc32(keys[2])});for(let index=0;index<password.length;index++)updateKeys(target,password.charCodeAt(index))}function updateKeys(target,byte){let[key0,key1,key2]=target.keys;target.crcKey0.append([byte]),key0=~target.crcKey0.get(),key1=getInt32(Math.imul(getInt32(key1+getInt8(key0)),134775813)+1),target.crcKey2.append([key1>>>24]),key2=~target.crcKey2.get(),target.keys=[key0,key1,key2]}function getByte(target){const temp=2|target.keys[2];return getInt8(Math.imul(temp,1^temp)>>>8)}function getInt8(number){return 255&number}function getInt32(number){return 4294967295&number}class DeflateStream extends TransformStream{constructor(options,{chunkSize:chunkSize,CompressionStream:CompressionStream,CompressionStreamNative:CompressionStreamNative}){super({});const{compressed:compressed,encrypted:encrypted,useCompressionStream:useCompressionStream,zipCrypto:zipCrypto,signed:signed,level:level}=options,stream=this;let crc32Stream,encryptionStream,readable=filterEmptyChunks(super.readable);encrypted&&!zipCrypto||!signed||(crc32Stream=new Crc32Stream,readable=pipeThrough(readable,crc32Stream)),compressed&&(readable=pipeThroughCommpressionStream(readable,useCompressionStream,{level:level,chunkSize:chunkSize},CompressionStreamNative,CompressionStream)),encrypted&&(zipCrypto?readable=pipeThrough(readable,new ZipCryptoEncryptionStream(options)):(encryptionStream=new AESEncryptionStream(options),readable=pipeThrough(readable,encryptionStream))),setReadable(stream,readable,(()=>{let signature;encrypted&&!zipCrypto&&(signature=encryptionStream.signature),encrypted&&!zipCrypto||!signed||(signature=new DataView(crc32Stream.value.buffer).getUint32(0)),stream.signature=signature}))}}class InflateStream extends TransformStream{constructor(options,{chunkSize:chunkSize,DecompressionStream:DecompressionStream,DecompressionStreamNative:DecompressionStreamNative}){super({});const{zipCrypto:zipCrypto,encrypted:encrypted,signed:signed,signature:signature,compressed:compressed,useCompressionStream:useCompressionStream}=options;let crc32Stream,decryptionStream,readable=filterEmptyChunks(super.readable);encrypted&&(zipCrypto?readable=pipeThrough(readable,new ZipCryptoDecryptionStream(options)):(decryptionStream=new AESDecryptionStream(options),readable=pipeThrough(readable,decryptionStream))),compressed&&(readable=pipeThroughCommpressionStream(readable,useCompressionStream,{chunkSize:chunkSize},DecompressionStreamNative,DecompressionStream)),encrypted&&!zipCrypto||!signed||(crc32Stream=new Crc32Stream,readable=pipeThrough(readable,crc32Stream)),setReadable(this,readable,(()=>{if((!encrypted||zipCrypto)&&signed){const dataViewSignature=new DataView(crc32Stream.value.buffer);if(signature!=dataViewSignature.getUint32(0,!1))throw new Error("Invalid signature")}}))}}function filterEmptyChunks(readable){return pipeThrough(readable,new TransformStream({transform(chunk,controller){chunk&&chunk.length&&controller.enqueue(chunk)}}))}function setReadable(stream,readable,flush){readable=pipeThrough(readable,new TransformStream({flush:flush})),Object.defineProperty(stream,"readable",{get:()=>readable})}function pipeThroughCommpressionStream(readable,useCompressionStream,options,CodecStreamNative,CodecStream){try{readable=pipeThrough(readable,new(useCompressionStream&&CodecStreamNative?CodecStreamNative:CodecStream)("deflate-raw",options))}catch(error){if(!useCompressionStream)throw error;readable=pipeThrough(readable,new CodecStream("deflate-raw",options))}return readable}function pipeThrough(readable,transformStream){return readable.pipeThrough(transformStream)}const MESSAGE_EVENT_TYPE="message",MESSAGE_START="start",MESSAGE_PULL="pull",MESSAGE_DATA="data",MESSAGE_ACK_DATA="ack",MESSAGE_CLOSE="close",CODEC_DEFLATE="deflate";class CodecStream extends TransformStream{constructor(options,config){super({});const codec=this,{codecType:codecType}=options;let Stream;codecType.startsWith(CODEC_DEFLATE)?Stream=DeflateStream:codecType.startsWith("inflate")&&(Stream=InflateStream);let size=0;const stream=new Stream(options,config),readable=super.readable,transformStream=new TransformStream({transform(chunk,controller){chunk&&chunk.length&&(size+=chunk.length,controller.enqueue(chunk))},flush(){const{signature:signature}=stream;Object.assign(codec,{signature:signature,size:size})}});Object.defineProperty(codec,"readable",{get:()=>readable.pipeThrough(stream).pipeThrough(transformStream)})}}const WEB_WORKERS_SUPPORTED="undefined"!=typeof Worker;class CodecWorker{constructor(workerData,{readable:readable,writable:writable},{options:options,config:config,streamOptions:streamOptions,useWebWorkers:useWebWorkers,transferStreams:transferStreams,scripts:scripts},onTaskFinished){const{signal:signal}=streamOptions;return Object.assign(workerData,{busy:!0,readable:readable.pipeThrough(new ProgressWatcherStream(readable,streamOptions,config),{signal:signal}),writable:writable,options:Object.assign({},options),scripts:scripts,transferStreams:transferStreams,terminate(){const{worker:worker,busy:busy}=workerData;worker&&!busy&&(worker.terminate(),workerData.interface=null)},onTaskFinished(){workerData.busy=!1,onTaskFinished(workerData)}}),(useWebWorkers&&WEB_WORKERS_SUPPORTED?createWebWorkerInterface:createWorkerInterface)(workerData,config)}}class ProgressWatcherStream extends TransformStream{constructor(readableSource,{onstart:onstart,onprogress:onprogress,size:size,onend:onend},{chunkSize:chunkSize}){let chunkOffset=0;super({start(){onstart&&callHandler(onstart,size)},async transform(chunk,controller){chunkOffset+=chunk.length,onprogress&&await callHandler(onprogress,chunkOffset,size),controller.enqueue(chunk)},flush(){readableSource.size=chunkOffset,onend&&callHandler(onend,chunkOffset)}},{highWaterMark:1,size:()=>chunkSize})}}async function callHandler(handler,...parameters){try{await handler(...parameters)}catch(_error){}}function createWorkerInterface(workerData,config){return{run:()=>async function({options:options,readable:readable,writable:writable,onTaskFinished:onTaskFinished},config){const codecStream=new CodecStream(options,config);try{await readable.pipeThrough(codecStream).pipeTo(writable,{preventClose:!0,preventAbort:!0});const{signature:signature,size:size}=codecStream;return{signature:signature,size:size}}finally{onTaskFinished()}}(workerData,config)}}function createWebWorkerInterface(workerData,{baseURL:baseURL,chunkSize:chunkSize}){return workerData.interface||Object.assign(workerData,{worker:getWebWorker(workerData.scripts[0],baseURL,workerData),interface:{run:()=>async function(workerData,config){let resolveResult,rejectResult;const result=new Promise(((resolve,reject)=>{resolveResult=resolve,rejectResult=reject}));Object.assign(workerData,{reader:null,writer:null,resolveResult:resolveResult,rejectResult:rejectResult,result:result});const{readable:readable,options:options,scripts:scripts}=workerData,{writable:writable,closed:closed}=function(writableSource){const writer=writableSource.getWriter();let resolveStreamClosed;const closed=new Promise((resolve=>resolveStreamClosed=resolve)),writable=new WritableStream({async write(chunk){await writer.ready,await writer.write(chunk)},close(){writer.releaseLock(),resolveStreamClosed()},abort:reason=>writer.abort(reason)});return{writable:writable,closed:closed}}(workerData.writable),streamsTransferred=sendMessage({type:MESSAGE_START,scripts:scripts.slice(1),options:options,config:config,readable:readable,writable:writable},workerData);streamsTransferred||Object.assign(workerData,{reader:readable.getReader(),writer:writable.getWriter()});const resultValue=await result;try{await writable.getWriter().close()}catch(_error){}return await closed,resultValue}(workerData,{chunkSize:chunkSize})}}),workerData.interface}let classicWorkersSupported=!0,transferStreamsSupported=!0;function getWebWorker(url,baseURL,workerData){const workerOptions={type:"module"};let scriptUrl,worker;typeof url==FUNCTION_TYPE$1&&(url=url());try{scriptUrl=new URL(url,baseURL)}catch(_error){scriptUrl=url}if(classicWorkersSupported)try{worker=new Worker(scriptUrl)}catch(_error){classicWorkersSupported=!1,worker=new Worker(scriptUrl,workerOptions)}else worker=new Worker(scriptUrl,workerOptions);return worker.addEventListener(MESSAGE_EVENT_TYPE,(event=>async function({data:data},workerData){const{type:type,value:value,messageId:messageId,result:result,error:error}=data,{reader:reader,writer:writer,resolveResult:resolveResult,rejectResult:rejectResult,onTaskFinished:onTaskFinished}=workerData;try{if(error){const{message:message,stack:stack,code:code,name:name}=error,responseError=new Error(message);Object.assign(responseError,{stack:stack,code:code,name:name}),close(responseError)}else{if(type==MESSAGE_PULL){const{value:value,done:done}=await reader.read();sendMessage({type:MESSAGE_DATA,value:value,done:done,messageId:messageId},workerData)}type==MESSAGE_DATA&&(await writer.ready,await writer.write(new Uint8Array(value)),sendMessage({type:MESSAGE_ACK_DATA,messageId:messageId},workerData)),type==MESSAGE_CLOSE&&close(null,result)}}catch(error){close(error)}function close(error,result){error?rejectResult(error):resolveResult(result),writer&&writer.releaseLock(),onTaskFinished()}}(event,workerData))),worker}function sendMessage(message,{worker:worker,writer:writer,onTaskFinished:onTaskFinished,transferStreams:transferStreams}){try{let{value:value,readable:readable,writable:writable}=message;const transferables=[];if(value&&(value.byteLength<value.buffer.byteLength?message.value=value.buffer.slice(0,value.byteLength):message.value=value.buffer,transferables.push(message.value)),transferStreams&&transferStreamsSupported?(readable&&transferables.push(readable),writable&&transferables.push(writable)):message.readable=message.writable=null,transferables.length)try{return worker.postMessage(message,transferables),!0}catch(_error){transferStreamsSupported=!1,message.readable=message.writable=null,worker.postMessage(message)}else worker.postMessage(message)}catch(error){throw writer&&writer.releaseLock(),onTaskFinished(),error}}let pool=[];const pendingRequests=[];let indexWorker=0;function clearTerminateTimeout(workerData){const{terminateTimeout:terminateTimeout}=workerData;terminateTimeout&&(clearTimeout(terminateTimeout),workerData.terminateTimeout=null)}const DEFAULT_CHUNK_SIZE=65536;class Stream{constructor(){this.size=0}init(){this.initialized=!0}}class Reader extends Stream{get readable(){const reader=this,{chunkSize:chunkSize=DEFAULT_CHUNK_SIZE}=reader,readable=new ReadableStream({start(){this.chunkOffset=0},async pull(controller){const{offset:offset=0,size:size,diskNumberStart:diskNumberStart}=readable,{chunkOffset:chunkOffset}=this;controller.enqueue(await readUint8Array(reader,offset+chunkOffset,Math.min(chunkSize,size-chunkOffset),diskNumberStart)),chunkOffset+chunkSize>size?controller.close():this.chunkOffset+=chunkSize}});return readable}}class BlobReader extends Reader{constructor(blob){super(),Object.assign(this,{blob:blob,size:blob.size})}async readUint8Array(offset,length){const offsetEnd=offset+length,blob=offset||offsetEnd<this.size?this.blob.slice(offset,offsetEnd):this.blob;let arrayBuffer=await blob.arrayBuffer();return arrayBuffer.byteLength>length&&(arrayBuffer=arrayBuffer.slice(offset,offsetEnd)),new Uint8Array(arrayBuffer)}}class BlobWriter extends Stream{constructor(contentType){super();const transformStream=new TransformStream,headers=[];contentType&&headers.push(["Content-Type",contentType]),Object.defineProperty(this,"writable",{get:()=>transformStream.writable}),this.blob=new Response(transformStream.readable,{headers:headers}).blob()}getData(){return this.blob}}class SplitDataReader extends Reader{constructor(readers){super(),this.readers=readers}async init(){const reader=this,{readers:readers}=reader;reader.lastDiskNumber=0,reader.lastDiskOffset=0,await Promise.all(readers.map((async(diskReader,indexDiskReader)=>{await diskReader.init(),indexDiskReader!=readers.length-1&&(reader.lastDiskOffset+=diskReader.size),reader.size+=diskReader.size}))),super.init()}async readUint8Array(offset,length,diskNumber=0){const reader=this,{readers:readers}=this;let result,currentDiskNumber=diskNumber;-1==currentDiskNumber&&(currentDiskNumber=readers.length-1);let currentReaderOffset=offset;for(;currentReaderOffset>=readers[currentDiskNumber].size;)currentReaderOffset-=readers[currentDiskNumber].size,currentDiskNumber++;const currentReader=readers[currentDiskNumber],currentReaderSize=currentReader.size;if(currentReaderOffset+length<=currentReaderSize)result=await readUint8Array(currentReader,currentReaderOffset,length);else{const chunkLength=currentReaderSize-currentReaderOffset;result=new Uint8Array(length),result.set(await readUint8Array(currentReader,currentReaderOffset,chunkLength)),result.set(await reader.readUint8Array(offset+chunkLength,length-chunkLength,diskNumber),chunkLength)}return reader.lastDiskNumber=Math.max(currentDiskNumber,reader.lastDiskNumber),result}}class SplitDataWriter extends Stream{constructor(writerGenerator,maxSize=4294967295){super();const zipWriter=this;let diskSourceWriter,diskWritable,diskWriter;Object.assign(zipWriter,{diskNumber:0,diskOffset:0,size:0,maxSize:maxSize,availableSize:maxSize});const writable=new WritableStream({async write(chunk){const{availableSize:availableSize}=zipWriter;if(diskWriter)chunk.length>=availableSize?(await writeChunk(chunk.slice(0,availableSize)),await closeDisk(),zipWriter.diskOffset+=diskSourceWriter.size,zipWriter.diskNumber++,diskWriter=null,await this.write(chunk.slice(availableSize))):await writeChunk(chunk);else{const{value:value,done:done}=await writerGenerator.next();if(done&&!value)throw new Error("Writer iterator completed too soon");diskSourceWriter=value,diskSourceWriter.size=0,diskSourceWriter.maxSize&&(zipWriter.maxSize=diskSourceWriter.maxSize),zipWriter.availableSize=zipWriter.maxSize,await initStream(diskSourceWriter),diskWritable=value.writable,diskWriter=diskWritable.getWriter(),await this.write(chunk)}},async close(){await diskWriter.ready,await closeDisk()}});async function writeChunk(chunk){const chunkLength=chunk.length;chunkLength&&(await diskWriter.ready,await diskWriter.write(chunk),diskSourceWriter.size+=chunkLength,zipWriter.size+=chunkLength,zipWriter.availableSize-=chunkLength)}async function closeDisk(){diskWritable.size=diskSourceWriter.size,await diskWriter.close()}Object.defineProperty(zipWriter,"writable",{get:()=>writable})}}async function initStream(stream,initSize){stream.init&&!stream.initialized&&await stream.init(initSize)}function readUint8Array(reader,offset,size,diskNumber){return reader.readUint8Array(offset,size,diskNumber)}"\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("").length;const PROPERTY_NAMES=["filename","rawFilename","compressedSize","uncompressedSize","lastModDate","rawLastModDate","comment","rawComment","lastAccessDate","creationDate","offset","diskNumberStart","diskNumberStart","internalFileAttribute","externalFileAttribute","msDosCompatible","zip64","directory","bitFlag","encrypted","signature","filenameUTF8","commentUTF8","compressionMethod","version","versionMadeBy","extraField","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class Entry{constructor(data){PROPERTY_NAMES.forEach((name=>this[name]=data[name]))}}const ERR_UNSUPPORTED_FORMAT="Zip64 is not supported (make sure 'keepOrder' is set to 'true')",EXTRAFIELD_DATA_AES=new Uint8Array([7,0,2,0,65,69,3,0,0]);let workers=0;const pendingEntries=[];class ZipWriter{constructor(writer,options={}){writer=function(writer){writer.writable===UNDEFINED_VALUE&&typeof writer.next==FUNCTION_TYPE$1&&(writer=new SplitDataWriter(writer)),writer instanceof WritableStream&&(writer={writable:writer});const{writable:writable}=writer;return writable.size===UNDEFINED_VALUE&&(writable.size=0),writer instanceof SplitDataWriter||Object.assign(writer,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),writer}(writer),Object.assign(this,{writer:writer,addSplitZipSignature:writer instanceof SplitDataWriter,options:options,config:config,files:new Map,filenames:new Set,offset:writer.writable.size,pendingEntriesSize:0,pendingAddFileCalls:new Set,bufferedWrites:0})}async add(name="",reader,options={}){const zipWriter=this,{pendingAddFileCalls:pendingAddFileCalls,config:config}=zipWriter;let promiseAddFile;workers<config.maxWorkers?workers++:await new Promise((resolve=>pendingEntries.push(resolve)));try{if(name=name.trim(),zipWriter.filenames.has(name))throw new Error("File already exists");return zipWriter.filenames.add(name),promiseAddFile=async function(zipWriter,name,reader,options){name=name.trim(),options.directory&&!name.endsWith("/")?name+="/":options.directory=name.endsWith("/");const rawFilename=encodeText(name);if(getLength(rawFilename)>65535)throw new Error("File entry name exceeds 64KB");const comment=options.comment||"",rawComment=encodeText(comment);if(getLength(rawComment)>65535)throw new Error("File entry comment exceeds 64KB");const version=getOptionValue(zipWriter,options,"version",20);if(version>65535)throw new Error("Version exceeds 65535");const versionMadeBy=getOptionValue(zipWriter,options,"versionMadeBy",20);if(versionMadeBy>65535)throw new Error("Version exceeds 65535");const lastModDate=getOptionValue(zipWriter,options,"lastModDate",new Date),lastAccessDate=getOptionValue(zipWriter,options,"lastAccessDate"),creationDate=getOptionValue(zipWriter,options,"creationDate"),msDosCompatible=getOptionValue(zipWriter,options,"msDosCompatible",!0),internalFileAttribute=getOptionValue(zipWriter,options,"internalFileAttribute",0),externalFileAttribute=getOptionValue(zipWriter,options,"externalFileAttribute",0),password=getOptionValue(zipWriter,options,"password"),encryptionStrength=getOptionValue(zipWriter,options,"encryptionStrength",3),zipCrypto=getOptionValue(zipWriter,options,"zipCrypto"),extendedTimestamp=getOptionValue(zipWriter,options,"extendedTimestamp",!0),keepOrder=getOptionValue(zipWriter,options,"keepOrder",!0),level=getOptionValue(zipWriter,options,"level"),useWebWorkers=getOptionValue(zipWriter,options,"useWebWorkers"),bufferedWrite=getOptionValue(zipWriter,options,"bufferedWrite"),dataDescriptorSignature=getOptionValue(zipWriter,options,"dataDescriptorSignature",!1),signal=getOptionValue(zipWriter,options,"signal"),useCompressionStream=getOptionValue(zipWriter,options,"useCompressionStream");let dataDescriptor=getOptionValue(zipWriter,options,"dataDescriptor",!0),zip64=getOptionValue(zipWriter,options,"zip64");if(password!==UNDEFINED_VALUE&&encryptionStrength!==UNDEFINED_VALUE&&(encryptionStrength<1||encryptionStrength>3))throw new Error("The strength must equal 1, 2, or 3");let rawExtraField=new Uint8Array;const{extraField:extraField}=options;if(extraField){let extraFieldSize=0,offset=0;extraField.forEach((data=>extraFieldSize+=4+getLength(data))),rawExtraField=new Uint8Array(extraFieldSize),extraField.forEach(((data,type)=>{if(type>65535)throw new Error("Extra field type exceeds 65535");if(getLength(data)>65535)throw new Error("Extra field data exceeds 64KB");arraySet(rawExtraField,new Uint16Array([type]),offset),arraySet(rawExtraField,new Uint16Array([getLength(data)]),offset+2),arraySet(rawExtraField,data,offset+4),offset+=4+getLength(data)}))}let maximumCompressedSize=0,maximumEntrySize=0,uncompressedSize=0;const zip64Enabled=!0===zip64;reader&&(reader=function(reader){return Array.isArray(reader)&&(reader=new SplitDataReader(reader)),reader instanceof ReadableStream&&(reader={readable:reader}),reader}(reader),await initStream(reader),reader.size===UNDEFINED_VALUE?(dataDescriptor=!0,(zip64||zip64===UNDEFINED_VALUE)&&(zip64=!0,uncompressedSize=maximumCompressedSize=MAX_32_BITS)):(uncompressedSize=reader.size,maximumCompressedSize=function(uncompressedSize){return uncompressedSize+5*(Math.floor(uncompressedSize/16383)+1)}(uncompressedSize)));const{diskOffset:diskOffset,diskNumber:diskNumber,maxSize:maxSize}=zipWriter.writer,zip64UncompressedSize=zip64Enabled||uncompressedSize>=MAX_32_BITS,zip64CompressedSize=zip64Enabled||maximumCompressedSize>=MAX_32_BITS,zip64Offset=zip64Enabled||zipWriter.offset+zipWriter.pendingEntriesSize-diskOffset>=MAX_32_BITS,supportZip64SplitFile=getOptionValue(zipWriter,options,"supportZip64SplitFile",!0),zip64DiskNumberStart=supportZip64SplitFile&&zip64Enabled||diskNumber+Math.ceil(zipWriter.pendingEntriesSize/maxSize)>=65535;if(zip64Offset||zip64UncompressedSize||zip64CompressedSize||zip64DiskNumberStart){if(!1===zip64||!keepOrder)throw new Error(ERR_UNSUPPORTED_FORMAT);zip64=!0}zip64=zip64||!1,options=Object.assign({},options,{rawFilename:rawFilename,rawComment:rawComment,version:version,versionMadeBy:versionMadeBy,lastModDate:lastModDate,lastAccessDate:lastAccessDate,creationDate:creationDate,rawExtraField:rawExtraField,zip64:zip64,zip64UncompressedSize:zip64UncompressedSize,zip64CompressedSize:zip64CompressedSize,zip64Offset:zip64Offset,zip64DiskNumberStart:zip64DiskNumberStart,password:password,level:level,useWebWorkers:useWebWorkers,encryptionStrength:encryptionStrength,extendedTimestamp:extendedTimestamp,zipCrypto:zipCrypto,bufferedWrite:bufferedWrite,keepOrder:keepOrder,dataDescriptor:dataDescriptor,dataDescriptorSignature:dataDescriptorSignature,signal:signal,msDosCompatible:msDosCompatible,internalFileAttribute:internalFileAttribute,externalFileAttribute:externalFileAttribute,useCompressionStream:useCompressionStream});const headerInfo=function(options){const{rawFilename:rawFilename,lastModDate:lastModDate,lastAccessDate:lastAccessDate,creationDate:creationDate,password:password,level:level,zip64:zip64,zipCrypto:zipCrypto,dataDescriptor:dataDescriptor,directory:directory,rawExtraField:rawExtraField,encryptionStrength:encryptionStrength,extendedTimestamp:extendedTimestamp}=options,compressed=0!==level&&!directory,encrypted=Boolean(password&&getLength(password));let rawExtraFieldAES,rawExtraFieldNTFS,rawExtraFieldExtendedTimestamp,extraFieldExtendedTimestampFlag,version=options.version;if(encrypted&&!zipCrypto){rawExtraFieldAES=new Uint8Array(getLength(EXTRAFIELD_DATA_AES)+2);const extraFieldAESView=getDataView(rawExtraFieldAES);setUint16(extraFieldAESView,0,EXTRAFIELD_TYPE_AES),arraySet(rawExtraFieldAES,EXTRAFIELD_DATA_AES,2),setUint8(extraFieldAESView,8,encryptionStrength)}else rawExtraFieldAES=new Uint8Array;if(extendedTimestamp){rawExtraFieldExtendedTimestamp=new Uint8Array(9+(lastAccessDate?4:0)+(creationDate?4:0));const extraFieldExtendedTimestampView=getDataView(rawExtraFieldExtendedTimestamp);setUint16(extraFieldExtendedTimestampView,0,EXTRAFIELD_TYPE_EXTENDED_TIMESTAMP),setUint16(extraFieldExtendedTimestampView,2,getLength(rawExtraFieldExtendedTimestamp)-4),extraFieldExtendedTimestampFlag=1+(lastAccessDate?2:0)+(creationDate?4:0),setUint8(extraFieldExtendedTimestampView,4,extraFieldExtendedTimestampFlag);let offset=5;setUint32(extraFieldExtendedTimestampView,offset,Math.floor(lastModDate.getTime()/1e3)),offset+=4,lastAccessDate&&(setUint32(extraFieldExtendedTimestampView,offset,Math.floor(lastAccessDate.getTime()/1e3)),offset+=4),creationDate&&setUint32(extraFieldExtendedTimestampView,offset,Math.floor(creationDate.getTime()/1e3));try{rawExtraFieldNTFS=new Uint8Array(36);const extraFieldNTFSView=getDataView(rawExtraFieldNTFS),lastModTimeNTFS=getTimeNTFS(lastModDate);setUint16(extraFieldNTFSView,0,EXTRAFIELD_TYPE_NTFS),setUint16(extraFieldNTFSView,2,32),setUint16(extraFieldNTFSView,8,EXTRAFIELD_TYPE_NTFS_TAG1),setUint16(extraFieldNTFSView,10,24),setBigUint64(extraFieldNTFSView,12,lastModTimeNTFS),setBigUint64(extraFieldNTFSView,20,getTimeNTFS(lastAccessDate)||lastModTimeNTFS),setBigUint64(extraFieldNTFSView,28,getTimeNTFS(creationDate)||lastModTimeNTFS)}catch(_error){rawExtraFieldNTFS=new Uint8Array}}else rawExtraFieldNTFS=rawExtraFieldExtendedTimestamp=new Uint8Array;let bitFlag=BITFLAG_LANG_ENCODING_FLAG;dataDescriptor&&(bitFlag|=BITFLAG_DATA_DESCRIPTOR);let compressionMethod=COMPRESSION_METHOD_STORE;compressed&&(compressionMethod=COMPRESSION_METHOD_DEFLATE);zip64&&(version=version>VERSION_ZIP64?version:VERSION_ZIP64);encrypted&&(bitFlag|=BITFLAG_ENCRYPTED,zipCrypto||(version=version>VERSION_AES?version:VERSION_AES,compressionMethod=COMPRESSION_METHOD_AES,compressed&&(rawExtraFieldAES[9]=COMPRESSION_METHOD_DEFLATE)));const headerArray=new Uint8Array(26),headerView=getDataView(headerArray);setUint16(headerView,0,version),setUint16(headerView,2,bitFlag),setUint16(headerView,4,compressionMethod);const dateArray=new Uint32Array(1),dateView=getDataView(dateArray);let lastModDateMsDos;lastModDateMsDos=lastModDate<MIN_DATE?MIN_DATE:lastModDate>MAX_DATE?MAX_DATE:lastModDate;setUint16(dateView,0,(lastModDateMsDos.getHours()<<6|lastModDateMsDos.getMinutes())<<5|lastModDateMsDos.getSeconds()/2),setUint16(dateView,2,(lastModDateMsDos.getFullYear()-1980<<4|lastModDateMsDos.getMonth()+1)<<5|lastModDateMsDos.getDate());const rawLastModDate=dateArray[0];setUint32(headerView,6,rawLastModDate),setUint16(headerView,22,getLength(rawFilename));const extraFieldLength=getLength(rawExtraFieldAES,rawExtraFieldExtendedTimestamp,rawExtraFieldNTFS,rawExtraField);setUint16(headerView,24,extraFieldLength);const localHeaderArray=new Uint8Array(30+getLength(rawFilename)+extraFieldLength);return setUint32(getDataView(localHeaderArray),0,LOCAL_FILE_HEADER_SIGNATURE),arraySet(localHeaderArray,headerArray,4),arraySet(localHeaderArray,rawFilename,30),arraySet(localHeaderArray,rawExtraFieldAES,30+getLength(rawFilename)),arraySet(localHeaderArray,rawExtraFieldExtendedTimestamp,30+getLength(rawFilename,rawExtraFieldAES)),arraySet(localHeaderArray,rawExtraFieldNTFS,30+getLength(rawFilename,rawExtraFieldAES,rawExtraFieldExtendedTimestamp)),arraySet(localHeaderArray,rawExtraField,30+getLength(rawFilename,rawExtraFieldAES,rawExtraFieldExtendedTimestamp,rawExtraFieldNTFS)),{localHeaderArray:localHeaderArray,headerArray:headerArray,headerView:headerView,lastModDate:lastModDate,rawLastModDate:rawLastModDate,encrypted:encrypted,compressed:compressed,version:version,compressionMethod:compressionMethod,extraFieldExtendedTimestampFlag:extraFieldExtendedTimestampFlag,rawExtraFieldExtendedTimestamp:rawExtraFieldExtendedTimestamp,rawExtraFieldNTFS:rawExtraFieldNTFS,rawExtraFieldAES:rawExtraFieldAES,extraFieldLength:extraFieldLength}}(options),dataDescriptorInfo=function(options){const{zip64:zip64,dataDescriptor:dataDescriptor,dataDescriptorSignature:dataDescriptorSignature}=options;let dataDescriptorView,dataDescriptorArray=new Uint8Array,dataDescriptorOffset=0;dataDescriptor&&(dataDescriptorArray=new Uint8Array(zip64?dataDescriptorSignature?24:20:dataDescriptorSignature?16:12),dataDescriptorView=getDataView(dataDescriptorArray),dataDescriptorSignature&&(dataDescriptorOffset=4,setUint32(dataDescriptorView,0,DATA_DESCRIPTOR_RECORD_SIGNATURE)));return{dataDescriptorArray:dataDescriptorArray,dataDescriptorView:dataDescriptorView,dataDescriptorOffset:dataDescriptorOffset}}(options),metadataSize=getLength(headerInfo.localHeaderArray,dataDescriptorInfo.dataDescriptorArray);maximumEntrySize=metadataSize+maximumCompressedSize,zipWriter.options.usdz&&(maximumEntrySize+=maximumEntrySize+64);let fileEntry;zipWriter.pendingEntriesSize+=maximumEntrySize;try{fileEntry=await async function(zipWriter,name,reader,entryInfo,options){const{files:files,writer:writer}=zipWriter,{keepOrder:keepOrder,dataDescriptor:dataDescriptor,signal:signal}=options,{headerInfo:headerInfo}=entryInfo,{usdz:usdz}=zipWriter.options,previousFileEntry=Array.from(files.values()).pop();let bufferedWrite,releaseLockWriter,releaseLockCurrentFileEntry,writingBufferedEntryData,writingEntryData,fileWriter,fileEntry={};files.set(name,fileEntry);try{let lockPreviousFileEntry;keepOrder&&(lockPreviousFileEntry=previousFileEntry&&previousFileEntry.lock,requestLockCurrentFileEntry()),!(options.bufferedWrite||zipWriter.writerLocked||zipWriter.bufferedWrites&&keepOrder)&&dataDescriptor||usdz?(fileWriter=writer,await requestLockWriter()):(fileWriter=new BlobWriter,fileWriter.writable.size=0,bufferedWrite=!0,zipWriter.bufferedWrites++,await initStream(writer)),await initStream(fileWriter);const{writable:writable}=writer;let{diskOffset:diskOffset}=writer;if(zipWriter.addSplitZipSignature){delete zipWriter.addSplitZipSignature;const signatureArray=new Uint8Array(4);setUint32(getDataView(signatureArray),0,SPLIT_ZIP_FILE_SIGNATURE),await writeData(writable,signatureArray),zipWriter.offset+=4}usdz&&function(entryInfo,zipWriterOffset){const{headerInfo:headerInfo}=entryInfo;let{localHeaderArray:localHeaderArray,extraFieldLength:extraFieldLength}=headerInfo,localHeaderArrayView=getDataView(localHeaderArray),extraBytesLength=64-(zipWriterOffset+localHeaderArray.length)%64;extraBytesLength<4&&(extraBytesLength+=64);const rawExtraFieldUSDZ=new Uint8Array(extraBytesLength),extraFieldUSDZView=getDataView(rawExtraFieldUSDZ);setUint16(extraFieldUSDZView,0,EXTRAFIELD_TYPE_USDZ),setUint16(extraFieldUSDZView,2,extraBytesLength-2);const previousLocalHeaderArray=localHeaderArray;headerInfo.localHeaderArray=localHeaderArray=new Uint8Array(previousLocalHeaderArray.length+extraBytesLength),arraySet(localHeaderArray,previousLocalHeaderArray),arraySet(localHeaderArray,rawExtraFieldUSDZ,previousLocalHeaderArray.length),localHeaderArrayView=getDataView(localHeaderArray),setUint16(localHeaderArrayView,28,extraFieldLength+extraBytesLength),entryInfo.metadataSize+=extraBytesLength}(entryInfo,zipWriter.offset-diskOffset),bufferedWrite||(await lockPreviousFileEntry,await skipDiskIfNeeded(writable));const{diskNumber:diskNumber}=writer;if(writingEntryData=!0,fileEntry.diskNumberStart=diskNumber,fileEntry=await async function(reader,writer,{diskNumberStart:diskNumberStart,lock:lock},entryInfo,config,options){const{headerInfo:headerInfo,dataDescriptorInfo:dataDescriptorInfo,metadataSize:metadataSize}=entryInfo,{localHeaderArray:localHeaderArray,headerArray:headerArray,lastModDate:lastModDate,rawLastModDate:rawLastModDate,encrypted:encrypted,compressed:compressed,version:version,compressionMethod:compressionMethod,rawExtraFieldExtendedTimestamp:rawExtraFieldExtendedTimestamp,extraFieldExtendedTimestampFlag:extraFieldExtendedTimestampFlag,rawExtraFieldNTFS:rawExtraFieldNTFS,rawExtraFieldAES:rawExtraFieldAES}=headerInfo,{dataDescriptorArray:dataDescriptorArray}=dataDescriptorInfo,{rawFilename:rawFilename,lastAccessDate:lastAccessDate,creationDate:creationDate,password:password,level:level,zip64:zip64,zip64UncompressedSize:zip64UncompressedSize,zip64CompressedSize:zip64CompressedSize,zip64Offset:zip64Offset,zip64DiskNumberStart:zip64DiskNumberStart,zipCrypto:zipCrypto,dataDescriptor:dataDescriptor,directory:directory,versionMadeBy:versionMadeBy,rawComment:rawComment,rawExtraField:rawExtraField,useWebWorkers:useWebWorkers,onstart:onstart,onprogress:onprogress,onend:onend,signal:signal,encryptionStrength:encryptionStrength,extendedTimestamp:extendedTimestamp,msDosCompatible:msDosCompatible,internalFileAttribute:internalFileAttribute,externalFileAttribute:externalFileAttribute,useCompressionStream:useCompressionStream}=options,fileEntry={lock:lock,versionMadeBy:versionMadeBy,zip64:zip64,directory:Boolean(directory),filenameUTF8:!0,rawFilename:rawFilename,commentUTF8:!0,rawComment:rawComment,rawExtraFieldExtendedTimestamp:rawExtraFieldExtendedTimestamp,rawExtraFieldNTFS:rawExtraFieldNTFS,rawExtraFieldAES:rawExtraFieldAES,rawExtraField:rawExtraField,extendedTimestamp:extendedTimestamp,msDosCompatible:msDosCompatible,internalFileAttribute:internalFileAttribute,externalFileAttribute:externalFileAttribute,diskNumberStart:diskNumberStart};let signature,compressedSize=0,uncompressedSize=0;const{writable:writable}=writer;if(reader){reader.chunkSize=function(config){return Math.max(config.chunkSize,MINIMUM_CHUNK_SIZE)}(config),await writeData(writable,localHeaderArray);const readable=reader.readable,size=readable.size=reader.size,workerOptions={options:{codecType:CODEC_DEFLATE,level:level,password:password,encryptionStrength:encryptionStrength,zipCrypto:encrypted&&zipCrypto,passwordVerification:encrypted&&zipCrypto&&rawLastModDate>>8&255,signed:!0,compressed:compressed,encrypted:encrypted,useWebWorkers:useWebWorkers,useCompressionStream:useCompressionStream,transferStreams:!1},config:config,streamOptions:{signal:signal,size:size,onstart:onstart,onprogress:onprogress,onend:onend}},result=await async function(stream,workerOptions){const{options:options,config:config}=workerOptions,{transferStreams:transferStreams,useWebWorkers:useWebWorkers,useCompressionStream:useCompressionStream,codecType:codecType,compressed:compressed,signed:signed,encrypted:encrypted}=options,{workerScripts:workerScripts,maxWorkers:maxWorkers,terminateWorkerTimeout:terminateWorkerTimeout}=config;workerOptions.transferStreams=transferStreams||transferStreams===UNDEFINED_VALUE;const streamCopy=!(compressed||signed||encrypted||workerOptions.transferStreams);let worker;workerOptions.useWebWorkers=!streamCopy&&(useWebWorkers||useWebWorkers===UNDEFINED_VALUE&&config.useWebWorkers),workerOptions.scripts=workerOptions.useWebWorkers&&workerScripts?workerScripts[codecType]:[],options.useCompressionStream=useCompressionStream||useCompressionStream===UNDEFINED_VALUE&&config.useCompressionStream;const workerData=pool.find((workerData=>!workerData.busy));if(workerData)clearTerminateTimeout(workerData),worker=new CodecWorker(workerData,stream,workerOptions,onTaskFinished);else if(pool.length<maxWorkers){const workerData={indexWorker:indexWorker};indexWorker++,pool.push(workerData),worker=new CodecWorker(workerData,stream,workerOptions,onTaskFinished)}else worker=await new Promise((resolve=>pendingRequests.push({resolve:resolve,stream:stream,workerOptions:workerOptions})));return worker.run();function onTaskFinished(workerData){if(pendingRequests.length){const[{resolve:resolve,stream:stream,workerOptions:workerOptions}]=pendingRequests.splice(0,1);resolve(new CodecWorker(workerData,stream,workerOptions,onTaskFinished))}else workerData.worker?(clearTerminateTimeout(workerData),Number.isFinite(terminateWorkerTimeout)&&terminateWorkerTimeout>=0&&(workerData.terminateTimeout=setTimeout((()=>{pool=pool.filter((data=>data!=workerData)),workerData.terminate()}),terminateWorkerTimeout))):pool=pool.filter((data=>data!=workerData))}}({readable:readable,writable:writable},workerOptions);writable.size+=result.size,signature=result.signature,uncompressedSize=reader.size=readable.size,compressedSize=result.size}else await writeData(writable,localHeaderArray);let rawExtraFieldZip64;if(zip64){let rawExtraFieldZip64Length=4;zip64UncompressedSize&&(rawExtraFieldZip64Length+=8),zip64CompressedSize&&(rawExtraFieldZip64Length+=8),zip64Offset&&(rawExtraFieldZip64Length+=8),zip64DiskNumberStart&&(rawExtraFieldZip64Length+=4),rawExtraFieldZip64=new Uint8Array(rawExtraFieldZip64Length)}else rawExtraFieldZip64=new Uint8Array;(function(entryInfo,options){const{signature:signature,rawExtraFieldZip64:rawExtraFieldZip64,compressedSize:compressedSize,uncompressedSize:uncompressedSize,headerInfo:headerInfo,dataDescriptorInfo:dataDescriptorInfo}=entryInfo,{headerView:headerView,encrypted:encrypted}=headerInfo,{dataDescriptorView:dataDescriptorView,dataDescriptorOffset:dataDescriptorOffset}=dataDescriptorInfo,{zip64:zip64,zip64UncompressedSize:zip64UncompressedSize,zip64CompressedSize:zip64CompressedSize,zipCrypto:zipCrypto,dataDescriptor:dataDescriptor}=options;encrypted&&!zipCrypto||signature===UNDEFINED_VALUE||(setUint32(headerView,10,signature),dataDescriptor&&setUint32(dataDescriptorView,dataDescriptorOffset,signature));if(zip64){const rawExtraFieldZip64View=getDataView(rawExtraFieldZip64);setUint16(rawExtraFieldZip64View,0,EXTRAFIELD_TYPE_ZIP64),setUint16(rawExtraFieldZip64View,2,rawExtraFieldZip64.length-4);let rawExtraFieldZip64Offset=4;zip64UncompressedSize&&(setUint32(headerView,18,MAX_32_BITS),setBigUint64(rawExtraFieldZip64View,rawExtraFieldZip64Offset,BigInt(uncompressedSize)),rawExtraFieldZip64Offset+=8),zip64CompressedSize&&(setUint32(headerView,14,MAX_32_BITS),setBigUint64(rawExtraFieldZip64View,rawExtraFieldZip64Offset,BigInt(compressedSize))),dataDescriptor&&(setBigUint64(dataDescriptorView,dataDescriptorOffset+4,BigInt(compressedSize)),setBigUint64(dataDescriptorView,dataDescriptorOffset+12,BigInt(uncompressedSize)))}else setUint32(headerView,14,compressedSize),setUint32(headerView,18,uncompressedSize),dataDescriptor&&(setUint32(dataDescriptorView,dataDescriptorOffset+4,compressedSize),setUint32(dataDescriptorView,dataDescriptorOffset+8,uncompressedSize))})({signature:signature,rawExtraFieldZip64:rawExtraFieldZip64,compressedSize:compressedSize,uncompressedSize:uncompressedSize,headerInfo:headerInfo,dataDescriptorInfo:dataDescriptorInfo},options),dataDescriptor&&await writeData(writable,dataDescriptorArray);return Object.assign(fileEntry,{uncompressedSize:uncompressedSize,compressedSize:compressedSize,lastModDate:lastModDate,rawLastModDate:rawLastModDate,creationDate:creationDate,lastAccessDate:lastAccessDate,encrypted:encrypted,length:metadataSize+compressedSize,compressionMethod:compressionMethod,version:version,headerArray:headerArray,signature:signature,rawExtraFieldZip64:rawExtraFieldZip64,extraFieldExtendedTimestampFlag:extraFieldExtendedTimestampFlag,zip64UncompressedSize:zip64UncompressedSize,zip64CompressedSize:zip64CompressedSize,zip64Offset:zip64Offset,zip64DiskNumberStart:zip64DiskNumberStart}),fileEntry}(reader,fileWriter,fileEntry,entryInfo,zipWriter.config,options),writingEntryData=!1,files.set(name,fileEntry),fileEntry.filename=name,bufferedWrite){await fileWriter.writable.getWriter().close();let blob=await fileWriter.getData();await lockPreviousFileEntry,await requestLockWriter(),writingBufferedEntryData=!0,dataDescriptor||(blob=await async function(fileEntry,entryData,writable,{zipCrypto:zipCrypto}){let arrayBuffer;arrayBuffer=await entryData.slice(0,26).arrayBuffer(),26!=arrayBuffer.byteLength&&(arrayBuffer=arrayBuffer.slice(0,26));const arrayBufferView=new DataView(arrayBuffer);fileEntry.encrypted&&!zipCrypto||setUint32(arrayBufferView,14,fileEntry.signature);fileEntry.zip64?(setUint32(arrayBufferView,18,MAX_32_BITS),setUint32(arrayBufferView,22,MAX_32_BITS)):(setUint32(arrayBufferView,18,fileEntry.compressedSize),setUint32(arrayBufferView,22,fileEntry.uncompressedSize));return await writeData(writable,new Uint8Array(arrayBuffer)),entryData.slice(arrayBuffer.byteLength)}(fileEntry,blob,writable,options)),await skipDiskIfNeeded(writable),fileEntry.diskNumberStart=writer.diskNumber,diskOffset=writer.diskOffset,await blob.stream().pipeTo(writable,{preventClose:!0,preventAbort:!0,signal:signal}),writable.size+=blob.size,writingBufferedEntryData=!1}if(fileEntry.offset=zipWriter.offset-diskOffset,fileEntry.zip64)!function(fileEntry,options){const{rawExtraFieldZip64:rawExtraFieldZip64,offset:offset,diskNumberStart:diskNumberStart}=fileEntry,{zip64UncompressedSize:zip64UncompressedSize,zip64CompressedSize:zip64CompressedSize,zip64Offset:zip64Offset,zip64DiskNumberStart:zip64DiskNumberStart}=options,rawExtraFieldZip64View=getDataView(rawExtraFieldZip64);let rawExtraFieldZip64Offset=4;zip64UncompressedSize&&(rawExtraFieldZip64Offset+=8);zip64CompressedSize&&(rawExtraFieldZip64Offset+=8);zip64Offset&&(setBigUint64(rawExtraFieldZip64View,rawExtraFieldZip64Offset,BigInt(offset)),rawExtraFieldZip64Offset+=8);zip64DiskNumberStart&&setUint32(rawExtraFieldZip64View,rawExtraFieldZip64Offset,diskNumberStart)}(fileEntry,options);else if(fileEntry.offset>=MAX_32_BITS)throw new Error(ERR_UNSUPPORTED_FORMAT);return zipWriter.offset+=fileEntry.length,fileEntry}catch(error){if(bufferedWrite&&writingBufferedEntryData||!bufferedWrite&&writingEntryData){if(zipWriter.hasCorruptedEntries=!0,error)try{error.corruptedEntry=!0}catch(_error){}bufferedWrite?zipWriter.offset+=fileWriter.writable.size:zipWriter.offset=fileWriter.writable.size}throw files.delete(name),error}finally{bufferedWrite&&zipWriter.bufferedWrites--,releaseLockCurrentFileEntry&&releaseLockCurrentFileEntry(),releaseLockWriter&&releaseLockWriter()}function requestLockCurrentFileEntry(){fileEntry.lock=new Promise((resolve=>releaseLockCurrentFileEntry=resolve))}async function requestLockWriter(){zipWriter.writerLocked=!0;const{lockWriter:lockWriter}=zipWriter;zipWriter.lockWriter=new Promise((resolve=>releaseLockWriter=()=>{zipWriter.writerLocked=!1,resolve()})),await lockWriter}async function skipDiskIfNeeded(writable){headerInfo.localHeaderArray.length>writer.availableSize&&(writer.availableSize=0,await writeData(writable,new Uint8Array))}}(zipWriter,name,reader,{headerInfo:headerInfo,dataDescriptorInfo:dataDescriptorInfo,metadataSize:metadataSize},options)}finally{zipWriter.pendingEntriesSize-=maximumEntrySize}return Object.assign(fileEntry,{name:name,comment:comment,extraField:extraField}),new Entry(fileEntry)}(zipWriter,name,reader,options),pendingAddFileCalls.add(promiseAddFile),await promiseAddFile}catch(error){throw zipWriter.filenames.delete(name),error}finally{pendingAddFileCalls.delete(promiseAddFile);const pendingEntry=pendingEntries.shift();pendingEntry?pendingEntry():workers--}}async close(comment=new Uint8Array,options={}){const{pendingAddFileCalls:pendingAddFileCalls,writer:writer}=this,{writable:writable}=writer;for(;pendingAddFileCalls.size;)await Promise.all(Array.from(pendingAddFileCalls));await async function(zipWriter,comment,options){const{files:files,writer:writer}=zipWriter,{diskOffset:diskOffset,writable:writable}=writer;let{diskNumber:diskNumber}=writer,offset=0,directoryDataLength=0,directoryOffset=zipWriter.offset-diskOffset,filesLength=files.size;for(const[,fileEntry]of files){const{rawFilename:rawFilename,rawExtraFieldZip64:rawExtraFieldZip64,rawExtraFieldAES:rawExtraFieldAES,rawComment:rawComment,rawExtraFieldNTFS:rawExtraFieldNTFS,rawExtraField:rawExtraField,extendedTimestamp:extendedTimestamp,extraFieldExtendedTimestampFlag:extraFieldExtendedTimestampFlag,lastModDate:lastModDate}=fileEntry;let rawExtraFieldTimestamp;if(extendedTimestamp){rawExtraFieldTimestamp=new Uint8Array(9);const extraFieldExtendedTimestampView=getDataView(rawExtraFieldTimestamp);setUint16(extraFieldExtendedTimestampView,0,EXTRAFIELD_TYPE_EXTENDED_TIMESTAMP),setUint16(extraFieldExtendedTimestampView,2,5),setUint8(extraFieldExtendedTimestampView,4,extraFieldExtendedTimestampFlag),setUint32(extraFieldExtendedTimestampView,5,Math.floor(lastModDate.getTime()/1e3))}else rawExtraFieldTimestamp=new Uint8Array;fileEntry.rawExtraFieldCDExtendedTimestamp=rawExtraFieldTimestamp,directoryDataLength+=46+getLength(rawFilename,rawComment,rawExtraFieldZip64,rawExtraFieldAES,rawExtraFieldNTFS,rawExtraFieldTimestamp,rawExtraField)}const directoryArray=new Uint8Array(directoryDataLength),directoryView=getDataView(directoryArray);await initStream(writer);let directoryDiskOffset=0;for(const[indexFileEntry,fileEntry]of Array.from(files.values()).entries()){const{offset:fileEntryOffset,rawFilename:rawFilename,rawExtraFieldZip64:rawExtraFieldZip64,rawExtraFieldAES:rawExtraFieldAES,rawExtraFieldCDExtendedTimestamp:rawExtraFieldCDExtendedTimestamp,rawExtraFieldNTFS:rawExtraFieldNTFS,rawExtraField:rawExtraField,rawComment:rawComment,versionMadeBy:versionMadeBy,headerArray:headerArray,directory:directory,zip64:zip64,zip64UncompressedSize:zip64UncompressedSize,zip64CompressedSize:zip64CompressedSize,zip64DiskNumberStart:zip64DiskNumberStart,zip64Offset:zip64Offset,msDosCompatible:msDosCompatible,internalFileAttribute:internalFileAttribute,externalFileAttribute:externalFileAttribute,diskNumberStart:diskNumberStart,uncompressedSize:uncompressedSize,compressedSize:compressedSize}=fileEntry,extraFieldLength=getLength(rawExtraFieldZip64,rawExtraFieldAES,rawExtraFieldCDExtendedTimestamp,rawExtraFieldNTFS,rawExtraField);setUint32(directoryView,offset,33639248),setUint16(directoryView,offset+4,versionMadeBy);const headerView=getDataView(headerArray);zip64UncompressedSize||setUint32(headerView,18,uncompressedSize),zip64CompressedSize||setUint32(headerView,14,compressedSize),arraySet(directoryArray,headerArray,offset+6),setUint16(directoryView,offset+30,extraFieldLength),setUint16(directoryView,offset+32,getLength(rawComment)),setUint16(directoryView,offset+34,zip64&&zip64DiskNumberStart?65535:diskNumberStart),setUint16(directoryView,offset+36,internalFileAttribute),externalFileAttribute?setUint32(directoryView,offset+38,externalFileAttribute):directory&&msDosCompatible&&setUint8(directoryView,offset+38,16),setUint32(directoryView,offset+42,zip64&&zip64Offset?MAX_32_BITS:fileEntryOffset),arraySet(directoryArray,rawFilename,offset+46),arraySet(directoryArray,rawExtraFieldZip64,offset+46+getLength(rawFilename)),arraySet(directoryArray,rawExtraFieldAES,offset+46+getLength(rawFilename,rawExtraFieldZip64)),arraySet(directoryArray,rawExtraFieldCDExtendedTimestamp,offset+46+getLength(rawFilename,rawExtraFieldZip64,rawExtraFieldAES)),arraySet(directoryArray,rawExtraFieldNTFS,offset+46+getLength(rawFilename,rawExtraFieldZip64,rawExtraFieldAES,rawExtraFieldCDExtendedTimestamp)),arraySet(directoryArray,rawExtraField,offset+46+getLength(rawFilename,rawExtraFieldZip64,rawExtraFieldAES,rawExtraFieldCDExtendedTimestamp,rawExtraFieldNTFS)),arraySet(directoryArray,rawComment,offset+46+getLength(rawFilename)+extraFieldLength);const directoryEntryLength=46+getLength(rawFilename,rawComment)+extraFieldLength;if(offset-directoryDiskOffset>writer.availableSize&&(writer.availableSize=0,await writeData(writable,directoryArray.slice(directoryDiskOffset,offset)),directoryDiskOffset=offset),offset+=directoryEntryLength,options.onprogress)try{await options.onprogress(indexFileEntry+1,files.size,new Entry(fileEntry))}catch(_error){}}await writeData(writable,directoryDiskOffset?directoryArray.slice(directoryDiskOffset):directoryArray);let lastDiskNumber=writer.diskNumber;const{availableSize:availableSize}=writer;availableSize<22&&lastDiskNumber++;let zip64=getOptionValue(zipWriter,options,"zip64");if(directoryOffset>=MAX_32_BITS||directoryDataLength>=MAX_32_BITS||filesLength>=65535||lastDiskNumber>=65535){if(!1===zip64)throw new Error(ERR_UNSUPPORTED_FORMAT);zip64=!0}const endOfdirectoryArray=new Uint8Array(zip64?98:22),endOfdirectoryView=getDataView(endOfdirectoryArray);if(offset=0,zip64){setUint32(endOfdirectoryView,0,101075792),setBigUint64(endOfdirectoryView,4,BigInt(44)),setUint16(endOfdirectoryView,12,45),setUint16(endOfdirectoryView,14,45),setUint32(endOfdirectoryView,16,lastDiskNumber),setUint32(endOfdirectoryView,20,diskNumber),setBigUint64(endOfdirectoryView,24,BigInt(filesLength)),setBigUint64(endOfdirectoryView,32,BigInt(filesLength)),setBigUint64(endOfdirectoryView,40,BigInt(directoryDataLength)),setBigUint64(endOfdirectoryView,48,BigInt(directoryOffset)),setUint32(endOfdirectoryView,56,117853008),setBigUint64(endOfdirectoryView,64,BigInt(directoryOffset)+BigInt(directoryDataLength)),setUint32(endOfdirectoryView,72,lastDiskNumber+1);getOptionValue(zipWriter,options,"supportZip64SplitFile",!0)&&(lastDiskNumber=65535,diskNumber=65535),filesLength=65535,directoryOffset=MAX_32_BITS,directoryDataLength=MAX_32_BITS,offset+=76}setUint32(endOfdirectoryView,offset,101010256),setUint16(endOfdirectoryView,offset+4,lastDiskNumber),setUint16(endOfdirectoryView,offset+6,diskNumber),setUint16(endOfdirectoryView,offset+8,filesLength),setUint16(endOfdirectoryView,offset+10,filesLength),setUint32(endOfdirectoryView,offset+12,directoryDataLength),setUint32(endOfdirectoryView,offset+16,directoryOffset);const commentLength=getLength(comment);if(commentLength){if(!(commentLength<=65535))throw new Error("Zip file comment exceeds 64KB");setUint16(endOfdirectoryView,offset+20,commentLength)}await writeData(writable,endOfdirectoryArray),commentLength&&await writeData(writable,comment)}(this,comment,options);return getOptionValue(this,options,"preventClose")||await writable.getWriter().close(),writer.getData?writer.getData():writable}}async function writeData(writable,array){const streamWriter=writable.getWriter();await streamWriter.ready,writable.size+=getLength(array),await streamWriter.write(array),streamWriter.releaseLock()}function getTimeNTFS(date){if(date)return(BigInt(date.getTime())+BigInt(116444736e5))*BigInt(1e4)}function getOptionValue(zipWriter,options,name,defaultValue){const result=options[name]===UNDEFINED_VALUE?zipWriter.options[name]:options[name];return result===UNDEFINED_VALUE?defaultValue:result}function setUint8(view,offset,value){view.setUint8(offset,value)}function setUint16(view,offset,value){view.setUint16(offset,value,!0)}function setUint32(view,offset,value){view.setUint32(offset,value,!0)}function setBigUint64(view,offset,value){view.setBigUint64(offset,value,!0)}function arraySet(array,typedArray,offset){array.set(typedArray,offset)}function getDataView(array){return new DataView(array.buffer)}function getLength(...arrayLikes){let result=0;return arrayLikes.forEach((arrayLike=>arrayLike&&(result+=arrayLike.length))),result}let baseURL;try{baseURL="undefined"==typeof document&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:"undefined"==typeof document?location.href:_documentCurrentScript&&"SCRIPT"===_documentCurrentScript.tagName.toUpperCase()&&_documentCurrentScript.src||new URL("app.js",document.baseURI).href}catch(_error){}configure({baseURL:baseURL}),function(e){const t=()=>URL.createObjectURL(new Blob(['const{Array:e,Object:t,Number:n,Math:r,Error:s,Uint8Array:i,Uint16Array:o,Uint32Array:c,Int32Array:f,Map:a,DataView:l,Promise:u,TextEncoder:w,crypto:h,postMessage:d,TransformStream:p,ReadableStream:y,WritableStream:m,CompressionStream:b,DecompressionStream:g}=self;class k{constructor(e){return class extends p{constructor(t,n){const r=new e(n);super({transform(e,t){t.enqueue(r.append(e))},flush(e){const t=r.flush();t&&e.enqueue(t)}})}}}}const v=[];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)1&t?t=t>>>1^3988292384:t>>>=1;v[e]=t}class S{constructor(e){this.t=e||-1}append(e){let t=0|this.t;for(let n=0,r=0|e.length;r>n;n++)t=t>>>8^v[255&(t^e[n])];this.t=t}get(){return~this.t}}class z extends p{constructor(){let e;const t=new S;super({transform(e,n){t.append(e),n.enqueue(e)},flush(){const n=new i(4);new l(n.buffer).setUint32(0,t.get()),e.value=n}}),e=this}}const C={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const n=e[e.length-1],r=C.i(n);return 32===r?e.concat(t):C.o(t,r,0|n,e.slice(0,e.length-1))},l(e){const t=e.length;if(0===t)return 0;const n=e[t-1];return 32*(t-1)+C.i(n)},u(e,t){if(32*e.length<t)return e;const n=(e=e.slice(0,r.ceil(t/32))).length;return t&=31,n>0&&t&&(e[n-1]=C.h(t,e[n-1]&2147483648>>t-1,1)),e},h:(e,t,n)=>32===e?t:(n?0|t:t<<32-e)+1099511627776*e,i:e=>r.round(e/1099511627776)||32,o(e,t,n,r){for(void 0===r&&(r=[]);t>=32;t-=32)r.push(n),n=0;if(0===t)return r.concat(e);for(let s=0;s<e.length;s++)r.push(n|e[s]>>>t),n=e[s]<<32-t;const s=e.length?e[e.length-1]:0,i=C.i(s);return r.push(C.h(t+i&31,t+i>32?n:r.pop(),1)),r}},x={p:{m(e){const t=C.l(e)/8,n=new i(t);let r;for(let s=0;t>s;s++)0==(3&s)&&(r=e[s/4]),n[s]=r>>>24,r<<=8;return n},g(e){const t=[];let n,r=0;for(n=0;n<e.length;n++)r=r<<8|e[n],3==(3&n)&&(t.push(r),r=0);return 3&n&&t.push(C.h(8*(3&n),r)),t}}},_=class{constructor(e){const t=this;t.blockSize=512,t.k=[1732584193,4023233417,2562383102,271733878,3285377520],t.v=[1518500249,1859775393,2400959708,3395469782],e?(t.S=e.S.slice(0),t.C=e.C.slice(0),t._=e._):t.reset()}reset(){const e=this;return e.S=e.k.slice(0),e.C=[],e._=0,e}update(e){const t=this;"string"==typeof e&&(e=x.A.g(e));const n=t.C=C.concat(t.C,e),r=t._,i=t._=r+C.l(e);if(i>9007199254740991)throw new s("Cannot hash more than 2^53 - 1 bits");const o=new c(n);let f=0;for(let e=t.blockSize+r-(t.blockSize+r&t.blockSize-1);i>=e;e+=t.blockSize)t.I(o.subarray(16*f,16*(f+1))),f+=1;return n.splice(0,16*f),t}D(){const e=this;let t=e.C;const n=e.S;t=C.concat(t,[C.h(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(r.floor(e._/4294967296)),t.push(0|e._);t.length;)e.I(t.splice(0,16));return e.reset(),n}V(e,t,n,r){return e>19?e>39?e>59?e>79?void 0:t^n^r:t&n|t&r|n&r:t^n^r:t&n|~t&r}P(e,t){return t<<e|t>>>32-e}I(t){const n=this,s=n.S,i=e(80);for(let e=0;16>e;e++)i[e]=t[e];let o=s[0],c=s[1],f=s[2],a=s[3],l=s[4];for(let e=0;79>=e;e++){16>e||(i[e]=n.P(1,i[e-3]^i[e-8]^i[e-14]^i[e-16]));const t=n.P(5,o)+n.V(e,c,f,a)+l+i[e]+n.v[r.floor(e/20)]|0;l=a,a=f,f=n.P(30,c),c=o,o=t}s[0]=s[0]+o|0,s[1]=s[1]+c|0,s[2]=s[2]+f|0,s[3]=s[3]+a|0,s[4]=s[4]+l|0}},A={getRandomValues(e){const t=new c(e.buffer),n=e=>{let t=987654321;const n=4294967295;return()=>(t=36969*(65535&t)+(t>>16)&n,(((t<<16)+(e=18e3*(65535&e)+(e>>16)&n)&n)/4294967296+.5)*(r.random()>.5?1:-1))};for(let s,i=0;i<e.length;i+=4){const e=n(4294967296*(s||r.random()));s=987654071*e(),t[i/4]=4294967296*e()|0}return e}},I={importKey:e=>new I.R(x.p.g(e)),B(e,t,n,r){if(n=n||1e4,0>r||0>n)throw new s("invalid params to pbkdf2");const i=1+(r>>5)<<2;let o,c,f,a,u;const w=new ArrayBuffer(i),h=new l(w);let d=0;const p=C;for(t=x.p.g(t),u=1;(i||1)>d;u++){for(o=c=e.encrypt(p.concat(t,[u])),f=1;n>f;f++)for(c=e.encrypt(c),a=0;a<c.length;a++)o[a]^=c[a];for(f=0;(i||1)>d&&f<o.length;f++)h.setInt32(d,o[f]),d+=4}return w.slice(0,r/8)},R:class{constructor(e){const t=this,n=t.M=_,r=[[],[]];t.U=[new n,new n];const s=t.U[0].blockSize/32;e.length>s&&(e=(new n).update(e).D());for(let t=0;s>t;t++)r[0][t]=909522486^e[t],r[1][t]=1549556828^e[t];t.U[0].update(r[0]),t.U[1].update(r[1]),t.K=new n(t.U[0])}reset(){const e=this;e.K=new e.M(e.U[0]),e.N=!1}update(e){this.N=!0,this.K.update(e)}digest(){const e=this,t=e.K.D(),n=new e.M(e.U[1]).update(t).D();return e.reset(),n}encrypt(e){if(this.N)throw new s("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},D=void 0!==h&&"function"==typeof h.getRandomValues,V="Invalid password",P="Invalid signature",R="zipjs-abort-check-password";function B(e){return D?h.getRandomValues(e):A.getRandomValues(e)}const E=16,M={name:"PBKDF2"},U=t.assign({hash:{name:"HMAC"}},M),K=t.assign({iterations:1e3,hash:{name:"SHA-1"}},M),N=["deriveBits"],O=[8,12,16],T=[16,24,32],W=10,j=[0,0,0,0],H="undefined",L="function",F=typeof h!=H,q=F&&h.subtle,G=F&&typeof q!=H,J=x.p,Q=class{constructor(e){const t=this;t.O=[[[],[],[],[],[]],[[],[],[],[],[]]],t.O[0][0][0]||t.T();const n=t.O[0][4],r=t.O[1],i=e.length;let o,c,f,a=1;if(4!==i&&6!==i&&8!==i)throw new s("invalid aes key size");for(t.v=[c=e.slice(0),f=[]],o=i;4*i+28>o;o++){let e=c[o-1];(o%i==0||8===i&&o%i==4)&&(e=n[e>>>24]<<24^n[e>>16&255]<<16^n[e>>8&255]<<8^n[255&e],o%i==0&&(e=e<<8^e>>>24^a<<24,a=a<<1^283*(a>>7))),c[o]=c[o-i]^e}for(let e=0;o;e++,o--){const t=c[3&e?o:o-4];f[e]=4>=o||4>e?t:r[0][n[t>>>24]]^r[1][n[t>>16&255]]^r[2][n[t>>8&255]]^r[3][n[255&t]]}}encrypt(e){return this.W(e,0)}decrypt(e){return this.W(e,1)}T(){const e=this.O[0],t=this.O[1],n=e[4],r=t[4],s=[],i=[];let o,c,f,a;for(let e=0;256>e;e++)i[(s[e]=e<<1^283*(e>>7))^e]=e;for(let l=o=0;!n[l];l^=c||1,o=i[o]||1){let i=o^o<<1^o<<2^o<<3^o<<4;i=i>>8^255&i^99,n[l]=i,r[i]=l,a=s[f=s[c=s[l]]];let u=16843009*a^65537*f^257*c^16843008*l,w=257*s[i]^16843008*i;for(let n=0;4>n;n++)e[n][l]=w=w<<24^w>>>8,t[n][i]=u=u<<24^u>>>8}for(let n=0;5>n;n++)e[n]=e[n].slice(0),t[n]=t[n].slice(0)}W(e,t){if(4!==e.length)throw new s("invalid aes block size");const n=this.v[t],r=n.length/4-2,i=[0,0,0,0],o=this.O[t],c=o[0],f=o[1],a=o[2],l=o[3],u=o[4];let w,h,d,p=e[0]^n[0],y=e[t?3:1]^n[1],m=e[2]^n[2],b=e[t?1:3]^n[3],g=4;for(let e=0;r>e;e++)w=c[p>>>24]^f[y>>16&255]^a[m>>8&255]^l[255&b]^n[g],h=c[y>>>24]^f[m>>16&255]^a[b>>8&255]^l[255&p]^n[g+1],d=c[m>>>24]^f[b>>16&255]^a[p>>8&255]^l[255&y]^n[g+2],b=c[b>>>24]^f[p>>16&255]^a[y>>8&255]^l[255&m]^n[g+3],g+=4,p=w,y=h,m=d;for(let e=0;4>e;e++)i[t?3&-e:e]=u[p>>>24]<<24^u[y>>16&255]<<16^u[m>>8&255]<<8^u[255&b]^n[g++],w=p,p=y,y=m,m=b,b=w;return i}},X=class{constructor(e,t){this.j=e,this.H=t,this.L=t}reset(){this.L=this.H}update(e){return this.F(this.j,e,this.L)}q(e){if(255==(e>>24&255)){let t=e>>16&255,n=e>>8&255,r=255&e;255===t?(t=0,255===n?(n=0,255===r?r=0:++r):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=r}else e+=1<<24;return e}G(e){0===(e[0]=this.q(e[0]))&&(e[1]=this.q(e[1]))}F(e,t,n){let r;if(!(r=t.length))return[];const s=C.l(t);for(let s=0;r>s;s+=4){this.G(n);const r=e.encrypt(n);t[s]^=r[0],t[s+1]^=r[1],t[s+2]^=r[2],t[s+3]^=r[3]}return C.u(t,s)}},Y=I.R;let Z=F&&G&&typeof q.importKey==L,$=F&&G&&typeof q.deriveBits==L;class ee extends p{constructor({password:e,signed:n,encryptionStrength:r,checkPasswordOnly:o}){super({start(){t.assign(this,{ready:new u((e=>this.J=e)),password:e,signed:n,X:r-1,pending:new i})},async transform(e,t){const n=this,{password:r,X:c,J:f,ready:a}=n;r?(await(async(e,t,n,r)=>{const i=await re(e,t,n,ie(r,0,O[t])),o=ie(r,O[t]);if(i[0]!=o[0]||i[1]!=o[1])throw new s(V)})(n,c,r,ie(e,0,O[c]+2)),e=ie(e,O[c]+2),o?t.error(new s(R)):f()):await a;const l=new i(e.length-W-(e.length-W)%E);t.enqueue(ne(n,e,l,0,W,!0))},async flush(e){const{signed:t,Y:n,Z:r,pending:o,ready:c}=this;if(r&&n){await c;const f=ie(o,0,o.length-W),a=ie(o,o.length-W);let l=new i;if(f.length){const e=ce(J,f);r.update(e);const t=n.update(e);l=oe(J,t)}if(t){const e=ie(oe(J,r.digest()),0,W);for(let t=0;W>t;t++)if(e[t]!=a[t])throw new s(P)}e.enqueue(l)}}})}}class te extends p{constructor({password:e,encryptionStrength:n}){let r;super({start(){t.assign(this,{ready:new u((e=>this.J=e)),password:e,X:n-1,pending:new i})},async transform(e,t){const n=this,{password:r,X:s,J:o,ready:c}=n;let f=new i;r?(f=await(async(e,t,n)=>{const r=B(new i(O[t]));return se(r,await re(e,t,n,r))})(n,s,r),o()):await c;const a=new i(f.length+e.length-e.length%E);a.set(f,0),t.enqueue(ne(n,e,a,f.length,0))},async flush(e){const{Y:t,Z:n,pending:s,ready:o}=this;if(n&&t){await o;let c=new i;if(s.length){const e=t.update(ce(J,s));n.update(e),c=oe(J,e)}r.signature=oe(J,n.digest()).slice(0,W),e.enqueue(se(c,r.signature))}}}),r=this}}function ne(e,t,n,r,s,o){const{Y:c,Z:f,pending:a}=e,l=t.length-s;let u;for(a.length&&(t=se(a,t),n=((e,t)=>{if(t&&t>e.length){const n=e;(e=new i(t)).set(n,0)}return e})(n,l-l%E)),u=0;l-E>=u;u+=E){const e=ce(J,ie(t,u,u+E));o&&f.update(e);const s=c.update(e);o||f.update(s),n.set(oe(J,s),u+r)}return e.pending=ie(t,u),n}async function re(n,r,s,o){n.password=null;const c=(e=>{if(void 0===w){const t=new i((e=unescape(encodeURIComponent(e))).length);for(let n=0;n<t.length;n++)t[n]=e.charCodeAt(n);return t}return(new w).encode(e)})(s),f=await(async(e,t,n,r,s)=>{if(!Z)return I.importKey(t);try{return await q.importKey("raw",t,n,!1,s)}catch(e){return Z=!1,I.importKey(t)}})(0,c,U,0,N),a=await(async(e,t,n)=>{if(!$)return I.B(t,e.salt,K.iterations,n);try{return await q.deriveBits(e,t,n)}catch(r){return $=!1,I.B(t,e.salt,K.iterations,n)}})(t.assign({salt:o},K),f,8*(2*T[r]+2)),l=new i(a),u=ce(J,ie(l,0,T[r])),h=ce(J,ie(l,T[r],2*T[r])),d=ie(l,2*T[r]);return t.assign(n,{keys:{key:u,$:h,passwordVerification:d},Y:new X(new Q(u),e.from(j)),Z:new Y(h)}),d}function se(e,t){let n=e;return e.length+t.length&&(n=new i(e.length+t.length),n.set(e,0),n.set(t,e.length)),n}function ie(e,t,n){return e.subarray(t,n)}function oe(e,t){return e.m(t)}function ce(e,t){return e.g(t)}class fe extends p{constructor({password:e,passwordVerification:n,checkPasswordOnly:r}){super({start(){t.assign(this,{password:e,passwordVerification:n}),we(this,e)},transform(e,t){const n=this;if(n.password){const t=le(n,e.subarray(0,12));if(n.password=null,t[11]!=n.passwordVerification)throw new s(V);e=e.subarray(12)}r?t.error(new s(R)):t.enqueue(le(n,e))}})}}class ae extends p{constructor({password:e,passwordVerification:n}){super({start(){t.assign(this,{password:e,passwordVerification:n}),we(this,e)},transform(e,t){const n=this;let r,s;if(n.password){n.password=null;const t=B(new i(12));t[11]=n.passwordVerification,r=new i(e.length+t.length),r.set(ue(n,t),0),s=12}else r=new i(e.length),s=0;r.set(ue(n,e),s),t.enqueue(r)}})}}function le(e,t){const n=new i(t.length);for(let r=0;r<t.length;r++)n[r]=de(e)^t[r],he(e,n[r]);return n}function ue(e,t){const n=new i(t.length);for(let r=0;r<t.length;r++)n[r]=de(e)^t[r],he(e,t[r]);return n}function we(e,n){const r=[305419896,591751049,878082192];t.assign(e,{keys:r,ee:new S(r[0]),te:new S(r[2])});for(let t=0;t<n.length;t++)he(e,n.charCodeAt(t))}function he(e,t){let[n,s,i]=e.keys;e.ee.append([t]),n=~e.ee.get(),s=ye(r.imul(ye(s+pe(n)),134775813)+1),e.te.append([s>>>24]),i=~e.te.get(),e.keys=[n,s,i]}function de(e){const t=2|e.keys[2];return pe(r.imul(t,1^t)>>>8)}function pe(e){return 255&e}function ye(e){return 4294967295&e}const me="deflate-raw";class be extends p{constructor(e,{chunkSize:t,CompressionStream:n,CompressionStreamNative:r}){super({});const{compressed:s,encrypted:i,useCompressionStream:o,zipCrypto:c,signed:f,level:a}=e,u=this;let w,h,d=ke(super.readable);i&&!c||!f||(w=new z,d=ze(d,w)),s&&(d=Se(d,o,{level:a,chunkSize:t},r,n)),i&&(c?d=ze(d,new ae(e)):(h=new te(e),d=ze(d,h))),ve(u,d,(()=>{let e;i&&!c&&(e=h.signature),i&&!c||!f||(e=new l(w.value.buffer).getUint32(0)),u.signature=e}))}}class ge extends p{constructor(e,{chunkSize:t,DecompressionStream:n,DecompressionStreamNative:r}){super({});const{zipCrypto:i,encrypted:o,signed:c,signature:f,compressed:a,useCompressionStream:u}=e;let w,h,d=ke(super.readable);o&&(i?d=ze(d,new fe(e)):(h=new ee(e),d=ze(d,h))),a&&(d=Se(d,u,{chunkSize:t},r,n)),o&&!i||!c||(w=new z,d=ze(d,w)),ve(this,d,(()=>{if((!o||i)&&c){const e=new l(w.value.buffer);if(f!=e.getUint32(0,!1))throw new s(P)}}))}}function ke(e){return ze(e,new p({transform(e,t){e&&e.length&&t.enqueue(e)}}))}function ve(e,n,r){n=ze(n,new p({flush:r})),t.defineProperty(e,"readable",{get:()=>n})}function Se(e,t,n,r,s){try{e=ze(e,new(t&&r?r:s)(me,n))}catch(r){if(!t)throw r;e=ze(e,new s(me,n))}return e}function ze(e,t){return e.pipeThrough(t)}const Ce="data";class xe extends p{constructor(e,n){super({});const r=this,{codecType:s}=e;let i;s.startsWith("deflate")?i=be:s.startsWith("inflate")&&(i=ge);let o=0;const c=new i(e,n),f=super.readable,a=new p({transform(e,t){e&&e.length&&(o+=e.length,t.enqueue(e))},flush(){const{signature:e}=c;t.assign(r,{signature:e,size:o})}});t.defineProperty(r,"readable",{get:()=>f.pipeThrough(c).pipeThrough(a)})}}const _e=new a,Ae=new a;let Ie=0;async function De(e){try{const{options:t,scripts:r,config:s}=e;r&&r.length&&importScripts.apply(void 0,r),self.initCodec&&self.initCodec(),s.CompressionStreamNative=self.CompressionStream,s.DecompressionStreamNative=self.DecompressionStream,self.Deflate&&(s.CompressionStream=new k(self.Deflate)),self.Inflate&&(s.DecompressionStream=new k(self.Inflate));const i={highWaterMark:1,size:()=>s.chunkSize},o=e.readable||new y({async pull(e){const t=new u((e=>_e.set(Ie,e)));Ve({type:"pull",messageId:Ie}),Ie=(Ie+1)%n.MAX_SAFE_INTEGER;const{value:r,done:s}=await t;e.enqueue(r),s&&e.close()}},i),c=e.writable||new m({async write(e){let t;const r=new u((e=>t=e));Ae.set(Ie,t),Ve({type:Ce,value:e,messageId:Ie}),Ie=(Ie+1)%n.MAX_SAFE_INTEGER,await r}},i),f=new xe(t,s);await o.pipeThrough(f).pipeTo(c,{preventClose:!0,preventAbort:!0});try{await c.getWriter().close()}catch(e){}const{signature:a,size:l}=f;Ve({type:"close",result:{signature:a,size:l}})}catch(e){Pe(e)}}function Ve(e){let{value:t}=e;if(t)if(t.length)try{t=new i(t),e.value=t.buffer,d(e,[e.value])}catch(t){d(e)}else d(e);else d(e)}function Pe(e=new s("Unknown error")){const{message:t,stack:n,code:r,name:i}=e;d({error:{message:t,stack:n,code:r,name:i}})}addEventListener("message",(({data:e})=>{const{type:t,messageId:n,value:r,done:s}=e;try{if("start"==t&&De(e),t==Ce){const e=_e.get(n);_e.delete(n),e({value:new i(r),done:s})}if("ack"==t){const e=Ae.get(n);Ae.delete(n),e()}}catch(e){Pe(e)}}));const Re=-2;function Be(t){return Ee(t.map((([t,n])=>new e(t).fill(n,0,t))))}function Ee(t){return t.reduce(((t,n)=>t.concat(e.isArray(n)?Ee(n):n)),[])}const Me=[0,1,2,3].concat(...Be([[2,4],[2,5],[4,6],[4,7],[8,8],[8,9],[16,10],[16,11],[32,12],[32,13],[64,14],[64,15],[2,0],[1,16],[1,17],[2,18],[2,19],[4,20],[4,21],[8,22],[8,23],[16,24],[16,25],[32,26],[32,27],[64,28],[64,29]]));function Ue(){const e=this;function t(e,t){let n=0;do{n|=1&e,e>>>=1,n<<=1}while(--t>0);return n>>>1}e.ne=n=>{const s=e.re,i=e.ie.se,o=e.ie.oe;let c,f,a,l=-1;for(n.ce=0,n.fe=573,c=0;o>c;c++)0!==s[2*c]?(n.ae[++n.ce]=l=c,n.le[c]=0):s[2*c+1]=0;for(;2>n.ce;)a=n.ae[++n.ce]=2>l?++l:0,s[2*a]=1,n.le[a]=0,n.ue--,i&&(n.we-=i[2*a+1]);for(e.he=l,c=r.floor(n.ce/2);c>=1;c--)n.de(s,c);a=o;do{c=n.ae[1],n.ae[1]=n.ae[n.ce--],n.de(s,1),f=n.ae[1],n.ae[--n.fe]=c,n.ae[--n.fe]=f,s[2*a]=s[2*c]+s[2*f],n.le[a]=r.max(n.le[c],n.le[f])+1,s[2*c+1]=s[2*f+1]=a,n.ae[1]=a++,n.de(s,1)}while(n.ce>=2);n.ae[--n.fe]=n.ae[1],(t=>{const n=e.re,r=e.ie.se,s=e.ie.pe,i=e.ie.ye,o=e.ie.me;let c,f,a,l,u,w,h=0;for(l=0;15>=l;l++)t.be[l]=0;for(n[2*t.ae[t.fe]+1]=0,c=t.fe+1;573>c;c++)f=t.ae[c],l=n[2*n[2*f+1]+1]+1,l>o&&(l=o,h++),n[2*f+1]=l,f>e.he||(t.be[l]++,u=0,i>f||(u=s[f-i]),w=n[2*f],t.ue+=w*(l+u),r&&(t.we+=w*(r[2*f+1]+u)));if(0!==h){do{for(l=o-1;0===t.be[l];)l--;t.be[l]--,t.be[l+1]+=2,t.be[o]--,h-=2}while(h>0);for(l=o;0!==l;l--)for(f=t.be[l];0!==f;)a=t.ae[--c],a>e.he||(n[2*a+1]!=l&&(t.ue+=(l-n[2*a+1])*n[2*a],n[2*a+1]=l),f--)}})(n),((e,n,r)=>{const s=[];let i,o,c,f=0;for(i=1;15>=i;i++)s[i]=f=f+r[i-1]<<1;for(o=0;n>=o;o++)c=e[2*o+1],0!==c&&(e[2*o]=t(s[c]++,c))})(s,e.he,n.be)}}function Ke(e,t,n,r,s){const i=this;i.se=e,i.pe=t,i.ye=n,i.oe=r,i.me=s}Ue.ge=[0,1,2,3,4,5,6,7].concat(...Be([[2,8],[2,9],[2,10],[2,11],[4,12],[4,13],[4,14],[4,15],[8,16],[8,17],[8,18],[8,19],[16,20],[16,21],[16,22],[16,23],[32,24],[32,25],[32,26],[31,27],[1,28]])),Ue.ke=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0],Ue.ve=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576],Ue.Se=e=>256>e?Me[e]:Me[256+(e>>>7)],Ue.ze=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],Ue.Ce=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],Ue.xe=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],Ue._e=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];const Ne=Be([[144,8],[112,9],[24,7],[8,8]]);Ke.Ae=Ee([12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,19,275,147,403,83,339,211,467,51,307,179,435,115,371,243,499,11,267,139,395,75,331,203,459,43,299,171,427,107,363,235,491,27,283,155,411,91,347,219,475,59,315,187,443,123,379,251,507,7,263,135,391,71,327,199,455,39,295,167,423,103,359,231,487,23,279,151,407,87,343,215,471,55,311,183,439,119,375,247,503,15,271,143,399,79,335,207,463,47,303,175,431,111,367,239,495,31,287,159,415,95,351,223,479,63,319,191,447,127,383,255,511,0,64,32,96,16,80,48,112,8,72,40,104,24,88,56,120,4,68,36,100,20,84,52,116,3,131,67,195,35,163,99,227].map(((e,t)=>[e,Ne[t]])));const Oe=Be([[30,5]]);function Te(e,t,n,r,s){const i=this;i.Ie=e,i.De=t,i.Ve=n,i.Pe=r,i.Re=s}Ke.Be=Ee([0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23].map(((e,t)=>[e,Oe[t]]))),Ke.Ee=new Ke(Ke.Ae,Ue.ze,257,286,15),Ke.Me=new Ke(Ke.Be,Ue.Ce,0,30,15),Ke.Ue=new Ke(null,Ue.xe,0,19,7);const We=[new Te(0,0,0,0,0),new Te(4,4,8,4,1),new Te(4,5,16,8,1),new Te(4,6,32,32,1),new Te(4,4,16,16,2),new Te(8,16,32,32,2),new Te(8,16,128,128,2),new Te(8,32,128,256,2),new Te(32,128,258,1024,2),new Te(32,258,258,4096,2)],je=["need dictionary","stream end","","","stream error","data error","","buffer error","",""],He=113,Le=666,Fe=262;function qe(e,t,n,r){const s=e[2*t],i=e[2*n];return i>s||s==i&&r[t]<=r[n]}function Ge(){const e=this;let t,n,s,c,f,a,l,u,w,h,d,p,y,m,b,g,k,v,S,z,C,x,_,A,I,D,V,P,R,B,E,M,U;const K=new Ue,N=new Ue,O=new Ue;let T,W,j,H,L,F;function q(){let t;for(t=0;286>t;t++)E[2*t]=0;for(t=0;30>t;t++)M[2*t]=0;for(t=0;19>t;t++)U[2*t]=0;E[512]=1,e.ue=e.we=0,W=j=0}function G(e,t){let n,r=-1,s=e[1],i=0,o=7,c=4;0===s&&(o=138,c=3),e[2*(t+1)+1]=65535;for(let f=0;t>=f;f++)n=s,s=e[2*(f+1)+1],++i<o&&n==s||(c>i?U[2*n]+=i:0!==n?(n!=r&&U[2*n]++,U[32]++):i>10?U[36]++:U[34]++,i=0,r=n,0===s?(o=138,c=3):n==s?(o=6,c=3):(o=7,c=4))}function J(t){e.Ke[e.pending++]=t}function Q(e){J(255&e),J(e>>>8&255)}function X(e,t){let n;const r=t;F>16-r?(n=e,L|=n<<F&65535,Q(L),L=n>>>16-F,F+=r-16):(L|=e<<F&65535,F+=r)}function Y(e,t){const n=2*e;X(65535&t[n],65535&t[n+1])}function Z(e,t){let n,r,s=-1,i=e[1],o=0,c=7,f=4;for(0===i&&(c=138,f=3),n=0;t>=n;n++)if(r=i,i=e[2*(n+1)+1],++o>=c||r!=i){if(f>o)do{Y(r,U)}while(0!=--o);else 0!==r?(r!=s&&(Y(r,U),o--),Y(16,U),X(o-3,2)):o>10?(Y(18,U),X(o-11,7)):(Y(17,U),X(o-3,3));o=0,s=r,0===i?(c=138,f=3):r==i?(c=6,f=3):(c=7,f=4)}}function $(){16==F?(Q(L),L=0,F=0):8>F||(J(255&L),L>>>=8,F-=8)}function ee(t,n){let s,i,o;if(e.Ne[W]=t,e.Oe[W]=255&n,W++,0===t?E[2*n]++:(j++,t--,E[2*(Ue.ge[n]+256+1)]++,M[2*Ue.Se(t)]++),0==(8191&W)&&V>2){for(s=8*W,i=C-k,o=0;30>o;o++)s+=M[2*o]*(5+Ue.Ce[o]);if(s>>>=3,j<r.floor(W/2)&&s<r.floor(i/2))return!0}return W==T-1}function te(t,n){let r,s,i,o,c=0;if(0!==W)do{r=e.Ne[c],s=e.Oe[c],c++,0===r?Y(s,t):(i=Ue.ge[s],Y(i+256+1,t),o=Ue.ze[i],0!==o&&(s-=Ue.ke[i],X(s,o)),r--,i=Ue.Se(r),Y(i,n),o=Ue.Ce[i],0!==o&&(r-=Ue.ve[i],X(r,o)))}while(W>c);Y(256,t),H=t[513]}function ne(){F>8?Q(L):F>0&&J(255&L),L=0,F=0}function re(t,n,r){X(0+(r?1:0),3),((t,n)=>{ne(),H=8,Q(n),Q(~n),e.Ke.set(u.subarray(t,t+n),e.pending),e.pending+=n})(t,n)}function se(n){((t,n,r)=>{let s,i,o=0;V>0?(K.ne(e),N.ne(e),o=(()=>{let t;for(G(E,K.he),G(M,N.he),O.ne(e),t=18;t>=3&&0===U[2*Ue._e[t]+1];t--);return e.ue+=14+3*(t+1),t})(),s=e.ue+3+7>>>3,i=e.we+3+7>>>3,i>s||(s=i)):s=i=n+5,n+4>s||-1==t?i==s?(X(2+(r?1:0),3),te(Ke.Ae,Ke.Be)):(X(4+(r?1:0),3),((e,t,n)=>{let r;for(X(e-257,5),X(t-1,5),X(n-4,4),r=0;n>r;r++)X(U[2*Ue._e[r]+1],3);Z(E,e-1),Z(M,t-1)})(K.he+1,N.he+1,o+1),te(E,M)):re(t,n,r),q(),r&&ne()})(0>k?-1:k,C-k,n),k=C,t.Te()}function ie(){let e,n,r,s;do{if(s=w-_-C,0===s&&0===C&&0===_)s=f;else if(-1==s)s--;else if(C>=f+f-Fe){u.set(u.subarray(f,f+f),0),x-=f,C-=f,k-=f,e=y,r=e;do{n=65535&d[--r],d[r]=f>n?0:n-f}while(0!=--e);e=f,r=e;do{n=65535&h[--r],h[r]=f>n?0:n-f}while(0!=--e);s+=f}if(0===t.We)return;e=t.je(u,C+_,s),_+=e,3>_||(p=255&u[C],p=(p<<g^255&u[C+1])&b)}while(Fe>_&&0!==t.We)}function oe(e){let t,n,r=I,s=C,i=A;const o=C>f-Fe?C-(f-Fe):0;let c=B;const a=l,w=C+258;let d=u[s+i-1],p=u[s+i];R>A||(r>>=2),c>_&&(c=_);do{if(t=e,u[t+i]==p&&u[t+i-1]==d&&u[t]==u[s]&&u[++t]==u[s+1]){s+=2,t++;do{}while(u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&w>s);if(n=258-(w-s),s=w-258,n>i){if(x=e,i=n,n>=c)break;d=u[s+i-1],p=u[s+i]}}}while((e=65535&h[e&a])>o&&0!=--r);return i>_?_:i}e.le=[],e.be=[],e.ae=[],E=[],M=[],U=[],e.de=(t,n)=>{const r=e.ae,s=r[n];let i=n<<1;for(;i<=e.ce&&(i<e.ce&&qe(t,r[i+1],r[i],e.le)&&i++,!qe(t,s,r[i],e.le));)r[n]=r[i],n=i,i<<=1;r[n]=s},e.He=(t,S,x,W,j,G)=>(W||(W=8),j||(j=8),G||(G=0),t.Le=null,-1==S&&(S=6),1>j||j>9||8!=W||9>x||x>15||0>S||S>9||0>G||G>2?Re:(t.Fe=e,a=x,f=1<<a,l=f-1,m=j+7,y=1<<m,b=y-1,g=r.floor((m+3-1)/3),u=new i(2*f),h=[],d=[],T=1<<j+6,e.Ke=new i(4*T),s=4*T,e.Ne=new o(T),e.Oe=new i(T),V=S,P=G,(t=>(t.qe=t.Ge=0,t.Le=null,e.pending=0,e.Je=0,n=He,c=0,K.re=E,K.ie=Ke.Ee,N.re=M,N.ie=Ke.Me,O.re=U,O.ie=Ke.Ue,L=0,F=0,H=8,q(),(()=>{w=2*f,d[y-1]=0;for(let e=0;y-1>e;e++)d[e]=0;D=We[V].De,R=We[V].Ie,B=We[V].Ve,I=We[V].Pe,C=0,k=0,_=0,v=A=2,z=0,p=0})(),0))(t))),e.Qe=()=>42!=n&&n!=He&&n!=Le?Re:(e.Oe=null,e.Ne=null,e.Ke=null,d=null,h=null,u=null,e.Fe=null,n==He?-3:0),e.Xe=(e,t,n)=>{let r=0;return-1==t&&(t=6),0>t||t>9||0>n||n>2?Re:(We[V].Re!=We[t].Re&&0!==e.qe&&(r=e.Ye(1)),V!=t&&(V=t,D=We[V].De,R=We[V].Ie,B=We[V].Ve,I=We[V].Pe),P=n,r)},e.Ze=(e,t,r)=>{let s,i=r,o=0;if(!t||42!=n)return Re;if(3>i)return 0;for(i>f-Fe&&(i=f-Fe,o=r-i),u.set(t.subarray(o,o+i),0),C=i,k=i,p=255&u[0],p=(p<<g^255&u[1])&b,s=0;i-3>=s;s++)p=(p<<g^255&u[s+2])&b,h[s&l]=d[p],d[p]=s;return 0},e.Ye=(r,i)=>{let o,w,m,I,R;if(i>4||0>i)return Re;if(!r.$e||!r.et&&0!==r.We||n==Le&&4!=i)return r.Le=je[4],Re;if(0===r.tt)return r.Le=je[7],-5;var B;if(t=r,I=c,c=i,42==n&&(w=8+(a-8<<4)<<8,m=(V-1&255)>>1,m>3&&(m=3),w|=m<<6,0!==C&&(w|=32),w+=31-w%31,n=He,J((B=w)>>8&255),J(255&B)),0!==e.pending){if(t.Te(),0===t.tt)return c=-1,0}else if(0===t.We&&I>=i&&4!=i)return t.Le=je[7],-5;if(n==Le&&0!==t.We)return r.Le=je[7],-5;if(0!==t.We||0!==_||0!=i&&n!=Le){switch(R=-1,We[V].Re){case 0:R=(e=>{let n,r=65535;for(r>s-5&&(r=s-5);;){if(1>=_){if(ie(),0===_&&0==e)return 0;if(0===_)break}if(C+=_,_=0,n=k+r,(0===C||C>=n)&&(_=C-n,C=n,se(!1),0===t.tt))return 0;if(C-k>=f-Fe&&(se(!1),0===t.tt))return 0}return se(4==e),0===t.tt?4==e?2:0:4==e?3:1})(i);break;case 1:R=(e=>{let n,r=0;for(;;){if(Fe>_){if(ie(),Fe>_&&0==e)return 0;if(0===_)break}if(3>_||(p=(p<<g^255&u[C+2])&b,r=65535&d[p],h[C&l]=d[p],d[p]=C),0===r||(C-r&65535)>f-Fe||2!=P&&(v=oe(r)),3>v)n=ee(0,255&u[C]),_--,C++;else if(n=ee(C-x,v-3),_-=v,v>D||3>_)C+=v,v=0,p=255&u[C],p=(p<<g^255&u[C+1])&b;else{v--;do{C++,p=(p<<g^255&u[C+2])&b,r=65535&d[p],h[C&l]=d[p],d[p]=C}while(0!=--v);C++}if(n&&(se(!1),0===t.tt))return 0}return se(4==e),0===t.tt?4==e?2:0:4==e?3:1})(i);break;case 2:R=(e=>{let n,r,s=0;for(;;){if(Fe>_){if(ie(),Fe>_&&0==e)return 0;if(0===_)break}if(3>_||(p=(p<<g^255&u[C+2])&b,s=65535&d[p],h[C&l]=d[p],d[p]=C),A=v,S=x,v=2,0!==s&&D>A&&f-Fe>=(C-s&65535)&&(2!=P&&(v=oe(s)),5>=v&&(1==P||3==v&&C-x>4096)&&(v=2)),3>A||v>A)if(0!==z){if(n=ee(0,255&u[C-1]),n&&se(!1),C++,_--,0===t.tt)return 0}else z=1,C++,_--;else{r=C+_-3,n=ee(C-1-S,A-3),_-=A-1,A-=2;do{++C>r||(p=(p<<g^255&u[C+2])&b,s=65535&d[p],h[C&l]=d[p],d[p]=C)}while(0!=--A);if(z=0,v=2,C++,n&&(se(!1),0===t.tt))return 0}}return 0!==z&&(n=ee(0,255&u[C-1]),z=0),se(4==e),0===t.tt?4==e?2:0:4==e?3:1})(i)}if(2!=R&&3!=R||(n=Le),0==R||2==R)return 0===t.tt&&(c=-1),0;if(1==R){if(1==i)X(2,3),Y(256,Ke.Ae),$(),9>1+H+10-F&&(X(2,3),Y(256,Ke.Ae),$()),H=7;else if(re(0,0,!1),3==i)for(o=0;y>o;o++)d[o]=0;if(t.Te(),0===t.tt)return c=-1,0}}return 4!=i?0:1}}function Je(){const e=this;e.nt=0,e.rt=0,e.We=0,e.qe=0,e.tt=0,e.Ge=0}function Qe(e){const t=new Je,n=(o=e&&e.chunkSize?e.chunkSize:65536)+5*(r.floor(o/16383)+1);var o;const c=new i(n);let f=e?e.level:-1;void 0===f&&(f=-1),t.He(f),t.$e=c,this.append=(e,r)=>{let o,f,a=0,l=0,u=0;const w=[];if(e.length){t.nt=0,t.et=e,t.We=e.length;do{if(t.rt=0,t.tt=n,o=t.Ye(0),0!=o)throw new s("deflating: "+t.Le);t.rt&&(t.rt==n?w.push(new i(c)):w.push(c.subarray(0,t.rt))),u+=t.rt,r&&t.nt>0&&t.nt!=a&&(r(t.nt),a=t.nt)}while(t.We>0||0===t.tt);return w.length>1?(f=new i(u),w.forEach((e=>{f.set(e,l),l+=e.length}))):f=w[0]?new i(w[0]):new i,f}},this.flush=()=>{let e,r,o=0,f=0;const a=[];do{if(t.rt=0,t.tt=n,e=t.Ye(4),1!=e&&0!=e)throw new s("deflating: "+t.Le);n-t.tt>0&&a.push(c.slice(0,t.rt)),f+=t.rt}while(t.We>0||0===t.tt);return t.Qe(),r=new i(f),a.forEach((e=>{r.set(e,o),o+=e.length})),r}}Je.prototype={He(e,t){const n=this;return n.Fe=new Ge,t||(t=15),n.Fe.He(n,e,t)},Ye(e){const t=this;return t.Fe?t.Fe.Ye(t,e):Re},Qe(){const e=this;if(!e.Fe)return Re;const t=e.Fe.Qe();return e.Fe=null,t},Xe(e,t){const n=this;return n.Fe?n.Fe.Xe(n,e,t):Re},Ze(e,t){const n=this;return n.Fe?n.Fe.Ze(n,e,t):Re},je(e,t,n){const r=this;let s=r.We;return s>n&&(s=n),0===s?0:(r.We-=s,e.set(r.et.subarray(r.nt,r.nt+s),t),r.nt+=s,r.qe+=s,s)},Te(){const e=this;let t=e.Fe.pending;t>e.tt&&(t=e.tt),0!==t&&(e.$e.set(e.Fe.Ke.subarray(e.Fe.Je,e.Fe.Je+t),e.rt),e.rt+=t,e.Fe.Je+=t,e.Ge+=t,e.tt-=t,e.Fe.pending-=t,0===e.Fe.pending&&(e.Fe.Je=0))}};const Xe=-2,Ye=-3,Ze=-5,$e=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],et=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],tt=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],nt=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],rt=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,112,112],st=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],it=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];function ot(){let e,t,n,r,s,i;function o(e,t,o,c,f,a,l,u,w,h,d){let p,y,m,b,g,k,v,S,z,C,x,_,A,I,D;C=0,g=o;do{n[e[t+C]]++,C++,g--}while(0!==g);if(n[0]==o)return l[0]=-1,u[0]=0,0;for(S=u[0],k=1;15>=k&&0===n[k];k++);for(v=k,k>S&&(S=k),g=15;0!==g&&0===n[g];g--);for(m=g,S>g&&(S=g),u[0]=S,I=1<<k;g>k;k++,I<<=1)if(0>(I-=n[k]))return Ye;if(0>(I-=n[g]))return Ye;for(n[g]+=I,i[1]=k=0,C=1,A=2;0!=--g;)i[A]=k+=n[C],A++,C++;g=0,C=0;do{0!==(k=e[t+C])&&(d[i[k]++]=g),C++}while(++g<o);for(o=i[m],i[0]=g=0,C=0,b=-1,_=-S,s[0]=0,x=0,D=0;m>=v;v++)for(p=n[v];0!=p--;){for(;v>_+S;){if(b++,_+=S,D=m-_,D=D>S?S:D,(y=1<<(k=v-_))>p+1&&(y-=p+1,A=v,D>k))for(;++k<D&&(y<<=1)>n[++A];)y-=n[A];if(D=1<<k,h[0]+D>1440)return Ye;s[b]=x=h[0],h[0]+=D,0!==b?(i[b]=g,r[0]=k,r[1]=S,k=g>>>_-S,r[2]=x-s[b-1]-k,w.set(r,3*(s[b-1]+k))):l[0]=x}for(r[1]=v-_,o>C?d[C]<c?(r[0]=256>d[C]?0:96,r[2]=d[C++]):(r[0]=a[d[C]-c]+16+64,r[2]=f[d[C++]-c]):r[0]=192,y=1<<v-_,k=g>>>_;D>k;k+=y)w.set(r,3*(x+k));for(k=1<<v-1;0!=(g&k);k>>>=1)g^=k;for(g^=k,z=(1<<_)-1;(g&z)!=i[b];)b--,_-=S,z=(1<<_)-1}return 0!==I&&1!=m?Ze:0}function c(o){let c;for(e||(e=[],t=[],n=new f(16),r=[],s=new f(15),i=new f(16)),t.length<o&&(t=[]),c=0;o>c;c++)t[c]=0;for(c=0;16>c;c++)n[c]=0;for(c=0;3>c;c++)r[c]=0;s.set(n.subarray(0,15),0),i.set(n.subarray(0,16),0)}this.st=(n,r,s,i,f)=>{let a;return c(19),e[0]=0,a=o(n,0,19,19,null,null,s,r,i,e,t),a==Ye?f.Le="oversubscribed dynamic bit lengths tree":a!=Ze&&0!==r[0]||(f.Le="incomplete dynamic bit lengths tree",a=Ye),a},this.it=(n,r,s,i,f,a,l,u,w)=>{let h;return c(288),e[0]=0,h=o(s,0,n,257,nt,rt,a,i,u,e,t),0!=h||0===i[0]?(h==Ye?w.Le="oversubscribed literal/length tree":-4!=h&&(w.Le="incomplete literal/length tree",h=Ye),h):(c(288),h=o(s,n,r,0,st,it,l,f,u,e,t),0!=h||0===f[0]&&n>257?(h==Ye?w.Le="oversubscribed distance tree":h==Ze?(w.Le="incomplete distance tree",h=Ye):-4!=h&&(w.Le="empty distance tree with lengths",h=Ye),h):0)}}function ct(){const e=this;let t,n,r,s,i=0,o=0,c=0,f=0,a=0,l=0,u=0,w=0,h=0,d=0;function p(e,t,n,r,s,i,o,c){let f,a,l,u,w,h,d,p,y,m,b,g,k,v,S,z;d=c.nt,p=c.We,w=o.ot,h=o.ct,y=o.write,m=y<o.read?o.read-y-1:o.end-y,b=$e[e],g=$e[t];do{for(;20>h;)p--,w|=(255&c.ft(d++))<<h,h+=8;if(f=w&b,a=n,l=r,z=3*(l+f),0!==(u=a[z]))for(;;){if(w>>=a[z+1],h-=a[z+1],0!=(16&u)){for(u&=15,k=a[z+2]+(w&$e[u]),w>>=u,h-=u;15>h;)p--,w|=(255&c.ft(d++))<<h,h+=8;for(f=w&g,a=s,l=i,z=3*(l+f),u=a[z];;){if(w>>=a[z+1],h-=a[z+1],0!=(16&u)){for(u&=15;u>h;)p--,w|=(255&c.ft(d++))<<h,h+=8;if(v=a[z+2]+(w&$e[u]),w>>=u,h-=u,m-=k,v>y){S=y-v;do{S+=o.end}while(0>S);if(u=o.end-S,k>u){if(k-=u,y-S>0&&u>y-S)do{o.lt[y++]=o.lt[S++]}while(0!=--u);else o.lt.set(o.lt.subarray(S,S+u),y),y+=u,S+=u,u=0;S=0}}else S=y-v,y-S>0&&2>y-S?(o.lt[y++]=o.lt[S++],o.lt[y++]=o.lt[S++],k-=2):(o.lt.set(o.lt.subarray(S,S+2),y),y+=2,S+=2,k-=2);if(y-S>0&&k>y-S)do{o.lt[y++]=o.lt[S++]}while(0!=--k);else o.lt.set(o.lt.subarray(S,S+k),y),y+=k,S+=k,k=0;break}if(0!=(64&u))return c.Le="invalid distance code",k=c.We-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ot=w,o.ct=h,c.We=p,c.qe+=d-c.nt,c.nt=d,o.write=y,Ye;f+=a[z+2],f+=w&$e[u],z=3*(l+f),u=a[z]}break}if(0!=(64&u))return 0!=(32&u)?(k=c.We-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ot=w,o.ct=h,c.We=p,c.qe+=d-c.nt,c.nt=d,o.write=y,1):(c.Le="invalid literal/length code",k=c.We-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ot=w,o.ct=h,c.We=p,c.qe+=d-c.nt,c.nt=d,o.write=y,Ye);if(f+=a[z+2],f+=w&$e[u],z=3*(l+f),0===(u=a[z])){w>>=a[z+1],h-=a[z+1],o.lt[y++]=a[z+2],m--;break}}else w>>=a[z+1],h-=a[z+1],o.lt[y++]=a[z+2],m--}while(m>=258&&p>=10);return k=c.We-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ot=w,o.ct=h,c.We=p,c.qe+=d-c.nt,c.nt=d,o.write=y,0}e.init=(e,i,o,c,f,a)=>{t=0,u=e,w=i,r=o,h=c,s=f,d=a,n=null},e.ut=(e,y,m)=>{let b,g,k,v,S,z,C,x=0,_=0,A=0;for(A=y.nt,v=y.We,x=e.ot,_=e.ct,S=e.write,z=S<e.read?e.read-S-1:e.end-S;;)switch(t){case 0:if(z>=258&&v>=10&&(e.ot=x,e.ct=_,y.We=v,y.qe+=A-y.nt,y.nt=A,e.write=S,m=p(u,w,r,h,s,d,e,y),A=y.nt,v=y.We,x=e.ot,_=e.ct,S=e.write,z=S<e.read?e.read-S-1:e.end-S,0!=m)){t=1==m?7:9;break}c=u,n=r,o=h,t=1;case 1:for(b=c;b>_;){if(0===v)return e.ot=x,e.ct=_,y.We=v,y.qe+=A-y.nt,y.nt=A,e.write=S,e.wt(y,m);m=0,v--,x|=(255&y.ft(A++))<<_,_+=8}if(g=3*(o+(x&$e[b])),x>>>=n[g+1],_-=n[g+1],k=n[g],0===k){f=n[g+2],t=6;break}if(0!=(16&k)){a=15&k,i=n[g+2],t=2;break}if(0==(64&k)){c=k,o=g/3+n[g+2];break}if(0!=(32&k)){t=7;break}return t=9,y.Le="invalid literal/length code",m=Ye,e.ot=x,e.ct=_,y.We=v,y.qe+=A-y.nt,y.nt=A,e.write=S,e.wt(y,m);case 2:for(b=a;b>_;){if(0===v)return e.ot=x,e.ct=_,y.We=v,y.qe+=A-y.nt,y.nt=A,e.write=S,e.wt(y,m);m=0,v--,x|=(255&y.ft(A++))<<_,_+=8}i+=x&$e[b],x>>=b,_-=b,c=w,n=s,o=d,t=3;case 3:for(b=c;b>_;){if(0===v)return e.ot=x,e.ct=_,y.We=v,y.qe+=A-y.nt,y.nt=A,e.write=S,e.wt(y,m);m=0,v--,x|=(255&y.ft(A++))<<_,_+=8}if(g=3*(o+(x&$e[b])),x>>=n[g+1],_-=n[g+1],k=n[g],0!=(16&k)){a=15&k,l=n[g+2],t=4;break}if(0==(64&k)){c=k,o=g/3+n[g+2];break}return t=9,y.Le="invalid distance code",m=Ye,e.ot=x,e.ct=_,y.We=v,y.qe+=A-y.nt,y.nt=A,e.write=S,e.wt(y,m);case 4:for(b=a;b>_;){if(0===v)return e.ot=x,e.ct=_,y.We=v,y.qe+=A-y.nt,y.nt=A,e.write=S,e.wt(y,m);m=0,v--,x|=(255&y.ft(A++))<<_,_+=8}l+=x&$e[b],x>>=b,_-=b,t=5;case 5:for(C=S-l;0>C;)C+=e.end;for(;0!==i;){if(0===z&&(S==e.end&&0!==e.read&&(S=0,z=S<e.read?e.read-S-1:e.end-S),0===z&&(e.write=S,m=e.wt(y,m),S=e.write,z=S<e.read?e.read-S-1:e.end-S,S==e.end&&0!==e.read&&(S=0,z=S<e.read?e.read-S-1:e.end-S),0===z)))return e.ot=x,e.ct=_,y.We=v,y.qe+=A-y.nt,y.nt=A,e.write=S,e.wt(y,m);e.lt[S++]=e.lt[C++],z--,C==e.end&&(C=0),i--}t=0;break;case 6:if(0===z&&(S==e.end&&0!==e.read&&(S=0,z=S<e.read?e.read-S-1:e.end-S),0===z&&(e.write=S,m=e.wt(y,m),S=e.write,z=S<e.read?e.read-S-1:e.end-S,S==e.end&&0!==e.read&&(S=0,z=S<e.read?e.read-S-1:e.end-S),0===z)))return e.ot=x,e.ct=_,y.We=v,y.qe+=A-y.nt,y.nt=A,e.write=S,e.wt(y,m);m=0,e.lt[S++]=f,z--,t=0;break;case 7:if(_>7&&(_-=8,v++,A--),e.write=S,m=e.wt(y,m),S=e.write,z=S<e.read?e.read-S-1:e.end-S,e.read!=e.write)return e.ot=x,e.ct=_,y.We=v,y.qe+=A-y.nt,y.nt=A,e.write=S,e.wt(y,m);t=8;case 8:return m=1,e.ot=x,e.ct=_,y.We=v,y.qe+=A-y.nt,y.nt=A,e.write=S,e.wt(y,m);case 9:return m=Ye,e.ot=x,e.ct=_,y.We=v,y.qe+=A-y.nt,y.nt=A,e.write=S,e.wt(y,m);default:return m=Xe,e.ot=x,e.ct=_,y.We=v,y.qe+=A-y.nt,y.nt=A,e.write=S,e.wt(y,m)}},e.ht=()=>{}}ot.dt=(e,t,n,r)=>(e[0]=9,t[0]=5,n[0]=et,r[0]=tt,0);const ft=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function at(e,t){const n=this;let r,s=0,o=0,c=0,a=0;const l=[0],u=[0],w=new ct;let h=0,d=new f(4320);const p=new ot;n.ct=0,n.ot=0,n.lt=new i(t),n.end=t,n.read=0,n.write=0,n.reset=(e,t)=>{t&&(t[0]=0),6==s&&w.ht(e),s=0,n.ct=0,n.ot=0,n.read=n.write=0},n.reset(e,null),n.wt=(e,t)=>{let r,s,i;return s=e.rt,i=n.read,r=(i>n.write?n.end:n.write)-i,r>e.tt&&(r=e.tt),0!==r&&t==Ze&&(t=0),e.tt-=r,e.Ge+=r,e.$e.set(n.lt.subarray(i,i+r),s),s+=r,i+=r,i==n.end&&(i=0,n.write==n.end&&(n.write=0),r=n.write-i,r>e.tt&&(r=e.tt),0!==r&&t==Ze&&(t=0),e.tt-=r,e.Ge+=r,e.$e.set(n.lt.subarray(i,i+r),s),s+=r,i+=r),e.rt=s,n.read=i,t},n.ut=(e,t)=>{let i,f,y,m,b,g,k,v;for(m=e.nt,b=e.We,f=n.ot,y=n.ct,g=n.write,k=g<n.read?n.read-g-1:n.end-g;;){let S,z,C,x,_,A,I,D;switch(s){case 0:for(;3>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<<y,y+=8}switch(i=7&f,h=1&i,i>>>1){case 0:f>>>=3,y-=3,i=7&y,f>>>=i,y-=i,s=1;break;case 1:S=[],z=[],C=[[]],x=[[]],ot.dt(S,z,C,x),w.init(S[0],z[0],C[0],0,x[0],0),f>>>=3,y-=3,s=6;break;case 2:f>>>=3,y-=3,s=3;break;case 3:return f>>>=3,y-=3,s=9,e.Le="invalid block type",t=Ye,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t)}break;case 1:for(;32>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<<y,y+=8}if((~f>>>16&65535)!=(65535&f))return s=9,e.Le="invalid stored block lengths",t=Ye,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);o=65535&f,f=y=0,s=0!==o?2:0!==h?7:0;break;case 2:if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);if(0===k&&(g==n.end&&0!==n.read&&(g=0,k=g<n.read?n.read-g-1:n.end-g),0===k&&(n.write=g,t=n.wt(e,t),g=n.write,k=g<n.read?n.read-g-1:n.end-g,g==n.end&&0!==n.read&&(g=0,k=g<n.read?n.read-g-1:n.end-g),0===k)))return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);if(t=0,i=o,i>b&&(i=b),i>k&&(i=k),n.lt.set(e.je(m,i),g),m+=i,b-=i,g+=i,k-=i,0!=(o-=i))break;s=0!==h?7:0;break;case 3:for(;14>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<<y,y+=8}if(c=i=16383&f,(31&i)>29||(i>>5&31)>29)return s=9,e.Le="too many length or distance symbols",t=Ye,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);if(i=258+(31&i)+(i>>5&31),!r||r.length<i)r=[];else for(v=0;i>v;v++)r[v]=0;f>>>=14,y-=14,a=0,s=4;case 4:for(;4+(c>>>10)>a;){for(;3>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<<y,y+=8}r[ft[a++]]=7&f,f>>>=3,y-=3}for(;19>a;)r[ft[a++]]=0;if(l[0]=7,i=p.st(r,l,u,d,e),0!=i)return(t=i)==Ye&&(r=null,s=9),n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);a=0,s=5;case 5:for(;i=c,258+(31&i)+(i>>5&31)>a;){let o,w;for(i=l[0];i>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<<y,y+=8}if(i=d[3*(u[0]+(f&$e[i]))+1],w=d[3*(u[0]+(f&$e[i]))+2],16>w)f>>>=i,y-=i,r[a++]=w;else{for(v=18==w?7:w-14,o=18==w?11:3;i+v>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<<y,y+=8}if(f>>>=i,y-=i,o+=f&$e[v],f>>>=v,y-=v,v=a,i=c,v+o>258+(31&i)+(i>>5&31)||16==w&&1>v)return r=null,s=9,e.Le="invalid bit length repeat",t=Ye,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);w=16==w?r[v-1]:0;do{r[v++]=w}while(0!=--o);a=v}}if(u[0]=-1,_=[],A=[],I=[],D=[],_[0]=9,A[0]=6,i=c,i=p.it(257+(31&i),1+(i>>5&31),r,_,A,I,D,d,e),0!=i)return i==Ye&&(r=null,s=9),t=i,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);w.init(_[0],A[0],d,I[0],d,D[0]),s=6;case 6:if(n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,1!=(t=w.ut(n,e,t)))return n.wt(e,t);if(t=0,w.ht(e),m=e.nt,b=e.We,f=n.ot,y=n.ct,g=n.write,k=g<n.read?n.read-g-1:n.end-g,0===h){s=0;break}s=7;case 7:if(n.write=g,t=n.wt(e,t),g=n.write,k=g<n.read?n.read-g-1:n.end-g,n.read!=n.write)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);s=8;case 8:return t=1,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);case 9:return t=Ye,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);default:return t=Xe,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t)}}},n.ht=e=>{n.reset(e,null),n.lt=null,d=null},n.yt=(e,t,r)=>{n.lt.set(e.subarray(t,t+r),0),n.read=n.write=r},n.bt=()=>1==s?1:0}const lt=13,ut=[0,0,255,255];function wt(){const e=this;function t(e){return e&&e.gt?(e.qe=e.Ge=0,e.Le=null,e.gt.mode=7,e.gt.kt.reset(e,null),0):Xe}e.mode=0,e.method=0,e.vt=[0],e.St=0,e.marker=0,e.zt=0,e.Ct=t=>(e.kt&&e.kt.ht(t),e.kt=null,0),e.xt=(n,r)=>(n.Le=null,e.kt=null,8>r||r>15?(e.Ct(n),Xe):(e.zt=r,n.gt.kt=new at(n,1<<r),t(n),0)),e._t=(e,t)=>{let n,r;if(!e||!e.gt||!e.et)return Xe;const s=e.gt;for(t=4==t?Ze:0,n=Ze;;)switch(s.mode){case 0:if(0===e.We)return n;if(n=t,e.We--,e.qe++,8!=(15&(s.method=e.ft(e.nt++)))){s.mode=lt,e.Le="unknown compression method",s.marker=5;break}if(8+(s.method>>4)>s.zt){s.mode=lt,e.Le="invalid win size",s.marker=5;break}s.mode=1;case 1:if(0===e.We)return n;if(n=t,e.We--,e.qe++,r=255&e.ft(e.nt++),((s.method<<8)+r)%31!=0){s.mode=lt,e.Le="incorrect header check",s.marker=5;break}if(0==(32&r)){s.mode=7;break}s.mode=2;case 2:if(0===e.We)return n;n=t,e.We--,e.qe++,s.St=(255&e.ft(e.nt++))<<24&4278190080,s.mode=3;case 3:if(0===e.We)return n;n=t,e.We--,e.qe++,s.St+=(255&e.ft(e.nt++))<<16&16711680,s.mode=4;case 4:if(0===e.We)return n;n=t,e.We--,e.qe++,s.St+=(255&e.ft(e.nt++))<<8&65280,s.mode=5;case 5:return 0===e.We?n:(n=t,e.We--,e.qe++,s.St+=255&e.ft(e.nt++),s.mode=6,2);case 6:return s.mode=lt,e.Le="need dictionary",s.marker=0,Xe;case 7:if(n=s.kt.ut(e,n),n==Ye){s.mode=lt,s.marker=0;break}if(0==n&&(n=t),1!=n)return n;n=t,s.kt.reset(e,s.vt),s.mode=12;case 12:return e.We=0,1;case lt:return Ye;default:return Xe}},e.At=(e,t,n)=>{let r=0,s=n;if(!e||!e.gt||6!=e.gt.mode)return Xe;const i=e.gt;return s<1<<i.zt||(s=(1<<i.zt)-1,r=n-s),i.kt.yt(t,r,s),i.mode=7,0},e.It=e=>{let n,r,s,i,o;if(!e||!e.gt)return Xe;const c=e.gt;if(c.mode!=lt&&(c.mode=lt,c.marker=0),0===(n=e.We))return Ze;for(r=e.nt,s=c.marker;0!==n&&4>s;)e.ft(r)==ut[s]?s++:s=0!==e.ft(r)?0:4-s,r++,n--;return e.qe+=r-e.nt,e.nt=r,e.We=n,c.marker=s,4!=s?Ye:(i=e.qe,o=e.Ge,t(e),e.qe=i,e.Ge=o,c.mode=7,0)},e.Dt=e=>e&&e.gt&&e.gt.kt?e.gt.kt.bt():Xe}function ht(){}function dt(e){const t=new ht,n=e&&e.chunkSize?r.floor(2*e.chunkSize):131072,o=new i(n);let c=!1;t.xt(),t.$e=o,this.append=(e,r)=>{const f=[];let a,l,u=0,w=0,h=0;if(0!==e.length){t.nt=0,t.et=e,t.We=e.length;do{if(t.rt=0,t.tt=n,0!==t.We||c||(t.nt=0,c=!0),a=t._t(0),c&&a===Ze){if(0!==t.We)throw new s("inflating: bad input")}else if(0!==a&&1!==a)throw new s("inflating: "+t.Le);if((c||1===a)&&t.We===e.length)throw new s("inflating: bad input");t.rt&&(t.rt===n?f.push(new i(o)):f.push(o.subarray(0,t.rt))),h+=t.rt,r&&t.nt>0&&t.nt!=u&&(r(t.nt),u=t.nt)}while(t.We>0||0===t.tt);return f.length>1?(l=new i(h),f.forEach((e=>{l.set(e,w),w+=e.length}))):l=f[0]?new i(f[0]):new i,l}},this.flush=()=>{t.Ct()}}ht.prototype={xt(e){const t=this;return t.gt=new wt,e||(e=15),t.gt.xt(t,e)},_t(e){const t=this;return t.gt?t.gt._t(t,e):Xe},Ct(){const e=this;if(!e.gt)return Xe;const t=e.gt.Ct(e);return e.gt=null,t},It(){const e=this;return e.gt?e.gt.It(e):Xe},At(e,t){const n=this;return n.gt?n.gt.At(n,e,t):Xe},ft(e){return this.et[e]},je(e,t){return this.et.subarray(e,e+t)}},self.initCodec=()=>{self.Deflate=Qe,self.Inflate=dt};\n'],{type:"text/javascript"}));e({workerScripts:{inflate:[t],deflate:[t]}})}(configure),configure({Deflate:function(options){const z=new ZStream$1,bufsize=(uncompressedSize=options&&options.chunkSize?options.chunkSize:65536)+5*(Math.floor(uncompressedSize/16383)+1);var uncompressedSize;const buf=new Uint8Array(bufsize);let level=options?options.level:-1;void 0===level&&(level=-1),z.deflateInit(level),z.next_out=buf,this.append=function(data,onprogress){let err,array,lastIndex=0,bufferIndex=0,bufferSize=0;const buffers=[];if(data.length){z.next_in_index=0,z.next_in=data,z.avail_in=data.length;do{if(z.next_out_index=0,z.avail_out=bufsize,err=z.deflate(0),0!=err)throw new Error("deflating: "+z.msg);z.next_out_index&&(z.next_out_index==bufsize?buffers.push(new Uint8Array(buf)):buffers.push(buf.subarray(0,z.next_out_index))),bufferSize+=z.next_out_index,onprogress&&z.next_in_index>0&&z.next_in_index!=lastIndex&&(onprogress(z.next_in_index),lastIndex=z.next_in_index)}while(z.avail_in>0||0===z.avail_out);return buffers.length>1?(array=new Uint8Array(bufferSize),buffers.forEach((function(chunk){array.set(chunk,bufferIndex),bufferIndex+=chunk.length}))):array=buffers[0]?new Uint8Array(buffers[0]):new Uint8Array,array}},this.flush=function(){let err,array,bufferIndex=0,bufferSize=0;const buffers=[];do{if(z.next_out_index=0,z.avail_out=bufsize,err=z.deflate(4),1!=err&&0!=err)throw new Error("deflating: "+z.msg);bufsize-z.avail_out>0&&buffers.push(buf.slice(0,z.next_out_index)),bufferSize+=z.next_out_index}while(z.avail_in>0||0===z.avail_out);return z.deflateEnd(),array=new Uint8Array(bufferSize),buffers.forEach((function(chunk){array.set(chunk,bufferIndex),bufferIndex+=chunk.length})),array}},Inflate:function(options){const z=new ZStream,bufsize=options&&options.chunkSize?Math.floor(2*options.chunkSize):131072,buf=new Uint8Array(bufsize);let nomoreinput=!1;z.inflateInit(),z.next_out=buf,this.append=function(data,onprogress){const buffers=[];let err,array,lastIndex=0,bufferIndex=0,bufferSize=0;if(0!==data.length){z.next_in_index=0,z.next_in=data,z.avail_in=data.length;do{if(z.next_out_index=0,z.avail_out=bufsize,0!==z.avail_in||nomoreinput||(z.next_in_index=0,nomoreinput=!0),err=z.inflate(0),nomoreinput&&err===Z_BUF_ERROR){if(0!==z.avail_in)throw new Error("inflating: bad input")}else if(err!==Z_OK&&err!==Z_STREAM_END)throw new Error("inflating: "+z.msg);if((nomoreinput||err===Z_STREAM_END)&&z.avail_in===data.length)throw new Error("inflating: bad input");z.next_out_index&&(z.next_out_index===bufsize?buffers.push(new Uint8Array(buf)):buffers.push(buf.subarray(0,z.next_out_index))),bufferSize+=z.next_out_index,onprogress&&z.next_in_index>0&&z.next_in_index!=lastIndex&&(onprogress(z.next_in_index),lastIndex=z.next_in_index)}while(z.avail_in>0||0===z.avail_out);return buffers.length>1?(array=new Uint8Array(bufferSize),buffers.forEach((function(chunk){array.set(chunk,bufferIndex),bufferIndex+=chunk.length}))):array=buffers[0]?new Uint8Array(buffers[0]):new Uint8Array,array}},this.flush=function(){z.inflateEnd()}}});var ExportFeatures={exportOffcanvas:null,exportSettings:{type:"chaptersjson",supportsPretty:!1,pretty:!0,hasImages:!1,canUseImagePrefix:!1,imagePrefix:"",writeRedundantToc:!1,writeEndTimes:!1,psdFramerate:23.976,psdOmitTimecodes:!1,acUseTextAttr:!1},exportContent:"",exportData:null,initExportDialog(){this.exportOffcanvas=new Offcanvas(this.$refs.exportDialog),this.$refs.exportDialog.addEventListener("show.bs.offcanvas",(()=>{this.updateExportContent()}))},updateExportContent(type){type&&(this.exportSettings.type=type),this.data.ensureUniqueFilenames(),this.exportData=AutoFormat.as(this.exportSettings.type,this.data),this.exportSettings.hasImages=this.data.chapters.some((item=>item.img&&"blob"===item.img_type)),this.exportSettings.canUseImagePrefix=this.data.chapters.some((item=>item.img&&["blob","relative"].includes("blob"))),this.exportSettings.supportsPretty=this.exportData.supportsPrettyPrint,this.exportContent=this.exportData.toString(this.exportSettings.pretty,{imagePrefix:this.exportSettings.imagePrefix,writeRedundantToc:this.exportSettings.writeRedundantToc,writeEndTimes:this.exportSettings.writeEndTimes,psdFramerate:this.exportSettings.psdFramerate,psdOmitTimecodes:this.exportSettings.psdOmitTimecodes,acUseTextAttr:this.exportSettings.acUseTextAttr})},download(){gtag("event","ui",{action:"download",format:this.exportData.constructor.name}),this.triggerDownload({url:URL.createObjectURL(new Blob([this.exportContent],{type:this.exportData.mimeType})),name:this.exportData.filename})},triggerDownload(options){const a=document.createElement("a");a.setAttribute("href",options.url),a.setAttribute("download",options.name),a.click()},copyToClipboard(){this.$refs.outputTextarea.select(),document.execCommand("copy"),window.getSelection()?.removeAllRanges(),gtag("event","ui",{action:"copy",format:this.exportData.constructor.name}),this.toast("copied to clipboard")},async downloadZip(){gtag("event","ui",{action:"downloadZip",format:this.exportData.constructor.name});let zipWriter=new ZipWriter(new BlobWriter("application/zip"),{bufferedWrite:!0});await zipWriter.add("chapters.json",new BlobReader(new Blob([this.exportContent],{type:"text/plain"})),{level:0});for(const chapter of this.data.chapters){const response=await fetch(chapter.img),blob=await response.blob();await zipWriter.add(chapter.img_filename,new BlobReader(blob),{level:0})}const closed=await zipWriter.close();this.triggerDownload({url:URL.createObjectURL(closed),name:"chapters.zip"}),zipWriter=null}};class FileHandler{editorHasProject=!1;constructor(){document.documentElement.addEventListener("paste",(e=>{if(e.target.matches("input"))return;const text=(e.clipboardData||window.clipboardData).getData("text"),files=[...(event.clipboardData||event.originalEvent.clipboardData).items].filter((item=>"file"===item.kind)).map((item=>item.getAsFile()));if(files[0])return this.handleFile(files[0],"paste");try{const url=new URL(text);if(/(jpg|png|jpeg|webm|gif)$/.test(url.pathname))return gtag("event","ui",{action:"external",origin:"paste",type:"image-url"}),window.dispatchEvent(new CustomEvent("dragndrop:image",{detail:{image:url.toString(),type:"absolute",name:url.toString()}}))}catch(e){}try{const detected=AutoFormat.from(text),data=new ChaptersJson(detected);return gtag("event","ui",{action:"external",origin:"paste",type:"data",format:detected.constructor.name}),window.dispatchEvent(new CustomEvent("dragndrop:json",{detail:{data:data,name:"clipboard paste"}}))}catch(e){return window.dispatchEvent(new CustomEvent("dragndrop:jsonfail",{detail:{}}))}})),document.getElementById("app").addEventListener("dragover",(e=>{e.preventDefault()})),document.getElementById("app").addEventListener("drop",(e=>{e.preventDefault(),e.dataTransfer.items?[...e.dataTransfer.items].forEach(((item,i)=>{if("file"===item.kind&&0===i){const file=item.getAsFile();this.handleFile(file,"dragdrop")}else"file"===item.kind&&i>1&&window.dispatchEvent(new CustomEvent("dragndrop:ignoredfile",{detail:{filename:"..."}}))})):[...e.dataTransfer.files].forEach(((file,i)=>{if(0===i)return this.handleFile(file,"dragdrop");window.dispatchEvent(new CustomEvent("dragndrop:ignoredfile",{detail:{filename:file.name}}))}))}))}askForNewProject(){return!this.editorHasProject||confirm("Do you want to discard the current project and start a new one?")}handleFile(file,origin="osDialog"){return["text/plain","text/xml","application/json","text/csv","text/vtt"].includes(file.type)&&fetch(URL.createObjectURL(file)).then((r=>r.text())).then((text=>{try{const detected=AutoFormat.from(text),data=ChaptersJson.create(detected);return gtag("event","ui",{action:"external",origin:origin,type:"data",format:detected.constructor.name}),window.dispatchEvent(new CustomEvent("dragndrop:json",{detail:{data:data,name:file.name}}))}catch(e){return window.dispatchEvent(new CustomEvent("dragndrop:jsonfail",{detail:{}}))}})),"video"===file.type.slice(0,5)?(gtag("event","ui",{action:"external",origin:origin,type:"video"}),void window.dispatchEvent(new CustomEvent("dragndrop:video",{detail:{video:URL.createObjectURL(file),name:file.name}}))):"audio"===file.type.slice(0,5)&&this.askForNewProject()?(gtag("event","ui",{action:"external",origin:origin,type:"audio"}),void window.dispatchEvent(new CustomEvent("dragndrop:audio",{detail:{audio:URL.createObjectURL(file),name:file.name}}))):"image"===file.type.slice(0,5)?(gtag("event","ui",{action:"external",origin:origin,type:"image"}),void window.dispatchEvent(new CustomEvent("dragndrop:image",{detail:{image:URL.createObjectURL(file),name:file.name}}))):void window.dispatchEvent(new CustomEvent("dragndrop:ignoredfile",{detail:{filename:file.name}}))}}var ImportDialog={importState:{mode:null},importModal:null,initImportDialog(){this.importModal=new Modal(this.$refs.importDialog)},showImportDialog(state){this.importState=state,this.importModal.show()}};function secondsToTimestamp(s,options={}){options={hours:!0,milliseconds:!1,...options};const date=new Date(1e3*parseInt(s)).toISOString();"00"!==date.slice(11,13)&&(options.hours=!0);const hms=date.slice(options.hours?11:14,19);if(options.milliseconds){let fraction="000";return s.toString().indexOf(".")>-1&&(fraction=(String(s).split(".").pop()+"000").slice(0,3)),hms+"."+fraction}return hms}function timestampToSeconds(timestamp,fixedString=!1){let[seconds,minutes,hours]=timestamp.split(":").reverse(),milliseconds=0;if(seconds.indexOf(".")>-1&&([seconds,milliseconds]=seconds.split(".")),hours=parseInt(hours||0),minutes=parseInt(minutes||0),seconds=parseInt(seconds||0),milliseconds=parseInt(milliseconds)/1e3,seconds>59){let extraMinutes=Math.floor(seconds/60);minutes+=extraMinutes,seconds-=60*extraMinutes}if(minutes>59){let extraHours=Math.floor(minutes/60);hours+=extraHours,minutes-=60*extraHours}return fixedString?parseFloat((3600*hours+60*minutes+seconds+milliseconds).toFixed(3)):3600*hours+60*minutes+seconds+milliseconds}var MediaFeatures={videoHandlersAttached:!1,audioHandlersAttached:!1,hasVideo:!1,hasAudio:!1,insertFrameOnSeek:!1,ignoreNextSeekEvent:!1,mediaIsCollapsed:!1,actualMediaDuration:null,getVideoCanvas(callback){const canvas=document.createElement("canvas");canvas.setAttribute("width",this.$refs.video.videoWidth),canvas.setAttribute("height",this.$refs.video.videoHeight);canvas.getContext("2d").drawImage(this.$refs.video,0,0),canvas.toBlob((blob=>{callback(URL.createObjectURL(blob))}))},attachVideo(video,keepChapters=!1){keepChapters||this.reset(),this.importModal.hide(),this.videoHandlersAttached||(this.videoHandlersAttached=!0,this.$refs.video.addEventListener("loadedmetadata",(e=>{const videoDuration=e.target.duration;keepChapters?(this.actualMediaDuration=videoDuration,console.log(this.actualMediaDuration)):(this.data.duration=videoDuration,this.actualMediaDuration=null),this.currentChapterIndex=null,this.data.bump(),this.updateTimeline()})),this.$refs.video.addEventListener("seeked",(e=>{if(this.insertFrameOnSeek){if(this.addImageFromVideoToChapter(),this.insertFrameOnSeek=!1,this.$refs.video.dataset.returnToTime){this.ignoreNextSeekEvent=!0;const seekTo=parseFloat(this.$refs.video.dataset.returnToTime);delete this.$refs.video.dataset.returnToTime,this.$refs.video.currentTime=seekTo}"true"===this.$refs.video.dataset.resumeOnSeek&&(this.$refs.video.play(),delete this.$refs.video.dataset.resumeOnSeek)}else this.ignoreNextSeekEvent?this.ignoreNextSeekEvent=!1:window.timeline.setMarkerAt(e.target.currentTime)})),window.addEventListener("timeline:marker-set",(e=>{this.ignoreNextSeekEvent=!0,this.$refs.video.currentTime=e.detail.time}))),this.hasVideo=!0,this.mediaIsCollapsed=!1,this.$refs.video.setAttribute("src",video),this.$refs.video.play()},fetchVideoSnapshot(startTime=!1){!1===startTime&&(startTime=this.$refs.video.currentTime),this.insertFrameOnSeek=!0,startTime!==this.$refs.video.currentTime&&(this.$refs.video.dataset.returnToTime=this.$refs.video.currentTime),!1===this.$refs.video.paused&&(this.$refs.video.dataset.resumeOnSeek="true",this.$refs.video.pause()),this.$refs.video.currentTime=startTime},addImageFromVideoToChapter(index){index=index||this.currentChapterIndex,gtag("event","chapter",{action:"videoStillToChapter"}),this.getVideoCanvas((url=>{this.data.chapters[index].img=url,this.data.chapters[index].img_type="blob",this.data.chapters[index].img_filename=new URL(url.slice(5)).pathname.slice(1)+".png",this.getImageInfo(index)}))},attachAudio(audio){this.reset(),this.audioHandlersAttached||(this.audioHandlersAttached=!0,this.$refs.audio.addEventListener("loadedmetadata",(e=>{this.data.duration=e.target.duration,this.updateTimeline()}))),this.hasAudio=!0,this.$refs.audio.setAttribute("src",audio),this.$refs.audio.play()},deleteImage(index){"blob:"===this.data.chapters[index].img.slice(0,5)&&URL.revokeObjectURL(this.data.chapters[index].img),gtag("event","chapter",{action:"removeImage"}),delete this.data.chapters[index].img,delete this.data.chapters[index].img_type,delete this.data.chapters[index].img_filename},getImageInfo(index){const img=document.createElement("img");img.dataset.index=index,img.addEventListener("load",(e=>{this.data.chapters[e.target.dataset.index].img_dims=`${e.target.naturalWidth}x${e.target.naturalHeight}`})),img.setAttribute("src",this.data.chapters[index].img);const initObject={index:index};fetch(this.data.chapters[index].img,initObject).then((initObject=>r=>{const l=r.headers.get("content-length");this.data.chapters[initObject.index].img_size=function(bytes,decimals=2,format="KB"){if(bytes<1)return"0 B";const k="kB"===format?1e3:1024,i=Math.floor(Math.log(bytes)/Math.log(k)),sizes=["","K","M","G","T","P","E","Z","Y"],suffix=["kB"===format?sizes[i].toLowerCase():sizes[i],"B"];return"KiB"===format&&suffix.splice(1,0,"i"),parseFloat((bytes/Math.pow(k,i)).toFixed(decimals))+" "+suffix.join("")}(l)+` (${l} Bytes)`})(initObject))},toggleMedia(){this.mediaIsCollapsed=!this.mediaIsCollapsed,gtag("event","ui",{action:"mediatoggle",mode:this.mediaIsCollapsed?"collapsed":"visible"}),this.$refs.video.pause()}},MetaProperties={metaPropertiesDialog:null,initMetaPropertiesDialog(){this.metaPropertiesDialog=new Offcanvas(this.$refs.metaPropertiesDialog),this.$refs.metaPropertiesDialog.addEventListener("shown.bs.offcanvas",(()=>{gtag("event","meta",{action:"attributeDialog"})}))}}; +const elementMap=new Map,Data={set(element,key,instance){elementMap.has(element)||elementMap.set(element,new Map);const instanceMap=elementMap.get(element);instanceMap.has(key)||0===instanceMap.size?instanceMap.set(key,instance):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`)},get:(element,key)=>elementMap.has(element)&&elementMap.get(element).get(key)||null,remove(element,key){if(!elementMap.has(element))return;const instanceMap=elementMap.get(element);instanceMap.delete(key),0===instanceMap.size&&elementMap.delete(element)}},parseSelector=selector=>(selector&&window.CSS&&window.CSS.escape&&(selector=selector.replace(/#([^\s"#']+)/g,((match,id)=>`#${CSS.escape(id)}`))),selector),triggerTransitionEnd=element=>{element.dispatchEvent(new Event("transitionend"))},isElement$2=object=>!(!object||"object"!=typeof object)&&(void 0!==object.jquery&&(object=object[0]),void 0!==object.nodeType),getElement=object=>isElement$2(object)?object.jquery?object[0]:object:"string"==typeof object&&object.length>0?document.querySelector(parseSelector(object)):null,isVisible=element=>{if(!isElement$2(element)||0===element.getClientRects().length)return!1;const elementIsVisible="visible"===getComputedStyle(element).getPropertyValue("visibility"),closedDetails=element.closest("details:not([open])");if(!closedDetails)return elementIsVisible;if(closedDetails!==element){const summary=element.closest("summary");if(summary&&summary.parentNode!==closedDetails)return!1;if(null===summary)return!1}return elementIsVisible},isDisabled=element=>!element||element.nodeType!==Node.ELEMENT_NODE||(!!element.classList.contains("disabled")||(void 0!==element.disabled?element.disabled:element.hasAttribute("disabled")&&"false"!==element.getAttribute("disabled"))),findShadowRoot=element=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof element.getRootNode){const root=element.getRootNode();return root instanceof ShadowRoot?root:null}return element instanceof ShadowRoot?element:element.parentNode?findShadowRoot(element.parentNode):null},noop$1=()=>{},reflow=element=>{element.offsetHeight},getjQuery=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,DOMContentLoadedCallbacks=[],isRTL$1=()=>"rtl"===document.documentElement.dir,defineJQueryPlugin=plugin=>{var callback;callback=()=>{const $=getjQuery();if($){const name=plugin.NAME,JQUERY_NO_CONFLICT=$.fn[name];$.fn[name]=plugin.jQueryInterface,$.fn[name].Constructor=plugin,$.fn[name].noConflict=()=>($.fn[name]=JQUERY_NO_CONFLICT,plugin.jQueryInterface)}},"loading"===document.readyState?(DOMContentLoadedCallbacks.length||document.addEventListener("DOMContentLoaded",(()=>{for(const callback of DOMContentLoadedCallbacks)callback()})),DOMContentLoadedCallbacks.push(callback)):callback()},execute=(possibleCallback,args=[],defaultValue=possibleCallback)=>"function"==typeof possibleCallback?possibleCallback(...args):defaultValue,executeAfterTransition=(callback,transitionElement,waitForTransition=!0)=>{if(!waitForTransition)return void execute(callback);const emulatedDuration=(element=>{if(!element)return 0;let{transitionDuration:transitionDuration,transitionDelay:transitionDelay}=window.getComputedStyle(element);const floatTransitionDuration=Number.parseFloat(transitionDuration),floatTransitionDelay=Number.parseFloat(transitionDelay);return floatTransitionDuration||floatTransitionDelay?(transitionDuration=transitionDuration.split(",")[0],transitionDelay=transitionDelay.split(",")[0],1e3*(Number.parseFloat(transitionDuration)+Number.parseFloat(transitionDelay))):0})(transitionElement)+5;let called=!1;const handler=({target:target})=>{target===transitionElement&&(called=!0,transitionElement.removeEventListener("transitionend",handler),execute(callback))};transitionElement.addEventListener("transitionend",handler),setTimeout((()=>{called||triggerTransitionEnd(transitionElement)}),emulatedDuration)},getNextActiveElement=(list,activeElement,shouldGetNext,isCycleAllowed)=>{const listLength=list.length;let index=list.indexOf(activeElement);return-1===index?!shouldGetNext&&isCycleAllowed?list[listLength-1]:list[0]:(index+=shouldGetNext?1:-1,isCycleAllowed&&(index=(index+listLength)%listLength),list[Math.max(0,Math.min(index,listLength-1))])},namespaceRegex=/[^.]*(?=\..*)\.|.*/,stripNameRegex=/\..*/,stripUidRegex=/::\d+$/,eventRegistry={};let uidEvent=1;const customEvents={mouseenter:"mouseover",mouseleave:"mouseout"},nativeEvents=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function makeEventUid(element,uid){return uid&&`${uid}::${uidEvent++}`||element.uidEvent||uidEvent++}function getElementEvents(element){const uid=makeEventUid(element);return element.uidEvent=uid,eventRegistry[uid]=eventRegistry[uid]||{},eventRegistry[uid]}function findHandler(events,callable,delegationSelector=null){return Object.values(events).find((event=>event.callable===callable&&event.delegationSelector===delegationSelector))}function normalizeParameters(originalTypeEvent,handler,delegationFunction){const isDelegated="string"==typeof handler,callable=isDelegated?delegationFunction:handler||delegationFunction;let typeEvent=getTypeEvent(originalTypeEvent);return nativeEvents.has(typeEvent)||(typeEvent=originalTypeEvent),[isDelegated,callable,typeEvent]}function addHandler(element,originalTypeEvent,handler,delegationFunction,oneOff){if("string"!=typeof originalTypeEvent||!element)return;let[isDelegated,callable,typeEvent]=normalizeParameters(originalTypeEvent,handler,delegationFunction);if(originalTypeEvent in customEvents){const wrapFunction=fn=>function(event){if(!event.relatedTarget||event.relatedTarget!==event.delegateTarget&&!event.delegateTarget.contains(event.relatedTarget))return fn.call(this,event)};callable=wrapFunction(callable)}const events=getElementEvents(element),handlers=events[typeEvent]||(events[typeEvent]={}),previousFunction=findHandler(handlers,callable,isDelegated?handler:null);if(previousFunction)return void(previousFunction.oneOff=previousFunction.oneOff&&oneOff);const uid=makeEventUid(callable,originalTypeEvent.replace(namespaceRegex,"")),fn=isDelegated?function(element,selector,fn){return function handler(event){const domElements=element.querySelectorAll(selector);for(let{target:target}=event;target&&target!==this;target=target.parentNode)for(const domElement of domElements)if(domElement===target)return hydrateObj(event,{delegateTarget:target}),handler.oneOff&&EventHandler.off(element,event.type,selector,fn),fn.apply(target,[event])}}(element,handler,callable):function(element,fn){return function handler(event){return hydrateObj(event,{delegateTarget:element}),handler.oneOff&&EventHandler.off(element,event.type,fn),fn.apply(element,[event])}}(element,callable);fn.delegationSelector=isDelegated?handler:null,fn.callable=callable,fn.oneOff=oneOff,fn.uidEvent=uid,handlers[uid]=fn,element.addEventListener(typeEvent,fn,isDelegated)}function removeHandler(element,events,typeEvent,handler,delegationSelector){const fn=findHandler(events[typeEvent],handler,delegationSelector);fn&&(element.removeEventListener(typeEvent,fn,Boolean(delegationSelector)),delete events[typeEvent][fn.uidEvent])}function removeNamespacedHandlers(element,events,typeEvent,namespace){const storeElementEvent=events[typeEvent]||{};for(const[handlerKey,event]of Object.entries(storeElementEvent))handlerKey.includes(namespace)&&removeHandler(element,events,typeEvent,event.callable,event.delegationSelector)}function getTypeEvent(event){return event=event.replace(stripNameRegex,""),customEvents[event]||event}const EventHandler={on(element,event,handler,delegationFunction){addHandler(element,event,handler,delegationFunction,!1)},one(element,event,handler,delegationFunction){addHandler(element,event,handler,delegationFunction,!0)},off(element,originalTypeEvent,handler,delegationFunction){if("string"!=typeof originalTypeEvent||!element)return;const[isDelegated,callable,typeEvent]=normalizeParameters(originalTypeEvent,handler,delegationFunction),inNamespace=typeEvent!==originalTypeEvent,events=getElementEvents(element),storeElementEvent=events[typeEvent]||{},isNamespace=originalTypeEvent.startsWith(".");if(void 0===callable){if(isNamespace)for(const elementEvent of Object.keys(events))removeNamespacedHandlers(element,events,elementEvent,originalTypeEvent.slice(1));for(const[keyHandlers,event]of Object.entries(storeElementEvent)){const handlerKey=keyHandlers.replace(stripUidRegex,"");inNamespace&&!originalTypeEvent.includes(handlerKey)||removeHandler(element,events,typeEvent,event.callable,event.delegationSelector)}}else{if(!Object.keys(storeElementEvent).length)return;removeHandler(element,events,typeEvent,callable,isDelegated?handler:null)}},trigger(element,event,args){if("string"!=typeof event||!element)return null;const $=getjQuery();let jQueryEvent=null,bubbles=!0,nativeDispatch=!0,defaultPrevented=!1;event!==getTypeEvent(event)&&$&&(jQueryEvent=$.Event(event,args),$(element).trigger(jQueryEvent),bubbles=!jQueryEvent.isPropagationStopped(),nativeDispatch=!jQueryEvent.isImmediatePropagationStopped(),defaultPrevented=jQueryEvent.isDefaultPrevented());const evt=hydrateObj(new Event(event,{bubbles:bubbles,cancelable:!0}),args);return defaultPrevented&&evt.preventDefault(),nativeDispatch&&element.dispatchEvent(evt),evt.defaultPrevented&&jQueryEvent&&jQueryEvent.preventDefault(),evt}};function hydrateObj(obj,meta={}){for(const[key,value]of Object.entries(meta))try{obj[key]=value}catch(_unused){Object.defineProperty(obj,key,{configurable:!0,get:()=>value})}return obj}function normalizeData(value){if("true"===value)return!0;if("false"===value)return!1;if(value===Number(value).toString())return Number(value);if(""===value||"null"===value)return null;if("string"!=typeof value)return value;try{return JSON.parse(decodeURIComponent(value))}catch(_unused){return value}}function normalizeDataKey(key){return key.replace(/[A-Z]/g,(chr=>`-${chr.toLowerCase()}`))}const Manipulator={setDataAttribute(element,key,value){element.setAttribute(`data-bs-${normalizeDataKey(key)}`,value)},removeDataAttribute(element,key){element.removeAttribute(`data-bs-${normalizeDataKey(key)}`)},getDataAttributes(element){if(!element)return{};const attributes={},bsKeys=Object.keys(element.dataset).filter((key=>key.startsWith("bs")&&!key.startsWith("bsConfig")));for(const key of bsKeys){let pureKey=key.replace(/^bs/,"");pureKey=pureKey.charAt(0).toLowerCase()+pureKey.slice(1,pureKey.length),attributes[pureKey]=normalizeData(element.dataset[key])}return attributes},getDataAttribute:(element,key)=>normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`))};let Config$1=class{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(config){return config=this._mergeConfigObj(config),config=this._configAfterMerge(config),this._typeCheckConfig(config),config}_configAfterMerge(config){return config}_mergeConfigObj(config,element){const jsonConfig=isElement$2(element)?Manipulator.getDataAttribute(element,"config"):{};return{...this.constructor.Default,..."object"==typeof jsonConfig?jsonConfig:{},...isElement$2(element)?Manipulator.getDataAttributes(element):{},..."object"==typeof config?config:{}}}_typeCheckConfig(config,configTypes=this.constructor.DefaultType){for(const[property,expectedTypes]of Object.entries(configTypes)){const value=config[property],valueType=isElement$2(value)?"element":null==(object=value)?`${object}`:Object.prototype.toString.call(object).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(expectedTypes).test(valueType))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`)}var object}};class BaseComponent extends Config$1{constructor(element,config){super(),(element=getElement(element))&&(this._element=element,this._config=this._getConfig(config),Data.set(this._element,this.constructor.DATA_KEY,this))}dispose(){Data.remove(this._element,this.constructor.DATA_KEY),EventHandler.off(this._element,this.constructor.EVENT_KEY);for(const propertyName of Object.getOwnPropertyNames(this))this[propertyName]=null}_queueCallback(callback,element,isAnimated=!0){executeAfterTransition(callback,element,isAnimated)}_getConfig(config){return config=this._mergeConfigObj(config,this._element),config=this._configAfterMerge(config),this._typeCheckConfig(config),config}static getInstance(element){return Data.get(getElement(element),this.DATA_KEY)}static getOrCreateInstance(element,config={}){return this.getInstance(element)||new this(element,"object"==typeof config?config:null)}static get VERSION(){return"5.3.2"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(name){return`${name}${this.EVENT_KEY}`}}const getSelector=element=>{let selector=element.getAttribute("data-bs-target");if(!selector||"#"===selector){let hrefAttribute=element.getAttribute("href");if(!hrefAttribute||!hrefAttribute.includes("#")&&!hrefAttribute.startsWith("."))return null;hrefAttribute.includes("#")&&!hrefAttribute.startsWith("#")&&(hrefAttribute=`#${hrefAttribute.split("#")[1]}`),selector=hrefAttribute&&"#"!==hrefAttribute?parseSelector(hrefAttribute.trim()):null}return selector},SelectorEngine={find:(selector,element=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(element,selector)),findOne:(selector,element=document.documentElement)=>Element.prototype.querySelector.call(element,selector),children:(element,selector)=>[].concat(...element.children).filter((child=>child.matches(selector))),parents(element,selector){const parents=[];let ancestor=element.parentNode.closest(selector);for(;ancestor;)parents.push(ancestor),ancestor=ancestor.parentNode.closest(selector);return parents},prev(element,selector){let previous=element.previousElementSibling;for(;previous;){if(previous.matches(selector))return[previous];previous=previous.previousElementSibling}return[]},next(element,selector){let next=element.nextElementSibling;for(;next;){if(next.matches(selector))return[next];next=next.nextElementSibling}return[]},focusableChildren(element){const focusables=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((selector=>`${selector}:not([tabindex^="-"])`)).join(",");return this.find(focusables,element).filter((el=>!isDisabled(el)&&isVisible(el)))},getSelectorFromElement(element){const selector=getSelector(element);return selector&&SelectorEngine.findOne(selector)?selector:null},getElementFromSelector(element){const selector=getSelector(element);return selector?SelectorEngine.findOne(selector):null},getMultipleElementsFromSelector(element){const selector=getSelector(element);return selector?SelectorEngine.find(selector):[]}},enableDismissTrigger=(component,method="hide")=>{const clickEvent=`click.dismiss${component.EVENT_KEY}`,name=component.NAME;EventHandler.on(document,clickEvent,`[data-bs-dismiss="${name}"]`,(function(event){if(["A","AREA"].includes(this.tagName)&&event.preventDefault(),isDisabled(this))return;const target=SelectorEngine.getElementFromSelector(this)||this.closest(`.${name}`);component.getOrCreateInstance(target)[method]()}))};class Alert extends BaseComponent{static get NAME(){return"alert"}close(){if(EventHandler.trigger(this._element,"close.bs.alert").defaultPrevented)return;this._element.classList.remove("show");const isAnimated=this._element.classList.contains("fade");this._queueCallback((()=>this._destroyElement()),this._element,isAnimated)}_destroyElement(){this._element.remove(),EventHandler.trigger(this._element,"closed.bs.alert"),this.dispose()}static jQueryInterface(config){return this.each((function(){const data=Alert.getOrCreateInstance(this);if("string"==typeof config){if(void 0===data[config]||config.startsWith("_")||"constructor"===config)throw new TypeError(`No method named "${config}"`);data[config](this)}}))}}enableDismissTrigger(Alert,"close"),defineJQueryPlugin(Alert);class Button extends BaseComponent{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(config){return this.each((function(){const data=Button.getOrCreateInstance(this);"toggle"===config&&data[config]()}))}}EventHandler.on(document,"click.bs.button.data-api",'[data-bs-toggle="button"]',(event=>{event.preventDefault();const button=event.target.closest('[data-bs-toggle="button"]');Button.getOrCreateInstance(button).toggle()})),defineJQueryPlugin(Button);const Default$c={endCallback:null,leftCallback:null,rightCallback:null},DefaultType$c={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"};class Swipe extends Config$1{constructor(element,config){super(),this._element=element,element&&Swipe.isSupported()&&(this._config=this._getConfig(config),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return Default$c}static get DefaultType(){return DefaultType$c}static get NAME(){return"swipe"}dispose(){EventHandler.off(this._element,".bs.swipe")}_start(event){this._supportPointerEvents?this._eventIsPointerPenTouch(event)&&(this._deltaX=event.clientX):this._deltaX=event.touches[0].clientX}_end(event){this._eventIsPointerPenTouch(event)&&(this._deltaX=event.clientX-this._deltaX),this._handleSwipe(),execute(this._config.endCallback)}_move(event){this._deltaX=event.touches&&event.touches.length>1?0:event.touches[0].clientX-this._deltaX}_handleSwipe(){const absDeltaX=Math.abs(this._deltaX);if(absDeltaX<=40)return;const direction=absDeltaX/this._deltaX;this._deltaX=0,direction&&execute(direction>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(EventHandler.on(this._element,"pointerdown.bs.swipe",(event=>this._start(event))),EventHandler.on(this._element,"pointerup.bs.swipe",(event=>this._end(event))),this._element.classList.add("pointer-event")):(EventHandler.on(this._element,"touchstart.bs.swipe",(event=>this._start(event))),EventHandler.on(this._element,"touchmove.bs.swipe",(event=>this._move(event))),EventHandler.on(this._element,"touchend.bs.swipe",(event=>this._end(event))))}_eventIsPointerPenTouch(event){return this._supportPointerEvents&&("pen"===event.pointerType||"touch"===event.pointerType)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const KEY_TO_DIRECTION={ArrowLeft:"right",ArrowRight:"left"},Default$b={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},DefaultType$b={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class Carousel extends BaseComponent{constructor(element,config){super(element,config),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=SelectorEngine.findOne(".carousel-indicators",this._element),this._addEventListeners(),"carousel"===this._config.ride&&this.cycle()}static get Default(){return Default$b}static get DefaultType(){return DefaultType$b}static get NAME(){return"carousel"}next(){this._slide("next")}nextWhenVisible(){!document.hidden&&isVisible(this._element)&&this.next()}prev(){this._slide("prev")}pause(){this._isSliding&&triggerTransitionEnd(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval((()=>this.nextWhenVisible()),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?EventHandler.one(this._element,"slid.bs.carousel",(()=>this.cycle())):this.cycle())}to(index){const items=this._getItems();if(index>items.length-1||index<0)return;if(this._isSliding)return void EventHandler.one(this._element,"slid.bs.carousel",(()=>this.to(index)));const activeIndex=this._getItemIndex(this._getActive());if(activeIndex===index)return;const order=index>activeIndex?"next":"prev";this._slide(order,items[index])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(config){return config.defaultInterval=config.interval,config}_addEventListeners(){this._config.keyboard&&EventHandler.on(this._element,"keydown.bs.carousel",(event=>this._keydown(event))),"hover"===this._config.pause&&(EventHandler.on(this._element,"mouseenter.bs.carousel",(()=>this.pause())),EventHandler.on(this._element,"mouseleave.bs.carousel",(()=>this._maybeEnableCycle()))),this._config.touch&&Swipe.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const img of SelectorEngine.find(".carousel-item img",this._element))EventHandler.on(img,"dragstart.bs.carousel",(event=>event.preventDefault()));const swipeConfig={leftCallback:()=>this._slide(this._directionToOrder("left")),rightCallback:()=>this._slide(this._directionToOrder("right")),endCallback:()=>{"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((()=>this._maybeEnableCycle()),500+this._config.interval))}};this._swipeHelper=new Swipe(this._element,swipeConfig)}_keydown(event){if(/input|textarea/i.test(event.target.tagName))return;const direction=KEY_TO_DIRECTION[event.key];direction&&(event.preventDefault(),this._slide(this._directionToOrder(direction)))}_getItemIndex(element){return this._getItems().indexOf(element)}_setActiveIndicatorElement(index){if(!this._indicatorsElement)return;const activeIndicator=SelectorEngine.findOne(".active",this._indicatorsElement);activeIndicator.classList.remove("active"),activeIndicator.removeAttribute("aria-current");const newActiveIndicator=SelectorEngine.findOne(`[data-bs-slide-to="${index}"]`,this._indicatorsElement);newActiveIndicator&&(newActiveIndicator.classList.add("active"),newActiveIndicator.setAttribute("aria-current","true"))}_updateInterval(){const element=this._activeElement||this._getActive();if(!element)return;const elementInterval=Number.parseInt(element.getAttribute("data-bs-interval"),10);this._config.interval=elementInterval||this._config.defaultInterval}_slide(order,element=null){if(this._isSliding)return;const activeElement=this._getActive(),isNext="next"===order,nextElement=element||getNextActiveElement(this._getItems(),activeElement,isNext,this._config.wrap);if(nextElement===activeElement)return;const nextElementIndex=this._getItemIndex(nextElement),triggerEvent=eventName=>EventHandler.trigger(this._element,eventName,{relatedTarget:nextElement,direction:this._orderToDirection(order),from:this._getItemIndex(activeElement),to:nextElementIndex});if(triggerEvent("slide.bs.carousel").defaultPrevented)return;if(!activeElement||!nextElement)return;const isCycling=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(nextElementIndex),this._activeElement=nextElement;const directionalClassName=isNext?"carousel-item-start":"carousel-item-end",orderClassName=isNext?"carousel-item-next":"carousel-item-prev";nextElement.classList.add(orderClassName),reflow(nextElement),activeElement.classList.add(directionalClassName),nextElement.classList.add(directionalClassName);this._queueCallback((()=>{nextElement.classList.remove(directionalClassName,orderClassName),nextElement.classList.add("active"),activeElement.classList.remove("active",orderClassName,directionalClassName),this._isSliding=!1,triggerEvent("slid.bs.carousel")}),activeElement,this._isAnimated()),isCycling&&this.cycle()}_isAnimated(){return this._element.classList.contains("slide")}_getActive(){return SelectorEngine.findOne(".active.carousel-item",this._element)}_getItems(){return SelectorEngine.find(".carousel-item",this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(direction){return isRTL$1()?"left"===direction?"prev":"next":"left"===direction?"next":"prev"}_orderToDirection(order){return isRTL$1()?"prev"===order?"left":"right":"prev"===order?"right":"left"}static jQueryInterface(config){return this.each((function(){const data=Carousel.getOrCreateInstance(this,config);if("number"!=typeof config){if("string"==typeof config){if(void 0===data[config]||config.startsWith("_")||"constructor"===config)throw new TypeError(`No method named "${config}"`);data[config]()}}else data.to(config)}))}}EventHandler.on(document,"click.bs.carousel.data-api","[data-bs-slide], [data-bs-slide-to]",(function(event){const target=SelectorEngine.getElementFromSelector(this);if(!target||!target.classList.contains("carousel"))return;event.preventDefault();const carousel=Carousel.getOrCreateInstance(target),slideIndex=this.getAttribute("data-bs-slide-to");return slideIndex?(carousel.to(slideIndex),void carousel._maybeEnableCycle()):"next"===Manipulator.getDataAttribute(this,"slide")?(carousel.next(),void carousel._maybeEnableCycle()):(carousel.prev(),void carousel._maybeEnableCycle())})),EventHandler.on(window,"load.bs.carousel.data-api",(()=>{const carousels=SelectorEngine.find('[data-bs-ride="carousel"]');for(const carousel of carousels)Carousel.getOrCreateInstance(carousel)})),defineJQueryPlugin(Carousel);const Default$a={parent:null,toggle:!0},DefaultType$a={parent:"(null|element)",toggle:"boolean"};class Collapse extends BaseComponent{constructor(element,config){super(element,config),this._isTransitioning=!1,this._triggerArray=[];const toggleList=SelectorEngine.find('[data-bs-toggle="collapse"]');for(const elem of toggleList){const selector=SelectorEngine.getSelectorFromElement(elem),filterElement=SelectorEngine.find(selector).filter((foundElement=>foundElement===this._element));null!==selector&&filterElement.length&&this._triggerArray.push(elem)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return Default$a}static get DefaultType(){return DefaultType$a}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let activeChildren=[];if(this._config.parent&&(activeChildren=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter((element=>element!==this._element)).map((element=>Collapse.getOrCreateInstance(element,{toggle:!1})))),activeChildren.length&&activeChildren[0]._isTransitioning)return;if(EventHandler.trigger(this._element,"show.bs.collapse").defaultPrevented)return;for(const activeInstance of activeChildren)activeInstance.hide();const dimension=this._getDimension();this._element.classList.remove("collapse"),this._element.classList.add("collapsing"),this._element.style[dimension]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const scrollSize=`scroll${dimension[0].toUpperCase()+dimension.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove("collapsing"),this._element.classList.add("collapse","show"),this._element.style[dimension]="",EventHandler.trigger(this._element,"shown.bs.collapse")}),this._element,!0),this._element.style[dimension]=`${this._element[scrollSize]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(EventHandler.trigger(this._element,"hide.bs.collapse").defaultPrevented)return;const dimension=this._getDimension();this._element.style[dimension]=`${this._element.getBoundingClientRect()[dimension]}px`,reflow(this._element),this._element.classList.add("collapsing"),this._element.classList.remove("collapse","show");for(const trigger of this._triggerArray){const element=SelectorEngine.getElementFromSelector(trigger);element&&!this._isShown(element)&&this._addAriaAndCollapsedClass([trigger],!1)}this._isTransitioning=!0;this._element.style[dimension]="",this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove("collapsing"),this._element.classList.add("collapse"),EventHandler.trigger(this._element,"hidden.bs.collapse")}),this._element,!0)}_isShown(element=this._element){return element.classList.contains("show")}_configAfterMerge(config){return config.toggle=Boolean(config.toggle),config.parent=getElement(config.parent),config}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const children=this._getFirstLevelChildren('[data-bs-toggle="collapse"]');for(const element of children){const selected=SelectorEngine.getElementFromSelector(element);selected&&this._addAriaAndCollapsedClass([element],this._isShown(selected))}}_getFirstLevelChildren(selector){const children=SelectorEngine.find(":scope .collapse .collapse",this._config.parent);return SelectorEngine.find(selector,this._config.parent).filter((element=>!children.includes(element)))}_addAriaAndCollapsedClass(triggerArray,isOpen){if(triggerArray.length)for(const element of triggerArray)element.classList.toggle("collapsed",!isOpen),element.setAttribute("aria-expanded",isOpen)}static jQueryInterface(config){const _config={};return"string"==typeof config&&/show|hide/.test(config)&&(_config.toggle=!1),this.each((function(){const data=Collapse.getOrCreateInstance(this,_config);if("string"==typeof config){if(void 0===data[config])throw new TypeError(`No method named "${config}"`);data[config]()}}))}}EventHandler.on(document,"click.bs.collapse.data-api",'[data-bs-toggle="collapse"]',(function(event){("A"===event.target.tagName||event.delegateTarget&&"A"===event.delegateTarget.tagName)&&event.preventDefault();for(const element of SelectorEngine.getMultipleElementsFromSelector(this))Collapse.getOrCreateInstance(element,{toggle:!1}).toggle()})),defineJQueryPlugin(Collapse);const ARROW_UP_KEY$1="ArrowUp",ARROW_DOWN_KEY$1="ArrowDown",SELECTOR_DATA_TOGGLE$3='[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)',SELECTOR_DATA_TOGGLE_SHOWN=`${SELECTOR_DATA_TOGGLE$3}.show`,PLACEMENT_TOP=isRTL$1()?"top-end":"top-start",PLACEMENT_TOPEND=isRTL$1()?"top-start":"top-end",PLACEMENT_BOTTOM=isRTL$1()?"bottom-end":"bottom-start",PLACEMENT_BOTTOMEND=isRTL$1()?"bottom-start":"bottom-end",PLACEMENT_RIGHT=isRTL$1()?"left-start":"right-start",PLACEMENT_LEFT=isRTL$1()?"right-start":"left-start",Default$9={autoClose:!0,boundary:"clippingParents",display:"dynamic",offset:[0,2],popperConfig:null,reference:"toggle"},DefaultType$9={autoClose:"(boolean|string)",boundary:"(string|element)",display:"string",offset:"(array|string|function)",popperConfig:"(null|object|function)",reference:"(string|element|object)"};class Dropdown extends BaseComponent{constructor(element,config){super(element,config),this._popper=null,this._parent=this._element.parentNode,this._menu=SelectorEngine.next(this._element,".dropdown-menu")[0]||SelectorEngine.prev(this._element,".dropdown-menu")[0]||SelectorEngine.findOne(".dropdown-menu",this._parent),this._inNavbar=this._detectNavbar()}static get Default(){return Default$9}static get DefaultType(){return DefaultType$9}static get NAME(){return"dropdown"}toggle(){return this._isShown()?this.hide():this.show()}show(){if(isDisabled(this._element)||this._isShown())return;const relatedTarget={relatedTarget:this._element};if(!EventHandler.trigger(this._element,"show.bs.dropdown",relatedTarget).defaultPrevented){if(this._createPopper(),"ontouchstart"in document.documentElement&&!this._parent.closest(".navbar-nav"))for(const element of[].concat(...document.body.children))EventHandler.on(element,"mouseover",noop$1);this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add("show"),this._element.classList.add("show"),EventHandler.trigger(this._element,"shown.bs.dropdown",relatedTarget)}}hide(){if(isDisabled(this._element)||!this._isShown())return;const relatedTarget={relatedTarget:this._element};this._completeHide(relatedTarget)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(relatedTarget){if(!EventHandler.trigger(this._element,"hide.bs.dropdown",relatedTarget).defaultPrevented){if("ontouchstart"in document.documentElement)for(const element of[].concat(...document.body.children))EventHandler.off(element,"mouseover",noop$1);this._popper&&this._popper.destroy(),this._menu.classList.remove("show"),this._element.classList.remove("show"),this._element.setAttribute("aria-expanded","false"),Manipulator.removeDataAttribute(this._menu,"popper"),EventHandler.trigger(this._element,"hidden.bs.dropdown",relatedTarget)}}_getConfig(config){if("object"==typeof(config=super._getConfig(config)).reference&&!isElement$2(config.reference)&&"function"!=typeof config.reference.getBoundingClientRect)throw new TypeError(`${"dropdown".toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return config}_createPopper(){if(void 0===Popper)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let referenceElement=this._element;"parent"===this._config.reference?referenceElement=this._parent:isElement$2(this._config.reference)?referenceElement=getElement(this._config.reference):"object"==typeof this._config.reference&&(referenceElement=this._config.reference);const popperConfig=this._getPopperConfig();this._popper=createPopper(referenceElement,this._menu,popperConfig)}_isShown(){return this._menu.classList.contains("show")}_getPlacement(){const parentDropdown=this._parent;if(parentDropdown.classList.contains("dropend"))return PLACEMENT_RIGHT;if(parentDropdown.classList.contains("dropstart"))return PLACEMENT_LEFT;if(parentDropdown.classList.contains("dropup-center"))return"top";if(parentDropdown.classList.contains("dropdown-center"))return"bottom";const isEnd="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return parentDropdown.classList.contains("dropup")?isEnd?PLACEMENT_TOPEND:PLACEMENT_TOP:isEnd?PLACEMENT_BOTTOMEND:PLACEMENT_BOTTOM}_detectNavbar(){return null!==this._element.closest(".navbar")}_getOffset(){const{offset:offset}=this._config;return"string"==typeof offset?offset.split(",").map((value=>Number.parseInt(value,10))):"function"==typeof offset?popperData=>offset(popperData,this._element):offset}_getPopperConfig(){const defaultBsPopperConfig={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||"static"===this._config.display)&&(Manipulator.setDataAttribute(this._menu,"popper","static"),defaultBsPopperConfig.modifiers=[{name:"applyStyles",enabled:!1}]),{...defaultBsPopperConfig,...execute(this._config.popperConfig,[defaultBsPopperConfig])}}_selectMenuItem({key:key,target:target}){const items=SelectorEngine.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter((element=>isVisible(element)));items.length&&getNextActiveElement(items,target,key===ARROW_DOWN_KEY$1,!items.includes(target)).focus()}static jQueryInterface(config){return this.each((function(){const data=Dropdown.getOrCreateInstance(this,config);if("string"==typeof config){if(void 0===data[config])throw new TypeError(`No method named "${config}"`);data[config]()}}))}static clearMenus(event){if(2===event.button||"keyup"===event.type&&"Tab"!==event.key)return;const openToggles=SelectorEngine.find(SELECTOR_DATA_TOGGLE_SHOWN);for(const toggle of openToggles){const context=Dropdown.getInstance(toggle);if(!context||!1===context._config.autoClose)continue;const composedPath=event.composedPath(),isMenuTarget=composedPath.includes(context._menu);if(composedPath.includes(context._element)||"inside"===context._config.autoClose&&!isMenuTarget||"outside"===context._config.autoClose&&isMenuTarget)continue;if(context._menu.contains(event.target)&&("keyup"===event.type&&"Tab"===event.key||/input|select|option|textarea|form/i.test(event.target.tagName)))continue;const relatedTarget={relatedTarget:context._element};"click"===event.type&&(relatedTarget.clickEvent=event),context._completeHide(relatedTarget)}}static dataApiKeydownHandler(event){const isInput=/input|textarea/i.test(event.target.tagName),isEscapeEvent="Escape"===event.key,isUpOrDownEvent=[ARROW_UP_KEY$1,ARROW_DOWN_KEY$1].includes(event.key);if(!isUpOrDownEvent&&!isEscapeEvent)return;if(isInput&&!isEscapeEvent)return;event.preventDefault();const getToggleButton=this.matches(SELECTOR_DATA_TOGGLE$3)?this:SelectorEngine.prev(this,SELECTOR_DATA_TOGGLE$3)[0]||SelectorEngine.next(this,SELECTOR_DATA_TOGGLE$3)[0]||SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3,event.delegateTarget.parentNode),instance=Dropdown.getOrCreateInstance(getToggleButton);if(isUpOrDownEvent)return event.stopPropagation(),instance.show(),void instance._selectMenuItem(event);instance._isShown()&&(event.stopPropagation(),instance.hide(),getToggleButton.focus())}}EventHandler.on(document,"keydown.bs.dropdown.data-api",SELECTOR_DATA_TOGGLE$3,Dropdown.dataApiKeydownHandler),EventHandler.on(document,"keydown.bs.dropdown.data-api",".dropdown-menu",Dropdown.dataApiKeydownHandler),EventHandler.on(document,"click.bs.dropdown.data-api",Dropdown.clearMenus),EventHandler.on(document,"keyup.bs.dropdown.data-api",Dropdown.clearMenus),EventHandler.on(document,"click.bs.dropdown.data-api",SELECTOR_DATA_TOGGLE$3,(function(event){event.preventDefault(),Dropdown.getOrCreateInstance(this).toggle()})),defineJQueryPlugin(Dropdown);const Default$8={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},DefaultType$8={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"};class Backdrop extends Config$1{constructor(config){super(),this._config=this._getConfig(config),this._isAppended=!1,this._element=null}static get Default(){return Default$8}static get DefaultType(){return DefaultType$8}static get NAME(){return"backdrop"}show(callback){if(!this._config.isVisible)return void execute(callback);this._append();const element=this._getElement();this._config.isAnimated&&reflow(element),element.classList.add("show"),this._emulateAnimation((()=>{execute(callback)}))}hide(callback){this._config.isVisible?(this._getElement().classList.remove("show"),this._emulateAnimation((()=>{this.dispose(),execute(callback)}))):execute(callback)}dispose(){this._isAppended&&(EventHandler.off(this._element,"mousedown.bs.backdrop"),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const backdrop=document.createElement("div");backdrop.className=this._config.className,this._config.isAnimated&&backdrop.classList.add("fade"),this._element=backdrop}return this._element}_configAfterMerge(config){return config.rootElement=getElement(config.rootElement),config}_append(){if(this._isAppended)return;const element=this._getElement();this._config.rootElement.append(element),EventHandler.on(element,"mousedown.bs.backdrop",(()=>{execute(this._config.clickCallback)})),this._isAppended=!0}_emulateAnimation(callback){executeAfterTransition(callback,this._getElement(),this._config.isAnimated)}}const Default$7={autofocus:!0,trapElement:null},DefaultType$7={autofocus:"boolean",trapElement:"element"};class FocusTrap extends Config$1{constructor(config){super(),this._config=this._getConfig(config),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return Default$7}static get DefaultType(){return DefaultType$7}static get NAME(){return"focustrap"}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),EventHandler.off(document,".bs.focustrap"),EventHandler.on(document,"focusin.bs.focustrap",(event=>this._handleFocusin(event))),EventHandler.on(document,"keydown.tab.bs.focustrap",(event=>this._handleKeydown(event))),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,EventHandler.off(document,".bs.focustrap"))}_handleFocusin(event){const{trapElement:trapElement}=this._config;if(event.target===document||event.target===trapElement||trapElement.contains(event.target))return;const elements=SelectorEngine.focusableChildren(trapElement);0===elements.length?trapElement.focus():"backward"===this._lastTabNavDirection?elements[elements.length-1].focus():elements[0].focus()}_handleKeydown(event){"Tab"===event.key&&(this._lastTabNavDirection=event.shiftKey?"backward":"forward")}}class ScrollBarHelper{constructor(){this._element=document.body}getWidth(){const documentWidth=document.documentElement.clientWidth;return Math.abs(window.innerWidth-documentWidth)}hide(){const width=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,"padding-right",(calculatedValue=>calculatedValue+width)),this._setElementAttributes(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top","padding-right",(calculatedValue=>calculatedValue+width)),this._setElementAttributes(".sticky-top","margin-right",(calculatedValue=>calculatedValue-width))}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,"padding-right"),this._resetElementAttributes(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top","padding-right"),this._resetElementAttributes(".sticky-top","margin-right")}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(selector,styleProperty,callback){const scrollbarWidth=this.getWidth();this._applyManipulationCallback(selector,(element=>{if(element!==this._element&&window.innerWidth>element.clientWidth+scrollbarWidth)return;this._saveInitialAttribute(element,styleProperty);const calculatedValue=window.getComputedStyle(element).getPropertyValue(styleProperty);element.style.setProperty(styleProperty,`${callback(Number.parseFloat(calculatedValue))}px`)}))}_saveInitialAttribute(element,styleProperty){const actualValue=element.style.getPropertyValue(styleProperty);actualValue&&Manipulator.setDataAttribute(element,styleProperty,actualValue)}_resetElementAttributes(selector,styleProperty){this._applyManipulationCallback(selector,(element=>{const value=Manipulator.getDataAttribute(element,styleProperty);null!==value?(Manipulator.removeDataAttribute(element,styleProperty),element.style.setProperty(styleProperty,value)):element.style.removeProperty(styleProperty)}))}_applyManipulationCallback(selector,callBack){if(isElement$2(selector))callBack(selector);else for(const sel of SelectorEngine.find(selector,this._element))callBack(sel)}}const Default$6={backdrop:!0,focus:!0,keyboard:!0},DefaultType$6={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"};class Modal extends BaseComponent{constructor(element,config){super(element,config),this._dialog=SelectorEngine.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new ScrollBarHelper,this._addEventListeners()}static get Default(){return Default$6}static get DefaultType(){return DefaultType$6}static get NAME(){return"modal"}toggle(relatedTarget){return this._isShown?this.hide():this.show(relatedTarget)}show(relatedTarget){if(this._isShown||this._isTransitioning)return;EventHandler.trigger(this._element,"show.bs.modal",{relatedTarget:relatedTarget}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add("modal-open"),this._adjustDialog(),this._backdrop.show((()=>this._showElement(relatedTarget))))}hide(){if(!this._isShown||this._isTransitioning)return;EventHandler.trigger(this._element,"hide.bs.modal").defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove("show"),this._queueCallback((()=>this._hideModal()),this._element,this._isAnimated()))}dispose(){EventHandler.off(window,".bs.modal"),EventHandler.off(this._dialog,".bs.modal"),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new Backdrop({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new FocusTrap({trapElement:this._element})}_showElement(relatedTarget){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;const modalBody=SelectorEngine.findOne(".modal-body",this._dialog);modalBody&&(modalBody.scrollTop=0),reflow(this._element),this._element.classList.add("show");this._queueCallback((()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,EventHandler.trigger(this._element,"shown.bs.modal",{relatedTarget:relatedTarget})}),this._dialog,this._isAnimated())}_addEventListeners(){EventHandler.on(this._element,"keydown.dismiss.bs.modal",(event=>{"Escape"===event.key&&(this._config.keyboard?this.hide():this._triggerBackdropTransition())})),EventHandler.on(window,"resize.bs.modal",(()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()})),EventHandler.on(this._element,"mousedown.dismiss.bs.modal",(event=>{EventHandler.one(this._element,"click.dismiss.bs.modal",(event2=>{this._element===event.target&&this._element===event2.target&&("static"!==this._config.backdrop?this._config.backdrop&&this.hide():this._triggerBackdropTransition())}))}))}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide((()=>{document.body.classList.remove("modal-open"),this._resetAdjustments(),this._scrollBar.reset(),EventHandler.trigger(this._element,"hidden.bs.modal")}))}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(EventHandler.trigger(this._element,"hidePrevented.bs.modal").defaultPrevented)return;const isModalOverflowing=this._element.scrollHeight>document.documentElement.clientHeight,initialOverflowY=this._element.style.overflowY;"hidden"===initialOverflowY||this._element.classList.contains("modal-static")||(isModalOverflowing||(this._element.style.overflowY="hidden"),this._element.classList.add("modal-static"),this._queueCallback((()=>{this._element.classList.remove("modal-static"),this._queueCallback((()=>{this._element.style.overflowY=initialOverflowY}),this._dialog)}),this._dialog),this._element.focus())}_adjustDialog(){const isModalOverflowing=this._element.scrollHeight>document.documentElement.clientHeight,scrollbarWidth=this._scrollBar.getWidth(),isBodyOverflowing=scrollbarWidth>0;if(isBodyOverflowing&&!isModalOverflowing){const property=isRTL$1()?"paddingLeft":"paddingRight";this._element.style[property]=`${scrollbarWidth}px`}if(!isBodyOverflowing&&isModalOverflowing){const property=isRTL$1()?"paddingRight":"paddingLeft";this._element.style[property]=`${scrollbarWidth}px`}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(config,relatedTarget){return this.each((function(){const data=Modal.getOrCreateInstance(this,config);if("string"==typeof config){if(void 0===data[config])throw new TypeError(`No method named "${config}"`);data[config](relatedTarget)}}))}}EventHandler.on(document,"click.bs.modal.data-api",'[data-bs-toggle="modal"]',(function(event){const target=SelectorEngine.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&event.preventDefault(),EventHandler.one(target,"show.bs.modal",(showEvent=>{showEvent.defaultPrevented||EventHandler.one(target,"hidden.bs.modal",(()=>{isVisible(this)&&this.focus()}))}));const alreadyOpen=SelectorEngine.findOne(".modal.show");alreadyOpen&&Modal.getInstance(alreadyOpen).hide();Modal.getOrCreateInstance(target).toggle(this)})),enableDismissTrigger(Modal),defineJQueryPlugin(Modal);const EVENT_KEY$3=".bs.offcanvas",EVENT_LOAD_DATA_API$2=`load${EVENT_KEY$3}.data-api`,EVENT_SHOW$3=`show${EVENT_KEY$3}`,EVENT_SHOWN$3=`shown${EVENT_KEY$3}`,EVENT_HIDE$3=`hide${EVENT_KEY$3}`,EVENT_HIDE_PREVENTED=`hidePrevented${EVENT_KEY$3}`,EVENT_HIDDEN$3=`hidden${EVENT_KEY$3}`,EVENT_RESIZE=`resize${EVENT_KEY$3}`,EVENT_CLICK_DATA_API$1=`click${EVENT_KEY$3}.data-api`,EVENT_KEYDOWN_DISMISS=`keydown.dismiss${EVENT_KEY$3}`,Default$5={backdrop:!0,keyboard:!0,scroll:!1},DefaultType$5={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class Offcanvas extends BaseComponent{constructor(element,config){super(element,config),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return Default$5}static get DefaultType(){return DefaultType$5}static get NAME(){return"offcanvas"}toggle(relatedTarget){return this._isShown?this.hide():this.show(relatedTarget)}show(relatedTarget){if(this._isShown)return;if(EventHandler.trigger(this._element,EVENT_SHOW$3,{relatedTarget:relatedTarget}).defaultPrevented)return;this._isShown=!0,this._backdrop.show(),this._config.scroll||(new ScrollBarHelper).hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add("showing");this._queueCallback((()=>{this._config.scroll&&!this._config.backdrop||this._focustrap.activate(),this._element.classList.add("show"),this._element.classList.remove("showing"),EventHandler.trigger(this._element,EVENT_SHOWN$3,{relatedTarget:relatedTarget})}),this._element,!0)}hide(){if(!this._isShown)return;if(EventHandler.trigger(this._element,EVENT_HIDE$3).defaultPrevented)return;this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add("hiding"),this._backdrop.hide();this._queueCallback((()=>{this._element.classList.remove("show","hiding"),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||(new ScrollBarHelper).reset(),EventHandler.trigger(this._element,EVENT_HIDDEN$3)}),this._element,!0)}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const isVisible=Boolean(this._config.backdrop);return new Backdrop({className:"offcanvas-backdrop",isVisible:isVisible,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:isVisible?()=>{"static"!==this._config.backdrop?this.hide():EventHandler.trigger(this._element,EVENT_HIDE_PREVENTED)}:null})}_initializeFocusTrap(){return new FocusTrap({trapElement:this._element})}_addEventListeners(){EventHandler.on(this._element,EVENT_KEYDOWN_DISMISS,(event=>{"Escape"===event.key&&(this._config.keyboard?this.hide():EventHandler.trigger(this._element,EVENT_HIDE_PREVENTED))}))}static jQueryInterface(config){return this.each((function(){const data=Offcanvas.getOrCreateInstance(this,config);if("string"==typeof config){if(void 0===data[config]||config.startsWith("_")||"constructor"===config)throw new TypeError(`No method named "${config}"`);data[config](this)}}))}}EventHandler.on(document,EVENT_CLICK_DATA_API$1,'[data-bs-toggle="offcanvas"]',(function(event){const target=SelectorEngine.getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&event.preventDefault(),isDisabled(this))return;EventHandler.one(target,EVENT_HIDDEN$3,(()=>{isVisible(this)&&this.focus()}));const alreadyOpen=SelectorEngine.findOne(".offcanvas.show");alreadyOpen&&alreadyOpen!==target&&Offcanvas.getInstance(alreadyOpen).hide();Offcanvas.getOrCreateInstance(target).toggle(this)})),EventHandler.on(window,EVENT_LOAD_DATA_API$2,(()=>{for(const selector of SelectorEngine.find(".offcanvas.show"))Offcanvas.getOrCreateInstance(selector).show()})),EventHandler.on(window,EVENT_RESIZE,(()=>{for(const element of SelectorEngine.find("[aria-modal][class*=show][class*=offcanvas-]"))"fixed"!==getComputedStyle(element).position&&Offcanvas.getOrCreateInstance(element).hide()})),enableDismissTrigger(Offcanvas),defineJQueryPlugin(Offcanvas);const DefaultAllowlist={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},uriAttributes=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),SAFE_URL_PATTERN=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,allowedAttribute=(attribute,allowedAttributeList)=>{const attributeName=attribute.nodeName.toLowerCase();return allowedAttributeList.includes(attributeName)?!uriAttributes.has(attributeName)||Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue)):allowedAttributeList.filter((attributeRegex=>attributeRegex instanceof RegExp)).some((regex=>regex.test(attributeName)))};const Default$4={allowList:DefaultAllowlist,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"<div></div>"},DefaultType$4={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},DefaultContentType={entry:"(string|element|function|null)",selector:"(string|element)"};class TemplateFactory extends Config$1{constructor(config){super(),this._config=this._getConfig(config)}static get Default(){return Default$4}static get DefaultType(){return DefaultType$4}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map((config=>this._resolvePossibleFunction(config))).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(content){return this._checkContent(content),this._config.content={...this._config.content,...content},this}toHtml(){const templateWrapper=document.createElement("div");templateWrapper.innerHTML=this._maybeSanitize(this._config.template);for(const[selector,text]of Object.entries(this._config.content))this._setContent(templateWrapper,text,selector);const template=templateWrapper.children[0],extraClass=this._resolvePossibleFunction(this._config.extraClass);return extraClass&&template.classList.add(...extraClass.split(" ")),template}_typeCheckConfig(config){super._typeCheckConfig(config),this._checkContent(config.content)}_checkContent(arg){for(const[selector,content]of Object.entries(arg))super._typeCheckConfig({selector:selector,entry:content},DefaultContentType)}_setContent(template,content,selector){const templateElement=SelectorEngine.findOne(selector,template);templateElement&&((content=this._resolvePossibleFunction(content))?isElement$2(content)?this._putElementInTemplate(getElement(content),templateElement):this._config.html?templateElement.innerHTML=this._maybeSanitize(content):templateElement.textContent=content:templateElement.remove())}_maybeSanitize(arg){return this._config.sanitize?function(unsafeHtml,allowList,sanitizeFunction){if(!unsafeHtml.length)return unsafeHtml;if(sanitizeFunction&&"function"==typeof sanitizeFunction)return sanitizeFunction(unsafeHtml);const createdDocument=(new window.DOMParser).parseFromString(unsafeHtml,"text/html"),elements=[].concat(...createdDocument.body.querySelectorAll("*"));for(const element of elements){const elementName=element.nodeName.toLowerCase();if(!Object.keys(allowList).includes(elementName)){element.remove();continue}const attributeList=[].concat(...element.attributes),allowedAttributes=[].concat(allowList["*"]||[],allowList[elementName]||[]);for(const attribute of attributeList)allowedAttribute(attribute,allowedAttributes)||element.removeAttribute(attribute.nodeName)}return createdDocument.body.innerHTML}(arg,this._config.allowList,this._config.sanitizeFn):arg}_resolvePossibleFunction(arg){return execute(arg,[this])}_putElementInTemplate(element,templateElement){if(this._config.html)return templateElement.innerHTML="",void templateElement.append(element);templateElement.textContent=element.textContent}}const DISALLOWED_ATTRIBUTES=new Set(["sanitize","allowList","sanitizeFn"]),AttachmentMap={AUTO:"auto",TOP:"top",RIGHT:isRTL$1()?"left":"right",BOTTOM:"bottom",LEFT:isRTL$1()?"right":"left"},Default$3={allowList:DefaultAllowlist,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',title:"",trigger:"hover focus"},DefaultType$3={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class Tooltip extends BaseComponent{constructor(element,config){if(void 0===Popper)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(element,config),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return Default$3}static get DefaultType(){return DefaultType$3}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),EventHandler.off(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const showEvent=EventHandler.trigger(this._element,this.constructor.eventName("show")),isInTheDom=(findShadowRoot(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(showEvent.defaultPrevented||!isInTheDom)return;this._disposePopper();const tip=this._getTipElement();this._element.setAttribute("aria-describedby",tip.getAttribute("id"));const{container:container}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(container.append(tip),EventHandler.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(tip),tip.classList.add("show"),"ontouchstart"in document.documentElement)for(const element of[].concat(...document.body.children))EventHandler.on(element,"mouseover",noop$1);this._queueCallback((()=>{EventHandler.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}hide(){if(!this._isShown())return;if(EventHandler.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented)return;if(this._getTipElement().classList.remove("show"),"ontouchstart"in document.documentElement)for(const element of[].concat(...document.body.children))EventHandler.off(element,"mouseover",noop$1);this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,this._isHovered=null;this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),EventHandler.trigger(this._element,this.constructor.eventName("hidden")))}),this.tip,this._isAnimated())}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(content){const tip=this._getTemplateFactory(content).toHtml();if(!tip)return null;tip.classList.remove("fade","show"),tip.classList.add(`bs-${this.constructor.NAME}-auto`);const tipId=(prefix=>{do{prefix+=Math.floor(1e6*Math.random())}while(document.getElementById(prefix));return prefix})(this.constructor.NAME).toString();return tip.setAttribute("id",tipId),this._isAnimated()&&tip.classList.add("fade"),tip}setContent(content){this._newContent=content,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(content){return this._templateFactory?this._templateFactory.changeContent(content):this._templateFactory=new TemplateFactory({...this._config,content:content,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{".tooltip-inner":this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(event){return this.constructor.getOrCreateInstance(event.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains("fade")}_isShown(){return this.tip&&this.tip.classList.contains("show")}_createPopper(tip){const placement=execute(this._config.placement,[this,tip,this._element]),attachment=AttachmentMap[placement.toUpperCase()];return createPopper(this._element,tip,this._getPopperConfig(attachment))}_getOffset(){const{offset:offset}=this._config;return"string"==typeof offset?offset.split(",").map((value=>Number.parseInt(value,10))):"function"==typeof offset?popperData=>offset(popperData,this._element):offset}_resolvePossibleFunction(arg){return execute(arg,[this._element])}_getPopperConfig(attachment){const defaultBsPopperConfig={placement:attachment,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:data=>{this._getTipElement().setAttribute("data-popper-placement",data.state.placement)}}]};return{...defaultBsPopperConfig,...execute(this._config.popperConfig,[defaultBsPopperConfig])}}_setListeners(){const triggers=this._config.trigger.split(" ");for(const trigger of triggers)if("click"===trigger)EventHandler.on(this._element,this.constructor.eventName("click"),this._config.selector,(event=>{this._initializeOnDelegatedTarget(event).toggle()}));else if("manual"!==trigger){const eventIn="hover"===trigger?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),eventOut="hover"===trigger?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");EventHandler.on(this._element,eventIn,this._config.selector,(event=>{const context=this._initializeOnDelegatedTarget(event);context._activeTrigger["focusin"===event.type?"focus":"hover"]=!0,context._enter()})),EventHandler.on(this._element,eventOut,this._config.selector,(event=>{const context=this._initializeOnDelegatedTarget(event);context._activeTrigger["focusout"===event.type?"focus":"hover"]=context._element.contains(event.relatedTarget),context._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},EventHandler.on(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler)}_fixTitle(){const title=this._element.getAttribute("title");title&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",title),this._element.setAttribute("data-bs-original-title",title),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((()=>{this._isHovered&&this.show()}),this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((()=>{this._isHovered||this.hide()}),this._config.delay.hide))}_setTimeout(handler,timeout){clearTimeout(this._timeout),this._timeout=setTimeout(handler,timeout)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(config){const dataAttributes=Manipulator.getDataAttributes(this._element);for(const dataAttribute of Object.keys(dataAttributes))DISALLOWED_ATTRIBUTES.has(dataAttribute)&&delete dataAttributes[dataAttribute];return config={...dataAttributes,..."object"==typeof config&&config?config:{}},config=this._mergeConfigObj(config),config=this._configAfterMerge(config),this._typeCheckConfig(config),config}_configAfterMerge(config){return config.container=!1===config.container?document.body:getElement(config.container),"number"==typeof config.delay&&(config.delay={show:config.delay,hide:config.delay}),"number"==typeof config.title&&(config.title=config.title.toString()),"number"==typeof config.content&&(config.content=config.content.toString()),config}_getDelegateConfig(){const config={};for(const[key,value]of Object.entries(this._config))this.constructor.Default[key]!==value&&(config[key]=value);return config.selector=!1,config.trigger="manual",config}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(config){return this.each((function(){const data=Tooltip.getOrCreateInstance(this,config);if("string"==typeof config){if(void 0===data[config])throw new TypeError(`No method named "${config}"`);data[config]()}}))}}defineJQueryPlugin(Tooltip);const Default$2={...Tooltip.Default,content:"",offset:[0,8],placement:"right",template:'<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>',trigger:"click"},DefaultType$2={...Tooltip.DefaultType,content:"(null|string|element|function)"};class Popover extends Tooltip{static get Default(){return Default$2}static get DefaultType(){return DefaultType$2}static get NAME(){return"popover"}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{".popover-header":this._getTitle(),".popover-body":this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(config){return this.each((function(){const data=Popover.getOrCreateInstance(this,config);if("string"==typeof config){if(void 0===data[config])throw new TypeError(`No method named "${config}"`);data[config]()}}))}}defineJQueryPlugin(Popover);const Default$1={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},DefaultType$1={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"};class ScrollSpy extends BaseComponent{constructor(element,config){super(element,config),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement="visible"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return Default$1}static get DefaultType(){return DefaultType$1}static get NAME(){return"scrollspy"}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const section of this._observableSections.values())this._observer.observe(section)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(config){return config.target=getElement(config.target)||document.body,config.rootMargin=config.offset?`${config.offset}px 0px -30%`:config.rootMargin,"string"==typeof config.threshold&&(config.threshold=config.threshold.split(",").map((value=>Number.parseFloat(value)))),config}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(EventHandler.off(this._config.target,"click.bs.scrollspy"),EventHandler.on(this._config.target,"click.bs.scrollspy","[href]",(event=>{const observableSection=this._observableSections.get(event.target.hash);if(observableSection){event.preventDefault();const root=this._rootElement||window,height=observableSection.offsetTop-this._element.offsetTop;if(root.scrollTo)return void root.scrollTo({top:height,behavior:"smooth"});root.scrollTop=height}})))}_getNewObserver(){const options={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver((entries=>this._observerCallback(entries)),options)}_observerCallback(entries){const targetElement=entry=>this._targetLinks.get(`#${entry.target.id}`),activate=entry=>{this._previousScrollData.visibleEntryTop=entry.target.offsetTop,this._process(targetElement(entry))},parentScrollTop=(this._rootElement||document.documentElement).scrollTop,userScrollsDown=parentScrollTop>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=parentScrollTop;for(const entry of entries){if(!entry.isIntersecting){this._activeTarget=null,this._clearActiveClass(targetElement(entry));continue}const entryIsLowerThanPrevious=entry.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(userScrollsDown&&entryIsLowerThanPrevious){if(activate(entry),!parentScrollTop)return}else userScrollsDown||entryIsLowerThanPrevious||activate(entry)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const targetLinks=SelectorEngine.find("[href]",this._config.target);for(const anchor of targetLinks){if(!anchor.hash||isDisabled(anchor))continue;const observableSection=SelectorEngine.findOne(decodeURI(anchor.hash),this._element);isVisible(observableSection)&&(this._targetLinks.set(decodeURI(anchor.hash),anchor),this._observableSections.set(anchor.hash,observableSection))}}_process(target){this._activeTarget!==target&&(this._clearActiveClass(this._config.target),this._activeTarget=target,target.classList.add("active"),this._activateParents(target),EventHandler.trigger(this._element,"activate.bs.scrollspy",{relatedTarget:target}))}_activateParents(target){if(target.classList.contains("dropdown-item"))SelectorEngine.findOne(".dropdown-toggle",target.closest(".dropdown")).classList.add("active");else for(const listGroup of SelectorEngine.parents(target,".nav, .list-group"))for(const item of SelectorEngine.prev(listGroup,".nav-link, .nav-item > .nav-link, .list-group-item"))item.classList.add("active")}_clearActiveClass(parent){parent.classList.remove("active");const activeNodes=SelectorEngine.find("[href].active",parent);for(const node of activeNodes)node.classList.remove("active")}static jQueryInterface(config){return this.each((function(){const data=ScrollSpy.getOrCreateInstance(this,config);if("string"==typeof config){if(void 0===data[config]||config.startsWith("_")||"constructor"===config)throw new TypeError(`No method named "${config}"`);data[config]()}}))}}EventHandler.on(window,"load.bs.scrollspy.data-api",(()=>{for(const spy of SelectorEngine.find('[data-bs-spy="scroll"]'))ScrollSpy.getOrCreateInstance(spy)})),defineJQueryPlugin(ScrollSpy);const ARROW_LEFT_KEY="ArrowLeft",ARROW_RIGHT_KEY="ArrowRight",ARROW_UP_KEY="ArrowUp",ARROW_DOWN_KEY="ArrowDown",HOME_KEY="Home",END_KEY="End",SELECTOR_DATA_TOGGLE='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',SELECTOR_INNER_ELEM=`.nav-link:not(.dropdown-toggle), .list-group-item:not(.dropdown-toggle), [role="tab"]:not(.dropdown-toggle), ${SELECTOR_DATA_TOGGLE}`;class Tab extends BaseComponent{constructor(element){super(element),this._parent=this._element.closest('.list-group, .nav, [role="tablist"]'),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),EventHandler.on(this._element,"keydown.bs.tab",(event=>this._keydown(event))))}static get NAME(){return"tab"}show(){const innerElem=this._element;if(this._elemIsActive(innerElem))return;const active=this._getActiveElem(),hideEvent=active?EventHandler.trigger(active,"hide.bs.tab",{relatedTarget:innerElem}):null;EventHandler.trigger(innerElem,"show.bs.tab",{relatedTarget:active}).defaultPrevented||hideEvent&&hideEvent.defaultPrevented||(this._deactivate(active,innerElem),this._activate(innerElem,active))}_activate(element,relatedElem){if(!element)return;element.classList.add("active"),this._activate(SelectorEngine.getElementFromSelector(element));this._queueCallback((()=>{"tab"===element.getAttribute("role")?(element.removeAttribute("tabindex"),element.setAttribute("aria-selected",!0),this._toggleDropDown(element,!0),EventHandler.trigger(element,"shown.bs.tab",{relatedTarget:relatedElem})):element.classList.add("show")}),element,element.classList.contains("fade"))}_deactivate(element,relatedElem){if(!element)return;element.classList.remove("active"),element.blur(),this._deactivate(SelectorEngine.getElementFromSelector(element));this._queueCallback((()=>{"tab"===element.getAttribute("role")?(element.setAttribute("aria-selected",!1),element.setAttribute("tabindex","-1"),this._toggleDropDown(element,!1),EventHandler.trigger(element,"hidden.bs.tab",{relatedTarget:relatedElem})):element.classList.remove("show")}),element,element.classList.contains("fade"))}_keydown(event){if(![ARROW_LEFT_KEY,ARROW_RIGHT_KEY,ARROW_UP_KEY,ARROW_DOWN_KEY,HOME_KEY,END_KEY].includes(event.key))return;event.stopPropagation(),event.preventDefault();const children=this._getChildren().filter((element=>!isDisabled(element)));let nextActiveElement;if([HOME_KEY,END_KEY].includes(event.key))nextActiveElement=children[event.key===HOME_KEY?0:children.length-1];else{const isNext=[ARROW_RIGHT_KEY,ARROW_DOWN_KEY].includes(event.key);nextActiveElement=getNextActiveElement(children,event.target,isNext,!0)}nextActiveElement&&(nextActiveElement.focus({preventScroll:!0}),Tab.getOrCreateInstance(nextActiveElement).show())}_getChildren(){return SelectorEngine.find(SELECTOR_INNER_ELEM,this._parent)}_getActiveElem(){return this._getChildren().find((child=>this._elemIsActive(child)))||null}_setInitialAttributes(parent,children){this._setAttributeIfNotExists(parent,"role","tablist");for(const child of children)this._setInitialAttributesOnChild(child)}_setInitialAttributesOnChild(child){child=this._getInnerElement(child);const isActive=this._elemIsActive(child),outerElem=this._getOuterElement(child);child.setAttribute("aria-selected",isActive),outerElem!==child&&this._setAttributeIfNotExists(outerElem,"role","presentation"),isActive||child.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(child,"role","tab"),this._setInitialAttributesOnTargetPanel(child)}_setInitialAttributesOnTargetPanel(child){const target=SelectorEngine.getElementFromSelector(child);target&&(this._setAttributeIfNotExists(target,"role","tabpanel"),child.id&&this._setAttributeIfNotExists(target,"aria-labelledby",`${child.id}`))}_toggleDropDown(element,open){const outerElem=this._getOuterElement(element);if(!outerElem.classList.contains("dropdown"))return;const toggle=(selector,className)=>{const element=SelectorEngine.findOne(selector,outerElem);element&&element.classList.toggle(className,open)};toggle(".dropdown-toggle","active"),toggle(".dropdown-menu","show"),outerElem.setAttribute("aria-expanded",open)}_setAttributeIfNotExists(element,attribute,value){element.hasAttribute(attribute)||element.setAttribute(attribute,value)}_elemIsActive(elem){return elem.classList.contains("active")}_getInnerElement(elem){return elem.matches(SELECTOR_INNER_ELEM)?elem:SelectorEngine.findOne(SELECTOR_INNER_ELEM,elem)}_getOuterElement(elem){return elem.closest(".nav-item, .list-group-item")||elem}static jQueryInterface(config){return this.each((function(){const data=Tab.getOrCreateInstance(this);if("string"==typeof config){if(void 0===data[config]||config.startsWith("_")||"constructor"===config)throw new TypeError(`No method named "${config}"`);data[config]()}}))}}EventHandler.on(document,"click.bs.tab",SELECTOR_DATA_TOGGLE,(function(event){["A","AREA"].includes(this.tagName)&&event.preventDefault(),isDisabled(this)||Tab.getOrCreateInstance(this).show()})),EventHandler.on(window,"load.bs.tab",(()=>{for(const element of SelectorEngine.find('.active[data-bs-toggle="tab"], .active[data-bs-toggle="pill"], .active[data-bs-toggle="list"]'))Tab.getOrCreateInstance(element)})),defineJQueryPlugin(Tab);const DefaultType={animation:"boolean",autohide:"boolean",delay:"number"},Default={animation:!0,autohide:!0,delay:5e3};class Toast extends BaseComponent{constructor(element,config){super(element,config),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return Default}static get DefaultType(){return DefaultType}static get NAME(){return"toast"}show(){if(EventHandler.trigger(this._element,"show.bs.toast").defaultPrevented)return;this._clearTimeout(),this._config.animation&&this._element.classList.add("fade");this._element.classList.remove("hide"),reflow(this._element),this._element.classList.add("show","showing"),this._queueCallback((()=>{this._element.classList.remove("showing"),EventHandler.trigger(this._element,"shown.bs.toast"),this._maybeScheduleHide()}),this._element,this._config.animation)}hide(){if(!this.isShown())return;if(EventHandler.trigger(this._element,"hide.bs.toast").defaultPrevented)return;this._element.classList.add("showing"),this._queueCallback((()=>{this._element.classList.add("hide"),this._element.classList.remove("showing","show"),EventHandler.trigger(this._element,"hidden.bs.toast")}),this._element,this._config.animation)}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove("show"),super.dispose()}isShown(){return this._element.classList.contains("show")}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout((()=>{this.hide()}),this._config.delay)))}_onInteraction(event,isInteracting){switch(event.type){case"mouseover":case"mouseout":this._hasMouseInteraction=isInteracting;break;case"focusin":case"focusout":this._hasKeyboardInteraction=isInteracting}if(isInteracting)return void this._clearTimeout();const nextElement=event.relatedTarget;this._element===nextElement||this._element.contains(nextElement)||this._maybeScheduleHide()}_setListeners(){EventHandler.on(this._element,"mouseover.bs.toast",(event=>this._onInteraction(event,!0))),EventHandler.on(this._element,"mouseout.bs.toast",(event=>this._onInteraction(event,!1))),EventHandler.on(this._element,"focusin.bs.toast",(event=>this._onInteraction(event,!0))),EventHandler.on(this._element,"focusout.bs.toast",(event=>this._onInteraction(event,!1)))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(config){return this.each((function(){const data=Toast.getOrCreateInstance(this,config);if("string"==typeof config){if(void 0===data[config])throw new TypeError(`No method named "${config}"`);data[config](this)}}))}}enableDismissTrigger(Toast),defineJQueryPlugin(Toast);const reRelativePath=/^\.+(\\|\/)|^\.+$/,reTrailingPeriods=/\.+$/;function filenamify(string,options={}){const reControlChars=/[\u0000-\u001F\u0080-\u009F]/g,reRepeatedReservedCharacters=/([<>:"/\\|?*\u0000-\u001F]){2,}/g;if("string"!=typeof string)throw new TypeError("Expected a string");const replacement=void 0===options.replacement?"!":options.replacement;if(/[<>:"/\\|?*\u0000-\u001F]/g.test(replacement)&&reControlChars.test(replacement))throw new Error("Replacement string cannot contain reserved filename characters");if(replacement.length>0&&(string=string.replace(reRepeatedReservedCharacters,"$1")),string=(string=(string=(string=(string=string.normalize("NFD")).replace(reRelativePath,replacement)).replace(/[<>:"/\\|?*\u0000-\u001F]/g,replacement)).replace(reControlChars,replacement)).replace(reTrailingPeriods,""),replacement.length>0){"."===string[0]||"."!==string[0]||(string=replacement+string),"."===string[string.length-1]&&(string+=replacement)}string=/^(con|prn|aux|nul|com\d|lpt\d)$/i.test(string)?string+replacement:string;const allowedLength="number"==typeof options.maxLength?options.maxLength:100;if(string.length>allowedLength){const extensionIndex=string.lastIndexOf(".");if(-1===extensionIndex)string=string.slice(0,allowedLength);else{const filename=string.slice(0,extensionIndex),extension=string.slice(extensionIndex);string=filename.slice(0,Math.max(1,allowedLength-extension.length))+extension}}return string}var __defProp=Object.defineProperty;function zeroPad(num,len=3){return String(num).padStart(len,"0")}function secondsToTimestamp$1(seconds,options={}){options={hours:!0,milliseconds:!1,...options};const date=new Date(1e3*Int(seconds)).toISOString();"00"!==date.slice(11,13)&&(options.hours=!0);const hms=date.slice(options.hours?11:14,19);if(options.milliseconds){let fraction="000";return seconds.toString().includes(".")&&(fraction=(String(seconds).split(".").pop()+"000").slice(0,3)),hms+"."+fraction}return hms}function NPTToSeconds(npt){const parts=npt.split("."),hms=parts[0].split(":"),ms=parts.length>1?Int(parts[1]):0;for(;hms.length<3;)hms.unshift("0");const[hours,minutes,seconds]=Ints(hms);return timestampToSeconds$1(`${zeroPad(hours.toString(),2)}:${zeroPad(minutes.toString(),2)}:${zeroPad(seconds.toString(),2)}.${zeroPad(ms.toString(),3)}`)}function secondsToNPT(seconds){if(0===seconds)return"0";const regularTimestamp=secondsToTimestamp$1(seconds,{milliseconds:!0});let[hoursAndMinutesAndSeconds,milliseconds]=regularTimestamp.split(".");const[hours,minutes,secondsOnly]=Ints(hoursAndMinutesAndSeconds.split(":"));if(milliseconds="000"===milliseconds?"":"."+milliseconds,0===hours&&0===minutes)return`${secondsOnly}${milliseconds}`;const secondsString=zeroPad(secondsOnly,2);if(0===hours)return`${minutes}:${secondsString}${milliseconds}`;return`${hours}:${zeroPad(minutes,2)}:${secondsString}${milliseconds}`}function timestampToSeconds$1(timestamp,fixedString=!1){let[seconds,minutes,hours]=Ints(timestamp.split(":")).reverse(),milliseconds=timestamp.split(".").length>1?Int(timestamp.split(".").pop()):0;if(hours||(hours=0),minutes||(minutes=0),seconds||(seconds=0),milliseconds>0&&(milliseconds/=1e3),seconds>59){const extraMinutes=Math.floor(seconds/60);minutes+=extraMinutes,seconds-=60*extraMinutes}if(minutes>59){const extraHours=Math.floor(minutes/60);hours+=extraHours,minutes-=60*extraHours}return fixedString?Float((3600*hours+60*minutes+seconds+milliseconds).toFixed(3)):3600*hours+60*minutes+seconds+milliseconds}function hash$1(){return(Math.random()+1).toString(16).substring(7)}function escapeRegExpCharacters(text){return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}function enforceMilliseconds(seconds){return Float(seconds.toFixed(3))}function formatBytes$1(bytes,decimals=2,format="kB"){if(bytes<1)return"0 B";const k="kB"===format?1e3:1024,i=Math.floor(Math.log(bytes)/Math.log(k)),sizes=["","K","M","G","T","P","E","Z","Y"],suffix=["kB"===format?sizes[i].toLowerCase():sizes[i],"B"];return"KiB"===format&&suffix.splice(1,0,"i"),Float(bytes/Math.pow(k,i)).toFixed(decimals)+" "+suffix.join("")}function Int(value,defaultValue=0){const i=parseInt(String(value||defaultValue));return Number.isNaN(i)?defaultValue:i}function Float(value,defaultValue=0){const f=parseFloat(String(value||defaultValue));return Number.isNaN(f)?defaultValue:f}function Ints(value,defaultValue=0){return value.map((i=>Int(i,defaultValue)))}function Floats(value,defaultValue=0){return value.map((i=>Float(i,defaultValue)))}function indenter(spacesPerDepth=2){const character=0===spacesPerDepth?"":" ";return function(depth,string){return character.repeat(depth*spacesPerDepth)+string}}function stringToLines(string){return string.split(/\r?\n/).filter((line=>line.trim().length>0)).map((line=>line.trim()))}function toSeconds(input){return"number"==typeof input?input:input.includes(":")?timestampToSeconds$1(input):Float(input)}((target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})})({},{Float:()=>Float,Floats:()=>Floats,Int:()=>Int,Ints:()=>Ints,NPTToSeconds:()=>NPTToSeconds,enforceMilliseconds:()=>enforceMilliseconds,escapeRegExpCharacters:()=>escapeRegExpCharacters,formatBytes:()=>formatBytes$1,hash:()=>hash$1,indenter:()=>indenter,secondsToNPT:()=>secondsToNPT,secondsToTimestamp:()=>secondsToTimestamp$1,stringToLines:()=>stringToLines,timestampToSeconds:()=>timestampToSeconds$1,toSeconds:()=>toSeconds,zeroPad:()=>zeroPad});var Base=class{supportsPrettyPrint=!1;chapterTitleTemplate="Chapter $chapter of $total";chapters=[];defaultMeta={author:"",title:"",podcastName:"",description:"",fileName:"",waypoints:!1,version:"1.2.0"};meta={...this.defaultMeta};filename="chapters.json";mimeType="application/json";duration=0;isChapterFormat=!0;constructor(duration=3600){this.duration=Float(duration)}static create(input,duration){return new this(duration).from(input)}from(input){if(!input)throw new Error("No input provided");if("string"==typeof input?this.parse(input):"isChapterFormat"in input&&(this.chapters=JSON.parse(JSON.stringify(input.chapters)),this.meta={...this.meta,...JSON.parse(JSON.stringify(input.meta))}),this.chapters.length>0){const chapter=this.chapters.at(-1);chapter.endTime?this.duration=chapter.endTime:chapter.startTime&&(this.duration=chapter.startTime)}return this.bump(),this}detect(inputString){try{const data=JSON.parse(inputString),{errors:errors}=this.test(data);if(errors.length>0)throw new Error("data test failed")}catch(e){return!1}return!0}test(data){return"chapters"in data?"version"in data?{errors:[]}:{errors:['JSON Structure: missing "version"']}:{errors:['JSON Structure: missing "chapters"']}}bump(keepDuration=!1){this.chapters.sort(((a,b)=>a.startTime-b.startTime));const lastChapter=this.chapters.at(-1);lastChapter&&!keepDuration&&(this.duration=Math.max(parseFloat(String(this.duration||0)),parseFloat(String(lastChapter.endTime??0)),parseFloat(String(lastChapter.startTime??0)))),this.chapters=this.chapters.map(((chapter,index)=>{const endTime=this.endTime(index),duration=endTime-this.chapters[index].startTime,timestampOptions={hours:!1};return{id:hash$1(),startTime:0,...chapter,endTime:endTime,duration:duration,startTime_hr:secondsToTimestamp$1(chapter.startTime,timestampOptions),endTime_hr:secondsToTimestamp$1(endTime,timestampOptions),duration_hr:secondsToTimestamp$1(duration,timestampOptions),..."toc"in chapter?{}:{toc:!0}}}))}endTime(index){return this.chapters[index+1]?this.chapters[index+1].startTime-.001:this.duration}expandFirstToStart(){this.chapters[0].startTime=0,this.bump()}add(chapter){this.chapters.push(chapter),this.bump()}remove(index){"blob:"===this.chapters[index]?.img?.slice(0,5)&&URL.revokeObjectURL(String(this.chapters[index].img)),this.chapters.splice(index,1),this.bump()}to(className){return className.create(this)}parse(string){const data=JSON.parse(string),{errors:errors}=this.test(data);if(errors.length>0)throw new Error(errors.join(""));this.chapters=data.chapters,this.chapters=this.chapters.map((chapter=>("img"in chapter&&("http"===chapter.img?.slice(0,4)?chapter.img_type="absolute":(chapter.img_type="relative",chapter.img_filename=chapter.img)),chapter))),this.meta=Object.fromEntries(Object.entries(this.meta).map((([key,value])=>[key,data[key]||value])))}toString(pretty=!1,exportOptions={}){const options={imagePrefix:"",writeRedundantToc:!1,writeEndTimes:!1,...exportOptions},defaultMetaProperties=Object.keys(this.defaultMeta);return JSON.stringify({...Object.fromEntries(Object.entries(this.meta).filter((([key,value])=>defaultMetaProperties.includes(key)&&""!==value&&!1!==value))),chapters:this.chapters.map((chapter=>{const filtered={startTime:enforceMilliseconds(chapter.startTime)};return options.writeEndTimes&&(filtered.endTime=enforceMilliseconds(chapter.endTime)),"toc"in chapter&&!1===chapter.toc&&(filtered.toc=!1),!("toc"in filtered)&&options.writeRedundantToc&&(filtered.toc=!0),["location","img","url","title"].forEach((property=>{const key=property;key in chapter&&String(chapter[key]).trim().length>0&&(filtered[key]=chapter[key])})),"img_filename"in chapter&&"img"in filtered&&"relative"===chapter.img_type&&(filtered.img=filenamify(chapter.img_filename)),options.imagePrefix.trim().length>0&&"img"in filtered&&["relative","blob"].includes(chapter.img_type)&&(filtered.img=options.imagePrefix+String(filtered.img)),filtered}))},null,pretty?2:0)}applyChapterMinLength(seconds){const originalIdMap=this.chapters.map((chapter=>String(chapter.id))),newChapters=[];let currentChapter,elapsed=0;this.chapters.forEach((chapter=>{elapsed+=chapter.duration,currentChapter||(currentChapter=chapter),elapsed>=seconds&&(delete currentChapter.endTime,delete currentChapter.duration,newChapters.push(currentChapter),currentChapter=null,elapsed=0)})),this.chapters=newChapters,this.bump();const newIdMap=Object.fromEntries(this.chapters.map(((c,i)=>[c.id,i])));return Object.fromEntries(originalIdMap.map(((id,index)=>[index,id in newIdMap?newIdMap[id]:"deleted"])))}addChapterAt(index,chapter={}){let startTime=0;if(index>this.chapters.length){const start=this.chapters.at(-1)?this.chapters.at(-1).startTime:0;startTime=start+.5*(this.duration-start)}else if(0===index)startTime=0;else{const start=this.chapters.at(index-1).startTime;startTime=start+.5*((this.chapters.at(index)?this.chapters.at(index).startTime:this.duration)-start)}return chapter&&"startTime"in chapter&&delete chapter.startTime,this.chapters.push({...chapter,id:hash$1(),startTime:startTime}),this.bump(),startTime}addChapterAtTime(time,chapter={}){const startTime=toSeconds(time);return!this.chapterExistsAtStartTime(startTime)&&(this.chapters.push({...chapter,id:hash$1(),startTime:startTime}),this.bump(),!0)}rebuildChapterTitles(template){this.chapters.forEach(((chapter,index)=>{this.chapters[index].title=this.getChapterTitle(index,template)}))}ensureTitle(index){return this.chapters[index].title??this.getChapterTitle(index)}getChapterTitle(index,template){return(template=template??this.chapterTitleTemplate).replace("$chapter",String(index+1)).replace("$total",String(this.chapters.length))}chapterExistsAtStartTime(time){return time=toSeconds(time),this.chapters.filter((c=>c.startTime===time)).length>0}updateChapterStartTime(index,startTime){const newStartTime=toSeconds(startTime);return this.chapterExistsAtStartTime(newStartTime)?"timeInUse":(newStartTime>this.duration&&(this.duration=newStartTime),this.chapters[index].startTime=newStartTime,this.bump(),newStartTime)}chapterIndexFromStartTime(startTime){return startTime=toSeconds(startTime),this.chapters.reduce(((newIndex,chapter,index)=>(chapter.startTime===startTime&&(newIndex=index),newIndex)),0)}chapterIndexFromTime(time){const timeStamp=toSeconds(time);return this.chapters.reduce(((newIndex,chapter,index)=>(timeStamp>chapter.startTime&&(newIndex=index),newIndex)),null)}ensureUniqueFilenames(){const usedFilenames=[];this.chapters=this.chapters.map((chapter=>{if("blob"!==chapter.img_type)return chapter;chapter.img_filename=filenamify(chapter.img_filename);let filename=chapter.img_filename;return usedFilenames.includes(filename)&&(filename=filename.replace(/(\.\w+)$/,`_${hash$1()}$1`),chapter.img_filename=filename),usedFilenames.push(filename),chapter}))}applyImgUri(imgUri){this.chapters.forEach(((chapter,i)=>{"img"in chapter&&(this.chapters[i].img=imgUri.replace(/\/*$/,"")+"/"+chapter.img.replace(/^\/*/,""))}))}},MatroskaXML=class extends Base{supportsPrettyPrint=!0;filename="matroska-chapters.xml";mimeType="text/xml";chapterStringNodeName="ChapString";inputTimeToSeconds(string){return Float(string)/1e9}secondsToOutputTime(seconds){return String(Int(String(1e9*seconds)))}detect(inputString){return/^<\?xml/.test(inputString.trim())&&inputString.includes("<Chapters>")&&inputString.includes(`<${this.chapterStringNodeName}>`)}parse(string){if(!this.detect(string))throw new Error("Input needs xml declaration and a <Chapters> node");let dom;"undefined"!=typeof DOMParser?dom=(new DOMParser).parseFromString(string,"application/xml"):(dom=new jsdom.JSDOM(string,{contentType:"application/xml"}),dom=dom.window.document),this.chapters=[...dom.querySelectorAll("ChapterAtom")].map((chapter=>({title:String(chapter.querySelector(this.chapterStringNodeName)?.textContent),startTime:this.inputTimeToSeconds(String(chapter.querySelector("ChapterTimeStart")?.textContent)),endTime:this.inputTimeToSeconds(String(chapter.querySelector("ChapterTimeEnd")?.textContent))})))}toString(pretty=!1){const indent=indenter(pretty?2:0),output=['<?xml version="1.0" encoding="UTF-8"?>','<!DOCTYPE Chapters SYSTEM "matroskachapters.dtd">',"<Chapters>",indent(1,"<EditionEntry>"),indent(2,`<EditionUID>${Date.now()}${Int(1e6*Math.random())}</EditionUID>`)];return this.chapters.forEach(((chapter,index)=>{output.push(indent(2,"<ChapterAtom>")),output.push(indent(3,`<ChapterTimeStart>${this.secondsToOutputTime(chapter.startTime)}</ChapterTimeStart>`)),output.push(indent(3,`<ChapterTimeEnd>${this.secondsToOutputTime(chapter.endTime)}</ChapterTimeEnd>`)),output.push(indent(3,`<ChapterUID>${Int(1+chapter.startTime)}${Int(1e6*Math.random())}</ChapterUID>`)),output.push(indent(3,"<ChapterDisplay>")),output.push(indent(4,`<${this.chapterStringNodeName}>${this.ensureTitle(index)}</${this.chapterStringNodeName}>`)),output.push(indent(3,"</ChapterDisplay>")),output.push(indent(2,"</ChapterAtom>"))})),output.push(indent(1,"</EditionEntry>"),"</Chapters>"),output.join(pretty?"\n":"")}},ChaptersJson=class extends Base{supportsPrettyPrint=!0},MKVMergeSimple=class extends Base{filename="mkvmerge-chapters.txt";mimeType="text/plain";zeroPad=2;detect(inputString){return new RegExp(`^CHAPTER${zeroPad(1,this.zeroPad)}`).test(inputString.trim())}parse(string){if(!this.detect(string))throw new Error(`File must start with CHAPTER${zeroPad(1,this.zeroPad)}`);const lines=string.split(/\r?\n/).filter((line=>line.trim().length>0)).map((line=>line.trim())),chapters=[];lines.forEach((line=>{const match=/^CHAPTER(?<index>\d+)(?<key>NAME)?=(?<value>.*)/.exec(line);if(!match?.groups)return!0;const index=Int(match.groups.index)-1,key="NAME"===match.groups.key?"title":"startTime",value="startTime"===key?timestampToSeconds$1(match.groups.value):match.groups.value;chapters[index]?chapters[index][key]=value:chapters[index]={[key]:value}})),this.chapters=chapters}toString(){return this.chapters.map(((chapter,index)=>{const i=zeroPad(index+1,this.zeroPad),output=[`CHAPTER${i}=${secondsToTimestamp$1(chapter.startTime,{hours:!0,milliseconds:!0})}`];return chapter.title&&chapter.title.trim().length>0&&output.push(`CHAPTER${i}NAME=${chapter.title}`),output.join("\n")})).join("\n")}},classMap={chaptersjson:ChaptersJson,ffmetadata:class extends Base{filename="FFMpegdata.txt";mimeType="text/plain";characters=["=",";","#","\\","\n"];safeCharacters=this.characters.map((char=>escapeRegExpCharacters(char))).join("|");unescapeRegexp=new RegExp("\\\\("+this.safeCharacters+")","g");escapeRegexp=new RegExp("("+this.safeCharacters+")","g");detect(inputString){return";FFMETADATA1"===inputString.trim().slice(0,12)}parse(string){if(!this.detect(string))throw new Error(";FFMETADATA1 header missing :(");const lines=stringToLines(string),chapters=[];let ignoreAllUntilNextChapter=!1,isMultilineTitle=!1;lines.forEach((line=>{const[key,value]=line.split("=");if(0!==chapters.length||"title"!==key){if("[CHAPTER]"===line){const c={startTime:0};return chapters.push(c),void(ignoreAllUntilNextChapter=!1)}"["===line.slice(0,1)&&(ignoreAllUntilNextChapter=!0),0===chapters.length||ignoreAllUntilNextChapter||(/[^\\]=/.test(line)||!isMultilineTitle?(isMultilineTitle=!1,"title"===key?(chapters[chapters.length-1].title=this.unescape(value),/\\$/.test(value)&&(isMultilineTitle=!0)):"START"===key?chapters[chapters.length-1].startTime=enforceMilliseconds(.001*parseFloat(value)):"END"===key&&(chapters[chapters.length-1].endTime=enforceMilliseconds(.001*parseFloat(value)))):chapters[chapters.length-1].title+=" "+line)}else this.meta.title=this.unescape(value)})),this.chapters=chapters}unescape(string){return string.replace(this.unescapeRegexp,"$1").replace(/\\$/g,"")}escape(string){return string.replace(this.escapeRegexp,"\\$1")}toString(){const output=[";FFMETADATA1"];return this.meta.title.trim().length>0&&output.push(`title=${this.escape(this.meta.title)}`),output.push(""),this.chapters.forEach((chapter=>{output.push("[CHAPTER]","TIMEBASE=1/1000"),output.push("START="+1e3*enforceMilliseconds(chapter.startTime)),output.push("END="+1e3*enforceMilliseconds(chapter.endTime)),chapter.title&&chapter.title.trim().length>0&&output.push(`title=${this.escape(chapter.title)}`),output.push("")})),output.join("\n")}},matroskaxml:MatroskaXML,mkvmergexml:class extends MatroskaXML{supportsPrettyPrint=!0;filename="mkvmerge-chapters.xml";mimeType="text/xml";chapterStringNodeName="ChapterString";inputTimeToSeconds(string){return timestampToSeconds$1(string=string.replace(/\.(\d{3}).*$/,".$1"))}secondsToOutputTime(seconds){return secondsToTimestamp$1(seconds,{hours:!0,milliseconds:!0})}},mkvmergesimple:MKVMergeSimple,webvtt:class extends Base{filename="webvtt-chapters.vtt";mimeType="text/vtt";detect(inputString){return"WEBVTT"===inputString.trim().slice(0,6)}parse(string){if(!this.detect(string))throw new Error("WEBVTT header missing :(");const lines=string.split(/\r?\n/).filter((line=>line.trim().length>0)).map((line=>line.trim())),header=lines.shift().split(/\s*-\s*/);header[1]&&(this.meta.title=header[1]);const chapters=[];lines.forEach((line=>{if(/^\d+$/.test(line))return void chapters.push({});const index=chapters.length-1,timestamps=/(.*)\s+-->\s+(.*)/.exec(line);if(timestamps&&3===timestamps.length)return chapters[index].startTime=timestampToSeconds$1(timestamps[1]),void(chapters[index].endTime=timestampToSeconds$1(timestamps[2]));chapters[index].title=line})),this.chapters=chapters}toString(){const output=["WEBVTT"];this.meta.title.trim().length>0&&(output[0]+=" - "+this.meta.title.trim());const options={hours:!0,milliseconds:!0};return this.chapters.forEach(((chapter,index)=>{output.push(""),output.push(...[String(index+1),secondsToTimestamp$1(chapter.startTime,options)+" --\x3e "+secondsToTimestamp$1(chapter.endTime,options),this.ensureTitle(index)].filter((line=>String(line).trim().length>0)))})),output.join("\n")}},youtube:class extends Base{filename="youtube-chapters.txt";mimeType="text/plain";detect(inputString){return/^0?0:00(:00)?\s/.test(inputString.trim())}parse(string){if(!this.detect(string))throw new Error("Youtube Chapters *MUST* begin with (0)0:00(:00), received: "+string.substr(0,10)+"...");this.chapters=stringToLines(string).map((line=>{const l=line.split(" ");return{startTime:timestampToSeconds$1(String(l.shift())),title:l.join(" ")}}))}toString(){const options={milliseconds:!1,hours:this.chapters.at(-1).startTime>3600};return this.chapters.map(((chapter,index)=>`${secondsToTimestamp$1(0===index&&0!==chapter.startTime?0:chapter.startTime,options)} ${this.ensureTitle(index)}`)).join("\n")}},ffmpeginfo:class extends Base{detect(inputString){return/^frame:\d/.test(inputString.trim())}parse(input){if(!this.detect(input))throw new Error("input must start with frame:");const matches=Array.from(input.matchAll(/frame:(\d+).*pts_time:([\d.]+)\r?\n/g));this.chapters=matches.map((match=>({startTime:enforceMilliseconds(parseFloat(match[2]))}))),this.rebuildChapterTitles()}toString(){throw new Error("this class won't generate actual output")}},pyscenedetect:class extends Base{filename="psd-scenes.csv";mimeType="text/csv";detect(inputString){return["Scene Number","Timecode Lis"].includes(inputString.trim().slice(0,12))}parse(string){if(!this.detect(string))throw new Error('File must start with "Scene Number" or "Timecode List"');const lines=string.split(/\r?\n/).filter((line=>line.trim().length>0)).map((line=>line.trim()));/^Timecode/.test(lines[0])&&lines.shift(),lines.shift(),this.chapters=lines.map((line=>{const cols=line.split(",");return{startTime:timestampToSeconds$1(cols[2]),endTime:timestampToSeconds$1(cols[5])}}))}toString(pretty=!1,exportOptions={}){const framerate=exportOptions.psdFramerate||23.976,omitTimecodes=!!exportOptions.psdOmitTimecodes,lines=this.chapters.map(((chapter,index)=>{const next=this.chapters[index+1],endTime=next?.startTime||this.duration,l=endTime-chapter.startTime;return[index+1,Math.round(chapter.startTime*framerate)+1,secondsToTimestamp$1(chapter.startTime,{hours:!0,milliseconds:!0}),Int(1e3*chapter.startTime),Math.round(endTime*framerate),secondsToTimestamp$1(endTime,{hours:!0,milliseconds:!0}),Int(1e3*endTime),Math.round((endTime-chapter.startTime)*framerate),secondsToTimestamp$1(l,{hours:!0,milliseconds:!0}),Int(Math.ceil(1e3*l))]})),tl="Timecode List:"+lines.slice(1).map((l=>l[2])).join(","),outputLines=lines.map((l=>l.join(",")));return outputLines.unshift("Scene Number,Start Frame,Start Timecode,Start Time (seconds),End Frame,End Timecode,End Time (seconds),Length (frames),Length (timecode),Length (seconds)"),omitTimecodes||outputLines.unshift(tl),outputLines.join("\n")}},vorbiscomment:class extends MKVMergeSimple{filename="vorbis-comment.txt";mimeType="text/plain";zeroPad=3},applechapters:class extends MatroskaXML{supportsPrettyPrint=!0;filename="apple-chapters.xml";mimeType="text/xml";detect(inputString){return/^<\?xml/.test(inputString.trim())&&inputString.includes("<TextStream")}parse(string){if(!this.detect(string))throw new Error("Input needs xml declaration and a <TextStream...> node");let dom;"undefined"!=typeof DOMParser?dom=(new DOMParser).parseFromString(string,"application/xml"):(dom=new jsdom.JSDOM(string,{contentType:"application/xml"}),dom=dom.window.document),this.chapters=[...dom.querySelectorAll("TextSample")].map((chapter=>({title:String(chapter.getAttribute("text")??chapter.textContent),startTime:timestampToSeconds$1(String(chapter.getAttribute("sampleTime")))})))}toString(pretty=!1,exportOptions={}){const indent=indenter(pretty?2:0),output=['<?xml version="1.0" encoding="UTF-8"?>','<TextStream version="1.1">',indent(1,"<TextStreamHeader>"),indent(2,"<TextSampleDescription>"),indent(2,"</TextSampleDescription>"),indent(1,"</TextStreamHeader>")];return this.chapters.forEach((chapter=>{const attrContent=exportOptions.acUseTextAttr&&chapter.title?` text="${chapter.title}"`:"",content=!exportOptions.acUseTextAttr&&chapter.title?chapter.title:"";output.push(indent(3,`<TextSample sampleTime="${secondsToTimestamp$1(chapter.startTime,{milliseconds:!0})}"${attrContent}>${content}</TextSample>`))})),output.push("</TextStream>"),output.join(pretty?"\n":"")}},shutteredl:class extends Base{detect(inputString){return/^TITLE:\s.*\r?\n/.test(inputString.trim())}decodeTime(timeString){return timeString.replace(/:(\d+)$/,".$10")}encodeTime(time){const string=secondsToTimestamp$1(time,{milliseconds:!0}),ms=String(Math.ceil(.1*Int(string.split(".").pop())));return string.replace(/\.(\d+)$/,`:${ms.padStart(2,"0")}`)}parse(input){if(!this.detect(input))throw new Error("input must start with TITLE:");const titleMatch=input.match(/^TITLE:\s(.*)\r?\n/);this.meta.title=titleMatch?.[1]??"Chapters",this.chapters=Array.from(input.matchAll(/(?<index>\d{6})\s+(?<title>[^\s]+)\s+\w+\s+\w+\s+(?<startTime>\d\d:\d\d:\d\d:\d\d)\s+(?<endTime>\d\d:\d\d:\d\d:\d\d)/g)).reduce(((acc,match)=>{if(!match?.groups)return acc;const startTime=timestampToSeconds$1(this.decodeTime(match.groups.startTime)),endTime=timestampToSeconds$1(this.decodeTime(match.groups.endTime)),title=match.groups.title,last=acc.at(-1);return last?.startTime===startTime||acc.push({startTime:startTime,endTime:endTime,title:title}),acc}),[])}toString(){const tracks=["V","A","A2"],output=this.chapters.reduce(((acc,chapter,i)=>{const index=3*i+1,startTime=this.encodeTime(chapter.startTime),endTime=this.encodeTime(chapter.endTime);for(let j=0;j<3;j++)acc.push(`${(j+index).toString().padStart(6,"0")} ${chapter.title} ${tracks[j]}${" ".repeat(6-tracks[j].length)}C ${startTime} ${endTime} ${startTime} ${endTime}`);return acc}),[]);return output.unshift("TITLE: "+(this.meta.title??"Chapters")),output.join("\n")}},psc:class extends Base{supportsPrettyPrint=!0;filename="podlove-simple-chapters-fragment.xml";mimeType="text/xml";detect(inputString){return inputString.includes("<psc:chapters")}parse(string){if(!this.detect(string))throw new Error("Input must contain <psc:chapters ...> node");let dom;"undefined"!=typeof DOMParser?dom=(new DOMParser).parseFromString(string,"application/xml"):(dom=new jsdom.JSDOM(string,{contentType:"application/xml"}),dom=dom.window.document),this.chapters=[...dom.querySelectorAll("[start]")].reduce(((acc,node)=>{if("psc:chapter"===node.tagName){const start=node.getAttribute("start"),title=node.getAttribute("title"),image=node.getAttribute("image"),href=node.getAttribute("href"),chapter={startTime:NPTToSeconds(start)};title&&(chapter.title=title),image&&(chapter.img=image),href&&(chapter.url=href),acc.push(chapter)}return acc}),[])}toString(pretty=!1){const indent=indenter(pretty?2:0),output=['<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">',indent(1,"<channel>"),indent(2,"\x3c!-- this is only a fragment of an rss feed, see --\x3e"),indent(2,"\x3c!-- https://podlove.org/simple-chapters/#:~:text=37%20seconds-,Embedding%20Example,-This%20is%20an --\x3e"),indent(2,"\x3c!-- for more information --\x3e"),indent(2,'<psc:chapters version="1.2" xmlns:psc="http://podlove.org/simple-chapters">')];return this.chapters.forEach((chapter=>{const node=[`<psc:chapter start="${secondsToNPT(chapter.startTime)}"`];chapter.title&&node.push(` title="${chapter.title}"`),chapter.img&&node.push(` image="${chapter.img}"`),chapter.url&&node.push(` href="${chapter.url}"`),node.push("/>"),output.push(indent(3,node.join("")))})),output.push(indent(2,"</psc:chapters>"),indent(1,"</channel>"),indent(0,"</rss>")),output.join(pretty?"\n":"")}},mp4chaps:class extends Base{filename="mp4chaps.txt";mimeType="text/plain";detect(inputString){return/^\d\d:\d\d:\d\d.\d\d?\d?\s/.test(inputString.trim())}parse(string){if(!this.detect(string))throw new Error("MP4Chaps *MUST* begin with 00:00:00, received: "+string.substr(0,10)+"...");this.chapters=stringToLines(string).map((line=>{const l=line.split(" "),startTime=timestampToSeconds$1(l.shift()),[title,href]=l.join(" ").split("<"),chapter={startTime:startTime,title:title.trim()};return href&&(chapter.url=href.replace(">","")),chapter}))}toString(){return this.chapters.map((chapter=>{const line=[];return line.push(secondsToTimestamp$1(chapter.startTime,{milliseconds:!0})),line.push(chapter.title),chapter.url&&line.push(`<${chapter.url}>`),line.join(" ")})).join("\n")}},podlovejson:class extends Base{filename="podlove-chapters.json";mimeType="application/json";test(data){return Array.isArray(data)?0===data.length?{errors:["JSON Structure: must not be empty"]}:data.every((chapter=>"start"in chapter))?{errors:[]}:{errors:["JSON Structure: every chapter must have a start property"]}:{errors:["JSON Structure: must be an array"]}}parse(string){const data=JSON.parse(string),{errors:errors}=this.test(data);if(errors.length>0)throw new Error(errors.join(""));this.chapters=data.map((raw=>{const{start:start,title:title,image:image,href:href}=raw,chapter={startTime:timestampToSeconds$1(start)};return title&&(chapter.title=title),image&&(chapter.img=image),href&&(chapter.url=href),chapter}))}toString(pretty=!1){return JSON.stringify(this.chapters.map(((chapter,i)=>({start:secondsToTimestamp$1(chapter.startTime,{milliseconds:!0}),title:this.ensureTitle(i),image:chapter.img??"",href:chapter.url??""}))),null,pretty?2:0)}},applehls:class extends Base{filename="apple-hls.json";mimeType="application/json";supportsPrettyPrint=!0;titleLanguage="en";imageDims=[1280,720];test(data){return Array.isArray(data)?0===data.length?{errors:["JSON Structure: must not be empty"]}:data.every((chapter=>"chapter"in chapter&&"start-time"in chapter))?{errors:[]}:{errors:["JSON Structure: every chapter must have a chapter and a start-time property"]}:{errors:["JSON Structure: must be an array"]}}parse(string){const data=JSON.parse(string),{errors:errors}=this.test(data);if(errors.length>0)throw new Error(errors.join(""));this.chapters=data.map((raw=>{const chapter={startTime:parseFloat(raw["start-time"])};return"titles"in raw&&raw.titles.length>0&&(chapter.title=raw.titles[0].title),"images"in raw&&raw.images.length>0&&(chapter.img=raw.images[0].url),chapter}))}toString(pretty=!1){return JSON.stringify(this.chapters.map(((c,i)=>{const chapter={"start-time":c.startTime,chapter:i+1,titles:[{title:this.ensureTitle(i),language:this.titleLanguage}]};return c.img&&(chapter.images=[{"image-category":"chapter",url:c.img,"pixel-width":this.imageDims[0],"pixel-height":this.imageDims[1]}]),chapter})),null,pretty?2:0)}},scenecut:class extends Base{supportsPrettyPrint=!0;filename="scene-cuts.json";mimeType="application/json";frameRate=30;ptsScale=1;score=.5;test(data){return Array.isArray(data)?0===data.length?{errors:["JSON Structure: must not be empty"]}:data.every((chapter=>"pts_time"in chapter))?{errors:[]}:{errors:["JSON Structure: every chapter must have a start property"]}:{errors:["JSON Structure: must be an array"]}}parse(string){const data=JSON.parse(string),{errors:errors}=this.test(data);if(errors.length>0)throw new Error(errors.join(""));this.chapters=data.map((raw=>{const chapter={startTime:Float(raw.pts_time)};return this.frameRate=raw.pts/raw.pts_time,chapter}))}toString(pretty=!1,exportOptions={}){const frameRate=Float("frameRate"in exportOptions?exportOptions.frameRate:this.frameRate),ptsScale=Float("ptsScale"in exportOptions?exportOptions.ptsScale:this.ptsScale),score=Float("score"in exportOptions?exportOptions.score:this.score);return JSON.stringify(this.chapters.map((chapter=>({frame:Math.round(chapter.startTime*frameRate),pts:Math.round(chapter.startTime*frameRate*ptsScale).toFixed(3),pts_time:chapter.startTime,score:score}))),null,pretty?2:0)}}},AutoFormat={classMap:classMap,detect(inputString,returnWhat="instance"){let detected;for(const[key,className]of Object.entries(this.classMap))try{if(detected=className.create(inputString),detected)return"class"===returnWhat?className:"key"===returnWhat?key:detected}catch(e){}if(!detected)throw new Error("failed to detect type of given input :(")},from(inputString){return this.detect(inputString)},as(classKeyOrClass,input){if("string"==typeof classKeyOrClass){if(!(classKeyOrClass in this.classMap))throw new Error(`invalid class key "${classKeyOrClass}"`);return this.classMap[classKeyOrClass].create(input)}return classKeyOrClass.create(input)}};const MAX_BITS$1=15,HEAP_SIZE=573;function extractArray(array){return flatArray(array.map((([length,value])=>new Array(length).fill(value,0,length))))}function flatArray(array){return array.reduce(((a,b)=>a.concat(Array.isArray(b)?flatArray(b):b)),[])}const _dist_code=[0,1,2,3].concat(...extractArray([[2,4],[2,5],[4,6],[4,7],[8,8],[8,9],[16,10],[16,11],[32,12],[32,13],[64,14],[64,15],[2,0],[1,16],[1,17],[2,18],[2,19],[4,20],[4,21],[8,22],[8,23],[16,24],[16,25],[32,26],[32,27],[64,28],[64,29]]));function Tree(){const that=this;function bi_reverse(code,len){let res=0;do{res|=1&code,code>>>=1,res<<=1}while(--len>0);return res>>>1}that.build_tree=function(s){const tree=that.dyn_tree,stree=that.stat_desc.static_tree,elems=that.stat_desc.elems;let n,m,node,max_code=-1;for(s.heap_len=0,s.heap_max=HEAP_SIZE,n=0;n<elems;n++)0!==tree[2*n]?(s.heap[++s.heap_len]=max_code=n,s.depth[n]=0):tree[2*n+1]=0;for(;s.heap_len<2;)node=s.heap[++s.heap_len]=max_code<2?++max_code:0,tree[2*node]=1,s.depth[node]=0,s.opt_len--,stree&&(s.static_len-=stree[2*node+1]);for(that.max_code=max_code,n=Math.floor(s.heap_len/2);n>=1;n--)s.pqdownheap(tree,n);node=elems;do{n=s.heap[1],s.heap[1]=s.heap[s.heap_len--],s.pqdownheap(tree,1),m=s.heap[1],s.heap[--s.heap_max]=n,s.heap[--s.heap_max]=m,tree[2*node]=tree[2*n]+tree[2*m],s.depth[node]=Math.max(s.depth[n],s.depth[m])+1,tree[2*n+1]=tree[2*m+1]=node,s.heap[1]=node++,s.pqdownheap(tree,1)}while(s.heap_len>=2);s.heap[--s.heap_max]=s.heap[1],function(s){const tree=that.dyn_tree,stree=that.stat_desc.static_tree,extra=that.stat_desc.extra_bits,base=that.stat_desc.extra_base,max_length=that.stat_desc.max_length;let h,n,m,bits,xbits,f,overflow=0;for(bits=0;bits<=MAX_BITS$1;bits++)s.bl_count[bits]=0;for(tree[2*s.heap[s.heap_max]+1]=0,h=s.heap_max+1;h<HEAP_SIZE;h++)n=s.heap[h],bits=tree[2*tree[2*n+1]+1]+1,bits>max_length&&(bits=max_length,overflow++),tree[2*n+1]=bits,n>that.max_code||(s.bl_count[bits]++,xbits=0,n>=base&&(xbits=extra[n-base]),f=tree[2*n],s.opt_len+=f*(bits+xbits),stree&&(s.static_len+=f*(stree[2*n+1]+xbits)));if(0!==overflow){do{for(bits=max_length-1;0===s.bl_count[bits];)bits--;s.bl_count[bits]--,s.bl_count[bits+1]+=2,s.bl_count[max_length]--,overflow-=2}while(overflow>0);for(bits=max_length;0!==bits;bits--)for(n=s.bl_count[bits];0!==n;)m=s.heap[--h],m>that.max_code||(tree[2*m+1]!=bits&&(s.opt_len+=(bits-tree[2*m+1])*tree[2*m],tree[2*m+1]=bits),n--)}}(s),function(tree,max_code,bl_count){const next_code=[];let bits,n,len,code=0;for(bits=1;bits<=MAX_BITS$1;bits++)next_code[bits]=code=code+bl_count[bits-1]<<1;for(n=0;n<=max_code;n++)len=tree[2*n+1],0!==len&&(tree[2*n]=bi_reverse(next_code[len]++,len))}(tree,that.max_code,s.bl_count)}}function StaticTree(static_tree,extra_bits,extra_base,elems,max_length){this.static_tree=static_tree,this.extra_bits=extra_bits,this.extra_base=extra_base,this.elems=elems,this.max_length=max_length}Tree._length_code=[0,1,2,3,4,5,6,7].concat(...extractArray([[2,8],[2,9],[2,10],[2,11],[4,12],[4,13],[4,14],[4,15],[8,16],[8,17],[8,18],[8,19],[16,20],[16,21],[16,22],[16,23],[32,24],[32,25],[32,26],[31,27],[1,28]])),Tree.base_length=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0],Tree.base_dist=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576],Tree.d_code=function(dist){return dist<256?_dist_code[dist]:_dist_code[256+(dist>>>7)]},Tree.extra_lbits=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],Tree.extra_dbits=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],Tree.extra_blbits=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],Tree.bl_order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];const static_ltree2_second_part=extractArray([[144,8],[112,9],[24,7],[8,8]]);StaticTree.static_ltree=flatArray([12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,19,275,147,403,83,339,211,467,51,307,179,435,115,371,243,499,11,267,139,395,75,331,203,459,43,299,171,427,107,363,235,491,27,283,155,411,91,347,219,475,59,315,187,443,123,379,251,507,7,263,135,391,71,327,199,455,39,295,167,423,103,359,231,487,23,279,151,407,87,343,215,471,55,311,183,439,119,375,247,503,15,271,143,399,79,335,207,463,47,303,175,431,111,367,239,495,31,287,159,415,95,351,223,479,63,319,191,447,127,383,255,511,0,64,32,96,16,80,48,112,8,72,40,104,24,88,56,120,4,68,36,100,20,84,52,116,3,131,67,195,35,163,99,227].map(((value,index)=>[value,static_ltree2_second_part[index]])));const static_dtree_second_part=extractArray([[30,5]]);StaticTree.static_dtree=flatArray([0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23].map(((value,index)=>[value,static_dtree_second_part[index]]))),StaticTree.static_l_desc=new StaticTree(StaticTree.static_ltree,Tree.extra_lbits,257,286,MAX_BITS$1),StaticTree.static_d_desc=new StaticTree(StaticTree.static_dtree,Tree.extra_dbits,0,30,MAX_BITS$1),StaticTree.static_bl_desc=new StaticTree(null,Tree.extra_blbits,0,19,7);function Config(good_length,max_lazy,nice_length,max_chain,func){this.good_length=good_length,this.max_lazy=max_lazy,this.nice_length=nice_length,this.max_chain=max_chain,this.func=func}const config_table=[new Config(0,0,0,0,0),new Config(4,4,8,4,1),new Config(4,5,16,8,1),new Config(4,6,32,32,1),new Config(4,4,16,16,2),new Config(8,16,32,32,2),new Config(8,16,128,128,2),new Config(8,32,128,256,2),new Config(32,128,258,1024,2),new Config(32,258,258,4096,2)],z_errmsg=["need dictionary","stream end","","","stream error","data error","","buffer error","",""];function smaller(tree,n,m,depth){const tn2=tree[2*n],tm2=tree[2*m];return tn2<tm2||tn2==tm2&&depth[n]<=depth[m]}function Deflate(){const that=this;let strm,status,pending_buf_size,last_flush,w_size,w_bits,w_mask,win,window_size,prev,head,ins_h,hash_size,hash_bits,hash_mask,hash_shift,block_start,match_length,prev_match,match_available,strstart,match_start,lookahead,prev_length,max_chain_length,max_lazy_match,level,strategy,good_match,nice_match,dyn_ltree,dyn_dtree,bl_tree;const l_desc=new Tree,d_desc=new Tree,bl_desc=new Tree;let lit_bufsize,last_lit,matches,last_eob_len,bi_buf,bi_valid;function init_block(){let i;for(i=0;i<286;i++)dyn_ltree[2*i]=0;for(i=0;i<30;i++)dyn_dtree[2*i]=0;for(i=0;i<19;i++)bl_tree[2*i]=0;dyn_ltree[512]=1,that.opt_len=that.static_len=0,last_lit=matches=0}function scan_tree(tree,max_code){let curlen,prevlen=-1,nextlen=tree[1],count=0,max_count=7,min_count=4;0===nextlen&&(max_count=138,min_count=3),tree[2*(max_code+1)+1]=65535;for(let n=0;n<=max_code;n++)curlen=nextlen,nextlen=tree[2*(n+1)+1],++count<max_count&&curlen==nextlen||(count<min_count?bl_tree[2*curlen]+=count:0!==curlen?(curlen!=prevlen&&bl_tree[2*curlen]++,bl_tree[32]++):count<=10?bl_tree[34]++:bl_tree[36]++,count=0,prevlen=curlen,0===nextlen?(max_count=138,min_count=3):curlen==nextlen?(max_count=6,min_count=3):(max_count=7,min_count=4))}function put_byte(p){that.pending_buf[that.pending++]=p}function put_short(w){put_byte(255&w),put_byte(w>>>8&255)}function send_bits(value,length){let val;const len=length;bi_valid>16-len?(val=value,bi_buf|=val<<bi_valid&65535,put_short(bi_buf),bi_buf=val>>>16-bi_valid,bi_valid+=len-16):(bi_buf|=value<<bi_valid&65535,bi_valid+=len)}function send_code(c,tree){const c2=2*c;send_bits(65535&tree[c2],65535&tree[c2+1])}function send_tree(tree,max_code){let n,curlen,prevlen=-1,nextlen=tree[1],count=0,max_count=7,min_count=4;for(0===nextlen&&(max_count=138,min_count=3),n=0;n<=max_code;n++)if(curlen=nextlen,nextlen=tree[2*(n+1)+1],!(++count<max_count&&curlen==nextlen)){if(count<min_count)do{send_code(curlen,bl_tree)}while(0!=--count);else 0!==curlen?(curlen!=prevlen&&(send_code(curlen,bl_tree),count--),send_code(16,bl_tree),send_bits(count-3,2)):count<=10?(send_code(17,bl_tree),send_bits(count-3,3)):(send_code(18,bl_tree),send_bits(count-11,7));count=0,prevlen=curlen,0===nextlen?(max_count=138,min_count=3):curlen==nextlen?(max_count=6,min_count=3):(max_count=7,min_count=4)}}function bi_flush(){16==bi_valid?(put_short(bi_buf),bi_buf=0,bi_valid=0):bi_valid>=8&&(put_byte(255&bi_buf),bi_buf>>>=8,bi_valid-=8)}function _tr_tally(dist,lc){let out_length,in_length,dcode;if(that.dist_buf[last_lit]=dist,that.lc_buf[last_lit]=255&lc,last_lit++,0===dist?dyn_ltree[2*lc]++:(matches++,dist--,dyn_ltree[2*(Tree._length_code[lc]+256+1)]++,dyn_dtree[2*Tree.d_code(dist)]++),0==(8191&last_lit)&&level>2){for(out_length=8*last_lit,in_length=strstart-block_start,dcode=0;dcode<30;dcode++)out_length+=dyn_dtree[2*dcode]*(5+Tree.extra_dbits[dcode]);if(out_length>>>=3,matches<Math.floor(last_lit/2)&&out_length<Math.floor(in_length/2))return!0}return last_lit==lit_bufsize-1}function compress_block(ltree,dtree){let dist,lc,code,extra,lx=0;if(0!==last_lit)do{dist=that.dist_buf[lx],lc=that.lc_buf[lx],lx++,0===dist?send_code(lc,ltree):(code=Tree._length_code[lc],send_code(code+256+1,ltree),extra=Tree.extra_lbits[code],0!==extra&&(lc-=Tree.base_length[code],send_bits(lc,extra)),dist--,code=Tree.d_code(dist),send_code(code,dtree),extra=Tree.extra_dbits[code],0!==extra&&(dist-=Tree.base_dist[code],send_bits(dist,extra)))}while(lx<last_lit);send_code(256,ltree),last_eob_len=ltree[513]}function bi_windup(){bi_valid>8?put_short(bi_buf):bi_valid>0&&put_byte(255&bi_buf),bi_buf=0,bi_valid=0}function _tr_stored_block(buf,stored_len,eof){send_bits(0+(eof?1:0),3),function(buf,len,header){bi_windup(),last_eob_len=8,put_short(len),put_short(~len),that.pending_buf.set(win.subarray(buf,buf+len),that.pending),that.pending+=len}(buf,stored_len)}function _tr_flush_block(buf,stored_len,eof){let opt_lenb,static_lenb,max_blindex=0;level>0?(l_desc.build_tree(that),d_desc.build_tree(that),max_blindex=function(){let max_blindex;for(scan_tree(dyn_ltree,l_desc.max_code),scan_tree(dyn_dtree,d_desc.max_code),bl_desc.build_tree(that),max_blindex=18;max_blindex>=3&&0===bl_tree[2*Tree.bl_order[max_blindex]+1];max_blindex--);return that.opt_len+=3*(max_blindex+1)+5+5+4,max_blindex}(),opt_lenb=that.opt_len+3+7>>>3,static_lenb=that.static_len+3+7>>>3,static_lenb<=opt_lenb&&(opt_lenb=static_lenb)):opt_lenb=static_lenb=stored_len+5,stored_len+4<=opt_lenb&&-1!=buf?_tr_stored_block(buf,stored_len,eof):static_lenb==opt_lenb?(send_bits(2+(eof?1:0),3),compress_block(StaticTree.static_ltree,StaticTree.static_dtree)):(send_bits(4+(eof?1:0),3),function(lcodes,dcodes,blcodes){let rank;for(send_bits(lcodes-257,5),send_bits(dcodes-1,5),send_bits(blcodes-4,4),rank=0;rank<blcodes;rank++)send_bits(bl_tree[2*Tree.bl_order[rank]+1],3);send_tree(dyn_ltree,lcodes-1),send_tree(dyn_dtree,dcodes-1)}(l_desc.max_code+1,d_desc.max_code+1,max_blindex+1),compress_block(dyn_ltree,dyn_dtree)),init_block(),eof&&bi_windup()}function flush_block_only(eof){_tr_flush_block(block_start>=0?block_start:-1,strstart-block_start,eof),block_start=strstart,strm.flush_pending()}function fill_window(){let n,m,p,more;do{if(more=window_size-lookahead-strstart,0===more&&0===strstart&&0===lookahead)more=w_size;else if(-1==more)more--;else if(strstart>=w_size+w_size-262){win.set(win.subarray(w_size,w_size+w_size),0),match_start-=w_size,strstart-=w_size,block_start-=w_size,n=hash_size,p=n;do{m=65535&head[--p],head[p]=m>=w_size?m-w_size:0}while(0!=--n);n=w_size,p=n;do{m=65535&prev[--p],prev[p]=m>=w_size?m-w_size:0}while(0!=--n);more+=w_size}if(0===strm.avail_in)return;n=strm.read_buf(win,strstart+lookahead,more),lookahead+=n,lookahead>=3&&(ins_h=255&win[strstart],ins_h=(ins_h<<hash_shift^255&win[strstart+1])&hash_mask)}while(lookahead<262&&0!==strm.avail_in)}function longest_match(cur_match){let match,len,chain_length=max_chain_length,scan=strstart,best_len=prev_length;const limit=strstart>w_size-262?strstart-(w_size-262):0;let _nice_match=nice_match;const wmask=w_mask,strend=strstart+258;let scan_end1=win[scan+best_len-1],scan_end=win[scan+best_len];prev_length>=good_match&&(chain_length>>=2),_nice_match>lookahead&&(_nice_match=lookahead);do{if(match=cur_match,win[match+best_len]==scan_end&&win[match+best_len-1]==scan_end1&&win[match]==win[scan]&&win[++match]==win[scan+1]){scan+=2,match++;do{}while(win[++scan]==win[++match]&&win[++scan]==win[++match]&&win[++scan]==win[++match]&&win[++scan]==win[++match]&&win[++scan]==win[++match]&&win[++scan]==win[++match]&&win[++scan]==win[++match]&&win[++scan]==win[++match]&&scan<strend);if(len=258-(strend-scan),scan=strend-258,len>best_len){if(match_start=cur_match,best_len=len,len>=_nice_match)break;scan_end1=win[scan+best_len-1],scan_end=win[scan+best_len]}}}while((cur_match=65535&prev[cur_match&wmask])>limit&&0!=--chain_length);return best_len<=lookahead?best_len:lookahead}function deflateReset(strm){return strm.total_in=strm.total_out=0,strm.msg=null,that.pending=0,that.pending_out=0,status=113,last_flush=0,l_desc.dyn_tree=dyn_ltree,l_desc.stat_desc=StaticTree.static_l_desc,d_desc.dyn_tree=dyn_dtree,d_desc.stat_desc=StaticTree.static_d_desc,bl_desc.dyn_tree=bl_tree,bl_desc.stat_desc=StaticTree.static_bl_desc,bi_buf=0,bi_valid=0,last_eob_len=8,init_block(),function(){window_size=2*w_size,head[hash_size-1]=0;for(let i=0;i<hash_size-1;i++)head[i]=0;max_lazy_match=config_table[level].max_lazy,good_match=config_table[level].good_length,nice_match=config_table[level].nice_length,max_chain_length=config_table[level].max_chain,strstart=0,block_start=0,lookahead=0,match_length=prev_length=2,match_available=0,ins_h=0}(),0}that.depth=[],that.bl_count=[],that.heap=[],dyn_ltree=[],dyn_dtree=[],bl_tree=[],that.pqdownheap=function(tree,k){const heap=that.heap,v=heap[k];let j=k<<1;for(;j<=that.heap_len&&(j<that.heap_len&&smaller(tree,heap[j+1],heap[j],that.depth)&&j++,!smaller(tree,v,heap[j],that.depth));)heap[k]=heap[j],k=j,j<<=1;heap[k]=v},that.deflateInit=function(strm,_level,bits,_method,memLevel,_strategy){return _method||(_method=8),memLevel||(memLevel=8),_strategy||(_strategy=0),strm.msg=null,-1==_level&&(_level=6),memLevel<1||memLevel>9||8!=_method||bits<9||bits>15||_level<0||_level>9||_strategy<0||_strategy>2?-2:(strm.dstate=that,w_bits=bits,w_size=1<<w_bits,w_mask=w_size-1,hash_bits=memLevel+7,hash_size=1<<hash_bits,hash_mask=hash_size-1,hash_shift=Math.floor((hash_bits+3-1)/3),win=new Uint8Array(2*w_size),prev=[],head=[],lit_bufsize=1<<memLevel+6,that.pending_buf=new Uint8Array(4*lit_bufsize),pending_buf_size=4*lit_bufsize,that.dist_buf=new Uint16Array(lit_bufsize),that.lc_buf=new Uint8Array(lit_bufsize),level=_level,strategy=_strategy,deflateReset(strm))},that.deflateEnd=function(){return 42!=status&&113!=status&&666!=status?-2:(that.lc_buf=null,that.dist_buf=null,that.pending_buf=null,head=null,prev=null,win=null,that.dstate=null,113==status?-3:0)},that.deflateParams=function(strm,_level,_strategy){let err=0;return-1==_level&&(_level=6),_level<0||_level>9||_strategy<0||_strategy>2?-2:(config_table[level].func!=config_table[_level].func&&0!==strm.total_in&&(err=strm.deflate(1)),level!=_level&&(level=_level,max_lazy_match=config_table[level].max_lazy,good_match=config_table[level].good_length,nice_match=config_table[level].nice_length,max_chain_length=config_table[level].max_chain),strategy=_strategy,err)},that.deflateSetDictionary=function(_strm,dictionary,dictLength){let n,length=dictLength,index=0;if(!dictionary||42!=status)return-2;if(length<3)return 0;for(length>w_size-262&&(length=w_size-262,index=dictLength-length),win.set(dictionary.subarray(index,index+length),0),strstart=length,block_start=length,ins_h=255&win[0],ins_h=(ins_h<<hash_shift^255&win[1])&hash_mask,n=0;n<=length-3;n++)ins_h=(ins_h<<hash_shift^255&win[n+2])&hash_mask,prev[n&w_mask]=head[ins_h],head[ins_h]=n;return 0},that.deflate=function(_strm,flush){let i,header,level_flags,old_flush,bstate;if(flush>4||flush<0)return-2;if(!_strm.next_out||!_strm.next_in&&0!==_strm.avail_in||666==status&&4!=flush)return _strm.msg=z_errmsg[4],-2;if(0===_strm.avail_out)return _strm.msg=z_errmsg[7],-5;var b;if(strm=_strm,old_flush=last_flush,last_flush=flush,42==status&&(header=8+(w_bits-8<<4)<<8,level_flags=(level-1&255)>>1,level_flags>3&&(level_flags=3),header|=level_flags<<6,0!==strstart&&(header|=32),header+=31-header%31,status=113,put_byte((b=header)>>8&255),put_byte(255&b)),0!==that.pending){if(strm.flush_pending(),0===strm.avail_out)return last_flush=-1,0}else if(0===strm.avail_in&&flush<=old_flush&&4!=flush)return strm.msg=z_errmsg[7],-5;if(666==status&&0!==strm.avail_in)return _strm.msg=z_errmsg[7],-5;if(0!==strm.avail_in||0!==lookahead||0!=flush&&666!=status){switch(bstate=-1,config_table[level].func){case 0:bstate=function(flush){let max_start,max_block_size=65535;for(max_block_size>pending_buf_size-5&&(max_block_size=pending_buf_size-5);;){if(lookahead<=1){if(fill_window(),0===lookahead&&0==flush)return 0;if(0===lookahead)break}if(strstart+=lookahead,lookahead=0,max_start=block_start+max_block_size,(0===strstart||strstart>=max_start)&&(lookahead=strstart-max_start,strstart=max_start,flush_block_only(!1),0===strm.avail_out))return 0;if(strstart-block_start>=w_size-262&&(flush_block_only(!1),0===strm.avail_out))return 0}return flush_block_only(4==flush),0===strm.avail_out?4==flush?2:0:4==flush?3:1}(flush);break;case 1:bstate=function(flush){let bflush,hash_head=0;for(;;){if(lookahead<262){if(fill_window(),lookahead<262&&0==flush)return 0;if(0===lookahead)break}if(lookahead>=3&&(ins_h=(ins_h<<hash_shift^255&win[strstart+2])&hash_mask,hash_head=65535&head[ins_h],prev[strstart&w_mask]=head[ins_h],head[ins_h]=strstart),0!==hash_head&&(strstart-hash_head&65535)<=w_size-262&&2!=strategy&&(match_length=longest_match(hash_head)),match_length>=3)if(bflush=_tr_tally(strstart-match_start,match_length-3),lookahead-=match_length,match_length<=max_lazy_match&&lookahead>=3){match_length--;do{strstart++,ins_h=(ins_h<<hash_shift^255&win[strstart+2])&hash_mask,hash_head=65535&head[ins_h],prev[strstart&w_mask]=head[ins_h],head[ins_h]=strstart}while(0!=--match_length);strstart++}else strstart+=match_length,match_length=0,ins_h=255&win[strstart],ins_h=(ins_h<<hash_shift^255&win[strstart+1])&hash_mask;else bflush=_tr_tally(0,255&win[strstart]),lookahead--,strstart++;if(bflush&&(flush_block_only(!1),0===strm.avail_out))return 0}return flush_block_only(4==flush),0===strm.avail_out?4==flush?2:0:4==flush?3:1}(flush);break;case 2:bstate=function(flush){let bflush,max_insert,hash_head=0;for(;;){if(lookahead<262){if(fill_window(),lookahead<262&&0==flush)return 0;if(0===lookahead)break}if(lookahead>=3&&(ins_h=(ins_h<<hash_shift^255&win[strstart+2])&hash_mask,hash_head=65535&head[ins_h],prev[strstart&w_mask]=head[ins_h],head[ins_h]=strstart),prev_length=match_length,prev_match=match_start,match_length=2,0!==hash_head&&prev_length<max_lazy_match&&(strstart-hash_head&65535)<=w_size-262&&(2!=strategy&&(match_length=longest_match(hash_head)),match_length<=5&&(1==strategy||3==match_length&&strstart-match_start>4096)&&(match_length=2)),prev_length>=3&&match_length<=prev_length){max_insert=strstart+lookahead-3,bflush=_tr_tally(strstart-1-prev_match,prev_length-3),lookahead-=prev_length-1,prev_length-=2;do{++strstart<=max_insert&&(ins_h=(ins_h<<hash_shift^255&win[strstart+2])&hash_mask,hash_head=65535&head[ins_h],prev[strstart&w_mask]=head[ins_h],head[ins_h]=strstart)}while(0!=--prev_length);if(match_available=0,match_length=2,strstart++,bflush&&(flush_block_only(!1),0===strm.avail_out))return 0}else if(0!==match_available){if(bflush=_tr_tally(0,255&win[strstart-1]),bflush&&flush_block_only(!1),strstart++,lookahead--,0===strm.avail_out)return 0}else match_available=1,strstart++,lookahead--}return 0!==match_available&&(bflush=_tr_tally(0,255&win[strstart-1]),match_available=0),flush_block_only(4==flush),0===strm.avail_out?4==flush?2:0:4==flush?3:1}(flush)}if(2!=bstate&&3!=bstate||(status=666),0==bstate||2==bstate)return 0===strm.avail_out&&(last_flush=-1),0;if(1==bstate){if(1==flush)send_bits(2,3),send_code(256,StaticTree.static_ltree),bi_flush(),1+last_eob_len+10-bi_valid<9&&(send_bits(2,3),send_code(256,StaticTree.static_ltree),bi_flush()),last_eob_len=7;else if(_tr_stored_block(0,0,!1),3==flush)for(i=0;i<hash_size;i++)head[i]=0;if(strm.flush_pending(),0===strm.avail_out)return last_flush=-1,0}}return 4!=flush?0:1}}function ZStream$1(){this.next_in_index=0,this.next_out_index=0,this.avail_in=0,this.total_in=0,this.avail_out=0,this.total_out=0}ZStream$1.prototype={deflateInit(level,bits){return this.dstate=new Deflate,bits||(bits=MAX_BITS$1),this.dstate.deflateInit(this,level,bits)},deflate(flush){return this.dstate?this.dstate.deflate(this,flush):-2},deflateEnd(){if(!this.dstate)return-2;const ret=this.dstate.deflateEnd();return this.dstate=null,ret},deflateParams(level,strategy){return this.dstate?this.dstate.deflateParams(this,level,strategy):-2},deflateSetDictionary(dictionary,dictLength){return this.dstate?this.dstate.deflateSetDictionary(this,dictionary,dictLength):-2},read_buf(buf,start,size){let len=this.avail_in;return len>size&&(len=size),0===len?0:(this.avail_in-=len,buf.set(this.next_in.subarray(this.next_in_index,this.next_in_index+len),start),this.next_in_index+=len,this.total_in+=len,len)},flush_pending(){const that=this;let len=that.dstate.pending;len>that.avail_out&&(len=that.avail_out),0!==len&&(that.next_out.set(that.dstate.pending_buf.subarray(that.dstate.pending_out,that.dstate.pending_out+len),that.next_out_index),that.next_out_index+=len,that.dstate.pending_out+=len,that.total_out+=len,that.avail_out-=len,that.dstate.pending-=len,0===that.dstate.pending&&(that.dstate.pending_out=0))}};const Z_OK=0,Z_STREAM_END=1,Z_STREAM_ERROR=-2,Z_DATA_ERROR=-3,Z_MEM_ERROR=-4,Z_BUF_ERROR=-5,inflate_mask=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],MANY=1440,fixed_tl=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],fixed_td=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],cplens=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],cplext=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,112,112],cpdist=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],cpdext=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],BMAX=15;function InfTree(){let hn,v,c,r,u,x;function huft_build(b,bindex,n,s,d,e,t,m,hp,hn,v){let a,f,g,h,i,j,k,l,mask,p,q,w,xp,y,z;p=0,i=n;do{c[b[bindex+p]]++,p++,i--}while(0!==i);if(c[0]==n)return t[0]=-1,m[0]=0,Z_OK;for(l=m[0],j=1;j<=BMAX&&0===c[j];j++);for(k=j,l<j&&(l=j),i=BMAX;0!==i&&0===c[i];i--);for(g=i,l>i&&(l=i),m[0]=l,y=1<<j;j<i;j++,y<<=1)if((y-=c[j])<0)return Z_DATA_ERROR;if((y-=c[i])<0)return Z_DATA_ERROR;for(c[i]+=y,x[1]=j=0,p=1,xp=2;0!=--i;)x[xp]=j+=c[p],xp++,p++;i=0,p=0;do{0!==(j=b[bindex+p])&&(v[x[j]++]=i),p++}while(++i<n);for(n=x[g],x[0]=i=0,p=0,h=-1,w=-l,u[0]=0,q=0,z=0;k<=g;k++)for(a=c[k];0!=a--;){for(;k>w+l;){if(h++,w+=l,z=g-w,z=z>l?l:z,(f=1<<(j=k-w))>a+1&&(f-=a+1,xp=k,j<z))for(;++j<z&&!((f<<=1)<=c[++xp]);)f-=c[xp];if(z=1<<j,hn[0]+z>MANY)return Z_DATA_ERROR;u[h]=q=hn[0],hn[0]+=z,0!==h?(x[h]=i,r[0]=j,r[1]=l,j=i>>>w-l,r[2]=q-u[h-1]-j,hp.set(r,3*(u[h-1]+j))):t[0]=q}for(r[1]=k-w,p>=n?r[0]=192:v[p]<s?(r[0]=v[p]<256?0:96,r[2]=v[p++]):(r[0]=e[v[p]-s]+16+64,r[2]=d[v[p++]-s]),f=1<<k-w,j=i>>>w;j<z;j+=f)hp.set(r,3*(q+j));for(j=1<<k-1;0!=(i&j);j>>>=1)i^=j;for(i^=j,mask=(1<<w)-1;(i&mask)!=x[h];)h--,w-=l,mask=(1<<w)-1}return 0!==y&&1!=g?Z_BUF_ERROR:Z_OK}function initWorkArea(vsize){let i;for(hn||(hn=[],v=[],c=new Int32Array(BMAX+1),r=[],u=new Int32Array(BMAX),x=new Int32Array(BMAX+1)),v.length<vsize&&(v=[]),i=0;i<vsize;i++)v[i]=0;for(i=0;i<BMAX+1;i++)c[i]=0;for(i=0;i<3;i++)r[i]=0;u.set(c.subarray(0,BMAX),0),x.set(c.subarray(0,BMAX+1),0)}this.inflate_trees_bits=function(c,bb,tb,hp,z){let result;return initWorkArea(19),hn[0]=0,result=huft_build(c,0,19,19,null,null,tb,bb,hp,hn,v),result==Z_DATA_ERROR?z.msg="oversubscribed dynamic bit lengths tree":result!=Z_BUF_ERROR&&0!==bb[0]||(z.msg="incomplete dynamic bit lengths tree",result=Z_DATA_ERROR),result},this.inflate_trees_dynamic=function(nl,nd,c,bl,bd,tl,td,hp,z){let result;return initWorkArea(288),hn[0]=0,result=huft_build(c,0,nl,257,cplens,cplext,tl,bl,hp,hn,v),result!=Z_OK||0===bl[0]?(result==Z_DATA_ERROR?z.msg="oversubscribed literal/length tree":result!=Z_MEM_ERROR&&(z.msg="incomplete literal/length tree",result=Z_DATA_ERROR),result):(initWorkArea(288),result=huft_build(c,nl,nd,0,cpdist,cpdext,td,bd,hp,hn,v),result!=Z_OK||0===bd[0]&&nl>257?(result==Z_DATA_ERROR?z.msg="oversubscribed distance tree":result==Z_BUF_ERROR?(z.msg="incomplete distance tree",result=Z_DATA_ERROR):result!=Z_MEM_ERROR&&(z.msg="empty distance tree with lengths",result=Z_DATA_ERROR),result):Z_OK)}}InfTree.inflate_trees_fixed=function(bl,bd,tl,td){return bl[0]=9,bd[0]=5,tl[0]=fixed_tl,td[0]=fixed_td,Z_OK};const START=0,LEN=1,LENEXT=2,DIST=3,DISTEXT=4,COPY=5,LIT=6,WASH=7,END=8,BADCODE=9;function InfCodes(){let mode,tree,ltree,dtree,len=0,tree_index=0,need=0,lit=0,get=0,dist=0,lbits=0,dbits=0,ltree_index=0,dtree_index=0;function inflate_fast(bl,bd,tl,tl_index,td,td_index,s,z){let t,tp,tp_index,e,b,k,p,n,q,m,ml,md,c,d,r,tp_index_t_3;p=z.next_in_index,n=z.avail_in,b=s.bitb,k=s.bitk,q=s.write,m=q<s.read?s.read-q-1:s.end-q,ml=inflate_mask[bl],md=inflate_mask[bd];do{for(;k<20;)n--,b|=(255&z.read_byte(p++))<<k,k+=8;if(t=b&ml,tp=tl,tp_index=tl_index,tp_index_t_3=3*(tp_index+t),0!==(e=tp[tp_index_t_3]))for(;;){if(b>>=tp[tp_index_t_3+1],k-=tp[tp_index_t_3+1],0!=(16&e)){for(e&=15,c=tp[tp_index_t_3+2]+(b&inflate_mask[e]),b>>=e,k-=e;k<15;)n--,b|=(255&z.read_byte(p++))<<k,k+=8;for(t=b&md,tp=td,tp_index=td_index,tp_index_t_3=3*(tp_index+t),e=tp[tp_index_t_3];;){if(b>>=tp[tp_index_t_3+1],k-=tp[tp_index_t_3+1],0!=(16&e)){for(e&=15;k<e;)n--,b|=(255&z.read_byte(p++))<<k,k+=8;if(d=tp[tp_index_t_3+2]+(b&inflate_mask[e]),b>>=e,k-=e,m-=c,q>=d)r=q-d,q-r>0&&2>q-r?(s.win[q++]=s.win[r++],s.win[q++]=s.win[r++],c-=2):(s.win.set(s.win.subarray(r,r+2),q),q+=2,r+=2,c-=2);else{r=q-d;do{r+=s.end}while(r<0);if(e=s.end-r,c>e){if(c-=e,q-r>0&&e>q-r)do{s.win[q++]=s.win[r++]}while(0!=--e);else s.win.set(s.win.subarray(r,r+e),q),q+=e,r+=e,e=0;r=0}}if(q-r>0&&c>q-r)do{s.win[q++]=s.win[r++]}while(0!=--c);else s.win.set(s.win.subarray(r,r+c),q),q+=c,r+=c,c=0;break}if(0!=(64&e))return z.msg="invalid distance code",c=z.avail_in-n,c=k>>3<c?k>>3:c,n+=c,p-=c,k-=c<<3,s.bitb=b,s.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,s.write=q,Z_DATA_ERROR;t+=tp[tp_index_t_3+2],t+=b&inflate_mask[e],tp_index_t_3=3*(tp_index+t),e=tp[tp_index_t_3]}break}if(0!=(64&e))return 0!=(32&e)?(c=z.avail_in-n,c=k>>3<c?k>>3:c,n+=c,p-=c,k-=c<<3,s.bitb=b,s.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,s.write=q,Z_STREAM_END):(z.msg="invalid literal/length code",c=z.avail_in-n,c=k>>3<c?k>>3:c,n+=c,p-=c,k-=c<<3,s.bitb=b,s.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,s.write=q,Z_DATA_ERROR);if(t+=tp[tp_index_t_3+2],t+=b&inflate_mask[e],tp_index_t_3=3*(tp_index+t),0===(e=tp[tp_index_t_3])){b>>=tp[tp_index_t_3+1],k-=tp[tp_index_t_3+1],s.win[q++]=tp[tp_index_t_3+2],m--;break}}else b>>=tp[tp_index_t_3+1],k-=tp[tp_index_t_3+1],s.win[q++]=tp[tp_index_t_3+2],m--}while(m>=258&&n>=10);return c=z.avail_in-n,c=k>>3<c?k>>3:c,n+=c,p-=c,k-=c<<3,s.bitb=b,s.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,s.write=q,Z_OK}this.init=function(bl,bd,tl,tl_index,td,td_index){mode=START,lbits=bl,dbits=bd,ltree=tl,ltree_index=tl_index,dtree=td,dtree_index=td_index,tree=null},this.proc=function(s,z,r){let j,tindex,e,n,q,m,f,b=0,k=0,p=0;for(p=z.next_in_index,n=z.avail_in,b=s.bitb,k=s.bitk,q=s.write,m=q<s.read?s.read-q-1:s.end-q;;)switch(mode){case START:if(m>=258&&n>=10&&(s.bitb=b,s.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,s.write=q,r=inflate_fast(lbits,dbits,ltree,ltree_index,dtree,dtree_index,s,z),p=z.next_in_index,n=z.avail_in,b=s.bitb,k=s.bitk,q=s.write,m=q<s.read?s.read-q-1:s.end-q,r!=Z_OK)){mode=r==Z_STREAM_END?WASH:BADCODE;break}need=lbits,tree=ltree,tree_index=ltree_index,mode=LEN;case LEN:for(j=need;k<j;){if(0===n)return s.bitb=b,s.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,s.write=q,s.inflate_flush(z,r);r=Z_OK,n--,b|=(255&z.read_byte(p++))<<k,k+=8}if(tindex=3*(tree_index+(b&inflate_mask[j])),b>>>=tree[tindex+1],k-=tree[tindex+1],e=tree[tindex],0===e){lit=tree[tindex+2],mode=LIT;break}if(0!=(16&e)){get=15&e,len=tree[tindex+2],mode=LENEXT;break}if(0==(64&e)){need=e,tree_index=tindex/3+tree[tindex+2];break}if(0!=(32&e)){mode=WASH;break}return mode=BADCODE,z.msg="invalid literal/length code",r=Z_DATA_ERROR,s.bitb=b,s.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,s.write=q,s.inflate_flush(z,r);case LENEXT:for(j=get;k<j;){if(0===n)return s.bitb=b,s.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,s.write=q,s.inflate_flush(z,r);r=Z_OK,n--,b|=(255&z.read_byte(p++))<<k,k+=8}len+=b&inflate_mask[j],b>>=j,k-=j,need=dbits,tree=dtree,tree_index=dtree_index,mode=DIST;case DIST:for(j=need;k<j;){if(0===n)return s.bitb=b,s.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,s.write=q,s.inflate_flush(z,r);r=Z_OK,n--,b|=(255&z.read_byte(p++))<<k,k+=8}if(tindex=3*(tree_index+(b&inflate_mask[j])),b>>=tree[tindex+1],k-=tree[tindex+1],e=tree[tindex],0!=(16&e)){get=15&e,dist=tree[tindex+2],mode=DISTEXT;break}if(0==(64&e)){need=e,tree_index=tindex/3+tree[tindex+2];break}return mode=BADCODE,z.msg="invalid distance code",r=Z_DATA_ERROR,s.bitb=b,s.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,s.write=q,s.inflate_flush(z,r);case DISTEXT:for(j=get;k<j;){if(0===n)return s.bitb=b,s.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,s.write=q,s.inflate_flush(z,r);r=Z_OK,n--,b|=(255&z.read_byte(p++))<<k,k+=8}dist+=b&inflate_mask[j],b>>=j,k-=j,mode=COPY;case COPY:for(f=q-dist;f<0;)f+=s.end;for(;0!==len;){if(0===m&&(q==s.end&&0!==s.read&&(q=0,m=q<s.read?s.read-q-1:s.end-q),0===m&&(s.write=q,r=s.inflate_flush(z,r),q=s.write,m=q<s.read?s.read-q-1:s.end-q,q==s.end&&0!==s.read&&(q=0,m=q<s.read?s.read-q-1:s.end-q),0===m)))return s.bitb=b,s.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,s.write=q,s.inflate_flush(z,r);s.win[q++]=s.win[f++],m--,f==s.end&&(f=0),len--}mode=START;break;case LIT:if(0===m&&(q==s.end&&0!==s.read&&(q=0,m=q<s.read?s.read-q-1:s.end-q),0===m&&(s.write=q,r=s.inflate_flush(z,r),q=s.write,m=q<s.read?s.read-q-1:s.end-q,q==s.end&&0!==s.read&&(q=0,m=q<s.read?s.read-q-1:s.end-q),0===m)))return s.bitb=b,s.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,s.write=q,s.inflate_flush(z,r);r=Z_OK,s.win[q++]=lit,m--,mode=START;break;case WASH:if(k>7&&(k-=8,n++,p--),s.write=q,r=s.inflate_flush(z,r),q=s.write,m=q<s.read?s.read-q-1:s.end-q,s.read!=s.write)return s.bitb=b,s.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,s.write=q,s.inflate_flush(z,r);mode=END;case END:return r=Z_STREAM_END,s.bitb=b,s.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,s.write=q,s.inflate_flush(z,r);case BADCODE:return r=Z_DATA_ERROR,s.bitb=b,s.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,s.write=q,s.inflate_flush(z,r);default:return r=Z_STREAM_ERROR,s.bitb=b,s.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,s.write=q,s.inflate_flush(z,r)}},this.free=function(){}}const border=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],TYPE=0,LENS=1,STORED=2,TABLE=3,BTREE=4,DTREE=5,CODES=6,DRY=7,DONELOCKS=8,BADBLOCKS=9;function InfBlocks(z,w){const that=this;let blens,mode=TYPE,left=0,table=0,index=0;const bb=[0],tb=[0],codes=new InfCodes;let last=0,hufts=new Int32Array(3*MANY);const inftree=new InfTree;that.bitk=0,that.bitb=0,that.win=new Uint8Array(w),that.end=w,that.read=0,that.write=0,that.reset=function(z,c){c&&(c[0]=0),mode==CODES&&codes.free(z),mode=TYPE,that.bitk=0,that.bitb=0,that.read=that.write=0},that.reset(z,null),that.inflate_flush=function(z,r){let n,p,q;return p=z.next_out_index,q=that.read,n=(q<=that.write?that.write:that.end)-q,n>z.avail_out&&(n=z.avail_out),0!==n&&r==Z_BUF_ERROR&&(r=Z_OK),z.avail_out-=n,z.total_out+=n,z.next_out.set(that.win.subarray(q,q+n),p),p+=n,q+=n,q==that.end&&(q=0,that.write==that.end&&(that.write=0),n=that.write-q,n>z.avail_out&&(n=z.avail_out),0!==n&&r==Z_BUF_ERROR&&(r=Z_OK),z.avail_out-=n,z.total_out+=n,z.next_out.set(that.win.subarray(q,q+n),p),p+=n,q+=n),z.next_out_index=p,that.read=q,r},that.proc=function(z,r){let t,b,k,p,n,q,m,i;for(p=z.next_in_index,n=z.avail_in,b=that.bitb,k=that.bitk,q=that.write,m=q<that.read?that.read-q-1:that.end-q;;){let bl,bd,tl,td,bl_,bd_,tl_,td_;switch(mode){case TYPE:for(;k<3;){if(0===n)return that.bitb=b,that.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,that.write=q,that.inflate_flush(z,r);r=Z_OK,n--,b|=(255&z.read_byte(p++))<<k,k+=8}switch(t=7&b,last=1&t,t>>>1){case 0:b>>>=3,k-=3,t=7&k,b>>>=t,k-=t,mode=LENS;break;case 1:bl=[],bd=[],tl=[[]],td=[[]],InfTree.inflate_trees_fixed(bl,bd,tl,td),codes.init(bl[0],bd[0],tl[0],0,td[0],0),b>>>=3,k-=3,mode=CODES;break;case 2:b>>>=3,k-=3,mode=TABLE;break;case 3:return b>>>=3,k-=3,mode=BADBLOCKS,z.msg="invalid block type",r=Z_DATA_ERROR,that.bitb=b,that.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,that.write=q,that.inflate_flush(z,r)}break;case LENS:for(;k<32;){if(0===n)return that.bitb=b,that.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,that.write=q,that.inflate_flush(z,r);r=Z_OK,n--,b|=(255&z.read_byte(p++))<<k,k+=8}if((~b>>>16&65535)!=(65535&b))return mode=BADBLOCKS,z.msg="invalid stored block lengths",r=Z_DATA_ERROR,that.bitb=b,that.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,that.write=q,that.inflate_flush(z,r);left=65535&b,b=k=0,mode=0!==left?STORED:0!==last?DRY:TYPE;break;case STORED:if(0===n)return that.bitb=b,that.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,that.write=q,that.inflate_flush(z,r);if(0===m&&(q==that.end&&0!==that.read&&(q=0,m=q<that.read?that.read-q-1:that.end-q),0===m&&(that.write=q,r=that.inflate_flush(z,r),q=that.write,m=q<that.read?that.read-q-1:that.end-q,q==that.end&&0!==that.read&&(q=0,m=q<that.read?that.read-q-1:that.end-q),0===m)))return that.bitb=b,that.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,that.write=q,that.inflate_flush(z,r);if(r=Z_OK,t=left,t>n&&(t=n),t>m&&(t=m),that.win.set(z.read_buf(p,t),q),p+=t,n-=t,q+=t,m-=t,0!=(left-=t))break;mode=0!==last?DRY:TYPE;break;case TABLE:for(;k<14;){if(0===n)return that.bitb=b,that.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,that.write=q,that.inflate_flush(z,r);r=Z_OK,n--,b|=(255&z.read_byte(p++))<<k,k+=8}if(table=t=16383&b,(31&t)>29||(t>>5&31)>29)return mode=BADBLOCKS,z.msg="too many length or distance symbols",r=Z_DATA_ERROR,that.bitb=b,that.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,that.write=q,that.inflate_flush(z,r);if(t=258+(31&t)+(t>>5&31),!blens||blens.length<t)blens=[];else for(i=0;i<t;i++)blens[i]=0;b>>>=14,k-=14,index=0,mode=BTREE;case BTREE:for(;index<4+(table>>>10);){for(;k<3;){if(0===n)return that.bitb=b,that.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,that.write=q,that.inflate_flush(z,r);r=Z_OK,n--,b|=(255&z.read_byte(p++))<<k,k+=8}blens[border[index++]]=7&b,b>>>=3,k-=3}for(;index<19;)blens[border[index++]]=0;if(bb[0]=7,t=inftree.inflate_trees_bits(blens,bb,tb,hufts,z),t!=Z_OK)return(r=t)==Z_DATA_ERROR&&(blens=null,mode=BADBLOCKS),that.bitb=b,that.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,that.write=q,that.inflate_flush(z,r);index=0,mode=DTREE;case DTREE:for(;t=table,!(index>=258+(31&t)+(t>>5&31));){let j,c;for(t=bb[0];k<t;){if(0===n)return that.bitb=b,that.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,that.write=q,that.inflate_flush(z,r);r=Z_OK,n--,b|=(255&z.read_byte(p++))<<k,k+=8}if(t=hufts[3*(tb[0]+(b&inflate_mask[t]))+1],c=hufts[3*(tb[0]+(b&inflate_mask[t]))+2],c<16)b>>>=t,k-=t,blens[index++]=c;else{for(i=18==c?7:c-14,j=18==c?11:3;k<t+i;){if(0===n)return that.bitb=b,that.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,that.write=q,that.inflate_flush(z,r);r=Z_OK,n--,b|=(255&z.read_byte(p++))<<k,k+=8}if(b>>>=t,k-=t,j+=b&inflate_mask[i],b>>>=i,k-=i,i=index,t=table,i+j>258+(31&t)+(t>>5&31)||16==c&&i<1)return blens=null,mode=BADBLOCKS,z.msg="invalid bit length repeat",r=Z_DATA_ERROR,that.bitb=b,that.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,that.write=q,that.inflate_flush(z,r);c=16==c?blens[i-1]:0;do{blens[i++]=c}while(0!=--j);index=i}}if(tb[0]=-1,bl_=[],bd_=[],tl_=[],td_=[],bl_[0]=9,bd_[0]=6,t=table,t=inftree.inflate_trees_dynamic(257+(31&t),1+(t>>5&31),blens,bl_,bd_,tl_,td_,hufts,z),t!=Z_OK)return t==Z_DATA_ERROR&&(blens=null,mode=BADBLOCKS),r=t,that.bitb=b,that.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,that.write=q,that.inflate_flush(z,r);codes.init(bl_[0],bd_[0],hufts,tl_[0],hufts,td_[0]),mode=CODES;case CODES:if(that.bitb=b,that.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,that.write=q,(r=codes.proc(that,z,r))!=Z_STREAM_END)return that.inflate_flush(z,r);if(r=Z_OK,codes.free(z),p=z.next_in_index,n=z.avail_in,b=that.bitb,k=that.bitk,q=that.write,m=q<that.read?that.read-q-1:that.end-q,0===last){mode=TYPE;break}mode=DRY;case DRY:if(that.write=q,r=that.inflate_flush(z,r),q=that.write,m=q<that.read?that.read-q-1:that.end-q,that.read!=that.write)return that.bitb=b,that.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,that.write=q,that.inflate_flush(z,r);mode=DONELOCKS;case DONELOCKS:return r=Z_STREAM_END,that.bitb=b,that.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,that.write=q,that.inflate_flush(z,r);case BADBLOCKS:return r=Z_DATA_ERROR,that.bitb=b,that.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,that.write=q,that.inflate_flush(z,r);default:return r=Z_STREAM_ERROR,that.bitb=b,that.bitk=k,z.avail_in=n,z.total_in+=p-z.next_in_index,z.next_in_index=p,that.write=q,that.inflate_flush(z,r)}}},that.free=function(z){that.reset(z,null),that.win=null,hufts=null},that.set_dictionary=function(d,start,n){that.win.set(d.subarray(start,start+n),0),that.read=that.write=n},that.sync_point=function(){return mode==LENS?1:0}}const mark=[0,0,255,255];function Inflate(){const that=this;function inflateReset(z){return z&&z.istate?(z.total_in=z.total_out=0,z.msg=null,z.istate.mode=7,z.istate.blocks.reset(z,null),Z_OK):Z_STREAM_ERROR}that.mode=0,that.method=0,that.was=[0],that.need=0,that.marker=0,that.wbits=0,that.inflateEnd=function(z){return that.blocks&&that.blocks.free(z),that.blocks=null,Z_OK},that.inflateInit=function(z,w){return z.msg=null,that.blocks=null,w<8||w>15?(that.inflateEnd(z),Z_STREAM_ERROR):(that.wbits=w,z.istate.blocks=new InfBlocks(z,1<<w),inflateReset(z),Z_OK)},that.inflate=function(z,f){let r,b;if(!z||!z.istate||!z.next_in)return Z_STREAM_ERROR;const istate=z.istate;for(f=4==f?Z_BUF_ERROR:Z_OK,r=Z_BUF_ERROR;;)switch(istate.mode){case 0:if(0===z.avail_in)return r;if(r=f,z.avail_in--,z.total_in++,8!=(15&(istate.method=z.read_byte(z.next_in_index++)))){istate.mode=13,z.msg="unknown compression method",istate.marker=5;break}if(8+(istate.method>>4)>istate.wbits){istate.mode=13,z.msg="invalid win size",istate.marker=5;break}istate.mode=1;case 1:if(0===z.avail_in)return r;if(r=f,z.avail_in--,z.total_in++,b=255&z.read_byte(z.next_in_index++),((istate.method<<8)+b)%31!=0){istate.mode=13,z.msg="incorrect header check",istate.marker=5;break}if(0==(32&b)){istate.mode=7;break}istate.mode=2;case 2:if(0===z.avail_in)return r;r=f,z.avail_in--,z.total_in++,istate.need=(255&z.read_byte(z.next_in_index++))<<24&4278190080,istate.mode=3;case 3:if(0===z.avail_in)return r;r=f,z.avail_in--,z.total_in++,istate.need+=(255&z.read_byte(z.next_in_index++))<<16&16711680,istate.mode=4;case 4:if(0===z.avail_in)return r;r=f,z.avail_in--,z.total_in++,istate.need+=(255&z.read_byte(z.next_in_index++))<<8&65280,istate.mode=5;case 5:return 0===z.avail_in?r:(r=f,z.avail_in--,z.total_in++,istate.need+=255&z.read_byte(z.next_in_index++),istate.mode=6,2);case 6:return istate.mode=13,z.msg="need dictionary",istate.marker=0,Z_STREAM_ERROR;case 7:if(r=istate.blocks.proc(z,r),r==Z_DATA_ERROR){istate.mode=13,istate.marker=0;break}if(r==Z_OK&&(r=f),r!=Z_STREAM_END)return r;r=f,istate.blocks.reset(z,istate.was),istate.mode=12;case 12:return z.avail_in=0,Z_STREAM_END;case 13:return Z_DATA_ERROR;default:return Z_STREAM_ERROR}},that.inflateSetDictionary=function(z,dictionary,dictLength){let index=0,length=dictLength;if(!z||!z.istate||6!=z.istate.mode)return Z_STREAM_ERROR;const istate=z.istate;return length>=1<<istate.wbits&&(length=(1<<istate.wbits)-1,index=dictLength-length),istate.blocks.set_dictionary(dictionary,index,length),istate.mode=7,Z_OK},that.inflateSync=function(z){let n,p,m,r,w;if(!z||!z.istate)return Z_STREAM_ERROR;const istate=z.istate;if(13!=istate.mode&&(istate.mode=13,istate.marker=0),0===(n=z.avail_in))return Z_BUF_ERROR;for(p=z.next_in_index,m=istate.marker;0!==n&&m<4;)z.read_byte(p)==mark[m]?m++:m=0!==z.read_byte(p)?0:4-m,p++,n--;return z.total_in+=p-z.next_in_index,z.next_in_index=p,z.avail_in=n,istate.marker=m,4!=m?Z_DATA_ERROR:(r=z.total_in,w=z.total_out,inflateReset(z),z.total_in=r,z.total_out=w,istate.mode=7,Z_OK)},that.inflateSyncPoint=function(z){return z&&z.istate&&z.istate.blocks?z.istate.blocks.sync_point():Z_STREAM_ERROR}}function ZStream(){}ZStream.prototype={inflateInit(bits){return this.istate=new Inflate,bits||(bits=15),this.istate.inflateInit(this,bits)},inflate(f){return this.istate?this.istate.inflate(this,f):Z_STREAM_ERROR},inflateEnd(){if(!this.istate)return Z_STREAM_ERROR;const ret=this.istate.inflateEnd(this);return this.istate=null,ret},inflateSync(){return this.istate?this.istate.inflateSync(this):Z_STREAM_ERROR},inflateSetDictionary(dictionary,dictLength){return this.istate?this.istate.inflateSetDictionary(this,dictionary,dictLength):Z_STREAM_ERROR},read_byte(start){return this.next_in[start]},read_buf(start,size){return this.next_in.subarray(start,start+size)}};const MAX_32_BITS=4294967295,COMPRESSION_METHOD_DEFLATE=8,COMPRESSION_METHOD_STORE=0,COMPRESSION_METHOD_AES=99,LOCAL_FILE_HEADER_SIGNATURE=67324752,SPLIT_ZIP_FILE_SIGNATURE=134695760,DATA_DESCRIPTOR_RECORD_SIGNATURE=SPLIT_ZIP_FILE_SIGNATURE,EXTRAFIELD_TYPE_ZIP64=1,EXTRAFIELD_TYPE_AES=39169,EXTRAFIELD_TYPE_NTFS=10,EXTRAFIELD_TYPE_NTFS_TAG1=1,EXTRAFIELD_TYPE_EXTENDED_TIMESTAMP=21589,EXTRAFIELD_TYPE_USDZ=6534,BITFLAG_ENCRYPTED=1,BITFLAG_DATA_DESCRIPTOR=8,BITFLAG_LANG_ENCODING_FLAG=2048,VERSION_ZIP64=45,VERSION_AES=51,MAX_DATE=new Date(2107,11,31),MIN_DATE=new Date(1980,0,1),UNDEFINED_VALUE=void 0,FUNCTION_TYPE$1="function";class StreamAdapter{constructor(Codec){return class extends TransformStream{constructor(_format,options){const codec=new Codec(options);super({transform(chunk,controller){controller.enqueue(codec.append(chunk))},flush(controller){const chunk=codec.flush();chunk&&controller.enqueue(chunk)}})}}}}const MINIMUM_CHUNK_SIZE=64;let maxWorkers=2;try{"undefined"!=typeof navigator&&navigator.hardwareConcurrency&&(maxWorkers=navigator.hardwareConcurrency)}catch(_error){}const DEFAULT_CONFIGURATION={chunkSize:524288,maxWorkers:maxWorkers,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,workerScripts:UNDEFINED_VALUE,CompressionStreamNative:"undefined"!=typeof CompressionStream&&CompressionStream,DecompressionStreamNative:"undefined"!=typeof DecompressionStream&&DecompressionStream},config=Object.assign({},DEFAULT_CONFIGURATION);function configure(configuration){const{baseURL:baseURL,chunkSize:chunkSize,maxWorkers:maxWorkers,terminateWorkerTimeout:terminateWorkerTimeout,useCompressionStream:useCompressionStream,useWebWorkers:useWebWorkers,Deflate:Deflate,Inflate:Inflate,CompressionStream:CompressionStream,DecompressionStream:DecompressionStream,workerScripts:workerScripts}=configuration;if(setIfDefined("baseURL",baseURL),setIfDefined("chunkSize",chunkSize),setIfDefined("maxWorkers",maxWorkers),setIfDefined("terminateWorkerTimeout",terminateWorkerTimeout),setIfDefined("useCompressionStream",useCompressionStream),setIfDefined("useWebWorkers",useWebWorkers),Deflate&&(config.CompressionStream=new StreamAdapter(Deflate)),Inflate&&(config.DecompressionStream=new StreamAdapter(Inflate)),setIfDefined("CompressionStream",CompressionStream),setIfDefined("DecompressionStream",DecompressionStream),workerScripts!==UNDEFINED_VALUE){const{deflate:deflate,inflate:inflate}=workerScripts;if((deflate||inflate)&&(config.workerScripts||(config.workerScripts={})),deflate){if(!Array.isArray(deflate))throw new Error("workerScripts.deflate must be an array");config.workerScripts.deflate=deflate}if(inflate){if(!Array.isArray(inflate))throw new Error("workerScripts.inflate must be an array");config.workerScripts.inflate=inflate}}}function setIfDefined(propertyName,propertyValue){propertyValue!==UNDEFINED_VALUE&&(config[propertyName]=propertyValue)}const table$1={application:{"andrew-inset":"ez",annodex:"anx","atom+xml":"atom","atomcat+xml":"atomcat","atomserv+xml":"atomsrv",bbolin:"lin","cu-seeme":"cu","davmount+xml":"davmount",dsptype:"tsp",ecmascript:["es","ecma"],futuresplash:"spl",hta:"hta","java-archive":"jar","java-serialized-object":"ser","java-vm":"class",m3g:"m3g","mac-binhex40":"hqx",mathematica:["nb","ma","mb"],msaccess:"mdb",msword:["doc","dot","wiz"],mxf:"mxf",oda:"oda",ogg:"ogx",pdf:"pdf","pgp-keys":"key","pgp-signature":["asc","sig"],"pics-rules":"prf",postscript:["ps","ai","eps","epsi","epsf","eps2","eps3"],rar:"rar","rdf+xml":"rdf","rss+xml":"rss",rtf:"rtf","xhtml+xml":["xhtml","xht"],xml:["xml","xsl","xsd","xpdl"],"xspf+xml":"xspf",zip:"zip","vnd.android.package-archive":"apk","vnd.cinderella":"cdy","vnd.google-earth.kml+xml":"kml","vnd.google-earth.kmz":"kmz","vnd.mozilla.xul+xml":"xul","vnd.ms-excel":["xls","xlb","xlt","xlm","xla","xlc","xlw"],"vnd.ms-pki.seccat":"cat","vnd.ms-pki.stl":"stl","vnd.ms-powerpoint":["ppt","pps","pot","ppa","pwz"],"vnd.oasis.opendocument.chart":"odc","vnd.oasis.opendocument.database":"odb","vnd.oasis.opendocument.formula":"odf","vnd.oasis.opendocument.graphics":"odg","vnd.oasis.opendocument.graphics-template":"otg","vnd.oasis.opendocument.image":"odi","vnd.oasis.opendocument.presentation":"odp","vnd.oasis.opendocument.presentation-template":"otp","vnd.oasis.opendocument.spreadsheet":"ods","vnd.oasis.opendocument.spreadsheet-template":"ots","vnd.oasis.opendocument.text":"odt","vnd.oasis.opendocument.text-master":["odm","otm"],"vnd.oasis.opendocument.text-template":"ott","vnd.oasis.opendocument.text-web":"oth","vnd.openxmlformats-officedocument.spreadsheetml.sheet":"xlsx","vnd.openxmlformats-officedocument.spreadsheetml.template":"xltx","vnd.openxmlformats-officedocument.presentationml.presentation":"pptx","vnd.openxmlformats-officedocument.presentationml.slideshow":"ppsx","vnd.openxmlformats-officedocument.presentationml.template":"potx","vnd.openxmlformats-officedocument.wordprocessingml.document":"docx","vnd.openxmlformats-officedocument.wordprocessingml.template":"dotx","vnd.smaf":"mmf","vnd.stardivision.calc":"sdc","vnd.stardivision.chart":"sds","vnd.stardivision.draw":"sda","vnd.stardivision.impress":"sdd","vnd.stardivision.math":["sdf","smf"],"vnd.stardivision.writer":["sdw","vor"],"vnd.stardivision.writer-global":"sgl","vnd.sun.xml.calc":"sxc","vnd.sun.xml.calc.template":"stc","vnd.sun.xml.draw":"sxd","vnd.sun.xml.draw.template":"std","vnd.sun.xml.impress":"sxi","vnd.sun.xml.impress.template":"sti","vnd.sun.xml.math":"sxm","vnd.sun.xml.writer":"sxw","vnd.sun.xml.writer.global":"sxg","vnd.sun.xml.writer.template":"stw","vnd.symbian.install":["sis","sisx"],"vnd.visio":["vsd","vst","vss","vsw","vsdx","vssx","vstx","vssm","vstm"],"vnd.wap.wbxml":"wbxml","vnd.wap.wmlc":"wmlc","vnd.wap.wmlscriptc":"wmlsc","vnd.wordperfect":"wpd","vnd.wordperfect5.1":"wp5","x-123":"wk","x-7z-compressed":"7z","x-abiword":"abw","x-apple-diskimage":"dmg","x-bcpio":"bcpio","x-bittorrent":"torrent","x-cbr":["cbr","cba","cbt","cb7"],"x-cbz":"cbz","x-cdf":["cdf","cda"],"x-cdlink":"vcd","x-chess-pgn":"pgn","x-cpio":"cpio","x-csh":"csh","x-director":["dir","dxr","cst","cct","cxt","w3d","fgd","swa"],"x-dms":"dms","x-doom":"wad","x-dvi":"dvi","x-httpd-eruby":"rhtml","x-font":"pcf.Z","x-freemind":"mm","x-gnumeric":"gnumeric","x-go-sgf":"sgf","x-graphing-calculator":"gcf","x-gtar":["gtar","taz"],"x-hdf":"hdf","x-httpd-php":["phtml","pht","php"],"x-httpd-php-source":"phps","x-httpd-php3":"php3","x-httpd-php3-preprocessed":"php3p","x-httpd-php4":"php4","x-httpd-php5":"php5","x-ica":"ica","x-info":"info","x-internet-signup":["ins","isp"],"x-iphone":"iii","x-iso9660-image":"iso","x-java-jnlp-file":"jnlp","x-jmol":"jmz","x-killustrator":"kil","x-latex":"latex","x-lyx":"lyx","x-lzx":"lzx","x-maker":["frm","fb","fbdoc"],"x-ms-wmd":"wmd","x-msdos-program":["com","exe","bat","dll"],"x-netcdf":["nc"],"x-ns-proxy-autoconfig":["pac","dat"],"x-nwc":"nwc","x-object":"o","x-oz-application":"oza","x-pkcs7-certreqresp":"p7r","x-python-code":["pyc","pyo"],"x-qgis":["qgs","shp","shx"],"x-quicktimeplayer":"qtl","x-redhat-package-manager":["rpm","rpa"],"x-ruby":"rb","x-sh":"sh","x-shar":"shar","x-shockwave-flash":["swf","swfl"],"x-silverlight":"scr","x-stuffit":"sit","x-sv4cpio":"sv4cpio","x-sv4crc":"sv4crc","x-tar":"tar","x-tex-gf":"gf","x-tex-pk":"pk","x-texinfo":["texinfo","texi"],"x-trash":["~","%","bak","old","sik"],"x-ustar":"ustar","x-wais-source":"src","x-wingz":"wz","x-x509-ca-cert":["crt","der","cer"],"x-xcf":"xcf","x-xfig":"fig","x-xpinstall":"xpi",applixware:"aw","atomsvc+xml":"atomsvc","ccxml+xml":"ccxml","cdmi-capability":"cdmia","cdmi-container":"cdmic","cdmi-domain":"cdmid","cdmi-object":"cdmio","cdmi-queue":"cdmiq","docbook+xml":"dbk","dssc+der":"dssc","dssc+xml":"xdssc","emma+xml":"emma","epub+zip":"epub",exi:"exi","font-tdpfr":"pfr","gml+xml":"gml","gpx+xml":"gpx",gxf:"gxf",hyperstudio:"stk","inkml+xml":["ink","inkml"],ipfix:"ipfix","jsonml+json":"jsonml","lost+xml":"lostxml","mads+xml":"mads",marc:"mrc","marcxml+xml":"mrcx","mathml+xml":["mathml","mml"],mbox:"mbox","mediaservercontrol+xml":"mscml","metalink+xml":"metalink","metalink4+xml":"meta4","mets+xml":"mets","mods+xml":"mods",mp21:["m21","mp21"],mp4:"mp4s","oebps-package+xml":"opf","omdoc+xml":"omdoc",onenote:["onetoc","onetoc2","onetmp","onepkg"],oxps:"oxps","patch-ops-error+xml":"xer","pgp-encrypted":"pgp",pkcs10:"p10","pkcs7-mime":["p7m","p7c"],"pkcs7-signature":"p7s",pkcs8:"p8","pkix-attr-cert":"ac","pkix-crl":"crl","pkix-pkipath":"pkipath",pkixcmp:"pki","pls+xml":"pls","prs.cww":"cww","pskc+xml":"pskcxml","reginfo+xml":"rif","relax-ng-compact-syntax":"rnc","resource-lists+xml":"rl","resource-lists-diff+xml":"rld","rls-services+xml":"rs","rpki-ghostbusters":"gbr","rpki-manifest":"mft","rpki-roa":"roa","rsd+xml":"rsd","sbml+xml":"sbml","scvp-cv-request":"scq","scvp-cv-response":"scs","scvp-vp-request":"spq","scvp-vp-response":"spp",sdp:"sdp","set-payment-initiation":"setpay","set-registration-initiation":"setreg","shf+xml":"shf","sparql-query":"rq","sparql-results+xml":"srx",srgs:"gram","srgs+xml":"grxml","sru+xml":"sru","ssdl+xml":"ssdl","ssml+xml":"ssml","tei+xml":["tei","teicorpus"],"thraud+xml":"tfi","timestamped-data":"tsd","vnd.3gpp.pic-bw-large":"plb","vnd.3gpp.pic-bw-small":"psb","vnd.3gpp.pic-bw-var":"pvb","vnd.3gpp2.tcap":"tcap","vnd.3m.post-it-notes":"pwn","vnd.accpac.simply.aso":"aso","vnd.accpac.simply.imp":"imp","vnd.acucobol":"acu","vnd.acucorp":["atc","acutc"],"vnd.adobe.air-application-installer-package+zip":"air","vnd.adobe.formscentral.fcdt":"fcdt","vnd.adobe.fxp":["fxp","fxpl"],"vnd.adobe.xdp+xml":"xdp","vnd.adobe.xfdf":"xfdf","vnd.ahead.space":"ahead","vnd.airzip.filesecure.azf":"azf","vnd.airzip.filesecure.azs":"azs","vnd.amazon.ebook":"azw","vnd.americandynamics.acc":"acc","vnd.amiga.ami":"ami","vnd.anser-web-certificate-issue-initiation":"cii","vnd.anser-web-funds-transfer-initiation":"fti","vnd.antix.game-component":"atx","vnd.apple.installer+xml":"mpkg","vnd.apple.mpegurl":"m3u8","vnd.aristanetworks.swi":"swi","vnd.astraea-software.iota":"iota","vnd.audiograph":"aep","vnd.blueice.multipass":"mpm","vnd.bmi":"bmi","vnd.businessobjects":"rep","vnd.chemdraw+xml":"cdxml","vnd.chipnuts.karaoke-mmd":"mmd","vnd.claymore":"cla","vnd.cloanto.rp9":"rp9","vnd.clonk.c4group":["c4g","c4d","c4f","c4p","c4u"],"vnd.cluetrust.cartomobile-config":"c11amc","vnd.cluetrust.cartomobile-config-pkg":"c11amz","vnd.commonspace":"csp","vnd.contact.cmsg":"cdbcmsg","vnd.cosmocaller":"cmc","vnd.crick.clicker":"clkx","vnd.crick.clicker.keyboard":"clkk","vnd.crick.clicker.palette":"clkp","vnd.crick.clicker.template":"clkt","vnd.crick.clicker.wordbank":"clkw","vnd.criticaltools.wbs+xml":"wbs","vnd.ctc-posml":"pml","vnd.cups-ppd":"ppd","vnd.curl.car":"car","vnd.curl.pcurl":"pcurl","vnd.dart":"dart","vnd.data-vision.rdz":"rdz","vnd.dece.data":["uvf","uvvf","uvd","uvvd"],"vnd.dece.ttml+xml":["uvt","uvvt"],"vnd.dece.unspecified":["uvx","uvvx"],"vnd.dece.zip":["uvz","uvvz"],"vnd.denovo.fcselayout-link":"fe_launch","vnd.dna":"dna","vnd.dolby.mlp":"mlp","vnd.dpgraph":"dpg","vnd.dreamfactory":"dfac","vnd.ds-keypoint":"kpxx","vnd.dvb.ait":"ait","vnd.dvb.service":"svc","vnd.dynageo":"geo","vnd.ecowin.chart":"mag","vnd.enliven":"nml","vnd.epson.esf":"esf","vnd.epson.msf":"msf","vnd.epson.quickanime":"qam","vnd.epson.salt":"slt","vnd.epson.ssf":"ssf","vnd.eszigno3+xml":["es3","et3"],"vnd.ezpix-album":"ez2","vnd.ezpix-package":"ez3","vnd.fdf":"fdf","vnd.fdsn.mseed":"mseed","vnd.fdsn.seed":["seed","dataless"],"vnd.flographit":"gph","vnd.fluxtime.clip":"ftc","vnd.framemaker":["fm","frame","maker","book"],"vnd.frogans.fnc":"fnc","vnd.frogans.ltf":"ltf","vnd.fsc.weblaunch":"fsc","vnd.fujitsu.oasys":"oas","vnd.fujitsu.oasys2":"oa2","vnd.fujitsu.oasys3":"oa3","vnd.fujitsu.oasysgp":"fg5","vnd.fujitsu.oasysprs":"bh2","vnd.fujixerox.ddd":"ddd","vnd.fujixerox.docuworks":"xdw","vnd.fujixerox.docuworks.binder":"xbd","vnd.fuzzysheet":"fzs","vnd.genomatix.tuxedo":"txd","vnd.geogebra.file":"ggb","vnd.geogebra.tool":"ggt","vnd.geometry-explorer":["gex","gre"],"vnd.geonext":"gxt","vnd.geoplan":"g2w","vnd.geospace":"g3w","vnd.gmx":"gmx","vnd.grafeq":["gqf","gqs"],"vnd.groove-account":"gac","vnd.groove-help":"ghf","vnd.groove-identity-message":"gim","vnd.groove-injector":"grv","vnd.groove-tool-message":"gtm","vnd.groove-tool-template":"tpl","vnd.groove-vcard":"vcg","vnd.hal+xml":"hal","vnd.handheld-entertainment+xml":"zmm","vnd.hbci":"hbci","vnd.hhe.lesson-player":"les","vnd.hp-hpgl":"hpgl","vnd.hp-hpid":"hpid","vnd.hp-hps":"hps","vnd.hp-jlyt":"jlt","vnd.hp-pcl":"pcl","vnd.hp-pclxl":"pclxl","vnd.hydrostatix.sof-data":"sfd-hdstx","vnd.ibm.minipay":"mpy","vnd.ibm.modcap":["afp","listafp","list3820"],"vnd.ibm.rights-management":"irm","vnd.ibm.secure-container":"sc","vnd.iccprofile":["icc","icm"],"vnd.igloader":"igl","vnd.immervision-ivp":"ivp","vnd.immervision-ivu":"ivu","vnd.insors.igm":"igm","vnd.intercon.formnet":["xpw","xpx"],"vnd.intergeo":"i2g","vnd.intu.qbo":"qbo","vnd.intu.qfx":"qfx","vnd.ipunplugged.rcprofile":"rcprofile","vnd.irepository.package+xml":"irp","vnd.is-xpr":"xpr","vnd.isac.fcs":"fcs","vnd.jam":"jam","vnd.jcp.javame.midlet-rms":"rms","vnd.jisp":"jisp","vnd.joost.joda-archive":"joda","vnd.kahootz":["ktz","ktr"],"vnd.kde.karbon":"karbon","vnd.kde.kchart":"chrt","vnd.kde.kformula":"kfo","vnd.kde.kivio":"flw","vnd.kde.kontour":"kon","vnd.kde.kpresenter":["kpr","kpt"],"vnd.kde.kspread":"ksp","vnd.kde.kword":["kwd","kwt"],"vnd.kenameaapp":"htke","vnd.kidspiration":"kia","vnd.kinar":["kne","knp"],"vnd.koan":["skp","skd","skt","skm"],"vnd.kodak-descriptor":"sse","vnd.las.las+xml":"lasxml","vnd.llamagraphics.life-balance.desktop":"lbd","vnd.llamagraphics.life-balance.exchange+xml":"lbe","vnd.lotus-1-2-3":"123","vnd.lotus-approach":"apr","vnd.lotus-freelance":"pre","vnd.lotus-notes":"nsf","vnd.lotus-organizer":"org","vnd.lotus-screencam":"scm","vnd.lotus-wordpro":"lwp","vnd.macports.portpkg":"portpkg","vnd.mcd":"mcd","vnd.medcalcdata":"mc1","vnd.mediastation.cdkey":"cdkey","vnd.mfer":"mwf","vnd.mfmp":"mfm","vnd.micrografx.flo":"flo","vnd.micrografx.igx":"igx","vnd.mif":"mif","vnd.mobius.daf":"daf","vnd.mobius.dis":"dis","vnd.mobius.mbk":"mbk","vnd.mobius.mqy":"mqy","vnd.mobius.msl":"msl","vnd.mobius.plc":"plc","vnd.mobius.txf":"txf","vnd.mophun.application":"mpn","vnd.mophun.certificate":"mpc","vnd.ms-artgalry":"cil","vnd.ms-cab-compressed":"cab","vnd.ms-excel.addin.macroenabled.12":"xlam","vnd.ms-excel.sheet.binary.macroenabled.12":"xlsb","vnd.ms-excel.sheet.macroenabled.12":"xlsm","vnd.ms-excel.template.macroenabled.12":"xltm","vnd.ms-fontobject":"eot","vnd.ms-htmlhelp":"chm","vnd.ms-ims":"ims","vnd.ms-lrm":"lrm","vnd.ms-officetheme":"thmx","vnd.ms-powerpoint.addin.macroenabled.12":"ppam","vnd.ms-powerpoint.presentation.macroenabled.12":"pptm","vnd.ms-powerpoint.slide.macroenabled.12":"sldm","vnd.ms-powerpoint.slideshow.macroenabled.12":"ppsm","vnd.ms-powerpoint.template.macroenabled.12":"potm","vnd.ms-project":["mpp","mpt"],"vnd.ms-word.document.macroenabled.12":"docm","vnd.ms-word.template.macroenabled.12":"dotm","vnd.ms-works":["wps","wks","wcm","wdb"],"vnd.ms-wpl":"wpl","vnd.ms-xpsdocument":"xps","vnd.mseq":"mseq","vnd.musician":"mus","vnd.muvee.style":"msty","vnd.mynfc":"taglet","vnd.neurolanguage.nlu":"nlu","vnd.nitf":["ntf","nitf"],"vnd.noblenet-directory":"nnd","vnd.noblenet-sealer":"nns","vnd.noblenet-web":"nnw","vnd.nokia.n-gage.data":"ngdat","vnd.nokia.n-gage.symbian.install":"n-gage","vnd.nokia.radio-preset":"rpst","vnd.nokia.radio-presets":"rpss","vnd.novadigm.edm":"edm","vnd.novadigm.edx":"edx","vnd.novadigm.ext":"ext","vnd.oasis.opendocument.chart-template":"otc","vnd.oasis.opendocument.formula-template":"odft","vnd.oasis.opendocument.image-template":"oti","vnd.olpc-sugar":"xo","vnd.oma.dd2+xml":"dd2","vnd.openofficeorg.extension":"oxt","vnd.openxmlformats-officedocument.presentationml.slide":"sldx","vnd.osgeo.mapguide.package":"mgp","vnd.osgi.dp":"dp","vnd.osgi.subsystem":"esa","vnd.palm":["pdb","pqa","oprc"],"vnd.pawaafile":"paw","vnd.pg.format":"str","vnd.pg.osasli":"ei6","vnd.picsel":"efif","vnd.pmi.widget":"wg","vnd.pocketlearn":"plf","vnd.powerbuilder6":"pbd","vnd.previewsystems.box":"box","vnd.proteus.magazine":"mgz","vnd.publishare-delta-tree":"qps","vnd.pvi.ptid1":"ptid","vnd.quark.quarkxpress":["qxd","qxt","qwd","qwt","qxl","qxb"],"vnd.realvnc.bed":"bed","vnd.recordare.musicxml":"mxl","vnd.recordare.musicxml+xml":"musicxml","vnd.rig.cryptonote":"cryptonote","vnd.rn-realmedia":"rm","vnd.rn-realmedia-vbr":"rmvb","vnd.route66.link66+xml":"link66","vnd.sailingtracker.track":"st","vnd.seemail":"see","vnd.sema":"sema","vnd.semd":"semd","vnd.semf":"semf","vnd.shana.informed.formdata":"ifm","vnd.shana.informed.formtemplate":"itp","vnd.shana.informed.interchange":"iif","vnd.shana.informed.package":"ipk","vnd.simtech-mindmapper":["twd","twds"],"vnd.smart.teacher":"teacher","vnd.solent.sdkm+xml":["sdkm","sdkd"],"vnd.spotfire.dxp":"dxp","vnd.spotfire.sfs":"sfs","vnd.stepmania.package":"smzip","vnd.stepmania.stepchart":"sm","vnd.sus-calendar":["sus","susp"],"vnd.svd":"svd","vnd.syncml+xml":"xsm","vnd.syncml.dm+wbxml":"bdm","vnd.syncml.dm+xml":"xdm","vnd.tao.intent-module-archive":"tao","vnd.tcpdump.pcap":["pcap","cap","dmp"],"vnd.tmobile-livetv":"tmo","vnd.trid.tpt":"tpt","vnd.triscape.mxs":"mxs","vnd.trueapp":"tra","vnd.ufdl":["ufd","ufdl"],"vnd.uiq.theme":"utz","vnd.umajin":"umj","vnd.unity":"unityweb","vnd.uoml+xml":"uoml","vnd.vcx":"vcx","vnd.visionary":"vis","vnd.vsf":"vsf","vnd.webturbo":"wtb","vnd.wolfram.player":"nbp","vnd.wqd":"wqd","vnd.wt.stf":"stf","vnd.xara":"xar","vnd.xfdl":"xfdl","vnd.yamaha.hv-dic":"hvd","vnd.yamaha.hv-script":"hvs","vnd.yamaha.hv-voice":"hvp","vnd.yamaha.openscoreformat":"osf","vnd.yamaha.openscoreformat.osfpvg+xml":"osfpvg","vnd.yamaha.smaf-audio":"saf","vnd.yamaha.smaf-phrase":"spf","vnd.yellowriver-custom-menu":"cmp","vnd.zul":["zir","zirz"],"vnd.zzazz.deck+xml":"zaz","voicexml+xml":"vxml",widget:"wgt",winhlp:"hlp","wsdl+xml":"wsdl","wspolicy+xml":"wspolicy","x-ace-compressed":"ace","x-authorware-bin":["aab","x32","u32","vox"],"x-authorware-map":"aam","x-authorware-seg":"aas","x-blorb":["blb","blorb"],"x-bzip":"bz","x-bzip2":["bz2","boz"],"x-cfs-compressed":"cfs","x-chat":"chat","x-conference":"nsc","x-dgc-compressed":"dgc","x-dtbncx+xml":"ncx","x-dtbook+xml":"dtb","x-dtbresource+xml":"res","x-eva":"eva","x-font-bdf":"bdf","x-font-ghostscript":"gsf","x-font-linux-psf":"psf","x-font-pcf":"pcf","x-font-snf":"snf","x-font-ttf":["ttf","ttc"],"x-font-type1":["pfa","pfb","pfm","afm"],"x-freearc":"arc","x-gca-compressed":"gca","x-glulx":"ulx","x-gramps-xml":"gramps","x-install-instructions":"install","x-lzh-compressed":["lzh","lha"],"x-mie":"mie","x-mobipocket-ebook":["prc","mobi"],"x-ms-application":"application","x-ms-shortcut":"lnk","x-ms-xbap":"xbap","x-msbinder":"obd","x-mscardfile":"crd","x-msclip":"clp","application/x-ms-installer":"msi","x-msmediaview":["mvb","m13","m14"],"x-msmetafile":["wmf","wmz","emf","emz"],"x-msmoney":"mny","x-mspublisher":"pub","x-msschedule":"scd","x-msterminal":"trm","x-mswrite":"wri","x-nzb":"nzb","x-pkcs12":["p12","pfx"],"x-pkcs7-certificates":["p7b","spc"],"x-research-info-systems":"ris","x-silverlight-app":"xap","x-sql":"sql","x-stuffitx":"sitx","x-subrip":"srt","x-t3vm-image":"t3","x-tex-tfm":"tfm","x-tgif":"obj","x-xliff+xml":"xlf","x-xz":"xz","x-zmachine":["z1","z2","z3","z4","z5","z6","z7","z8"],"xaml+xml":"xaml","xcap-diff+xml":"xdf","xenc+xml":"xenc","xml-dtd":"dtd","xop+xml":"xop","xproc+xml":"xpl","xslt+xml":"xslt","xv+xml":["mxml","xhvml","xvml","xvm"],yang:"yang","yin+xml":"yin",envoy:"evy",fractals:"fif","internet-property-stream":"acx",olescript:"axs","vnd.ms-outlook":"msg","vnd.ms-pkicertstore":"sst","x-compress":"z","x-perfmon":["pma","pmc","pmr","pmw"],"ynd.ms-pkipko":"pko",gzip:["gz","tgz"],"smil+xml":["smi","smil"],"vnd.debian.binary-package":["deb","udeb"],"vnd.hzn-3d-crossword":"x3d","vnd.sqlite3":["db","sqlite","sqlite3","db-wal","sqlite-wal","db-shm","sqlite-shm"],"vnd.wap.sic":"sic","vnd.wap.slc":"slc","x-krita":["kra","krz"],"x-perl":["pm","pl"],yaml:["yaml","yml"]},audio:{amr:"amr","amr-wb":"awb",annodex:"axa",basic:["au","snd"],flac:"flac",midi:["mid","midi","kar","rmi"],mpeg:["mpga","mpega","mp3","m4a","mp2a","m2a","m3a"],mpegurl:"m3u",ogg:["oga","ogg","spx"],"prs.sid":"sid","x-aiff":"aifc","x-gsm":"gsm","x-ms-wma":"wma","x-ms-wax":"wax","x-pn-realaudio":"ram","x-realaudio":"ra","x-sd2":"sd2",adpcm:"adp",mp4:"mp4a",s3m:"s3m",silk:"sil","vnd.dece.audio":["uva","uvva"],"vnd.digital-winds":"eol","vnd.dra":"dra","vnd.dts":"dts","vnd.dts.hd":"dtshd","vnd.lucent.voice":"lvp","vnd.ms-playready.media.pya":"pya","vnd.nuera.ecelp4800":"ecelp4800","vnd.nuera.ecelp7470":"ecelp7470","vnd.nuera.ecelp9600":"ecelp9600","vnd.rip":"rip",webm:"weba","x-caf":"caf","x-matroska":"mka","x-pn-realaudio-plugin":"rmp",xm:"xm",aac:"aac",aiff:["aiff","aif","aff"],opus:"opus",wav:"wav"},chemical:{"x-alchemy":"alc","x-cache":["cac","cache"],"x-cache-csf":"csf","x-cactvs-binary":["cbin","cascii","ctab"],"x-cdx":"cdx","x-chem3d":"c3d","x-cif":"cif","x-cmdf":"cmdf","x-cml":"cml","x-compass":"cpa","x-crossfire":"bsd","x-csml":["csml","csm"],"x-ctx":"ctx","x-cxf":["cxf","cef"],"x-embl-dl-nucleotide":["emb","embl"],"x-gamess-input":["inp","gam","gamin"],"x-gaussian-checkpoint":["fch","fchk"],"x-gaussian-cube":"cub","x-gaussian-input":["gau","gjc","gjf"],"x-gaussian-log":"gal","x-gcg8-sequence":"gcg","x-genbank":"gen","x-hin":"hin","x-isostar":["istr","ist"],"x-jcamp-dx":["jdx","dx"],"x-kinemage":"kin","x-macmolecule":"mcm","x-macromodel-input":"mmod","x-mdl-molfile":"mol","x-mdl-rdfile":"rd","x-mdl-rxnfile":"rxn","x-mdl-sdfile":"sd","x-mdl-tgf":"tgf","x-mmcif":"mcif","x-mol2":"mol2","x-molconn-Z":"b","x-mopac-graph":"gpt","x-mopac-input":["mop","mopcrt","zmt"],"x-mopac-out":"moo","x-ncbi-asn1":"asn","x-ncbi-asn1-ascii":["prt","ent"],"x-ncbi-asn1-binary":"val","x-rosdal":"ros","x-swissprot":"sw","x-vamas-iso14976":"vms","x-vmd":"vmd","x-xtel":"xtel","x-xyz":"xyz"},font:{otf:"otf",woff:"woff",woff2:"woff2"},image:{gif:"gif",ief:"ief",jpeg:["jpeg","jpg","jpe","jfif","jfif-tbnl","jif"],pcx:"pcx",png:"png","svg+xml":["svg","svgz"],tiff:["tiff","tif"],"vnd.djvu":["djvu","djv"],"vnd.wap.wbmp":"wbmp","x-canon-cr2":"cr2","x-canon-crw":"crw","x-cmu-raster":"ras","x-coreldraw":"cdr","x-coreldrawpattern":"pat","x-coreldrawtemplate":"cdt","x-corelphotopaint":"cpt","x-epson-erf":"erf","x-icon":"ico","x-jg":"art","x-jng":"jng","x-nikon-nef":"nef","x-olympus-orf":"orf","x-portable-anymap":"pnm","x-portable-bitmap":"pbm","x-portable-graymap":"pgm","x-portable-pixmap":"ppm","x-rgb":"rgb","x-xbitmap":"xbm","x-xpixmap":"xpm","x-xwindowdump":"xwd",bmp:"bmp",cgm:"cgm",g3fax:"g3",ktx:"ktx","prs.btif":"btif",sgi:"sgi","vnd.dece.graphic":["uvi","uvvi","uvg","uvvg"],"vnd.dwg":"dwg","vnd.dxf":"dxf","vnd.fastbidsheet":"fbs","vnd.fpx":"fpx","vnd.fst":"fst","vnd.fujixerox.edmics-mmr":"mmr","vnd.fujixerox.edmics-rlc":"rlc","vnd.ms-modi":"mdi","vnd.ms-photo":"wdp","vnd.net-fpx":"npx","vnd.xiff":"xif",webp:"webp","x-3ds":"3ds","x-cmx":"cmx","x-freehand":["fh","fhc","fh4","fh5","fh7"],"x-pict":["pic","pct"],"x-tga":"tga","cis-cod":"cod",avif:"avifs",heic:["heif","heic"],pjpeg:["pjpg"],"vnd.adobe.photoshop":"psd","x-adobe-dng":"dng","x-fuji-raf":"raf","x-icns":"icns","x-kodak-dcr":"dcr","x-kodak-k25":"k25","x-kodak-kdc":"kdc","x-minolta-mrw":"mrw","x-panasonic-raw":["raw","rw2","rwl"],"x-pentax-pef":["pef","ptx"],"x-sigma-x3f":"x3f","x-sony-arw":"arw","x-sony-sr2":"sr2","x-sony-srf":"srf"},message:{rfc822:["eml","mime","mht","mhtml","nws"]},model:{iges:["igs","iges"],mesh:["msh","mesh","silo"],vrml:["wrl","vrml"],"x3d+vrml":["x3dv","x3dvz"],"x3d+xml":"x3dz","x3d+binary":["x3db","x3dbz"],"vnd.collada+xml":"dae","vnd.dwf":"dwf","vnd.gdl":"gdl","vnd.gtw":"gtw","vnd.mts":"mts","vnd.usdz+zip":"usdz","vnd.vtu":"vtu"},text:{"cache-manifest":["manifest","appcache"],calendar:["ics","icz","ifb"],css:"css",csv:"csv",h323:"323",html:["html","htm","shtml","stm"],iuls:"uls",plain:["txt","text","brf","conf","def","list","log","in","bas","diff","ksh"],richtext:"rtx",scriptlet:["sct","wsc"],texmacs:"tm","tab-separated-values":"tsv","vnd.sun.j2me.app-descriptor":"jad","vnd.wap.wml":"wml","vnd.wap.wmlscript":"wmls","x-bibtex":"bib","x-boo":"boo","x-c++hdr":["h++","hpp","hxx","hh"],"x-c++src":["c++","cpp","cxx","cc"],"x-component":"htc","x-dsrc":"d","x-diff":"patch","x-haskell":"hs","x-java":"java","x-literate-haskell":"lhs","x-moc":"moc","x-pascal":["p","pas","pp","inc"],"x-pcs-gcd":"gcd","x-python":"py","x-scala":"scala","x-setext":"etx","x-tcl":["tcl","tk"],"x-tex":["tex","ltx","sty","cls"],"x-vcalendar":"vcs","x-vcard":"vcf",n3:"n3","prs.lines.tag":"dsc",sgml:["sgml","sgm"],troff:["t","tr","roff","man","me","ms"],turtle:"ttl","uri-list":["uri","uris","urls"],vcard:"vcard","vnd.curl":"curl","vnd.curl.dcurl":"dcurl","vnd.curl.scurl":"scurl","vnd.curl.mcurl":"mcurl","vnd.dvb.subtitle":"sub","vnd.fly":"fly","vnd.fmi.flexstor":"flx","vnd.graphviz":"gv","vnd.in3d.3dml":"3dml","vnd.in3d.spot":"spot","x-asm":["s","asm"],"x-c":["c","h","dic"],"x-fortran":["f","for","f77","f90"],"x-opml":"opml","x-nfo":"nfo","x-sfv":"sfv","x-uuencode":"uu",webviewhtml:"htt",javascript:"js",json:"json",markdown:["md","markdown","mdown","markdn"],"vnd.wap.si":"si","vnd.wap.sl":"sl"},video:{avif:"avif","3gpp":"3gp",annodex:"axv",dl:"dl",dv:["dif","dv"],fli:"fli",gl:"gl",mpeg:["mpeg","mpg","mpe","m1v","m2v","mp2","mpa","mpv2"],mp4:["mp4","mp4v","mpg4"],quicktime:["qt","mov"],ogg:"ogv","vnd.mpegurl":["mxu","m4u"],"x-flv":"flv","x-la-asf":["lsf","lsx"],"x-mng":"mng","x-ms-asf":["asf","asx","asr"],"x-ms-wm":"wm","x-ms-wmv":"wmv","x-ms-wmx":"wmx","x-ms-wvx":"wvx","x-msvideo":"avi","x-sgi-movie":"movie","x-matroska":["mpv","mkv","mk3d","mks"],"3gpp2":"3g2",h261:"h261",h263:"h263",h264:"h264",jpeg:"jpgv",jpm:["jpm","jpgm"],mj2:["mj2","mjp2"],"vnd.dece.hd":["uvh","uvvh"],"vnd.dece.mobile":["uvm","uvvm"],"vnd.dece.pd":["uvp","uvvp"],"vnd.dece.sd":["uvs","uvvs"],"vnd.dece.video":["uvv","uvvv"],"vnd.dvb.file":"dvb","vnd.fvt":"fvt","vnd.ms-playready.media.pyv":"pyv","vnd.uvvu.mp4":["uvu","uvvu"],"vnd.vivo":"viv",webm:"webm","x-f4v":"f4v","x-m4v":"m4v","x-ms-vob":"vob","x-smv":"smv",mp2t:"ts"},"x-conference":{"x-cooltalk":"ice"},"x-world":{"x-vrml":["vrm","flr","wrz","xaf","xof"]}};(()=>{const mimeTypes={};for(const type of Object.keys(table$1))for(const subtype of Object.keys(table$1[type])){const value=table$1[type][subtype];if("string"==typeof value)mimeTypes[value]=type+"/"+subtype;else for(let indexMimeType=0;indexMimeType<value.length;indexMimeType++)mimeTypes[value[indexMimeType]]=type+"/"+subtype}})();const table=[];for(let i=0;i<256;i++){let t=i;for(let j=0;j<8;j++)1&t?t=t>>>1^3988292384:t>>>=1;table[i]=t}class Crc32{constructor(crc){this.crc=crc||-1}append(data){let crc=0|this.crc;for(let offset=0,length=0|data.length;offset<length;offset++)crc=crc>>>8^table[255&(crc^data[offset])];this.crc=crc}get(){return~this.crc}}class Crc32Stream extends TransformStream{constructor(){let stream;const crc32=new Crc32;super({transform(chunk,controller){crc32.append(chunk),controller.enqueue(chunk)},flush(){const value=new Uint8Array(4);new DataView(value.buffer).setUint32(0,crc32.get()),stream.value=value}}),stream=this}}function encodeText(value){if("undefined"==typeof TextEncoder){value=unescape(encodeURIComponent(value));const result=new Uint8Array(value.length);for(let i=0;i<result.length;i++)result[i]=value.charCodeAt(i);return result}return(new TextEncoder).encode(value)}const bitArray={concat(a1,a2){if(0===a1.length||0===a2.length)return a1.concat(a2);const last=a1[a1.length-1],shift=bitArray.getPartial(last);return 32===shift?a1.concat(a2):bitArray._shiftRight(a2,shift,0|last,a1.slice(0,a1.length-1))},bitLength(a){const l=a.length;if(0===l)return 0;const x=a[l-1];return 32*(l-1)+bitArray.getPartial(x)},clamp(a,len){if(32*a.length<len)return a;const l=(a=a.slice(0,Math.ceil(len/32))).length;return len&=31,l>0&&len&&(a[l-1]=bitArray.partial(len,a[l-1]&2147483648>>len-1,1)),a},partial:(len,x,_end)=>32===len?x:(_end?0|x:x<<32-len)+1099511627776*len,getPartial:x=>Math.round(x/1099511627776)||32,_shiftRight(a,shift,carry,out){for(void 0===out&&(out=[]);shift>=32;shift-=32)out.push(carry),carry=0;if(0===shift)return out.concat(a);for(let i=0;i<a.length;i++)out.push(carry|a[i]>>>shift),carry=a[i]<<32-shift;const last2=a.length?a[a.length-1]:0,shift2=bitArray.getPartial(last2);return out.push(bitArray.partial(shift+shift2&31,shift+shift2>32?carry:out.pop(),1)),out}},codec={bytes:{fromBits(arr){const byteLength=bitArray.bitLength(arr)/8,out=new Uint8Array(byteLength);let tmp;for(let i=0;i<byteLength;i++)0==(3&i)&&(tmp=arr[i/4]),out[i]=tmp>>>24,tmp<<=8;return out},toBits(bytes){const out=[];let i,tmp=0;for(i=0;i<bytes.length;i++)tmp=tmp<<8|bytes[i],3==(3&i)&&(out.push(tmp),tmp=0);return 3&i&&out.push(bitArray.partial(8*(3&i),tmp)),out}}},hash={sha1:class{constructor(hash){const sha1=this;sha1.blockSize=512,sha1._init=[1732584193,4023233417,2562383102,271733878,3285377520],sha1._key=[1518500249,1859775393,2400959708,3395469782],hash?(sha1._h=hash._h.slice(0),sha1._buffer=hash._buffer.slice(0),sha1._length=hash._length):sha1.reset()}reset(){return this._h=this._init.slice(0),this._buffer=[],this._length=0,this}update(data){const sha1=this;"string"==typeof data&&(data=codec.utf8String.toBits(data));const b=sha1._buffer=bitArray.concat(sha1._buffer,data),ol=sha1._length,nl=sha1._length=ol+bitArray.bitLength(data);if(nl>9007199254740991)throw new Error("Cannot hash more than 2^53 - 1 bits");const c=new Uint32Array(b);let j=0;for(let i=sha1.blockSize+ol-(sha1.blockSize+ol&sha1.blockSize-1);i<=nl;i+=sha1.blockSize)sha1._block(c.subarray(16*j,16*(j+1))),j+=1;return b.splice(0,16*j),sha1}finalize(){const sha1=this;let b=sha1._buffer;const h=sha1._h;b=bitArray.concat(b,[bitArray.partial(1,1)]);for(let i=b.length+2;15&i;i++)b.push(0);for(b.push(Math.floor(sha1._length/4294967296)),b.push(0|sha1._length);b.length;)sha1._block(b.splice(0,16));return sha1.reset(),h}_f(t,b,c,d){return t<=19?b&c|~b&d:t<=39?b^c^d:t<=59?b&c|b&d|c&d:t<=79?b^c^d:void 0}_S(n,x){return x<<n|x>>>32-n}_block(words){const sha1=this,h=sha1._h,w=Array(80);for(let j=0;j<16;j++)w[j]=words[j];let a=h[0],b=h[1],c=h[2],d=h[3],e=h[4];for(let t=0;t<=79;t++){t>=16&&(w[t]=sha1._S(1,w[t-3]^w[t-8]^w[t-14]^w[t-16]));const tmp=sha1._S(5,a)+sha1._f(t,b,c,d)+e+w[t]+sha1._key[Math.floor(t/20)]|0;e=d,d=c,c=sha1._S(30,b),b=a,a=tmp}h[0]=h[0]+a|0,h[1]=h[1]+b|0,h[2]=h[2]+c|0,h[3]=h[3]+d|0,h[4]=h[4]+e|0}}},cipher={aes:class{constructor(key){const aes=this;aes._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],aes._tables[0][0][0]||aes._precompute();const sbox=aes._tables[0][4],decTable=aes._tables[1],keyLen=key.length;let i,encKey,decKey,rcon=1;if(4!==keyLen&&6!==keyLen&&8!==keyLen)throw new Error("invalid aes key size");for(aes._key=[encKey=key.slice(0),decKey=[]],i=keyLen;i<4*keyLen+28;i++){let tmp=encKey[i-1];(i%keyLen==0||8===keyLen&&i%keyLen==4)&&(tmp=sbox[tmp>>>24]<<24^sbox[tmp>>16&255]<<16^sbox[tmp>>8&255]<<8^sbox[255&tmp],i%keyLen==0&&(tmp=tmp<<8^tmp>>>24^rcon<<24,rcon=rcon<<1^283*(rcon>>7))),encKey[i]=encKey[i-keyLen]^tmp}for(let j=0;i;j++,i--){const tmp=encKey[3&j?i:i-4];decKey[j]=i<=4||j<4?tmp:decTable[0][sbox[tmp>>>24]]^decTable[1][sbox[tmp>>16&255]]^decTable[2][sbox[tmp>>8&255]]^decTable[3][sbox[255&tmp]]}}encrypt(data){return this._crypt(data,0)}decrypt(data){return this._crypt(data,1)}_precompute(){const encTable=this._tables[0],decTable=this._tables[1],sbox=encTable[4],sboxInv=decTable[4],d=[],th=[];let xInv,x2,x4,x8;for(let i=0;i<256;i++)th[(d[i]=i<<1^283*(i>>7))^i]=i;for(let x=xInv=0;!sbox[x];x^=x2||1,xInv=th[xInv]||1){let s=xInv^xInv<<1^xInv<<2^xInv<<3^xInv<<4;s=s>>8^255&s^99,sbox[x]=s,sboxInv[s]=x,x8=d[x4=d[x2=d[x]]];let tDec=16843009*x8^65537*x4^257*x2^16843008*x,tEnc=257*d[s]^16843008*s;for(let i=0;i<4;i++)encTable[i][x]=tEnc=tEnc<<24^tEnc>>>8,decTable[i][s]=tDec=tDec<<24^tDec>>>8}for(let i=0;i<5;i++)encTable[i]=encTable[i].slice(0),decTable[i]=decTable[i].slice(0)}_crypt(input,dir){if(4!==input.length)throw new Error("invalid aes block size");const key=this._key[dir],nInnerRounds=key.length/4-2,out=[0,0,0,0],table=this._tables[dir],t0=table[0],t1=table[1],t2=table[2],t3=table[3],sbox=table[4];let a2,b2,c2,a=input[0]^key[0],b=input[dir?3:1]^key[1],c=input[2]^key[2],d=input[dir?1:3]^key[3],kIndex=4;for(let i=0;i<nInnerRounds;i++)a2=t0[a>>>24]^t1[b>>16&255]^t2[c>>8&255]^t3[255&d]^key[kIndex],b2=t0[b>>>24]^t1[c>>16&255]^t2[d>>8&255]^t3[255&a]^key[kIndex+1],c2=t0[c>>>24]^t1[d>>16&255]^t2[a>>8&255]^t3[255&b]^key[kIndex+2],d=t0[d>>>24]^t1[a>>16&255]^t2[b>>8&255]^t3[255&c]^key[kIndex+3],kIndex+=4,a=a2,b=b2,c=c2;for(let i=0;i<4;i++)out[dir?3&-i:i]=sbox[a>>>24]<<24^sbox[b>>16&255]<<16^sbox[c>>8&255]<<8^sbox[255&d]^key[kIndex++],a2=a,a=b,b=c,c=d,d=a2;return out}}},random={getRandomValues(typedArray){const words=new Uint32Array(typedArray.buffer),r=m_w=>{let m_z=987654321;const mask=4294967295;return function(){m_z=36969*(65535&m_z)+(m_z>>16)&mask;return(((m_z<<16)+(m_w=18e3*(65535&m_w)+(m_w>>16)&mask)&mask)/4294967296+.5)*(Math.random()>.5?1:-1)}};for(let rcache,i=0;i<typedArray.length;i+=4){const _r=r(4294967296*(rcache||Math.random()));rcache=987654071*_r(),words[i/4]=4294967296*_r()|0}return typedArray}},mode={ctrGladman:class{constructor(prf,iv){this._prf=prf,this._initIv=iv,this._iv=iv}reset(){this._iv=this._initIv}update(data){return this.calculate(this._prf,data,this._iv)}incWord(word){if(255==(word>>24&255)){let b1=word>>16&255,b2=word>>8&255,b3=255&word;255===b1?(b1=0,255===b2?(b2=0,255===b3?b3=0:++b3):++b2):++b1,word=0,word+=b1<<16,word+=b2<<8,word+=b3}else word+=1<<24;return word}incCounter(counter){0===(counter[0]=this.incWord(counter[0]))&&(counter[1]=this.incWord(counter[1]))}calculate(prf,data,iv){let l;if(!(l=data.length))return[];const bl=bitArray.bitLength(data);for(let i=0;i<l;i+=4){this.incCounter(iv);const e=prf.encrypt(iv);data[i]^=e[0],data[i+1]^=e[1],data[i+2]^=e[2],data[i+3]^=e[3]}return bitArray.clamp(data,bl)}}},misc={importKey:password=>new misc.hmacSha1(codec.bytes.toBits(password)),pbkdf2(prf,salt,count,length){if(count=count||1e4,length<0||count<0)throw new Error("invalid params to pbkdf2");const byteLength=1+(length>>5)<<2;let u,ui,i,j,k;const arrayBuffer=new ArrayBuffer(byteLength),out=new DataView(arrayBuffer);let outLength=0;const b=bitArray;for(salt=codec.bytes.toBits(salt),k=1;outLength<(byteLength||1);k++){for(u=ui=prf.encrypt(b.concat(salt,[k])),i=1;i<count;i++)for(ui=prf.encrypt(ui),j=0;j<ui.length;j++)u[j]^=ui[j];for(i=0;outLength<(byteLength||1)&&i<u.length;i++)out.setInt32(outLength,u[i]),outLength+=4}return arrayBuffer.slice(0,length/8)},hmacSha1:class{constructor(key){const Hash=this._hash=hash.sha1,exKey=[[],[]];this._baseHash=[new Hash,new Hash];const bs=this._baseHash[0].blockSize/32;key.length>bs&&(key=(new Hash).update(key).finalize());for(let i=0;i<bs;i++)exKey[0][i]=909522486^key[i],exKey[1][i]=1549556828^key[i];this._baseHash[0].update(exKey[0]),this._baseHash[1].update(exKey[1]),this._resultHash=new Hash(this._baseHash[0])}reset(){this._resultHash=new this._hash(this._baseHash[0]),this._updated=!1}update(data){this._updated=!0,this._resultHash.update(data)}digest(){const w=this._resultHash.finalize(),result=new this._hash(this._baseHash[1]).update(w).finalize();return this.reset(),result}encrypt(data){if(this._updated)throw new Error("encrypt on already updated hmac called!");return this.update(data),this.digest(data)}}},GET_RANDOM_VALUES_SUPPORTED="undefined"!=typeof crypto&&"function"==typeof crypto.getRandomValues;function getRandomValues(array){return GET_RANDOM_VALUES_SUPPORTED?crypto.getRandomValues(array):random.getRandomValues(array)}const RAW_FORMAT="raw",PBKDF2_ALGORITHM={name:"PBKDF2"},BASE_KEY_ALGORITHM=Object.assign({hash:{name:"HMAC"}},PBKDF2_ALGORITHM),DERIVED_BITS_ALGORITHM=Object.assign({iterations:1e3,hash:{name:"SHA-1"}},PBKDF2_ALGORITHM),DERIVED_BITS_USAGE=["deriveBits"],SALT_LENGTH=[8,12,16],KEY_LENGTH=[16,24,32],COUNTER_DEFAULT_VALUE=[0,0,0,0],CRYPTO_API_SUPPORTED="undefined"!=typeof crypto,subtle=CRYPTO_API_SUPPORTED&&crypto.subtle,SUBTLE_API_SUPPORTED=CRYPTO_API_SUPPORTED&&void 0!==subtle,codecBytes=codec.bytes,Aes=cipher.aes,CtrGladman=mode.ctrGladman,HmacSha1=misc.hmacSha1;let IMPORT_KEY_SUPPORTED=CRYPTO_API_SUPPORTED&&SUBTLE_API_SUPPORTED&&"function"==typeof subtle.importKey,DERIVE_BITS_SUPPORTED=CRYPTO_API_SUPPORTED&&SUBTLE_API_SUPPORTED&&"function"==typeof subtle.deriveBits;class AESDecryptionStream extends TransformStream{constructor({password:password,signed:signed,encryptionStrength:encryptionStrength,checkPasswordOnly:checkPasswordOnly}){super({start(){Object.assign(this,{ready:new Promise((resolve=>this.resolveReady=resolve)),password:password,signed:signed,strength:encryptionStrength-1,pending:new Uint8Array})},async transform(chunk,controller){const aesCrypto=this,{password:password,strength:strength,resolveReady:resolveReady,ready:ready}=aesCrypto;password?(await async function(decrypt,strength,password,preamble){const passwordVerificationKey=await createKeys$1(decrypt,strength,password,subarray(preamble,0,SALT_LENGTH[strength])),passwordVerification=subarray(preamble,SALT_LENGTH[strength]);if(passwordVerificationKey[0]!=passwordVerification[0]||passwordVerificationKey[1]!=passwordVerification[1])throw new Error("Invalid password")}(aesCrypto,strength,password,subarray(chunk,0,SALT_LENGTH[strength]+2)),chunk=subarray(chunk,SALT_LENGTH[strength]+2),checkPasswordOnly?controller.error(new Error("zipjs-abort-check-password")):resolveReady()):await ready;const output=new Uint8Array(chunk.length-10-(chunk.length-10)%16);controller.enqueue(append$1(aesCrypto,chunk,output,0,10,!0))},async flush(controller){const{signed:signed,ctr:ctr,hmac:hmac,pending:pending,ready:ready}=this;if(hmac&&ctr){await ready;const chunkToDecrypt=subarray(pending,0,pending.length-10),originalSignature=subarray(pending,pending.length-10);let decryptedChunkArray=new Uint8Array;if(chunkToDecrypt.length){const encryptedChunk=toBits(codecBytes,chunkToDecrypt);hmac.update(encryptedChunk);const decryptedChunk=ctr.update(encryptedChunk);decryptedChunkArray=fromBits(codecBytes,decryptedChunk)}if(signed){const signature=subarray(fromBits(codecBytes,hmac.digest()),0,10);for(let indexSignature=0;indexSignature<10;indexSignature++)if(signature[indexSignature]!=originalSignature[indexSignature])throw new Error("Invalid signature")}controller.enqueue(decryptedChunkArray)}}})}}class AESEncryptionStream extends TransformStream{constructor({password:password,encryptionStrength:encryptionStrength}){let stream;super({start(){Object.assign(this,{ready:new Promise((resolve=>this.resolveReady=resolve)),password:password,strength:encryptionStrength-1,pending:new Uint8Array})},async transform(chunk,controller){const aesCrypto=this,{password:password,strength:strength,resolveReady:resolveReady,ready:ready}=aesCrypto;let preamble=new Uint8Array;password?(preamble=await async function(encrypt,strength,password){const salt=getRandomValues(new Uint8Array(SALT_LENGTH[strength])),passwordVerification=await createKeys$1(encrypt,strength,password,salt);return concat(salt,passwordVerification)}(aesCrypto,strength,password),resolveReady()):await ready;const output=new Uint8Array(preamble.length+chunk.length-chunk.length%16);output.set(preamble,0),controller.enqueue(append$1(aesCrypto,chunk,output,preamble.length,0))},async flush(controller){const{ctr:ctr,hmac:hmac,pending:pending,ready:ready}=this;if(hmac&&ctr){await ready;let encryptedChunkArray=new Uint8Array;if(pending.length){const encryptedChunk=ctr.update(toBits(codecBytes,pending));hmac.update(encryptedChunk),encryptedChunkArray=fromBits(codecBytes,encryptedChunk)}stream.signature=fromBits(codecBytes,hmac.digest()).slice(0,10),controller.enqueue(concat(encryptedChunkArray,stream.signature))}}}),stream=this}}function append$1(aesCrypto,input,output,paddingStart,paddingEnd,verifySignature){const{ctr:ctr,hmac:hmac,pending:pending}=aesCrypto,inputLength=input.length-paddingEnd;let offset;for(pending.length&&(input=concat(pending,input),output=function(inputArray,length){if(length&&length>inputArray.length){const array=inputArray;(inputArray=new Uint8Array(length)).set(array,0)}return inputArray}(output,inputLength-inputLength%16)),offset=0;offset<=inputLength-16;offset+=16){const inputChunk=toBits(codecBytes,subarray(input,offset,offset+16));verifySignature&&hmac.update(inputChunk);const outputChunk=ctr.update(inputChunk);verifySignature||hmac.update(outputChunk),output.set(fromBits(codecBytes,outputChunk),offset+paddingStart)}return aesCrypto.pending=subarray(input,offset),output}async function createKeys$1(aesCrypto,strength,password,salt){aesCrypto.password=null;const encodedPassword=encodeText(password),baseKey=await async function(format,password,algorithm,extractable,keyUsages){if(!IMPORT_KEY_SUPPORTED)return misc.importKey(password);try{return await subtle.importKey(format,password,algorithm,extractable,keyUsages)}catch(_error){return IMPORT_KEY_SUPPORTED=!1,misc.importKey(password)}}(RAW_FORMAT,encodedPassword,BASE_KEY_ALGORITHM,!1,DERIVED_BITS_USAGE),derivedBits=await async function(algorithm,baseKey,length){if(!DERIVE_BITS_SUPPORTED)return misc.pbkdf2(baseKey,algorithm.salt,DERIVED_BITS_ALGORITHM.iterations,length);try{return await subtle.deriveBits(algorithm,baseKey,length)}catch(_error){return DERIVE_BITS_SUPPORTED=!1,misc.pbkdf2(baseKey,algorithm.salt,DERIVED_BITS_ALGORITHM.iterations,length)}}(Object.assign({salt:salt},DERIVED_BITS_ALGORITHM),baseKey,8*(2*KEY_LENGTH[strength]+2)),compositeKey=new Uint8Array(derivedBits),key=toBits(codecBytes,subarray(compositeKey,0,KEY_LENGTH[strength])),authentication=toBits(codecBytes,subarray(compositeKey,KEY_LENGTH[strength],2*KEY_LENGTH[strength])),passwordVerification=subarray(compositeKey,2*KEY_LENGTH[strength]);return Object.assign(aesCrypto,{keys:{key:key,authentication:authentication,passwordVerification:passwordVerification},ctr:new CtrGladman(new Aes(key),Array.from(COUNTER_DEFAULT_VALUE)),hmac:new HmacSha1(authentication)}),passwordVerification}function concat(leftArray,rightArray){let array=leftArray;return leftArray.length+rightArray.length&&(array=new Uint8Array(leftArray.length+rightArray.length),array.set(leftArray,0),array.set(rightArray,leftArray.length)),array}function subarray(array,begin,end){return array.subarray(begin,end)}function fromBits(codecBytes,chunk){return codecBytes.fromBits(chunk)}function toBits(codecBytes,chunk){return codecBytes.toBits(chunk)}class ZipCryptoDecryptionStream extends TransformStream{constructor({password:password,passwordVerification:passwordVerification,checkPasswordOnly:checkPasswordOnly}){super({start(){Object.assign(this,{password:password,passwordVerification:passwordVerification}),createKeys(this,password)},transform(chunk,controller){const zipCrypto=this;if(zipCrypto.password){const decryptedHeader=decrypt(zipCrypto,chunk.subarray(0,12));if(zipCrypto.password=null,decryptedHeader[11]!=zipCrypto.passwordVerification)throw new Error("Invalid password");chunk=chunk.subarray(12)}checkPasswordOnly?controller.error(new Error("zipjs-abort-check-password")):controller.enqueue(decrypt(zipCrypto,chunk))}})}}class ZipCryptoEncryptionStream extends TransformStream{constructor({password:password,passwordVerification:passwordVerification}){super({start(){Object.assign(this,{password:password,passwordVerification:passwordVerification}),createKeys(this,password)},transform(chunk,controller){const zipCrypto=this;let output,offset;if(zipCrypto.password){zipCrypto.password=null;const header=getRandomValues(new Uint8Array(12));header[11]=zipCrypto.passwordVerification,output=new Uint8Array(chunk.length+header.length),output.set(encrypt(zipCrypto,header),0),offset=12}else output=new Uint8Array(chunk.length),offset=0;output.set(encrypt(zipCrypto,chunk),offset),controller.enqueue(output)}})}}function decrypt(target,input){const output=new Uint8Array(input.length);for(let index=0;index<input.length;index++)output[index]=getByte(target)^input[index],updateKeys(target,output[index]);return output}function encrypt(target,input){const output=new Uint8Array(input.length);for(let index=0;index<input.length;index++)output[index]=getByte(target)^input[index],updateKeys(target,input[index]);return output}function createKeys(target,password){const keys=[305419896,591751049,878082192];Object.assign(target,{keys:keys,crcKey0:new Crc32(keys[0]),crcKey2:new Crc32(keys[2])});for(let index=0;index<password.length;index++)updateKeys(target,password.charCodeAt(index))}function updateKeys(target,byte){let[key0,key1,key2]=target.keys;target.crcKey0.append([byte]),key0=~target.crcKey0.get(),key1=getInt32(Math.imul(getInt32(key1+getInt8(key0)),134775813)+1),target.crcKey2.append([key1>>>24]),key2=~target.crcKey2.get(),target.keys=[key0,key1,key2]}function getByte(target){const temp=2|target.keys[2];return getInt8(Math.imul(temp,1^temp)>>>8)}function getInt8(number){return 255&number}function getInt32(number){return 4294967295&number}class DeflateStream extends TransformStream{constructor(options,{chunkSize:chunkSize,CompressionStream:CompressionStream,CompressionStreamNative:CompressionStreamNative}){super({});const{compressed:compressed,encrypted:encrypted,useCompressionStream:useCompressionStream,zipCrypto:zipCrypto,signed:signed,level:level}=options,stream=this;let crc32Stream,encryptionStream,readable=filterEmptyChunks(super.readable);encrypted&&!zipCrypto||!signed||(crc32Stream=new Crc32Stream,readable=pipeThrough(readable,crc32Stream)),compressed&&(readable=pipeThroughCommpressionStream(readable,useCompressionStream,{level:level,chunkSize:chunkSize},CompressionStreamNative,CompressionStream)),encrypted&&(zipCrypto?readable=pipeThrough(readable,new ZipCryptoEncryptionStream(options)):(encryptionStream=new AESEncryptionStream(options),readable=pipeThrough(readable,encryptionStream))),setReadable(stream,readable,(()=>{let signature;encrypted&&!zipCrypto&&(signature=encryptionStream.signature),encrypted&&!zipCrypto||!signed||(signature=new DataView(crc32Stream.value.buffer).getUint32(0)),stream.signature=signature}))}}class InflateStream extends TransformStream{constructor(options,{chunkSize:chunkSize,DecompressionStream:DecompressionStream,DecompressionStreamNative:DecompressionStreamNative}){super({});const{zipCrypto:zipCrypto,encrypted:encrypted,signed:signed,signature:signature,compressed:compressed,useCompressionStream:useCompressionStream}=options;let crc32Stream,decryptionStream,readable=filterEmptyChunks(super.readable);encrypted&&(zipCrypto?readable=pipeThrough(readable,new ZipCryptoDecryptionStream(options)):(decryptionStream=new AESDecryptionStream(options),readable=pipeThrough(readable,decryptionStream))),compressed&&(readable=pipeThroughCommpressionStream(readable,useCompressionStream,{chunkSize:chunkSize},DecompressionStreamNative,DecompressionStream)),encrypted&&!zipCrypto||!signed||(crc32Stream=new Crc32Stream,readable=pipeThrough(readable,crc32Stream)),setReadable(this,readable,(()=>{if((!encrypted||zipCrypto)&&signed){const dataViewSignature=new DataView(crc32Stream.value.buffer);if(signature!=dataViewSignature.getUint32(0,!1))throw new Error("Invalid signature")}}))}}function filterEmptyChunks(readable){return pipeThrough(readable,new TransformStream({transform(chunk,controller){chunk&&chunk.length&&controller.enqueue(chunk)}}))}function setReadable(stream,readable,flush){readable=pipeThrough(readable,new TransformStream({flush:flush})),Object.defineProperty(stream,"readable",{get:()=>readable})}function pipeThroughCommpressionStream(readable,useCompressionStream,options,CodecStreamNative,CodecStream){try{readable=pipeThrough(readable,new(useCompressionStream&&CodecStreamNative?CodecStreamNative:CodecStream)("deflate-raw",options))}catch(error){if(!useCompressionStream)throw error;readable=pipeThrough(readable,new CodecStream("deflate-raw",options))}return readable}function pipeThrough(readable,transformStream){return readable.pipeThrough(transformStream)}const MESSAGE_EVENT_TYPE="message",MESSAGE_START="start",MESSAGE_PULL="pull",MESSAGE_DATA="data",MESSAGE_ACK_DATA="ack",MESSAGE_CLOSE="close",CODEC_DEFLATE="deflate";class CodecStream extends TransformStream{constructor(options,config){super({});const codec=this,{codecType:codecType}=options;let Stream;codecType.startsWith(CODEC_DEFLATE)?Stream=DeflateStream:codecType.startsWith("inflate")&&(Stream=InflateStream);let size=0;const stream=new Stream(options,config),readable=super.readable,transformStream=new TransformStream({transform(chunk,controller){chunk&&chunk.length&&(size+=chunk.length,controller.enqueue(chunk))},flush(){const{signature:signature}=stream;Object.assign(codec,{signature:signature,size:size})}});Object.defineProperty(codec,"readable",{get:()=>readable.pipeThrough(stream).pipeThrough(transformStream)})}}const WEB_WORKERS_SUPPORTED="undefined"!=typeof Worker;class CodecWorker{constructor(workerData,{readable:readable,writable:writable},{options:options,config:config,streamOptions:streamOptions,useWebWorkers:useWebWorkers,transferStreams:transferStreams,scripts:scripts},onTaskFinished){const{signal:signal}=streamOptions;return Object.assign(workerData,{busy:!0,readable:readable.pipeThrough(new ProgressWatcherStream(readable,streamOptions,config),{signal:signal}),writable:writable,options:Object.assign({},options),scripts:scripts,transferStreams:transferStreams,terminate(){const{worker:worker,busy:busy}=workerData;worker&&!busy&&(worker.terminate(),workerData.interface=null)},onTaskFinished(){workerData.busy=!1,onTaskFinished(workerData)}}),(useWebWorkers&&WEB_WORKERS_SUPPORTED?createWebWorkerInterface:createWorkerInterface)(workerData,config)}}class ProgressWatcherStream extends TransformStream{constructor(readableSource,{onstart:onstart,onprogress:onprogress,size:size,onend:onend},{chunkSize:chunkSize}){let chunkOffset=0;super({start(){onstart&&callHandler(onstart,size)},async transform(chunk,controller){chunkOffset+=chunk.length,onprogress&&await callHandler(onprogress,chunkOffset,size),controller.enqueue(chunk)},flush(){readableSource.size=chunkOffset,onend&&callHandler(onend,chunkOffset)}},{highWaterMark:1,size:()=>chunkSize})}}async function callHandler(handler,...parameters){try{await handler(...parameters)}catch(_error){}}function createWorkerInterface(workerData,config){return{run:()=>async function({options:options,readable:readable,writable:writable,onTaskFinished:onTaskFinished},config){const codecStream=new CodecStream(options,config);try{await readable.pipeThrough(codecStream).pipeTo(writable,{preventClose:!0,preventAbort:!0});const{signature:signature,size:size}=codecStream;return{signature:signature,size:size}}finally{onTaskFinished()}}(workerData,config)}}function createWebWorkerInterface(workerData,{baseURL:baseURL,chunkSize:chunkSize}){return workerData.interface||Object.assign(workerData,{worker:getWebWorker(workerData.scripts[0],baseURL,workerData),interface:{run:()=>async function(workerData,config){let resolveResult,rejectResult;const result=new Promise(((resolve,reject)=>{resolveResult=resolve,rejectResult=reject}));Object.assign(workerData,{reader:null,writer:null,resolveResult:resolveResult,rejectResult:rejectResult,result:result});const{readable:readable,options:options,scripts:scripts}=workerData,{writable:writable,closed:closed}=function(writableSource){const writer=writableSource.getWriter();let resolveStreamClosed;const closed=new Promise((resolve=>resolveStreamClosed=resolve)),writable=new WritableStream({async write(chunk){await writer.ready,await writer.write(chunk)},close(){writer.releaseLock(),resolveStreamClosed()},abort:reason=>writer.abort(reason)});return{writable:writable,closed:closed}}(workerData.writable),streamsTransferred=sendMessage({type:MESSAGE_START,scripts:scripts.slice(1),options:options,config:config,readable:readable,writable:writable},workerData);streamsTransferred||Object.assign(workerData,{reader:readable.getReader(),writer:writable.getWriter()});const resultValue=await result;try{await writable.getWriter().close()}catch(_error){}return await closed,resultValue}(workerData,{chunkSize:chunkSize})}}),workerData.interface}let classicWorkersSupported=!0,transferStreamsSupported=!0;function getWebWorker(url,baseURL,workerData){const workerOptions={type:"module"};let scriptUrl,worker;typeof url==FUNCTION_TYPE$1&&(url=url());try{scriptUrl=new URL(url,baseURL)}catch(_error){scriptUrl=url}if(classicWorkersSupported)try{worker=new Worker(scriptUrl)}catch(_error){classicWorkersSupported=!1,worker=new Worker(scriptUrl,workerOptions)}else worker=new Worker(scriptUrl,workerOptions);return worker.addEventListener(MESSAGE_EVENT_TYPE,(event=>async function({data:data},workerData){const{type:type,value:value,messageId:messageId,result:result,error:error}=data,{reader:reader,writer:writer,resolveResult:resolveResult,rejectResult:rejectResult,onTaskFinished:onTaskFinished}=workerData;try{if(error){const{message:message,stack:stack,code:code,name:name}=error,responseError=new Error(message);Object.assign(responseError,{stack:stack,code:code,name:name}),close(responseError)}else{if(type==MESSAGE_PULL){const{value:value,done:done}=await reader.read();sendMessage({type:MESSAGE_DATA,value:value,done:done,messageId:messageId},workerData)}type==MESSAGE_DATA&&(await writer.ready,await writer.write(new Uint8Array(value)),sendMessage({type:MESSAGE_ACK_DATA,messageId:messageId},workerData)),type==MESSAGE_CLOSE&&close(null,result)}}catch(error){close(error)}function close(error,result){error?rejectResult(error):resolveResult(result),writer&&writer.releaseLock(),onTaskFinished()}}(event,workerData))),worker}function sendMessage(message,{worker:worker,writer:writer,onTaskFinished:onTaskFinished,transferStreams:transferStreams}){try{let{value:value,readable:readable,writable:writable}=message;const transferables=[];if(value&&(value.byteLength<value.buffer.byteLength?message.value=value.buffer.slice(0,value.byteLength):message.value=value.buffer,transferables.push(message.value)),transferStreams&&transferStreamsSupported?(readable&&transferables.push(readable),writable&&transferables.push(writable)):message.readable=message.writable=null,transferables.length)try{return worker.postMessage(message,transferables),!0}catch(_error){transferStreamsSupported=!1,message.readable=message.writable=null,worker.postMessage(message)}else worker.postMessage(message)}catch(error){throw writer&&writer.releaseLock(),onTaskFinished(),error}}let pool=[];const pendingRequests=[];let indexWorker=0;function clearTerminateTimeout(workerData){const{terminateTimeout:terminateTimeout}=workerData;terminateTimeout&&(clearTimeout(terminateTimeout),workerData.terminateTimeout=null)}const DEFAULT_CHUNK_SIZE=65536;class Stream{constructor(){this.size=0}init(){this.initialized=!0}}class Reader extends Stream{get readable(){const reader=this,{chunkSize:chunkSize=DEFAULT_CHUNK_SIZE}=reader,readable=new ReadableStream({start(){this.chunkOffset=0},async pull(controller){const{offset:offset=0,size:size,diskNumberStart:diskNumberStart}=readable,{chunkOffset:chunkOffset}=this;controller.enqueue(await readUint8Array(reader,offset+chunkOffset,Math.min(chunkSize,size-chunkOffset),diskNumberStart)),chunkOffset+chunkSize>size?controller.close():this.chunkOffset+=chunkSize}});return readable}}class BlobReader extends Reader{constructor(blob){super(),Object.assign(this,{blob:blob,size:blob.size})}async readUint8Array(offset,length){const offsetEnd=offset+length,blob=offset||offsetEnd<this.size?this.blob.slice(offset,offsetEnd):this.blob;let arrayBuffer=await blob.arrayBuffer();return arrayBuffer.byteLength>length&&(arrayBuffer=arrayBuffer.slice(offset,offsetEnd)),new Uint8Array(arrayBuffer)}}class BlobWriter extends Stream{constructor(contentType){super();const transformStream=new TransformStream,headers=[];contentType&&headers.push(["Content-Type",contentType]),Object.defineProperty(this,"writable",{get:()=>transformStream.writable}),this.blob=new Response(transformStream.readable,{headers:headers}).blob()}getData(){return this.blob}}class SplitDataReader extends Reader{constructor(readers){super(),this.readers=readers}async init(){const reader=this,{readers:readers}=reader;reader.lastDiskNumber=0,reader.lastDiskOffset=0,await Promise.all(readers.map((async(diskReader,indexDiskReader)=>{await diskReader.init(),indexDiskReader!=readers.length-1&&(reader.lastDiskOffset+=diskReader.size),reader.size+=diskReader.size}))),super.init()}async readUint8Array(offset,length,diskNumber=0){const reader=this,{readers:readers}=this;let result,currentDiskNumber=diskNumber;-1==currentDiskNumber&&(currentDiskNumber=readers.length-1);let currentReaderOffset=offset;for(;currentReaderOffset>=readers[currentDiskNumber].size;)currentReaderOffset-=readers[currentDiskNumber].size,currentDiskNumber++;const currentReader=readers[currentDiskNumber],currentReaderSize=currentReader.size;if(currentReaderOffset+length<=currentReaderSize)result=await readUint8Array(currentReader,currentReaderOffset,length);else{const chunkLength=currentReaderSize-currentReaderOffset;result=new Uint8Array(length),result.set(await readUint8Array(currentReader,currentReaderOffset,chunkLength)),result.set(await reader.readUint8Array(offset+chunkLength,length-chunkLength,diskNumber),chunkLength)}return reader.lastDiskNumber=Math.max(currentDiskNumber,reader.lastDiskNumber),result}}class SplitDataWriter extends Stream{constructor(writerGenerator,maxSize=4294967295){super();const zipWriter=this;let diskSourceWriter,diskWritable,diskWriter;Object.assign(zipWriter,{diskNumber:0,diskOffset:0,size:0,maxSize:maxSize,availableSize:maxSize});const writable=new WritableStream({async write(chunk){const{availableSize:availableSize}=zipWriter;if(diskWriter)chunk.length>=availableSize?(await writeChunk(chunk.slice(0,availableSize)),await closeDisk(),zipWriter.diskOffset+=diskSourceWriter.size,zipWriter.diskNumber++,diskWriter=null,await this.write(chunk.slice(availableSize))):await writeChunk(chunk);else{const{value:value,done:done}=await writerGenerator.next();if(done&&!value)throw new Error("Writer iterator completed too soon");diskSourceWriter=value,diskSourceWriter.size=0,diskSourceWriter.maxSize&&(zipWriter.maxSize=diskSourceWriter.maxSize),zipWriter.availableSize=zipWriter.maxSize,await initStream(diskSourceWriter),diskWritable=value.writable,diskWriter=diskWritable.getWriter(),await this.write(chunk)}},async close(){await diskWriter.ready,await closeDisk()}});async function writeChunk(chunk){const chunkLength=chunk.length;chunkLength&&(await diskWriter.ready,await diskWriter.write(chunk),diskSourceWriter.size+=chunkLength,zipWriter.size+=chunkLength,zipWriter.availableSize-=chunkLength)}async function closeDisk(){diskWritable.size=diskSourceWriter.size,await diskWriter.close()}Object.defineProperty(zipWriter,"writable",{get:()=>writable})}}async function initStream(stream,initSize){stream.init&&!stream.initialized&&await stream.init(initSize)}function readUint8Array(reader,offset,size,diskNumber){return reader.readUint8Array(offset,size,diskNumber)}"\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("").length;const PROPERTY_NAMES=["filename","rawFilename","compressedSize","uncompressedSize","lastModDate","rawLastModDate","comment","rawComment","lastAccessDate","creationDate","offset","diskNumberStart","diskNumberStart","internalFileAttribute","externalFileAttribute","msDosCompatible","zip64","directory","bitFlag","encrypted","signature","filenameUTF8","commentUTF8","compressionMethod","version","versionMadeBy","extraField","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class Entry{constructor(data){PROPERTY_NAMES.forEach((name=>this[name]=data[name]))}}const ERR_UNSUPPORTED_FORMAT="Zip64 is not supported (make sure 'keepOrder' is set to 'true')",EXTRAFIELD_DATA_AES=new Uint8Array([7,0,2,0,65,69,3,0,0]);let workers=0;const pendingEntries=[];class ZipWriter{constructor(writer,options={}){writer=function(writer){writer.writable===UNDEFINED_VALUE&&typeof writer.next==FUNCTION_TYPE$1&&(writer=new SplitDataWriter(writer)),writer instanceof WritableStream&&(writer={writable:writer});const{writable:writable}=writer;return writable.size===UNDEFINED_VALUE&&(writable.size=0),writer instanceof SplitDataWriter||Object.assign(writer,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),writer}(writer),Object.assign(this,{writer:writer,addSplitZipSignature:writer instanceof SplitDataWriter,options:options,config:config,files:new Map,filenames:new Set,offset:writer.writable.size,pendingEntriesSize:0,pendingAddFileCalls:new Set,bufferedWrites:0})}async add(name="",reader,options={}){const zipWriter=this,{pendingAddFileCalls:pendingAddFileCalls,config:config}=zipWriter;let promiseAddFile;workers<config.maxWorkers?workers++:await new Promise((resolve=>pendingEntries.push(resolve)));try{if(name=name.trim(),zipWriter.filenames.has(name))throw new Error("File already exists");return zipWriter.filenames.add(name),promiseAddFile=async function(zipWriter,name,reader,options){name=name.trim(),options.directory&&!name.endsWith("/")?name+="/":options.directory=name.endsWith("/");const rawFilename=encodeText(name);if(getLength(rawFilename)>65535)throw new Error("File entry name exceeds 64KB");const comment=options.comment||"",rawComment=encodeText(comment);if(getLength(rawComment)>65535)throw new Error("File entry comment exceeds 64KB");const version=getOptionValue(zipWriter,options,"version",20);if(version>65535)throw new Error("Version exceeds 65535");const versionMadeBy=getOptionValue(zipWriter,options,"versionMadeBy",20);if(versionMadeBy>65535)throw new Error("Version exceeds 65535");const lastModDate=getOptionValue(zipWriter,options,"lastModDate",new Date),lastAccessDate=getOptionValue(zipWriter,options,"lastAccessDate"),creationDate=getOptionValue(zipWriter,options,"creationDate"),msDosCompatible=getOptionValue(zipWriter,options,"msDosCompatible",!0),internalFileAttribute=getOptionValue(zipWriter,options,"internalFileAttribute",0),externalFileAttribute=getOptionValue(zipWriter,options,"externalFileAttribute",0),password=getOptionValue(zipWriter,options,"password"),encryptionStrength=getOptionValue(zipWriter,options,"encryptionStrength",3),zipCrypto=getOptionValue(zipWriter,options,"zipCrypto"),extendedTimestamp=getOptionValue(zipWriter,options,"extendedTimestamp",!0),keepOrder=getOptionValue(zipWriter,options,"keepOrder",!0),level=getOptionValue(zipWriter,options,"level"),useWebWorkers=getOptionValue(zipWriter,options,"useWebWorkers"),bufferedWrite=getOptionValue(zipWriter,options,"bufferedWrite"),dataDescriptorSignature=getOptionValue(zipWriter,options,"dataDescriptorSignature",!1),signal=getOptionValue(zipWriter,options,"signal"),useCompressionStream=getOptionValue(zipWriter,options,"useCompressionStream");let dataDescriptor=getOptionValue(zipWriter,options,"dataDescriptor",!0),zip64=getOptionValue(zipWriter,options,"zip64");if(password!==UNDEFINED_VALUE&&encryptionStrength!==UNDEFINED_VALUE&&(encryptionStrength<1||encryptionStrength>3))throw new Error("The strength must equal 1, 2, or 3");let rawExtraField=new Uint8Array;const{extraField:extraField}=options;if(extraField){let extraFieldSize=0,offset=0;extraField.forEach((data=>extraFieldSize+=4+getLength(data))),rawExtraField=new Uint8Array(extraFieldSize),extraField.forEach(((data,type)=>{if(type>65535)throw new Error("Extra field type exceeds 65535");if(getLength(data)>65535)throw new Error("Extra field data exceeds 64KB");arraySet(rawExtraField,new Uint16Array([type]),offset),arraySet(rawExtraField,new Uint16Array([getLength(data)]),offset+2),arraySet(rawExtraField,data,offset+4),offset+=4+getLength(data)}))}let maximumCompressedSize=0,maximumEntrySize=0,uncompressedSize=0;const zip64Enabled=!0===zip64;reader&&(reader=function(reader){return Array.isArray(reader)&&(reader=new SplitDataReader(reader)),reader instanceof ReadableStream&&(reader={readable:reader}),reader}(reader),await initStream(reader),reader.size===UNDEFINED_VALUE?(dataDescriptor=!0,(zip64||zip64===UNDEFINED_VALUE)&&(zip64=!0,uncompressedSize=maximumCompressedSize=MAX_32_BITS)):(uncompressedSize=reader.size,maximumCompressedSize=function(uncompressedSize){return uncompressedSize+5*(Math.floor(uncompressedSize/16383)+1)}(uncompressedSize)));const{diskOffset:diskOffset,diskNumber:diskNumber,maxSize:maxSize}=zipWriter.writer,zip64UncompressedSize=zip64Enabled||uncompressedSize>=MAX_32_BITS,zip64CompressedSize=zip64Enabled||maximumCompressedSize>=MAX_32_BITS,zip64Offset=zip64Enabled||zipWriter.offset+zipWriter.pendingEntriesSize-diskOffset>=MAX_32_BITS,supportZip64SplitFile=getOptionValue(zipWriter,options,"supportZip64SplitFile",!0),zip64DiskNumberStart=supportZip64SplitFile&&zip64Enabled||diskNumber+Math.ceil(zipWriter.pendingEntriesSize/maxSize)>=65535;if(zip64Offset||zip64UncompressedSize||zip64CompressedSize||zip64DiskNumberStart){if(!1===zip64||!keepOrder)throw new Error(ERR_UNSUPPORTED_FORMAT);zip64=!0}zip64=zip64||!1,options=Object.assign({},options,{rawFilename:rawFilename,rawComment:rawComment,version:version,versionMadeBy:versionMadeBy,lastModDate:lastModDate,lastAccessDate:lastAccessDate,creationDate:creationDate,rawExtraField:rawExtraField,zip64:zip64,zip64UncompressedSize:zip64UncompressedSize,zip64CompressedSize:zip64CompressedSize,zip64Offset:zip64Offset,zip64DiskNumberStart:zip64DiskNumberStart,password:password,level:level,useWebWorkers:useWebWorkers,encryptionStrength:encryptionStrength,extendedTimestamp:extendedTimestamp,zipCrypto:zipCrypto,bufferedWrite:bufferedWrite,keepOrder:keepOrder,dataDescriptor:dataDescriptor,dataDescriptorSignature:dataDescriptorSignature,signal:signal,msDosCompatible:msDosCompatible,internalFileAttribute:internalFileAttribute,externalFileAttribute:externalFileAttribute,useCompressionStream:useCompressionStream});const headerInfo=function(options){const{rawFilename:rawFilename,lastModDate:lastModDate,lastAccessDate:lastAccessDate,creationDate:creationDate,password:password,level:level,zip64:zip64,zipCrypto:zipCrypto,dataDescriptor:dataDescriptor,directory:directory,rawExtraField:rawExtraField,encryptionStrength:encryptionStrength,extendedTimestamp:extendedTimestamp}=options,compressed=0!==level&&!directory,encrypted=Boolean(password&&getLength(password));let rawExtraFieldAES,rawExtraFieldNTFS,rawExtraFieldExtendedTimestamp,extraFieldExtendedTimestampFlag,version=options.version;if(encrypted&&!zipCrypto){rawExtraFieldAES=new Uint8Array(getLength(EXTRAFIELD_DATA_AES)+2);const extraFieldAESView=getDataView(rawExtraFieldAES);setUint16(extraFieldAESView,0,EXTRAFIELD_TYPE_AES),arraySet(rawExtraFieldAES,EXTRAFIELD_DATA_AES,2),setUint8(extraFieldAESView,8,encryptionStrength)}else rawExtraFieldAES=new Uint8Array;if(extendedTimestamp){rawExtraFieldExtendedTimestamp=new Uint8Array(9+(lastAccessDate?4:0)+(creationDate?4:0));const extraFieldExtendedTimestampView=getDataView(rawExtraFieldExtendedTimestamp);setUint16(extraFieldExtendedTimestampView,0,EXTRAFIELD_TYPE_EXTENDED_TIMESTAMP),setUint16(extraFieldExtendedTimestampView,2,getLength(rawExtraFieldExtendedTimestamp)-4),extraFieldExtendedTimestampFlag=1+(lastAccessDate?2:0)+(creationDate?4:0),setUint8(extraFieldExtendedTimestampView,4,extraFieldExtendedTimestampFlag);let offset=5;setUint32(extraFieldExtendedTimestampView,offset,Math.floor(lastModDate.getTime()/1e3)),offset+=4,lastAccessDate&&(setUint32(extraFieldExtendedTimestampView,offset,Math.floor(lastAccessDate.getTime()/1e3)),offset+=4),creationDate&&setUint32(extraFieldExtendedTimestampView,offset,Math.floor(creationDate.getTime()/1e3));try{rawExtraFieldNTFS=new Uint8Array(36);const extraFieldNTFSView=getDataView(rawExtraFieldNTFS),lastModTimeNTFS=getTimeNTFS(lastModDate);setUint16(extraFieldNTFSView,0,EXTRAFIELD_TYPE_NTFS),setUint16(extraFieldNTFSView,2,32),setUint16(extraFieldNTFSView,8,EXTRAFIELD_TYPE_NTFS_TAG1),setUint16(extraFieldNTFSView,10,24),setBigUint64(extraFieldNTFSView,12,lastModTimeNTFS),setBigUint64(extraFieldNTFSView,20,getTimeNTFS(lastAccessDate)||lastModTimeNTFS),setBigUint64(extraFieldNTFSView,28,getTimeNTFS(creationDate)||lastModTimeNTFS)}catch(_error){rawExtraFieldNTFS=new Uint8Array}}else rawExtraFieldNTFS=rawExtraFieldExtendedTimestamp=new Uint8Array;let bitFlag=BITFLAG_LANG_ENCODING_FLAG;dataDescriptor&&(bitFlag|=BITFLAG_DATA_DESCRIPTOR);let compressionMethod=COMPRESSION_METHOD_STORE;compressed&&(compressionMethod=COMPRESSION_METHOD_DEFLATE);zip64&&(version=version>VERSION_ZIP64?version:VERSION_ZIP64);encrypted&&(bitFlag|=BITFLAG_ENCRYPTED,zipCrypto||(version=version>VERSION_AES?version:VERSION_AES,compressionMethod=COMPRESSION_METHOD_AES,compressed&&(rawExtraFieldAES[9]=COMPRESSION_METHOD_DEFLATE)));const headerArray=new Uint8Array(26),headerView=getDataView(headerArray);setUint16(headerView,0,version),setUint16(headerView,2,bitFlag),setUint16(headerView,4,compressionMethod);const dateArray=new Uint32Array(1),dateView=getDataView(dateArray);let lastModDateMsDos;lastModDateMsDos=lastModDate<MIN_DATE?MIN_DATE:lastModDate>MAX_DATE?MAX_DATE:lastModDate;setUint16(dateView,0,(lastModDateMsDos.getHours()<<6|lastModDateMsDos.getMinutes())<<5|lastModDateMsDos.getSeconds()/2),setUint16(dateView,2,(lastModDateMsDos.getFullYear()-1980<<4|lastModDateMsDos.getMonth()+1)<<5|lastModDateMsDos.getDate());const rawLastModDate=dateArray[0];setUint32(headerView,6,rawLastModDate),setUint16(headerView,22,getLength(rawFilename));const extraFieldLength=getLength(rawExtraFieldAES,rawExtraFieldExtendedTimestamp,rawExtraFieldNTFS,rawExtraField);setUint16(headerView,24,extraFieldLength);const localHeaderArray=new Uint8Array(30+getLength(rawFilename)+extraFieldLength);return setUint32(getDataView(localHeaderArray),0,LOCAL_FILE_HEADER_SIGNATURE),arraySet(localHeaderArray,headerArray,4),arraySet(localHeaderArray,rawFilename,30),arraySet(localHeaderArray,rawExtraFieldAES,30+getLength(rawFilename)),arraySet(localHeaderArray,rawExtraFieldExtendedTimestamp,30+getLength(rawFilename,rawExtraFieldAES)),arraySet(localHeaderArray,rawExtraFieldNTFS,30+getLength(rawFilename,rawExtraFieldAES,rawExtraFieldExtendedTimestamp)),arraySet(localHeaderArray,rawExtraField,30+getLength(rawFilename,rawExtraFieldAES,rawExtraFieldExtendedTimestamp,rawExtraFieldNTFS)),{localHeaderArray:localHeaderArray,headerArray:headerArray,headerView:headerView,lastModDate:lastModDate,rawLastModDate:rawLastModDate,encrypted:encrypted,compressed:compressed,version:version,compressionMethod:compressionMethod,extraFieldExtendedTimestampFlag:extraFieldExtendedTimestampFlag,rawExtraFieldExtendedTimestamp:rawExtraFieldExtendedTimestamp,rawExtraFieldNTFS:rawExtraFieldNTFS,rawExtraFieldAES:rawExtraFieldAES,extraFieldLength:extraFieldLength}}(options),dataDescriptorInfo=function(options){const{zip64:zip64,dataDescriptor:dataDescriptor,dataDescriptorSignature:dataDescriptorSignature}=options;let dataDescriptorView,dataDescriptorArray=new Uint8Array,dataDescriptorOffset=0;dataDescriptor&&(dataDescriptorArray=new Uint8Array(zip64?dataDescriptorSignature?24:20:dataDescriptorSignature?16:12),dataDescriptorView=getDataView(dataDescriptorArray),dataDescriptorSignature&&(dataDescriptorOffset=4,setUint32(dataDescriptorView,0,DATA_DESCRIPTOR_RECORD_SIGNATURE)));return{dataDescriptorArray:dataDescriptorArray,dataDescriptorView:dataDescriptorView,dataDescriptorOffset:dataDescriptorOffset}}(options),metadataSize=getLength(headerInfo.localHeaderArray,dataDescriptorInfo.dataDescriptorArray);maximumEntrySize=metadataSize+maximumCompressedSize,zipWriter.options.usdz&&(maximumEntrySize+=maximumEntrySize+64);let fileEntry;zipWriter.pendingEntriesSize+=maximumEntrySize;try{fileEntry=await async function(zipWriter,name,reader,entryInfo,options){const{files:files,writer:writer}=zipWriter,{keepOrder:keepOrder,dataDescriptor:dataDescriptor,signal:signal}=options,{headerInfo:headerInfo}=entryInfo,{usdz:usdz}=zipWriter.options,previousFileEntry=Array.from(files.values()).pop();let bufferedWrite,releaseLockWriter,releaseLockCurrentFileEntry,writingBufferedEntryData,writingEntryData,fileWriter,fileEntry={};files.set(name,fileEntry);try{let lockPreviousFileEntry;keepOrder&&(lockPreviousFileEntry=previousFileEntry&&previousFileEntry.lock,requestLockCurrentFileEntry()),!(options.bufferedWrite||zipWriter.writerLocked||zipWriter.bufferedWrites&&keepOrder)&&dataDescriptor||usdz?(fileWriter=writer,await requestLockWriter()):(fileWriter=new BlobWriter,fileWriter.writable.size=0,bufferedWrite=!0,zipWriter.bufferedWrites++,await initStream(writer)),await initStream(fileWriter);const{writable:writable}=writer;let{diskOffset:diskOffset}=writer;if(zipWriter.addSplitZipSignature){delete zipWriter.addSplitZipSignature;const signatureArray=new Uint8Array(4);setUint32(getDataView(signatureArray),0,SPLIT_ZIP_FILE_SIGNATURE),await writeData(writable,signatureArray),zipWriter.offset+=4}usdz&&function(entryInfo,zipWriterOffset){const{headerInfo:headerInfo}=entryInfo;let{localHeaderArray:localHeaderArray,extraFieldLength:extraFieldLength}=headerInfo,localHeaderArrayView=getDataView(localHeaderArray),extraBytesLength=64-(zipWriterOffset+localHeaderArray.length)%64;extraBytesLength<4&&(extraBytesLength+=64);const rawExtraFieldUSDZ=new Uint8Array(extraBytesLength),extraFieldUSDZView=getDataView(rawExtraFieldUSDZ);setUint16(extraFieldUSDZView,0,EXTRAFIELD_TYPE_USDZ),setUint16(extraFieldUSDZView,2,extraBytesLength-2);const previousLocalHeaderArray=localHeaderArray;headerInfo.localHeaderArray=localHeaderArray=new Uint8Array(previousLocalHeaderArray.length+extraBytesLength),arraySet(localHeaderArray,previousLocalHeaderArray),arraySet(localHeaderArray,rawExtraFieldUSDZ,previousLocalHeaderArray.length),localHeaderArrayView=getDataView(localHeaderArray),setUint16(localHeaderArrayView,28,extraFieldLength+extraBytesLength),entryInfo.metadataSize+=extraBytesLength}(entryInfo,zipWriter.offset-diskOffset),bufferedWrite||(await lockPreviousFileEntry,await skipDiskIfNeeded(writable));const{diskNumber:diskNumber}=writer;if(writingEntryData=!0,fileEntry.diskNumberStart=diskNumber,fileEntry=await async function(reader,writer,{diskNumberStart:diskNumberStart,lock:lock},entryInfo,config,options){const{headerInfo:headerInfo,dataDescriptorInfo:dataDescriptorInfo,metadataSize:metadataSize}=entryInfo,{localHeaderArray:localHeaderArray,headerArray:headerArray,lastModDate:lastModDate,rawLastModDate:rawLastModDate,encrypted:encrypted,compressed:compressed,version:version,compressionMethod:compressionMethod,rawExtraFieldExtendedTimestamp:rawExtraFieldExtendedTimestamp,extraFieldExtendedTimestampFlag:extraFieldExtendedTimestampFlag,rawExtraFieldNTFS:rawExtraFieldNTFS,rawExtraFieldAES:rawExtraFieldAES}=headerInfo,{dataDescriptorArray:dataDescriptorArray}=dataDescriptorInfo,{rawFilename:rawFilename,lastAccessDate:lastAccessDate,creationDate:creationDate,password:password,level:level,zip64:zip64,zip64UncompressedSize:zip64UncompressedSize,zip64CompressedSize:zip64CompressedSize,zip64Offset:zip64Offset,zip64DiskNumberStart:zip64DiskNumberStart,zipCrypto:zipCrypto,dataDescriptor:dataDescriptor,directory:directory,versionMadeBy:versionMadeBy,rawComment:rawComment,rawExtraField:rawExtraField,useWebWorkers:useWebWorkers,onstart:onstart,onprogress:onprogress,onend:onend,signal:signal,encryptionStrength:encryptionStrength,extendedTimestamp:extendedTimestamp,msDosCompatible:msDosCompatible,internalFileAttribute:internalFileAttribute,externalFileAttribute:externalFileAttribute,useCompressionStream:useCompressionStream}=options,fileEntry={lock:lock,versionMadeBy:versionMadeBy,zip64:zip64,directory:Boolean(directory),filenameUTF8:!0,rawFilename:rawFilename,commentUTF8:!0,rawComment:rawComment,rawExtraFieldExtendedTimestamp:rawExtraFieldExtendedTimestamp,rawExtraFieldNTFS:rawExtraFieldNTFS,rawExtraFieldAES:rawExtraFieldAES,rawExtraField:rawExtraField,extendedTimestamp:extendedTimestamp,msDosCompatible:msDosCompatible,internalFileAttribute:internalFileAttribute,externalFileAttribute:externalFileAttribute,diskNumberStart:diskNumberStart};let signature,compressedSize=0,uncompressedSize=0;const{writable:writable}=writer;if(reader){reader.chunkSize=function(config){return Math.max(config.chunkSize,MINIMUM_CHUNK_SIZE)}(config),await writeData(writable,localHeaderArray);const readable=reader.readable,size=readable.size=reader.size,workerOptions={options:{codecType:CODEC_DEFLATE,level:level,password:password,encryptionStrength:encryptionStrength,zipCrypto:encrypted&&zipCrypto,passwordVerification:encrypted&&zipCrypto&&rawLastModDate>>8&255,signed:!0,compressed:compressed,encrypted:encrypted,useWebWorkers:useWebWorkers,useCompressionStream:useCompressionStream,transferStreams:!1},config:config,streamOptions:{signal:signal,size:size,onstart:onstart,onprogress:onprogress,onend:onend}},result=await async function(stream,workerOptions){const{options:options,config:config}=workerOptions,{transferStreams:transferStreams,useWebWorkers:useWebWorkers,useCompressionStream:useCompressionStream,codecType:codecType,compressed:compressed,signed:signed,encrypted:encrypted}=options,{workerScripts:workerScripts,maxWorkers:maxWorkers,terminateWorkerTimeout:terminateWorkerTimeout}=config;workerOptions.transferStreams=transferStreams||transferStreams===UNDEFINED_VALUE;const streamCopy=!(compressed||signed||encrypted||workerOptions.transferStreams);let worker;workerOptions.useWebWorkers=!streamCopy&&(useWebWorkers||useWebWorkers===UNDEFINED_VALUE&&config.useWebWorkers),workerOptions.scripts=workerOptions.useWebWorkers&&workerScripts?workerScripts[codecType]:[],options.useCompressionStream=useCompressionStream||useCompressionStream===UNDEFINED_VALUE&&config.useCompressionStream;const workerData=pool.find((workerData=>!workerData.busy));if(workerData)clearTerminateTimeout(workerData),worker=new CodecWorker(workerData,stream,workerOptions,onTaskFinished);else if(pool.length<maxWorkers){const workerData={indexWorker:indexWorker};indexWorker++,pool.push(workerData),worker=new CodecWorker(workerData,stream,workerOptions,onTaskFinished)}else worker=await new Promise((resolve=>pendingRequests.push({resolve:resolve,stream:stream,workerOptions:workerOptions})));return worker.run();function onTaskFinished(workerData){if(pendingRequests.length){const[{resolve:resolve,stream:stream,workerOptions:workerOptions}]=pendingRequests.splice(0,1);resolve(new CodecWorker(workerData,stream,workerOptions,onTaskFinished))}else workerData.worker?(clearTerminateTimeout(workerData),Number.isFinite(terminateWorkerTimeout)&&terminateWorkerTimeout>=0&&(workerData.terminateTimeout=setTimeout((()=>{pool=pool.filter((data=>data!=workerData)),workerData.terminate()}),terminateWorkerTimeout))):pool=pool.filter((data=>data!=workerData))}}({readable:readable,writable:writable},workerOptions);writable.size+=result.size,signature=result.signature,uncompressedSize=reader.size=readable.size,compressedSize=result.size}else await writeData(writable,localHeaderArray);let rawExtraFieldZip64;if(zip64){let rawExtraFieldZip64Length=4;zip64UncompressedSize&&(rawExtraFieldZip64Length+=8),zip64CompressedSize&&(rawExtraFieldZip64Length+=8),zip64Offset&&(rawExtraFieldZip64Length+=8),zip64DiskNumberStart&&(rawExtraFieldZip64Length+=4),rawExtraFieldZip64=new Uint8Array(rawExtraFieldZip64Length)}else rawExtraFieldZip64=new Uint8Array;(function(entryInfo,options){const{signature:signature,rawExtraFieldZip64:rawExtraFieldZip64,compressedSize:compressedSize,uncompressedSize:uncompressedSize,headerInfo:headerInfo,dataDescriptorInfo:dataDescriptorInfo}=entryInfo,{headerView:headerView,encrypted:encrypted}=headerInfo,{dataDescriptorView:dataDescriptorView,dataDescriptorOffset:dataDescriptorOffset}=dataDescriptorInfo,{zip64:zip64,zip64UncompressedSize:zip64UncompressedSize,zip64CompressedSize:zip64CompressedSize,zipCrypto:zipCrypto,dataDescriptor:dataDescriptor}=options;encrypted&&!zipCrypto||signature===UNDEFINED_VALUE||(setUint32(headerView,10,signature),dataDescriptor&&setUint32(dataDescriptorView,dataDescriptorOffset,signature));if(zip64){const rawExtraFieldZip64View=getDataView(rawExtraFieldZip64);setUint16(rawExtraFieldZip64View,0,EXTRAFIELD_TYPE_ZIP64),setUint16(rawExtraFieldZip64View,2,rawExtraFieldZip64.length-4);let rawExtraFieldZip64Offset=4;zip64UncompressedSize&&(setUint32(headerView,18,MAX_32_BITS),setBigUint64(rawExtraFieldZip64View,rawExtraFieldZip64Offset,BigInt(uncompressedSize)),rawExtraFieldZip64Offset+=8),zip64CompressedSize&&(setUint32(headerView,14,MAX_32_BITS),setBigUint64(rawExtraFieldZip64View,rawExtraFieldZip64Offset,BigInt(compressedSize))),dataDescriptor&&(setBigUint64(dataDescriptorView,dataDescriptorOffset+4,BigInt(compressedSize)),setBigUint64(dataDescriptorView,dataDescriptorOffset+12,BigInt(uncompressedSize)))}else setUint32(headerView,14,compressedSize),setUint32(headerView,18,uncompressedSize),dataDescriptor&&(setUint32(dataDescriptorView,dataDescriptorOffset+4,compressedSize),setUint32(dataDescriptorView,dataDescriptorOffset+8,uncompressedSize))})({signature:signature,rawExtraFieldZip64:rawExtraFieldZip64,compressedSize:compressedSize,uncompressedSize:uncompressedSize,headerInfo:headerInfo,dataDescriptorInfo:dataDescriptorInfo},options),dataDescriptor&&await writeData(writable,dataDescriptorArray);return Object.assign(fileEntry,{uncompressedSize:uncompressedSize,compressedSize:compressedSize,lastModDate:lastModDate,rawLastModDate:rawLastModDate,creationDate:creationDate,lastAccessDate:lastAccessDate,encrypted:encrypted,length:metadataSize+compressedSize,compressionMethod:compressionMethod,version:version,headerArray:headerArray,signature:signature,rawExtraFieldZip64:rawExtraFieldZip64,extraFieldExtendedTimestampFlag:extraFieldExtendedTimestampFlag,zip64UncompressedSize:zip64UncompressedSize,zip64CompressedSize:zip64CompressedSize,zip64Offset:zip64Offset,zip64DiskNumberStart:zip64DiskNumberStart}),fileEntry}(reader,fileWriter,fileEntry,entryInfo,zipWriter.config,options),writingEntryData=!1,files.set(name,fileEntry),fileEntry.filename=name,bufferedWrite){await fileWriter.writable.getWriter().close();let blob=await fileWriter.getData();await lockPreviousFileEntry,await requestLockWriter(),writingBufferedEntryData=!0,dataDescriptor||(blob=await async function(fileEntry,entryData,writable,{zipCrypto:zipCrypto}){let arrayBuffer;arrayBuffer=await entryData.slice(0,26).arrayBuffer(),26!=arrayBuffer.byteLength&&(arrayBuffer=arrayBuffer.slice(0,26));const arrayBufferView=new DataView(arrayBuffer);fileEntry.encrypted&&!zipCrypto||setUint32(arrayBufferView,14,fileEntry.signature);fileEntry.zip64?(setUint32(arrayBufferView,18,MAX_32_BITS),setUint32(arrayBufferView,22,MAX_32_BITS)):(setUint32(arrayBufferView,18,fileEntry.compressedSize),setUint32(arrayBufferView,22,fileEntry.uncompressedSize));return await writeData(writable,new Uint8Array(arrayBuffer)),entryData.slice(arrayBuffer.byteLength)}(fileEntry,blob,writable,options)),await skipDiskIfNeeded(writable),fileEntry.diskNumberStart=writer.diskNumber,diskOffset=writer.diskOffset,await blob.stream().pipeTo(writable,{preventClose:!0,preventAbort:!0,signal:signal}),writable.size+=blob.size,writingBufferedEntryData=!1}if(fileEntry.offset=zipWriter.offset-diskOffset,fileEntry.zip64)!function(fileEntry,options){const{rawExtraFieldZip64:rawExtraFieldZip64,offset:offset,diskNumberStart:diskNumberStart}=fileEntry,{zip64UncompressedSize:zip64UncompressedSize,zip64CompressedSize:zip64CompressedSize,zip64Offset:zip64Offset,zip64DiskNumberStart:zip64DiskNumberStart}=options,rawExtraFieldZip64View=getDataView(rawExtraFieldZip64);let rawExtraFieldZip64Offset=4;zip64UncompressedSize&&(rawExtraFieldZip64Offset+=8);zip64CompressedSize&&(rawExtraFieldZip64Offset+=8);zip64Offset&&(setBigUint64(rawExtraFieldZip64View,rawExtraFieldZip64Offset,BigInt(offset)),rawExtraFieldZip64Offset+=8);zip64DiskNumberStart&&setUint32(rawExtraFieldZip64View,rawExtraFieldZip64Offset,diskNumberStart)}(fileEntry,options);else if(fileEntry.offset>=MAX_32_BITS)throw new Error(ERR_UNSUPPORTED_FORMAT);return zipWriter.offset+=fileEntry.length,fileEntry}catch(error){if(bufferedWrite&&writingBufferedEntryData||!bufferedWrite&&writingEntryData){if(zipWriter.hasCorruptedEntries=!0,error)try{error.corruptedEntry=!0}catch(_error){}bufferedWrite?zipWriter.offset+=fileWriter.writable.size:zipWriter.offset=fileWriter.writable.size}throw files.delete(name),error}finally{bufferedWrite&&zipWriter.bufferedWrites--,releaseLockCurrentFileEntry&&releaseLockCurrentFileEntry(),releaseLockWriter&&releaseLockWriter()}function requestLockCurrentFileEntry(){fileEntry.lock=new Promise((resolve=>releaseLockCurrentFileEntry=resolve))}async function requestLockWriter(){zipWriter.writerLocked=!0;const{lockWriter:lockWriter}=zipWriter;zipWriter.lockWriter=new Promise((resolve=>releaseLockWriter=()=>{zipWriter.writerLocked=!1,resolve()})),await lockWriter}async function skipDiskIfNeeded(writable){headerInfo.localHeaderArray.length>writer.availableSize&&(writer.availableSize=0,await writeData(writable,new Uint8Array))}}(zipWriter,name,reader,{headerInfo:headerInfo,dataDescriptorInfo:dataDescriptorInfo,metadataSize:metadataSize},options)}finally{zipWriter.pendingEntriesSize-=maximumEntrySize}return Object.assign(fileEntry,{name:name,comment:comment,extraField:extraField}),new Entry(fileEntry)}(zipWriter,name,reader,options),pendingAddFileCalls.add(promiseAddFile),await promiseAddFile}catch(error){throw zipWriter.filenames.delete(name),error}finally{pendingAddFileCalls.delete(promiseAddFile);const pendingEntry=pendingEntries.shift();pendingEntry?pendingEntry():workers--}}async close(comment=new Uint8Array,options={}){const{pendingAddFileCalls:pendingAddFileCalls,writer:writer}=this,{writable:writable}=writer;for(;pendingAddFileCalls.size;)await Promise.all(Array.from(pendingAddFileCalls));await async function(zipWriter,comment,options){const{files:files,writer:writer}=zipWriter,{diskOffset:diskOffset,writable:writable}=writer;let{diskNumber:diskNumber}=writer,offset=0,directoryDataLength=0,directoryOffset=zipWriter.offset-diskOffset,filesLength=files.size;for(const[,fileEntry]of files){const{rawFilename:rawFilename,rawExtraFieldZip64:rawExtraFieldZip64,rawExtraFieldAES:rawExtraFieldAES,rawComment:rawComment,rawExtraFieldNTFS:rawExtraFieldNTFS,rawExtraField:rawExtraField,extendedTimestamp:extendedTimestamp,extraFieldExtendedTimestampFlag:extraFieldExtendedTimestampFlag,lastModDate:lastModDate}=fileEntry;let rawExtraFieldTimestamp;if(extendedTimestamp){rawExtraFieldTimestamp=new Uint8Array(9);const extraFieldExtendedTimestampView=getDataView(rawExtraFieldTimestamp);setUint16(extraFieldExtendedTimestampView,0,EXTRAFIELD_TYPE_EXTENDED_TIMESTAMP),setUint16(extraFieldExtendedTimestampView,2,5),setUint8(extraFieldExtendedTimestampView,4,extraFieldExtendedTimestampFlag),setUint32(extraFieldExtendedTimestampView,5,Math.floor(lastModDate.getTime()/1e3))}else rawExtraFieldTimestamp=new Uint8Array;fileEntry.rawExtraFieldCDExtendedTimestamp=rawExtraFieldTimestamp,directoryDataLength+=46+getLength(rawFilename,rawComment,rawExtraFieldZip64,rawExtraFieldAES,rawExtraFieldNTFS,rawExtraFieldTimestamp,rawExtraField)}const directoryArray=new Uint8Array(directoryDataLength),directoryView=getDataView(directoryArray);await initStream(writer);let directoryDiskOffset=0;for(const[indexFileEntry,fileEntry]of Array.from(files.values()).entries()){const{offset:fileEntryOffset,rawFilename:rawFilename,rawExtraFieldZip64:rawExtraFieldZip64,rawExtraFieldAES:rawExtraFieldAES,rawExtraFieldCDExtendedTimestamp:rawExtraFieldCDExtendedTimestamp,rawExtraFieldNTFS:rawExtraFieldNTFS,rawExtraField:rawExtraField,rawComment:rawComment,versionMadeBy:versionMadeBy,headerArray:headerArray,directory:directory,zip64:zip64,zip64UncompressedSize:zip64UncompressedSize,zip64CompressedSize:zip64CompressedSize,zip64DiskNumberStart:zip64DiskNumberStart,zip64Offset:zip64Offset,msDosCompatible:msDosCompatible,internalFileAttribute:internalFileAttribute,externalFileAttribute:externalFileAttribute,diskNumberStart:diskNumberStart,uncompressedSize:uncompressedSize,compressedSize:compressedSize}=fileEntry,extraFieldLength=getLength(rawExtraFieldZip64,rawExtraFieldAES,rawExtraFieldCDExtendedTimestamp,rawExtraFieldNTFS,rawExtraField);setUint32(directoryView,offset,33639248),setUint16(directoryView,offset+4,versionMadeBy);const headerView=getDataView(headerArray);zip64UncompressedSize||setUint32(headerView,18,uncompressedSize),zip64CompressedSize||setUint32(headerView,14,compressedSize),arraySet(directoryArray,headerArray,offset+6),setUint16(directoryView,offset+30,extraFieldLength),setUint16(directoryView,offset+32,getLength(rawComment)),setUint16(directoryView,offset+34,zip64&&zip64DiskNumberStart?65535:diskNumberStart),setUint16(directoryView,offset+36,internalFileAttribute),externalFileAttribute?setUint32(directoryView,offset+38,externalFileAttribute):directory&&msDosCompatible&&setUint8(directoryView,offset+38,16),setUint32(directoryView,offset+42,zip64&&zip64Offset?MAX_32_BITS:fileEntryOffset),arraySet(directoryArray,rawFilename,offset+46),arraySet(directoryArray,rawExtraFieldZip64,offset+46+getLength(rawFilename)),arraySet(directoryArray,rawExtraFieldAES,offset+46+getLength(rawFilename,rawExtraFieldZip64)),arraySet(directoryArray,rawExtraFieldCDExtendedTimestamp,offset+46+getLength(rawFilename,rawExtraFieldZip64,rawExtraFieldAES)),arraySet(directoryArray,rawExtraFieldNTFS,offset+46+getLength(rawFilename,rawExtraFieldZip64,rawExtraFieldAES,rawExtraFieldCDExtendedTimestamp)),arraySet(directoryArray,rawExtraField,offset+46+getLength(rawFilename,rawExtraFieldZip64,rawExtraFieldAES,rawExtraFieldCDExtendedTimestamp,rawExtraFieldNTFS)),arraySet(directoryArray,rawComment,offset+46+getLength(rawFilename)+extraFieldLength);const directoryEntryLength=46+getLength(rawFilename,rawComment)+extraFieldLength;if(offset-directoryDiskOffset>writer.availableSize&&(writer.availableSize=0,await writeData(writable,directoryArray.slice(directoryDiskOffset,offset)),directoryDiskOffset=offset),offset+=directoryEntryLength,options.onprogress)try{await options.onprogress(indexFileEntry+1,files.size,new Entry(fileEntry))}catch(_error){}}await writeData(writable,directoryDiskOffset?directoryArray.slice(directoryDiskOffset):directoryArray);let lastDiskNumber=writer.diskNumber;const{availableSize:availableSize}=writer;availableSize<22&&lastDiskNumber++;let zip64=getOptionValue(zipWriter,options,"zip64");if(directoryOffset>=MAX_32_BITS||directoryDataLength>=MAX_32_BITS||filesLength>=65535||lastDiskNumber>=65535){if(!1===zip64)throw new Error(ERR_UNSUPPORTED_FORMAT);zip64=!0}const endOfdirectoryArray=new Uint8Array(zip64?98:22),endOfdirectoryView=getDataView(endOfdirectoryArray);if(offset=0,zip64){setUint32(endOfdirectoryView,0,101075792),setBigUint64(endOfdirectoryView,4,BigInt(44)),setUint16(endOfdirectoryView,12,45),setUint16(endOfdirectoryView,14,45),setUint32(endOfdirectoryView,16,lastDiskNumber),setUint32(endOfdirectoryView,20,diskNumber),setBigUint64(endOfdirectoryView,24,BigInt(filesLength)),setBigUint64(endOfdirectoryView,32,BigInt(filesLength)),setBigUint64(endOfdirectoryView,40,BigInt(directoryDataLength)),setBigUint64(endOfdirectoryView,48,BigInt(directoryOffset)),setUint32(endOfdirectoryView,56,117853008),setBigUint64(endOfdirectoryView,64,BigInt(directoryOffset)+BigInt(directoryDataLength)),setUint32(endOfdirectoryView,72,lastDiskNumber+1);getOptionValue(zipWriter,options,"supportZip64SplitFile",!0)&&(lastDiskNumber=65535,diskNumber=65535),filesLength=65535,directoryOffset=MAX_32_BITS,directoryDataLength=MAX_32_BITS,offset+=76}setUint32(endOfdirectoryView,offset,101010256),setUint16(endOfdirectoryView,offset+4,lastDiskNumber),setUint16(endOfdirectoryView,offset+6,diskNumber),setUint16(endOfdirectoryView,offset+8,filesLength),setUint16(endOfdirectoryView,offset+10,filesLength),setUint32(endOfdirectoryView,offset+12,directoryDataLength),setUint32(endOfdirectoryView,offset+16,directoryOffset);const commentLength=getLength(comment);if(commentLength){if(!(commentLength<=65535))throw new Error("Zip file comment exceeds 64KB");setUint16(endOfdirectoryView,offset+20,commentLength)}await writeData(writable,endOfdirectoryArray),commentLength&&await writeData(writable,comment)}(this,comment,options);return getOptionValue(this,options,"preventClose")||await writable.getWriter().close(),writer.getData?writer.getData():writable}}async function writeData(writable,array){const streamWriter=writable.getWriter();await streamWriter.ready,writable.size+=getLength(array),await streamWriter.write(array),streamWriter.releaseLock()}function getTimeNTFS(date){if(date)return(BigInt(date.getTime())+BigInt(116444736e5))*BigInt(1e4)}function getOptionValue(zipWriter,options,name,defaultValue){const result=options[name]===UNDEFINED_VALUE?zipWriter.options[name]:options[name];return result===UNDEFINED_VALUE?defaultValue:result}function setUint8(view,offset,value){view.setUint8(offset,value)}function setUint16(view,offset,value){view.setUint16(offset,value,!0)}function setUint32(view,offset,value){view.setUint32(offset,value,!0)}function setBigUint64(view,offset,value){view.setBigUint64(offset,value,!0)}function arraySet(array,typedArray,offset){array.set(typedArray,offset)}function getDataView(array){return new DataView(array.buffer)}function getLength(...arrayLikes){let result=0;return arrayLikes.forEach((arrayLike=>arrayLike&&(result+=arrayLike.length))),result}let baseURL;try{baseURL="undefined"==typeof document&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:"undefined"==typeof document?location.href:_documentCurrentScript&&"SCRIPT"===_documentCurrentScript.tagName.toUpperCase()&&_documentCurrentScript.src||new URL("app.js",document.baseURI).href}catch(_error){}configure({baseURL:baseURL}),function(e){const t=()=>URL.createObjectURL(new Blob(['const{Array:e,Object:t,Number:n,Math:r,Error:s,Uint8Array:i,Uint16Array:o,Uint32Array:c,Int32Array:f,Map:a,DataView:l,Promise:u,TextEncoder:w,crypto:h,postMessage:d,TransformStream:p,ReadableStream:y,WritableStream:m,CompressionStream:b,DecompressionStream:g}=self;class k{constructor(e){return class extends p{constructor(t,n){const r=new e(n);super({transform(e,t){t.enqueue(r.append(e))},flush(e){const t=r.flush();t&&e.enqueue(t)}})}}}}const v=[];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)1&t?t=t>>>1^3988292384:t>>>=1;v[e]=t}class S{constructor(e){this.t=e||-1}append(e){let t=0|this.t;for(let n=0,r=0|e.length;r>n;n++)t=t>>>8^v[255&(t^e[n])];this.t=t}get(){return~this.t}}class z extends p{constructor(){let e;const t=new S;super({transform(e,n){t.append(e),n.enqueue(e)},flush(){const n=new i(4);new l(n.buffer).setUint32(0,t.get()),e.value=n}}),e=this}}const C={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const n=e[e.length-1],r=C.i(n);return 32===r?e.concat(t):C.o(t,r,0|n,e.slice(0,e.length-1))},l(e){const t=e.length;if(0===t)return 0;const n=e[t-1];return 32*(t-1)+C.i(n)},u(e,t){if(32*e.length<t)return e;const n=(e=e.slice(0,r.ceil(t/32))).length;return t&=31,n>0&&t&&(e[n-1]=C.h(t,e[n-1]&2147483648>>t-1,1)),e},h:(e,t,n)=>32===e?t:(n?0|t:t<<32-e)+1099511627776*e,i:e=>r.round(e/1099511627776)||32,o(e,t,n,r){for(void 0===r&&(r=[]);t>=32;t-=32)r.push(n),n=0;if(0===t)return r.concat(e);for(let s=0;s<e.length;s++)r.push(n|e[s]>>>t),n=e[s]<<32-t;const s=e.length?e[e.length-1]:0,i=C.i(s);return r.push(C.h(t+i&31,t+i>32?n:r.pop(),1)),r}},x={p:{m(e){const t=C.l(e)/8,n=new i(t);let r;for(let s=0;t>s;s++)0==(3&s)&&(r=e[s/4]),n[s]=r>>>24,r<<=8;return n},g(e){const t=[];let n,r=0;for(n=0;n<e.length;n++)r=r<<8|e[n],3==(3&n)&&(t.push(r),r=0);return 3&n&&t.push(C.h(8*(3&n),r)),t}}},_=class{constructor(e){const t=this;t.blockSize=512,t.k=[1732584193,4023233417,2562383102,271733878,3285377520],t.v=[1518500249,1859775393,2400959708,3395469782],e?(t.S=e.S.slice(0),t.C=e.C.slice(0),t._=e._):t.reset()}reset(){const e=this;return e.S=e.k.slice(0),e.C=[],e._=0,e}update(e){const t=this;"string"==typeof e&&(e=x.A.g(e));const n=t.C=C.concat(t.C,e),r=t._,i=t._=r+C.l(e);if(i>9007199254740991)throw new s("Cannot hash more than 2^53 - 1 bits");const o=new c(n);let f=0;for(let e=t.blockSize+r-(t.blockSize+r&t.blockSize-1);i>=e;e+=t.blockSize)t.I(o.subarray(16*f,16*(f+1))),f+=1;return n.splice(0,16*f),t}D(){const e=this;let t=e.C;const n=e.S;t=C.concat(t,[C.h(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(r.floor(e._/4294967296)),t.push(0|e._);t.length;)e.I(t.splice(0,16));return e.reset(),n}V(e,t,n,r){return e>19?e>39?e>59?e>79?void 0:t^n^r:t&n|t&r|n&r:t^n^r:t&n|~t&r}P(e,t){return t<<e|t>>>32-e}I(t){const n=this,s=n.S,i=e(80);for(let e=0;16>e;e++)i[e]=t[e];let o=s[0],c=s[1],f=s[2],a=s[3],l=s[4];for(let e=0;79>=e;e++){16>e||(i[e]=n.P(1,i[e-3]^i[e-8]^i[e-14]^i[e-16]));const t=n.P(5,o)+n.V(e,c,f,a)+l+i[e]+n.v[r.floor(e/20)]|0;l=a,a=f,f=n.P(30,c),c=o,o=t}s[0]=s[0]+o|0,s[1]=s[1]+c|0,s[2]=s[2]+f|0,s[3]=s[3]+a|0,s[4]=s[4]+l|0}},A={getRandomValues(e){const t=new c(e.buffer),n=e=>{let t=987654321;const n=4294967295;return()=>(t=36969*(65535&t)+(t>>16)&n,(((t<<16)+(e=18e3*(65535&e)+(e>>16)&n)&n)/4294967296+.5)*(r.random()>.5?1:-1))};for(let s,i=0;i<e.length;i+=4){const e=n(4294967296*(s||r.random()));s=987654071*e(),t[i/4]=4294967296*e()|0}return e}},I={importKey:e=>new I.R(x.p.g(e)),B(e,t,n,r){if(n=n||1e4,0>r||0>n)throw new s("invalid params to pbkdf2");const i=1+(r>>5)<<2;let o,c,f,a,u;const w=new ArrayBuffer(i),h=new l(w);let d=0;const p=C;for(t=x.p.g(t),u=1;(i||1)>d;u++){for(o=c=e.encrypt(p.concat(t,[u])),f=1;n>f;f++)for(c=e.encrypt(c),a=0;a<c.length;a++)o[a]^=c[a];for(f=0;(i||1)>d&&f<o.length;f++)h.setInt32(d,o[f]),d+=4}return w.slice(0,r/8)},R:class{constructor(e){const t=this,n=t.M=_,r=[[],[]];t.U=[new n,new n];const s=t.U[0].blockSize/32;e.length>s&&(e=(new n).update(e).D());for(let t=0;s>t;t++)r[0][t]=909522486^e[t],r[1][t]=1549556828^e[t];t.U[0].update(r[0]),t.U[1].update(r[1]),t.K=new n(t.U[0])}reset(){const e=this;e.K=new e.M(e.U[0]),e.N=!1}update(e){this.N=!0,this.K.update(e)}digest(){const e=this,t=e.K.D(),n=new e.M(e.U[1]).update(t).D();return e.reset(),n}encrypt(e){if(this.N)throw new s("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},D=void 0!==h&&"function"==typeof h.getRandomValues,V="Invalid password",P="Invalid signature",R="zipjs-abort-check-password";function B(e){return D?h.getRandomValues(e):A.getRandomValues(e)}const E=16,M={name:"PBKDF2"},U=t.assign({hash:{name:"HMAC"}},M),K=t.assign({iterations:1e3,hash:{name:"SHA-1"}},M),N=["deriveBits"],O=[8,12,16],T=[16,24,32],W=10,j=[0,0,0,0],H="undefined",L="function",F=typeof h!=H,q=F&&h.subtle,G=F&&typeof q!=H,J=x.p,Q=class{constructor(e){const t=this;t.O=[[[],[],[],[],[]],[[],[],[],[],[]]],t.O[0][0][0]||t.T();const n=t.O[0][4],r=t.O[1],i=e.length;let o,c,f,a=1;if(4!==i&&6!==i&&8!==i)throw new s("invalid aes key size");for(t.v=[c=e.slice(0),f=[]],o=i;4*i+28>o;o++){let e=c[o-1];(o%i==0||8===i&&o%i==4)&&(e=n[e>>>24]<<24^n[e>>16&255]<<16^n[e>>8&255]<<8^n[255&e],o%i==0&&(e=e<<8^e>>>24^a<<24,a=a<<1^283*(a>>7))),c[o]=c[o-i]^e}for(let e=0;o;e++,o--){const t=c[3&e?o:o-4];f[e]=4>=o||4>e?t:r[0][n[t>>>24]]^r[1][n[t>>16&255]]^r[2][n[t>>8&255]]^r[3][n[255&t]]}}encrypt(e){return this.W(e,0)}decrypt(e){return this.W(e,1)}T(){const e=this.O[0],t=this.O[1],n=e[4],r=t[4],s=[],i=[];let o,c,f,a;for(let e=0;256>e;e++)i[(s[e]=e<<1^283*(e>>7))^e]=e;for(let l=o=0;!n[l];l^=c||1,o=i[o]||1){let i=o^o<<1^o<<2^o<<3^o<<4;i=i>>8^255&i^99,n[l]=i,r[i]=l,a=s[f=s[c=s[l]]];let u=16843009*a^65537*f^257*c^16843008*l,w=257*s[i]^16843008*i;for(let n=0;4>n;n++)e[n][l]=w=w<<24^w>>>8,t[n][i]=u=u<<24^u>>>8}for(let n=0;5>n;n++)e[n]=e[n].slice(0),t[n]=t[n].slice(0)}W(e,t){if(4!==e.length)throw new s("invalid aes block size");const n=this.v[t],r=n.length/4-2,i=[0,0,0,0],o=this.O[t],c=o[0],f=o[1],a=o[2],l=o[3],u=o[4];let w,h,d,p=e[0]^n[0],y=e[t?3:1]^n[1],m=e[2]^n[2],b=e[t?1:3]^n[3],g=4;for(let e=0;r>e;e++)w=c[p>>>24]^f[y>>16&255]^a[m>>8&255]^l[255&b]^n[g],h=c[y>>>24]^f[m>>16&255]^a[b>>8&255]^l[255&p]^n[g+1],d=c[m>>>24]^f[b>>16&255]^a[p>>8&255]^l[255&y]^n[g+2],b=c[b>>>24]^f[p>>16&255]^a[y>>8&255]^l[255&m]^n[g+3],g+=4,p=w,y=h,m=d;for(let e=0;4>e;e++)i[t?3&-e:e]=u[p>>>24]<<24^u[y>>16&255]<<16^u[m>>8&255]<<8^u[255&b]^n[g++],w=p,p=y,y=m,m=b,b=w;return i}},X=class{constructor(e,t){this.j=e,this.H=t,this.L=t}reset(){this.L=this.H}update(e){return this.F(this.j,e,this.L)}q(e){if(255==(e>>24&255)){let t=e>>16&255,n=e>>8&255,r=255&e;255===t?(t=0,255===n?(n=0,255===r?r=0:++r):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=r}else e+=1<<24;return e}G(e){0===(e[0]=this.q(e[0]))&&(e[1]=this.q(e[1]))}F(e,t,n){let r;if(!(r=t.length))return[];const s=C.l(t);for(let s=0;r>s;s+=4){this.G(n);const r=e.encrypt(n);t[s]^=r[0],t[s+1]^=r[1],t[s+2]^=r[2],t[s+3]^=r[3]}return C.u(t,s)}},Y=I.R;let Z=F&&G&&typeof q.importKey==L,$=F&&G&&typeof q.deriveBits==L;class ee extends p{constructor({password:e,signed:n,encryptionStrength:r,checkPasswordOnly:o}){super({start(){t.assign(this,{ready:new u((e=>this.J=e)),password:e,signed:n,X:r-1,pending:new i})},async transform(e,t){const n=this,{password:r,X:c,J:f,ready:a}=n;r?(await(async(e,t,n,r)=>{const i=await re(e,t,n,ie(r,0,O[t])),o=ie(r,O[t]);if(i[0]!=o[0]||i[1]!=o[1])throw new s(V)})(n,c,r,ie(e,0,O[c]+2)),e=ie(e,O[c]+2),o?t.error(new s(R)):f()):await a;const l=new i(e.length-W-(e.length-W)%E);t.enqueue(ne(n,e,l,0,W,!0))},async flush(e){const{signed:t,Y:n,Z:r,pending:o,ready:c}=this;if(r&&n){await c;const f=ie(o,0,o.length-W),a=ie(o,o.length-W);let l=new i;if(f.length){const e=ce(J,f);r.update(e);const t=n.update(e);l=oe(J,t)}if(t){const e=ie(oe(J,r.digest()),0,W);for(let t=0;W>t;t++)if(e[t]!=a[t])throw new s(P)}e.enqueue(l)}}})}}class te extends p{constructor({password:e,encryptionStrength:n}){let r;super({start(){t.assign(this,{ready:new u((e=>this.J=e)),password:e,X:n-1,pending:new i})},async transform(e,t){const n=this,{password:r,X:s,J:o,ready:c}=n;let f=new i;r?(f=await(async(e,t,n)=>{const r=B(new i(O[t]));return se(r,await re(e,t,n,r))})(n,s,r),o()):await c;const a=new i(f.length+e.length-e.length%E);a.set(f,0),t.enqueue(ne(n,e,a,f.length,0))},async flush(e){const{Y:t,Z:n,pending:s,ready:o}=this;if(n&&t){await o;let c=new i;if(s.length){const e=t.update(ce(J,s));n.update(e),c=oe(J,e)}r.signature=oe(J,n.digest()).slice(0,W),e.enqueue(se(c,r.signature))}}}),r=this}}function ne(e,t,n,r,s,o){const{Y:c,Z:f,pending:a}=e,l=t.length-s;let u;for(a.length&&(t=se(a,t),n=((e,t)=>{if(t&&t>e.length){const n=e;(e=new i(t)).set(n,0)}return e})(n,l-l%E)),u=0;l-E>=u;u+=E){const e=ce(J,ie(t,u,u+E));o&&f.update(e);const s=c.update(e);o||f.update(s),n.set(oe(J,s),u+r)}return e.pending=ie(t,u),n}async function re(n,r,s,o){n.password=null;const c=(e=>{if(void 0===w){const t=new i((e=unescape(encodeURIComponent(e))).length);for(let n=0;n<t.length;n++)t[n]=e.charCodeAt(n);return t}return(new w).encode(e)})(s),f=await(async(e,t,n,r,s)=>{if(!Z)return I.importKey(t);try{return await q.importKey("raw",t,n,!1,s)}catch(e){return Z=!1,I.importKey(t)}})(0,c,U,0,N),a=await(async(e,t,n)=>{if(!$)return I.B(t,e.salt,K.iterations,n);try{return await q.deriveBits(e,t,n)}catch(r){return $=!1,I.B(t,e.salt,K.iterations,n)}})(t.assign({salt:o},K),f,8*(2*T[r]+2)),l=new i(a),u=ce(J,ie(l,0,T[r])),h=ce(J,ie(l,T[r],2*T[r])),d=ie(l,2*T[r]);return t.assign(n,{keys:{key:u,$:h,passwordVerification:d},Y:new X(new Q(u),e.from(j)),Z:new Y(h)}),d}function se(e,t){let n=e;return e.length+t.length&&(n=new i(e.length+t.length),n.set(e,0),n.set(t,e.length)),n}function ie(e,t,n){return e.subarray(t,n)}function oe(e,t){return e.m(t)}function ce(e,t){return e.g(t)}class fe extends p{constructor({password:e,passwordVerification:n,checkPasswordOnly:r}){super({start(){t.assign(this,{password:e,passwordVerification:n}),we(this,e)},transform(e,t){const n=this;if(n.password){const t=le(n,e.subarray(0,12));if(n.password=null,t[11]!=n.passwordVerification)throw new s(V);e=e.subarray(12)}r?t.error(new s(R)):t.enqueue(le(n,e))}})}}class ae extends p{constructor({password:e,passwordVerification:n}){super({start(){t.assign(this,{password:e,passwordVerification:n}),we(this,e)},transform(e,t){const n=this;let r,s;if(n.password){n.password=null;const t=B(new i(12));t[11]=n.passwordVerification,r=new i(e.length+t.length),r.set(ue(n,t),0),s=12}else r=new i(e.length),s=0;r.set(ue(n,e),s),t.enqueue(r)}})}}function le(e,t){const n=new i(t.length);for(let r=0;r<t.length;r++)n[r]=de(e)^t[r],he(e,n[r]);return n}function ue(e,t){const n=new i(t.length);for(let r=0;r<t.length;r++)n[r]=de(e)^t[r],he(e,t[r]);return n}function we(e,n){const r=[305419896,591751049,878082192];t.assign(e,{keys:r,ee:new S(r[0]),te:new S(r[2])});for(let t=0;t<n.length;t++)he(e,n.charCodeAt(t))}function he(e,t){let[n,s,i]=e.keys;e.ee.append([t]),n=~e.ee.get(),s=ye(r.imul(ye(s+pe(n)),134775813)+1),e.te.append([s>>>24]),i=~e.te.get(),e.keys=[n,s,i]}function de(e){const t=2|e.keys[2];return pe(r.imul(t,1^t)>>>8)}function pe(e){return 255&e}function ye(e){return 4294967295&e}const me="deflate-raw";class be extends p{constructor(e,{chunkSize:t,CompressionStream:n,CompressionStreamNative:r}){super({});const{compressed:s,encrypted:i,useCompressionStream:o,zipCrypto:c,signed:f,level:a}=e,u=this;let w,h,d=ke(super.readable);i&&!c||!f||(w=new z,d=ze(d,w)),s&&(d=Se(d,o,{level:a,chunkSize:t},r,n)),i&&(c?d=ze(d,new ae(e)):(h=new te(e),d=ze(d,h))),ve(u,d,(()=>{let e;i&&!c&&(e=h.signature),i&&!c||!f||(e=new l(w.value.buffer).getUint32(0)),u.signature=e}))}}class ge extends p{constructor(e,{chunkSize:t,DecompressionStream:n,DecompressionStreamNative:r}){super({});const{zipCrypto:i,encrypted:o,signed:c,signature:f,compressed:a,useCompressionStream:u}=e;let w,h,d=ke(super.readable);o&&(i?d=ze(d,new fe(e)):(h=new ee(e),d=ze(d,h))),a&&(d=Se(d,u,{chunkSize:t},r,n)),o&&!i||!c||(w=new z,d=ze(d,w)),ve(this,d,(()=>{if((!o||i)&&c){const e=new l(w.value.buffer);if(f!=e.getUint32(0,!1))throw new s(P)}}))}}function ke(e){return ze(e,new p({transform(e,t){e&&e.length&&t.enqueue(e)}}))}function ve(e,n,r){n=ze(n,new p({flush:r})),t.defineProperty(e,"readable",{get:()=>n})}function Se(e,t,n,r,s){try{e=ze(e,new(t&&r?r:s)(me,n))}catch(r){if(!t)throw r;e=ze(e,new s(me,n))}return e}function ze(e,t){return e.pipeThrough(t)}const Ce="data";class xe extends p{constructor(e,n){super({});const r=this,{codecType:s}=e;let i;s.startsWith("deflate")?i=be:s.startsWith("inflate")&&(i=ge);let o=0;const c=new i(e,n),f=super.readable,a=new p({transform(e,t){e&&e.length&&(o+=e.length,t.enqueue(e))},flush(){const{signature:e}=c;t.assign(r,{signature:e,size:o})}});t.defineProperty(r,"readable",{get:()=>f.pipeThrough(c).pipeThrough(a)})}}const _e=new a,Ae=new a;let Ie=0;async function De(e){try{const{options:t,scripts:r,config:s}=e;r&&r.length&&importScripts.apply(void 0,r),self.initCodec&&self.initCodec(),s.CompressionStreamNative=self.CompressionStream,s.DecompressionStreamNative=self.DecompressionStream,self.Deflate&&(s.CompressionStream=new k(self.Deflate)),self.Inflate&&(s.DecompressionStream=new k(self.Inflate));const i={highWaterMark:1,size:()=>s.chunkSize},o=e.readable||new y({async pull(e){const t=new u((e=>_e.set(Ie,e)));Ve({type:"pull",messageId:Ie}),Ie=(Ie+1)%n.MAX_SAFE_INTEGER;const{value:r,done:s}=await t;e.enqueue(r),s&&e.close()}},i),c=e.writable||new m({async write(e){let t;const r=new u((e=>t=e));Ae.set(Ie,t),Ve({type:Ce,value:e,messageId:Ie}),Ie=(Ie+1)%n.MAX_SAFE_INTEGER,await r}},i),f=new xe(t,s);await o.pipeThrough(f).pipeTo(c,{preventClose:!0,preventAbort:!0});try{await c.getWriter().close()}catch(e){}const{signature:a,size:l}=f;Ve({type:"close",result:{signature:a,size:l}})}catch(e){Pe(e)}}function Ve(e){let{value:t}=e;if(t)if(t.length)try{t=new i(t),e.value=t.buffer,d(e,[e.value])}catch(t){d(e)}else d(e);else d(e)}function Pe(e=new s("Unknown error")){const{message:t,stack:n,code:r,name:i}=e;d({error:{message:t,stack:n,code:r,name:i}})}addEventListener("message",(({data:e})=>{const{type:t,messageId:n,value:r,done:s}=e;try{if("start"==t&&De(e),t==Ce){const e=_e.get(n);_e.delete(n),e({value:new i(r),done:s})}if("ack"==t){const e=Ae.get(n);Ae.delete(n),e()}}catch(e){Pe(e)}}));const Re=-2;function Be(t){return Ee(t.map((([t,n])=>new e(t).fill(n,0,t))))}function Ee(t){return t.reduce(((t,n)=>t.concat(e.isArray(n)?Ee(n):n)),[])}const Me=[0,1,2,3].concat(...Be([[2,4],[2,5],[4,6],[4,7],[8,8],[8,9],[16,10],[16,11],[32,12],[32,13],[64,14],[64,15],[2,0],[1,16],[1,17],[2,18],[2,19],[4,20],[4,21],[8,22],[8,23],[16,24],[16,25],[32,26],[32,27],[64,28],[64,29]]));function Ue(){const e=this;function t(e,t){let n=0;do{n|=1&e,e>>>=1,n<<=1}while(--t>0);return n>>>1}e.ne=n=>{const s=e.re,i=e.ie.se,o=e.ie.oe;let c,f,a,l=-1;for(n.ce=0,n.fe=573,c=0;o>c;c++)0!==s[2*c]?(n.ae[++n.ce]=l=c,n.le[c]=0):s[2*c+1]=0;for(;2>n.ce;)a=n.ae[++n.ce]=2>l?++l:0,s[2*a]=1,n.le[a]=0,n.ue--,i&&(n.we-=i[2*a+1]);for(e.he=l,c=r.floor(n.ce/2);c>=1;c--)n.de(s,c);a=o;do{c=n.ae[1],n.ae[1]=n.ae[n.ce--],n.de(s,1),f=n.ae[1],n.ae[--n.fe]=c,n.ae[--n.fe]=f,s[2*a]=s[2*c]+s[2*f],n.le[a]=r.max(n.le[c],n.le[f])+1,s[2*c+1]=s[2*f+1]=a,n.ae[1]=a++,n.de(s,1)}while(n.ce>=2);n.ae[--n.fe]=n.ae[1],(t=>{const n=e.re,r=e.ie.se,s=e.ie.pe,i=e.ie.ye,o=e.ie.me;let c,f,a,l,u,w,h=0;for(l=0;15>=l;l++)t.be[l]=0;for(n[2*t.ae[t.fe]+1]=0,c=t.fe+1;573>c;c++)f=t.ae[c],l=n[2*n[2*f+1]+1]+1,l>o&&(l=o,h++),n[2*f+1]=l,f>e.he||(t.be[l]++,u=0,i>f||(u=s[f-i]),w=n[2*f],t.ue+=w*(l+u),r&&(t.we+=w*(r[2*f+1]+u)));if(0!==h){do{for(l=o-1;0===t.be[l];)l--;t.be[l]--,t.be[l+1]+=2,t.be[o]--,h-=2}while(h>0);for(l=o;0!==l;l--)for(f=t.be[l];0!==f;)a=t.ae[--c],a>e.he||(n[2*a+1]!=l&&(t.ue+=(l-n[2*a+1])*n[2*a],n[2*a+1]=l),f--)}})(n),((e,n,r)=>{const s=[];let i,o,c,f=0;for(i=1;15>=i;i++)s[i]=f=f+r[i-1]<<1;for(o=0;n>=o;o++)c=e[2*o+1],0!==c&&(e[2*o]=t(s[c]++,c))})(s,e.he,n.be)}}function Ke(e,t,n,r,s){const i=this;i.se=e,i.pe=t,i.ye=n,i.oe=r,i.me=s}Ue.ge=[0,1,2,3,4,5,6,7].concat(...Be([[2,8],[2,9],[2,10],[2,11],[4,12],[4,13],[4,14],[4,15],[8,16],[8,17],[8,18],[8,19],[16,20],[16,21],[16,22],[16,23],[32,24],[32,25],[32,26],[31,27],[1,28]])),Ue.ke=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0],Ue.ve=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576],Ue.Se=e=>256>e?Me[e]:Me[256+(e>>>7)],Ue.ze=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],Ue.Ce=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],Ue.xe=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],Ue._e=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];const Ne=Be([[144,8],[112,9],[24,7],[8,8]]);Ke.Ae=Ee([12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,19,275,147,403,83,339,211,467,51,307,179,435,115,371,243,499,11,267,139,395,75,331,203,459,43,299,171,427,107,363,235,491,27,283,155,411,91,347,219,475,59,315,187,443,123,379,251,507,7,263,135,391,71,327,199,455,39,295,167,423,103,359,231,487,23,279,151,407,87,343,215,471,55,311,183,439,119,375,247,503,15,271,143,399,79,335,207,463,47,303,175,431,111,367,239,495,31,287,159,415,95,351,223,479,63,319,191,447,127,383,255,511,0,64,32,96,16,80,48,112,8,72,40,104,24,88,56,120,4,68,36,100,20,84,52,116,3,131,67,195,35,163,99,227].map(((e,t)=>[e,Ne[t]])));const Oe=Be([[30,5]]);function Te(e,t,n,r,s){const i=this;i.Ie=e,i.De=t,i.Ve=n,i.Pe=r,i.Re=s}Ke.Be=Ee([0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23].map(((e,t)=>[e,Oe[t]]))),Ke.Ee=new Ke(Ke.Ae,Ue.ze,257,286,15),Ke.Me=new Ke(Ke.Be,Ue.Ce,0,30,15),Ke.Ue=new Ke(null,Ue.xe,0,19,7);const We=[new Te(0,0,0,0,0),new Te(4,4,8,4,1),new Te(4,5,16,8,1),new Te(4,6,32,32,1),new Te(4,4,16,16,2),new Te(8,16,32,32,2),new Te(8,16,128,128,2),new Te(8,32,128,256,2),new Te(32,128,258,1024,2),new Te(32,258,258,4096,2)],je=["need dictionary","stream end","","","stream error","data error","","buffer error","",""],He=113,Le=666,Fe=262;function qe(e,t,n,r){const s=e[2*t],i=e[2*n];return i>s||s==i&&r[t]<=r[n]}function Ge(){const e=this;let t,n,s,c,f,a,l,u,w,h,d,p,y,m,b,g,k,v,S,z,C,x,_,A,I,D,V,P,R,B,E,M,U;const K=new Ue,N=new Ue,O=new Ue;let T,W,j,H,L,F;function q(){let t;for(t=0;286>t;t++)E[2*t]=0;for(t=0;30>t;t++)M[2*t]=0;for(t=0;19>t;t++)U[2*t]=0;E[512]=1,e.ue=e.we=0,W=j=0}function G(e,t){let n,r=-1,s=e[1],i=0,o=7,c=4;0===s&&(o=138,c=3),e[2*(t+1)+1]=65535;for(let f=0;t>=f;f++)n=s,s=e[2*(f+1)+1],++i<o&&n==s||(c>i?U[2*n]+=i:0!==n?(n!=r&&U[2*n]++,U[32]++):i>10?U[36]++:U[34]++,i=0,r=n,0===s?(o=138,c=3):n==s?(o=6,c=3):(o=7,c=4))}function J(t){e.Ke[e.pending++]=t}function Q(e){J(255&e),J(e>>>8&255)}function X(e,t){let n;const r=t;F>16-r?(n=e,L|=n<<F&65535,Q(L),L=n>>>16-F,F+=r-16):(L|=e<<F&65535,F+=r)}function Y(e,t){const n=2*e;X(65535&t[n],65535&t[n+1])}function Z(e,t){let n,r,s=-1,i=e[1],o=0,c=7,f=4;for(0===i&&(c=138,f=3),n=0;t>=n;n++)if(r=i,i=e[2*(n+1)+1],++o>=c||r!=i){if(f>o)do{Y(r,U)}while(0!=--o);else 0!==r?(r!=s&&(Y(r,U),o--),Y(16,U),X(o-3,2)):o>10?(Y(18,U),X(o-11,7)):(Y(17,U),X(o-3,3));o=0,s=r,0===i?(c=138,f=3):r==i?(c=6,f=3):(c=7,f=4)}}function $(){16==F?(Q(L),L=0,F=0):8>F||(J(255&L),L>>>=8,F-=8)}function ee(t,n){let s,i,o;if(e.Ne[W]=t,e.Oe[W]=255&n,W++,0===t?E[2*n]++:(j++,t--,E[2*(Ue.ge[n]+256+1)]++,M[2*Ue.Se(t)]++),0==(8191&W)&&V>2){for(s=8*W,i=C-k,o=0;30>o;o++)s+=M[2*o]*(5+Ue.Ce[o]);if(s>>>=3,j<r.floor(W/2)&&s<r.floor(i/2))return!0}return W==T-1}function te(t,n){let r,s,i,o,c=0;if(0!==W)do{r=e.Ne[c],s=e.Oe[c],c++,0===r?Y(s,t):(i=Ue.ge[s],Y(i+256+1,t),o=Ue.ze[i],0!==o&&(s-=Ue.ke[i],X(s,o)),r--,i=Ue.Se(r),Y(i,n),o=Ue.Ce[i],0!==o&&(r-=Ue.ve[i],X(r,o)))}while(W>c);Y(256,t),H=t[513]}function ne(){F>8?Q(L):F>0&&J(255&L),L=0,F=0}function re(t,n,r){X(0+(r?1:0),3),((t,n)=>{ne(),H=8,Q(n),Q(~n),e.Ke.set(u.subarray(t,t+n),e.pending),e.pending+=n})(t,n)}function se(n){((t,n,r)=>{let s,i,o=0;V>0?(K.ne(e),N.ne(e),o=(()=>{let t;for(G(E,K.he),G(M,N.he),O.ne(e),t=18;t>=3&&0===U[2*Ue._e[t]+1];t--);return e.ue+=14+3*(t+1),t})(),s=e.ue+3+7>>>3,i=e.we+3+7>>>3,i>s||(s=i)):s=i=n+5,n+4>s||-1==t?i==s?(X(2+(r?1:0),3),te(Ke.Ae,Ke.Be)):(X(4+(r?1:0),3),((e,t,n)=>{let r;for(X(e-257,5),X(t-1,5),X(n-4,4),r=0;n>r;r++)X(U[2*Ue._e[r]+1],3);Z(E,e-1),Z(M,t-1)})(K.he+1,N.he+1,o+1),te(E,M)):re(t,n,r),q(),r&&ne()})(0>k?-1:k,C-k,n),k=C,t.Te()}function ie(){let e,n,r,s;do{if(s=w-_-C,0===s&&0===C&&0===_)s=f;else if(-1==s)s--;else if(C>=f+f-Fe){u.set(u.subarray(f,f+f),0),x-=f,C-=f,k-=f,e=y,r=e;do{n=65535&d[--r],d[r]=f>n?0:n-f}while(0!=--e);e=f,r=e;do{n=65535&h[--r],h[r]=f>n?0:n-f}while(0!=--e);s+=f}if(0===t.We)return;e=t.je(u,C+_,s),_+=e,3>_||(p=255&u[C],p=(p<<g^255&u[C+1])&b)}while(Fe>_&&0!==t.We)}function oe(e){let t,n,r=I,s=C,i=A;const o=C>f-Fe?C-(f-Fe):0;let c=B;const a=l,w=C+258;let d=u[s+i-1],p=u[s+i];R>A||(r>>=2),c>_&&(c=_);do{if(t=e,u[t+i]==p&&u[t+i-1]==d&&u[t]==u[s]&&u[++t]==u[s+1]){s+=2,t++;do{}while(u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&w>s);if(n=258-(w-s),s=w-258,n>i){if(x=e,i=n,n>=c)break;d=u[s+i-1],p=u[s+i]}}}while((e=65535&h[e&a])>o&&0!=--r);return i>_?_:i}e.le=[],e.be=[],e.ae=[],E=[],M=[],U=[],e.de=(t,n)=>{const r=e.ae,s=r[n];let i=n<<1;for(;i<=e.ce&&(i<e.ce&&qe(t,r[i+1],r[i],e.le)&&i++,!qe(t,s,r[i],e.le));)r[n]=r[i],n=i,i<<=1;r[n]=s},e.He=(t,S,x,W,j,G)=>(W||(W=8),j||(j=8),G||(G=0),t.Le=null,-1==S&&(S=6),1>j||j>9||8!=W||9>x||x>15||0>S||S>9||0>G||G>2?Re:(t.Fe=e,a=x,f=1<<a,l=f-1,m=j+7,y=1<<m,b=y-1,g=r.floor((m+3-1)/3),u=new i(2*f),h=[],d=[],T=1<<j+6,e.Ke=new i(4*T),s=4*T,e.Ne=new o(T),e.Oe=new i(T),V=S,P=G,(t=>(t.qe=t.Ge=0,t.Le=null,e.pending=0,e.Je=0,n=He,c=0,K.re=E,K.ie=Ke.Ee,N.re=M,N.ie=Ke.Me,O.re=U,O.ie=Ke.Ue,L=0,F=0,H=8,q(),(()=>{w=2*f,d[y-1]=0;for(let e=0;y-1>e;e++)d[e]=0;D=We[V].De,R=We[V].Ie,B=We[V].Ve,I=We[V].Pe,C=0,k=0,_=0,v=A=2,z=0,p=0})(),0))(t))),e.Qe=()=>42!=n&&n!=He&&n!=Le?Re:(e.Oe=null,e.Ne=null,e.Ke=null,d=null,h=null,u=null,e.Fe=null,n==He?-3:0),e.Xe=(e,t,n)=>{let r=0;return-1==t&&(t=6),0>t||t>9||0>n||n>2?Re:(We[V].Re!=We[t].Re&&0!==e.qe&&(r=e.Ye(1)),V!=t&&(V=t,D=We[V].De,R=We[V].Ie,B=We[V].Ve,I=We[V].Pe),P=n,r)},e.Ze=(e,t,r)=>{let s,i=r,o=0;if(!t||42!=n)return Re;if(3>i)return 0;for(i>f-Fe&&(i=f-Fe,o=r-i),u.set(t.subarray(o,o+i),0),C=i,k=i,p=255&u[0],p=(p<<g^255&u[1])&b,s=0;i-3>=s;s++)p=(p<<g^255&u[s+2])&b,h[s&l]=d[p],d[p]=s;return 0},e.Ye=(r,i)=>{let o,w,m,I,R;if(i>4||0>i)return Re;if(!r.$e||!r.et&&0!==r.We||n==Le&&4!=i)return r.Le=je[4],Re;if(0===r.tt)return r.Le=je[7],-5;var B;if(t=r,I=c,c=i,42==n&&(w=8+(a-8<<4)<<8,m=(V-1&255)>>1,m>3&&(m=3),w|=m<<6,0!==C&&(w|=32),w+=31-w%31,n=He,J((B=w)>>8&255),J(255&B)),0!==e.pending){if(t.Te(),0===t.tt)return c=-1,0}else if(0===t.We&&I>=i&&4!=i)return t.Le=je[7],-5;if(n==Le&&0!==t.We)return r.Le=je[7],-5;if(0!==t.We||0!==_||0!=i&&n!=Le){switch(R=-1,We[V].Re){case 0:R=(e=>{let n,r=65535;for(r>s-5&&(r=s-5);;){if(1>=_){if(ie(),0===_&&0==e)return 0;if(0===_)break}if(C+=_,_=0,n=k+r,(0===C||C>=n)&&(_=C-n,C=n,se(!1),0===t.tt))return 0;if(C-k>=f-Fe&&(se(!1),0===t.tt))return 0}return se(4==e),0===t.tt?4==e?2:0:4==e?3:1})(i);break;case 1:R=(e=>{let n,r=0;for(;;){if(Fe>_){if(ie(),Fe>_&&0==e)return 0;if(0===_)break}if(3>_||(p=(p<<g^255&u[C+2])&b,r=65535&d[p],h[C&l]=d[p],d[p]=C),0===r||(C-r&65535)>f-Fe||2!=P&&(v=oe(r)),3>v)n=ee(0,255&u[C]),_--,C++;else if(n=ee(C-x,v-3),_-=v,v>D||3>_)C+=v,v=0,p=255&u[C],p=(p<<g^255&u[C+1])&b;else{v--;do{C++,p=(p<<g^255&u[C+2])&b,r=65535&d[p],h[C&l]=d[p],d[p]=C}while(0!=--v);C++}if(n&&(se(!1),0===t.tt))return 0}return se(4==e),0===t.tt?4==e?2:0:4==e?3:1})(i);break;case 2:R=(e=>{let n,r,s=0;for(;;){if(Fe>_){if(ie(),Fe>_&&0==e)return 0;if(0===_)break}if(3>_||(p=(p<<g^255&u[C+2])&b,s=65535&d[p],h[C&l]=d[p],d[p]=C),A=v,S=x,v=2,0!==s&&D>A&&f-Fe>=(C-s&65535)&&(2!=P&&(v=oe(s)),5>=v&&(1==P||3==v&&C-x>4096)&&(v=2)),3>A||v>A)if(0!==z){if(n=ee(0,255&u[C-1]),n&&se(!1),C++,_--,0===t.tt)return 0}else z=1,C++,_--;else{r=C+_-3,n=ee(C-1-S,A-3),_-=A-1,A-=2;do{++C>r||(p=(p<<g^255&u[C+2])&b,s=65535&d[p],h[C&l]=d[p],d[p]=C)}while(0!=--A);if(z=0,v=2,C++,n&&(se(!1),0===t.tt))return 0}}return 0!==z&&(n=ee(0,255&u[C-1]),z=0),se(4==e),0===t.tt?4==e?2:0:4==e?3:1})(i)}if(2!=R&&3!=R||(n=Le),0==R||2==R)return 0===t.tt&&(c=-1),0;if(1==R){if(1==i)X(2,3),Y(256,Ke.Ae),$(),9>1+H+10-F&&(X(2,3),Y(256,Ke.Ae),$()),H=7;else if(re(0,0,!1),3==i)for(o=0;y>o;o++)d[o]=0;if(t.Te(),0===t.tt)return c=-1,0}}return 4!=i?0:1}}function Je(){const e=this;e.nt=0,e.rt=0,e.We=0,e.qe=0,e.tt=0,e.Ge=0}function Qe(e){const t=new Je,n=(o=e&&e.chunkSize?e.chunkSize:65536)+5*(r.floor(o/16383)+1);var o;const c=new i(n);let f=e?e.level:-1;void 0===f&&(f=-1),t.He(f),t.$e=c,this.append=(e,r)=>{let o,f,a=0,l=0,u=0;const w=[];if(e.length){t.nt=0,t.et=e,t.We=e.length;do{if(t.rt=0,t.tt=n,o=t.Ye(0),0!=o)throw new s("deflating: "+t.Le);t.rt&&(t.rt==n?w.push(new i(c)):w.push(c.subarray(0,t.rt))),u+=t.rt,r&&t.nt>0&&t.nt!=a&&(r(t.nt),a=t.nt)}while(t.We>0||0===t.tt);return w.length>1?(f=new i(u),w.forEach((e=>{f.set(e,l),l+=e.length}))):f=w[0]?new i(w[0]):new i,f}},this.flush=()=>{let e,r,o=0,f=0;const a=[];do{if(t.rt=0,t.tt=n,e=t.Ye(4),1!=e&&0!=e)throw new s("deflating: "+t.Le);n-t.tt>0&&a.push(c.slice(0,t.rt)),f+=t.rt}while(t.We>0||0===t.tt);return t.Qe(),r=new i(f),a.forEach((e=>{r.set(e,o),o+=e.length})),r}}Je.prototype={He(e,t){const n=this;return n.Fe=new Ge,t||(t=15),n.Fe.He(n,e,t)},Ye(e){const t=this;return t.Fe?t.Fe.Ye(t,e):Re},Qe(){const e=this;if(!e.Fe)return Re;const t=e.Fe.Qe();return e.Fe=null,t},Xe(e,t){const n=this;return n.Fe?n.Fe.Xe(n,e,t):Re},Ze(e,t){const n=this;return n.Fe?n.Fe.Ze(n,e,t):Re},je(e,t,n){const r=this;let s=r.We;return s>n&&(s=n),0===s?0:(r.We-=s,e.set(r.et.subarray(r.nt,r.nt+s),t),r.nt+=s,r.qe+=s,s)},Te(){const e=this;let t=e.Fe.pending;t>e.tt&&(t=e.tt),0!==t&&(e.$e.set(e.Fe.Ke.subarray(e.Fe.Je,e.Fe.Je+t),e.rt),e.rt+=t,e.Fe.Je+=t,e.Ge+=t,e.tt-=t,e.Fe.pending-=t,0===e.Fe.pending&&(e.Fe.Je=0))}};const Xe=-2,Ye=-3,Ze=-5,$e=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],et=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],tt=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],nt=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],rt=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,112,112],st=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],it=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];function ot(){let e,t,n,r,s,i;function o(e,t,o,c,f,a,l,u,w,h,d){let p,y,m,b,g,k,v,S,z,C,x,_,A,I,D;C=0,g=o;do{n[e[t+C]]++,C++,g--}while(0!==g);if(n[0]==o)return l[0]=-1,u[0]=0,0;for(S=u[0],k=1;15>=k&&0===n[k];k++);for(v=k,k>S&&(S=k),g=15;0!==g&&0===n[g];g--);for(m=g,S>g&&(S=g),u[0]=S,I=1<<k;g>k;k++,I<<=1)if(0>(I-=n[k]))return Ye;if(0>(I-=n[g]))return Ye;for(n[g]+=I,i[1]=k=0,C=1,A=2;0!=--g;)i[A]=k+=n[C],A++,C++;g=0,C=0;do{0!==(k=e[t+C])&&(d[i[k]++]=g),C++}while(++g<o);for(o=i[m],i[0]=g=0,C=0,b=-1,_=-S,s[0]=0,x=0,D=0;m>=v;v++)for(p=n[v];0!=p--;){for(;v>_+S;){if(b++,_+=S,D=m-_,D=D>S?S:D,(y=1<<(k=v-_))>p+1&&(y-=p+1,A=v,D>k))for(;++k<D&&(y<<=1)>n[++A];)y-=n[A];if(D=1<<k,h[0]+D>1440)return Ye;s[b]=x=h[0],h[0]+=D,0!==b?(i[b]=g,r[0]=k,r[1]=S,k=g>>>_-S,r[2]=x-s[b-1]-k,w.set(r,3*(s[b-1]+k))):l[0]=x}for(r[1]=v-_,o>C?d[C]<c?(r[0]=256>d[C]?0:96,r[2]=d[C++]):(r[0]=a[d[C]-c]+16+64,r[2]=f[d[C++]-c]):r[0]=192,y=1<<v-_,k=g>>>_;D>k;k+=y)w.set(r,3*(x+k));for(k=1<<v-1;0!=(g&k);k>>>=1)g^=k;for(g^=k,z=(1<<_)-1;(g&z)!=i[b];)b--,_-=S,z=(1<<_)-1}return 0!==I&&1!=m?Ze:0}function c(o){let c;for(e||(e=[],t=[],n=new f(16),r=[],s=new f(15),i=new f(16)),t.length<o&&(t=[]),c=0;o>c;c++)t[c]=0;for(c=0;16>c;c++)n[c]=0;for(c=0;3>c;c++)r[c]=0;s.set(n.subarray(0,15),0),i.set(n.subarray(0,16),0)}this.st=(n,r,s,i,f)=>{let a;return c(19),e[0]=0,a=o(n,0,19,19,null,null,s,r,i,e,t),a==Ye?f.Le="oversubscribed dynamic bit lengths tree":a!=Ze&&0!==r[0]||(f.Le="incomplete dynamic bit lengths tree",a=Ye),a},this.it=(n,r,s,i,f,a,l,u,w)=>{let h;return c(288),e[0]=0,h=o(s,0,n,257,nt,rt,a,i,u,e,t),0!=h||0===i[0]?(h==Ye?w.Le="oversubscribed literal/length tree":-4!=h&&(w.Le="incomplete literal/length tree",h=Ye),h):(c(288),h=o(s,n,r,0,st,it,l,f,u,e,t),0!=h||0===f[0]&&n>257?(h==Ye?w.Le="oversubscribed distance tree":h==Ze?(w.Le="incomplete distance tree",h=Ye):-4!=h&&(w.Le="empty distance tree with lengths",h=Ye),h):0)}}function ct(){const e=this;let t,n,r,s,i=0,o=0,c=0,f=0,a=0,l=0,u=0,w=0,h=0,d=0;function p(e,t,n,r,s,i,o,c){let f,a,l,u,w,h,d,p,y,m,b,g,k,v,S,z;d=c.nt,p=c.We,w=o.ot,h=o.ct,y=o.write,m=y<o.read?o.read-y-1:o.end-y,b=$e[e],g=$e[t];do{for(;20>h;)p--,w|=(255&c.ft(d++))<<h,h+=8;if(f=w&b,a=n,l=r,z=3*(l+f),0!==(u=a[z]))for(;;){if(w>>=a[z+1],h-=a[z+1],0!=(16&u)){for(u&=15,k=a[z+2]+(w&$e[u]),w>>=u,h-=u;15>h;)p--,w|=(255&c.ft(d++))<<h,h+=8;for(f=w&g,a=s,l=i,z=3*(l+f),u=a[z];;){if(w>>=a[z+1],h-=a[z+1],0!=(16&u)){for(u&=15;u>h;)p--,w|=(255&c.ft(d++))<<h,h+=8;if(v=a[z+2]+(w&$e[u]),w>>=u,h-=u,m-=k,v>y){S=y-v;do{S+=o.end}while(0>S);if(u=o.end-S,k>u){if(k-=u,y-S>0&&u>y-S)do{o.lt[y++]=o.lt[S++]}while(0!=--u);else o.lt.set(o.lt.subarray(S,S+u),y),y+=u,S+=u,u=0;S=0}}else S=y-v,y-S>0&&2>y-S?(o.lt[y++]=o.lt[S++],o.lt[y++]=o.lt[S++],k-=2):(o.lt.set(o.lt.subarray(S,S+2),y),y+=2,S+=2,k-=2);if(y-S>0&&k>y-S)do{o.lt[y++]=o.lt[S++]}while(0!=--k);else o.lt.set(o.lt.subarray(S,S+k),y),y+=k,S+=k,k=0;break}if(0!=(64&u))return c.Le="invalid distance code",k=c.We-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ot=w,o.ct=h,c.We=p,c.qe+=d-c.nt,c.nt=d,o.write=y,Ye;f+=a[z+2],f+=w&$e[u],z=3*(l+f),u=a[z]}break}if(0!=(64&u))return 0!=(32&u)?(k=c.We-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ot=w,o.ct=h,c.We=p,c.qe+=d-c.nt,c.nt=d,o.write=y,1):(c.Le="invalid literal/length code",k=c.We-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ot=w,o.ct=h,c.We=p,c.qe+=d-c.nt,c.nt=d,o.write=y,Ye);if(f+=a[z+2],f+=w&$e[u],z=3*(l+f),0===(u=a[z])){w>>=a[z+1],h-=a[z+1],o.lt[y++]=a[z+2],m--;break}}else w>>=a[z+1],h-=a[z+1],o.lt[y++]=a[z+2],m--}while(m>=258&&p>=10);return k=c.We-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ot=w,o.ct=h,c.We=p,c.qe+=d-c.nt,c.nt=d,o.write=y,0}e.init=(e,i,o,c,f,a)=>{t=0,u=e,w=i,r=o,h=c,s=f,d=a,n=null},e.ut=(e,y,m)=>{let b,g,k,v,S,z,C,x=0,_=0,A=0;for(A=y.nt,v=y.We,x=e.ot,_=e.ct,S=e.write,z=S<e.read?e.read-S-1:e.end-S;;)switch(t){case 0:if(z>=258&&v>=10&&(e.ot=x,e.ct=_,y.We=v,y.qe+=A-y.nt,y.nt=A,e.write=S,m=p(u,w,r,h,s,d,e,y),A=y.nt,v=y.We,x=e.ot,_=e.ct,S=e.write,z=S<e.read?e.read-S-1:e.end-S,0!=m)){t=1==m?7:9;break}c=u,n=r,o=h,t=1;case 1:for(b=c;b>_;){if(0===v)return e.ot=x,e.ct=_,y.We=v,y.qe+=A-y.nt,y.nt=A,e.write=S,e.wt(y,m);m=0,v--,x|=(255&y.ft(A++))<<_,_+=8}if(g=3*(o+(x&$e[b])),x>>>=n[g+1],_-=n[g+1],k=n[g],0===k){f=n[g+2],t=6;break}if(0!=(16&k)){a=15&k,i=n[g+2],t=2;break}if(0==(64&k)){c=k,o=g/3+n[g+2];break}if(0!=(32&k)){t=7;break}return t=9,y.Le="invalid literal/length code",m=Ye,e.ot=x,e.ct=_,y.We=v,y.qe+=A-y.nt,y.nt=A,e.write=S,e.wt(y,m);case 2:for(b=a;b>_;){if(0===v)return e.ot=x,e.ct=_,y.We=v,y.qe+=A-y.nt,y.nt=A,e.write=S,e.wt(y,m);m=0,v--,x|=(255&y.ft(A++))<<_,_+=8}i+=x&$e[b],x>>=b,_-=b,c=w,n=s,o=d,t=3;case 3:for(b=c;b>_;){if(0===v)return e.ot=x,e.ct=_,y.We=v,y.qe+=A-y.nt,y.nt=A,e.write=S,e.wt(y,m);m=0,v--,x|=(255&y.ft(A++))<<_,_+=8}if(g=3*(o+(x&$e[b])),x>>=n[g+1],_-=n[g+1],k=n[g],0!=(16&k)){a=15&k,l=n[g+2],t=4;break}if(0==(64&k)){c=k,o=g/3+n[g+2];break}return t=9,y.Le="invalid distance code",m=Ye,e.ot=x,e.ct=_,y.We=v,y.qe+=A-y.nt,y.nt=A,e.write=S,e.wt(y,m);case 4:for(b=a;b>_;){if(0===v)return e.ot=x,e.ct=_,y.We=v,y.qe+=A-y.nt,y.nt=A,e.write=S,e.wt(y,m);m=0,v--,x|=(255&y.ft(A++))<<_,_+=8}l+=x&$e[b],x>>=b,_-=b,t=5;case 5:for(C=S-l;0>C;)C+=e.end;for(;0!==i;){if(0===z&&(S==e.end&&0!==e.read&&(S=0,z=S<e.read?e.read-S-1:e.end-S),0===z&&(e.write=S,m=e.wt(y,m),S=e.write,z=S<e.read?e.read-S-1:e.end-S,S==e.end&&0!==e.read&&(S=0,z=S<e.read?e.read-S-1:e.end-S),0===z)))return e.ot=x,e.ct=_,y.We=v,y.qe+=A-y.nt,y.nt=A,e.write=S,e.wt(y,m);e.lt[S++]=e.lt[C++],z--,C==e.end&&(C=0),i--}t=0;break;case 6:if(0===z&&(S==e.end&&0!==e.read&&(S=0,z=S<e.read?e.read-S-1:e.end-S),0===z&&(e.write=S,m=e.wt(y,m),S=e.write,z=S<e.read?e.read-S-1:e.end-S,S==e.end&&0!==e.read&&(S=0,z=S<e.read?e.read-S-1:e.end-S),0===z)))return e.ot=x,e.ct=_,y.We=v,y.qe+=A-y.nt,y.nt=A,e.write=S,e.wt(y,m);m=0,e.lt[S++]=f,z--,t=0;break;case 7:if(_>7&&(_-=8,v++,A--),e.write=S,m=e.wt(y,m),S=e.write,z=S<e.read?e.read-S-1:e.end-S,e.read!=e.write)return e.ot=x,e.ct=_,y.We=v,y.qe+=A-y.nt,y.nt=A,e.write=S,e.wt(y,m);t=8;case 8:return m=1,e.ot=x,e.ct=_,y.We=v,y.qe+=A-y.nt,y.nt=A,e.write=S,e.wt(y,m);case 9:return m=Ye,e.ot=x,e.ct=_,y.We=v,y.qe+=A-y.nt,y.nt=A,e.write=S,e.wt(y,m);default:return m=Xe,e.ot=x,e.ct=_,y.We=v,y.qe+=A-y.nt,y.nt=A,e.write=S,e.wt(y,m)}},e.ht=()=>{}}ot.dt=(e,t,n,r)=>(e[0]=9,t[0]=5,n[0]=et,r[0]=tt,0);const ft=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function at(e,t){const n=this;let r,s=0,o=0,c=0,a=0;const l=[0],u=[0],w=new ct;let h=0,d=new f(4320);const p=new ot;n.ct=0,n.ot=0,n.lt=new i(t),n.end=t,n.read=0,n.write=0,n.reset=(e,t)=>{t&&(t[0]=0),6==s&&w.ht(e),s=0,n.ct=0,n.ot=0,n.read=n.write=0},n.reset(e,null),n.wt=(e,t)=>{let r,s,i;return s=e.rt,i=n.read,r=(i>n.write?n.end:n.write)-i,r>e.tt&&(r=e.tt),0!==r&&t==Ze&&(t=0),e.tt-=r,e.Ge+=r,e.$e.set(n.lt.subarray(i,i+r),s),s+=r,i+=r,i==n.end&&(i=0,n.write==n.end&&(n.write=0),r=n.write-i,r>e.tt&&(r=e.tt),0!==r&&t==Ze&&(t=0),e.tt-=r,e.Ge+=r,e.$e.set(n.lt.subarray(i,i+r),s),s+=r,i+=r),e.rt=s,n.read=i,t},n.ut=(e,t)=>{let i,f,y,m,b,g,k,v;for(m=e.nt,b=e.We,f=n.ot,y=n.ct,g=n.write,k=g<n.read?n.read-g-1:n.end-g;;){let S,z,C,x,_,A,I,D;switch(s){case 0:for(;3>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<<y,y+=8}switch(i=7&f,h=1&i,i>>>1){case 0:f>>>=3,y-=3,i=7&y,f>>>=i,y-=i,s=1;break;case 1:S=[],z=[],C=[[]],x=[[]],ot.dt(S,z,C,x),w.init(S[0],z[0],C[0],0,x[0],0),f>>>=3,y-=3,s=6;break;case 2:f>>>=3,y-=3,s=3;break;case 3:return f>>>=3,y-=3,s=9,e.Le="invalid block type",t=Ye,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t)}break;case 1:for(;32>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<<y,y+=8}if((~f>>>16&65535)!=(65535&f))return s=9,e.Le="invalid stored block lengths",t=Ye,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);o=65535&f,f=y=0,s=0!==o?2:0!==h?7:0;break;case 2:if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);if(0===k&&(g==n.end&&0!==n.read&&(g=0,k=g<n.read?n.read-g-1:n.end-g),0===k&&(n.write=g,t=n.wt(e,t),g=n.write,k=g<n.read?n.read-g-1:n.end-g,g==n.end&&0!==n.read&&(g=0,k=g<n.read?n.read-g-1:n.end-g),0===k)))return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);if(t=0,i=o,i>b&&(i=b),i>k&&(i=k),n.lt.set(e.je(m,i),g),m+=i,b-=i,g+=i,k-=i,0!=(o-=i))break;s=0!==h?7:0;break;case 3:for(;14>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<<y,y+=8}if(c=i=16383&f,(31&i)>29||(i>>5&31)>29)return s=9,e.Le="too many length or distance symbols",t=Ye,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);if(i=258+(31&i)+(i>>5&31),!r||r.length<i)r=[];else for(v=0;i>v;v++)r[v]=0;f>>>=14,y-=14,a=0,s=4;case 4:for(;4+(c>>>10)>a;){for(;3>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<<y,y+=8}r[ft[a++]]=7&f,f>>>=3,y-=3}for(;19>a;)r[ft[a++]]=0;if(l[0]=7,i=p.st(r,l,u,d,e),0!=i)return(t=i)==Ye&&(r=null,s=9),n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);a=0,s=5;case 5:for(;i=c,258+(31&i)+(i>>5&31)>a;){let o,w;for(i=l[0];i>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<<y,y+=8}if(i=d[3*(u[0]+(f&$e[i]))+1],w=d[3*(u[0]+(f&$e[i]))+2],16>w)f>>>=i,y-=i,r[a++]=w;else{for(v=18==w?7:w-14,o=18==w?11:3;i+v>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<<y,y+=8}if(f>>>=i,y-=i,o+=f&$e[v],f>>>=v,y-=v,v=a,i=c,v+o>258+(31&i)+(i>>5&31)||16==w&&1>v)return r=null,s=9,e.Le="invalid bit length repeat",t=Ye,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);w=16==w?r[v-1]:0;do{r[v++]=w}while(0!=--o);a=v}}if(u[0]=-1,_=[],A=[],I=[],D=[],_[0]=9,A[0]=6,i=c,i=p.it(257+(31&i),1+(i>>5&31),r,_,A,I,D,d,e),0!=i)return i==Ye&&(r=null,s=9),t=i,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);w.init(_[0],A[0],d,I[0],d,D[0]),s=6;case 6:if(n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,1!=(t=w.ut(n,e,t)))return n.wt(e,t);if(t=0,w.ht(e),m=e.nt,b=e.We,f=n.ot,y=n.ct,g=n.write,k=g<n.read?n.read-g-1:n.end-g,0===h){s=0;break}s=7;case 7:if(n.write=g,t=n.wt(e,t),g=n.write,k=g<n.read?n.read-g-1:n.end-g,n.read!=n.write)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);s=8;case 8:return t=1,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);case 9:return t=Ye,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);default:return t=Xe,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t)}}},n.ht=e=>{n.reset(e,null),n.lt=null,d=null},n.yt=(e,t,r)=>{n.lt.set(e.subarray(t,t+r),0),n.read=n.write=r},n.bt=()=>1==s?1:0}const lt=13,ut=[0,0,255,255];function wt(){const e=this;function t(e){return e&&e.gt?(e.qe=e.Ge=0,e.Le=null,e.gt.mode=7,e.gt.kt.reset(e,null),0):Xe}e.mode=0,e.method=0,e.vt=[0],e.St=0,e.marker=0,e.zt=0,e.Ct=t=>(e.kt&&e.kt.ht(t),e.kt=null,0),e.xt=(n,r)=>(n.Le=null,e.kt=null,8>r||r>15?(e.Ct(n),Xe):(e.zt=r,n.gt.kt=new at(n,1<<r),t(n),0)),e._t=(e,t)=>{let n,r;if(!e||!e.gt||!e.et)return Xe;const s=e.gt;for(t=4==t?Ze:0,n=Ze;;)switch(s.mode){case 0:if(0===e.We)return n;if(n=t,e.We--,e.qe++,8!=(15&(s.method=e.ft(e.nt++)))){s.mode=lt,e.Le="unknown compression method",s.marker=5;break}if(8+(s.method>>4)>s.zt){s.mode=lt,e.Le="invalid win size",s.marker=5;break}s.mode=1;case 1:if(0===e.We)return n;if(n=t,e.We--,e.qe++,r=255&e.ft(e.nt++),((s.method<<8)+r)%31!=0){s.mode=lt,e.Le="incorrect header check",s.marker=5;break}if(0==(32&r)){s.mode=7;break}s.mode=2;case 2:if(0===e.We)return n;n=t,e.We--,e.qe++,s.St=(255&e.ft(e.nt++))<<24&4278190080,s.mode=3;case 3:if(0===e.We)return n;n=t,e.We--,e.qe++,s.St+=(255&e.ft(e.nt++))<<16&16711680,s.mode=4;case 4:if(0===e.We)return n;n=t,e.We--,e.qe++,s.St+=(255&e.ft(e.nt++))<<8&65280,s.mode=5;case 5:return 0===e.We?n:(n=t,e.We--,e.qe++,s.St+=255&e.ft(e.nt++),s.mode=6,2);case 6:return s.mode=lt,e.Le="need dictionary",s.marker=0,Xe;case 7:if(n=s.kt.ut(e,n),n==Ye){s.mode=lt,s.marker=0;break}if(0==n&&(n=t),1!=n)return n;n=t,s.kt.reset(e,s.vt),s.mode=12;case 12:return e.We=0,1;case lt:return Ye;default:return Xe}},e.At=(e,t,n)=>{let r=0,s=n;if(!e||!e.gt||6!=e.gt.mode)return Xe;const i=e.gt;return s<1<<i.zt||(s=(1<<i.zt)-1,r=n-s),i.kt.yt(t,r,s),i.mode=7,0},e.It=e=>{let n,r,s,i,o;if(!e||!e.gt)return Xe;const c=e.gt;if(c.mode!=lt&&(c.mode=lt,c.marker=0),0===(n=e.We))return Ze;for(r=e.nt,s=c.marker;0!==n&&4>s;)e.ft(r)==ut[s]?s++:s=0!==e.ft(r)?0:4-s,r++,n--;return e.qe+=r-e.nt,e.nt=r,e.We=n,c.marker=s,4!=s?Ye:(i=e.qe,o=e.Ge,t(e),e.qe=i,e.Ge=o,c.mode=7,0)},e.Dt=e=>e&&e.gt&&e.gt.kt?e.gt.kt.bt():Xe}function ht(){}function dt(e){const t=new ht,n=e&&e.chunkSize?r.floor(2*e.chunkSize):131072,o=new i(n);let c=!1;t.xt(),t.$e=o,this.append=(e,r)=>{const f=[];let a,l,u=0,w=0,h=0;if(0!==e.length){t.nt=0,t.et=e,t.We=e.length;do{if(t.rt=0,t.tt=n,0!==t.We||c||(t.nt=0,c=!0),a=t._t(0),c&&a===Ze){if(0!==t.We)throw new s("inflating: bad input")}else if(0!==a&&1!==a)throw new s("inflating: "+t.Le);if((c||1===a)&&t.We===e.length)throw new s("inflating: bad input");t.rt&&(t.rt===n?f.push(new i(o)):f.push(o.subarray(0,t.rt))),h+=t.rt,r&&t.nt>0&&t.nt!=u&&(r(t.nt),u=t.nt)}while(t.We>0||0===t.tt);return f.length>1?(l=new i(h),f.forEach((e=>{l.set(e,w),w+=e.length}))):l=f[0]?new i(f[0]):new i,l}},this.flush=()=>{t.Ct()}}ht.prototype={xt(e){const t=this;return t.gt=new wt,e||(e=15),t.gt.xt(t,e)},_t(e){const t=this;return t.gt?t.gt._t(t,e):Xe},Ct(){const e=this;if(!e.gt)return Xe;const t=e.gt.Ct(e);return e.gt=null,t},It(){const e=this;return e.gt?e.gt.It(e):Xe},At(e,t){const n=this;return n.gt?n.gt.At(n,e,t):Xe},ft(e){return this.et[e]},je(e,t){return this.et.subarray(e,e+t)}},self.initCodec=()=>{self.Deflate=Qe,self.Inflate=dt};\n'],{type:"text/javascript"}));e({workerScripts:{inflate:[t],deflate:[t]}})}(configure),configure({Deflate:function(options){const z=new ZStream$1,bufsize=(uncompressedSize=options&&options.chunkSize?options.chunkSize:65536)+5*(Math.floor(uncompressedSize/16383)+1);var uncompressedSize;const buf=new Uint8Array(bufsize);let level=options?options.level:-1;void 0===level&&(level=-1),z.deflateInit(level),z.next_out=buf,this.append=function(data,onprogress){let err,array,lastIndex=0,bufferIndex=0,bufferSize=0;const buffers=[];if(data.length){z.next_in_index=0,z.next_in=data,z.avail_in=data.length;do{if(z.next_out_index=0,z.avail_out=bufsize,err=z.deflate(0),0!=err)throw new Error("deflating: "+z.msg);z.next_out_index&&(z.next_out_index==bufsize?buffers.push(new Uint8Array(buf)):buffers.push(buf.subarray(0,z.next_out_index))),bufferSize+=z.next_out_index,onprogress&&z.next_in_index>0&&z.next_in_index!=lastIndex&&(onprogress(z.next_in_index),lastIndex=z.next_in_index)}while(z.avail_in>0||0===z.avail_out);return buffers.length>1?(array=new Uint8Array(bufferSize),buffers.forEach((function(chunk){array.set(chunk,bufferIndex),bufferIndex+=chunk.length}))):array=buffers[0]?new Uint8Array(buffers[0]):new Uint8Array,array}},this.flush=function(){let err,array,bufferIndex=0,bufferSize=0;const buffers=[];do{if(z.next_out_index=0,z.avail_out=bufsize,err=z.deflate(4),1!=err&&0!=err)throw new Error("deflating: "+z.msg);bufsize-z.avail_out>0&&buffers.push(buf.slice(0,z.next_out_index)),bufferSize+=z.next_out_index}while(z.avail_in>0||0===z.avail_out);return z.deflateEnd(),array=new Uint8Array(bufferSize),buffers.forEach((function(chunk){array.set(chunk,bufferIndex),bufferIndex+=chunk.length})),array}},Inflate:function(options){const z=new ZStream,bufsize=options&&options.chunkSize?Math.floor(2*options.chunkSize):131072,buf=new Uint8Array(bufsize);let nomoreinput=!1;z.inflateInit(),z.next_out=buf,this.append=function(data,onprogress){const buffers=[];let err,array,lastIndex=0,bufferIndex=0,bufferSize=0;if(0!==data.length){z.next_in_index=0,z.next_in=data,z.avail_in=data.length;do{if(z.next_out_index=0,z.avail_out=bufsize,0!==z.avail_in||nomoreinput||(z.next_in_index=0,nomoreinput=!0),err=z.inflate(0),nomoreinput&&err===Z_BUF_ERROR){if(0!==z.avail_in)throw new Error("inflating: bad input")}else if(err!==Z_OK&&err!==Z_STREAM_END)throw new Error("inflating: "+z.msg);if((nomoreinput||err===Z_STREAM_END)&&z.avail_in===data.length)throw new Error("inflating: bad input");z.next_out_index&&(z.next_out_index===bufsize?buffers.push(new Uint8Array(buf)):buffers.push(buf.subarray(0,z.next_out_index))),bufferSize+=z.next_out_index,onprogress&&z.next_in_index>0&&z.next_in_index!=lastIndex&&(onprogress(z.next_in_index),lastIndex=z.next_in_index)}while(z.avail_in>0||0===z.avail_out);return buffers.length>1?(array=new Uint8Array(bufferSize),buffers.forEach((function(chunk){array.set(chunk,bufferIndex),bufferIndex+=chunk.length}))):array=buffers[0]?new Uint8Array(buffers[0]):new Uint8Array,array}},this.flush=function(){z.inflateEnd()}}});var ExportFeatures={exportOffcanvas:null,exportSettings:{type:"chaptersjson",supportsPretty:!1,pretty:!0,hasImages:!1,canUseImagePrefix:!1,imagePrefix:"",writeRedundantToc:!1,writeEndTimes:!1,psdFramerate:23.976,psdOmitTimecodes:!1,acUseTextAttr:!1},exportContent:"",exportData:null,initExportDialog(){this.exportOffcanvas=new Offcanvas(this.$refs.exportDialog),this.$refs.exportDialog.addEventListener("show.bs.offcanvas",(()=>{this.updateExportContent()}))},updateExportContent(type){type&&(this.exportSettings.type=type),this.data.ensureUniqueFilenames(),this.exportData=AutoFormat.as(this.exportSettings.type,this.data),this.exportSettings.hasImages=this.data.chapters.some((item=>item.img&&"blob"===item.img_type)),this.exportSettings.canUseImagePrefix=this.data.chapters.some((item=>item.img&&["blob","relative"].includes("blob"))),this.exportSettings.supportsPretty=this.exportData.supportsPrettyPrint,this.exportContent=this.exportData.toString(this.exportSettings.pretty,{imagePrefix:this.exportSettings.imagePrefix,writeRedundantToc:this.exportSettings.writeRedundantToc,writeEndTimes:this.exportSettings.writeEndTimes,psdFramerate:this.exportSettings.psdFramerate,psdOmitTimecodes:this.exportSettings.psdOmitTimecodes,acUseTextAttr:this.exportSettings.acUseTextAttr})},download(){gtag("event","ui",{action:"download",format:this.exportData.constructor.name}),this.triggerDownload({url:URL.createObjectURL(new Blob([this.exportContent],{type:this.exportData.mimeType})),name:this.exportData.filename})},triggerDownload(options){const a=document.createElement("a");a.setAttribute("href",options.url),a.setAttribute("download",options.name),a.click()},copyToClipboard(){this.$refs.outputTextarea.select(),document.execCommand("copy"),window.getSelection()?.removeAllRanges(),gtag("event","ui",{action:"copy",format:this.exportData.constructor.name}),this.toast("copied to clipboard")},async downloadZip(){gtag("event","ui",{action:"downloadZip",format:this.exportData.constructor.name});let zipWriter=new ZipWriter(new BlobWriter("application/zip"),{bufferedWrite:!0});await zipWriter.add("chapters.json",new BlobReader(new Blob([this.exportContent],{type:"text/plain"})),{level:0});for(const chapter of this.data.chapters){const response=await fetch(chapter.img),blob=await response.blob();await zipWriter.add(chapter.img_filename,new BlobReader(blob),{level:0})}const closed=await zipWriter.close();this.triggerDownload({url:URL.createObjectURL(closed),name:"chapters.zip"}),zipWriter=null}};class FileHandler{editorHasProject=!1;constructor(){document.documentElement.addEventListener("paste",(e=>{if(e.target.matches("input"))return;const text=(e.clipboardData||window.clipboardData).getData("text"),files=[...(event.clipboardData||event.originalEvent.clipboardData).items].filter((item=>"file"===item.kind)).map((item=>item.getAsFile()));if(files[0])return this.handleFile(files[0],"paste");try{const url=new URL(text);if(/(jpg|png|jpeg|webm|gif)$/.test(url.pathname))return gtag("event","ui",{action:"external",origin:"paste",type:"image-url"}),window.dispatchEvent(new CustomEvent("dragndrop:image",{detail:{image:url.toString(),type:"absolute",name:url.toString()}}))}catch(e){}try{const detected=AutoFormat.from(text),data=new ChaptersJson(detected);return gtag("event","ui",{action:"external",origin:"paste",type:"data",format:detected.constructor.name}),window.dispatchEvent(new CustomEvent("dragndrop:json",{detail:{data:data,name:"clipboard paste"}}))}catch(e){return window.dispatchEvent(new CustomEvent("dragndrop:jsonfail",{detail:{}}))}})),document.getElementById("app").addEventListener("dragover",(e=>{e.preventDefault()})),document.getElementById("app").addEventListener("drop",(e=>{e.preventDefault(),e.dataTransfer.items?[...e.dataTransfer.items].forEach(((item,i)=>{if("file"===item.kind&&0===i){const file=item.getAsFile();this.handleFile(file,"dragdrop")}else"file"===item.kind&&i>1&&window.dispatchEvent(new CustomEvent("dragndrop:ignoredfile",{detail:{filename:"..."}}))})):[...e.dataTransfer.files].forEach(((file,i)=>{if(0===i)return this.handleFile(file,"dragdrop");window.dispatchEvent(new CustomEvent("dragndrop:ignoredfile",{detail:{filename:file.name}}))}))}))}askForNewProject(){return!this.editorHasProject||confirm("Do you want to discard the current project and start a new one?")}handleFile(file,origin="osDialog"){return["text/plain","text/xml","application/json","text/csv","text/vtt"].includes(file.type)&&fetch(URL.createObjectURL(file)).then((r=>r.text())).then((text=>{try{const detected=AutoFormat.from(text),data=ChaptersJson.create(detected);return gtag("event","ui",{action:"external",origin:origin,type:"data",format:detected.constructor.name}),window.dispatchEvent(new CustomEvent("dragndrop:json",{detail:{data:data,name:file.name}}))}catch(e){return window.dispatchEvent(new CustomEvent("dragndrop:jsonfail",{detail:{}}))}})),"video"===file.type.slice(0,5)?(gtag("event","ui",{action:"external",origin:origin,type:"video"}),void window.dispatchEvent(new CustomEvent("dragndrop:video",{detail:{video:URL.createObjectURL(file),name:file.name}}))):"audio"===file.type.slice(0,5)&&this.askForNewProject()?(gtag("event","ui",{action:"external",origin:origin,type:"audio"}),void window.dispatchEvent(new CustomEvent("dragndrop:audio",{detail:{audio:URL.createObjectURL(file),name:file.name}}))):"image"===file.type.slice(0,5)?(gtag("event","ui",{action:"external",origin:origin,type:"image"}),void window.dispatchEvent(new CustomEvent("dragndrop:image",{detail:{image:URL.createObjectURL(file),name:file.name}}))):void window.dispatchEvent(new CustomEvent("dragndrop:ignoredfile",{detail:{filename:file.name}}))}}var ImportDialog={importState:{mode:null},importModal:null,initImportDialog(){this.importModal=new Modal(this.$refs.importDialog)},showImportDialog(state){this.importState=state,this.importModal.show()}};function secondsToTimestamp(s,options={}){options={hours:!0,milliseconds:!1,...options};const date=new Date(1e3*parseInt(s)).toISOString();"00"!==date.slice(11,13)&&(options.hours=!0);const hms=date.slice(options.hours?11:14,19);if(options.milliseconds){let fraction="000";return s.toString().indexOf(".")>-1&&(fraction=(String(s).split(".").pop()+"000").slice(0,3)),hms+"."+fraction}return hms}function timestampToSeconds(timestamp,fixedString=!1){let[seconds,minutes,hours]=timestamp.split(":").reverse(),milliseconds=0;if(seconds.indexOf(".")>-1&&([seconds,milliseconds]=seconds.split(".")),hours=parseInt(hours||0),minutes=parseInt(minutes||0),seconds=parseInt(seconds||0),milliseconds=parseInt(milliseconds)/1e3,seconds>59){let extraMinutes=Math.floor(seconds/60);minutes+=extraMinutes,seconds-=60*extraMinutes}if(minutes>59){let extraHours=Math.floor(minutes/60);hours+=extraHours,minutes-=60*extraHours}return fixedString?parseFloat((3600*hours+60*minutes+seconds+milliseconds).toFixed(3)):3600*hours+60*minutes+seconds+milliseconds}var MediaFeatures={videoHandlersAttached:!1,audioHandlersAttached:!1,hasVideo:!1,hasAudio:!1,insertFrameOnSeek:!1,ignoreNextSeekEvent:!1,mediaIsCollapsed:!1,actualMediaDuration:null,getVideoCanvas(callback){const canvas=document.createElement("canvas");canvas.setAttribute("width",this.$refs.video.videoWidth),canvas.setAttribute("height",this.$refs.video.videoHeight);canvas.getContext("2d").drawImage(this.$refs.video,0,0),canvas.toBlob((blob=>{callback(URL.createObjectURL(blob))}))},attachVideo(video,keepChapters=!1){keepChapters||this.reset(),this.importModal.hide(),this.videoHandlersAttached||(this.videoHandlersAttached=!0,this.$refs.video.addEventListener("loadedmetadata",(e=>{const videoDuration=e.target.duration;keepChapters?(this.actualMediaDuration=videoDuration,console.log(this.actualMediaDuration)):(this.data.duration=videoDuration,this.actualMediaDuration=null),this.currentChapterIndex=null,this.data.bump(),this.updateTimeline()})),this.$refs.video.addEventListener("seeked",(e=>{if(this.insertFrameOnSeek){if(this.addImageFromVideoToChapter(),this.insertFrameOnSeek=!1,this.$refs.video.dataset.returnToTime){this.ignoreNextSeekEvent=!0;const seekTo=parseFloat(this.$refs.video.dataset.returnToTime);delete this.$refs.video.dataset.returnToTime,this.$refs.video.currentTime=seekTo}"true"===this.$refs.video.dataset.resumeOnSeek&&(this.$refs.video.play(),delete this.$refs.video.dataset.resumeOnSeek)}else this.ignoreNextSeekEvent?this.ignoreNextSeekEvent=!1:window.timeline.setMarkerAt(e.target.currentTime)})),window.addEventListener("timeline:marker-set",(e=>{this.ignoreNextSeekEvent=!0,this.$refs.video.currentTime=e.detail.time}))),this.hasVideo=!0,this.mediaIsCollapsed=!1,this.$refs.video.setAttribute("src",video),this.$refs.video.play()},fetchVideoSnapshot(startTime=!1){!1===startTime&&(startTime=this.$refs.video.currentTime),this.insertFrameOnSeek=!0,startTime!==this.$refs.video.currentTime&&(this.$refs.video.dataset.returnToTime=this.$refs.video.currentTime),!1===this.$refs.video.paused&&(this.$refs.video.dataset.resumeOnSeek="true",this.$refs.video.pause()),this.$refs.video.currentTime=startTime},addImageFromVideoToChapter(index){index=index||this.currentChapterIndex,gtag("event","chapter",{action:"videoStillToChapter"}),this.getVideoCanvas((url=>{this.data.chapters[index].img=url,this.data.chapters[index].img_type="blob",this.data.chapters[index].img_filename=new URL(url.slice(5)).pathname.slice(1)+".png",this.getImageInfo(index)}))},attachAudio(audio){this.reset(),this.audioHandlersAttached||(this.audioHandlersAttached=!0,this.$refs.audio.addEventListener("loadedmetadata",(e=>{this.data.duration=e.target.duration,this.updateTimeline()}))),this.hasAudio=!0,this.$refs.audio.setAttribute("src",audio),this.$refs.audio.play()},deleteImage(index){"blob:"===this.data.chapters[index].img.slice(0,5)&&URL.revokeObjectURL(this.data.chapters[index].img),gtag("event","chapter",{action:"removeImage"}),delete this.data.chapters[index].img,delete this.data.chapters[index].img_type,delete this.data.chapters[index].img_filename},getImageInfo(index){const img=document.createElement("img");img.dataset.index=index,img.addEventListener("load",(e=>{this.data.chapters[e.target.dataset.index].img_dims=`${e.target.naturalWidth}x${e.target.naturalHeight}`})),img.setAttribute("src",this.data.chapters[index].img);const initObject={index:index};fetch(this.data.chapters[index].img,initObject).then((initObject=>r=>{const l=r.headers.get("content-length");this.data.chapters[initObject.index].img_size=function(bytes,decimals=2,format="KB"){if(bytes<1)return"0 B";const k="kB"===format?1e3:1024,i=Math.floor(Math.log(bytes)/Math.log(k)),sizes=["","K","M","G","T","P","E","Z","Y"],suffix=["kB"===format?sizes[i].toLowerCase():sizes[i],"B"];return"KiB"===format&&suffix.splice(1,0,"i"),parseFloat((bytes/Math.pow(k,i)).toFixed(decimals))+" "+suffix.join("")}(l)+` (${l} Bytes)`})(initObject))},toggleMedia(){this.mediaIsCollapsed=!this.mediaIsCollapsed,gtag("event","ui",{action:"mediatoggle",mode:this.mediaIsCollapsed?"collapsed":"visible"}),this.$refs.video.pause()}},MetaProperties={metaPropertiesDialog:null,initMetaPropertiesDialog(){this.metaPropertiesDialog=new Offcanvas(this.$refs.metaPropertiesDialog),this.$refs.metaPropertiesDialog.addEventListener("shown.bs.offcanvas",(()=>{gtag("event","meta",{action:"attributeDialog"})}))}}; /*! shepherd.js 11.2.0 */ var isMergeableObject=function(value){return function(value){return!!value&&"object"==typeof value}(value)&&!function(value){var stringValue=Object.prototype.toString.call(value);return"[object RegExp]"===stringValue||"[object Date]"===stringValue||function(value){return value.$$typeof===REACT_ELEMENT_TYPE}(value)}(value)};var REACT_ELEMENT_TYPE="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function cloneUnlessOtherwiseSpecified(value,options){return!1!==options.clone&&options.isMergeableObject(value)?deepmerge((val=value,Array.isArray(val)?[]:{}),value,options):value;var val}function defaultArrayMerge(target,source,options){return target.concat(source).map((function(element){return cloneUnlessOtherwiseSpecified(element,options)}))}function getKeys(target){return Object.keys(target).concat(function(target){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(target).filter((function(symbol){return Object.propertyIsEnumerable.call(target,symbol)})):[]}(target))}function propertyIsOnObject(object,property){try{return property in object}catch(_){return!1}}function mergeObject(target,source,options){var destination={};return options.isMergeableObject(target)&&getKeys(target).forEach((function(key){destination[key]=cloneUnlessOtherwiseSpecified(target[key],options)})),getKeys(source).forEach((function(key){(function(target,key){return propertyIsOnObject(target,key)&&!(Object.hasOwnProperty.call(target,key)&&Object.propertyIsEnumerable.call(target,key))})(target,key)||(propertyIsOnObject(target,key)&&options.isMergeableObject(source[key])?destination[key]=function(key,options){if(!options.customMerge)return deepmerge;var customMerge=options.customMerge(key);return"function"==typeof customMerge?customMerge:deepmerge}(key,options)(target[key],source[key],options):destination[key]=cloneUnlessOtherwiseSpecified(source[key],options))})),destination}function deepmerge(target,source,options){(options=options||{}).arrayMerge=options.arrayMerge||defaultArrayMerge,options.isMergeableObject=options.isMergeableObject||isMergeableObject,options.cloneUnlessOtherwiseSpecified=cloneUnlessOtherwiseSpecified;var sourceIsArray=Array.isArray(source);return sourceIsArray===Array.isArray(target)?sourceIsArray?options.arrayMerge(target,source,options):mergeObject(target,source,options):cloneUnlessOtherwiseSpecified(source,options)}deepmerge.all=function(array,options){if(!Array.isArray(array))throw new Error("first argument should be an array");return array.reduce((function(prev,next){return deepmerge(prev,next,options)}),{})};var cjs=deepmerge;function isHTMLElement$1(value){return value instanceof HTMLElement}function isFunction(value){return"function"==typeof value}function isString(value){return"string"==typeof value}function isUndefined(value){return void 0===value}class Evented{on(event,handler,ctx,once=!1){return isUndefined(this.bindings)&&(this.bindings={}),isUndefined(this.bindings[event])&&(this.bindings[event]=[]),this.bindings[event].push({handler:handler,ctx:ctx,once:once}),this}once(event,handler,ctx){return this.on(event,handler,ctx,!0)}off(event,handler){return isUndefined(this.bindings)||isUndefined(this.bindings[event])||(isUndefined(handler)?delete this.bindings[event]:this.bindings[event].forEach(((binding,index)=>{binding.handler===handler&&this.bindings[event].splice(index,1)}))),this}trigger(event,...args){return!isUndefined(this.bindings)&&this.bindings[event]&&this.bindings[event].forEach(((binding,index)=>{const{ctx:ctx,handler:handler,once:once}=binding,context=ctx||this;handler.apply(context,args),once&&this.bindings[event].splice(index,1)})),this}}function autoBind(self){const keys=Object.getOwnPropertyNames(self.constructor.prototype);for(let i=0;i<keys.length;i++){const key=keys[i],val=self[key];"constructor"!==key&&"function"==typeof val&&(self[key]=val.bind(self))}return self}function bindAdvance(step){const{event:event,selector:selector}=step.options.advanceOn||{};if(!event)return console.error("advanceOn was defined, but no event name was passed.");{const handler=function(selector,step){return event=>{if(step.isOpen()){const targetIsEl=step.el&&event.currentTarget===step.el;(!isUndefined(selector)&&event.currentTarget.matches(selector)||targetIsEl)&&step.tour.next()}}}(selector,step);let el;try{el=document.querySelector(selector)}catch(e){}if(!isUndefined(selector)&&!el)return console.error(`No element was found for the selector supplied to advanceOn: ${selector}`);el?(el.addEventListener(event,handler),step.on("destroy",(()=>el.removeEventListener(event,handler)))):(document.body.addEventListener(event,handler,!0),step.on("destroy",(()=>document.body.removeEventListener(event,handler,!0))))}}function normalizePrefix(prefix){return isString(prefix)&&""!==prefix?"-"!==prefix.charAt(prefix.length-1)?`${prefix}-`:prefix:""}function shouldCenterStep(resolvedAttachToOptions){return null==resolvedAttachToOptions||(!resolvedAttachToOptions.element||!resolvedAttachToOptions.on)}function uuid(){let d=Date.now();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(c=>{const r=(d+16*Math.random())%16|0;return d=Math.floor(d/16),("x"==c?r:3&r|8).toString(16)}))}function _extends(){return _extends=Object.assign?Object.assign.bind():function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target},_extends.apply(this,arguments)}function _objectWithoutPropertiesLoose(source,excluded){if(null==source)return{};var key,i,target={},sourceKeys=Object.keys(source);for(i=0;i<sourceKeys.length;i++)key=sourceKeys[i],excluded.indexOf(key)>=0||(target[key]=source[key]);return target}const min=Math.min,max=Math.max,round=Math.round,floor=Math.floor,createCoords=v=>({x:v,y:v}),oppositeSideMap={left:"right",right:"left",bottom:"top",top:"bottom"},oppositeAlignmentMap={start:"end",end:"start"};function clamp(start,value,end){return max(start,min(value,end))}function evaluate(value,param){return"function"==typeof value?value(param):value}function getSide(placement){return placement.split("-")[0]}function getAlignment(placement){return placement.split("-")[1]}function getOppositeAxis(axis){return"x"===axis?"y":"x"}function getAxisLength(axis){return"y"===axis?"height":"width"}function getSideAxis(placement){return["top","bottom"].includes(getSide(placement))?"y":"x"}function getAlignmentAxis(placement){return getOppositeAxis(getSideAxis(placement))}function getOppositeAlignmentPlacement(placement){return placement.replace(/start|end/g,(alignment=>oppositeAlignmentMap[alignment]))}function getOppositePlacement(placement){return placement.replace(/left|right|bottom|top/g,(side=>oppositeSideMap[side]))}function getPaddingObject(padding){return"number"!=typeof padding?function(padding){return _extends({top:0,right:0,bottom:0,left:0},padding)}(padding):{top:padding,right:padding,bottom:padding,left:padding}}function rectToClientRect(rect){return _extends({},rect,{top:rect.y,left:rect.x,right:rect.x+rect.width,bottom:rect.y+rect.height})}const _excluded2=["mainAxis","crossAxis","fallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","flipAlignment"],_excluded4=["mainAxis","crossAxis","limiter"];function computeCoordsFromPlacement(_ref,placement,rtl){let{reference:reference,floating:floating}=_ref;const sideAxis=getSideAxis(placement),alignmentAxis=getAlignmentAxis(placement),alignLength=getAxisLength(alignmentAxis),side=getSide(placement),isVertical="y"===sideAxis,commonX=reference.x+reference.width/2-floating.width/2,commonY=reference.y+reference.height/2-floating.height/2,commonAlign=reference[alignLength]/2-floating[alignLength]/2;let coords;switch(side){case"top":coords={x:commonX,y:reference.y-floating.height};break;case"bottom":coords={x:commonX,y:reference.y+reference.height};break;case"right":coords={x:reference.x+reference.width,y:commonY};break;case"left":coords={x:reference.x-floating.width,y:commonY};break;default:coords={x:reference.x,y:reference.y}}switch(getAlignment(placement)){case"start":coords[alignmentAxis]-=commonAlign*(rtl&&isVertical?-1:1);break;case"end":coords[alignmentAxis]+=commonAlign*(rtl&&isVertical?-1:1)}return coords}async function detectOverflow(state,options){var _await$platform$isEle;void 0===options&&(options={});const{x:x,y:y,platform:platform,rects:rects,elements:elements,strategy:strategy}=state,{boundary:boundary="clippingAncestors",rootBoundary:rootBoundary="viewport",elementContext:elementContext="floating",altBoundary:altBoundary=!1,padding:padding=0}=evaluate(options,state),paddingObject=getPaddingObject(padding),element=elements[altBoundary?"floating"===elementContext?"reference":"floating":elementContext],clippingClientRect=rectToClientRect(await platform.getClippingRect({element:null==(_await$platform$isEle=await(null==platform.isElement?void 0:platform.isElement(element)))||_await$platform$isEle?element:element.contextElement||await(null==platform.getDocumentElement?void 0:platform.getDocumentElement(elements.floating)),boundary:boundary,rootBoundary:rootBoundary,strategy:strategy})),rect="floating"===elementContext?_extends({},rects.floating,{x:x,y:y}):rects.reference,offsetParent=await(null==platform.getOffsetParent?void 0:platform.getOffsetParent(elements.floating)),offsetScale=await(null==platform.isElement?void 0:platform.isElement(offsetParent))&&await(null==platform.getScale?void 0:platform.getScale(offsetParent))||{x:1,y:1},elementClientRect=rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect?await platform.convertOffsetParentRelativeRectToViewportRelativeRect({rect:rect,offsetParent:offsetParent,strategy:strategy}):rect);return{top:(clippingClientRect.top-elementClientRect.top+paddingObject.top)/offsetScale.y,bottom:(elementClientRect.bottom-clippingClientRect.bottom+paddingObject.bottom)/offsetScale.y,left:(clippingClientRect.left-elementClientRect.left+paddingObject.left)/offsetScale.x,right:(elementClientRect.right-clippingClientRect.right+paddingObject.right)/offsetScale.x}}const arrow=options=>({name:"arrow",options:options,async fn(state){const{x:x,y:y,placement:placement,rects:rects,platform:platform,elements:elements}=state,{element:element,padding:padding=0}=evaluate(options,state)||{};if(null==element)return{};const paddingObject=getPaddingObject(padding),coords={x:x,y:y},axis=getAlignmentAxis(placement),length=getAxisLength(axis),arrowDimensions=await platform.getDimensions(element),isYAxis="y"===axis,minProp=isYAxis?"top":"left",maxProp=isYAxis?"bottom":"right",clientProp=isYAxis?"clientHeight":"clientWidth",endDiff=rects.reference[length]+rects.reference[axis]-coords[axis]-rects.floating[length],startDiff=coords[axis]-rects.reference[axis],arrowOffsetParent=await(null==platform.getOffsetParent?void 0:platform.getOffsetParent(element));let clientSize=arrowOffsetParent?arrowOffsetParent[clientProp]:0;clientSize&&await(null==platform.isElement?void 0:platform.isElement(arrowOffsetParent))||(clientSize=elements.floating[clientProp]||rects.floating[length]);const centerToReference=endDiff/2-startDiff/2,largestPossiblePadding=clientSize/2-arrowDimensions[length]/2-1,minPadding=min(paddingObject[minProp],largestPossiblePadding),maxPadding=min(paddingObject[maxProp],largestPossiblePadding),min$1=minPadding,max=clientSize-arrowDimensions[length]-maxPadding,center=clientSize/2-arrowDimensions[length]/2+centerToReference,offset=clamp(min$1,center,max),alignmentOffset=null!=getAlignment(placement)&¢er!=offset&&rects.reference[length]/2-(center<min$1?minPadding:maxPadding)-arrowDimensions[length]/2<0?center<min$1?min$1-center:max-center:0;return{[axis]:coords[axis]-alignmentOffset,data:{[axis]:offset,centerOffset:center-offset+alignmentOffset}}}}),flip=function(options){return void 0===options&&(options={}),{name:"flip",options:options,async fn(state){var _middlewareData$flip;const{placement:placement,middlewareData:middlewareData,rects:rects,initialPlacement:initialPlacement,platform:platform,elements:elements}=state,_evaluate2=evaluate(options,state),{mainAxis:checkMainAxis=!0,crossAxis:checkCrossAxis=!0,fallbackPlacements:specifiedFallbackPlacements,fallbackStrategy:fallbackStrategy="bestFit",fallbackAxisSideDirection:fallbackAxisSideDirection="none",flipAlignment:flipAlignment=!0}=_evaluate2,detectOverflowOptions=_objectWithoutPropertiesLoose(_evaluate2,_excluded2),side=getSide(placement),isBasePlacement=getSide(initialPlacement)===initialPlacement,rtl=await(null==platform.isRTL?void 0:platform.isRTL(elements.floating)),fallbackPlacements=specifiedFallbackPlacements||(isBasePlacement||!flipAlignment?[getOppositePlacement(initialPlacement)]:function(placement){const oppositePlacement=getOppositePlacement(placement);return[getOppositeAlignmentPlacement(placement),oppositePlacement,getOppositeAlignmentPlacement(oppositePlacement)]}(initialPlacement));specifiedFallbackPlacements||"none"===fallbackAxisSideDirection||fallbackPlacements.push(...function(placement,flipAlignment,direction,rtl){const alignment=getAlignment(placement);let list=function(side,isStart,rtl){const lr=["left","right"],rl=["right","left"],tb=["top","bottom"],bt=["bottom","top"];switch(side){case"top":case"bottom":return rtl?isStart?rl:lr:isStart?lr:rl;case"left":case"right":return isStart?tb:bt;default:return[]}}(getSide(placement),"start"===direction,rtl);return alignment&&(list=list.map((side=>side+"-"+alignment)),flipAlignment&&(list=list.concat(list.map(getOppositeAlignmentPlacement)))),list}(initialPlacement,flipAlignment,fallbackAxisSideDirection,rtl));const placements=[initialPlacement,...fallbackPlacements],overflow=await detectOverflow(state,detectOverflowOptions),overflows=[];let overflowsData=(null==(_middlewareData$flip=middlewareData.flip)?void 0:_middlewareData$flip.overflows)||[];if(checkMainAxis&&overflows.push(overflow[side]),checkCrossAxis){const sides=function(placement,rects,rtl){void 0===rtl&&(rtl=!1);const alignment=getAlignment(placement),alignmentAxis=getAlignmentAxis(placement),length=getAxisLength(alignmentAxis);let mainAlignmentSide="x"===alignmentAxis?alignment===(rtl?"end":"start")?"right":"left":"start"===alignment?"bottom":"top";return rects.reference[length]>rects.floating[length]&&(mainAlignmentSide=getOppositePlacement(mainAlignmentSide)),[mainAlignmentSide,getOppositePlacement(mainAlignmentSide)]}(placement,rects,rtl);overflows.push(overflow[sides[0]],overflow[sides[1]])}if(overflowsData=[...overflowsData,{placement:placement,overflows:overflows}],!overflows.every((side=>side<=0))){var _middlewareData$flip2,_overflowsData$filter;const nextIndex=((null==(_middlewareData$flip2=middlewareData.flip)?void 0:_middlewareData$flip2.index)||0)+1,nextPlacement=placements[nextIndex];if(nextPlacement)return{data:{index:nextIndex,overflows:overflowsData},reset:{placement:nextPlacement}};let resetPlacement=null==(_overflowsData$filter=overflowsData.filter((d=>d.overflows[0]<=0)).sort(((a,b)=>a.overflows[1]-b.overflows[1]))[0])?void 0:_overflowsData$filter.placement;if(!resetPlacement)switch(fallbackStrategy){case"bestFit":{var _overflowsData$map$so;const placement=null==(_overflowsData$map$so=overflowsData.map((d=>[d.placement,d.overflows.filter((overflow=>overflow>0)).reduce(((acc,overflow)=>acc+overflow),0)])).sort(((a,b)=>a[1]-b[1]))[0])?void 0:_overflowsData$map$so[0];placement&&(resetPlacement=placement);break}case"initialPlacement":resetPlacement=initialPlacement}if(placement!==resetPlacement)return{reset:{placement:resetPlacement}}}return{}}}},shift=function(options){return void 0===options&&(options={}),{name:"shift",options:options,async fn(state){const{x:x,y:y,placement:placement}=state,_evaluate4=evaluate(options,state),{mainAxis:checkMainAxis=!0,crossAxis:checkCrossAxis=!1,limiter:limiter={fn:_ref=>{let{x:x,y:y}=_ref;return{x:x,y:y}}}}=_evaluate4,detectOverflowOptions=_objectWithoutPropertiesLoose(_evaluate4,_excluded4),coords={x:x,y:y},overflow=await detectOverflow(state,detectOverflowOptions),crossAxis=getSideAxis(getSide(placement)),mainAxis=getOppositeAxis(crossAxis);let mainAxisCoord=coords[mainAxis],crossAxisCoord=coords[crossAxis];if(checkMainAxis){const maxSide="y"===mainAxis?"bottom":"right";mainAxisCoord=clamp(mainAxisCoord+overflow["y"===mainAxis?"top":"left"],mainAxisCoord,mainAxisCoord-overflow[maxSide])}if(checkCrossAxis){const maxSide="y"===crossAxis?"bottom":"right";crossAxisCoord=clamp(crossAxisCoord+overflow["y"===crossAxis?"top":"left"],crossAxisCoord,crossAxisCoord-overflow[maxSide])}const limitedCoords=limiter.fn(_extends({},state,{[mainAxis]:mainAxisCoord,[crossAxis]:crossAxisCoord}));return _extends({},limitedCoords,{data:{x:limitedCoords.x-x,y:limitedCoords.y-y}})}}},limitShift=function(options){return void 0===options&&(options={}),{options:options,fn(state){const{x:x,y:y,placement:placement,rects:rects,middlewareData:middlewareData}=state,{offset:offset=0,mainAxis:checkMainAxis=!0,crossAxis:checkCrossAxis=!0}=evaluate(options,state),coords={x:x,y:y},crossAxis=getSideAxis(placement),mainAxis=getOppositeAxis(crossAxis);let mainAxisCoord=coords[mainAxis],crossAxisCoord=coords[crossAxis];const rawOffset=evaluate(offset,state),computedOffset="number"==typeof rawOffset?{mainAxis:rawOffset,crossAxis:0}:_extends({mainAxis:0,crossAxis:0},rawOffset);if(checkMainAxis){const len="y"===mainAxis?"height":"width",limitMin=rects.reference[mainAxis]-rects.floating[len]+computedOffset.mainAxis,limitMax=rects.reference[mainAxis]+rects.reference[len]-computedOffset.mainAxis;mainAxisCoord<limitMin?mainAxisCoord=limitMin:mainAxisCoord>limitMax&&(mainAxisCoord=limitMax)}if(checkCrossAxis){var _middlewareData$offse,_middlewareData$offse2;const len="y"===mainAxis?"width":"height",isOriginSide=["top","left"].includes(getSide(placement)),limitMin=rects.reference[crossAxis]-rects.floating[len]+(isOriginSide&&(null==(_middlewareData$offse=middlewareData.offset)?void 0:_middlewareData$offse[crossAxis])||0)+(isOriginSide?0:computedOffset.crossAxis),limitMax=rects.reference[crossAxis]+rects.reference[len]+(isOriginSide?0:(null==(_middlewareData$offse2=middlewareData.offset)?void 0:_middlewareData$offse2[crossAxis])||0)-(isOriginSide?computedOffset.crossAxis:0);crossAxisCoord<limitMin?crossAxisCoord=limitMin:crossAxisCoord>limitMax&&(crossAxisCoord=limitMax)}return{[mainAxis]:mainAxisCoord,[crossAxis]:crossAxisCoord}}}};function getNodeName(node){return isNode(node)?(node.nodeName||"").toLowerCase():"#document"}function getWindow(node){var _node$ownerDocument;return(null==node||null==(_node$ownerDocument=node.ownerDocument)?void 0:_node$ownerDocument.defaultView)||window}function getDocumentElement(node){var _ref;return null==(_ref=(isNode(node)?node.ownerDocument:node.document)||window.document)?void 0:_ref.documentElement}function isNode(value){return value instanceof Node||value instanceof getWindow(value).Node}function isElement(value){return value instanceof Element||value instanceof getWindow(value).Element}function isHTMLElement(value){return value instanceof HTMLElement||value instanceof getWindow(value).HTMLElement}function isShadowRoot(value){return"undefined"!=typeof ShadowRoot&&(value instanceof ShadowRoot||value instanceof getWindow(value).ShadowRoot)}function isOverflowElement(element){const{overflow:overflow,overflowX:overflowX,overflowY:overflowY,display:display}=getComputedStyle$1(element);return/auto|scroll|overlay|hidden|clip/.test(overflow+overflowY+overflowX)&&!["inline","contents"].includes(display)}function isTableElement(element){return["table","td","th"].includes(getNodeName(element))}function isContainingBlock(element){const webkit=isWebKit(),css=getComputedStyle$1(element);return"none"!==css.transform||"none"!==css.perspective||!!css.containerType&&"normal"!==css.containerType||!webkit&&!!css.backdropFilter&&"none"!==css.backdropFilter||!webkit&&!!css.filter&&"none"!==css.filter||["transform","perspective","filter"].some((value=>(css.willChange||"").includes(value)))||["paint","layout","strict","content"].some((value=>(css.contain||"").includes(value)))}function isWebKit(){return!("undefined"==typeof CSS||!CSS.supports)&&CSS.supports("-webkit-backdrop-filter","none")}function isLastTraversableNode(node){return["html","body","#document"].includes(getNodeName(node))}function getComputedStyle$1(element){return getWindow(element).getComputedStyle(element)}function getNodeScroll(element){return isElement(element)?{scrollLeft:element.scrollLeft,scrollTop:element.scrollTop}:{scrollLeft:element.pageXOffset,scrollTop:element.pageYOffset}}function getParentNode(node){if("html"===getNodeName(node))return node;const result=node.assignedSlot||node.parentNode||isShadowRoot(node)&&node.host||getDocumentElement(node);return isShadowRoot(result)?result.host:result}function getNearestOverflowAncestor(node){const parentNode=getParentNode(node);return isLastTraversableNode(parentNode)?node.ownerDocument?node.ownerDocument.body:node.body:isHTMLElement(parentNode)&&isOverflowElement(parentNode)?parentNode:getNearestOverflowAncestor(parentNode)}function getOverflowAncestors(node,list){var _node$ownerDocument2;void 0===list&&(list=[]);const scrollableAncestor=getNearestOverflowAncestor(node),isBody=scrollableAncestor===(null==(_node$ownerDocument2=node.ownerDocument)?void 0:_node$ownerDocument2.body),win=getWindow(scrollableAncestor);return isBody?list.concat(win,win.visualViewport||[],isOverflowElement(scrollableAncestor)?scrollableAncestor:[]):list.concat(scrollableAncestor,getOverflowAncestors(scrollableAncestor))}function getCssDimensions(element){const css=getComputedStyle$1(element);let width=parseFloat(css.width)||0,height=parseFloat(css.height)||0;const hasOffset=isHTMLElement(element),offsetWidth=hasOffset?element.offsetWidth:width,offsetHeight=hasOffset?element.offsetHeight:height,shouldFallback=round(width)!==offsetWidth||round(height)!==offsetHeight;return shouldFallback&&(width=offsetWidth,height=offsetHeight),{width:width,height:height,$:shouldFallback}}function unwrapElement(element){return isElement(element)?element:element.contextElement}function getScale(element){const domElement=unwrapElement(element);if(!isHTMLElement(domElement))return createCoords(1);const rect=domElement.getBoundingClientRect(),{width:width,height:height,$:$}=getCssDimensions(domElement);let x=($?round(rect.width):rect.width)/width,y=($?round(rect.height):rect.height)/height;return x&&Number.isFinite(x)||(x=1),y&&Number.isFinite(y)||(y=1),{x:x,y:y}}const noOffsets=createCoords(0);function getVisualOffsets(element){const win=getWindow(element);return isWebKit()&&win.visualViewport?{x:win.visualViewport.offsetLeft,y:win.visualViewport.offsetTop}:noOffsets}function getBoundingClientRect(element,includeScale,isFixedStrategy,offsetParent){void 0===includeScale&&(includeScale=!1),void 0===isFixedStrategy&&(isFixedStrategy=!1);const clientRect=element.getBoundingClientRect(),domElement=unwrapElement(element);let scale=createCoords(1);includeScale&&(offsetParent?isElement(offsetParent)&&(scale=getScale(offsetParent)):scale=getScale(element));const visualOffsets=function(element,isFixed,floatingOffsetParent){return void 0===isFixed&&(isFixed=!1),!(!floatingOffsetParent||isFixed&&floatingOffsetParent!==getWindow(element))&&isFixed}(domElement,isFixedStrategy,offsetParent)?getVisualOffsets(domElement):createCoords(0);let x=(clientRect.left+visualOffsets.x)/scale.x,y=(clientRect.top+visualOffsets.y)/scale.y,width=clientRect.width/scale.x,height=clientRect.height/scale.y;if(domElement){const win=getWindow(domElement),offsetWin=offsetParent&&isElement(offsetParent)?getWindow(offsetParent):offsetParent;let currentIFrame=win.frameElement;for(;currentIFrame&&offsetParent&&offsetWin!==win;){const iframeScale=getScale(currentIFrame),iframeRect=currentIFrame.getBoundingClientRect(),css=getComputedStyle$1(currentIFrame),left=iframeRect.left+(currentIFrame.clientLeft+parseFloat(css.paddingLeft))*iframeScale.x,top=iframeRect.top+(currentIFrame.clientTop+parseFloat(css.paddingTop))*iframeScale.y;x*=iframeScale.x,y*=iframeScale.y,width*=iframeScale.x,height*=iframeScale.y,x+=left,y+=top,currentIFrame=getWindow(currentIFrame).frameElement}}return rectToClientRect({width:width,height:height,x:x,y:y})}function getWindowScrollBarX(element){return getBoundingClientRect(getDocumentElement(element)).left+getNodeScroll(element).scrollLeft}function getClientRectFromClippingAncestor(element,clippingAncestor,strategy){let rect;if("viewport"===clippingAncestor)rect=function(element,strategy){const win=getWindow(element),html=getDocumentElement(element),visualViewport=win.visualViewport;let width=html.clientWidth,height=html.clientHeight,x=0,y=0;if(visualViewport){width=visualViewport.width,height=visualViewport.height;const visualViewportBased=isWebKit();(!visualViewportBased||visualViewportBased&&"fixed"===strategy)&&(x=visualViewport.offsetLeft,y=visualViewport.offsetTop)}return{width:width,height:height,x:x,y:y}}(element,strategy);else if("document"===clippingAncestor)rect=function(element){const html=getDocumentElement(element),scroll=getNodeScroll(element),body=element.ownerDocument.body,width=max(html.scrollWidth,html.clientWidth,body.scrollWidth,body.clientWidth),height=max(html.scrollHeight,html.clientHeight,body.scrollHeight,body.clientHeight);let x=-scroll.scrollLeft+getWindowScrollBarX(element);const y=-scroll.scrollTop;return"rtl"===getComputedStyle$1(body).direction&&(x+=max(html.clientWidth,body.clientWidth)-width),{width:width,height:height,x:x,y:y}}(getDocumentElement(element));else if(isElement(clippingAncestor))rect=function(element,strategy){const clientRect=getBoundingClientRect(element,!0,"fixed"===strategy),top=clientRect.top+element.clientTop,left=clientRect.left+element.clientLeft,scale=isHTMLElement(element)?getScale(element):createCoords(1);return{width:element.clientWidth*scale.x,height:element.clientHeight*scale.y,x:left*scale.x,y:top*scale.y}}(clippingAncestor,strategy);else{const visualOffsets=getVisualOffsets(element);rect=_extends({},clippingAncestor,{x:clippingAncestor.x-visualOffsets.x,y:clippingAncestor.y-visualOffsets.y})}return rectToClientRect(rect)}function hasFixedPositionAncestor(element,stopNode){const parentNode=getParentNode(element);return!(parentNode===stopNode||!isElement(parentNode)||isLastTraversableNode(parentNode))&&("fixed"===getComputedStyle$1(parentNode).position||hasFixedPositionAncestor(parentNode,stopNode))}function getRectRelativeToOffsetParent(element,offsetParent,strategy){const isOffsetParentAnElement=isHTMLElement(offsetParent),documentElement=getDocumentElement(offsetParent),isFixed="fixed"===strategy,rect=getBoundingClientRect(element,!0,isFixed,offsetParent);let scroll={scrollLeft:0,scrollTop:0};const offsets=createCoords(0);if(isOffsetParentAnElement||!isOffsetParentAnElement&&!isFixed)if(("body"!==getNodeName(offsetParent)||isOverflowElement(documentElement))&&(scroll=getNodeScroll(offsetParent)),isOffsetParentAnElement){const offsetRect=getBoundingClientRect(offsetParent,!0,isFixed,offsetParent);offsets.x=offsetRect.x+offsetParent.clientLeft,offsets.y=offsetRect.y+offsetParent.clientTop}else documentElement&&(offsets.x=getWindowScrollBarX(documentElement));return{x:rect.left+scroll.scrollLeft-offsets.x,y:rect.top+scroll.scrollTop-offsets.y,width:rect.width,height:rect.height}}function getTrueOffsetParent(element,polyfill){return isHTMLElement(element)&&"fixed"!==getComputedStyle$1(element).position?polyfill?polyfill(element):element.offsetParent:null}function getOffsetParent(element,polyfill){const window=getWindow(element);if(!isHTMLElement(element))return window;let offsetParent=getTrueOffsetParent(element,polyfill);for(;offsetParent&&isTableElement(offsetParent)&&"static"===getComputedStyle$1(offsetParent).position;)offsetParent=getTrueOffsetParent(offsetParent,polyfill);return offsetParent&&("html"===getNodeName(offsetParent)||"body"===getNodeName(offsetParent)&&"static"===getComputedStyle$1(offsetParent).position&&!isContainingBlock(offsetParent))?window:offsetParent||function(element){let currentNode=getParentNode(element);for(;isHTMLElement(currentNode)&&!isLastTraversableNode(currentNode);){if(isContainingBlock(currentNode))return currentNode;currentNode=getParentNode(currentNode)}return null}(element)||window}const platform={convertOffsetParentRelativeRectToViewportRelativeRect:function(_ref){let{rect:rect,offsetParent:offsetParent,strategy:strategy}=_ref;const isOffsetParentAnElement=isHTMLElement(offsetParent),documentElement=getDocumentElement(offsetParent);if(offsetParent===documentElement)return rect;let scroll={scrollLeft:0,scrollTop:0},scale=createCoords(1);const offsets=createCoords(0);if((isOffsetParentAnElement||!isOffsetParentAnElement&&"fixed"!==strategy)&&(("body"!==getNodeName(offsetParent)||isOverflowElement(documentElement))&&(scroll=getNodeScroll(offsetParent)),isHTMLElement(offsetParent))){const offsetRect=getBoundingClientRect(offsetParent);scale=getScale(offsetParent),offsets.x=offsetRect.x+offsetParent.clientLeft,offsets.y=offsetRect.y+offsetParent.clientTop}return{width:rect.width*scale.x,height:rect.height*scale.y,x:rect.x*scale.x-scroll.scrollLeft*scale.x+offsets.x,y:rect.y*scale.y-scroll.scrollTop*scale.y+offsets.y}},getDocumentElement:getDocumentElement,getClippingRect:function(_ref){let{element:element,boundary:boundary,rootBoundary:rootBoundary,strategy:strategy}=_ref;const elementClippingAncestors="clippingAncestors"===boundary?function(element,cache){const cachedResult=cache.get(element);if(cachedResult)return cachedResult;let result=getOverflowAncestors(element).filter((el=>isElement(el)&&"body"!==getNodeName(el))),currentContainingBlockComputedStyle=null;const elementIsFixed="fixed"===getComputedStyle$1(element).position;let currentNode=elementIsFixed?getParentNode(element):element;for(;isElement(currentNode)&&!isLastTraversableNode(currentNode);){const computedStyle=getComputedStyle$1(currentNode),currentNodeIsContaining=isContainingBlock(currentNode);currentNodeIsContaining||"fixed"!==computedStyle.position||(currentContainingBlockComputedStyle=null),(elementIsFixed?!currentNodeIsContaining&&!currentContainingBlockComputedStyle:!currentNodeIsContaining&&"static"===computedStyle.position&¤tContainingBlockComputedStyle&&["absolute","fixed"].includes(currentContainingBlockComputedStyle.position)||isOverflowElement(currentNode)&&!currentNodeIsContaining&&hasFixedPositionAncestor(element,currentNode))?result=result.filter((ancestor=>ancestor!==currentNode)):currentContainingBlockComputedStyle=computedStyle,currentNode=getParentNode(currentNode)}return cache.set(element,result),result}(element,this._c):[].concat(boundary),clippingAncestors=[...elementClippingAncestors,rootBoundary],firstClippingAncestor=clippingAncestors[0],clippingRect=clippingAncestors.reduce(((accRect,clippingAncestor)=>{const rect=getClientRectFromClippingAncestor(element,clippingAncestor,strategy);return accRect.top=max(rect.top,accRect.top),accRect.right=min(rect.right,accRect.right),accRect.bottom=min(rect.bottom,accRect.bottom),accRect.left=max(rect.left,accRect.left),accRect}),getClientRectFromClippingAncestor(element,firstClippingAncestor,strategy));return{width:clippingRect.right-clippingRect.left,height:clippingRect.bottom-clippingRect.top,x:clippingRect.left,y:clippingRect.top}},getOffsetParent:getOffsetParent,getElementRects:async function(_ref){let{reference:reference,floating:floating,strategy:strategy}=_ref;const getOffsetParentFn=this.getOffsetParent||getOffsetParent,getDimensionsFn=this.getDimensions;return{reference:getRectRelativeToOffsetParent(reference,await getOffsetParentFn(floating),strategy),floating:_extends({x:0,y:0},await getDimensionsFn(floating))}},getClientRects:function(element){return Array.from(element.getClientRects())},getDimensions:function(element){return getCssDimensions(element)},getScale:getScale,isElement:isElement,isRTL:function(element){return"rtl"===getComputedStyle$1(element).direction}};function autoUpdate(reference,floating,update,options){void 0===options&&(options={});const{ancestorScroll:ancestorScroll=!0,ancestorResize:ancestorResize=!0,elementResize:elementResize="function"==typeof ResizeObserver,layoutShift:layoutShift="function"==typeof IntersectionObserver,animationFrame:animationFrame=!1}=options,referenceEl=unwrapElement(reference),ancestors=ancestorScroll||ancestorResize?[...referenceEl?getOverflowAncestors(referenceEl):[],...getOverflowAncestors(floating)]:[];ancestors.forEach((ancestor=>{ancestorScroll&&ancestor.addEventListener("scroll",update,{passive:!0}),ancestorResize&&ancestor.addEventListener("resize",update)}));const cleanupIo=referenceEl&&layoutShift?function(element,onMove){let timeoutId,io=null;const root=getDocumentElement(element);function cleanup(){clearTimeout(timeoutId),io&&io.disconnect(),io=null}return function refresh(skip,threshold){void 0===skip&&(skip=!1),void 0===threshold&&(threshold=1),cleanup();const{left:left,top:top,width:width,height:height}=element.getBoundingClientRect();if(skip||onMove(),!width||!height)return;const options={rootMargin:-floor(top)+"px "+-floor(root.clientWidth-(left+width))+"px "+-floor(root.clientHeight-(top+height))+"px "+-floor(left)+"px",threshold:max(0,min(1,threshold))||1};let isFirstUpdate=!0;function handleObserve(entries){const ratio=entries[0].intersectionRatio;if(ratio!==threshold){if(!isFirstUpdate)return refresh();ratio?refresh(!1,ratio):timeoutId=setTimeout((()=>{refresh(!1,1e-7)}),100)}isFirstUpdate=!1}try{io=new IntersectionObserver(handleObserve,_extends({},options,{root:root.ownerDocument}))}catch(e){io=new IntersectionObserver(handleObserve,options)}io.observe(element)}(!0),cleanup}(referenceEl,update):null;let frameId,reobserveFrame=-1,resizeObserver=null;elementResize&&(resizeObserver=new ResizeObserver((_ref=>{let[firstEntry]=_ref;firstEntry&&firstEntry.target===referenceEl&&resizeObserver&&(resizeObserver.unobserve(floating),cancelAnimationFrame(reobserveFrame),reobserveFrame=requestAnimationFrame((()=>{resizeObserver&&resizeObserver.observe(floating)}))),update()})),referenceEl&&!animationFrame&&resizeObserver.observe(referenceEl),resizeObserver.observe(floating));let prevRefRect=animationFrame?getBoundingClientRect(reference):null;return animationFrame&&function frameLoop(){const nextRefRect=getBoundingClientRect(reference);!prevRefRect||nextRefRect.x===prevRefRect.x&&nextRefRect.y===prevRefRect.y&&nextRefRect.width===prevRefRect.width&&nextRefRect.height===prevRefRect.height||update();prevRefRect=nextRefRect,frameId=requestAnimationFrame(frameLoop)}(),update(),()=>{ancestors.forEach((ancestor=>{ancestorScroll&&ancestor.removeEventListener("scroll",update),ancestorResize&&ancestor.removeEventListener("resize",update)})),cleanupIo&&cleanupIo(),resizeObserver&&resizeObserver.disconnect(),resizeObserver=null,animationFrame&&cancelAnimationFrame(frameId)}}const computePosition=(reference,floating,options)=>{const cache=new Map,mergedOptions=_extends({platform:platform},options),platformWithCache=_extends({},mergedOptions.platform,{_c:cache});return(async(reference,floating,config)=>{const{placement:placement="bottom",strategy:strategy="absolute",middleware:middleware=[],platform:platform}=config,validMiddleware=middleware.filter(Boolean),rtl=await(null==platform.isRTL?void 0:platform.isRTL(floating));let rects=await platform.getElementRects({reference:reference,floating:floating,strategy:strategy}),{x:x,y:y}=computeCoordsFromPlacement(rects,placement,rtl),statefulPlacement=placement,middlewareData={},resetCount=0;for(let i=0;i<validMiddleware.length;i++){const{name:name,fn:fn}=validMiddleware[i],{x:nextX,y:nextY,data:data,reset:reset}=await fn({x:x,y:y,initialPlacement:placement,placement:statefulPlacement,strategy:strategy,middlewareData:middlewareData,rects:rects,platform:platform,elements:{reference:reference,floating:floating}});x=null!=nextX?nextX:x,y=null!=nextY?nextY:y,middlewareData=_extends({},middlewareData,{[name]:_extends({},middlewareData[name],data)}),reset&&resetCount<=50&&(resetCount++,"object"==typeof reset&&(reset.placement&&(statefulPlacement=reset.placement),reset.rects&&(rects=!0===reset.rects?await platform.getElementRects({reference:reference,floating:floating,strategy:strategy}):reset.rects),({x:x,y:y}=computeCoordsFromPlacement(rects,statefulPlacement,rtl))),i=-1)}return{x:x,y:y,placement:statefulPlacement,strategy:strategy,middlewareData:middlewareData}})(reference,floating,_extends({},mergedOptions,{platform:platformWithCache}))};function setupTooltip(step){step.cleanup&&step.cleanup();const attachToOptions=step._getResolvedAttachToOptions();let target=attachToOptions.element;const floatingUIOptions=function(attachToOptions,step){const options={strategy:"absolute",middleware:[]},arrowEl=function(step){if(step.options.arrow&&step.el)return step.el.querySelector(".shepherd-arrow");return!1}(step),shouldCenter=shouldCenterStep(attachToOptions);shouldCenter||(options.middleware.push(flip(),shift({limiter:limitShift(),crossAxis:!0})),arrowEl&&options.middleware.push(arrow({element:arrowEl})),options.placement=attachToOptions.on);return cjs(step.options.floatingUIOptions||{},options)}(attachToOptions,step),shouldCenter=shouldCenterStep(attachToOptions);if(shouldCenter){target=document.body;step.shepherdElementComponent.getElement().classList.add("shepherd-centered")}return step.cleanup=autoUpdate(target,step.el,(()=>{step.el?function(target,step,floatingUIOptions,shouldCenter){computePosition(target,step.el,floatingUIOptions).then(function(step,shouldCenter){return({x:x,y:y,placement:placement,middlewareData:middlewareData})=>step.el?(shouldCenter?Object.assign(step.el.style,{position:"fixed",left:"50%",top:"50%",transform:"translate(-50%, -50%)"}):Object.assign(step.el.style,{position:"absolute",left:`${x}px`,top:`${y}px`}),step.el.dataset.popperPlacement=placement,function(el,middlewareData){const arrowEl=el.querySelector(".shepherd-arrow");if(arrowEl&&middlewareData.arrow){const{x:arrowX,y:arrowY}=middlewareData.arrow;Object.assign(arrowEl.style,{left:null!=arrowX?`${arrowX}px`:"",top:null!=arrowY?`${arrowY}px`:""})}}(step.el,middlewareData),step):step}(step,shouldCenter)).then((step=>new Promise((resolve=>{setTimeout((()=>resolve(step)),300)})))).then((step=>{step&&step.el&&step.el.focus({preventScroll:!0})}))}(target,step,floatingUIOptions,shouldCenter):step.cleanup()})),step.target=attachToOptions.element,floatingUIOptions}function noop(){}function assign(tar,src){for(const k in src)tar[k]=src[k];return tar}function run(fn){return fn()}function blank_object(){return Object.create(null)}function run_all(fns){fns.forEach(run)}function is_function(thing){return"function"==typeof thing}function safe_not_equal(a,b){return a!=a?b==b:a!==b||a&&"object"==typeof a||"function"==typeof a}function append(target,node){target.appendChild(node)}function insert(target,node,anchor){target.insertBefore(node,anchor||null)}function detach(node){node.parentNode&&node.parentNode.removeChild(node)}function element(name){return document.createElement(name)}function svg_element(name){return document.createElementNS("http://www.w3.org/2000/svg",name)}function text(data){return document.createTextNode(data)}function space(){return text(" ")}function listen(node,event,handler,options){return node.addEventListener(event,handler,options),()=>node.removeEventListener(event,handler,options)}function attr(node,attribute,value){null==value?node.removeAttribute(attribute):node.getAttribute(attribute)!==value&&node.setAttribute(attribute,value)}const always_set_through_set_attribute=["width","height"];function set_attributes(node,attributes){const descriptors=Object.getOwnPropertyDescriptors(node.__proto__);for(const key in attributes)null==attributes[key]?node.removeAttribute(key):"style"===key?node.style.cssText=attributes[key]:"__value"===key?node.value=node[key]=attributes[key]:descriptors[key]&&descriptors[key].set&&-1===always_set_through_set_attribute.indexOf(key)?node[key]=attributes[key]:attr(node,key,attributes[key])}function toggle_class(element,name,toggle){element.classList[toggle?"add":"remove"](name)}let current_component;function set_current_component(component){current_component=component}function get_current_component(){if(!current_component)throw new Error("Function called outside component initialization");return current_component}function afterUpdate(fn){get_current_component().$$.after_update.push(fn)}const dirty_components=[],binding_callbacks=[];let render_callbacks=[];const flush_callbacks=[],resolved_promise=Promise.resolve();let update_scheduled=!1;function add_render_callback(fn){render_callbacks.push(fn)}const seen_callbacks=new Set;let flushidx=0;function flush(){if(0!==flushidx)return;const saved_component=current_component;do{try{for(;flushidx<dirty_components.length;){const component=dirty_components[flushidx];flushidx++,set_current_component(component),update(component.$$)}}catch(e){throw dirty_components.length=0,flushidx=0,e}for(set_current_component(null),dirty_components.length=0,flushidx=0;binding_callbacks.length;)binding_callbacks.pop()();for(let i=0;i<render_callbacks.length;i+=1){const callback=render_callbacks[i];seen_callbacks.has(callback)||(seen_callbacks.add(callback),callback())}render_callbacks.length=0}while(dirty_components.length);for(;flush_callbacks.length;)flush_callbacks.pop()();update_scheduled=!1,seen_callbacks.clear(),set_current_component(saved_component)}function update($$){if(null!==$$.fragment){$$.update(),run_all($$.before_update);const dirty=$$.dirty;$$.dirty=[-1],$$.fragment&&$$.fragment.p($$.ctx,dirty),$$.after_update.forEach(add_render_callback)}}const outroing=new Set;let outros;function group_outros(){outros={r:0,c:[],p:outros}}function check_outros(){outros.r||run_all(outros.c),outros=outros.p}function transition_in(block,local){block&&block.i&&(outroing.delete(block),block.i(local))}function transition_out(block,local,detach,callback){if(block&&block.o){if(outroing.has(block))return;outroing.add(block),outros.c.push((()=>{outroing.delete(block),callback&&(detach&&block.d(1),callback())})),block.o(local)}else callback&&callback()}function create_component(block){block&&block.c()}function mount_component(component,target,anchor,customElement){const{fragment:fragment,after_update:after_update}=component.$$;fragment&&fragment.m(target,anchor),customElement||add_render_callback((()=>{const new_on_destroy=component.$$.on_mount.map(run).filter(is_function);component.$$.on_destroy?component.$$.on_destroy.push(...new_on_destroy):run_all(new_on_destroy),component.$$.on_mount=[]})),after_update.forEach(add_render_callback)}function destroy_component(component,detaching){const $$=component.$$;null!==$$.fragment&&(!function(fns){const filtered=[],targets=[];render_callbacks.forEach((c=>-1===fns.indexOf(c)?filtered.push(c):targets.push(c))),targets.forEach((c=>c())),render_callbacks=filtered}($$.after_update),run_all($$.on_destroy),$$.fragment&&$$.fragment.d(detaching),$$.on_destroy=$$.fragment=null,$$.ctx=[])}function make_dirty(component,i){-1===component.$$.dirty[0]&&(dirty_components.push(component),update_scheduled||(update_scheduled=!0,resolved_promise.then(flush)),component.$$.dirty.fill(0)),component.$$.dirty[i/31|0]|=1<<i%31}function init(component,options,instance,create_fragment,not_equal,props,append_styles,dirty=[-1]){const parent_component=current_component;set_current_component(component);const $$=component.$$={fragment:null,ctx:[],props:props,update:noop,not_equal:not_equal,bound:blank_object(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(options.context||(parent_component?parent_component.$$.context:[])),callbacks:blank_object(),dirty:dirty,skip_bound:!1,root:options.target||parent_component.$$.root};let ready=!1;if($$.ctx=instance?instance(component,options.props||{},((i,ret,...rest)=>{const value=rest.length?rest[0]:ret;return $$.ctx&¬_equal($$.ctx[i],$$.ctx[i]=value)&&(!$$.skip_bound&&$$.bound[i]&&$$.bound[i](value),ready&&make_dirty(component,i)),ret})):[],$$.update(),ready=!0,run_all($$.before_update),$$.fragment=!!create_fragment&&create_fragment($$.ctx),options.target){if(options.hydrate){const nodes=function(element){return Array.from(element.childNodes)}(options.target);$$.fragment&&$$.fragment.l(nodes),nodes.forEach(detach)}else $$.fragment&&$$.fragment.c();options.intro&&transition_in(component.$$.fragment),mount_component(component,options.target,options.anchor,options.customElement),flush()}set_current_component(parent_component)}class SvelteComponent{$destroy(){destroy_component(this,1),this.$destroy=noop}$on(type,callback){if(!is_function(callback))return noop;const callbacks=this.$$.callbacks[type]||(this.$$.callbacks[type]=[]);return callbacks.push(callback),()=>{const index=callbacks.indexOf(callback);-1!==index&&callbacks.splice(index,1)}}$set($$props){var obj;this.$$set&&(obj=$$props,0!==Object.keys(obj).length)&&(this.$$.skip_bound=!0,this.$$set($$props),this.$$.skip_bound=!1)}}function create_fragment$8(ctx){let button,button_aria_label_value,button_class_value,mounted,dispose;return{c(){button=element("button"),attr(button,"aria-label",button_aria_label_value=ctx[3]?ctx[3]:null),attr(button,"class",button_class_value=`${ctx[1]||""} shepherd-button ${ctx[4]?"shepherd-button-secondary":""}`),button.disabled=ctx[2],attr(button,"tabindex","0")},m(target,anchor){insert(target,button,anchor),button.innerHTML=ctx[5],mounted||(dispose=listen(button,"click",(function(){is_function(ctx[0])&&ctx[0].apply(this,arguments)})),mounted=!0)},p(new_ctx,[dirty]){ctx=new_ctx,32&dirty&&(button.innerHTML=ctx[5]),8&dirty&&button_aria_label_value!==(button_aria_label_value=ctx[3]?ctx[3]:null)&&attr(button,"aria-label",button_aria_label_value),18&dirty&&button_class_value!==(button_class_value=`${ctx[1]||""} shepherd-button ${ctx[4]?"shepherd-button-secondary":""}`)&&attr(button,"class",button_class_value),4&dirty&&(button.disabled=ctx[2])},i:noop,o:noop,d(detaching){detaching&&detach(button),mounted=!1,dispose()}}}function instance$8($$self,$$props,$$invalidate){let action,classes,disabled,label,secondary,text,{config:config,step:step}=$$props;function getConfigOption(option){return isFunction(option)?option.call(step):option}return $$self.$$set=$$props=>{"config"in $$props&&$$invalidate(6,config=$$props.config),"step"in $$props&&$$invalidate(7,step=$$props.step)},$$self.$$.update=()=>{192&$$self.$$.dirty&&($$invalidate(0,action=config.action?config.action.bind(step.tour):null),$$invalidate(1,classes=config.classes),$$invalidate(2,disabled=!!config.disabled&&getConfigOption(config.disabled)),$$invalidate(3,label=config.label?getConfigOption(config.label):null),$$invalidate(4,secondary=config.secondary),$$invalidate(5,text=config.text?getConfigOption(config.text):null))},[action,classes,disabled,label,secondary,text,config,step]}class Shepherd_button extends SvelteComponent{constructor(options){super(),init(this,options,instance$8,create_fragment$8,safe_not_equal,{config:6,step:7})}}function get_each_context(ctx,list,i){const child_ctx=ctx.slice();return child_ctx[2]=list[i],child_ctx}function create_if_block$3(ctx){let each_1_anchor,current,each_value=ctx[1],each_blocks=[];for(let i=0;i<each_value.length;i+=1)each_blocks[i]=create_each_block(get_each_context(ctx,each_value,i));const out=i=>transition_out(each_blocks[i],1,1,(()=>{each_blocks[i]=null}));return{c(){for(let i=0;i<each_blocks.length;i+=1)each_blocks[i].c();each_1_anchor=text("")},m(target,anchor){for(let i=0;i<each_blocks.length;i+=1)each_blocks[i]&&each_blocks[i].m(target,anchor);insert(target,each_1_anchor,anchor),current=!0},p(ctx,dirty){if(3&dirty){let i;for(each_value=ctx[1],i=0;i<each_value.length;i+=1){const child_ctx=get_each_context(ctx,each_value,i);each_blocks[i]?(each_blocks[i].p(child_ctx,dirty),transition_in(each_blocks[i],1)):(each_blocks[i]=create_each_block(child_ctx),each_blocks[i].c(),transition_in(each_blocks[i],1),each_blocks[i].m(each_1_anchor.parentNode,each_1_anchor))}for(group_outros(),i=each_value.length;i<each_blocks.length;i+=1)out(i);check_outros()}},i(local){if(!current){for(let i=0;i<each_value.length;i+=1)transition_in(each_blocks[i]);current=!0}},o(local){each_blocks=each_blocks.filter(Boolean);for(let i=0;i<each_blocks.length;i+=1)transition_out(each_blocks[i]);current=!1},d(detaching){!function(iterations,detaching){for(let i=0;i<iterations.length;i+=1)iterations[i]&&iterations[i].d(detaching)}(each_blocks,detaching),detaching&&detach(each_1_anchor)}}}function create_each_block(ctx){let shepherdbutton,current;return shepherdbutton=new Shepherd_button({props:{config:ctx[2],step:ctx[0]}}),{c(){create_component(shepherdbutton.$$.fragment)},m(target,anchor){mount_component(shepherdbutton,target,anchor),current=!0},p(ctx,dirty){const shepherdbutton_changes={};2&dirty&&(shepherdbutton_changes.config=ctx[2]),1&dirty&&(shepherdbutton_changes.step=ctx[0]),shepherdbutton.$set(shepherdbutton_changes)},i(local){current||(transition_in(shepherdbutton.$$.fragment,local),current=!0)},o(local){transition_out(shepherdbutton.$$.fragment,local),current=!1},d(detaching){destroy_component(shepherdbutton,detaching)}}}function create_fragment$7(ctx){let footer,current,if_block=ctx[1]&&create_if_block$3(ctx);return{c(){footer=element("footer"),if_block&&if_block.c(),attr(footer,"class","shepherd-footer")},m(target,anchor){insert(target,footer,anchor),if_block&&if_block.m(footer,null),current=!0},p(ctx,[dirty]){ctx[1]?if_block?(if_block.p(ctx,dirty),2&dirty&&transition_in(if_block,1)):(if_block=create_if_block$3(ctx),if_block.c(),transition_in(if_block,1),if_block.m(footer,null)):if_block&&(group_outros(),transition_out(if_block,1,1,(()=>{if_block=null})),check_outros())},i(local){current||(transition_in(if_block),current=!0)},o(local){transition_out(if_block),current=!1},d(detaching){detaching&&detach(footer),if_block&&if_block.d()}}}function instance$7($$self,$$props,$$invalidate){let buttons,{step:step}=$$props;return $$self.$$set=$$props=>{"step"in $$props&&$$invalidate(0,step=$$props.step)},$$self.$$.update=()=>{1&$$self.$$.dirty&&$$invalidate(1,buttons=step.options.buttons)},[step,buttons]}class Shepherd_footer extends SvelteComponent{constructor(options){super(),init(this,options,instance$7,create_fragment$7,safe_not_equal,{step:0})}}function create_fragment$6(ctx){let button,span,button_aria_label_value,mounted,dispose;return{c(){button=element("button"),span=element("span"),span.textContent="×",attr(span,"aria-hidden","true"),attr(button,"aria-label",button_aria_label_value=ctx[0].label?ctx[0].label:"Close Tour"),attr(button,"class","shepherd-cancel-icon"),attr(button,"type","button")},m(target,anchor){insert(target,button,anchor),append(button,span),mounted||(dispose=listen(button,"click",ctx[1]),mounted=!0)},p(ctx,[dirty]){1&dirty&&button_aria_label_value!==(button_aria_label_value=ctx[0].label?ctx[0].label:"Close Tour")&&attr(button,"aria-label",button_aria_label_value)},i:noop,o:noop,d(detaching){detaching&&detach(button),mounted=!1,dispose()}}}function instance$6($$self,$$props,$$invalidate){let{cancelIcon:cancelIcon,step:step}=$$props;return $$self.$$set=$$props=>{"cancelIcon"in $$props&&$$invalidate(0,cancelIcon=$$props.cancelIcon),"step"in $$props&&$$invalidate(2,step=$$props.step)},[cancelIcon,e=>{e.preventDefault(),step.cancel()},step]}class Shepherd_cancel_icon extends SvelteComponent{constructor(options){super(),init(this,options,instance$6,create_fragment$6,safe_not_equal,{cancelIcon:0,step:2})}}function create_fragment$5(ctx){let h3;return{c(){h3=element("h3"),attr(h3,"id",ctx[1]),attr(h3,"class","shepherd-title")},m(target,anchor){insert(target,h3,anchor),ctx[3](h3)},p(ctx,[dirty]){2&dirty&&attr(h3,"id",ctx[1])},i:noop,o:noop,d(detaching){detaching&&detach(h3),ctx[3](null)}}}function instance$5($$self,$$props,$$invalidate){let{labelId:labelId,element:element,title:title}=$$props;return afterUpdate((()=>{isFunction(title)&&$$invalidate(2,title=title()),$$invalidate(0,element.innerHTML=title,element)})),$$self.$$set=$$props=>{"labelId"in $$props&&$$invalidate(1,labelId=$$props.labelId),"element"in $$props&&$$invalidate(0,element=$$props.element),"title"in $$props&&$$invalidate(2,title=$$props.title)},[element,labelId,title,function($$value){binding_callbacks[$$value?"unshift":"push"]((()=>{element=$$value,$$invalidate(0,element)}))}]}class Shepherd_title extends SvelteComponent{constructor(options){super(),init(this,options,instance$5,create_fragment$5,safe_not_equal,{labelId:1,element:0,title:2})}}function create_if_block_1$1(ctx){let shepherdtitle,current;return shepherdtitle=new Shepherd_title({props:{labelId:ctx[0],title:ctx[2]}}),{c(){create_component(shepherdtitle.$$.fragment)},m(target,anchor){mount_component(shepherdtitle,target,anchor),current=!0},p(ctx,dirty){const shepherdtitle_changes={};1&dirty&&(shepherdtitle_changes.labelId=ctx[0]),4&dirty&&(shepherdtitle_changes.title=ctx[2]),shepherdtitle.$set(shepherdtitle_changes)},i(local){current||(transition_in(shepherdtitle.$$.fragment,local),current=!0)},o(local){transition_out(shepherdtitle.$$.fragment,local),current=!1},d(detaching){destroy_component(shepherdtitle,detaching)}}}function create_if_block$2(ctx){let shepherdcancelicon,current;return shepherdcancelicon=new Shepherd_cancel_icon({props:{cancelIcon:ctx[3],step:ctx[1]}}),{c(){create_component(shepherdcancelicon.$$.fragment)},m(target,anchor){mount_component(shepherdcancelicon,target,anchor),current=!0},p(ctx,dirty){const shepherdcancelicon_changes={};8&dirty&&(shepherdcancelicon_changes.cancelIcon=ctx[3]),2&dirty&&(shepherdcancelicon_changes.step=ctx[1]),shepherdcancelicon.$set(shepherdcancelicon_changes)},i(local){current||(transition_in(shepherdcancelicon.$$.fragment,local),current=!0)},o(local){transition_out(shepherdcancelicon.$$.fragment,local),current=!1},d(detaching){destroy_component(shepherdcancelicon,detaching)}}}function create_fragment$4(ctx){let header,t,current,if_block0=ctx[2]&&create_if_block_1$1(ctx),if_block1=ctx[3]&&ctx[3].enabled&&create_if_block$2(ctx);return{c(){header=element("header"),if_block0&&if_block0.c(),t=space(),if_block1&&if_block1.c(),attr(header,"class","shepherd-header")},m(target,anchor){insert(target,header,anchor),if_block0&&if_block0.m(header,null),append(header,t),if_block1&&if_block1.m(header,null),current=!0},p(ctx,[dirty]){ctx[2]?if_block0?(if_block0.p(ctx,dirty),4&dirty&&transition_in(if_block0,1)):(if_block0=create_if_block_1$1(ctx),if_block0.c(),transition_in(if_block0,1),if_block0.m(header,t)):if_block0&&(group_outros(),transition_out(if_block0,1,1,(()=>{if_block0=null})),check_outros()),ctx[3]&&ctx[3].enabled?if_block1?(if_block1.p(ctx,dirty),8&dirty&&transition_in(if_block1,1)):(if_block1=create_if_block$2(ctx),if_block1.c(),transition_in(if_block1,1),if_block1.m(header,null)):if_block1&&(group_outros(),transition_out(if_block1,1,1,(()=>{if_block1=null})),check_outros())},i(local){current||(transition_in(if_block0),transition_in(if_block1),current=!0)},o(local){transition_out(if_block0),transition_out(if_block1),current=!1},d(detaching){detaching&&detach(header),if_block0&&if_block0.d(),if_block1&&if_block1.d()}}}function instance$4($$self,$$props,$$invalidate){let title,cancelIcon,{labelId:labelId,step:step}=$$props;return $$self.$$set=$$props=>{"labelId"in $$props&&$$invalidate(0,labelId=$$props.labelId),"step"in $$props&&$$invalidate(1,step=$$props.step)},$$self.$$.update=()=>{2&$$self.$$.dirty&&($$invalidate(2,title=step.options.title),$$invalidate(3,cancelIcon=step.options.cancelIcon))},[labelId,step,title,cancelIcon]}class Shepherd_header extends SvelteComponent{constructor(options){super(),init(this,options,instance$4,create_fragment$4,safe_not_equal,{labelId:0,step:1})}}function create_fragment$3(ctx){let div;return{c(){div=element("div"),attr(div,"class","shepherd-text"),attr(div,"id",ctx[1])},m(target,anchor){insert(target,div,anchor),ctx[3](div)},p(ctx,[dirty]){2&dirty&&attr(div,"id",ctx[1])},i:noop,o:noop,d(detaching){detaching&&detach(div),ctx[3](null)}}}function instance$3($$self,$$props,$$invalidate){let{descriptionId:descriptionId,element:element,step:step}=$$props;return afterUpdate((()=>{let{text:text}=step.options;isFunction(text)&&(text=text.call(step)),isHTMLElement$1(text)?element.appendChild(text):$$invalidate(0,element.innerHTML=text,element)})),$$self.$$set=$$props=>{"descriptionId"in $$props&&$$invalidate(1,descriptionId=$$props.descriptionId),"element"in $$props&&$$invalidate(0,element=$$props.element),"step"in $$props&&$$invalidate(2,step=$$props.step)},[element,descriptionId,step,function($$value){binding_callbacks[$$value?"unshift":"push"]((()=>{element=$$value,$$invalidate(0,element)}))}]}class Shepherd_text extends SvelteComponent{constructor(options){super(),init(this,options,instance$3,create_fragment$3,safe_not_equal,{descriptionId:1,element:0,step:2})}}function create_if_block_2(ctx){let shepherdheader,current;return shepherdheader=new Shepherd_header({props:{labelId:ctx[1],step:ctx[2]}}),{c(){create_component(shepherdheader.$$.fragment)},m(target,anchor){mount_component(shepherdheader,target,anchor),current=!0},p(ctx,dirty){const shepherdheader_changes={};2&dirty&&(shepherdheader_changes.labelId=ctx[1]),4&dirty&&(shepherdheader_changes.step=ctx[2]),shepherdheader.$set(shepherdheader_changes)},i(local){current||(transition_in(shepherdheader.$$.fragment,local),current=!0)},o(local){transition_out(shepherdheader.$$.fragment,local),current=!1},d(detaching){destroy_component(shepherdheader,detaching)}}}function create_if_block_1(ctx){let shepherdtext,current;return shepherdtext=new Shepherd_text({props:{descriptionId:ctx[0],step:ctx[2]}}),{c(){create_component(shepherdtext.$$.fragment)},m(target,anchor){mount_component(shepherdtext,target,anchor),current=!0},p(ctx,dirty){const shepherdtext_changes={};1&dirty&&(shepherdtext_changes.descriptionId=ctx[0]),4&dirty&&(shepherdtext_changes.step=ctx[2]),shepherdtext.$set(shepherdtext_changes)},i(local){current||(transition_in(shepherdtext.$$.fragment,local),current=!0)},o(local){transition_out(shepherdtext.$$.fragment,local),current=!1},d(detaching){destroy_component(shepherdtext,detaching)}}}function create_if_block$1(ctx){let shepherdfooter,current;return shepherdfooter=new Shepherd_footer({props:{step:ctx[2]}}),{c(){create_component(shepherdfooter.$$.fragment)},m(target,anchor){mount_component(shepherdfooter,target,anchor),current=!0},p(ctx,dirty){const shepherdfooter_changes={};4&dirty&&(shepherdfooter_changes.step=ctx[2]),shepherdfooter.$set(shepherdfooter_changes)},i(local){current||(transition_in(shepherdfooter.$$.fragment,local),current=!0)},o(local){transition_out(shepherdfooter.$$.fragment,local),current=!1},d(detaching){destroy_component(shepherdfooter,detaching)}}}function create_fragment$2(ctx){let div,t0,t1,current,show_if_2=!isUndefined(ctx[2].options.title)||ctx[2].options.cancelIcon&&ctx[2].options.cancelIcon.enabled,show_if_1=!isUndefined(ctx[2].options.text),show_if=Array.isArray(ctx[2].options.buttons)&&ctx[2].options.buttons.length,if_block0=show_if_2&&create_if_block_2(ctx),if_block1=show_if_1&&create_if_block_1(ctx),if_block2=show_if&&create_if_block$1(ctx);return{c(){div=element("div"),if_block0&&if_block0.c(),t0=space(),if_block1&&if_block1.c(),t1=space(),if_block2&&if_block2.c(),attr(div,"class","shepherd-content")},m(target,anchor){insert(target,div,anchor),if_block0&&if_block0.m(div,null),append(div,t0),if_block1&&if_block1.m(div,null),append(div,t1),if_block2&&if_block2.m(div,null),current=!0},p(ctx,[dirty]){4&dirty&&(show_if_2=!isUndefined(ctx[2].options.title)||ctx[2].options.cancelIcon&&ctx[2].options.cancelIcon.enabled),show_if_2?if_block0?(if_block0.p(ctx,dirty),4&dirty&&transition_in(if_block0,1)):(if_block0=create_if_block_2(ctx),if_block0.c(),transition_in(if_block0,1),if_block0.m(div,t0)):if_block0&&(group_outros(),transition_out(if_block0,1,1,(()=>{if_block0=null})),check_outros()),4&dirty&&(show_if_1=!isUndefined(ctx[2].options.text)),show_if_1?if_block1?(if_block1.p(ctx,dirty),4&dirty&&transition_in(if_block1,1)):(if_block1=create_if_block_1(ctx),if_block1.c(),transition_in(if_block1,1),if_block1.m(div,t1)):if_block1&&(group_outros(),transition_out(if_block1,1,1,(()=>{if_block1=null})),check_outros()),4&dirty&&(show_if=Array.isArray(ctx[2].options.buttons)&&ctx[2].options.buttons.length),show_if?if_block2?(if_block2.p(ctx,dirty),4&dirty&&transition_in(if_block2,1)):(if_block2=create_if_block$1(ctx),if_block2.c(),transition_in(if_block2,1),if_block2.m(div,null)):if_block2&&(group_outros(),transition_out(if_block2,1,1,(()=>{if_block2=null})),check_outros())},i(local){current||(transition_in(if_block0),transition_in(if_block1),transition_in(if_block2),current=!0)},o(local){transition_out(if_block0),transition_out(if_block1),transition_out(if_block2),current=!1},d(detaching){detaching&&detach(div),if_block0&&if_block0.d(),if_block1&&if_block1.d(),if_block2&&if_block2.d()}}}function instance$2($$self,$$props,$$invalidate){let{descriptionId:descriptionId,labelId:labelId,step:step}=$$props;return $$self.$$set=$$props=>{"descriptionId"in $$props&&$$invalidate(0,descriptionId=$$props.descriptionId),"labelId"in $$props&&$$invalidate(1,labelId=$$props.labelId),"step"in $$props&&$$invalidate(2,step=$$props.step)},[descriptionId,labelId,step]}class Shepherd_content extends SvelteComponent{constructor(options){super(),init(this,options,instance$2,create_fragment$2,safe_not_equal,{descriptionId:0,labelId:1,step:2})}}function create_if_block(ctx){let div;return{c(){div=element("div"),attr(div,"class","shepherd-arrow"),attr(div,"data-popper-arrow","")},m(target,anchor){insert(target,div,anchor)},d(detaching){detaching&&detach(div)}}}function create_fragment$1(ctx){let div,t,shepherdcontent,div_aria_describedby_value,div_aria_labelledby_value,current,mounted,dispose,if_block=ctx[4].options.arrow&&ctx[4].options.attachTo&&ctx[4].options.attachTo.element&&ctx[4].options.attachTo.on&&create_if_block();shepherdcontent=new Shepherd_content({props:{descriptionId:ctx[2],labelId:ctx[3],step:ctx[4]}});let div_levels=[{"aria-describedby":div_aria_describedby_value=isUndefined(ctx[4].options.text)?null:ctx[2]},{"aria-labelledby":div_aria_labelledby_value=ctx[4].options.title?ctx[3]:null},ctx[1],{role:"dialog"},{tabindex:"0"}],div_data={};for(let i=0;i<div_levels.length;i+=1)div_data=assign(div_data,div_levels[i]);return{c(){div=element("div"),if_block&&if_block.c(),t=space(),create_component(shepherdcontent.$$.fragment),set_attributes(div,div_data),toggle_class(div,"shepherd-has-cancel-icon",ctx[5]),toggle_class(div,"shepherd-has-title",ctx[6]),toggle_class(div,"shepherd-element",!0)},m(target,anchor){insert(target,div,anchor),if_block&&if_block.m(div,null),append(div,t),mount_component(shepherdcontent,div,null),ctx[13](div),current=!0,mounted||(dispose=listen(div,"keydown",ctx[7]),mounted=!0)},p(ctx,[dirty]){ctx[4].options.arrow&&ctx[4].options.attachTo&&ctx[4].options.attachTo.element&&ctx[4].options.attachTo.on?if_block||(if_block=create_if_block(),if_block.c(),if_block.m(div,t)):if_block&&(if_block.d(1),if_block=null);const shepherdcontent_changes={};4&dirty&&(shepherdcontent_changes.descriptionId=ctx[2]),8&dirty&&(shepherdcontent_changes.labelId=ctx[3]),16&dirty&&(shepherdcontent_changes.step=ctx[4]),shepherdcontent.$set(shepherdcontent_changes),set_attributes(div,div_data=function(levels,updates){const update={},to_null_out={},accounted_for={$$scope:1};let i=levels.length;for(;i--;){const o=levels[i],n=updates[i];if(n){for(const key in o)key in n||(to_null_out[key]=1);for(const key in n)accounted_for[key]||(update[key]=n[key],accounted_for[key]=1);levels[i]=n}else for(const key in o)accounted_for[key]=1}for(const key in to_null_out)key in update||(update[key]=void 0);return update}(div_levels,[(!current||20&dirty&&div_aria_describedby_value!==(div_aria_describedby_value=isUndefined(ctx[4].options.text)?null:ctx[2]))&&{"aria-describedby":div_aria_describedby_value},(!current||24&dirty&&div_aria_labelledby_value!==(div_aria_labelledby_value=ctx[4].options.title?ctx[3]:null))&&{"aria-labelledby":div_aria_labelledby_value},2&dirty&&ctx[1],{role:"dialog"},{tabindex:"0"}])),toggle_class(div,"shepherd-has-cancel-icon",ctx[5]),toggle_class(div,"shepherd-has-title",ctx[6]),toggle_class(div,"shepherd-element",!0)},i(local){current||(transition_in(shepherdcontent.$$.fragment,local),current=!0)},o(local){transition_out(shepherdcontent.$$.fragment,local),current=!1},d(detaching){detaching&&detach(div),if_block&&if_block.d(),destroy_component(shepherdcontent),ctx[13](null),mounted=!1,dispose()}}}function getClassesArray(classes){return classes.split(" ").filter((className=>!!className.length))}function instance$1($$self,$$props,$$invalidate){let hasCancelIcon,hasTitle,classes,{classPrefix:classPrefix,element:element,descriptionId:descriptionId,firstFocusableElement:firstFocusableElement,focusableElements:focusableElements,labelId:labelId,lastFocusableElement:lastFocusableElement,step:step,dataStepId:dataStepId}=$$props;var fn;fn=()=>{$$invalidate(1,dataStepId={[`data-${classPrefix}shepherd-step-id`]:step.id}),$$invalidate(9,focusableElements=element.querySelectorAll('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex="0"]')),$$invalidate(8,firstFocusableElement=focusableElements[0]),$$invalidate(10,lastFocusableElement=focusableElements[focusableElements.length-1])},get_current_component().$$.on_mount.push(fn),afterUpdate((()=>{classes!==step.options.classes&&(function(classes){if(isString(classes)){const oldClasses=getClassesArray(classes);oldClasses.length&&element.classList.remove(...oldClasses)}}(classes),classes=step.options.classes,function(classes){if(isString(classes)){const newClasses=getClassesArray(classes);newClasses.length&&element.classList.add(...newClasses)}}(classes))}));return $$self.$$set=$$props=>{"classPrefix"in $$props&&$$invalidate(11,classPrefix=$$props.classPrefix),"element"in $$props&&$$invalidate(0,element=$$props.element),"descriptionId"in $$props&&$$invalidate(2,descriptionId=$$props.descriptionId),"firstFocusableElement"in $$props&&$$invalidate(8,firstFocusableElement=$$props.firstFocusableElement),"focusableElements"in $$props&&$$invalidate(9,focusableElements=$$props.focusableElements),"labelId"in $$props&&$$invalidate(3,labelId=$$props.labelId),"lastFocusableElement"in $$props&&$$invalidate(10,lastFocusableElement=$$props.lastFocusableElement),"step"in $$props&&$$invalidate(4,step=$$props.step),"dataStepId"in $$props&&$$invalidate(1,dataStepId=$$props.dataStepId)},$$self.$$.update=()=>{16&$$self.$$.dirty&&($$invalidate(5,hasCancelIcon=step.options&&step.options.cancelIcon&&step.options.cancelIcon.enabled),$$invalidate(6,hasTitle=step.options&&step.options.title))},[element,dataStepId,descriptionId,labelId,step,hasCancelIcon,hasTitle,e=>{const{tour:tour}=step;switch(e.keyCode){case 9:if(0===focusableElements.length){e.preventDefault();break}e.shiftKey?(document.activeElement===firstFocusableElement||document.activeElement.classList.contains("shepherd-element"))&&(e.preventDefault(),lastFocusableElement.focus()):document.activeElement===lastFocusableElement&&(e.preventDefault(),firstFocusableElement.focus());break;case 27:tour.options.exitOnEsc&&(e.stopPropagation(),step.cancel());break;case 37:tour.options.keyboardNavigation&&(e.stopPropagation(),tour.back());break;case 39:tour.options.keyboardNavigation&&(e.stopPropagation(),tour.next())}},firstFocusableElement,focusableElements,lastFocusableElement,classPrefix,()=>element,function($$value){binding_callbacks[$$value?"unshift":"push"]((()=>{element=$$value,$$invalidate(0,element)}))}]}class Shepherd_element extends SvelteComponent{constructor(options){super(),init(this,options,instance$1,create_fragment$1,safe_not_equal,{classPrefix:11,element:0,descriptionId:2,firstFocusableElement:8,focusableElements:9,labelId:3,lastFocusableElement:10,step:4,dataStepId:1,getElement:12})}get getElement(){return this.$$.ctx[12]}}class Step extends Evented{constructor(tour,options={}){return super(tour,options),this.tour=tour,this.classPrefix=this.tour.options?normalizePrefix(this.tour.options.classPrefix):"",this.styles=tour.styles,this._resolvedAttachTo=null,autoBind(this),this._setOptions(options),this}cancel(){this.tour.cancel(),this.trigger("cancel")}complete(){this.tour.complete(),this.trigger("complete")}destroy(){var step;(step=this).cleanup&&step.cleanup(),step.cleanup=null,isHTMLElement$1(this.el)&&(this.el.remove(),this.el=null),this._updateStepTargetOnHide(),this.trigger("destroy")}getTour(){return this.tour}hide(){this.tour.modal.hide(),this.trigger("before-hide"),this.el&&(this.el.hidden=!0),this._updateStepTargetOnHide(),this.trigger("hide")}_resolveAttachToOptions(){return this._resolvedAttachTo=function(step){const options=step.options.attachTo||{},returnOpts=Object.assign({},options);if(isFunction(returnOpts.element)&&(returnOpts.element=returnOpts.element.call(step)),isString(returnOpts.element)){try{returnOpts.element=document.querySelector(returnOpts.element)}catch(e){}returnOpts.element||console.error(`The element for this Shepherd step was not found ${options.element}`)}return returnOpts}(this),this._resolvedAttachTo}_getResolvedAttachToOptions(){return null===this._resolvedAttachTo?this._resolveAttachToOptions():this._resolvedAttachTo}isOpen(){return Boolean(this.el&&!this.el.hidden)}show(){return isFunction(this.options.beforeShowPromise)?Promise.resolve(this.options.beforeShowPromise()).then((()=>this._show())):Promise.resolve(this._show())}updateStepOptions(options){Object.assign(this.options,options),this.shepherdElementComponent&&this.shepherdElementComponent.$set({step:this})}getElement(){return this.el}getTarget(){return this.target}_createTooltipContent(){const descriptionId=`${this.id}-description`,labelId=`${this.id}-label`;return this.shepherdElementComponent=new Shepherd_element({target:this.tour.options.stepsContainer||document.body,props:{classPrefix:this.classPrefix,descriptionId:descriptionId,labelId:labelId,step:this,styles:this.styles}}),this.shepherdElementComponent.getElement()}_scrollTo(scrollToOptions){const{element:element}=this._getResolvedAttachToOptions();isFunction(this.options.scrollToHandler)?this.options.scrollToHandler(element):element instanceof Element&&"function"==typeof element.scrollIntoView&&element.scrollIntoView(scrollToOptions)}_getClassOptions(stepOptions){const defaultStepOptions=this.tour&&this.tour.options&&this.tour.options.defaultStepOptions,stepClasses=stepOptions.classes?stepOptions.classes:"",defaultStepOptionsClasses=defaultStepOptions&&defaultStepOptions.classes?defaultStepOptions.classes:"",allClasses=[...stepClasses.split(" "),...defaultStepOptionsClasses.split(" ")],uniqClasses=new Set(allClasses);return Array.from(uniqClasses).join(" ").trim()}_setOptions(options={}){let tourOptions=this.tour&&this.tour.options&&this.tour.options.defaultStepOptions;tourOptions=cjs({},tourOptions||{}),this.options=Object.assign({arrow:!0},tourOptions,options,function(tourOptions,options){return{floatingUIOptions:cjs(tourOptions.floatingUIOptions||{},options.floatingUIOptions||{})}}(tourOptions,options));const{when:when}=this.options;this.options.classes=this._getClassOptions(options),this.destroy(),this.id=this.options.id||`step-${uuid()}`,when&&Object.keys(when).forEach((event=>{this.on(event,when[event],this)}))}_setupElements(){isUndefined(this.el)||this.destroy(),this.el=this._createTooltipContent(),this.options.advanceOn&&bindAdvance(this),setupTooltip(this)}_show(){this.trigger("before-show"),this._resolveAttachToOptions(),this._setupElements(),this.tour.modal||this.tour._setupModal(),this.tour.modal.setupForStep(this),this._styleTargetElementForStep(this),this.el.hidden=!1,this.options.scrollTo&&setTimeout((()=>{this._scrollTo(this.options.scrollTo)})),this.el.hidden=!1;const content=this.shepherdElementComponent.getElement(),target=this.target||document.body;target.classList.add(`${this.classPrefix}shepherd-enabled`),target.classList.add(`${this.classPrefix}shepherd-target`),content.classList.add("shepherd-enabled"),this.trigger("show")}_styleTargetElementForStep(step){const targetElement=step.target;targetElement&&(step.options.highlightClass&&targetElement.classList.add(step.options.highlightClass),targetElement.classList.remove("shepherd-target-click-disabled"),!1===step.options.canClickTarget&&targetElement.classList.add("shepherd-target-click-disabled"))}_updateStepTargetOnHide(){const target=this.target||document.body;this.options.highlightClass&&target.classList.remove(this.options.highlightClass),target.classList.remove("shepherd-target-click-disabled",`${this.classPrefix}shepherd-enabled`,`${this.classPrefix}shepherd-target`)}}function create_fragment(ctx){let svg,path,svg_class_value,mounted,dispose;return{c(){svg=svg_element("svg"),path=svg_element("path"),attr(path,"d",ctx[2]),attr(svg,"class",svg_class_value=(ctx[1]?"shepherd-modal-is-visible":"")+" shepherd-modal-overlay-container")},m(target,anchor){insert(target,svg,anchor),append(svg,path),ctx[11](svg),mounted||(dispose=listen(svg,"touchmove",ctx[3]),mounted=!0)},p(ctx,[dirty]){4&dirty&&attr(path,"d",ctx[2]),2&dirty&&svg_class_value!==(svg_class_value=(ctx[1]?"shepherd-modal-is-visible":"")+" shepherd-modal-overlay-container")&&attr(svg,"class",svg_class_value)},i:noop,o:noop,d(detaching){detaching&&detach(svg),ctx[11](null),mounted=!1,dispose()}}}function _getScrollParent(element){if(!element)return null;const overflowY=element instanceof HTMLElement&&window.getComputedStyle(element).overflowY;return"hidden"!==overflowY&&"visible"!==overflowY&&element.scrollHeight>=element.clientHeight?element:_getScrollParent(element.parentElement)}function instance($$self,$$props,$$invalidate){let{element:element,openingProperties:openingProperties}=$$props;uuid();let rafId,pathDefinition,modalIsVisible=!1;closeModalOpening();function closeModalOpening(){$$invalidate(4,openingProperties={width:0,height:0,x:0,y:0,r:0})}function hide(){$$invalidate(1,modalIsVisible=!1),_cleanupStepEventListeners()}function positionModal(modalOverlayOpeningPadding=0,modalOverlayOpeningRadius=0,scrollParent,targetElement){if(targetElement){const{y:y,height:height}=function(element,scrollParent){const elementRect=element.getBoundingClientRect();let top=elementRect.y||elementRect.top,bottom=elementRect.bottom||top+elementRect.height;if(scrollParent){const scrollRect=scrollParent.getBoundingClientRect(),scrollTop=scrollRect.y||scrollRect.top,scrollBottom=scrollRect.bottom||scrollTop+scrollRect.height;top=Math.max(top,scrollTop),bottom=Math.min(bottom,scrollBottom)}return{y:top,height:Math.max(bottom-top,0)}}(targetElement,scrollParent),{x:x,width:width,left:left}=targetElement.getBoundingClientRect();$$invalidate(4,openingProperties={width:width+2*modalOverlayOpeningPadding,height:height+2*modalOverlayOpeningPadding,x:(x||left)-modalOverlayOpeningPadding,y:y-modalOverlayOpeningPadding,r:modalOverlayOpeningRadius})}else closeModalOpening()}function show(){$$invalidate(1,modalIsVisible=!0)}const _preventModalBodyTouch=e=>{e.preventDefault()};function _cleanupStepEventListeners(){rafId&&(cancelAnimationFrame(rafId),rafId=void 0),window.removeEventListener("touchmove",_preventModalBodyTouch,{passive:!1})}return $$self.$$set=$$props=>{"element"in $$props&&$$invalidate(0,element=$$props.element),"openingProperties"in $$props&&$$invalidate(4,openingProperties=$$props.openingProperties)},$$self.$$.update=()=>{16&$$self.$$.dirty&&$$invalidate(2,pathDefinition=function({width:width,height:height,x:x=0,y:y=0,r:r=0}){const{innerWidth:w,innerHeight:h}=window,{topLeft:topLeft=0,topRight:topRight=0,bottomRight:bottomRight=0,bottomLeft:bottomLeft=0}="number"==typeof r?{topLeft:r,topRight:r,bottomRight:r,bottomLeft:r}:r;return`M${w},${h}H0V0H${w}V${h}ZM${x+topLeft},${y}a${topLeft},${topLeft},0,0,0-${topLeft},${topLeft}V${height+y-bottomLeft}a${bottomLeft},${bottomLeft},0,0,0,${bottomLeft},${bottomLeft}H${width+x-bottomRight}a${bottomRight},${bottomRight},0,0,0,${bottomRight}-${bottomRight}V${y+topRight}a${topRight},${topRight},0,0,0-${topRight}-${topRight}Z`}(openingProperties))},[element,modalIsVisible,pathDefinition,e=>{e.stopPropagation()},openingProperties,()=>element,closeModalOpening,hide,positionModal,function(step){_cleanupStepEventListeners(),step.tour.options.useModalOverlay?(!function(step){const{modalOverlayOpeningPadding:modalOverlayOpeningPadding,modalOverlayOpeningRadius:modalOverlayOpeningRadius}=step.options,scrollParent=_getScrollParent(step.target),rafLoop=()=>{rafId=void 0,positionModal(modalOverlayOpeningPadding,modalOverlayOpeningRadius,scrollParent,step.target),rafId=requestAnimationFrame(rafLoop)};rafLoop(),window.addEventListener("touchmove",_preventModalBodyTouch,{passive:!1})}(step),show()):hide()},show,function($$value){binding_callbacks[$$value?"unshift":"push"]((()=>{element=$$value,$$invalidate(0,element)}))}]}class Shepherd_modal extends SvelteComponent{constructor(options){super(),init(this,options,instance,create_fragment,safe_not_equal,{element:0,openingProperties:4,getElement:5,closeModalOpening:6,hide:7,positionModal:8,setupForStep:9,show:10})}get getElement(){return this.$$.ctx[5]}get closeModalOpening(){return this.$$.ctx[6]}get hide(){return this.$$.ctx[7]}get positionModal(){return this.$$.ctx[8]}get setupForStep(){return this.$$.ctx[9]}get show(){return this.$$.ctx[10]}}const Shepherd=new Evented;class Tour extends Evented{constructor(options={}){super(options),autoBind(this);this.options=Object.assign({},{exitOnEsc:!0,keyboardNavigation:!0},options),this.classPrefix=normalizePrefix(this.options.classPrefix),this.steps=[],this.addSteps(this.options.steps);return["active","cancel","complete","inactive","show","start"].map((event=>{(e=>{this.on(e,(opts=>{(opts=opts||{}).tour=this,Shepherd.trigger(e,opts)}))})(event)})),this._setTourID(),this}addStep(options,index){let step=options;return step instanceof Step?step.tour=this:step=new Step(this,step),isUndefined(index)?this.steps.push(step):this.steps.splice(index,0,step),step}addSteps(steps){return Array.isArray(steps)&&steps.forEach((step=>{this.addStep(step)})),this}back(){const index=this.steps.indexOf(this.currentStep);this.show(index-1,!1)}async cancel(){if(this.options.confirmCancel){const confirmCancelIsFunction="function"==typeof this.options.confirmCancel,cancelMessage=this.options.confirmCancelMessage||"Are you sure you want to stop the tour?";(confirmCancelIsFunction?await this.options.confirmCancel():window.confirm(cancelMessage))&&this._done("cancel")}else this._done("cancel")}complete(){this._done("complete")}getById(id){return this.steps.find((step=>step.id===id))}getCurrentStep(){return this.currentStep}hide(){const currentStep=this.getCurrentStep();if(currentStep)return currentStep.hide()}isActive(){return Shepherd.activeTour===this}next(){const index=this.steps.indexOf(this.currentStep);index===this.steps.length-1?this.complete():this.show(index+1,!0)}removeStep(name){const current=this.getCurrentStep();this.steps.some(((step,i)=>{if(step.id===name)return step.isOpen()&&step.hide(),step.destroy(),this.steps.splice(i,1),!0})),current&¤t.id===name&&(this.currentStep=void 0,this.steps.length?this.show(0):this.cancel())}show(key=0,forward=!0){const step=isString(key)?this.getById(key):this.steps[key];if(step){this._updateStateBeforeShow();isFunction(step.options.showOn)&&!step.options.showOn()?this._skipStep(step,forward):(this.trigger("show",{step:step,previous:this.currentStep}),this.currentStep=step,step.show())}}start(){this.trigger("start"),this.focusedElBeforeOpen=document.activeElement,this.currentStep=null,this._setupModal(),this._setupActiveTour(),this.next()}_done(event){const index=this.steps.indexOf(this.currentStep);if(Array.isArray(this.steps)&&this.steps.forEach((step=>step.destroy())),function(tour){if(tour){const{steps:steps}=tour;steps.forEach((step=>{step.options&&!1===step.options.canClickTarget&&step.options.attachTo&&step.target instanceof HTMLElement&&step.target.classList.remove("shepherd-target-click-disabled")}))}}(this),this.trigger(event,{index:index}),Shepherd.activeTour=null,this.trigger("inactive",{tour:this}),this.modal&&this.modal.hide(),("cancel"===event||"complete"===event)&&this.modal){const modalContainer=document.querySelector(".shepherd-modal-overlay-container");modalContainer&&modalContainer.remove()}isHTMLElement$1(this.focusedElBeforeOpen)&&this.focusedElBeforeOpen.focus()}_setupActiveTour(){this.trigger("active",{tour:this}),Shepherd.activeTour=this}_setupModal(){this.modal=new Shepherd_modal({target:this.options.modalContainer||document.body,props:{classPrefix:this.classPrefix,styles:this.styles}})}_skipStep(step,forward){const index=this.steps.indexOf(step);if(index===this.steps.length-1)this.complete();else{const nextIndex=forward?index+1:index-1;this.show(nextIndex,forward)}}_updateStateBeforeShow(){this.currentStep&&this.currentStep.hide(),this.isActive()||this._setupActiveTour()}_setTourID(){const tourName=this.options.tourName||"tour";this.id=`${tourName}--${uuid()}`}}const isServerSide="undefined"==typeof window;class NoOp{constructor(){}}isServerSide?Object.assign(Shepherd,{Tour:NoOp,Step:NoOp}):Object.assign(Shepherd,{Tour:Tour,Step:Step});class ShepherdTour{tour=null;constructor(){this.tour=new Shepherd.Tour({useModalOverlay:!0,keyboardNavigation:!1,defaultStepOptions:{classes:"shadow-md bg-purple-dark",scrollTo:!0,canClickTarget:!1,cancelIcon:{enabled:!0},buttons:[{text:"Next",action(){return this.next()}}]}}),["cancel","complete"].forEach((eventName=>this.tour.on(eventName,(()=>{localStorage.setItem("ct-tour-seen","true"),document.querySelectorAll(".list-chapter").length>0&&confirm("reset app?")&&window.dispatchEvent(new CustomEvent("generic:reset"))})))),window.addEventListener("keyup",(e=>{"ArrowRight"===e.key&&this.tour.isActive()&&this.tour.next()})),this.tour.addSteps([{id:"describe-timeline",text:"Clicking anywhere on the timeline brings up the marker.",attachTo:{element:".timeline",on:"bottom"}},{id:"describe-timeline-insert-button",text:'The <i class="bi bi-bookmark-plus"></i> button creates a new chapter at the selected time.',attachTo:{element:function(){return".timeline .marker .btn-group .insert"},on:"bottom"},beforeShowPromise:()=>new Promise((function(resolve){window.timeline.updateMarker(.5*document.querySelector(".timeline").getBoundingClientRect().width,.5),setTimeout((()=>{resolve()}),120)})),when:{hide(){document.querySelector(".timeline").classList.remove("clicked")}}},{id:"show-new-chapter-in-timeline",text:"The new chapter has been added below the timeline as a segment…",attachTo:{element:function(){return".chapters .chapter"},on:"bottom"},beforeShowPromise:()=>new Promise((function(resolve){window.dispatchEvent(new CustomEvent("timeline:add",{detail:{startTime:1800}})),setTimeout((()=>{resolve()}),120)}))},{id:"show-new-chapter-in-list",text:"… and is also rendered in the chapter list on the left.",attachTo:{element:function(){return".list-chapter"},on:"bottom"}},{id:"show-lower-add-button",text:"You can add chapters from the chapter list before and after existing chapters.",attachTo:{element:function(){return[...document.querySelectorAll(".add-chapter-in-list-btn")].pop()},on:"bottom"}},{id:"show-new-chapters-in-timeline",text:"All chapters are shown as segments below the timeline. Clicking a segment selects a chapter.",attachTo:{element:function(){return".chapters"},on:"bottom"},beforeShowPromise:()=>new Promise((function(resolve){window.dispatchEvent(new CustomEvent("timeline:add",{detail:{startTime:0}})),window.dispatchEvent(new CustomEvent("timeline:add",{detail:{startTime:2700}})),setTimeout((()=>{resolve()}),120)}))},{id:"show-edit-box",text:"Once selected, you can edit a chapter's attributes here.",attachTo:{element:function(){return'[x-ref="chapterList"]+div'},on:"left"}},{id:"show-timestampedit-button",text:"Edit a chapter's timestamp by either clicking this button, the chapter's timestamp link in the list or by dragging the chapter segment's left edge.",attachTo:{element:function(){return"#chapterStartTime"},on:"left"}},{id:"show-timestampedit-dialog",text:"Once the chapter's timestamp is updated, the timeline and chapter list are also updated. Expanding a chapters timestamp beyond the current duration will expand the duration.",attachTo:{element:function(){return"#timestampEditDialog"},on:"top"},beforeShowPromise:()=>new Promise((function(resolve){document.querySelector("#timestampEditDialog").addEventListener("shown.bs.offcanvas",(function(){resolve()})),document.querySelector("#chapterStartTime").click()}))},{id:"show-close-button",text:"Close the chapter edit dialog here to return to the main menu.",attachTo:{element:function(){return'[x-ref="chapterList"]+div .nav-item.ms-auto'},on:"left"},beforeShowPromise:()=>(document.querySelector("#chapterStartTime").click(),new Promise((function(resolve){document.querySelector("#timestampEditDialog input").value="00:50:00",document.querySelector("#timestampEditDialog .offcanvas-body button").click(),resolve()})))},{id:"explain-main-menu",text:"Access features that are not related to single chapters from here.",attachTo:{element:'[x-ref="chapterList"]+div .text-center',on:"left"},beforeShowPromise:function(){return new Promise((function(resolve){document.querySelector('[x-ref="chapterList"]+div .nav-item.ms-auto a').click(),setTimeout((()=>{resolve()}),120)}))}},{id:"explain-navi-toggle",text:"The same features can be accessed at any time from the offcanvas menu.",attachTo:{element:"header .flex-column#offcanvasNaviToggle",on:"left"}},{id:"show-open-export-button",text:"Let's focus on the export feature.",attachTo:{element:"#headerExportButton",on:"bottom"}},{id:"show-format-tabs",text:"Select an export format.",attachTo:{element:"#exportDialog .nav",on:"top"},beforeShowPromise:function(){return new Promise((function(resolve){document.querySelector("#exportDialog").addEventListener("shown.bs.offcanvas",(function(){resolve()})),document.querySelector("#navi .offcanvas-export-link").click()}))}},{id:"show-export-options",text:"Toggle export settings if needed. The output will be updated immediately.",attachTo:{element:"#exportDialog .col-4",on:"left"}},{id:"show-export-options",text:"Finally, download the data or copy it to the clipboard.",attachTo:{element:"#exportDialog .col-8 > div",on:"top"}},{id:"done",text:"Thats it. You can run this tour again from the offcanvas navigation at any time. Have fun.",attachTo:{on:"center"},buttons:[{text:"Done",action(){return this.next()}}]}]),/show-tour/.test(window.location.hash)&&(window.location.hash="",this.show(!0))}show(force=!1){localStorage.getItem("ct-tour-seen")&&!force||this.tour.start()}}class Timeline{isInitRun=!0;hoverPosition=0;clickPosition=0;dragNode=!1;dragNodeCoords={};dragHandle=null;timecodeNode=null;currentBlobURL=null;color=null;constructor(duration,chapters=[],node,options={}){this.node=node,this.color=getComputedStyle(document.documentElement).getPropertyValue("--ct-fg-full");const ratio=.01*parseFloat(getComputedStyle(this.node.querySelector(".ratio")).getPropertyValue("--bs-aspect-ratio"));this.id=(1e17*Math.random()).toString(16).split(".").shift(),this.dragHandle=this.node.querySelector(".drag-handle"),this.timecodeNode=this.node.querySelector(".timecode"),this.options={backgroundWidth:2560,backgroundHeight:2560*ratio,secondSnap:1,...options},this.setDuration(duration),this.setChapters(chapters),this.render(),this.isInitRun=!1,this.node.addEventListener("mousemove",this.mouseMoveHandler.bind(this)),this.node.addEventListener("mouseout",(()=>{this.node.style.setProperty("--hover-display","none")})),this.node.addEventListener("click",(e=>{e.preventDefault();const link=e.target.closest("a");if(link)return link.matches(".insert")&&window.dispatchEvent(new CustomEvent("timeline:add",{detail:{startTime:this.clickPosition}})),void this.node.classList.remove("clicked");const chapter=e.target.closest(".chapter");if(chapter){const payload={detail:{index:parseInt(chapter.dataset.index)}};window.dispatchEvent(new CustomEvent("timeline:scrollintoview",payload))}if(e.target.matches(".backdrop, .chapters")){const rect=e.currentTarget.getBoundingClientRect(),x=e.clientX-rect.left,progress=x/rect.width;this.clickPosition=this.duration*progress,this.updateMarker(x,progress)}})),this.node.querySelector(".chapters").addEventListener("mousedown",(e=>{if(e.target.matches(".bar")){e.preventDefault(),this.dragNode=e.target.closest(".chapter");const nodeBounds=this.node.getBoundingClientRect(),dragNodeBounds=this.dragNode.getBoundingClientRect();this.dragNodeCoords={left:dragNodeBounds.left-nodeBounds.left,right:dragNodeBounds.right-nodeBounds.left},this.mouseMoveHandler(e),this.dragNode.classList.add("is-dragged"),this.node.classList.add("dragging")}})),document.body.addEventListener("mouseup",(()=>{this.node.classList.remove("dragging"),this.dragNode&&(this.dragNode.classList.remove("is-dragged"),window.dispatchEvent(new CustomEvent("timeline:move",{detail:{index:this.dragNode.dataset.index,startTime:this.hoverPosition}}))),this.dragNode=!1}))}setDuration(duration){"number"!=typeof duration&&(duration=timestampToSeconds(duration)),this.duration=duration,this.isInitRun||this.render()}render(){this.createBackground(),this.renderChapters()}createBackground(){const canvas=document.createElement("canvas"),context=canvas.getContext("2d");canvas.setAttribute("width",this.options.backgroundWidth),canvas.setAttribute("height",this.options.backgroundHeight),context.fillStyle=this.color,context.strokeStyle=this.color;const draw=(context,x,h,label)=>{let y=(1-.75*h)*this.options.backgroundHeight;x*=this.options.backgroundWidth,context.moveTo(x,y),context.lineTo(x,this.options.backgroundHeight),label&&(context.font=.3*this.options.backgroundHeight*(label.scale||1)+"px sans-serif",context.fillText(label.text,x,y))};context.textAlign="center",context.textBaseline="bottom",context.beginPath();for(let s=0;s<=this.duration;s+=5)s%3600!=0?s%600==0&&this.duration<=7200||s%900==0&&this.duration>7200&&this.duration<=14400||s%1800==0&&this.duration>7200?draw(context,s/this.duration,.5,{text:secondsToTimestamp(s).slice(0,8),scale:.7}):(s%60==0&&this.duration<=7200&&draw(context,s/this.duration,.25),s%300==0&&this.duration>7200&&draw(context,s/this.duration,.25)):draw(context,s/this.duration,.8,0===s?null:{text:secondsToTimestamp(s).slice(0,8)});context.stroke(),context.closePath(),canvas.toBlob((blob=>{const url=URL.createObjectURL(blob);this.node.querySelector(".backdrop .ratio").style.setProperty("background-image",`url(${url})`),this.currentBlobURL&&URL.revokeObjectURL(this.currentBlobURL),this.currentBlobURL=url}))}setChapters(chapters){this.chapters=chapters,this.isInitRun||this.render()}renderChapters(){this.node.querySelectorAll(".chapter").forEach((node=>node.remove()));const parentNodes=this.node.querySelector(".chapters");this.chapters.forEach(((chapter,i)=>{const width=((this.chapters[i+1]?this.chapters[i+1].startTime:this.duration)-chapter.startTime)/this.duration*100+"%",node=document.createElement("div"),left=chapter.startTime/this.duration*100;node.setAttribute("href",`#chapter_${i}`),node.classList.add("chapter","cursor-pointer"),node.dataset.index=i,node.style.setProperty("left",left+"%"),node.style.setProperty("width",width);const bar=document.createElement("div");bar.classList.add("bar"),node.appendChild(bar),parentNodes.appendChild(node)}))}setActive(index){const active=this.node.querySelector(".chapter.active");active&&active.classList.remove("active"),!1!==index&&this.node.querySelectorAll(".chapter")?.[index??0]?.classList.add("active")}mouseMoveHandler(e){const rect=e.currentTarget.getBoundingClientRect(),x=e.clientX-rect.left,y=e.clientY-rect.top,progress=x/rect.width;if(this.hoverPosition=this.duration*progress,this.node.style.setProperty("--x",x+"px"),this.node.style.setProperty("--progress",progress),this.node.style.setProperty("--y",y+"px"),this.node.style.setProperty("--hover-display","block"),this.timecodeNode.dataset.text=secondsToTimestamp(this.hoverPosition).slice(0,8),this.dragNode){this.dragHandle.style.setProperty("left",x+"px");let left=0,width=this.dragNodeCoords.right-this.dragNodeCoords.left-(x-this.dragNodeCoords.left);x>=this.dragNodeCoords.right&&(left=width,width*=-1),this.dragHandle.style.setProperty("--width",width+"px"),this.dragHandle.style.setProperty("--left",left+"px")}}setMarkerAt(timestamp){const progress=timestamp/this.duration,x=this.node.getBoundingClientRect().width*progress;this.clickPosition=timestamp,this.updateMarker(x,progress)}updateMarker(x,progress){this.node.style.setProperty("--click-x",x+"px"),this.node.style.setProperty("--click-progress",progress);const insert=this.node.querySelector(".marker a.insert"),string="insert chapter at "+secondsToTimestamp(this.clickPosition).slice(0,8);insert.setAttribute("title",string),insert.dataset.bsOriginalTitle=string,this.node.classList.add("clicked"),window.dispatchEvent(new CustomEvent("timeline:marker-set",{detail:{time:this.clickPosition}}))}}window.Alpine=module_default,/localhost/.test(new URL(window.location).host)?console.log("skipping service worker for localhost..."):(async()=>{if("serviceWorker"in navigator)try{const registration=await navigator.serviceWorker.register("/chaptertool/sw.js",{scope:"/chaptertool/"});registration.installing?console.log("Service worker installing"):registration.waiting?console.log("Service worker installed"):registration.active&&console.log("Service worker active")}catch(error){console.error(`Registration failed with ${error}`)}})(),window.GAIsDeployed=!1,window.deployGA=()=>{if(window.GAIsDeployed)return;const script=document.createElement("script");[["async",!0],["src",`https://www.googletagmanager.com/gtag/js?id=${window.GACODE}`]].forEach((([key,value])=>script.setAttribute(key,value))),gtag("config",window.GACODE),document.body.insertAdjacentElement("beforeend",script),window.GAIsDeployed=!0},window.dataLayer=window.dataLayer||[],window.gtag=function(){window.dataLayer.push(arguments)},gtag("js",new Date),gtag("set",{page_title:"chaptertool"}),window.addEventListener("DOMContentLoaded",(()=>{document.documentElement.dataset.bsTheme=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",window.timeline=new Timeline(3600,[],document.querySelector(".timeline")),module_default.start(),window.st=new ShepherdTour,fetch("ga-code").then((e=>{if(e.ok)return e.text();console.log('No Analytics Code found. Place a file called "ga-code" in the root of the webserver (/static).')})).then((code=>{window.GACODE=code,localStorage.getItem("ct-analytics-state")||new Offcanvas(document.querySelector("#analyticsDialog"),{keyboard:!1,backdrop:"static"}).show(),"enabled"===localStorage.getItem("ct-analytics-state")&&(window.deployGA(),window.st.show())}))})),window.APP={...{chapters:[],data:new ChaptersJson,editTimestampLabel:"",editTimestampTimestamp:[0,0],editTimestampCallback:null,editTimestampBounds:{min:0,max:"10:10:10"},editTimestampChapter:0,currentChapterIndex:null,fileHandler:!1,editTab:"info",chapterBelowIndex:!1,chapterLock:!0,offcanvasNavi:null,analyticsEnabled:!1,analyticsIsAvailable:!1,versionString:"",usesAMPM:!1,init(){this.usesAMPM=/[A|P]M$/.test(new Intl.DateTimeFormat(void 0,{hour:"numeric"}).format()),fetch("version").then((r=>r.text())).then((version=>this.versionString=`Version ${version}`)),this.offcanvasNavi=new Offcanvas(this.$refs.navi),this.$refs.navi.addEventListener("show.bs.offcanvas",(()=>{gtag("event","ui",{action:"navi",mode:"show"})})),this.tooltip=new Tooltip(document.body,{selector:".has-tooltip",animation:!1,trigger:"hover",html:!0,customClass:"small"}),this.analyticsEnabled="enabled"===localStorage.getItem("ct-analytics-state"),setTimeout((()=>{this.analyticsIsAvailable=!!window.GACODE}),1e3),this.fileHandler=new FileHandler,this.timestampOffcanvas=new Offcanvas(this.$refs.timestampedit),this.$refs.timestampedit.addEventListener("shown.bs.offcanvas",(()=>{this.$refs.timestampedit.querySelector("[type=time]").focus()})),this.$refs.timestampedit.querySelector("form").addEventListener("submit",(e=>{e.preventDefault(),this.editTimestampCallback(Array.from(e.target.querySelectorAll("input")).map((i=>i.value)).join(".")),this.timestampOffcanvas.hide()})),window.addEventListener("timeline:add",(e=>{this.addChapterAtTime(e.detail.startTime,{},"timeline")})),window.addEventListener("timeline:move",(e=>{this.updateChapterStartTime(parseInt(e.detail.index),secondsToTimestamp(e.detail.startTime),!0,"dragdrop")})),window.addEventListener("timeline:scrollintoview",(e=>{this.editChapter(e.detail.index)})),window.addEventListener("dragndrop:video",(e=>{this.data.chapters.length>0||this.hasVideo||this.hasAudio?this.showImportDialog({mode:"video",video:e.detail.video,name:e.detail.name}):this.attachVideo(e.detail.video)})),window.addEventListener("dragndrop:audio",(e=>{this.attachAudio(e.detail.audio)})),window.addEventListener("generic:reset",(()=>{this.reset()})),window.addEventListener("dragndrop:image",(e=>{null!==this.currentChapterIndex&&(this.data.chapters[this.currentChapterIndex].img_type=e.detail.type||"blob",this.data.chapters[this.currentChapterIndex].img=e.detail.image,this.data.chapters[this.currentChapterIndex].img_filename=e.detail.name,this.getImageInfo(this.currentChapterIndex))})),window.addEventListener("timeline:marker-set",(e=>{if(!this.chapterLock)return;const index=this.data.chapterIndexFromTime(e.detail.time);!1!==index?this.editChapter(index):this.closeChapter()})),window.addEventListener("dragndrop:jsonfail",(()=>{this.toast("file could not be processed :/")})),window.addEventListener("dragndrop:json",(e=>{this.data.chapters.length>0||this.hasVideo||this.hasAudio?this.showImportDialog({mode:"data",data:e.detail.data,name:e.detail.name}):this.newProject(e.detail.data)})),this.initExportDialog(),this.initMetaPropertiesDialog(),this.initImportDialog()},toggleGA(state){let hasState=!0,currentState=localStorage.getItem("ct-analytics-state");currentState||(hasState=!1,window.st.show()),state||(state="disabled"===currentState?"enabled":"disabled"),localStorage.setItem("ct-analytics-state",state),this.analyticsEnabled="enabled"===state,"enabled"===state&&window.deployGA(),Offcanvas.getInstance(document.querySelector("#analyticsDialog"))?.hide(),hasState?this.toast(`analytics ${state} - reload page for it to take effect`):this.toast(`analytics ${state}`)},askForNewProject(){this.data.chapters.length>0&&!confirm("discard current project?")?gtag("event","ui",{action:"askForNew",answer:"reject"}):(gtag("event","ui",{action:"askForNew",answer:"confirm"}),this.newProject())},newProject(data){gtag("event","ui",{action:"newproject"}),this.reset(),this.$nextTick((()=>{this.data=data||new ChaptersJson,this.updateTimeline(),this.importModal.hide()}))},scrollChapterIntoView(index=0){this.$refs.chapterList.querySelectorAll(".list-chapter")?.[index]?.scrollIntoView({block:"center"})},editChapter(index){this.$nextTick((()=>{index=index??0,this.scrollChapterIntoView(index),this.currentChapterIndex=index,window.timeline.setActive(index)}))},toast(message,options={}){[...this.$refs.toasts.querySelectorAll(".toast.show")].slice(1).forEach((node=>{node.classList.remove("show"),node.classList.add("hide")})),this.$refs.toasts.insertAdjacentHTML("afterbegin",`\n <div style="--bs-toast-spacing:0.5rem" class="toast small" role="alert" aria-live="assertive" aria-atomic="true">\n <div class="toast-body px-2 py-1">${message}</div>\n </div>\n `),new Toast(this.$refs.toasts.querySelector(".toast"),{delay:1666,...options}).show()},changeDuration(){this.editTimestamp("Edit Duration",this.data.duration,{max:"23:59:59",min:secondsToTimestamp(this.data.chapters.at(-1)?this.data.chapters.at(-1).startTime:0).slice(0,8)},(newTimestamp=>{gtag("event","meta",{action:"durationChange"}),this.data.duration=timestampToSeconds(newTimestamp),this.data.bump(!0),this.updateTimeline()}))},editStartTime(chapterIndex){this.editTimestampChapter=chapterIndex,this.editTimestamp(`Set chapter ${chapterIndex+1} startTime`,this.data.chapters[chapterIndex].startTime,{max:"23:59:59",min:0},(newTimestamp=>this.updateChapterStartTime(this.editTimestampChapter,newTimestamp,!1)))},updateChapterStartTime(index,startTime,forceEdit=!1,origin="dialog"){gtag("event","chapter",{action:"startTimeChange",origin:origin});const result=this.data.updateChapterStartTime(index,startTime);if("timeInUse"===result)return void this.toast("Given start time already in use");this.updateTimeline();const newIndex=this.data.chapterIndexFromStartTime(result);(forceEdit||this.currentChapterIndex&&this.currentChapterIndex===index&&newIndex!==index)&&this.editChapter(newIndex),newIndex!==index?this.toast(`moved chapter ${index+1} to posiiton ${newIndex+1}, and set start time to ${startTime}`):this.toast(`changed chapter #${index+1} start time to ${startTime}`)},chapterImage(index){if(!this.data.chapters[index]||!this.data.chapters[index].img)return!1;try{new URL(this.data.chapters[index].img)}catch(e){return!1}return this.data.chapters[index].img},deleteChapter(index){this.currentChapterIndex=null,gtag("event","chapter",{action:"delete"}),this.$nextTick((()=>{this.data.remove(index),this.updateTimeline(),document.querySelector(".tooltip")?.remove(),this.toast(`deleted chapter #${index+1}`)}))},addChapterAtTime(startTime,options={},origin){gtag("event","chapter",{action:"add",where:"atTime",origin:origin});let chapter={};options.title?.length>0&&(chapter.title=options.title),"image"in options&&(chapter.img=options.image,chapter.img_type="blob",chapter.img_filename=new URL(options.image).pathname+".jpg");this.data.addChapterAtTime(startTime,chapter)?this.$nextTick((()=>{this.updateTimeline(),this.currentChapterIndex=this.data.chapterIndexFromStartTime(startTime),this.editChapter(this.currentChapterIndex),!("image"in options)&&this.hasVideo&&this.fetchVideoSnapshot(startTime),this.toast(`added chapter at ${secondsToTimestamp(startTime)}`)})):this.toast(`a chapter already exists at ${secondsToTimestamp(startTime)}`)},addChapter(index){if(0===index&&this.data.chapters[0]&&0===this.data.chapters[0].startTime)return void this.toast(`a chapter already exists at ${secondsToTimestamp(0)}`);gtag("event","chapter",{action:"add",where:"atIndex"});let startTime=this.data.addChapterAt(index);this.updateTimeline(),this.toast(`added chapter at position ${index+1} (${secondsToTimestamp(startTime)})`),this.$nextTick((()=>{this.editChapter(index===1/0?this.data.chapters.length-1:index),this.hasVideo&&this.fetchVideoSnapshot(startTime)}))},secondsToTimestamp:seconds=>secondsToTimestamp(seconds),updateTimeline(){this.fileHandler.editorHasProject=this.data.chapters.length>0,window.timeline.setDuration(this.data.duration),window.timeline.setChapters(JSON.parse(JSON.stringify(this.data.chapters)))},editTimestamp(label,timestamp,bounds,callback){parseFloat(timestamp)===timestamp&&(timestamp=secondsToTimestamp(timestamp,{milliseconds:!0})),this.editTimestampLabel=label,this.editTimestampBounds=bounds,this.editTimestampTimestamp=timestamp.split("."),this.editTimestampCallback=callback,this.timestampOffcanvas.show()},reset(){this.offcanvasNavi.hide(),this.metaPropertiesDialog.hide(),this.exportOffcanvas.hide(),this.timestampOffcanvas.hide(),this.importModal.hide(),this.data.chapters.forEach((chapter=>{chapter.img&&"blob:"===chapter.img.slice(0,5)&&URL.revokeObjectURL(chapter.img)})),document.querySelectorAll("[src^=blob]").forEach((node=>{console.log("revoking url..."),URL.revokeObjectURL(node.getAttribute("src"))})),this.actualMediaDuration=null,this.chapterLock=!0,this.currentChapterIndex=null,this.data=new ChaptersJson,this.hasVideo=!1,this.hasAudio=!1,this.mediaIsCollapsed=!1,this.fileHandler.editorHasProject=!1,window.timeline.setMarkerAt(0),window.timeline.node.classList.remove("clicked")},closeChapter(){gtag("event","chapter",{action:"close"}),this.$nextTick((()=>{this.currentChapterIndex=null,window.timeline.setActive(!1)}))},expandFirstToStart(){gtag("event","chapter",{action:"startTimeChange",origin:"expand"}),this.data.expandFirstToStart(),this.updateTimeline()},addChapterFromTime(){this.editTimestamp("Add chapter at time",.5*this.data.duration,{max:"23:59:59",min:0},(newTimestamp=>this.addChapterAtTime(timestampToSeconds(newTimestamp),{},"dialog")))},adaptDuration(){gtag("event","meta",{action:"adaptDuration"}),this.data.duration=this.actualMediaDuration,this.data.bump(!0),this.updateTimeline(),this.toast(`duration set to (${secondsToTimestamp(this.actualMediaDuration)})`),this.actualMediaDuration=null},toggleChapterLock(){this.chapterLock=!this.chapterLock,gtag("event","ui",{action:"toggleChapterLock",mode:this.chapterLock?"locked":"unlocked"})},showTourAgain(){if(0===this.data.chapters.length||this.data.chapters.length>0&&confirm("abandon current project?")){const url=new URL(window.location);url.hash="show-tour",window.location=url.toString(),location.reload()}}},...MediaFeatures,...ExportFeatures,...MetaProperties,...ImportDialog}})); \ No newline at end of file diff --git a/static/version b/static/version index 5d4294b..2411653 100644 --- a/static/version +++ b/static/version @@ -1 +1 @@ -0.5.1 \ No newline at end of file +0.5.2 \ No newline at end of file