).';\n\n\t\t// Cache references to key DOM elements\n\t\tdom.wrapper = revealElement;\n\t\tdom.slides = revealElement.querySelector( '.slides' );\n\n\t\tif( !dom.slides ) throw 'Unable to find slides container (
).';\n\n\t\t// Compose our config object in order of increasing precedence:\n\t\t// 1. Default reveal.js options\n\t\t// 2. Options provided via Reveal.configure() prior to\n\t\t// initialization\n\t\t// 3. Options passed to the Reveal constructor\n\t\t// 4. Options passed to Reveal.initialize\n\t\t// 5. Query params\n\t\tconfig = { ...defaultConfig, ...config, ...options, ...initOptions, ...Util.getQueryHash() };\n\n\t\t// Legacy support for the ?print-pdf query\n\t\tif( /print-pdf/gi.test( window.location.search ) ) {\n\t\t\tconfig.view = 'print';\n\t\t}\n\n\t\tsetViewport();\n\n\t\t// Force a layout when the whole page, incl fonts, has loaded\n\t\twindow.addEventListener( 'load', layout, false );\n\n\t\t// Register plugins and load dependencies, then move on to #start()\n\t\tplugins.load( config.plugins, config.dependencies ).then( start );\n\n\t\treturn new Promise( resolve => Reveal.on( 'ready', resolve ) );\n\n\t}\n\n\t/**\n\t * Encase the presentation in a reveal.js viewport. The\n\t * extent of the viewport differs based on configuration.\n\t */\n\tfunction setViewport() {\n\n\t\t// Embedded decks use the reveal element as their viewport\n\t\tif( config.embedded === true ) {\n\t\t\tdom.viewport = Util.closest( revealElement, '.reveal-viewport' ) || revealElement;\n\t\t}\n\t\t// Full-page decks use the body as their viewport\n\t\telse {\n\t\t\tdom.viewport = document.body;\n\t\t\tdocument.documentElement.classList.add( 'reveal-full-page' );\n\t\t}\n\n\t\tdom.viewport.classList.add( 'reveal-viewport' );\n\n\t}\n\n\t/**\n\t * Starts up reveal.js by binding input events and navigating\n\t * to the current URL deeplink if there is one.\n\t */\n\tfunction start() {\n\n\t\tready = true;\n\n\t\t// Remove slides hidden with data-visibility\n\t\tremoveHiddenSlides();\n\n\t\t// Make sure we've got all the DOM elements we need\n\t\tsetupDOM();\n\n\t\t// Listen to messages posted to this window\n\t\tsetupPostMessage();\n\n\t\t// Prevent the slides from being scrolled out of view\n\t\tsetupScrollPrevention();\n\n\t\t// Adds bindings for fullscreen mode\n\t\tsetupFullscreen();\n\n\t\t// Resets all vertical slides so that only the first is visible\n\t\tresetVerticalSlides();\n\n\t\t// Updates the presentation to match the current configuration values\n\t\tconfigure();\n\n\t\t// Create slide backgrounds\n\t\tbackgrounds.update( true );\n\n\t\t// Activate the print/scroll view if configured\n\t\tactivateInitialView();\n\n\t\t// Read the initial hash\n\t\tlocation.readURL();\n\n\t\t// Notify listeners that the presentation is ready but use a 1ms\n\t\t// timeout to ensure it's not fired synchronously after #initialize()\n\t\tsetTimeout( () => {\n\t\t\t// Enable transitions now that we're loaded\n\t\t\tdom.slides.classList.remove( 'no-transition' );\n\n\t\t\tdom.wrapper.classList.add( 'ready' );\n\n\t\t\tdispatchEvent({\n\t\t\t\ttype: 'ready',\n\t\t\t\tdata: {\n\t\t\t\t\tindexh,\n\t\t\t\t\tindexv,\n\t\t\t\t\tcurrentSlide\n\t\t\t\t}\n\t\t\t});\n\t\t}, 1 );\n\n\t}\n\n\t/**\n\t * Activates the correct reveal.js view based on our config.\n\t * This is only invoked once during initialization.\n\t */\n\tfunction activateInitialView() {\n\n\t\tconst activatePrintView = config.view === 'print';\n\t\tconst activateScrollView = config.view === 'scroll' || config.view === 'reader';\n\n\t\tif( activatePrintView || activateScrollView ) {\n\n\t\t\tif( activatePrintView ) {\n\t\t\t\tremoveEventListeners();\n\t\t\t}\n\t\t\telse {\n\t\t\t\ttouch.unbind();\n\t\t\t}\n\n\t\t\t// Avoid content flickering during layout\n\t\t\tdom.viewport.classList.add( 'loading-scroll-mode' );\n\n\t\t\tif( activatePrintView ) {\n\t\t\t\t// The document needs to have loaded for the PDF layout\n\t\t\t\t// measurements to be accurate\n\t\t\t\tif( document.readyState === 'complete' ) {\n\t\t\t\t\tprintView.activate();\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\twindow.addEventListener( 'load', () => printView.activate() );\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tscrollView.activate();\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/**\n\t * Removes all slides with data-visibility=\"hidden\". This\n\t * is done right before the rest of the presentation is\n\t * initialized.\n\t *\n\t * If you want to show all hidden slides, initialize\n\t * reveal.js with showHiddenSlides set to true.\n\t */\n\tfunction removeHiddenSlides() {\n\n\t\tif( !config.showHiddenSlides ) {\n\t\t\tUtil.queryAll( dom.wrapper, 'section[data-visibility=\"hidden\"]' ).forEach( slide => {\n\t\t\t\tconst parent = slide.parentNode;\n\n\t\t\t\t// If this slide is part of a stack and that stack will be\n\t\t\t\t// empty after removing the hidden slide, remove the entire\n\t\t\t\t// stack\n\t\t\t\tif( parent.childElementCount === 1 && /section/i.test( parent.nodeName ) ) {\n\t\t\t\t\tparent.remove();\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tslide.remove();\n\t\t\t\t}\n\n\t\t\t} );\n\t\t}\n\n\t}\n\n\t/**\n\t * Finds and stores references to DOM elements which are\n\t * required by the presentation. If a required element is\n\t * not found, it is created.\n\t */\n\tfunction setupDOM() {\n\n\t\t// Prevent transitions while we're loading\n\t\tdom.slides.classList.add( 'no-transition' );\n\n\t\tif( Device.isMobile ) {\n\t\t\tdom.wrapper.classList.add( 'no-hover' );\n\t\t}\n\t\telse {\n\t\t\tdom.wrapper.classList.remove( 'no-hover' );\n\t\t}\n\n\t\tbackgrounds.render();\n\t\tslideNumber.render();\n\t\tjumpToSlide.render();\n\t\tcontrols.render();\n\t\tprogress.render();\n\t\tnotes.render();\n\n\t\t// Overlay graphic which is displayed during the paused mode\n\t\tdom.pauseOverlay = Util.createSingletonNode( dom.wrapper, 'div', 'pause-overlay', config.controls ? '
' : null );\n\n\t\tdom.statusElement = createStatusElement();\n\n\t\tdom.wrapper.setAttribute( 'role', 'application' );\n\t}\n\n\t/**\n\t * Creates a hidden div with role aria-live to announce the\n\t * current slide content. Hide the div off-screen to make it\n\t * available only to Assistive Technologies.\n\t *\n\t * @return {HTMLElement}\n\t */\n\tfunction createStatusElement() {\n\n\t\tlet statusElement = dom.wrapper.querySelector( '.aria-status' );\n\t\tif( !statusElement ) {\n\t\t\tstatusElement = document.createElement( 'div' );\n\t\t\tstatusElement.style.position = 'absolute';\n\t\t\tstatusElement.style.height = '1px';\n\t\t\tstatusElement.style.width = '1px';\n\t\t\tstatusElement.style.overflow = 'hidden';\n\t\t\tstatusElement.style.clip = 'rect( 1px, 1px, 1px, 1px )';\n\t\t\tstatusElement.classList.add( 'aria-status' );\n\t\t\tstatusElement.setAttribute( 'aria-live', 'polite' );\n\t\t\tstatusElement.setAttribute( 'aria-atomic','true' );\n\t\t\tdom.wrapper.appendChild( statusElement );\n\t\t}\n\t\treturn statusElement;\n\n\t}\n\n\t/**\n\t * Announces the given text to screen readers.\n\t */\n\tfunction announceStatus( value ) {\n\n\t\tdom.statusElement.textContent = value;\n\n\t}\n\n\t/**\n\t * Converts the given HTML element into a string of text\n\t * that can be announced to a screen reader. Hidden\n\t * elements are excluded.\n\t */\n\tfunction getStatusText( node ) {\n\n\t\tlet text = '';\n\n\t\t// Text node\n\t\tif( node.nodeType === 3 ) {\n\t\t\ttext += node.textContent;\n\t\t}\n\t\t// Element node\n\t\telse if( node.nodeType === 1 ) {\n\n\t\t\tlet isAriaHidden = node.getAttribute( 'aria-hidden' );\n\t\t\tlet isDisplayHidden = window.getComputedStyle( node )['display'] === 'none';\n\t\t\tif( isAriaHidden !== 'true' && !isDisplayHidden ) {\n\n\t\t\t\tArray.from( node.childNodes ).forEach( child => {\n\t\t\t\t\ttext += getStatusText( child );\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t}\n\n\t\ttext = text.trim();\n\n\t\treturn text === '' ? '' : text + ' ';\n\n\t}\n\n\t/**\n\t * This is an unfortunate necessity. Some actions – such as\n\t * an input field being focused in an iframe or using the\n\t * keyboard to expand text selection beyond the bounds of\n\t * a slide – can trigger our content to be pushed out of view.\n\t * This scrolling can not be prevented by hiding overflow in\n\t * CSS (we already do) so we have to resort to repeatedly\n\t * checking if the slides have been offset :(\n\t */\n\tfunction setupScrollPrevention() {\n\n\t\tsetInterval( () => {\n\t\t\tif( !scrollView.isActive() && dom.wrapper.scrollTop !== 0 || dom.wrapper.scrollLeft !== 0 ) {\n\t\t\t\tdom.wrapper.scrollTop = 0;\n\t\t\t\tdom.wrapper.scrollLeft = 0;\n\t\t\t}\n\t\t}, 1000 );\n\n\t}\n\n\t/**\n\t * After entering fullscreen we need to force a layout to\n\t * get our presentations to scale correctly. This behavior\n\t * is inconsistent across browsers but a force layout seems\n\t * to normalize it.\n\t */\n\tfunction setupFullscreen() {\n\n\t\tdocument.addEventListener( 'fullscreenchange', onFullscreenChange );\n\t\tdocument.addEventListener( 'webkitfullscreenchange', onFullscreenChange );\n\n\t}\n\n\t/**\n\t * Registers a listener to postMessage events, this makes it\n\t * possible to call all reveal.js API methods from another\n\t * window. For example:\n\t *\n\t * revealWindow.postMessage( JSON.stringify({\n\t * method: 'slide',\n\t * args: [ 2 ]\n\t * }), '*' );\n\t */\n\tfunction setupPostMessage() {\n\n\t\tif( config.postMessage ) {\n\t\t\twindow.addEventListener( 'message', onPostMessage, false );\n\t\t}\n\n\t}\n\n\t/**\n\t * Applies the configuration settings from the config\n\t * object. May be called multiple times.\n\t *\n\t * @param {object} options\n\t */\n\tfunction configure( options ) {\n\n\t\tconst oldConfig = { ...config }\n\n\t\t// New config options may be passed when this method\n\t\t// is invoked through the API after initialization\n\t\tif( typeof options === 'object' ) Util.extend( config, options );\n\n\t\t// Abort if reveal.js hasn't finished loading, config\n\t\t// changes will be applied automatically once ready\n\t\tif( Reveal.isReady() === false ) return;\n\n\t\tconst numberOfSlides = dom.wrapper.querySelectorAll( SLIDES_SELECTOR ).length;\n\n\t\t// The transition is added as a class on the .reveal element\n\t\tdom.wrapper.classList.remove( oldConfig.transition );\n\t\tdom.wrapper.classList.add( config.transition );\n\n\t\tdom.wrapper.setAttribute( 'data-transition-speed', config.transitionSpeed );\n\t\tdom.wrapper.setAttribute( 'data-background-transition', config.backgroundTransition );\n\n\t\t// Expose our configured slide dimensions as custom props\n\t\tdom.viewport.style.setProperty( '--slide-width', typeof config.width === 'string' ? config.width : config.width + 'px' );\n\t\tdom.viewport.style.setProperty( '--slide-height', typeof config.height === 'string' ? config.height : config.height + 'px' );\n\n\t\tif( config.shuffle ) {\n\t\t\tshuffle();\n\t\t}\n\n\t\tUtil.toggleClass( dom.wrapper, 'embedded', config.embedded );\n\t\tUtil.toggleClass( dom.wrapper, 'rtl', config.rtl );\n\t\tUtil.toggleClass( dom.wrapper, 'center', config.center );\n\n\t\t// Exit the paused mode if it was configured off\n\t\tif( config.pause === false ) {\n\t\t\tresume();\n\t\t}\n\n\t\t// Iframe link previews\n\t\tif( config.previewLinks ) {\n\t\t\tenablePreviewLinks();\n\t\t\tdisablePreviewLinks( '[data-preview-link=false]' );\n\t\t}\n\t\telse {\n\t\t\tdisablePreviewLinks();\n\t\t\tenablePreviewLinks( '[data-preview-link]:not([data-preview-link=false])' );\n\t\t}\n\n\t\t// Reset all changes made by auto-animations\n\t\tautoAnimate.reset();\n\n\t\t// Remove existing auto-slide controls\n\t\tif( autoSlidePlayer ) {\n\t\t\tautoSlidePlayer.destroy();\n\t\t\tautoSlidePlayer = null;\n\t\t}\n\n\t\t// Generate auto-slide controls if needed\n\t\tif( numberOfSlides > 1 && config.autoSlide && config.autoSlideStoppable ) {\n\t\t\tautoSlidePlayer = new Playback( dom.wrapper, () => {\n\t\t\t\treturn Math.min( Math.max( ( Date.now() - autoSlideStartTime ) / autoSlide, 0 ), 1 );\n\t\t\t} );\n\n\t\t\tautoSlidePlayer.on( 'click', onAutoSlidePlayerClick );\n\t\t\tautoSlidePaused = false;\n\t\t}\n\n\t\t// Add the navigation mode to the DOM so we can adjust styling\n\t\tif( config.navigationMode !== 'default' ) {\n\t\t\tdom.wrapper.setAttribute( 'data-navigation-mode', config.navigationMode );\n\t\t}\n\t\telse {\n\t\t\tdom.wrapper.removeAttribute( 'data-navigation-mode' );\n\t\t}\n\n\t\tnotes.configure( config, oldConfig );\n\t\tfocus.configure( config, oldConfig );\n\t\tpointer.configure( config, oldConfig );\n\t\tcontrols.configure( config, oldConfig );\n\t\tprogress.configure( config, oldConfig );\n\t\tkeyboard.configure( config, oldConfig );\n\t\tfragments.configure( config, oldConfig );\n\t\tslideNumber.configure( config, oldConfig );\n\n\t\tsync();\n\n\t}\n\n\t/**\n\t * Binds all event listeners.\n\t */\n\tfunction addEventListeners() {\n\n\t\teventsAreBound = true;\n\n\t\twindow.addEventListener( 'resize', onWindowResize, false );\n\n\t\tif( config.touch ) touch.bind();\n\t\tif( config.keyboard ) keyboard.bind();\n\t\tif( config.progress ) progress.bind();\n\t\tif( config.respondToHashChanges ) location.bind();\n\t\tcontrols.bind();\n\t\tfocus.bind();\n\n\t\tdom.slides.addEventListener( 'click', onSlidesClicked, false );\n\t\tdom.slides.addEventListener( 'transitionend', onTransitionEnd, false );\n\t\tdom.pauseOverlay.addEventListener( 'click', resume, false );\n\n\t\tif( config.focusBodyOnPageVisibilityChange ) {\n\t\t\tdocument.addEventListener( 'visibilitychange', onPageVisibilityChange, false );\n\t\t}\n\n\t}\n\n\t/**\n\t * Unbinds all event listeners.\n\t */\n\tfunction removeEventListeners() {\n\n\t\teventsAreBound = false;\n\n\t\ttouch.unbind();\n\t\tfocus.unbind();\n\t\tkeyboard.unbind();\n\t\tcontrols.unbind();\n\t\tprogress.unbind();\n\t\tlocation.unbind();\n\n\t\twindow.removeEventListener( 'resize', onWindowResize, false );\n\n\t\tdom.slides.removeEventListener( 'click', onSlidesClicked, false );\n\t\tdom.slides.removeEventListener( 'transitionend', onTransitionEnd, false );\n\t\tdom.pauseOverlay.removeEventListener( 'click', resume, false );\n\n\t}\n\n\t/**\n\t * Uninitializes reveal.js by undoing changes made to the\n\t * DOM and removing all event listeners.\n\t */\n\tfunction destroy() {\n\n\t\tremoveEventListeners();\n\t\tcancelAutoSlide();\n\t\tdisablePreviewLinks();\n\n\t\t// Destroy controllers\n\t\tnotes.destroy();\n\t\tfocus.destroy();\n\t\tplugins.destroy();\n\t\tpointer.destroy();\n\t\tcontrols.destroy();\n\t\tprogress.destroy();\n\t\tbackgrounds.destroy();\n\t\tslideNumber.destroy();\n\t\tjumpToSlide.destroy();\n\n\t\t// Remove event listeners\n\t\tdocument.removeEventListener( 'fullscreenchange', onFullscreenChange );\n\t\tdocument.removeEventListener( 'webkitfullscreenchange', onFullscreenChange );\n\t\tdocument.removeEventListener( 'visibilitychange', onPageVisibilityChange, false );\n\t\twindow.removeEventListener( 'message', onPostMessage, false );\n\t\twindow.removeEventListener( 'load', layout, false );\n\n\t\t// Undo DOM changes\n\t\tif( dom.pauseOverlay ) dom.pauseOverlay.remove();\n\t\tif( dom.statusElement ) dom.statusElement.remove();\n\n\t\tdocument.documentElement.classList.remove( 'reveal-full-page' );\n\n\t\tdom.wrapper.classList.remove( 'ready', 'center', 'has-horizontal-slides', 'has-vertical-slides' );\n\t\tdom.wrapper.removeAttribute( 'data-transition-speed' );\n\t\tdom.wrapper.removeAttribute( 'data-background-transition' );\n\n\t\tdom.viewport.classList.remove( 'reveal-viewport' );\n\t\tdom.viewport.style.removeProperty( '--slide-width' );\n\t\tdom.viewport.style.removeProperty( '--slide-height' );\n\n\t\tdom.slides.style.removeProperty( 'width' );\n\t\tdom.slides.style.removeProperty( 'height' );\n\t\tdom.slides.style.removeProperty( 'zoom' );\n\t\tdom.slides.style.removeProperty( 'left' );\n\t\tdom.slides.style.removeProperty( 'top' );\n\t\tdom.slides.style.removeProperty( 'bottom' );\n\t\tdom.slides.style.removeProperty( 'right' );\n\t\tdom.slides.style.removeProperty( 'transform' );\n\n\t\tArray.from( dom.wrapper.querySelectorAll( SLIDES_SELECTOR ) ).forEach( slide => {\n\t\t\tslide.style.removeProperty( 'display' );\n\t\t\tslide.style.removeProperty( 'top' );\n\t\t\tslide.removeAttribute( 'hidden' );\n\t\t\tslide.removeAttribute( 'aria-hidden' );\n\t\t} );\n\n\t}\n\n\t/**\n\t * Adds a listener to one of our custom reveal.js events,\n\t * like slidechanged.\n\t */\n\tfunction on( type, listener, useCapture ) {\n\n\t\trevealElement.addEventListener( type, listener, useCapture );\n\n\t}\n\n\t/**\n\t * Unsubscribes from a reveal.js event.\n\t */\n\tfunction off( type, listener, useCapture ) {\n\n\t\trevealElement.removeEventListener( type, listener, useCapture );\n\n\t}\n\n\t/**\n\t * Applies CSS transforms to the slides container. The container\n\t * is transformed from two separate sources: layout and the overview\n\t * mode.\n\t *\n\t * @param {object} transforms\n\t */\n\tfunction transformSlides( transforms ) {\n\n\t\t// Pick up new transforms from arguments\n\t\tif( typeof transforms.layout === 'string' ) slidesTransform.layout = transforms.layout;\n\t\tif( typeof transforms.overview === 'string' ) slidesTransform.overview = transforms.overview;\n\n\t\t// Apply the transforms to the slides container\n\t\tif( slidesTransform.layout ) {\n\t\t\tUtil.transformElement( dom.slides, slidesTransform.layout + ' ' + slidesTransform.overview );\n\t\t}\n\t\telse {\n\t\t\tUtil.transformElement( dom.slides, slidesTransform.overview );\n\t\t}\n\n\t}\n\n\t/**\n\t * Dispatches an event of the specified type from the\n\t * reveal DOM element.\n\t */\n\tfunction dispatchEvent({ target=dom.wrapper, type, data, bubbles=true }) {\n\n\t\tlet event = document.createEvent( 'HTMLEvents', 1, 2 );\n\t\tevent.initEvent( type, bubbles, true );\n\t\tUtil.extend( event, data );\n\t\ttarget.dispatchEvent( event );\n\n\t\tif( target === dom.wrapper ) {\n\t\t\t// If we're in an iframe, post each reveal.js event to the\n\t\t\t// parent window. Used by the notes plugin\n\t\t\tdispatchPostMessage( type );\n\t\t}\n\n\t\treturn event;\n\n\t}\n\n\t/**\n\t * Dispatches a slidechanged event.\n\t *\n\t * @param {string} origin Used to identify multiplex clients\n\t */\n\tfunction dispatchSlideChanged( origin ) {\n\n\t\tdispatchEvent({\n\t\t\ttype: 'slidechanged',\n\t\t\tdata: {\n\t\t\t\tindexh,\n\t\t\t\tindexv,\n\t\t\t\tpreviousSlide,\n\t\t\t\tcurrentSlide,\n\t\t\t\torigin\n\t\t\t}\n\t\t});\n\n\t}\n\n\t/**\n\t * Dispatched a postMessage of the given type from our window.\n\t */\n\tfunction dispatchPostMessage( type, data ) {\n\n\t\tif( config.postMessageEvents && window.parent !== window.self ) {\n\t\t\tlet message = {\n\t\t\t\tnamespace: 'reveal',\n\t\t\t\teventName: type,\n\t\t\t\tstate: getState()\n\t\t\t};\n\n\t\t\tUtil.extend( message, data );\n\n\t\t\twindow.parent.postMessage( JSON.stringify( message ), '*' );\n\t\t}\n\n\t}\n\n\t/**\n\t * Bind preview frame links.\n\t *\n\t * @param {string} [selector=a] - selector for anchors\n\t */\n\tfunction enablePreviewLinks( selector = 'a' ) {\n\n\t\tArray.from( dom.wrapper.querySelectorAll( selector ) ).forEach( element => {\n\t\t\tif( /^(http|www)/gi.test( element.getAttribute( 'href' ) ) ) {\n\t\t\t\telement.addEventListener( 'click', onPreviewLinkClicked, false );\n\t\t\t}\n\t\t} );\n\n\t}\n\n\t/**\n\t * Unbind preview frame links.\n\t */\n\tfunction disablePreviewLinks( selector = 'a' ) {\n\n\t\tArray.from( dom.wrapper.querySelectorAll( selector ) ).forEach( element => {\n\t\t\tif( /^(http|www)/gi.test( element.getAttribute( 'href' ) ) ) {\n\t\t\t\telement.removeEventListener( 'click', onPreviewLinkClicked, false );\n\t\t\t}\n\t\t} );\n\n\t}\n\n\t/**\n\t * Opens a preview window for the target URL.\n\t *\n\t * @param {string} url - url for preview iframe src\n\t */\n\tfunction showPreview( url ) {\n\n\t\tcloseOverlay();\n\n\t\tdom.overlay = document.createElement( 'div' );\n\t\tdom.overlay.classList.add( 'overlay' );\n\t\tdom.overlay.classList.add( 'overlay-preview' );\n\t\tdom.wrapper.appendChild( dom.overlay );\n\n\t\tdom.overlay.innerHTML =\n\t\t\t`
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tUnable to load iframe. This is likely due to the site's policy (x-frame-options).\n\t\t\t\t\n\t\t\t
`;\n\n\t\tdom.overlay.querySelector( 'iframe' ).addEventListener( 'load', event => {\n\t\t\tdom.overlay.classList.add( 'loaded' );\n\t\t}, false );\n\n\t\tdom.overlay.querySelector( '.close' ).addEventListener( 'click', event => {\n\t\t\tcloseOverlay();\n\t\t\tevent.preventDefault();\n\t\t}, false );\n\n\t\tdom.overlay.querySelector( '.external' ).addEventListener( 'click', event => {\n\t\t\tcloseOverlay();\n\t\t}, false );\n\n\t}\n\n\t/**\n\t * Open or close help overlay window.\n\t *\n\t * @param {Boolean} [override] Flag which overrides the\n\t * toggle logic and forcibly sets the desired state. True means\n\t * help is open, false means it's closed.\n\t */\n\tfunction toggleHelp( override ){\n\n\t\tif( typeof override === 'boolean' ) {\n\t\t\toverride ? showHelp() : closeOverlay();\n\t\t}\n\t\telse {\n\t\t\tif( dom.overlay ) {\n\t\t\t\tcloseOverlay();\n\t\t\t}\n\t\t\telse {\n\t\t\t\tshowHelp();\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Opens an overlay window with help material.\n\t */\n\tfunction showHelp() {\n\n\t\tif( config.help ) {\n\n\t\t\tcloseOverlay();\n\n\t\t\tdom.overlay = document.createElement( 'div' );\n\t\t\tdom.overlay.classList.add( 'overlay' );\n\t\t\tdom.overlay.classList.add( 'overlay-help' );\n\t\t\tdom.wrapper.appendChild( dom.overlay );\n\n\t\t\tlet html = '
Keyboard Shortcuts
';\n\n\t\t\tlet shortcuts = keyboard.getShortcuts(),\n\t\t\t\tbindings = keyboard.getBindings();\n\n\t\t\thtml += '
KEY | ACTION | ';\n\t\t\tfor( let key in shortcuts ) {\n\t\t\t\thtml += `${key} | ${shortcuts[ key ]} |
`;\n\t\t\t}\n\n\t\t\t// Add custom key bindings that have associated descriptions\n\t\t\tfor( let binding in bindings ) {\n\t\t\t\tif( bindings[binding].key && bindings[binding].description ) {\n\t\t\t\t\thtml += `${bindings[binding].key} | ${bindings[binding].description} |
`;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\thtml += '
';\n\n\t\t\tdom.overlay.innerHTML = `\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
${html}
\n\t\t\t\t
\n\t\t\t`;\n\n\t\t\tdom.overlay.querySelector( '.close' ).addEventListener( 'click', event => {\n\t\t\t\tcloseOverlay();\n\t\t\t\tevent.preventDefault();\n\t\t\t}, false );\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Closes any currently open overlay.\n\t */\n\tfunction closeOverlay() {\n\n\t\tif( dom.overlay ) {\n\t\t\tdom.overlay.parentNode.removeChild( dom.overlay );\n\t\t\tdom.overlay = null;\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n\t/**\n\t * Applies JavaScript-controlled layout rules to the\n\t * presentation.\n\t */\n\tfunction layout() {\n\n\t\tif( dom.wrapper && !printView.isActive() ) {\n\n\t\t\tconst viewportWidth = dom.viewport.offsetWidth;\n\t\t\tconst viewportHeight = dom.viewport.offsetHeight;\n\n\t\t\tif( !config.disableLayout ) {\n\n\t\t\t\t// On some mobile devices '100vh' is taller than the visible\n\t\t\t\t// viewport which leads to part of the presentation being\n\t\t\t\t// cut off. To work around this we define our own '--vh' custom\n\t\t\t\t// property where 100x adds up to the correct height.\n\t\t\t\t//\n\t\t\t\t// https://css-tricks.com/the-trick-to-viewport-units-on-mobile/\n\t\t\t\tif( Device.isMobile && !config.embedded ) {\n\t\t\t\t\tdocument.documentElement.style.setProperty( '--vh', ( window.innerHeight * 0.01 ) + 'px' );\n\t\t\t\t}\n\n\t\t\t\tconst size = scrollView.isActive() ?\n\t\t\t\t\t\t\t getComputedSlideSize( viewportWidth, viewportHeight ) :\n\t\t\t\t\t\t\t getComputedSlideSize();\n\n\t\t\t\tconst oldScale = scale;\n\n\t\t\t\t// Layout the contents of the slides\n\t\t\t\tlayoutSlideContents( config.width, config.height );\n\n\t\t\t\tdom.slides.style.width = size.width + 'px';\n\t\t\t\tdom.slides.style.height = size.height + 'px';\n\n\t\t\t\t// Determine scale of content to fit within available space\n\t\t\t\tscale = Math.min( size.presentationWidth / size.width, size.presentationHeight / size.height );\n\n\t\t\t\t// Respect max/min scale settings\n\t\t\t\tscale = Math.max( scale, config.minScale );\n\t\t\t\tscale = Math.min( scale, config.maxScale );\n\n\t\t\t\t// Don't apply any scaling styles if scale is 1 or we're\n\t\t\t\t// in the scroll view\n\t\t\t\tif( scale === 1 || scrollView.isActive() ) {\n\t\t\t\t\tdom.slides.style.zoom = '';\n\t\t\t\t\tdom.slides.style.left = '';\n\t\t\t\t\tdom.slides.style.top = '';\n\t\t\t\t\tdom.slides.style.bottom = '';\n\t\t\t\t\tdom.slides.style.right = '';\n\t\t\t\t\ttransformSlides( { layout: '' } );\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdom.slides.style.zoom = '';\n\t\t\t\t\tdom.slides.style.left = '50%';\n\t\t\t\t\tdom.slides.style.top = '50%';\n\t\t\t\t\tdom.slides.style.bottom = 'auto';\n\t\t\t\t\tdom.slides.style.right = 'auto';\n\t\t\t\t\ttransformSlides( { layout: 'translate(-50%, -50%) scale('+ scale +')' } );\n\t\t\t\t}\n\n\t\t\t\t// Select all slides, vertical and horizontal\n\t\t\t\tconst slides = Array.from( dom.wrapper.querySelectorAll( SLIDES_SELECTOR ) );\n\n\t\t\t\tfor( let i = 0, len = slides.length; i < len; i++ ) {\n\t\t\t\t\tconst slide = slides[ i ];\n\n\t\t\t\t\t// Don't bother updating invisible slides\n\t\t\t\t\tif( slide.style.display === 'none' ) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif( ( config.center || slide.classList.contains( 'center' ) ) ) {\n\t\t\t\t\t\t// Vertical stacks are not centred since their section\n\t\t\t\t\t\t// children will be\n\t\t\t\t\t\tif( slide.classList.contains( 'stack' ) ) {\n\t\t\t\t\t\t\tslide.style.top = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tslide.style.top = Math.max( ( size.height - slide.scrollHeight ) / 2, 0 ) + 'px';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tslide.style.top = '';\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tif( oldScale !== scale ) {\n\t\t\t\t\tdispatchEvent({\n\t\t\t\t\t\ttype: 'resize',\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\toldScale,\n\t\t\t\t\t\t\tscale,\n\t\t\t\t\t\t\tsize\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcheckResponsiveScrollView();\n\n\t\t\tdom.viewport.style.setProperty( '--slide-scale', scale );\n\t\t\tdom.viewport.style.setProperty( '--viewport-width', viewportWidth + 'px' );\n\t\t\tdom.viewport.style.setProperty( '--viewport-height', viewportHeight + 'px' );\n\n\t\t\tscrollView.layout();\n\n\t\t\tprogress.update();\n\t\t\tbackgrounds.updateParallax();\n\n\t\t\tif( overview.isActive() ) {\n\t\t\t\toverview.update();\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Applies layout logic to the contents of all slides in\n\t * the presentation.\n\t *\n\t * @param {string|number} width\n\t * @param {string|number} height\n\t */\n\tfunction layoutSlideContents( width, height ) {\n\t\t// Handle sizing of elements with the 'r-stretch' class\n\t\tUtil.queryAll( dom.slides, 'section > .stretch, section > .r-stretch' ).forEach( element => {\n\n\t\t\t// Determine how much vertical space we can use\n\t\t\tlet remainingHeight = Util.getRemainingHeight( element, height );\n\n\t\t\t// Consider the aspect ratio of media elements\n\t\t\tif( /(img|video)/gi.test( element.nodeName ) ) {\n\t\t\t\tconst nw = element.naturalWidth || element.videoWidth,\n\t\t\t\t\t nh = element.naturalHeight || element.videoHeight;\n\n\t\t\t\tconst es = Math.min( width / nw, remainingHeight / nh );\n\n\t\t\t\telement.style.width = ( nw * es ) + 'px';\n\t\t\t\telement.style.height = ( nh * es ) + 'px';\n\n\t\t\t}\n\t\t\telse {\n\t\t\t\telement.style.width = width + 'px';\n\t\t\t\telement.style.height = remainingHeight + 'px';\n\t\t\t}\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Responsively activates the scroll mode when we reach the configured\n\t * activation width.\n\t */\n\tfunction checkResponsiveScrollView() {\n\n\t\t// Only proceed if...\n\t\t// 1. The DOM is ready\n\t\t// 2. Layouts aren't disabled via config\n\t\t// 3. We're not currently printing\n\t\t// 4. There is a scrollActivationWidth set\n\t\t// 5. The deck isn't configured to always use the scroll view\n\t\tif(\n\t\t\tdom.wrapper &&\n\t\t\t!config.disableLayout &&\n\t\t\t!printView.isActive() &&\n\t\t\ttypeof config.scrollActivationWidth === 'number' &&\n\t\t\tconfig.view !== 'scroll'\n\t\t) {\n\t\t\tconst size = getComputedSlideSize();\n\n\t\t\tif( size.presentationWidth > 0 && size.presentationWidth <= config.scrollActivationWidth ) {\n\t\t\t\tif( !scrollView.isActive() ) {\n\t\t\t\t\tbackgrounds.create();\n\t\t\t\t\tscrollView.activate()\n\t\t\t\t};\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif( scrollView.isActive() ) scrollView.deactivate();\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/**\n\t * Calculates the computed pixel size of our slides. These\n\t * values are based on the width and height configuration\n\t * options.\n\t *\n\t * @param {number} [presentationWidth=dom.wrapper.offsetWidth]\n\t * @param {number} [presentationHeight=dom.wrapper.offsetHeight]\n\t */\n\tfunction getComputedSlideSize( presentationWidth, presentationHeight ) {\n\n\t\tlet width = config.width;\n\t\tlet height = config.height;\n\n\t\tif( config.disableLayout ) {\n\t\t\twidth = dom.slides.offsetWidth;\n\t\t\theight = dom.slides.offsetHeight;\n\t\t}\n\n\t\tconst size = {\n\t\t\t// Slide size\n\t\t\twidth: width,\n\t\t\theight: height,\n\n\t\t\t// Presentation size\n\t\t\tpresentationWidth: presentationWidth || dom.wrapper.offsetWidth,\n\t\t\tpresentationHeight: presentationHeight || dom.wrapper.offsetHeight\n\t\t};\n\n\t\t// Reduce available space by margin\n\t\tsize.presentationWidth -= ( size.presentationWidth * config.margin );\n\t\tsize.presentationHeight -= ( size.presentationHeight * config.margin );\n\n\t\t// Slide width may be a percentage of available width\n\t\tif( typeof size.width === 'string' && /%$/.test( size.width ) ) {\n\t\t\tsize.width = parseInt( size.width, 10 ) / 100 * size.presentationWidth;\n\t\t}\n\n\t\t// Slide height may be a percentage of available height\n\t\tif( typeof size.height === 'string' && /%$/.test( size.height ) ) {\n\t\t\tsize.height = parseInt( size.height, 10 ) / 100 * size.presentationHeight;\n\t\t}\n\n\t\treturn size;\n\n\t}\n\n\t/**\n\t * Stores the vertical index of a stack so that the same\n\t * vertical slide can be selected when navigating to and\n\t * from the stack.\n\t *\n\t * @param {HTMLElement} stack The vertical stack element\n\t * @param {string|number} [v=0] Index to memorize\n\t */\n\tfunction setPreviousVerticalIndex( stack, v ) {\n\n\t\tif( typeof stack === 'object' && typeof stack.setAttribute === 'function' ) {\n\t\t\tstack.setAttribute( 'data-previous-indexv', v || 0 );\n\t\t}\n\n\t}\n\n\t/**\n\t * Retrieves the vertical index which was stored using\n\t * #setPreviousVerticalIndex() or 0 if no previous index\n\t * exists.\n\t *\n\t * @param {HTMLElement} stack The vertical stack element\n\t */\n\tfunction getPreviousVerticalIndex( stack ) {\n\n\t\tif( typeof stack === 'object' && typeof stack.setAttribute === 'function' && stack.classList.contains( 'stack' ) ) {\n\t\t\t// Prefer manually defined start-indexv\n\t\t\tconst attributeName = stack.hasAttribute( 'data-start-indexv' ) ? 'data-start-indexv' : 'data-previous-indexv';\n\n\t\t\treturn parseInt( stack.getAttribute( attributeName ) || 0, 10 );\n\t\t}\n\n\t\treturn 0;\n\n\t}\n\n\t/**\n\t * Checks if the current or specified slide is vertical\n\t * (nested within another slide).\n\t *\n\t * @param {HTMLElement} [slide=currentSlide] The slide to check\n\t * orientation of\n\t * @return {Boolean}\n\t */\n\tfunction isVerticalSlide( slide = currentSlide ) {\n\n\t\treturn slide && slide.parentNode && !!slide.parentNode.nodeName.match( /section/i );\n\n\t}\n\n\t/**\n\t * Checks if the current or specified slide is a stack containing\n\t * vertical slides.\n\t *\n\t * @param {HTMLElement} [slide=currentSlide]\n\t * @return {Boolean}\n\t */\n\tfunction isVerticalStack( slide = currentSlide ) {\n\n\t\treturn slide.classList.contains( '.stack' ) || slide.querySelector( 'section' ) !== null;\n\n\t}\n\n\t/**\n\t * Returns true if we're on the last slide in the current\n\t * vertical stack.\n\t */\n\tfunction isLastVerticalSlide() {\n\n\t\tif( currentSlide && isVerticalSlide( currentSlide ) ) {\n\t\t\t// Does this slide have a next sibling?\n\t\t\tif( currentSlide.nextElementSibling ) return false;\n\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n\t/**\n\t * Returns true if we're currently on the first slide in\n\t * the presentation.\n\t */\n\tfunction isFirstSlide() {\n\n\t\treturn indexh === 0 && indexv === 0;\n\n\t}\n\n\t/**\n\t * Returns true if we're currently on the last slide in\n\t * the presenation. If the last slide is a stack, we only\n\t * consider this the last slide if it's at the end of the\n\t * stack.\n\t */\n\tfunction isLastSlide() {\n\n\t\tif( currentSlide ) {\n\t\t\t// Does this slide have a next sibling?\n\t\t\tif( currentSlide.nextElementSibling ) return false;\n\n\t\t\t// If it's vertical, does its parent have a next sibling?\n\t\t\tif( isVerticalSlide( currentSlide ) && currentSlide.parentNode.nextElementSibling ) return false;\n\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n\t/**\n\t * Enters the paused mode which fades everything on screen to\n\t * black.\n\t */\n\tfunction pause() {\n\n\t\tif( config.pause ) {\n\t\t\tconst wasPaused = dom.wrapper.classList.contains( 'paused' );\n\n\t\t\tcancelAutoSlide();\n\t\t\tdom.wrapper.classList.add( 'paused' );\n\n\t\t\tif( wasPaused === false ) {\n\t\t\t\tdispatchEvent({ type: 'paused' });\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/**\n\t * Exits from the paused mode.\n\t */\n\tfunction resume() {\n\n\t\tconst wasPaused = dom.wrapper.classList.contains( 'paused' );\n\t\tdom.wrapper.classList.remove( 'paused' );\n\n\t\tcueAutoSlide();\n\n\t\tif( wasPaused ) {\n\t\t\tdispatchEvent({ type: 'resumed' });\n\t\t}\n\n\t}\n\n\t/**\n\t * Toggles the paused mode on and off.\n\t */\n\tfunction togglePause( override ) {\n\n\t\tif( typeof override === 'boolean' ) {\n\t\t\toverride ? pause() : resume();\n\t\t}\n\t\telse {\n\t\t\tisPaused() ? resume() : pause();\n\t\t}\n\n\t}\n\n\t/**\n\t * Checks if we are currently in the paused mode.\n\t *\n\t * @return {Boolean}\n\t */\n\tfunction isPaused() {\n\n\t\treturn dom.wrapper.classList.contains( 'paused' );\n\n\t}\n\n\t/**\n\t * Toggles visibility of the jump-to-slide UI.\n\t */\n\tfunction toggleJumpToSlide( override ) {\n\n\t\tif( typeof override === 'boolean' ) {\n\t\t\toverride ? jumpToSlide.show() : jumpToSlide.hide();\n\t\t}\n\t\telse {\n\t\t\tjumpToSlide.isVisible() ? jumpToSlide.hide() : jumpToSlide.show();\n\t\t}\n\n\t}\n\n\t/**\n\t * Toggles the auto slide mode on and off.\n\t *\n\t * @param {Boolean} [override] Flag which sets the desired state.\n\t * True means autoplay starts, false means it stops.\n\t */\n\n\tfunction toggleAutoSlide( override ) {\n\n\t\tif( typeof override === 'boolean' ) {\n\t\t\toverride ? resumeAutoSlide() : pauseAutoSlide();\n\t\t}\n\n\t\telse {\n\t\t\tautoSlidePaused ? resumeAutoSlide() : pauseAutoSlide();\n\t\t}\n\n\t}\n\n\t/**\n\t * Checks if the auto slide mode is currently on.\n\t *\n\t * @return {Boolean}\n\t */\n\tfunction isAutoSliding() {\n\n\t\treturn !!( autoSlide && !autoSlidePaused );\n\n\t}\n\n\t/**\n\t * Steps from the current point in the presentation to the\n\t * slide which matches the specified horizontal and vertical\n\t * indices.\n\t *\n\t * @param {number} [h=indexh] Horizontal index of the target slide\n\t * @param {number} [v=indexv] Vertical index of the target slide\n\t * @param {number} [f] Index of a fragment within the\n\t * target slide to activate\n\t * @param {number} [origin] Origin for use in multimaster environments\n\t */\n\tfunction slide( h, v, f, origin ) {\n\n\t\t// Dispatch an event before the slide\n\t\tconst slidechange = dispatchEvent({\n\t\t\ttype: 'beforeslidechange',\n\t\t\tdata: {\n\t\t\t\tindexh: h === undefined ? indexh : h,\n\t\t\t\tindexv: v === undefined ? indexv : v,\n\t\t\t\torigin\n\t\t\t}\n\t\t});\n\n\t\t// Abort if this slide change was prevented by an event listener\n\t\tif( slidechange.defaultPrevented ) return;\n\n\t\t// Remember where we were at before\n\t\tpreviousSlide = currentSlide;\n\n\t\t// Query all horizontal slides in the deck\n\t\tconst horizontalSlides = dom.wrapper.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR );\n\n\t\t// If we're in scroll mode, we scroll the target slide into view\n\t\t// instead of running our standard slide transition\n\t\tif( scrollView.isActive() ) {\n\t\t\tconst scrollToSlide = scrollView.getSlideByIndices( h, v );\n\t\t\tif( scrollToSlide ) scrollView.scrollToSlide( scrollToSlide );\n\t\t\treturn;\n\t\t}\n\n\t\t// Abort if there are no slides\n\t\tif( horizontalSlides.length === 0 ) return;\n\n\t\t// If no vertical index is specified and the upcoming slide is a\n\t\t// stack, resume at its previous vertical index\n\t\tif( v === undefined && !overview.isActive() ) {\n\t\t\tv = getPreviousVerticalIndex( horizontalSlides[ h ] );\n\t\t}\n\n\t\t// If we were on a vertical stack, remember what vertical index\n\t\t// it was on so we can resume at the same position when returning\n\t\tif( previousSlide && previousSlide.parentNode && previousSlide.parentNode.classList.contains( 'stack' ) ) {\n\t\t\tsetPreviousVerticalIndex( previousSlide.parentNode, indexv );\n\t\t}\n\n\t\t// Remember the state before this slide\n\t\tconst stateBefore = state.concat();\n\n\t\t// Reset the state array\n\t\tstate.length = 0;\n\n\t\tlet indexhBefore = indexh || 0,\n\t\t\tindexvBefore = indexv || 0;\n\n\t\t// Activate and transition to the new slide\n\t\tindexh = updateSlides( HORIZONTAL_SLIDES_SELECTOR, h === undefined ? indexh : h );\n\t\tindexv = updateSlides( VERTICAL_SLIDES_SELECTOR, v === undefined ? indexv : v );\n\n\t\t// Dispatch an event if the slide changed\n\t\tlet slideChanged = ( indexh !== indexhBefore || indexv !== indexvBefore );\n\n\t\t// Ensure that the previous slide is never the same as the current\n\t\tif( !slideChanged ) previousSlide = null;\n\n\t\t// Find the current horizontal slide and any possible vertical slides\n\t\t// within it\n\t\tlet currentHorizontalSlide = horizontalSlides[ indexh ],\n\t\t\tcurrentVerticalSlides = currentHorizontalSlide.querySelectorAll( 'section' );\n\n\t\t// Store references to the previous and current slides\n\t\tcurrentSlide = currentVerticalSlides[ indexv ] || currentHorizontalSlide;\n\n\t\tlet autoAnimateTransition = false;\n\n\t\t// Detect if we're moving between two auto-animated slides\n\t\tif( slideChanged && previousSlide && currentSlide && !overview.isActive() ) {\n\t\t\ttransition = 'running';\n\n\t\t\tautoAnimateTransition = shouldAutoAnimateBetween( previousSlide, currentSlide, indexhBefore, indexvBefore );\n\n\t\t\t// If this is an auto-animated transition, we disable the\n\t\t\t// regular slide transition\n\t\t\t//\n\t\t\t// Note 20-03-2020:\n\t\t\t// This needs to happen before we update slide visibility,\n\t\t\t// otherwise transitions will still run in Safari.\n\t\t\tif( autoAnimateTransition ) {\n\t\t\t\tdom.slides.classList.add( 'disable-slide-transitions' )\n\t\t\t}\n\t\t}\n\n\t\t// Update the visibility of slides now that the indices have changed\n\t\tupdateSlidesVisibility();\n\n\t\tlayout();\n\n\t\t// Update the overview if it's currently active\n\t\tif( overview.isActive() ) {\n\t\t\toverview.update();\n\t\t}\n\n\t\t// Show fragment, if specified\n\t\tif( typeof f !== 'undefined' ) {\n\t\t\tfragments.goto( f );\n\t\t}\n\n\t\t// Solves an edge case where the previous slide maintains the\n\t\t// 'present' class when navigating between adjacent vertical\n\t\t// stacks\n\t\tif( previousSlide && previousSlide !== currentSlide ) {\n\t\t\tpreviousSlide.classList.remove( 'present' );\n\t\t\tpreviousSlide.setAttribute( 'aria-hidden', 'true' );\n\n\t\t\t// Reset all slides upon navigate to home\n\t\t\tif( isFirstSlide() ) {\n\t\t\t\t// Launch async task\n\t\t\t\tsetTimeout( () => {\n\t\t\t\t\tgetVerticalStacks().forEach( slide => {\n\t\t\t\t\t\tsetPreviousVerticalIndex( slide, 0 );\n\t\t\t\t\t} );\n\t\t\t\t}, 0 );\n\t\t\t}\n\t\t}\n\n\t\t// Apply the new state\n\t\tstateLoop: for( let i = 0, len = state.length; i < len; i++ ) {\n\t\t\t// Check if this state existed on the previous slide. If it\n\t\t\t// did, we will avoid adding it repeatedly\n\t\t\tfor( let j = 0; j < stateBefore.length; j++ ) {\n\t\t\t\tif( stateBefore[j] === state[i] ) {\n\t\t\t\t\tstateBefore.splice( j, 1 );\n\t\t\t\t\tcontinue stateLoop;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdom.viewport.classList.add( state[i] );\n\n\t\t\t// Dispatch custom event matching the state's name\n\t\t\tdispatchEvent({ type: state[i] });\n\t\t}\n\n\t\t// Clean up the remains of the previous state\n\t\twhile( stateBefore.length ) {\n\t\t\tdom.viewport.classList.remove( stateBefore.pop() );\n\t\t}\n\n\t\tif( slideChanged ) {\n\t\t\tdispatchSlideChanged( origin );\n\t\t}\n\n\t\t// Handle embedded content\n\t\tif( slideChanged || !previousSlide ) {\n\t\t\tslideContent.stopEmbeddedContent( previousSlide );\n\t\t\tslideContent.startEmbeddedContent( currentSlide );\n\t\t}\n\n\t\t// Announce the current slide contents to screen readers\n\t\t// Use animation frame to prevent getComputedStyle in getStatusText\n\t\t// from triggering layout mid-frame\n\t\trequestAnimationFrame( () => {\n\t\t\tannounceStatus( getStatusText( currentSlide ) );\n\t\t});\n\n\t\tprogress.update();\n\t\tcontrols.update();\n\t\tnotes.update();\n\t\tbackgrounds.update();\n\t\tbackgrounds.updateParallax();\n\t\tslideNumber.update();\n\t\tfragments.update();\n\n\t\t// Update the URL hash\n\t\tlocation.writeURL();\n\n\t\tcueAutoSlide();\n\n\t\t// Auto-animation\n\t\tif( autoAnimateTransition ) {\n\n\t\t\tsetTimeout( () => {\n\t\t\t\tdom.slides.classList.remove( 'disable-slide-transitions' );\n\t\t\t}, 0 );\n\n\t\t\tif( config.autoAnimate ) {\n\t\t\t\t// Run the auto-animation between our slides\n\t\t\t\tautoAnimate.run( previousSlide, currentSlide );\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Checks whether or not an auto-animation should take place between\n\t * the two given slides.\n\t *\n\t * @param {HTMLElement} fromSlide\n\t * @param {HTMLElement} toSlide\n\t * @param {number} indexhBefore\n\t * @param {number} indexvBefore\n\t *\n\t * @returns {boolean}\n\t */\n\tfunction shouldAutoAnimateBetween( fromSlide, toSlide, indexhBefore, indexvBefore ) {\n\n\t\treturn \tfromSlide.hasAttribute( 'data-auto-animate' ) && toSlide.hasAttribute( 'data-auto-animate' ) &&\n\t\t\t\tfromSlide.getAttribute( 'data-auto-animate-id' ) === toSlide.getAttribute( 'data-auto-animate-id' ) &&\n\t\t\t\t!( ( indexh > indexhBefore || indexv > indexvBefore ) ? toSlide : fromSlide ).hasAttribute( 'data-auto-animate-restart' );\n\n\t}\n\n\t/**\n\t * Called anytime a new slide should be activated while in the scroll\n\t * view. The active slide is the page that occupies the most space in\n\t * the scrollable viewport.\n\t *\n\t * @param {number} pageIndex\n\t * @param {HTMLElement} slideElement\n\t */\n\tfunction setCurrentScrollPage( slideElement, h, v ) {\n\n\t\tlet indexhBefore = indexh || 0;\n\n\t\tindexh = h;\n\t\tindexv = v;\n\n\t\tconst slideChanged = currentSlide !== slideElement;\n\n\t\tpreviousSlide = currentSlide;\n\t\tcurrentSlide = slideElement;\n\n\t\tif( currentSlide && previousSlide ) {\n\t\t\tif( config.autoAnimate && shouldAutoAnimateBetween( previousSlide, currentSlide, indexhBefore, indexv ) ) {\n\t\t\t\t// Run the auto-animation between our slides\n\t\t\t\tautoAnimate.run( previousSlide, currentSlide );\n\t\t\t}\n\t\t}\n\n\t\t// Start or stop embedded content like videos and iframes\n\t\tif( slideChanged ) {\n\t\t\tif( previousSlide ) {\n\t\t\t\tslideContent.stopEmbeddedContent( previousSlide );\n\t\t\t\tslideContent.stopEmbeddedContent( previousSlide.slideBackgroundElement );\n\t\t\t}\n\n\t\t\tslideContent.startEmbeddedContent( currentSlide );\n\t\t\tslideContent.startEmbeddedContent( currentSlide.slideBackgroundElement );\n\t\t}\n\n\t\trequestAnimationFrame( () => {\n\t\t\tannounceStatus( getStatusText( currentSlide ) );\n\t\t});\n\n\t\tdispatchSlideChanged();\n\n\t}\n\n\t/**\n\t * Syncs the presentation with the current DOM. Useful\n\t * when new slides or control elements are added or when\n\t * the configuration has changed.\n\t */\n\tfunction sync() {\n\n\t\t// Subscribe to input\n\t\tremoveEventListeners();\n\t\taddEventListeners();\n\n\t\t// Force a layout to make sure the current config is accounted for\n\t\tlayout();\n\n\t\t// Reflect the current autoSlide value\n\t\tautoSlide = config.autoSlide;\n\n\t\t// Start auto-sliding if it's enabled\n\t\tcueAutoSlide();\n\n\t\t// Re-create all slide backgrounds\n\t\tbackgrounds.create();\n\n\t\t// Write the current hash to the URL\n\t\tlocation.writeURL();\n\n\t\tif( config.sortFragmentsOnSync === true ) {\n\t\t\tfragments.sortAll();\n\t\t}\n\n\t\tcontrols.update();\n\t\tprogress.update();\n\n\t\tupdateSlidesVisibility();\n\n\t\tnotes.update();\n\t\tnotes.updateVisibility();\n\t\tbackgrounds.update( true );\n\t\tslideNumber.update();\n\t\tslideContent.formatEmbeddedContent();\n\n\t\t// Start or stop embedded content depending on global config\n\t\tif( config.autoPlayMedia === false ) {\n\t\t\tslideContent.stopEmbeddedContent( currentSlide, { unloadIframes: false } );\n\t\t}\n\t\telse {\n\t\t\tslideContent.startEmbeddedContent( currentSlide );\n\t\t}\n\n\t\tif( overview.isActive() ) {\n\t\t\toverview.layout();\n\t\t}\n\n\t}\n\n\t/**\n\t * Updates reveal.js to keep in sync with new slide attributes. For\n\t * example, if you add a new `data-background-image` you can call\n\t * this to have reveal.js render the new background image.\n\t *\n\t * Similar to #sync() but more efficient when you only need to\n\t * refresh a specific slide.\n\t *\n\t * @param {HTMLElement} slide\n\t */\n\tfunction syncSlide( slide = currentSlide ) {\n\n\t\tbackgrounds.sync( slide );\n\t\tfragments.sync( slide );\n\n\t\tslideContent.load( slide );\n\n\t\tbackgrounds.update();\n\t\tnotes.update();\n\n\t}\n\n\t/**\n\t * Resets all vertical slides so that only the first\n\t * is visible.\n\t */\n\tfunction resetVerticalSlides() {\n\n\t\tgetHorizontalSlides().forEach( horizontalSlide => {\n\n\t\t\tUtil.queryAll( horizontalSlide, 'section' ).forEach( ( verticalSlide, y ) => {\n\n\t\t\t\tif( y > 0 ) {\n\t\t\t\t\tverticalSlide.classList.remove( 'present' );\n\t\t\t\t\tverticalSlide.classList.remove( 'past' );\n\t\t\t\t\tverticalSlide.classList.add( 'future' );\n\t\t\t\t\tverticalSlide.setAttribute( 'aria-hidden', 'true' );\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Randomly shuffles all slides in the deck.\n\t */\n\tfunction shuffle( slides = getHorizontalSlides() ) {\n\n\t\tslides.forEach( ( slide, i ) => {\n\n\t\t\t// Insert the slide next to a randomly picked sibling slide\n\t\t\t// slide. This may cause the slide to insert before itself,\n\t\t\t// but that's not an issue.\n\t\t\tlet beforeSlide = slides[ Math.floor( Math.random() * slides.length ) ];\n\t\t\tif( beforeSlide.parentNode === slide.parentNode ) {\n\t\t\t\tslide.parentNode.insertBefore( slide, beforeSlide );\n\t\t\t}\n\n\t\t\t// Randomize the order of vertical slides (if there are any)\n\t\t\tlet verticalSlides = slide.querySelectorAll( 'section' );\n\t\t\tif( verticalSlides.length ) {\n\t\t\t\tshuffle( verticalSlides );\n\t\t\t}\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Updates one dimension of slides by showing the slide\n\t * with the specified index.\n\t *\n\t * @param {string} selector A CSS selector that will fetch\n\t * the group of slides we are working with\n\t * @param {number} index The index of the slide that should be\n\t * shown\n\t *\n\t * @return {number} The index of the slide that is now shown,\n\t * might differ from the passed in index if it was out of\n\t * bounds.\n\t */\n\tfunction updateSlides( selector, index ) {\n\n\t\t// Select all slides and convert the NodeList result to\n\t\t// an array\n\t\tlet slides = Util.queryAll( dom.wrapper, selector ),\n\t\t\tslidesLength = slides.length;\n\n\t\tlet printMode = scrollView.isActive() || printView.isActive();\n\t\tlet loopedForwards = false;\n\t\tlet loopedBackwards = false;\n\n\t\tif( slidesLength ) {\n\n\t\t\t// Should the index loop?\n\t\t\tif( config.loop ) {\n\t\t\t\tif( index >= slidesLength ) loopedForwards = true;\n\n\t\t\t\tindex %= slidesLength;\n\n\t\t\t\tif( index < 0 ) {\n\t\t\t\t\tindex = slidesLength + index;\n\t\t\t\t\tloopedBackwards = true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Enforce max and minimum index bounds\n\t\t\tindex = Math.max( Math.min( index, slidesLength - 1 ), 0 );\n\n\t\t\tfor( let i = 0; i < slidesLength; i++ ) {\n\t\t\t\tlet element = slides[i];\n\n\t\t\t\tlet reverse = config.rtl && !isVerticalSlide( element );\n\n\t\t\t\t// Avoid .remove() with multiple args for IE11 support\n\t\t\t\telement.classList.remove( 'past' );\n\t\t\t\telement.classList.remove( 'present' );\n\t\t\t\telement.classList.remove( 'future' );\n\n\t\t\t\t// http://www.w3.org/html/wg/drafts/html/master/editing.html#the-hidden-attribute\n\t\t\t\telement.setAttribute( 'hidden', '' );\n\t\t\t\telement.setAttribute( 'aria-hidden', 'true' );\n\n\t\t\t\t// If this element contains vertical slides\n\t\t\t\tif( element.querySelector( 'section' ) ) {\n\t\t\t\t\telement.classList.add( 'stack' );\n\t\t\t\t}\n\n\t\t\t\t// If we're printing static slides, all slides are \"present\"\n\t\t\t\tif( printMode ) {\n\t\t\t\t\telement.classList.add( 'present' );\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif( i < index ) {\n\t\t\t\t\t// Any element previous to index is given the 'past' class\n\t\t\t\t\telement.classList.add( reverse ? 'future' : 'past' );\n\n\t\t\t\t\tif( config.fragments ) {\n\t\t\t\t\t\t// Show all fragments in prior slides\n\t\t\t\t\t\tshowFragmentsIn( element );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if( i > index ) {\n\t\t\t\t\t// Any element subsequent to index is given the 'future' class\n\t\t\t\t\telement.classList.add( reverse ? 'past' : 'future' );\n\n\t\t\t\t\tif( config.fragments ) {\n\t\t\t\t\t\t// Hide all fragments in future slides\n\t\t\t\t\t\thideFragmentsIn( element );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Update the visibility of fragments when a presentation loops\n\t\t\t\t// in either direction\n\t\t\t\telse if( i === index && config.fragments ) {\n\t\t\t\t\tif( loopedForwards ) {\n\t\t\t\t\t\thideFragmentsIn( element );\n\t\t\t\t\t}\n\t\t\t\t\telse if( loopedBackwards ) {\n\t\t\t\t\t\tshowFragmentsIn( element );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet slide = slides[index];\n\t\t\tlet wasPresent = slide.classList.contains( 'present' );\n\n\t\t\t// Mark the current slide as present\n\t\t\tslide.classList.add( 'present' );\n\t\t\tslide.removeAttribute( 'hidden' );\n\t\t\tslide.removeAttribute( 'aria-hidden' );\n\n\t\t\tif( !wasPresent ) {\n\t\t\t\t// Dispatch an event indicating the slide is now visible\n\t\t\t\tdispatchEvent({\n\t\t\t\t\ttarget: slide,\n\t\t\t\t\ttype: 'visible',\n\t\t\t\t\tbubbles: false\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// If this slide has a state associated with it, add it\n\t\t\t// onto the current state of the deck\n\t\t\tlet slideState = slide.getAttribute( 'data-state' );\n\t\t\tif( slideState ) {\n\t\t\t\tstate = state.concat( slideState.split( ' ' ) );\n\t\t\t}\n\n\t\t}\n\t\telse {\n\t\t\t// Since there are no slides we can't be anywhere beyond the\n\t\t\t// zeroth index\n\t\t\tindex = 0;\n\t\t}\n\n\t\treturn index;\n\n\t}\n\n\t/**\n\t * Shows all fragment elements within the given container.\n\t */\n\tfunction showFragmentsIn( container ) {\n\n\t\tUtil.queryAll( container, '.fragment' ).forEach( fragment => {\n\t\t\tfragment.classList.add( 'visible' );\n\t\t\tfragment.classList.remove( 'current-fragment' );\n\t\t} );\n\n\t}\n\n\t/**\n\t * Hides all fragment elements within the given container.\n\t */\n\tfunction hideFragmentsIn( container ) {\n\n\t\tUtil.queryAll( container, '.fragment.visible' ).forEach( fragment => {\n\t\t\tfragment.classList.remove( 'visible', 'current-fragment' );\n\t\t} );\n\n\t}\n\n\t/**\n\t * Optimization method; hide all slides that are far away\n\t * from the present slide.\n\t */\n\tfunction updateSlidesVisibility() {\n\n\t\t// Select all slides and convert the NodeList result to\n\t\t// an array\n\t\tlet horizontalSlides = getHorizontalSlides(),\n\t\t\thorizontalSlidesLength = horizontalSlides.length,\n\t\t\tdistanceX,\n\t\t\tdistanceY;\n\n\t\tif( horizontalSlidesLength && typeof indexh !== 'undefined' ) {\n\n\t\t\t// The number of steps away from the present slide that will\n\t\t\t// be visible\n\t\t\tlet viewDistance = overview.isActive() ? 10 : config.viewDistance;\n\n\t\t\t// Shorten the view distance on devices that typically have\n\t\t\t// less resources\n\t\t\tif( Device.isMobile ) {\n\t\t\t\tviewDistance = overview.isActive() ? 6 : config.mobileViewDistance;\n\t\t\t}\n\n\t\t\t// All slides need to be visible when exporting to PDF\n\t\t\tif( printView.isActive() ) {\n\t\t\t\tviewDistance = Number.MAX_VALUE;\n\t\t\t}\n\n\t\t\tfor( let x = 0; x < horizontalSlidesLength; x++ ) {\n\t\t\t\tlet horizontalSlide = horizontalSlides[x];\n\n\t\t\t\tlet verticalSlides = Util.queryAll( horizontalSlide, 'section' ),\n\t\t\t\t\tverticalSlidesLength = verticalSlides.length;\n\n\t\t\t\t// Determine how far away this slide is from the present\n\t\t\t\tdistanceX = Math.abs( ( indexh || 0 ) - x ) || 0;\n\n\t\t\t\t// If the presentation is looped, distance should measure\n\t\t\t\t// 1 between the first and last slides\n\t\t\t\tif( config.loop ) {\n\t\t\t\t\tdistanceX = Math.abs( ( ( indexh || 0 ) - x ) % ( horizontalSlidesLength - viewDistance ) ) || 0;\n\t\t\t\t}\n\n\t\t\t\t// Show the horizontal slide if it's within the view distance\n\t\t\t\tif( distanceX < viewDistance ) {\n\t\t\t\t\tslideContent.load( horizontalSlide );\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tslideContent.unload( horizontalSlide );\n\t\t\t\t}\n\n\t\t\t\tif( verticalSlidesLength ) {\n\n\t\t\t\t\tlet oy = getPreviousVerticalIndex( horizontalSlide );\n\n\t\t\t\t\tfor( let y = 0; y < verticalSlidesLength; y++ ) {\n\t\t\t\t\t\tlet verticalSlide = verticalSlides[y];\n\n\t\t\t\t\t\tdistanceY = x === ( indexh || 0 ) ? Math.abs( ( indexv || 0 ) - y ) : Math.abs( y - oy );\n\n\t\t\t\t\t\tif( distanceX + distanceY < viewDistance ) {\n\t\t\t\t\t\t\tslideContent.load( verticalSlide );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tslideContent.unload( verticalSlide );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Flag if there are ANY vertical slides, anywhere in the deck\n\t\t\tif( hasVerticalSlides() ) {\n\t\t\t\tdom.wrapper.classList.add( 'has-vertical-slides' );\n\t\t\t}\n\t\t\telse {\n\t\t\t\tdom.wrapper.classList.remove( 'has-vertical-slides' );\n\t\t\t}\n\n\t\t\t// Flag if there are ANY horizontal slides, anywhere in the deck\n\t\t\tif( hasHorizontalSlides() ) {\n\t\t\t\tdom.wrapper.classList.add( 'has-horizontal-slides' );\n\t\t\t}\n\t\t\telse {\n\t\t\t\tdom.wrapper.classList.remove( 'has-horizontal-slides' );\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Determine what available routes there are for navigation.\n\t *\n\t * @return {{left: boolean, right: boolean, up: boolean, down: boolean}}\n\t */\n\tfunction availableRoutes({ includeFragments = false } = {}) {\n\n\t\tlet horizontalSlides = dom.wrapper.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ),\n\t\t\tverticalSlides = dom.wrapper.querySelectorAll( VERTICAL_SLIDES_SELECTOR );\n\n\t\tlet routes = {\n\t\t\tleft: indexh > 0,\n\t\t\tright: indexh < horizontalSlides.length - 1,\n\t\t\tup: indexv > 0,\n\t\t\tdown: indexv < verticalSlides.length - 1\n\t\t};\n\n\t\t// Looped presentations can always be navigated as long as\n\t\t// there are slides available\n\t\tif( config.loop ) {\n\t\t\tif( horizontalSlides.length > 1 ) {\n\t\t\t\troutes.left = true;\n\t\t\t\troutes.right = true;\n\t\t\t}\n\n\t\t\tif( verticalSlides.length > 1 ) {\n\t\t\t\troutes.up = true;\n\t\t\t\troutes.down = true;\n\t\t\t}\n\t\t}\n\n\t\tif ( horizontalSlides.length > 1 && config.navigationMode === 'linear' ) {\n\t\t\troutes.right = routes.right || routes.down;\n\t\t\troutes.left = routes.left || routes.up;\n\t\t}\n\n\t\t// If includeFragments is set, a route will be considered\n\t\t// available if either a slid OR fragment is available in\n\t\t// the given direction\n\t\tif( includeFragments === true ) {\n\t\t\tlet fragmentRoutes = fragments.availableRoutes();\n\t\t\troutes.left = routes.left || fragmentRoutes.prev;\n\t\t\troutes.up = routes.up || fragmentRoutes.prev;\n\t\t\troutes.down = routes.down || fragmentRoutes.next;\n\t\t\troutes.right = routes.right || fragmentRoutes.next;\n\t\t}\n\n\t\t// Reverse horizontal controls for rtl\n\t\tif( config.rtl ) {\n\t\t\tlet left = routes.left;\n\t\t\troutes.left = routes.right;\n\t\t\troutes.right = left;\n\t\t}\n\n\t\treturn routes;\n\n\t}\n\n\t/**\n\t * Returns the number of past slides. This can be used as a global\n\t * flattened index for slides.\n\t *\n\t * @param {HTMLElement} [slide=currentSlide] The slide we're counting before\n\t *\n\t * @return {number} Past slide count\n\t */\n\tfunction getSlidePastCount( slide = currentSlide ) {\n\n\t\tlet horizontalSlides = getHorizontalSlides();\n\n\t\t// The number of past slides\n\t\tlet pastCount = 0;\n\n\t\t// Step through all slides and count the past ones\n\t\tmainLoop: for( let i = 0; i < horizontalSlides.length; i++ ) {\n\n\t\t\tlet horizontalSlide = horizontalSlides[i];\n\t\t\tlet verticalSlides = horizontalSlide.querySelectorAll( 'section' );\n\n\t\t\tfor( let j = 0; j < verticalSlides.length; j++ ) {\n\n\t\t\t\t// Stop as soon as we arrive at the present\n\t\t\t\tif( verticalSlides[j] === slide ) {\n\t\t\t\t\tbreak mainLoop;\n\t\t\t\t}\n\n\t\t\t\t// Don't count slides with the \"uncounted\" class\n\t\t\t\tif( verticalSlides[j].dataset.visibility !== 'uncounted' ) {\n\t\t\t\t\tpastCount++;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// Stop as soon as we arrive at the present\n\t\t\tif( horizontalSlide === slide ) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// Don't count the wrapping section for vertical slides and\n\t\t\t// slides marked as uncounted\n\t\t\tif( horizontalSlide.classList.contains( 'stack' ) === false && horizontalSlide.dataset.visibility !== 'uncounted' ) {\n\t\t\t\tpastCount++;\n\t\t\t}\n\n\t\t}\n\n\t\treturn pastCount;\n\n\t}\n\n\t/**\n\t * Returns a value ranging from 0-1 that represents\n\t * how far into the presentation we have navigated.\n\t *\n\t * @return {number}\n\t */\n\tfunction getProgress() {\n\n\t\t// The number of past and total slides\n\t\tlet totalCount = getTotalSlides();\n\t\tlet pastCount = getSlidePastCount();\n\n\t\tif( currentSlide ) {\n\n\t\t\tlet allFragments = currentSlide.querySelectorAll( '.fragment' );\n\n\t\t\t// If there are fragments in the current slide those should be\n\t\t\t// accounted for in the progress.\n\t\t\tif( allFragments.length > 0 ) {\n\t\t\t\tlet visibleFragments = currentSlide.querySelectorAll( '.fragment.visible' );\n\n\t\t\t\t// This value represents how big a portion of the slide progress\n\t\t\t\t// that is made up by its fragments (0-1)\n\t\t\t\tlet fragmentWeight = 0.9;\n\n\t\t\t\t// Add fragment progress to the past slide count\n\t\t\t\tpastCount += ( visibleFragments.length / allFragments.length ) * fragmentWeight;\n\t\t\t}\n\n\t\t}\n\n\t\treturn Math.min( pastCount / ( totalCount - 1 ), 1 );\n\n\t}\n\n\t/**\n\t * Retrieves the h/v location and fragment of the current,\n\t * or specified, slide.\n\t *\n\t * @param {HTMLElement} [slide] If specified, the returned\n\t * index will be for this slide rather than the currently\n\t * active one\n\t *\n\t * @return {{h: number, v: number, f: number}}\n\t */\n\tfunction getIndices( slide ) {\n\n\t\t// By default, return the current indices\n\t\tlet h = indexh,\n\t\t\tv = indexv,\n\t\t\tf;\n\n\t\t// If a slide is specified, return the indices of that slide\n\t\tif( slide ) {\n\t\t\t// In scroll mode the original h/x index is stored on the slide\n\t\t\tif( scrollView.isActive() ) {\n\t\t\t\th = parseInt( slide.getAttribute( 'data-index-h' ), 10 );\n\n\t\t\t\tif( slide.getAttribute( 'data-index-v' ) ) {\n\t\t\t\t\tv = parseInt( slide.getAttribute( 'data-index-v' ), 10 );\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlet isVertical = isVerticalSlide( slide );\n\t\t\t\tlet slideh = isVertical ? slide.parentNode : slide;\n\n\t\t\t\t// Select all horizontal slides\n\t\t\t\tlet horizontalSlides = getHorizontalSlides();\n\n\t\t\t\t// Now that we know which the horizontal slide is, get its index\n\t\t\t\th = Math.max( horizontalSlides.indexOf( slideh ), 0 );\n\n\t\t\t\t// Assume we're not vertical\n\t\t\t\tv = undefined;\n\n\t\t\t\t// If this is a vertical slide, grab the vertical index\n\t\t\t\tif( isVertical ) {\n\t\t\t\t\tv = Math.max( Util.queryAll( slide.parentNode, 'section' ).indexOf( slide ), 0 );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif( !slide && currentSlide ) {\n\t\t\tlet hasFragments = currentSlide.querySelectorAll( '.fragment' ).length > 0;\n\t\t\tif( hasFragments ) {\n\t\t\t\tlet currentFragment = currentSlide.querySelector( '.current-fragment' );\n\t\t\t\tif( currentFragment && currentFragment.hasAttribute( 'data-fragment-index' ) ) {\n\t\t\t\t\tf = parseInt( currentFragment.getAttribute( 'data-fragment-index' ), 10 );\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tf = currentSlide.querySelectorAll( '.fragment.visible' ).length - 1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn { h, v, f };\n\n\t}\n\n\t/**\n\t * Retrieves all slides in this presentation.\n\t */\n\tfunction getSlides() {\n\n\t\treturn Util.queryAll( dom.wrapper, SLIDES_SELECTOR + ':not(.stack):not([data-visibility=\"uncounted\"])' );\n\n\t}\n\n\t/**\n\t * Returns a list of all horizontal slides in the deck. Each\n\t * vertical stack is included as one horizontal slide in the\n\t * resulting array.\n\t */\n\tfunction getHorizontalSlides() {\n\n\t\treturn Util.queryAll( dom.wrapper, HORIZONTAL_SLIDES_SELECTOR );\n\n\t}\n\n\t/**\n\t * Returns all vertical slides that exist within this deck.\n\t */\n\tfunction getVerticalSlides() {\n\n\t\treturn Util.queryAll( dom.wrapper, '.slides>section>section' );\n\n\t}\n\n\t/**\n\t * Returns all vertical stacks (each stack can contain multiple slides).\n\t */\n\tfunction getVerticalStacks() {\n\n\t\treturn Util.queryAll( dom.wrapper, HORIZONTAL_SLIDES_SELECTOR + '.stack');\n\n\t}\n\n\t/**\n\t * Returns true if there are at least two horizontal slides.\n\t */\n\tfunction hasHorizontalSlides() {\n\n\t\treturn getHorizontalSlides().length > 1;\n\t}\n\n\t/**\n\t * Returns true if there are at least two vertical slides.\n\t */\n\tfunction hasVerticalSlides() {\n\n\t\treturn getVerticalSlides().length > 1;\n\n\t}\n\n\t/**\n\t * Returns an array of objects where each object represents the\n\t * attributes on its respective slide.\n\t */\n\tfunction getSlidesAttributes() {\n\n\t\treturn getSlides().map( slide => {\n\n\t\t\tlet attributes = {};\n\t\t\tfor( let i = 0; i < slide.attributes.length; i++ ) {\n\t\t\t\tlet attribute = slide.attributes[ i ];\n\t\t\t\tattributes[ attribute.name ] = attribute.value;\n\t\t\t}\n\t\t\treturn attributes;\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Retrieves the total number of slides in this presentation.\n\t *\n\t * @return {number}\n\t */\n\tfunction getTotalSlides() {\n\n\t\treturn getSlides().length;\n\n\t}\n\n\t/**\n\t * Returns the slide element matching the specified index.\n\t *\n\t * @return {HTMLElement}\n\t */\n\tfunction getSlide( x, y ) {\n\n\t\tlet horizontalSlide = getHorizontalSlides()[ x ];\n\t\tlet verticalSlides = horizontalSlide && horizontalSlide.querySelectorAll( 'section' );\n\n\t\tif( verticalSlides && verticalSlides.length && typeof y === 'number' ) {\n\t\t\treturn verticalSlides ? verticalSlides[ y ] : undefined;\n\t\t}\n\n\t\treturn horizontalSlide;\n\n\t}\n\n\t/**\n\t * Returns the background element for the given slide.\n\t * All slides, even the ones with no background properties\n\t * defined, have a background element so as long as the\n\t * index is valid an element will be returned.\n\t *\n\t * @param {mixed} x Horizontal background index OR a slide\n\t * HTML element\n\t * @param {number} y Vertical background index\n\t * @return {(HTMLElement[]|*)}\n\t */\n\tfunction getSlideBackground( x, y ) {\n\n\t\tlet slide = typeof x === 'number' ? getSlide( x, y ) : x;\n\t\tif( slide ) {\n\t\t\treturn slide.slideBackgroundElement;\n\t\t}\n\n\t\treturn undefined;\n\n\t}\n\n\t/**\n\t * Retrieves the current state of the presentation as\n\t * an object. This state can then be restored at any\n\t * time.\n\t *\n\t * @return {{indexh: number, indexv: number, indexf: number, paused: boolean, overview: boolean}}\n\t */\n\tfunction getState() {\n\n\t\tlet indices = getIndices();\n\n\t\treturn {\n\t\t\tindexh: indices.h,\n\t\t\tindexv: indices.v,\n\t\t\tindexf: indices.f,\n\t\t\tpaused: isPaused(),\n\t\t\toverview: overview.isActive()\n\t\t};\n\n\t}\n\n\t/**\n\t * Restores the presentation to the given state.\n\t *\n\t * @param {object} state As generated by getState()\n\t * @see {@link getState} generates the parameter `state`\n\t */\n\tfunction setState( state ) {\n\n\t\tif( typeof state === 'object' ) {\n\t\t\tslide( Util.deserialize( state.indexh ), Util.deserialize( state.indexv ), Util.deserialize( state.indexf ) );\n\n\t\t\tlet pausedFlag = Util.deserialize( state.paused ),\n\t\t\t\toverviewFlag = Util.deserialize( state.overview );\n\n\t\t\tif( typeof pausedFlag === 'boolean' && pausedFlag !== isPaused() ) {\n\t\t\t\ttogglePause( pausedFlag );\n\t\t\t}\n\n\t\t\tif( typeof overviewFlag === 'boolean' && overviewFlag !== overview.isActive() ) {\n\t\t\t\toverview.toggle( overviewFlag );\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/**\n\t * Cues a new automated slide if enabled in the config.\n\t */\n\tfunction cueAutoSlide() {\n\n\t\tcancelAutoSlide();\n\n\t\tif( currentSlide && config.autoSlide !== false ) {\n\n\t\t\tlet fragment = currentSlide.querySelector( '.current-fragment[data-autoslide]' );\n\n\t\t\tlet fragmentAutoSlide = fragment ? fragment.getAttribute( 'data-autoslide' ) : null;\n\t\t\tlet parentAutoSlide = currentSlide.parentNode ? currentSlide.parentNode.getAttribute( 'data-autoslide' ) : null;\n\t\t\tlet slideAutoSlide = currentSlide.getAttribute( 'data-autoslide' );\n\n\t\t\t// Pick value in the following priority order:\n\t\t\t// 1. Current fragment's data-autoslide\n\t\t\t// 2. Current slide's data-autoslide\n\t\t\t// 3. Parent slide's data-autoslide\n\t\t\t// 4. Global autoSlide setting\n\t\t\tif( fragmentAutoSlide ) {\n\t\t\t\tautoSlide = parseInt( fragmentAutoSlide, 10 );\n\t\t\t}\n\t\t\telse if( slideAutoSlide ) {\n\t\t\t\tautoSlide = parseInt( slideAutoSlide, 10 );\n\t\t\t}\n\t\t\telse if( parentAutoSlide ) {\n\t\t\t\tautoSlide = parseInt( parentAutoSlide, 10 );\n\t\t\t}\n\t\t\telse {\n\t\t\t\tautoSlide = config.autoSlide;\n\n\t\t\t\t// If there are media elements with data-autoplay,\n\t\t\t\t// automatically set the autoSlide duration to the\n\t\t\t\t// length of that media. Not applicable if the slide\n\t\t\t\t// is divided up into fragments.\n\t\t\t\t// playbackRate is accounted for in the duration.\n\t\t\t\tif( currentSlide.querySelectorAll( '.fragment' ).length === 0 ) {\n\t\t\t\t\tUtil.queryAll( currentSlide, 'video, audio' ).forEach( el => {\n\t\t\t\t\t\tif( el.hasAttribute( 'data-autoplay' ) ) {\n\t\t\t\t\t\t\tif( autoSlide && (el.duration * 1000 / el.playbackRate ) > autoSlide ) {\n\t\t\t\t\t\t\t\tautoSlide = ( el.duration * 1000 / el.playbackRate ) + 1000;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Cue the next auto-slide if:\n\t\t\t// - There is an autoSlide value\n\t\t\t// - Auto-sliding isn't paused by the user\n\t\t\t// - The presentation isn't paused\n\t\t\t// - The overview isn't active\n\t\t\t// - The presentation isn't over\n\t\t\tif( autoSlide && !autoSlidePaused && !isPaused() && !overview.isActive() && ( !isLastSlide() || fragments.availableRoutes().next || config.loop === true ) ) {\n\t\t\t\tautoSlideTimeout = setTimeout( () => {\n\t\t\t\t\tif( typeof config.autoSlideMethod === 'function' ) {\n\t\t\t\t\t\tconfig.autoSlideMethod()\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tnavigateNext();\n\t\t\t\t\t}\n\t\t\t\t\tcueAutoSlide();\n\t\t\t\t}, autoSlide );\n\t\t\t\tautoSlideStartTime = Date.now();\n\t\t\t}\n\n\t\t\tif( autoSlidePlayer ) {\n\t\t\t\tautoSlidePlayer.setPlaying( autoSlideTimeout !== -1 );\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Cancels any ongoing request to auto-slide.\n\t */\n\tfunction cancelAutoSlide() {\n\n\t\tclearTimeout( autoSlideTimeout );\n\t\tautoSlideTimeout = -1;\n\n\t}\n\n\tfunction pauseAutoSlide() {\n\n\t\tif( autoSlide && !autoSlidePaused ) {\n\t\t\tautoSlidePaused = true;\n\t\t\tdispatchEvent({ type: 'autoslidepaused' });\n\t\t\tclearTimeout( autoSlideTimeout );\n\n\t\t\tif( autoSlidePlayer ) {\n\t\t\t\tautoSlidePlayer.setPlaying( false );\n\t\t\t}\n\t\t}\n\n\t}\n\n\tfunction resumeAutoSlide() {\n\n\t\tif( autoSlide && autoSlidePaused ) {\n\t\t\tautoSlidePaused = false;\n\t\t\tdispatchEvent({ type: 'autoslideresumed' });\n\t\t\tcueAutoSlide();\n\t\t}\n\n\t}\n\n\tfunction navigateLeft({skipFragments=false}={}) {\n\n\t\tnavigationHistory.hasNavigatedHorizontally = true;\n\n\t\t// Scroll view navigation is handled independently\n\t\tif( scrollView.isActive() ) return scrollView.prev();\n\n\t\t// Reverse for RTL\n\t\tif( config.rtl ) {\n\t\t\tif( ( overview.isActive() || skipFragments || fragments.next() === false ) && availableRoutes().left ) {\n\t\t\t\tslide( indexh + 1, config.navigationMode === 'grid' ? indexv : undefined );\n\t\t\t}\n\t\t}\n\t\t// Normal navigation\n\t\telse if( ( overview.isActive() || skipFragments || fragments.prev() === false ) && availableRoutes().left ) {\n\t\t\tslide( indexh - 1, config.navigationMode === 'grid' ? indexv : undefined );\n\t\t}\n\n\t}\n\n\tfunction navigateRight({skipFragments=false}={}) {\n\n\t\tnavigationHistory.hasNavigatedHorizontally = true;\n\n\t\t// Scroll view navigation is handled independently\n\t\tif( scrollView.isActive() ) return scrollView.next();\n\n\t\t// Reverse for RTL\n\t\tif( config.rtl ) {\n\t\t\tif( ( overview.isActive() || skipFragments || fragments.prev() === false ) && availableRoutes().right ) {\n\t\t\t\tslide( indexh - 1, config.navigationMode === 'grid' ? indexv : undefined );\n\t\t\t}\n\t\t}\n\t\t// Normal navigation\n\t\telse if( ( overview.isActive() || skipFragments || fragments.next() === false ) && availableRoutes().right ) {\n\t\t\tslide( indexh + 1, config.navigationMode === 'grid' ? indexv : undefined );\n\t\t}\n\n\t}\n\n\tfunction navigateUp({skipFragments=false}={}) {\n\n\t\t// Scroll view navigation is handled independently\n\t\tif( scrollView.isActive() ) return scrollView.prev();\n\n\t\t// Prioritize hiding fragments\n\t\tif( ( overview.isActive() || skipFragments || fragments.prev() === false ) && availableRoutes().up ) {\n\t\t\tslide( indexh, indexv - 1 );\n\t\t}\n\n\t}\n\n\tfunction navigateDown({skipFragments=false}={}) {\n\n\t\tnavigationHistory.hasNavigatedVertically = true;\n\n\t\t// Scroll view navigation is handled independently\n\t\tif( scrollView.isActive() ) return scrollView.next();\n\n\t\t// Prioritize revealing fragments\n\t\tif( ( overview.isActive() || skipFragments || fragments.next() === false ) && availableRoutes().down ) {\n\t\t\tslide( indexh, indexv + 1 );\n\t\t}\n\n\t}\n\n\t/**\n\t * Navigates backwards, prioritized in the following order:\n\t * 1) Previous fragment\n\t * 2) Previous vertical slide\n\t * 3) Previous horizontal slide\n\t */\n\tfunction navigatePrev({skipFragments=false}={}) {\n\n\t\t// Scroll view navigation is handled independently\n\t\tif( scrollView.isActive() ) return scrollView.prev();\n\n\t\t// Prioritize revealing fragments\n\t\tif( skipFragments || fragments.prev() === false ) {\n\t\t\tif( availableRoutes().up ) {\n\t\t\t\tnavigateUp({skipFragments});\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Fetch the previous horizontal slide, if there is one\n\t\t\t\tlet previousSlide;\n\n\t\t\t\tif( config.rtl ) {\n\t\t\t\t\tpreviousSlide = Util.queryAll( dom.wrapper, HORIZONTAL_SLIDES_SELECTOR + '.future' ).pop();\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tpreviousSlide = Util.queryAll( dom.wrapper, HORIZONTAL_SLIDES_SELECTOR + '.past' ).pop();\n\t\t\t\t}\n\n\t\t\t\t// When going backwards and arriving on a stack we start\n\t\t\t\t// at the bottom of the stack\n\t\t\t\tif( previousSlide && previousSlide.classList.contains( 'stack' ) ) {\n\t\t\t\t\tlet v = ( previousSlide.querySelectorAll( 'section' ).length - 1 ) || undefined;\n\t\t\t\t\tlet h = indexh - 1;\n\t\t\t\t\tslide( h, v );\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tnavigateLeft({skipFragments});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/**\n\t * The reverse of #navigatePrev().\n\t */\n\tfunction navigateNext({skipFragments=false}={}) {\n\n\t\tnavigationHistory.hasNavigatedHorizontally = true;\n\t\tnavigationHistory.hasNavigatedVertically = true;\n\n\t\t// Scroll view navigation is handled independently\n\t\tif( scrollView.isActive() ) return scrollView.next();\n\n\t\t// Prioritize revealing fragments\n\t\tif( skipFragments || fragments.next() === false ) {\n\n\t\t\tlet routes = availableRoutes();\n\n\t\t\t// When looping is enabled `routes.down` is always available\n\t\t\t// so we need a separate check for when we've reached the\n\t\t\t// end of a stack and should move horizontally\n\t\t\tif( routes.down && routes.right && config.loop && isLastVerticalSlide() ) {\n\t\t\t\troutes.down = false;\n\t\t\t}\n\n\t\t\tif( routes.down ) {\n\t\t\t\tnavigateDown({skipFragments});\n\t\t\t}\n\t\t\telse if( config.rtl ) {\n\t\t\t\tnavigateLeft({skipFragments});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tnavigateRight({skipFragments});\n\t\t\t}\n\t\t}\n\n\t}\n\n\n\t// --------------------------------------------------------------------//\n\t// ----------------------------- EVENTS -------------------------------//\n\t// --------------------------------------------------------------------//\n\n\t/**\n\t * Called by all event handlers that are based on user\n\t * input.\n\t *\n\t * @param {object} [event]\n\t */\n\tfunction onUserInput( event ) {\n\n\t\tif( config.autoSlideStoppable ) {\n\t\t\tpauseAutoSlide();\n\t\t}\n\n\t}\n\n\t/**\n\t* Listener for post message events posted to this window.\n\t*/\n\tfunction onPostMessage( event ) {\n\n\t\tlet data = event.data;\n\n\t\t// Make sure we're dealing with JSON\n\t\tif( typeof data === 'string' && data.charAt( 0 ) === '{' && data.charAt( data.length - 1 ) === '}' ) {\n\t\t\tdata = JSON.parse( data );\n\n\t\t\t// Check if the requested method can be found\n\t\t\tif( data.method && typeof Reveal[data.method] === 'function' ) {\n\n\t\t\t\tif( POST_MESSAGE_METHOD_BLACKLIST.test( data.method ) === false ) {\n\n\t\t\t\t\tconst result = Reveal[data.method].apply( Reveal, data.args );\n\n\t\t\t\t\t// Dispatch a postMessage event with the returned value from\n\t\t\t\t\t// our method invocation for getter functions\n\t\t\t\t\tdispatchPostMessage( 'callback', { method: data.method, result: result } );\n\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tconsole.warn( 'reveal.js: \"'+ data.method +'\" is is blacklisted from the postMessage API' );\n\t\t\t\t}\n\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/**\n\t * Event listener for transition end on the current slide.\n\t *\n\t * @param {object} [event]\n\t */\n\tfunction onTransitionEnd( event ) {\n\n\t\tif( transition === 'running' && /section/gi.test( event.target.nodeName ) ) {\n\t\t\ttransition = 'idle';\n\t\t\tdispatchEvent({\n\t\t\t\ttype: 'slidetransitionend',\n\t\t\t\tdata: { indexh, indexv, previousSlide, currentSlide }\n\t\t\t});\n\t\t}\n\n\t}\n\n\t/**\n\t * A global listener for all click events inside of the\n\t * .slides container.\n\t *\n\t * @param {object} [event]\n\t */\n\tfunction onSlidesClicked( event ) {\n\n\t\tconst anchor = Util.closest( event.target, 'a[href^=\"#\"]' );\n\n\t\t// If a hash link is clicked, we find the target slide\n\t\t// and navigate to it. We previously relied on 'hashchange'\n\t\t// for links like these but that prevented media with\n\t\t// audio tracks from playing in mobile browsers since it\n\t\t// wasn't considered a direct interaction with the document.\n\t\tif( anchor ) {\n\t\t\tconst hash = anchor.getAttribute( 'href' );\n\t\t\tconst indices = location.getIndicesFromHash( hash );\n\n\t\t\tif( indices ) {\n\t\t\t\tReveal.slide( indices.h, indices.v, indices.f );\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/**\n\t * Handler for the window level 'resize' event.\n\t *\n\t * @param {object} [event]\n\t */\n\tfunction onWindowResize( event ) {\n\n\t\tlayout();\n\t}\n\n\t/**\n\t * Handle for the window level 'visibilitychange' event.\n\t *\n\t * @param {object} [event]\n\t */\n\tfunction onPageVisibilityChange( event ) {\n\n\t\t// If, after clicking a link or similar and we're coming back,\n\t\t// focus the document.body to ensure we can use keyboard shortcuts\n\t\tif( document.hidden === false && document.activeElement !== document.body ) {\n\t\t\t// Not all elements support .blur() - SVGs among them.\n\t\t\tif( typeof document.activeElement.blur === 'function' ) {\n\t\t\t\tdocument.activeElement.blur();\n\t\t\t}\n\t\t\tdocument.body.focus();\n\t\t}\n\n\t}\n\n\t/**\n\t * Handler for the document level 'fullscreenchange' event.\n\t *\n\t * @param {object} [event]\n\t */\n\tfunction onFullscreenChange( event ) {\n\n\t\tlet element = document.fullscreenElement || document.webkitFullscreenElement;\n\t\tif( element === dom.wrapper ) {\n\t\t\tevent.stopImmediatePropagation();\n\n\t\t\t// Timeout to avoid layout shift in Safari\n\t\t\tsetTimeout( () => {\n\t\t\t\tReveal.layout();\n\t\t\t\tReveal.focus.focus(); // focus.focus :'(\n\t\t\t}, 1 );\n\t\t}\n\n\t}\n\n\t/**\n\t * Handles clicks on links that are set to preview in the\n\t * iframe overlay.\n\t *\n\t * @param {object} event\n\t */\n\tfunction onPreviewLinkClicked( event ) {\n\n\t\tif( event.currentTarget && event.currentTarget.hasAttribute( 'href' ) ) {\n\t\t\tlet url = event.currentTarget.getAttribute( 'href' );\n\t\t\tif( url ) {\n\t\t\t\tshowPreview( url );\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/**\n\t * Handles click on the auto-sliding controls element.\n\t *\n\t * @param {object} [event]\n\t */\n\tfunction onAutoSlidePlayerClick( event ) {\n\n\t\t// Replay\n\t\tif( isLastSlide() && config.loop === false ) {\n\t\t\tslide( 0, 0 );\n\t\t\tresumeAutoSlide();\n\t\t}\n\t\t// Resume\n\t\telse if( autoSlidePaused ) {\n\t\t\tresumeAutoSlide();\n\t\t}\n\t\t// Pause\n\t\telse {\n\t\t\tpauseAutoSlide();\n\t\t}\n\n\t}\n\n\n\t// --------------------------------------------------------------------//\n\t// ------------------------------- API --------------------------------//\n\t// --------------------------------------------------------------------//\n\n\t// The public reveal.js API\n\tconst API = {\n\t\tVERSION,\n\n\t\tinitialize,\n\t\tconfigure,\n\t\tdestroy,\n\n\t\tsync,\n\t\tsyncSlide,\n\t\tsyncFragments: fragments.sync.bind( fragments ),\n\n\t\t// Navigation methods\n\t\tslide,\n\t\tleft: navigateLeft,\n\t\tright: navigateRight,\n\t\tup: navigateUp,\n\t\tdown: navigateDown,\n\t\tprev: navigatePrev,\n\t\tnext: navigateNext,\n\n\t\t// Navigation aliases\n\t\tnavigateLeft, navigateRight, navigateUp, navigateDown, navigatePrev, navigateNext,\n\n\t\t// Fragment methods\n\t\tnavigateFragment: fragments.goto.bind( fragments ),\n\t\tprevFragment: fragments.prev.bind( fragments ),\n\t\tnextFragment: fragments.next.bind( fragments ),\n\n\t\t// Event binding\n\t\ton,\n\t\toff,\n\n\t\t// Legacy event binding methods left in for backwards compatibility\n\t\taddEventListener: on,\n\t\tremoveEventListener: off,\n\n\t\t// Forces an update in slide layout\n\t\tlayout,\n\n\t\t// Randomizes the order of slides\n\t\tshuffle,\n\n\t\t// Returns an object with the available routes as booleans (left/right/top/bottom)\n\t\tavailableRoutes,\n\n\t\t// Returns an object with the available fragments as booleans (prev/next)\n\t\tavailableFragments: fragments.availableRoutes.bind( fragments ),\n\n\t\t// Toggles a help overlay with keyboard shortcuts\n\t\ttoggleHelp,\n\n\t\t// Toggles the overview mode on/off\n\t\ttoggleOverview: overview.toggle.bind( overview ),\n\n\t\t// Toggles the scroll view on/off\n\t\ttoggleScrollView: scrollView.toggle.bind( scrollView ),\n\n\t\t// Toggles the \"black screen\" mode on/off\n\t\ttogglePause,\n\n\t\t// Toggles the auto slide mode on/off\n\t\ttoggleAutoSlide,\n\n\t\t// Toggles visibility of the jump-to-slide UI\n\t\ttoggleJumpToSlide,\n\n\t\t// Slide navigation checks\n\t\tisFirstSlide,\n\t\tisLastSlide,\n\t\tisLastVerticalSlide,\n\t\tisVerticalSlide,\n\t\tisVerticalStack,\n\n\t\t// State checks\n\t\tisPaused,\n\t\tisAutoSliding,\n\t\tisSpeakerNotes: notes.isSpeakerNotesWindow.bind( notes ),\n\t\tisOverview: overview.isActive.bind( overview ),\n\t\tisFocused: focus.isFocused.bind( focus ),\n\n\t\tisScrollView: scrollView.isActive.bind( scrollView ),\n\t\tisPrintView: printView.isActive.bind( printView ),\n\n\t\t// Checks if reveal.js has been loaded and is ready for use\n\t\tisReady: () => ready,\n\n\t\t// Slide preloading\n\t\tloadSlide: slideContent.load.bind( slideContent ),\n\t\tunloadSlide: slideContent.unload.bind( slideContent ),\n\n\t\t// Media playback\n\t\tstartEmbeddedContent: () => slideContent.startEmbeddedContent( currentSlide ),\n\t\tstopEmbeddedContent: () => slideContent.stopEmbeddedContent( currentSlide, { unloadIframes: false } ),\n\n\t\t// Preview management\n\t\tshowPreview,\n\t\thidePreview: closeOverlay,\n\n\t\t// Adds or removes all internal event listeners\n\t\taddEventListeners,\n\t\tremoveEventListeners,\n\t\tdispatchEvent,\n\n\t\t// Facility for persisting and restoring the presentation state\n\t\tgetState,\n\t\tsetState,\n\n\t\t// Presentation progress on range of 0-1\n\t\tgetProgress,\n\n\t\t// Returns the indices of the current, or specified, slide\n\t\tgetIndices,\n\n\t\t// Returns an Array of key:value maps of the attributes of each\n\t\t// slide in the deck\n\t\tgetSlidesAttributes,\n\n\t\t// Returns the number of slides that we have passed\n\t\tgetSlidePastCount,\n\n\t\t// Returns the total number of slides\n\t\tgetTotalSlides,\n\n\t\t// Returns the slide element at the specified index\n\t\tgetSlide,\n\n\t\t// Returns the previous slide element, may be null\n\t\tgetPreviousSlide: () => previousSlide,\n\n\t\t// Returns the current slide element\n\t\tgetCurrentSlide: () => currentSlide,\n\n\t\t// Returns the slide background element at the specified index\n\t\tgetSlideBackground,\n\n\t\t// Returns the speaker notes string for a slide, or null\n\t\tgetSlideNotes: notes.getSlideNotes.bind( notes ),\n\n\t\t// Returns an Array of all slides\n\t\tgetSlides,\n\n\t\t// Returns an array with all horizontal/vertical slides in the deck\n\t\tgetHorizontalSlides,\n\t\tgetVerticalSlides,\n\n\t\t// Checks if the presentation contains two or more horizontal\n\t\t// and vertical slides\n\t\thasHorizontalSlides,\n\t\thasVerticalSlides,\n\n\t\t// Checks if the deck has navigated on either axis at least once\n\t\thasNavigatedHorizontally: () => navigationHistory.hasNavigatedHorizontally,\n\t\thasNavigatedVertically: () => navigationHistory.hasNavigatedVertically,\n\n\t\tshouldAutoAnimateBetween,\n\n\t\t// Adds/removes a custom key binding\n\t\taddKeyBinding: keyboard.addKeyBinding.bind( keyboard ),\n\t\tremoveKeyBinding: keyboard.removeKeyBinding.bind( keyboard ),\n\n\t\t// Programmatically triggers a keyboard event\n\t\ttriggerKey: keyboard.triggerKey.bind( keyboard ),\n\n\t\t// Registers a new shortcut to include in the help overlay\n\t\tregisterKeyboardShortcut: keyboard.registerKeyboardShortcut.bind( keyboard ),\n\n\t\tgetComputedSlideSize,\n\t\tsetCurrentScrollPage,\n\n\t\t// Returns the current scale of the presentation content\n\t\tgetScale: () => scale,\n\n\t\t// Returns the current configuration object\n\t\tgetConfig: () => config,\n\n\t\t// Helper method, retrieves query string as a key:value map\n\t\tgetQueryHash: Util.getQueryHash,\n\n\t\t// Returns the path to the current slide as represented in the URL\n\t\tgetSlidePath: location.getHash.bind( location ),\n\n\t\t// Returns reveal.js DOM elements\n\t\tgetRevealElement: () => revealElement,\n\t\tgetSlidesElement: () => dom.slides,\n\t\tgetViewportElement: () => dom.viewport,\n\t\tgetBackgroundsElement: () => backgrounds.element,\n\n\t\t// API for registering and retrieving plugins\n\t\tregisterPlugin: plugins.registerPlugin.bind( plugins ),\n\t\thasPlugin: plugins.hasPlugin.bind( plugins ),\n\t\tgetPlugin: plugins.getPlugin.bind( plugins ),\n\t\tgetPlugins: plugins.getRegisteredPlugins.bind( plugins )\n\n\t};\n\n\t// Our internal API which controllers have access to\n\tUtil.extend( Reveal, {\n\t\t...API,\n\n\t\t// Methods for announcing content to screen readers\n\t\tannounceStatus,\n\t\tgetStatusText,\n\n\t\t// Controllers\n\t\tfocus,\n\t\tscroll: scrollView,\n\t\tprogress,\n\t\tcontrols,\n\t\tlocation,\n\t\toverview,\n\t\tfragments,\n\t\tbackgrounds,\n\t\tslideContent,\n\t\tslideNumber,\n\n\t\tonUserInput,\n\t\tcloseOverlay,\n\t\tupdateSlidesVisibility,\n\t\tlayoutSlideContents,\n\t\ttransformSlides,\n\t\tcueAutoSlide,\n\t\tcancelAutoSlide\n\t} );\n\n\treturn API;\n\n};\n","import Deck, { VERSION } from './reveal.js'\n\n/**\n * Expose the Reveal class to the window. To create a\n * new instance:\n * let deck = new Reveal( document.querySelector( '.reveal' ), {\n * controls: false\n * } );\n * deck.initialize().then(() => {\n * // reveal.js is ready\n * });\n */\nlet Reveal = Deck;\n\n\n/**\n * The below is a thin shell that mimics the pre 4.0\n * reveal.js API and ensures backwards compatibility.\n * This API only allows for one Reveal instance per\n * page, whereas the new API above lets you run many\n * presentations on the same page.\n *\n * Reveal.initialize( { controls: false } ).then(() => {\n * // reveal.js is ready\n * });\n */\n\nlet enqueuedAPICalls = [];\n\nReveal.initialize = options => {\n\n\t// Create our singleton reveal.js instance\n\tObject.assign( Reveal, new Deck( document.querySelector( '.reveal' ), options ) );\n\n\t// Invoke any enqueued API calls\n\tenqueuedAPICalls.map( method => method( Reveal ) );\n\n\treturn Reveal.initialize();\n\n}\n\n/**\n * The pre 4.0 API let you add event listener before\n * initializing. We maintain the same behavior by\n * queuing up premature API calls and invoking all\n * of them when Reveal.initialize is called.\n */\n[ 'configure', 'on', 'off', 'addEventListener', 'removeEventListener', 'registerPlugin' ].forEach( method => {\n\tReveal[method] = ( ...args ) => {\n\t\tenqueuedAPICalls.push( deck => deck[method].call( null, ...args ) );\n\t}\n} );\n\nReveal.isReady = () => false;\n\nReveal.VERSION = VERSION;\n\nexport default Reveal;"],"names":["extend","a","b","i","queryAll","el","selector","Array","from","querySelectorAll","toggleClass","className","value","classList","add","remove","deserialize","match","parseFloat","transformElement","element","transform","style","matches","target","matchesMethod","matchesSelector","msMatchesSelector","call","closest","parentNode","createStyleSheet","tag","document","createElement","type","length","styleSheet","cssText","appendChild","createTextNode","head","getQueryHash","query","location","search","replace","split","shift","pop","unescape","fileExtensionToMimeMap","mp4","m4a","ogv","mpeg","webm","UA","navigator","userAgent","isMobile","test","platform","maxTouchPoints","isAndroid","e","t","slice","o","l","u","cancelAnimationFrame","requestAnimationFrame","s","filter","dirty","active","c","forEach","styleComputed","m","y","v","p","d","f","S","availableWidth","clientWidth","currentWidth","scrollWidth","previousFontSize","currentFontSize","Math","min","max","minSize","maxSize","whiteSpace","multiLine","n","getComputedStyle","getPropertyValue","display","preStyleTestCompleted","fontSize","dispatchEvent","CustomEvent","detail","oldValue","newValue","scaleFactor","h","w","observeMutations","observer","disconnect","originalStyle","z","F","MutationObserver","observe","g","subtree","childList","characterData","W","E","clearTimeout","setTimeout","x","observeWindowDelay","M","Object","defineProperty","set","concat","observeWindow","fitAll","C","assign","map","newbie","push","fit","unfreeze","freeze","unsubscribe","arguments","window","SlideContent","constructor","Reveal","this","startEmbeddedIframe","bind","shouldPreload","isScrollView","preload","getConfig","preloadIframes","hasAttribute","load","slide","options","tagName","setAttribute","getAttribute","removeAttribute","media","sources","source","background","slideBackgroundElement","backgroundContent","slideBackgroundContentElement","backgroundIframe","backgroundImage","backgroundVideo","backgroundVideoLoop","backgroundVideoMuted","trim","encodeRFC3986URI","url","encodeURI","charCodeAt","toString","toUpperCase","decodeURI","join","isSpeakerNotes","video","muted","sourceElement","getMimeTypeFromFile","filename","excludeIframes","iframe","width","height","maxHeight","maxWidth","backgroundIframeElement","querySelector","layout","scopeElement","fitty","unload","getSlideBackground","formatEmbeddedContent","_appendParamToIframeSource","sourceAttribute","sourceURL","param","getSlidesElement","src","indexOf","startEmbeddedContent","autoplay","autoPlayMedia","play","readyState","startEmbeddedMedia","promise","catch","controls","addEventListener","removeEventListener","event","isAttachedToDOM","isVisible","currentTime","contentWindow","postMessage","stopEmbeddedContent","unloadIframes","pause","SLIDES_SELECTOR","HORIZONTAL_SLIDES_SELECTOR","VERTICAL_SLIDES_SELECTOR","POST_MESSAGE_METHOD_BLACKLIST","FRAGMENT_STYLE_REGEX","SlideNumber","render","getRevealElement","configure","config","oldConfig","slideNumberDisplay","slideNumber","isPrintView","showSlideNumber","update","innerHTML","getSlideNumber","getCurrentSlide","format","getHorizontalSlides","horizontalOffset","dataset","visibility","getSlidePastCount","getTotalSlides","indices","getIndices","sep","isVerticalSlide","getHash","formatNumber","delimiter","isNaN","destroy","JumpToSlide","onInput","onBlur","onKeyDown","jumpInput","placeholder","show","indicesOnShow","focus","hide","jumpTimeout","jump","slideNumberFormat","getSlides","parseInt","getIndicesFromHash","oneBasedIndex","jumpAfter","delay","regex","RegExp","find","innerText","cancel","confirm","keyCode","stopImmediatePropagation","colorToRgb","color","hex3","r","charAt","hex6","rgb","rgba","Backgrounds","create","slideh","backgroundStack","createBackground","slidev","parallaxBackgroundImage","backgroundSize","parallaxBackgroundSize","backgroundRepeat","parallaxBackgroundRepeat","backgroundPosition","parallaxBackgroundPosition","container","contentElement","sync","data","backgroundColor","backgroundGradient","backgroundTransition","backgroundOpacity","dataPreload","opacity","contrastClass","getContrastClass","contrastColor","computedBackgroundStyle","bubbleSlideContrastClassToElement","classToBubble","contains","includeAll","currentSlide","currentBackground","horizontalPast","rtl","horizontalFuture","childNodes","backgroundh","backgroundv","indexv","previousBackground","slideContent","currentBackgroundContent","backgroundImageURL","previousBackgroundHash","currentBackgroundHash","updateParallax","backgroundWidth","backgroundHeight","horizontalSlides","verticalSlides","getVerticalSlides","horizontalOffsetMultiplier","slideWidth","offsetWidth","horizontalSlideCount","parallaxBackgroundHorizontal","verticalOffsetMultiplier","verticalOffset","slideHeight","offsetHeight","verticalSlideCount","parallaxBackgroundVertical","autoAnimateCounter","AutoAnimate","run","fromSlide","toSlide","reset","allSlides","toSlideIndex","fromSlideIndex","autoAnimateStyleSheet","animationOptions","getAutoAnimateOptions","autoAnimate","slideDirection","fromSlideIsHidden","css","getAutoAnimatableElements","elements","autoAnimateElements","to","autoAnimateUnmatched","defaultUnmatchedDuration","duration","defaultUnmatchedDelay","getUnmatchedAutoAnimateElements","unmatchedElement","unmatchedOptions","id","autoAnimateTarget","fontWeight","sheet","removeChild","elementOptions","easing","fromProps","getAutoAnimatableProperties","toProps","styles","translate","scale","presentationScale","getScale","delta","scaleX","scaleY","round","propertyName","toValue","fromValue","explicitValue","toStyleProperties","keys","inheritedOptions","autoAnimateEasing","autoAnimateDuration","autoAnimatedParent","autoAnimateDelay","direction","properties","bounds","measure","center","getBoundingClientRect","offsetLeft","offsetTop","computedStyles","autoAnimateStyles","property","pairs","autoAnimateMatcher","getAutoAnimatePairs","reserved","pair","index","textNodes","findAutoAnimateMatches","node","nodeName","textContent","getLocalBoundingBox","fromScope","toScope","serializer","fromMatches","toMatches","key","fromElement","primaryIndex","secondaryIndex","rootElement","children","reduce","result","containsAnimatedElements","ScrollView","activatedCallbacks","onScroll","activate","stateBeforeActivation","getState","slideHTMLBeforeActivation","slideBackgrounds","presentationBackground","viewportElement","viewportStyles","pageElements","pageContainer","previousSlide","createPageElement","contentContainer","shouldAutoAnimateBetween","page","slideBackground","pageBackground","stickyContainer","insertBefore","horizontalSlide","isVerticalStack","verticalSlide","createProgressBar","stack","setState","callback","restoreScrollPosition","passive","deactivate","stateBeforeDeactivation","removeProgressBar","toggle","override","isActive","progressBar","progressBarInner","progressBarPlayhead","firstChild","handleDocumentMouseMove","progress","clientY","top","progressBarHeight","scrollTop","scrollHeight","handleDocumentMouseUp","draggingProgressBar","showProgressBar","preventDefault","syncPages","syncScrollPosition","slideSize","getComputedSlideSize","innerWidth","innerHeight","useCompactLayout","scrollLayout","viewportHeight","compactHeight","pageHeight","scrollTriggerHeight","setProperty","scrollSnapType","scrollSnap","slideTriggers","pages","pageElement","createPage","slideElement","stickyElement","backgroundElement","autoAnimatePages","activatePage","deactivatePage","createFragmentTriggersForPage","createAutoAnimateTriggersForPage","totalScrollTriggerCount","scrollTriggers","total","triggerStick","scrollSnapAlign","marginTop","removeProperty","scrollPadding","totalHeight","position","setTriggerRanges","scrollProgress","syncProgressBar","trigger","rangeStart","range","scrollTriggerSegmentSize","scrollTrigger","fragmentGroups","fragments","sort","autoAnimateElement","autoAnimatePage","indexh","viewportHeightFactor","playheadHeight","progressBarScrollableHeight","progressSegmentHeight","spacing","slideTrigger","progressBarSlide","scrollTriggerElements","triggerElement","scrollProgressMid","activePage","loaded","activateTrigger","deactivateTrigger","setProgressBarValue","getAllPages","hideProgressBarTimeout","prev","next","scrollToSlide","getScrollTriggerBySlide","storeScrollPosition","storeScrollPositionTimeout","sessionStorage","setItem","origin","pathname","scrollPosition","getItem","scrollOrigin","setCurrentScrollPage","backgrounds","sibling","getSlideByIndices","flatMap","getViewportElement","PrintView","slides","injectPageNumbers","pageWidth","floor","margin","Promise","documentElement","body","layoutSlideContents","slideScrollHeights","left","contentHeight","numberOfPages","ceil","pdfMaxPagesPerSlide","pdfPageHeightOffset","showNotes","notes","getSlideNotes","notesSpacing","notesLayout","notesElement","bottom","numberElement","pdfSeparateFragments","previousFragmentStep","fragment","clonedPage","cloneNode","fragmentNumber","view","Fragments","disable","enable","availableRoutes","hiddenFragments","grouped","ordered","unordered","sorted","group","sortAll","changedFragments","shown","hidden","maxIndex","currentFragment","wasVisible","announceStatus","getStatusText","bubbles","goto","offset","lastVisibleFragment","fragmentInURL","writeURL","Overview","onSlideClicked","overview","cancelAutoSlide","getBackgroundsElement","overviewSlideWidth","overviewSlideHeight","updateSlidesVisibility","hslide","vslide","hbackground","vbackground","vmin","transformSlides","cueAutoSlide","Keyboard","shortcuts","bindings","onDocumentKeyDown","navigationMode","unbind","addKeyBinding","binding","description","removeKeyBinding","triggerKey","registerKeyboardShortcut","getShortcuts","getBindings","keyboardCondition","isFocused","autoSlideWasPaused","isAutoSliding","onUserInput","activeElementIsCE","activeElement","isContentEditable","activeElementIsInput","activeElementIsNotes","unusedModifier","shiftKey","altKey","ctrlKey","metaKey","resumeKeyCodes","keyboard","isPaused","useLinearMode","hasHorizontalSlides","hasVerticalSlides","triggered","apply","action","skipFragments","right","undefined","up","Number","MAX_VALUE","down","includes","togglePause","requestMethod","requestFullscreen","webkitRequestFullscreen","webkitRequestFullScreen","mozRequestFullScreen","msRequestFullscreen","enterFullscreen","embedded","autoSlideStoppable","toggleAutoSlide","jumpToSlide","toggleJumpToSlide","toggleHelp","closeOverlay","Location","MAX_REPLACE_STATE_FREQUENCY","writeURLTimeout","replaceStateTimestamp","onWindowHashChange","hash","name","bits","hashIndexBase","hashOneBasedIndex","getElementById","decodeURIComponent","error","readURL","currentIndices","newIndices","history","debouncedReplaceState","replaceState","Date","now","replaceStateTimeout","encodeURIComponent","Controls","onNavigateLeftClicked","onNavigateRightClicked","onNavigateUpClicked","onNavigateDownClicked","onNavigatePrevClicked","onNavigateNextClicked","revealElement","controlsLeft","controlsRight","controlsUp","controlsDown","controlsPrev","controlsNext","controlsRightArrow","controlsLeftArrow","controlsDownArrow","controlsLayout","controlsBackArrows","pointerEvents","eventName","routes","fragmentsRoutes","controlsTutorial","hasNavigatedVertically","hasNavigatedHorizontally","Progress","onProgressClicked","bar","getProgress","getMaxWidth","slidesTotal","slideIndex","clientX","targetIndices","Pointer","lastMouseWheelStep","cursorHidden","cursorInactiveTimeout","onDocumentCursorActive","onDocumentMouseScroll","mouseWheel","hideInactiveCursor","showCursor","cursor","hideCursor","hideCursorTime","wheelDelta","loadScript","script","async","defer","onload","onreadystatechange","onerror","err","Error","lastChild","Plugins","reveal","state","registeredPlugins","asyncDependencies","plugins","dependencies","registerPlugin","resolve","scripts","scriptsToLoad","condition","scriptLoadedCallback","initPlugins","then","console","warn","pluginValues","values","pluginsToInitialize","loadAsync","initNextPlugin","afterPlugInitialized","plugin","init","hasPlugin","getPlugin","getRegisteredPlugins","Touch","touchStartX","touchStartY","touchStartCount","touchCaptured","onPointerDown","onPointerMove","onPointerUp","onTouchStart","onTouchMove","onTouchEnd","msPointerEnabled","isSwipePrevented","touches","currentX","currentY","includeFragments","deltaX","deltaY","abs","pointerType","MSPOINTER_TYPE_TOUCH","STATE_FOCUS","STATE_BLUR","Focus","onRevealPointerDown","onDocumentPointerDown","blur","Notes","updateVisibility","hasNotes","isSpeakerNotesWindow","notesElements","Playback","progressCheck","diameter","diameter2","thickness","playing","progressOffset","canvas","context","getContext","setPlaying","wasPlaying","animate","progressBefore","radius","iconSize","endAngle","PI","startAngle","save","clearRect","beginPath","arc","fillStyle","fill","lineWidth","strokeStyle","stroke","fillRect","moveTo","lineTo","restore","on","listener","off","defaultConfig","minScale","maxScale","respondToHashChanges","disableLayout","touch","loop","shuffle","help","showHiddenSlides","autoSlide","autoSlideMethod","defaultTiming","previewLinks","postMessageEvents","focusBodyOnPageVisibilityChange","transition","transitionSpeed","scrollActivationWidth","POSITIVE_INFINITY","viewDistance","mobileViewDistance","sortFragmentsOnSync","VERSION","Deck","autoSlidePlayer","ready","navigationHistory","slidesTransform","dom","autoSlideTimeout","autoSlideStartTime","autoSlidePaused","scrollView","printView","pointer","start","Util","wrapper","parent","childElementCount","Device","pauseOverlay","createSingletonNode","tagname","classname","nodes","testNode","statusElement","overflow","clip","createStatusElement","setupDOM","onPostMessage","setInterval","scrollLeft","onFullscreenChange","activatePrintView","activateScrollView","removeEventListeners","viewport","activateInitialView","text","nodeType","isAriaHidden","isDisplayHidden","child","isReady","numberOfSlides","resume","enablePreviewLinks","disablePreviewLinks","onAutoSlidePlayerClick","addEventListeners","onWindowResize","onSlidesClicked","onTransitionEnd","onPageVisibilityChange","useCapture","transforms","createEvent","initEvent","dispatchPostMessage","dispatchSlideChanged","self","message","namespace","JSON","stringify","onPreviewLinkClicked","showPreview","overlay","showHelp","html","viewportWidth","size","oldScale","presentationWidth","presentationHeight","zoom","len","checkResponsiveScrollView","remainingHeight","getRemainingHeight","newHeight","oldHeight","nw","naturalWidth","videoWidth","nh","naturalHeight","videoHeight","es","setPreviousVerticalIndex","getPreviousVerticalIndex","attributeName","isLastVerticalSlide","nextElementSibling","isFirstSlide","isLastSlide","wasPaused","defaultPrevented","stateBefore","indexhBefore","indexvBefore","updateSlides","slideChanged","currentHorizontalSlide","currentVerticalSlides","autoAnimateTransition","stateLoop","j","splice","beforeSlide","random","slidesLength","printMode","loopedForwards","loopedBackwards","reverse","showFragmentsIn","hideFragmentsIn","wasPresent","slideState","distanceX","distanceY","horizontalSlidesLength","verticalSlidesLength","oy","fragmentRoutes","pastCount","mainLoop","isVertical","getSlide","indexf","paused","fragmentAutoSlide","parentAutoSlide","slideAutoSlide","playbackRate","navigateNext","pauseAutoSlide","resumeAutoSlide","navigateLeft","navigateRight","navigateUp","navigateDown","navigatePrev","parse","method","args","anchor","fullscreenElement","webkitFullscreenElement","currentTarget","API","initialize","initOptions","setViewport","syncSlide","syncFragments","navigateFragment","prevFragment","nextFragment","availableFragments","toggleOverview","toggleScrollView","isOverview","loadSlide","unloadSlide","hidePreview","pausedFlag","overviewFlag","totalCount","allFragments","fragmentWeight","getSlidesAttributes","attributes","attribute","getPreviousSlide","getSlidePath","getPlugins","scroll","enqueuedAPICalls","deck"],"mappings":";;;;;;;uOAOO,MAAMA,EAASA,CAAEC,EAAGC,KAE1B,IAAK,IAAIC,KAAKD,EACbD,EAAGE,GAAMD,EAAGC,GAGb,OAAOF,CAAC,EAOIG,EAAWA,CAAEC,EAAIC,IAEtBC,MAAMC,KAAMH,EAAGI,iBAAkBH,IAO5BI,EAAcA,CAAEL,EAAIM,EAAWC,KACvCA,EACHP,EAAGQ,UAAUC,IAAKH,GAGlBN,EAAGQ,UAAUE,OAAQJ,EACtB,EASYK,EAAgBJ,IAE5B,GAAqB,iBAAVA,EAAqB,CAC/B,GAAc,SAAVA,EAAmB,OAAO,KACzB,GAAc,SAAVA,EAAmB,OAAO,EAC9B,GAAc,UAAVA,EAAoB,OAAO,EAC/B,GAAIA,EAAMK,MAAO,eAAkB,OAAOC,WAAYN,EAC5D,CAEA,OAAOA,CAAK,EA4BAO,EAAmBA,CAAEC,EAASC,KAE1CD,EAAQE,MAAMD,UAAYA,CAAS,EAavBE,EAAUA,CAAEC,EAAQlB,KAEhC,IAAImB,EAAgBD,EAAOD,SAAWC,EAAOE,iBAAmBF,EAAOG,kBAEvE,SAAWF,IAAiBA,EAAcG,KAAMJ,EAAQlB,GAAY,EAexDuB,EAAUA,CAAEL,EAAQlB,KAGhC,GAA8B,mBAAnBkB,EAAOK,QACjB,OAAOL,EAAOK,QAASvB,GAIxB,KAAOkB,GAAS,CACf,GAAID,EAASC,EAAQlB,GACpB,OAAOkB,EAIRA,EAASA,EAAOM,UACjB,CAEA,OAAO,IAAI,EAoECC,EAAqBnB,IAEjC,IAAIoB,EAAMC,SAASC,cAAe,SAclC,OAbAF,EAAIG,KAAO,WAEPvB,GAASA,EAAMwB,OAAS,IACvBJ,EAAIK,WACPL,EAAIK,WAAWC,QAAU1B,EAGzBoB,EAAIO,YAAaN,SAASO,eAAgB5B,KAI5CqB,SAASQ,KAAKF,YAAaP,GAEpBA,CAAG,EAOEU,EAAeA,KAE3B,IAAIC,EAAQ,CAAA,EAEZC,SAASC,OAAOC,QAAS,4BAA4B7C,IACpD0C,EAAO1C,EAAE8C,MAAO,KAAMC,SAAY/C,EAAE8C,MAAO,KAAME,KAAK,IAIvD,IAAK,IAAI9C,KAAKwC,EAAQ,CACrB,IAAI/B,EAAQ+B,EAAOxC,GAEnBwC,EAAOxC,GAAMa,EAAakC,SAAUtC,GACrC,CAMA,YAFqC,IAA1B+B,EAAoB,qBAA2BA,EAAoB,aAEvEA,CAAK,EAyCPQ,EAAyB,CAC9BC,IAAO,YACPC,IAAO,YACPC,IAAO,YACPC,KAAQ,aACRC,KAAQ,cChSHC,EAAKC,UAAUC,UAERC,EAAW,+BAA+BC,KAAMJ,IAC9B,aAAvBC,UAAUI,UAA2BJ,UAAUK,eAAiB,EAI3DC,EAAY,YAAYH,KAAMJ,GCF3C,IAAIQ,EAAE,SAASA,GAAG,GAAGA,EAAE,CAAC,IAAIC,EAAE,SAASD,GAAG,MAAM,GAAGE,MAAMvC,KAAKqC,EAAE,EAAcG,EAAE,EAAEnE,EAAE,GAAGoE,EAAE,KAAKC,EAAE,0BAA0BL,EAAE,WAAWA,EAAEM,qBAAqBF,GAAGA,EAAEJ,EAAEO,uBAAuB,WAAW,OAAOC,EAAExE,EAAEyE,QAAQ,SAAST,GAAG,OAAOA,EAAEU,OAAOV,EAAEW,MAAO,IAAI,GAAE,EAAE,WAAY,EAACC,EAAE,SAASZ,GAAG,OAAO,WAAWhE,EAAE6E,SAAS,SAASZ,GAAG,OAAOA,EAAES,MAAMV,CAAE,IAAGK,GAAG,CAAC,EAAEG,EAAE,SAASR,GAAGA,EAAES,iBAAiBT,GAAG,OAAOA,EAAEc,aAAc,IAAGD,SAAS,SAASb,GAAGA,EAAEc,cAAcC,EAAEf,EAAG,IAAGA,EAAES,OAAOO,GAAGH,QAAQI,GAAG,IAAIhB,EAAED,EAAES,OAAOS,GAAGjB,EAAEY,QAAQM,GAAGlB,EAAEY,SAAS,SAASb,GAAGiB,EAAEjB,GAAGoB,EAAEpB,EAAG,IAAGC,EAAEY,QAAQQ,EAAE,EAAED,EAAE,SAASpB,GAAG,OAAOA,EAAEU,MAA3gB,CAAkhB,EAAES,EAAE,SAASnB,GAAGA,EAAEsB,eAAetB,EAAE7C,QAAQU,WAAW0D,YAAYvB,EAAEwB,aAAaxB,EAAE7C,QAAQsE,YAAYzB,EAAE0B,iBAAiB1B,EAAE2B,gBAAgB3B,EAAE2B,gBAAgBC,KAAKC,IAAID,KAAKE,IAAI9B,EAAE+B,QAAQ/B,EAAEsB,eAAetB,EAAEwB,aAAaxB,EAAE0B,kBAAkB1B,EAAEgC,SAAShC,EAAEiC,WAAWjC,EAAEkC,WAAWlC,EAAE2B,kBAAkB3B,EAAE+B,QAAQ,SAAS,QAAQ,EAAEb,EAAE,SAASlB,GAAG,OAA51B,IAAm2BA,EAAEU,OAAr2B,IAAg3BV,EAAEU,OAAWV,EAAE7C,QAAQU,WAAW0D,cAAcvB,EAAEsB,cAAc,EAAEP,EAAE,SAASd,GAAG,IAAIkC,EAAEnC,EAAEoC,iBAAiBnC,EAAE9C,QAAQ,MAAM,OAAO8C,EAAE0B,gBAAgB1E,WAAWkF,EAAEE,iBAAiB,cAAcpC,EAAEqC,QAAQH,EAAEE,iBAAiB,WAAWpC,EAAEgC,WAAWE,EAAEE,iBAAiB,gBAAe,CAAE,EAAErB,EAAE,SAAShB,GAAG,IAAIC,GAAE,EAAG,OAAOD,EAAEuC,wBAAwB,UAAU3C,KAAKI,EAAEsC,WAAWrC,GAAE,EAAGD,EAAEsC,QAAQ,gBAAgB,WAAWtC,EAAEiC,aAAahC,GAAE,EAAGD,EAAEiC,WAAW,UAAUjC,EAAEuC,uBAAsB,EAAGtC,EAAE,EAAEgB,EAAE,SAASjB,GAAGA,EAAE7C,QAAQE,MAAM4E,WAAWjC,EAAEiC,WAAWjC,EAAE7C,QAAQE,MAAMiF,QAAQtC,EAAEsC,QAAQtC,EAAE7C,QAAQE,MAAMmF,SAASxC,EAAE2B,gBAAgB,IAAI,EAAEN,EAAE,SAASrB,GAAGA,EAAE7C,QAAQsF,cAAc,IAAIC,YAAY,MAAM,CAACC,OAAO,CAACC,SAAS5C,EAAE0B,iBAAiBmB,SAAS7C,EAAE2B,gBAAgBmB,YAAY9C,EAAE2B,gBAAgB3B,EAAE0B,oBAAoB,EAAEqB,EAAE,SAAS/C,EAAEC,GAAG,OAAO,WAAWD,EAAEU,MAAMT,EAAED,EAAEW,QAAQN,GAAG,CAAC,EAAE2C,EAAE,SAAShD,GAAG,OAAO,WAAWhE,EAAEA,EAAEyE,QAAQ,SAASR,GAAG,OAAOA,EAAE9C,UAAU6C,EAAE7C,OAAQ,IAAG6C,EAAEiD,kBAAkBjD,EAAEkD,SAASC,aAAanD,EAAE7C,QAAQE,MAAM4E,WAAWjC,EAAEoD,cAAcnB,WAAWjC,EAAE7C,QAAQE,MAAMiF,QAAQtC,EAAEoD,cAAcd,QAAQtC,EAAE7C,QAAQE,MAAMmF,SAASxC,EAAEoD,cAAcZ,QAAQ,CAAC,EAAEvG,EAAE,SAAS+D,GAAG,OAAO,WAAWA,EAAEW,SAASX,EAAEW,QAAO,EAAGN,IAAI,CAAC,EAAEgD,EAAE,SAASrD,GAAG,OAAO,WAAW,OAAOA,EAAEW,QAAO,CAAE,CAAC,EAAE2C,EAAE,SAAStD,GAAGA,EAAEiD,mBAAmBjD,EAAEkD,SAAS,IAAIK,iBAAiBR,EAAE/C,EAAlqE,IAAwqEA,EAAEkD,SAASM,QAAQxD,EAAE7C,QAAQ6C,EAAEiD,kBAAkB,EAAEQ,EAAE,CAAC1B,QAAQ,GAAGC,QAAQ,IAAIE,WAAU,EAAGe,iBAAiB,qBAAqBjD,GAAG,CAAC0D,SAAQ,EAAGC,WAAU,EAAGC,eAAc,IAAKC,EAAE,KAAKC,EAAE,WAAW9D,EAAE+D,aAAaF,GAAGA,EAAE7D,EAAEgE,WAAWpD,EAAx4E,GAA64EqD,EAAEC,mBAAmB,EAAEC,EAAE,CAAC,SAAS,qBAAqB,OAAOC,OAAOC,eAAeJ,EAAE,gBAAgB,CAACK,IAAI,SAASrE,GAAG,IAAIkC,EAAE,GAAGoC,OAAOtE,EAAE,MAAM,SAAS,iBAAiBkE,EAAEtD,SAAO,SAAWZ,GAAGD,EAAEmC,GAAGlC,EAAE6D,EAAG,GAAE,IAAIG,EAAEO,eAAc,EAAGP,EAAEC,mBAAmB,IAAID,EAAEQ,OAAO7D,EAAET,GAAG8D,CAAC,CAAC,SAASS,EAAE1E,EAAEC,GAAG,IAAIkC,EAAEiC,OAAOO,OAAO,CAAE,EAAClB,EAAExD,GAAG/D,EAAE8D,EAAE4E,KAAK,SAAS5E,GAAG,IAAIC,EAAEmE,OAAOO,OAAO,CAAA,EAAGxC,EAAE,CAAChF,QAAQ6C,EAAEW,QAAO,IAAK,OAAO,SAASX,GAAGA,EAAEoD,cAAc,CAACnB,WAAWjC,EAAE7C,QAAQE,MAAM4E,WAAWK,QAAQtC,EAAE7C,QAAQE,MAAMiF,QAAQE,SAASxC,EAAE7C,QAAQE,MAAMmF,UAAUc,EAAEtD,GAAGA,EAAE6E,QAAO,EAAG7E,EAAEU,OAAM,EAAG1E,EAAE8I,KAAK9E,EAAE,CAA3K,CAA6KC,GAAG,CAAC9C,QAAQ6C,EAAE+E,IAAIhC,EAAE9C,EAAEE,GAAG6E,SAAS/I,EAAEgE,GAAGgF,OAAO5B,EAAEpD,GAAGiF,YAAYlC,EAAE/C,GAAI,IAAG,OAAOI,IAAInE,CAAC,CAAC,SAAS+H,EAAEjE,GAAG,IAAImC,EAAEgD,UAAUhH,OAAO,QAAG,IAASgH,UAAU,GAAGA,UAAU,GAAG,CAAA,EAAG,MAAM,iBAAiBnF,EAAE0E,EAAEzE,EAAEjC,SAASxB,iBAAiBwD,IAAImC,GAAGuC,EAAE,CAAC1E,GAAGmC,GAAG,EAAE,CAAC,CAAlvG,CAAovG,oBAAoBiD,OAAO,KAAKA,QCI3wG,MAAMC,EAEpBC,WAAAA,CAAaC,GAEZC,KAAKD,OAASA,EAEdC,KAAKC,oBAAsBD,KAAKC,oBAAoBC,KAAMF,KAE3D,CAQAG,aAAAA,CAAexI,GAEd,GAAIqI,KAAKD,OAAOK,eACf,OAAO,EAIR,IAAIC,EAAUL,KAAKD,OAAOO,YAAYC,eAQtC,MAJuB,kBAAZF,IACVA,EAAU1I,EAAQ6I,aAAc,iBAG1BH,CACR,CASAI,IAAAA,CAAMC,EAAOC,EAAU,IAGtBD,EAAM7I,MAAMiF,QAAUkD,KAAKD,OAAOO,YAAYxD,QAG9CnG,EAAU+J,EAAO,qEAAsErF,SAAS1D,KACvE,WAApBA,EAAQiJ,SAAwBZ,KAAKG,cAAexI,MACvDA,EAAQkJ,aAAc,MAAOlJ,EAAQmJ,aAAc,aACnDnJ,EAAQkJ,aAAc,mBAAoB,IAC1ClJ,EAAQoJ,gBAAiB,YAC1B,IAIDpK,EAAU+J,EAAO,gBAAiBrF,SAAS2F,IAC1C,IAAIC,EAAU,EAEdtK,EAAUqK,EAAO,oBAAqB3F,SAAS6F,IAC9CA,EAAOL,aAAc,MAAOK,EAAOJ,aAAc,aACjDI,EAAOH,gBAAiB,YACxBG,EAAOL,aAAc,mBAAoB,IACzCI,GAAW,CAAC,IAIT9G,GAA8B,UAAlB6G,EAAMJ,SACrBI,EAAMH,aAAc,cAAe,IAKhCI,EAAU,GACbD,EAAMP,MACP,IAKD,IAAIU,EAAaT,EAAMU,uBACvB,GAAID,EAAa,CAChBA,EAAWtJ,MAAMiF,QAAU,QAE3B,IAAIuE,EAAoBX,EAAMY,8BAC1BC,EAAmBb,EAAMI,aAAc,0BAG3C,IAAiD,IAA7CK,EAAWX,aAAc,eAA4B,CACxDW,EAAWN,aAAc,cAAe,QAExC,IAAIW,EAAkBd,EAAMI,aAAc,yBACzCW,EAAkBf,EAAMI,aAAc,yBACtCY,EAAsBhB,EAAMF,aAAc,8BAC1CmB,EAAuBjB,EAAMF,aAAc,+BAG5C,GAAIgB,EAEE,SAASpH,KAAMoH,EAAgBI,QACnCP,EAAkBxJ,MAAM2J,gBAAmB,OAAMA,EAAgBI,UAIjEP,EAAkBxJ,MAAM2J,gBAAkBA,EAAgBlI,MAAO,KAAM8F,KAAK+B,GAGnE,OH4LiBU,EAAEC,EAAI,KAC9BC,UAAUD,GACdzI,QAAQ,OAAQ,KAChBA,QAAQ,OAAQ,KAChBA,QACF,YACC+B,GAAO,IAAGA,EAAE4G,WAAW,GAAGC,SAAS,IAAIC,kBGlMrBL,CADAM,UAAUhB,EAAWS,cAEjCQ,KAAM,UAIN,GAAKX,IAAoBzB,KAAKD,OAAOsC,iBAAmB,CAC5D,IAAIC,EAAQ9J,SAASC,cAAe,SAEhCiJ,GACHY,EAAMzB,aAAc,OAAQ,IAGzBc,IACHW,EAAMC,OAAQ,GAQXpI,IACHmI,EAAMC,OAAQ,EACdD,EAAMzB,aAAc,cAAe,KAIpCY,EAAgBnI,MAAO,KAAM+B,SAAS6F,IACrC,MAAMsB,EAAgBhK,SAASC,cAAe,UAC9C+J,EAAc3B,aAAc,MAAOK,GAEnC,IAAIxI,EHmJyB+J,EAAEC,EAAS,KACtChJ,EAAuBgJ,EAASpJ,MAAM,KAAKE,OGpJlCiJ,CAAqBvB,GAC5BxI,GACH8J,EAAc3B,aAAc,OAAQnI,GAGrC4J,EAAMxJ,YAAa0J,EAAe,IAGnCnB,EAAkBvI,YAAawJ,EAChC,MAEK,GAAIf,IAA+C,IAA3BZ,EAAQgC,eAA0B,CAC9D,IAAIC,EAASpK,SAASC,cAAe,UACrCmK,EAAO/B,aAAc,kBAAmB,IACxC+B,EAAO/B,aAAc,qBAAsB,IAC3C+B,EAAO/B,aAAc,wBAAyB,IAC9C+B,EAAO/B,aAAc,QAAS,YAE9B+B,EAAO/B,aAAc,WAAYU,GAEjCqB,EAAO/K,MAAMgL,MAAS,OACtBD,EAAO/K,MAAMiL,OAAS,OACtBF,EAAO/K,MAAMkL,UAAY,OACzBH,EAAO/K,MAAMmL,SAAW,OAExB3B,EAAkBvI,YAAa8J,EAChC,CACD,CAGA,IAAIK,EAA0B5B,EAAkB6B,cAAe,oBAC3DD,GAGCjD,KAAKG,cAAegB,KAAiB,0BAA0B/G,KAAMmH,IACpE0B,EAAwBnC,aAAc,SAAYS,GACrD0B,EAAwBpC,aAAc,MAAOU,EAMjD,CAEAvB,KAAKmD,OAAQzC,EAEd,CAKAyC,MAAAA,CAAQC,GAKPtM,MAAMC,KAAMqM,EAAapM,iBAAkB,gBAAkBqE,SAAS1D,IACrE0L,EAAO1L,EAAS,CACf4E,QAAS,GACTC,QAA0C,GAAjCwD,KAAKD,OAAOO,YAAYwC,OACjCrF,kBAAkB,EAClBuB,eAAe,GACb,GAGL,CAQAsE,MAAAA,CAAQ5C,GAGPA,EAAM7I,MAAMiF,QAAU,OAGtB,IAAIqE,EAAanB,KAAKD,OAAOwD,mBAAoB7C,GAC7CS,IACHA,EAAWtJ,MAAMiF,QAAU,OAG3BnG,EAAUwK,EAAY,eAAgB9F,SAAS1D,IAC9CA,EAAQoJ,gBAAiB,MAAO,KAKlCpK,EAAU+J,EAAO,6FAA8FrF,SAAS1D,IACvHA,EAAQkJ,aAAc,WAAYlJ,EAAQmJ,aAAc,QACxDnJ,EAAQoJ,gBAAiB,MAAO,IAIjCpK,EAAU+J,EAAO,0DAA2DrF,SAAS6F,IACpFA,EAAOL,aAAc,WAAYK,EAAOJ,aAAc,QACtDI,EAAOH,gBAAiB,MAAO,GAGjC,CAKAyC,qBAAAA,GAEC,IAAIC,EAA6BA,CAAEC,EAAiBC,EAAWC,KAC9DjN,EAAUqJ,KAAKD,OAAO8D,mBAAoB,UAAWH,EAAiB,MAAOC,EAAW,MAAOtI,SAASzE,IACvG,IAAIkN,EAAMlN,EAAGkK,aAAc4C,GACvBI,IAAiC,IAA1BA,EAAIC,QAASH,IACvBhN,EAAGiK,aAAc6C,EAAiBI,GAAS,KAAK1J,KAAM0J,GAAc,IAAN,KAAcF,EAC7E,GACC,EAIHH,EAA4B,MAAO,qBAAsB,iBACzDA,EAA4B,WAAY,qBAAsB,iBAG9DA,EAA4B,MAAO,oBAAqB,SACxDA,EAA4B,WAAY,oBAAqB,QAE9D,CAQAO,oBAAAA,CAAsBrM,GAEjBA,IAAYqI,KAAKD,OAAOsC,mBAG3B1L,EAAUgB,EAAS,oBAAqB0D,SAASzE,IAGhDA,EAAGiK,aAAc,MAAOjK,EAAGkK,aAAc,OAAS,IAInDnK,EAAUgB,EAAS,gBAAiB0D,SAASzE,IAC5C,GAAIwB,EAASxB,EAAI,eAAkBwB,EAASxB,EAAI,qBAC/C,OAID,IAAIqN,EAAWjE,KAAKD,OAAOO,YAAY4D,cAQvC,GAJwB,kBAAbD,IACVA,EAAWrN,EAAG4J,aAAc,oBAAuBpI,EAASxB,EAAI,sBAG7DqN,GAA+B,mBAAZrN,EAAGuN,KAGzB,GAAIvN,EAAGwN,WAAa,EACnBpE,KAAKqE,mBAAoB,CAAEtM,OAAQnB,SAI/B,GAAIuD,EAAW,CACnB,IAAImK,EAAU1N,EAAGuN,OAIbG,GAAoC,mBAAlBA,EAAQC,QAAwC,IAAhB3N,EAAG4N,UACxDF,EAAQC,OAAO,KACd3N,EAAG4N,UAAW,EAGd5N,EAAG6N,iBAAkB,QAAQ,KAC5B7N,EAAG4N,UAAW,CAAK,GACjB,GAGN,MAGC5N,EAAG8N,oBAAqB,aAAc1E,KAAKqE,oBAC3CzN,EAAG6N,iBAAkB,aAAczE,KAAKqE,mBAG1C,IAID1N,EAAUgB,EAAS,eAAgB0D,SAASzE,IACvCwB,EAASxB,EAAI,eAAkBwB,EAASxB,EAAI,sBAIhDoJ,KAAKC,oBAAqB,CAAElI,OAAQnB,GAAM,IAI3CD,EAAUgB,EAAS,oBAAqB0D,SAASzE,IAC5CwB,EAASxB,EAAI,eAAkBwB,EAASxB,EAAI,sBAI5CA,EAAGkK,aAAc,SAAYlK,EAAGkK,aAAc,cACjDlK,EAAG8N,oBAAqB,OAAQ1E,KAAKC,qBACrCrJ,EAAG6N,iBAAkB,OAAQzE,KAAKC,qBAClCrJ,EAAGiK,aAAc,MAAOjK,EAAGkK,aAAc,aAC1C,IAKH,CAQAuD,kBAAAA,CAAoBM,GAEnB,IAAIC,IAAoBxM,EAASuM,EAAM5M,OAAQ,QAC9C8M,IAAiBzM,EAASuM,EAAM5M,OAAQ,YAErC6M,GAAmBC,IACtBF,EAAM5M,OAAO+M,YAAc,EAC3BH,EAAM5M,OAAOoM,QAGdQ,EAAM5M,OAAO2M,oBAAqB,aAAc1E,KAAKqE,mBAEtD,CAQApE,mBAAAA,CAAqB0E,GAEpB,IAAI/B,EAAS+B,EAAM5M,OAEnB,GAAI6K,GAAUA,EAAOmC,cAAgB,CAEpC,IAAIH,IAAoBxM,EAASuM,EAAM5M,OAAQ,QAC9C8M,IAAiBzM,EAASuM,EAAM5M,OAAQ,YAEzC,GAAI6M,GAAmBC,EAAY,CAGlC,IAAIZ,EAAWjE,KAAKD,OAAOO,YAAY4D,cAIf,kBAAbD,IACVA,EAAWrB,EAAOpC,aAAc,oBAAuBpI,EAASwK,EAAQ,sBAIrE,wBAAwBxI,KAAMwI,EAAO9B,aAAc,SAAamD,EACnErB,EAAOmC,cAAcC,YAAa,mDAAoD,KAG9E,uBAAuB5K,KAAMwI,EAAO9B,aAAc,SAAamD,EACvErB,EAAOmC,cAAcC,YAAa,oBAAqB,KAIvDpC,EAAOmC,cAAcC,YAAa,cAAe,IAGnD,CAED,CAED,CAQAC,mBAAAA,CAAqBtN,EAASgJ,EAAU,IAEvCA,EAAUpK,EAAQ,CAEjB2O,eAAe,GACbvE,GAEChJ,GAAWA,EAAQU,aAEtB1B,EAAUgB,EAAS,gBAAiB0D,SAASzE,IACvCA,EAAG4J,aAAc,gBAAuC,mBAAb5J,EAAGuO,QAClDvO,EAAGiK,aAAa,wBAAyB,IACzCjK,EAAGuO,QACJ,IAIDxO,EAAUgB,EAAS,UAAW0D,SAASzE,IAClCA,EAAGmO,eAAgBnO,EAAGmO,cAAcC,YAAa,aAAc,KACnEpO,EAAG8N,oBAAqB,OAAQ1E,KAAKC,oBAAqB,IAI3DtJ,EAAUgB,EAAS,qCAAsC0D,SAASzE,KAC5DA,EAAG4J,aAAc,gBAAmB5J,EAAGmO,eAAyD,mBAAjCnO,EAAGmO,cAAcC,aACpFpO,EAAGmO,cAAcC,YAAa,oDAAqD,IACpF,IAIDrO,EAAUgB,EAAS,oCAAqC0D,SAASzE,KAC3DA,EAAG4J,aAAc,gBAAmB5J,EAAGmO,eAAyD,mBAAjCnO,EAAGmO,cAAcC,aACpFpO,EAAGmO,cAAcC,YAAa,qBAAsB,IACrD,KAG6B,IAA1BrE,EAAQuE,eAEXvO,EAAUgB,EAAS,oBAAqB0D,SAASzE,IAGhDA,EAAGiK,aAAc,MAAO,eACxBjK,EAAGmK,gBAAiB,MAAO,IAK/B,ECleM,MAAMqE,EAAkB,kBAClBC,EAA6B,kBAC7BC,EAA2B,kCAI3BC,EAAgC,qFAGhCC,EAAuB,uGCArB,MAAMC,EAEpB3F,WAAAA,CAAaC,GAEZC,KAAKD,OAASA,CAEf,CAEA2F,MAAAA,GAEC1F,KAAKrI,QAAUa,SAASC,cAAe,OACvCuH,KAAKrI,QAAQT,UAAY,eACzB8I,KAAKD,OAAO4F,mBAAmB7M,YAAakH,KAAKrI,QAElD,CAKAiO,SAAAA,CAAWC,EAAQC,GAElB,IAAIC,EAAqB,OACrBF,EAAOG,cAAgBhG,KAAKD,OAAOkG,gBACP,QAA3BJ,EAAOK,iBAGyB,YAA3BL,EAAOK,iBAAiClG,KAAKD,OAAOsC,oBAF5D0D,EAAqB,SAOvB/F,KAAKrI,QAAQE,MAAMiF,QAAUiJ,CAE9B,CAKAI,MAAAA,GAGKnG,KAAKD,OAAOO,YAAY0F,aAAehG,KAAKrI,UAC/CqI,KAAKrI,QAAQyO,UAAYpG,KAAKqG,iBAGhC,CAMAA,cAAAA,CAAgB3F,EAAQV,KAAKD,OAAOuG,mBAEnC,IACInP,EADA0O,EAAS7F,KAAKD,OAAOO,YAErBiG,EDpDqD,MCsDzD,GAAmC,mBAAvBV,EAAOG,YAClB7O,EAAQ0O,EAAOG,YAAatF,OACtB,CAE4B,iBAAvBmF,EAAOG,cACjBO,EAASV,EAAOG,aAKZ,IAAI5L,KAAMmM,IAAyD,IAA7CvG,KAAKD,OAAOyG,sBAAsB7N,SAC5D4N,ED/DuC,KCmExC,IAAIE,EAAmB/F,GAAsC,cAA7BA,EAAMgG,QAAQC,WAA6B,EAAI,EAG/E,OADAxP,EAAQ,GACAoP,GACP,IDvEuC,ICwEtCpP,EAAMmI,KAAMU,KAAKD,OAAO6G,kBAAmBlG,GAAU+F,GACrD,MACD,IDzEmD,MC0ElDtP,EAAMmI,KAAMU,KAAKD,OAAO6G,kBAAmBlG,GAAU+F,EAAkB,IAAKzG,KAAKD,OAAO8G,kBACxF,MACD,QACC,IAAIC,EAAU9G,KAAKD,OAAOgH,WAAYrG,GACtCvJ,EAAMmI,KAAMwH,EAAQvJ,EAAIkJ,GACxB,IAAIO,EDjFoD,QCiF9CT,EAA2D,IAAM,IACvEvG,KAAKD,OAAOkH,gBAAiBvG,IAAUvJ,EAAMmI,KAAM0H,EAAKF,EAAQrL,EAAI,GAE3E,CAEA,IAAIqG,EAAM,IAAM9B,KAAKD,OAAO5G,SAAS+N,QAASxG,GAC9C,OAAOV,KAAKmH,aAAchQ,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAI2K,EAEzD,CAYAqF,YAAAA,CAAc3Q,EAAG4Q,EAAW3Q,EAAGqL,EAAM,IAAM9B,KAAKD,OAAO5G,SAAS+N,WAE/D,MAAiB,iBAANzQ,GAAmB4Q,MAAO5Q,GAQ5B,YAAWqL,+CACctL,2BARxB,YAAWsL,+CACatL,4DACQ4Q,oDACR3Q,0BASnC,CAEA6Q,OAAAA,GAECtH,KAAKrI,QAAQL,QAEd,EC/Hc,MAAMiQ,EAEpBzH,WAAAA,CAAaC,GAEZC,KAAKD,OAASA,EAEdC,KAAKwH,QAAUxH,KAAKwH,QAAQtH,KAAMF,MAClCA,KAAKyH,OAASzH,KAAKyH,OAAOvH,KAAMF,MAChCA,KAAK0H,UAAY1H,KAAK0H,UAAUxH,KAAMF,KAEvC,CAEA0F,MAAAA,GAEC1F,KAAKrI,QAAUa,SAASC,cAAe,OACvCuH,KAAKrI,QAAQT,UAAY,gBAEvB8I,KAAK2H,UAAYnP,SAASC,cAAe,SACzCuH,KAAK2H,UAAUjP,KAAO,OACtBsH,KAAK2H,UAAUzQ,UAAY,sBAC3B8I,KAAK2H,UAAUC,YAAc,gBAC/B5H,KAAK2H,UAAUlD,iBAAkB,QAASzE,KAAKwH,SAC/CxH,KAAK2H,UAAUlD,iBAAkB,UAAWzE,KAAK0H,WACjD1H,KAAK2H,UAAUlD,iBAAkB,OAAQzE,KAAKyH,QAE5CzH,KAAKrI,QAAQmB,YAAakH,KAAK2H,UAElC,CAEAE,IAAAA,GAEC7H,KAAK8H,cAAgB9H,KAAKD,OAAOgH,aAEjC/G,KAAKD,OAAO4F,mBAAmB7M,YAAakH,KAAKrI,SACjDqI,KAAK2H,UAAUI,OAEhB,CAEAC,IAAAA,GAEKhI,KAAK6E,cACR7E,KAAKrI,QAAQL,SACb0I,KAAK2H,UAAUxQ,MAAQ,GAEvBoH,aAAcyB,KAAKiI,oBACZjI,KAAKiI,YAGd,CAEApD,SAAAA,GAEC,QAAS7E,KAAKrI,QAAQU,UAEvB,CAKA6P,IAAAA,GAEC3J,aAAcyB,KAAKiI,oBACZjI,KAAKiI,YAEZ,IACInB,EADA5N,EAAQ8G,KAAK2H,UAAUxQ,MAAMyK,KAAM,IAMvC,GAAI,QAAQxH,KAAMlB,GAAU,CAC3B,MAAMiP,EAAoBnI,KAAKD,OAAOO,YAAY0F,YAClD,GFlEwC,MEkEpCmC,GFjEgD,QEiEKA,EAAgE,CACxH,MAAMzH,EAAQV,KAAKD,OAAOqI,YAAaC,SAAUnP,EAAO,IAAO,GAC3DwH,IACHoG,EAAU9G,KAAKD,OAAOgH,WAAYrG,GAEpC,CACD,CAiBA,OAfKoG,IAGA,aAAa1M,KAAMlB,KACtBA,EAAQA,EAAMG,QAAS,IAAK,MAG7ByN,EAAU9G,KAAKD,OAAO5G,SAASmP,mBAAoBpP,EAAO,CAAEqP,eAAe,MAIvEzB,GAAW,OAAO1M,KAAMlB,IAAWA,EAAMP,OAAS,IACtDmO,EAAU9G,KAAK5G,OAAQF,IAGpB4N,GAAqB,KAAV5N,GACd8G,KAAKD,OAAOW,MAAOoG,EAAQvJ,EAAGuJ,EAAQrL,EAAGqL,EAAQlL,IAC1C,IAGPoE,KAAKD,OAAOW,MAAOV,KAAK8H,cAAcvK,EAAGyC,KAAK8H,cAAcrM,EAAGuE,KAAK8H,cAAclM,IAC3E,EAGT,CAEA4M,SAAAA,CAAWC,GAEVlK,aAAcyB,KAAKiI,aACnBjI,KAAKiI,YAAczJ,YAAY,IAAMwB,KAAKkI,QAAQO,EAEnD,CAMArP,MAAAA,CAAQF,GAEP,MAAMwP,EAAQ,IAAIC,OAAQ,MAAQzP,EAAM0I,OAAS,MAAO,KAElDlB,EAAQV,KAAKD,OAAOqI,YAAYQ,MAAQlI,GACtCgI,EAAMtO,KAAMsG,EAAMmI,aAG1B,OAAInI,EACIV,KAAKD,OAAOgH,WAAYrG,GAGxB,IAGT,CAMAoI,MAAAA,GAEC9I,KAAKD,OAAOW,MAAOV,KAAK8H,cAAcvK,EAAGyC,KAAK8H,cAAcrM,EAAGuE,KAAK8H,cAAclM,GAClFoE,KAAKgI,MAEN,CAEAe,OAAAA,GAEC/I,KAAKkI,OACLlI,KAAKgI,MAEN,CAEAV,OAAAA,GAECtH,KAAK2H,UAAUjD,oBAAqB,QAAS1E,KAAKwH,SAClDxH,KAAK2H,UAAUjD,oBAAqB,UAAW1E,KAAK0H,WACpD1H,KAAK2H,UAAUjD,oBAAqB,OAAQ1E,KAAKyH,QAEjDzH,KAAKrI,QAAQL,QAEd,CAEAoQ,SAAAA,CAAW/C,GAEY,KAAlBA,EAAMqE,QACThJ,KAAK+I,UAEqB,KAAlBpE,EAAMqE,UACdhJ,KAAK8I,SAELnE,EAAMsE,2BAGR,CAEAzB,OAAAA,CAAS7C,GAER3E,KAAKwI,UAAW,IAEjB,CAEAf,MAAAA,GAECjJ,YAAY,IAAMwB,KAAKgI,QAAQ,EAEhC,ECnLM,MAAMkB,EAAeC,IAE3B,IAAIC,EAAOD,EAAM3R,MAAO,qBACxB,GAAI4R,GAAQA,EAAK,GAEhB,OADAA,EAAOA,EAAK,GACL,CACNC,EAAsC,GAAnChB,SAAUe,EAAKE,OAAQ,GAAK,IAC/BrL,EAAsC,GAAnCoK,SAAUe,EAAKE,OAAQ,GAAK,IAC/B7S,EAAsC,GAAnC4R,SAAUe,EAAKE,OAAQ,GAAK,KAIjC,IAAIC,EAAOJ,EAAM3R,MAAO,qBACxB,GAAI+R,GAAQA,EAAK,GAEhB,OADAA,EAAOA,EAAK,GACL,CACNF,EAAGhB,SAAUkB,EAAK7O,MAAO,EAAG,GAAK,IACjCuD,EAAGoK,SAAUkB,EAAK7O,MAAO,EAAG,GAAK,IACjCjE,EAAG4R,SAAUkB,EAAK7O,MAAO,EAAG,GAAK,KAInC,IAAI8O,EAAML,EAAM3R,MAAO,oDACvB,GAAIgS,EACH,MAAO,CACNH,EAAGhB,SAAUmB,EAAI,GAAI,IACrBvL,EAAGoK,SAAUmB,EAAI,GAAI,IACrB/S,EAAG4R,SAAUmB,EAAI,GAAI,KAIvB,IAAIC,EAAON,EAAM3R,MAAO,gFACxB,OAAIiS,EACI,CACNJ,EAAGhB,SAAUoB,EAAK,GAAI,IACtBxL,EAAGoK,SAAUoB,EAAK,GAAI,IACtBhT,EAAG4R,SAAUoB,EAAK,GAAI,IACtBjT,EAAGiB,WAAYgS,EAAK,KAIf,IAAI,EClDG,MAAMC,EAEpB5J,WAAAA,CAAaC,GAEZC,KAAKD,OAASA,CAEf,CAEA2F,MAAAA,GAEC1F,KAAKrI,QAAUa,SAASC,cAAe,OACvCuH,KAAKrI,QAAQT,UAAY,cACzB8I,KAAKD,OAAO4F,mBAAmB7M,YAAakH,KAAKrI,QAElD,CAOAgS,MAAAA,GAGC3J,KAAKrI,QAAQyO,UAAY,GACzBpG,KAAKrI,QAAQP,UAAUC,IAAK,iBAG5B2I,KAAKD,OAAOyG,sBAAsBnL,SAASuO,IAE1C,IAAIC,EAAkB7J,KAAK8J,iBAAkBF,EAAQ5J,KAAKrI,SAG1DhB,EAAUiT,EAAQ,WAAYvO,SAAS0O,IAEtC/J,KAAK8J,iBAAkBC,EAAQF,GAE/BA,EAAgBzS,UAAUC,IAAK,QAAS,GAEtC,IAKA2I,KAAKD,OAAOO,YAAY0J,yBAE3BhK,KAAKrI,QAAQE,MAAM2J,gBAAkB,QAAUxB,KAAKD,OAAOO,YAAY0J,wBAA0B,KACjGhK,KAAKrI,QAAQE,MAAMoS,eAAiBjK,KAAKD,OAAOO,YAAY4J,uBAC5DlK,KAAKrI,QAAQE,MAAMsS,iBAAmBnK,KAAKD,OAAOO,YAAY8J,yBAC9DpK,KAAKrI,QAAQE,MAAMwS,mBAAqBrK,KAAKD,OAAOO,YAAYgK,2BAMhE9L,YAAY,KACXwB,KAAKD,OAAO4F,mBAAmBvO,UAAUC,IAAK,0BAA2B,GACvE,KAKH2I,KAAKrI,QAAQE,MAAM2J,gBAAkB,GACrCxB,KAAKD,OAAO4F,mBAAmBvO,UAAUE,OAAQ,2BAInD,CAUAwS,gBAAAA,CAAkBpJ,EAAO6J,GAGxB,IAAI5S,EAAUa,SAASC,cAAe,OACtCd,EAAQT,UAAY,oBAAsBwJ,EAAMxJ,UAAUmC,QAAS,sBAAuB,IAG1F,IAAImR,EAAiBhS,SAASC,cAAe,OAY7C,OAXA+R,EAAetT,UAAY,2BAE3BS,EAAQmB,YAAa0R,GACrBD,EAAUzR,YAAanB,GAEvB+I,EAAMU,uBAAyBzJ,EAC/B+I,EAAMY,8BAAgCkJ,EAGtCxK,KAAKyK,KAAM/J,GAEJ/I,CAER,CAQA8S,IAAAA,CAAM/J,GAEL,MAAM/I,EAAU+I,EAAMU,uBACrBoJ,EAAiB9J,EAAMY,8BAElBoJ,EAAO,CACZvJ,WAAYT,EAAMI,aAAc,mBAChCmJ,eAAgBvJ,EAAMI,aAAc,wBACpCU,gBAAiBd,EAAMI,aAAc,yBACrCW,gBAAiBf,EAAMI,aAAc,yBACrCS,iBAAkBb,EAAMI,aAAc,0BACtC6J,gBAAiBjK,EAAMI,aAAc,yBACrC8J,mBAAoBlK,EAAMI,aAAc,4BACxCqJ,iBAAkBzJ,EAAMI,aAAc,0BACtCuJ,mBAAoB3J,EAAMI,aAAc,4BACxC+J,qBAAsBnK,EAAMI,aAAc,8BAC1CgK,kBAAmBpK,EAAMI,aAAc,4BAGlCiK,EAAcrK,EAAMF,aAAc,gBAIxCE,EAAMtJ,UAAUE,OAAQ,uBACxBoJ,EAAMtJ,UAAUE,OAAQ,wBAExBK,EAAQoJ,gBAAiB,eACzBpJ,EAAQoJ,gBAAiB,wBACzBpJ,EAAQoJ,gBAAiB,wBACzBpJ,EAAQoJ,gBAAiB,8BACzBpJ,EAAQE,MAAM8S,gBAAkB,GAEhCH,EAAe3S,MAAMoS,eAAiB,GACtCO,EAAe3S,MAAMsS,iBAAmB,GACxCK,EAAe3S,MAAMwS,mBAAqB,GAC1CG,EAAe3S,MAAM2J,gBAAkB,GACvCgJ,EAAe3S,MAAMmT,QAAU,GAC/BR,EAAepE,UAAY,GAEvBsE,EAAKvJ,aAEJ,sBAAsB/G,KAAMsQ,EAAKvJ,aAAgB,gDAAgD/G,KAAMsQ,EAAKvJ,YAC/GT,EAAMG,aAAc,wBAAyB6J,EAAKvJ,YAGlDxJ,EAAQE,MAAMsJ,WAAauJ,EAAKvJ,aAO9BuJ,EAAKvJ,YAAcuJ,EAAKC,iBAAmBD,EAAKE,oBAAsBF,EAAKlJ,iBAAmBkJ,EAAKjJ,iBAAmBiJ,EAAKnJ,mBAC9H5J,EAAQkJ,aAAc,uBAAwB6J,EAAKvJ,WACvCuJ,EAAKT,eACLS,EAAKlJ,gBACLkJ,EAAKjJ,gBACLiJ,EAAKnJ,iBACLmJ,EAAKC,gBACLD,EAAKE,mBACLF,EAAKP,iBACLO,EAAKL,mBACLK,EAAKG,qBACLH,EAAKI,mBAIdJ,EAAKT,gBAAiBtS,EAAQkJ,aAAc,uBAAwB6J,EAAKT,gBACzES,EAAKC,kBAAkBhT,EAAQE,MAAM8S,gBAAkBD,EAAKC,iBAC5DD,EAAKE,qBAAqBjT,EAAQE,MAAM2J,gBAAkBkJ,EAAKE,oBAC/DF,EAAKG,sBAAuBlT,EAAQkJ,aAAc,6BAA8B6J,EAAKG,sBAErFE,GAAcpT,EAAQkJ,aAAc,eAAgB,IAGpD6J,EAAKT,iBAAiBO,EAAe3S,MAAMoS,eAAiBS,EAAKT,gBACjES,EAAKP,mBAAmBK,EAAe3S,MAAMsS,iBAAmBO,EAAKP,kBACrEO,EAAKL,qBAAqBG,EAAe3S,MAAMwS,mBAAqBK,EAAKL,oBACzEK,EAAKI,oBAAoBN,EAAe3S,MAAMmT,QAAUN,EAAKI,mBAEjE,MAAMG,EAAgBjL,KAAKkL,iBAAkBxK,GAEhB,iBAAlBuK,GACVvK,EAAMtJ,UAAUC,IAAK4T,EAGvB,CAUAC,gBAAAA,CAAkBxK,GAEjB,MAAM/I,EAAU+I,EAAMU,uBAKtB,IAAI+J,EAAgBzK,EAAMI,aAAc,yBAGxC,IAAKqK,IAAkBjC,EAAYiC,GAAkB,CACpD,IAAIC,EAA0BxL,OAAOhD,iBAAkBjF,GACnDyT,GAA2BA,EAAwBT,kBACtDQ,EAAgBC,EAAwBT,gBAE1C,CAEA,GAAIQ,EAAgB,CACnB,MAAM3B,EAAMN,EAAYiC,GAKxB,GAAI3B,GAAiB,IAAVA,EAAIhT,EACd,MDpKkB,iBAFW2S,ECsKRgC,KDpKQhC,EAAQD,EAAYC,KAEhDA,GACgB,IAAVA,EAAME,EAAoB,IAAVF,EAAMlL,EAAoB,IAAVkL,EAAM1S,GAAY,IAGrD,MC8JmC,IAC/B,sBAGA,sBAGV,CD7K+B0S,MC+K/B,OAAO,IAER,CAKAkC,iCAAAA,CAAmC3K,EAAO3I,GAEzC,CAAE,uBAAwB,uBAAwBsD,SAASiQ,IACtD5K,EAAMtJ,UAAUmU,SAAUD,GAC7BvT,EAAOX,UAAUC,IAAKiU,GAGtBvT,EAAOX,UAAUE,OAAQgU,EAC1B,GACEtL,KAEJ,CASAmG,MAAAA,CAAQqF,GAAa,GAEpB,IAAIC,EAAezL,KAAKD,OAAOuG,kBAC3BQ,EAAU9G,KAAKD,OAAOgH,aAEtB2E,EAAoB,KAGpBC,EAAiB3L,KAAKD,OAAOO,YAAYsL,IAAM,SAAW,OAC7DC,EAAmB7L,KAAKD,OAAOO,YAAYsL,IAAM,OAAS,SAsD3D,GAlDA9U,MAAMC,KAAMiJ,KAAKrI,QAAQmU,YAAazQ,SAAS,CAAE0Q,EAAaxO,KAE7DwO,EAAY3U,UAAUE,OAAQ,OAAQ,UAAW,UAE7CiG,EAAIuJ,EAAQvJ,EACfwO,EAAY3U,UAAUC,IAAKsU,GAElBpO,EAAIuJ,EAAQvJ,EACrBwO,EAAY3U,UAAUC,IAAKwU,IAG3BE,EAAY3U,UAAUC,IAAK,WAG3BqU,EAAoBK,IAGjBP,GAAcjO,IAAMuJ,EAAQvJ,IAC/B5G,EAAUoV,EAAa,qBAAsB1Q,SAAS,CAAE2Q,EAAavQ,KAEpEuQ,EAAY5U,UAAUE,OAAQ,OAAQ,UAAW,UAEjD,MAAM2U,EAA8B,iBAAdnF,EAAQrL,EAAiBqL,EAAQrL,EAAI,EAEvDA,EAAIwQ,EACPD,EAAY5U,UAAUC,IAAK,QAElBoE,EAAIwQ,EACbD,EAAY5U,UAAUC,IAAK,WAG3B2U,EAAY5U,UAAUC,IAAK,WAGvBkG,IAAMuJ,EAAQvJ,IAAImO,EAAoBM,GAC3C,GAGF,IAKGhM,KAAKkM,oBAERlM,KAAKD,OAAOoM,aAAalH,oBAAqBjF,KAAKkM,mBAAoB,CAAEhH,eAAgBlF,KAAKD,OAAOoM,aAAahM,cAAeH,KAAKkM,sBAKnIR,EAAoB,CAEvB1L,KAAKD,OAAOoM,aAAanI,qBAAsB0H,GAE/C,IAAIU,EAA2BV,EAAkBxI,cAAe,6BAChE,GAAIkJ,EAA2B,CAE9B,IAAIC,EAAqBD,EAAyBvU,MAAM2J,iBAAmB,GAGvE,SAASpH,KAAMiS,KAClBD,EAAyBvU,MAAM2J,gBAAkB,GACjD5B,OAAOhD,iBAAkBwP,GAA2BpB,QACpDoB,EAAyBvU,MAAM2J,gBAAkB6K,EAGnD,CAIA,IAAIC,EAAyBtM,KAAKkM,mBAAqBlM,KAAKkM,mBAAmBpL,aAAc,wBAA2B,KACpHyL,EAAwBb,EAAkB5K,aAAc,wBACxDyL,GAAyBA,IAA0BD,GAA0BZ,IAAsB1L,KAAKkM,oBAC3GlM,KAAKrI,QAAQP,UAAUC,IAAK,iBAG7B2I,KAAKkM,mBAAqBR,CAE3B,CAIID,GACHzL,KAAKqL,kCAAmCI,EAAczL,KAAKD,OAAO4F,oBAInEnH,YAAY,KACXwB,KAAKrI,QAAQP,UAAUE,OAAQ,gBAAiB,GAC9C,EAEJ,CAMAkV,cAAAA,GAEC,IAAI1F,EAAU9G,KAAKD,OAAOgH,aAE1B,GAAI/G,KAAKD,OAAOO,YAAY0J,wBAA0B,CAErD,IAICyC,EAAiBC,EAJdC,EAAmB3M,KAAKD,OAAOyG,sBAClCoG,EAAiB5M,KAAKD,OAAO8M,oBAE1B5C,EAAiBjK,KAAKrI,QAAQE,MAAMoS,eAAe3Q,MAAO,KAGhC,IAA1B2Q,EAAetR,OAClB8T,EAAkBC,EAAmBrE,SAAU4B,EAAe,GAAI,KAGlEwC,EAAkBpE,SAAU4B,EAAe,GAAI,IAC/CyC,EAAmBrE,SAAU4B,EAAe,GAAI,KAGjD,IAEC6C,EACArG,EAHGsG,EAAa/M,KAAKrI,QAAQqV,YAC7BC,EAAuBN,EAAiBhU,OAKxCmU,EADmE,iBAAzD9M,KAAKD,OAAOO,YAAY4M,6BACLlN,KAAKD,OAAOO,YAAY4M,6BAGxBD,EAAuB,GAAMR,EAAkBM,IAAiBE,EAAqB,GAAM,EAGzHxG,EAAmBqG,EAA6BhG,EAAQvJ,GAAK,EAE7D,IAEC4P,EACAC,EAHGC,EAAcrN,KAAKrI,QAAQ2V,aAC9BC,EAAqBX,EAAejU,OAKpCwU,EADiE,iBAAvDnN,KAAKD,OAAOO,YAAYkN,2BACPxN,KAAKD,OAAOO,YAAYkN,4BAGtBd,EAAmBW,IAAkBE,EAAmB,GAGtFH,EAAiBG,EAAqB,EAAKJ,EAA2BrG,EAAQrL,EAAI,EAElFuE,KAAKrI,QAAQE,MAAMwS,mBAAqB5D,EAAmB,OAAS2G,EAAiB,IAEtF,CAED,CAEA9F,OAAAA,GAECtH,KAAKrI,QAAQL,QAEd,EChbD,IAAImW,EAAqB,EAMV,MAAMC,EAEpB5N,WAAAA,CAAaC,GAEZC,KAAKD,OAASA,CAEf,CAQA4N,GAAAA,CAAKC,EAAWC,GAGf7N,KAAK8N,QAEL,IAAIC,EAAY/N,KAAKD,OAAOqI,YACxB4F,EAAeD,EAAUhK,QAAS8J,GAClCI,EAAiBF,EAAUhK,QAAS6J,GAKxC,GAAIA,EAAUpN,aAAc,sBAAyBqN,EAAQrN,aAAc,sBACtEoN,EAAU9M,aAAc,0BAA6B+M,EAAQ/M,aAAc,2BACxEkN,EAAeC,EAAiBJ,EAAUD,GAAYpN,aAAc,6BAAgC,CAG3GR,KAAKkO,sBAAwBlO,KAAKkO,uBAAyB5V,IAE3D,IAAI6V,EAAmBnO,KAAKoO,sBAAuBP,GAGnDD,EAAUlH,QAAQ2H,YAAc,UAChCR,EAAQnH,QAAQ2H,YAAc,UAG9BF,EAAiBG,eAAiBN,EAAeC,EAAiB,UAAY,WAK9E,IAAIM,EAAgD,SAA5BX,EAAU/V,MAAMiF,QACpCyR,IAAoBX,EAAU/V,MAAMiF,QAAUkD,KAAKD,OAAOO,YAAYxD,SAG1E,IAAI0R,EAAMxO,KAAKyO,0BAA2Bb,EAAWC,GAAUzO,KAAKsP,GAC5D1O,KAAK2O,oBAAqBD,EAAS3X,KAAM2X,EAASE,GAAIF,EAAS/N,SAAW,CAAE,EAAEwN,EAAkBV,OAMxG,GAHIc,IAAoBX,EAAU/V,MAAMiF,QAAU,QAGL,UAAzC+Q,EAAQnH,QAAQmI,uBAAqF,IAAjD7O,KAAKD,OAAOO,YAAYuO,qBAAgC,CAG/G,IAAIC,EAAuD,GAA5BX,EAAiBY,SAC/CC,EAAoD,GAA5Bb,EAAiBY,SAE1C/O,KAAKiP,gCAAiCpB,GAAUxS,SAAS6T,IAExD,IAAIC,EAAmBnP,KAAKoO,sBAAuBc,EAAkBf,GACjEiB,EAAK,YAILD,EAAiBJ,WAAaZ,EAAiBY,UAAYI,EAAiB1G,QAAU0F,EAAiB1F,QAC1G2G,EAAK,aAAe3B,IACpBe,EAAIlP,KAAO,4DAA2D8P,6BAA8BD,EAAiBJ,kBAAkBI,EAAiB1G,cAGzJyG,EAAiBxI,QAAQ2I,kBAAoBD,CAAE,GAE7CpP,MAGHwO,EAAIlP,KAAO,8FAA6FwP,WAAkCE,QAE3I,CAKAhP,KAAKkO,sBAAsB9H,UAAYoI,EAAIpM,KAAM,IAGjDrH,uBAAuB,KAClBiF,KAAKkO,wBAERtR,iBAAkBoD,KAAKkO,uBAAwBoB,WAE/CzB,EAAQnH,QAAQ2H,YAAc,UAC/B,IAGDrO,KAAKD,OAAO9C,cAAc,CACzBvE,KAAM,cACNgS,KAAM,CACLkD,YACAC,UACA0B,MAAOvP,KAAKkO,wBAIf,CAED,CAMAJ,KAAAA,GAGCnX,EAAUqJ,KAAKD,OAAO4F,mBAAoB,mDAAoDtK,SAAS1D,IACtGA,EAAQ+O,QAAQ2H,YAAc,EAAE,IAIjC1X,EAAUqJ,KAAKD,OAAO4F,mBAAoB,8BAA+BtK,SAAS1D,WAC1EA,EAAQ+O,QAAQ2I,iBAAiB,IAIrCrP,KAAKkO,uBAAyBlO,KAAKkO,sBAAsB7V,aAC5D2H,KAAKkO,sBAAsB7V,WAAWmX,YAAaxP,KAAKkO,uBACxDlO,KAAKkO,sBAAwB,KAG/B,CAcAS,mBAAAA,CAAqB5X,EAAM6X,EAAIa,EAAgBtB,EAAkBiB,GAIhErY,EAAK2P,QAAQ2I,kBAAoB,GACjCT,EAAGlI,QAAQ2I,kBAAoBD,EAI/B,IAAIzO,EAAUX,KAAKoO,sBAAuBQ,EAAIT,QAIV,IAAzBsB,EAAehH,QAAwB9H,EAAQ8H,MAAQgH,EAAehH,YAC1C,IAA5BgH,EAAeV,WAA2BpO,EAAQoO,SAAWU,EAAeV,eAClD,IAA1BU,EAAeC,SAAyB/O,EAAQ+O,OAASD,EAAeC,QAEnF,IAAIC,EAAY3P,KAAK4P,4BAA6B,OAAQ7Y,EAAM0Y,GAC/DI,EAAU7P,KAAK4P,4BAA6B,KAAMhB,EAAIa,GAKvD,GAAIb,EAAGxX,UAAUmU,SAAU,qBAInBsE,EAAQC,OAAgB,QAE3B/Y,EAAKK,UAAUmU,SAAU,aAAe,EAEjBxU,EAAKG,UAAUM,MAAOgO,IAA0B,CAAC,KAAM,MACzDoJ,EAAG1X,UAAUM,MAAOgO,IAA0B,CAAC,KAAM,IAII,YAApC2I,EAAiBG,gBAC7DM,EAAGxX,UAAUC,IAAK,UAAW,WAG/B,CAOD,IAAiC,IAA7BoY,EAAeM,YAAgD,IAAzBN,EAAeO,MAAkB,CAE1E,IAAIC,EAAoBjQ,KAAKD,OAAOmQ,WAEhCC,EAAQ,CACX1R,GAAKkR,EAAUlR,EAAIoR,EAAQpR,GAAMwR,EACjCzU,GAAKmU,EAAUnU,EAAIqU,EAAQrU,GAAMyU,EACjCG,OAAQT,EAAU9M,MAAQgN,EAAQhN,MAClCwN,OAAQV,EAAU7M,OAAS+M,EAAQ/M,QAIpCqN,EAAM1R,EAAIrC,KAAKkU,MAAiB,IAAVH,EAAM1R,GAAa,IACzC0R,EAAM3U,EAAIY,KAAKkU,MAAiB,IAAVH,EAAM3U,GAAa,IACzC2U,EAAMC,OAAShU,KAAKkU,MAAsB,IAAfH,EAAMC,QAAkB,IACnDD,EAAMC,OAAShU,KAAKkU,MAAsB,IAAfH,EAAMC,QAAkB,IAEnD,IAAIL,GAAyC,IAA7BN,EAAeM,YAAqC,IAAZI,EAAM1R,GAAuB,IAAZ0R,EAAM3U,GAC9EwU,GAAiC,IAAzBP,EAAeO,QAAsC,IAAjBG,EAAMC,QAAiC,IAAjBD,EAAME,QAGzE,GAAIN,GAAaC,EAAQ,CAExB,IAAIpY,EAAY,GAEZmY,GAAYnY,EAAU0H,KAAO,aAAY6Q,EAAM1R,QAAQ0R,EAAM3U,QAC7DwU,GAAQpY,EAAU0H,KAAO,SAAQ6Q,EAAMC,WAAWD,EAAME,WAE5DV,EAAUG,OAAkB,UAAIlY,EAAUwK,KAAM,KAChDuN,EAAUG,OAAO,oBAAsB,WAEvCD,EAAQC,OAAkB,UAAI,MAE/B,CAED,CAGA,IAAK,IAAIS,KAAgBV,EAAQC,OAAS,CACzC,MAAMU,EAAUX,EAAQC,OAAOS,GACzBE,EAAYd,EAAUG,OAAOS,GAE/BC,IAAYC,SACRZ,EAAQC,OAAOS,KAKQ,IAA1BC,EAAQE,gBACXb,EAAQC,OAAOS,GAAgBC,EAAQrZ,QAGR,IAA5BsZ,EAAUC,gBACbf,EAAUG,OAAOS,GAAgBE,EAAUtZ,OAG9C,CAEA,IAAIqX,EAAM,GAENmC,EAAoB/R,OAAOgS,KAAMf,EAAQC,QAI7C,GAAIa,EAAkBhY,OAAS,EAAI,CAGlCgX,EAAUG,OAAmB,WAAI,OAGjCD,EAAQC,OAAmB,WAAK,OAAMnP,EAAQoO,aAAapO,EAAQ+O,UAAU/O,EAAQ8H,SACrFoH,EAAQC,OAAO,uBAAyBa,EAAkBvO,KAAM,MAChEyN,EAAQC,OAAO,eAAiBa,EAAkBvO,KAAM,MAYxDoM,EAAO,8BAA+BY,EAAI,OAR5BxQ,OAAOgS,KAAMjB,EAAUG,QAAS1Q,KAAKmR,GAC3CA,EAAe,KAAOZ,EAAUG,OAAOS,GAAgB,iBAC3DnO,KAAM,IAMH,6DACwDgN,EAAI,OALvDxQ,OAAOgS,KAAMf,EAAQC,QAAS1Q,KAAKmR,GACvCA,EAAe,KAAOV,EAAQC,OAAOS,GAAgB,iBACzDnO,KAAM,IAGwE,GAEnF,CAEA,OAAOoM,CAER,CAUAJ,qBAAAA,CAAuBzW,EAASkZ,GAE/B,IAAIlQ,EAAU,CACb+O,OAAQ1P,KAAKD,OAAOO,YAAYwQ,kBAChC/B,SAAU/O,KAAKD,OAAOO,YAAYyQ,oBAClCtI,MAAO,GAMR,GAHA9H,EAAUpK,EAAQoK,EAASkQ,GAGvBlZ,EAAQU,WAAa,CACxB,IAAI2Y,EAAqB5Y,EAAST,EAAQU,WAAY,8BAClD2Y,IACHrQ,EAAUX,KAAKoO,sBAAuB4C,EAAoBrQ,GAE5D,CAcA,OAZIhJ,EAAQ+O,QAAQoK,oBACnBnQ,EAAQ+O,OAAS/X,EAAQ+O,QAAQoK,mBAG9BnZ,EAAQ+O,QAAQqK,sBACnBpQ,EAAQoO,SAAWtX,WAAYE,EAAQ+O,QAAQqK,sBAG5CpZ,EAAQ+O,QAAQuK,mBACnBtQ,EAAQ8H,MAAQhR,WAAYE,EAAQ+O,QAAQuK,mBAGtCtQ,CAER,CASAiP,2BAAAA,CAA6BsB,EAAWvZ,EAAS8X,GAEhD,IAAI5J,EAAS7F,KAAKD,OAAOO,YAErB6Q,EAAa,CAAErB,OAAQ,IAG3B,IAAiC,IAA7BL,EAAeM,YAAgD,IAAzBN,EAAeO,MAAkB,CAC1E,IAAIoB,EAIJ,GAAsC,mBAA3B3B,EAAe4B,QACzBD,EAAS3B,EAAe4B,QAAS1Z,QAGjC,GAAIkO,EAAOyL,OAGVF,EAASzZ,EAAQ4Z,4BAEb,CACJ,IAAIvB,EAAQhQ,KAAKD,OAAOmQ,WACxBkB,EAAS,CACR3S,EAAG9G,EAAQ6Z,WAAaxB,EACxBxU,EAAG7D,EAAQ8Z,UAAYzB,EACvBnN,MAAOlL,EAAQqV,YAAcgD,EAC7BlN,OAAQnL,EAAQ2V,aAAe0C,EAEjC,CAGDmB,EAAW1S,EAAI2S,EAAO3S,EACtB0S,EAAW3V,EAAI4V,EAAO5V,EACtB2V,EAAWtO,MAAQuO,EAAOvO,MAC1BsO,EAAWrO,OAASsO,EAAOtO,MAC5B,CAEA,MAAM4O,EAAiB9U,iBAAkBjF,GAgCzC,OA7BE8X,EAAeK,QAAUjK,EAAO8L,mBAAoBtW,SAASxD,IAC9D,IAAIV,EAIiB,iBAAVU,IAAqBA,EAAQ,CAAE+Z,SAAU/Z,SAE1B,IAAfA,EAAMd,MAAsC,SAAdma,EACxC/Z,EAAQ,CAAEA,MAAOU,EAAMd,KAAM2Z,eAAe,QAEhB,IAAb7Y,EAAM+W,IAAoC,OAAdsC,EAC3C/Z,EAAQ,CAAEA,MAAOU,EAAM+W,GAAI8B,eAAe,IAInB,gBAAnB7Y,EAAM+Z,WACTza,EAAQM,WAAYia,EAAe,gBAAmBja,WAAYia,EAAe,eAG9ErK,MAAMlQ,KACTA,EAAQua,EAAe7Z,EAAM+Z,YAIjB,KAAVza,IACHga,EAAWrB,OAAOjY,EAAM+Z,UAAYza,EACrC,IAGMga,CAER,CAaA1C,yBAAAA,CAA2Bb,EAAWC,GAErC,IAEIgE,GAFgE,mBAA/C7R,KAAKD,OAAOO,YAAYwR,mBAAoC9R,KAAKD,OAAOO,YAAYwR,mBAAqB9R,KAAK+R,qBAE/G5Z,KAAM6H,KAAM4N,EAAWC,GAEvCmE,EAAW,GAGf,OAAOH,EAAM5W,QAAQ,CAAEgX,EAAMC,KAC5B,IAAqC,IAAjCF,EAASjO,QAASkO,EAAKrD,IAE1B,OADAoD,EAAS1S,KAAM2S,EAAKrD,KACb,CACR,GAGF,CAQAmD,mBAAAA,CAAqBnE,EAAWC,GAE/B,IAAIgE,EAAQ,GAEZ,MACMM,EAAY,gCA0DlB,OAtDAnS,KAAKoS,uBAAwBP,EAAOjE,EAAWC,EAAS,aAAawE,GAC7DA,EAAKC,SAAW,MAAQD,EAAKvR,aAAc,aAInDd,KAAKoS,uBAAwBP,EAAOjE,EAAWC,EAASsE,GAAWE,GAC3DA,EAAKC,SAAW,MAAQD,EAAKxJ,YAIrC7I,KAAKoS,uBAAwBP,EAAOjE,EAAWC,EAb5B,sBAaiDwE,GAC5DA,EAAKC,SAAW,OAAUD,EAAKvR,aAAc,QAAWuR,EAAKvR,aAAc,eAInFd,KAAKoS,uBAAwBP,EAAOjE,EAAWC,EApB7B,OAoBiDwE,GAC3DA,EAAKC,SAAW,MAAQD,EAAKxJ,YAGrCgJ,EAAMxW,SAAS4W,IAGVna,EAASma,EAAKlb,KAAMob,GACvBF,EAAKtR,QAAU,CAAEqP,OAAO,GAGhBlY,EAASma,EAAKlb,KA/BN,SAmChBkb,EAAKtR,QAAU,CAAEqP,OAAO,EAAOF,OAAQ,CAAE,QAAS,WAGlD9P,KAAKoS,uBAAwBP,EAAOI,EAAKlb,KAAMkb,EAAKrD,GAAI,uBAAuByD,GACvEA,EAAKE,aACV,CACFvC,OAAO,EACPF,OAAQ,GACRuB,QAASrR,KAAKwS,oBAAoBtS,KAAMF,QAIzCA,KAAKoS,uBAAwBP,EAAOI,EAAKlb,KAAMkb,EAAKrD,GAAI,4CAA4CyD,GAC5FA,EAAKvR,aAAc,qBACxB,CACFkP,OAAO,EACPF,OAAQ,CAAE,SACVuB,QAASrR,KAAKwS,oBAAoBtS,KAAMF,QAG1C,GAEEA,MAEI6R,CAER,CASAW,mBAAAA,CAAqB7a,GAEpB,MAAMsY,EAAoBjQ,KAAKD,OAAOmQ,WAEtC,MAAO,CACNzR,EAAGrC,KAAKkU,MAAS3Y,EAAQ6Z,WAAavB,EAAsB,KAAQ,IACpEzU,EAAGY,KAAKkU,MAAS3Y,EAAQ8Z,UAAYxB,EAAsB,KAAQ,IACnEpN,MAAOzG,KAAKkU,MAAS3Y,EAAQqV,YAAciD,EAAsB,KAAQ,IACzEnN,OAAQ1G,KAAKkU,MAAS3Y,EAAQ2V,aAAe2C,EAAsB,KAAQ,IAG7E,CAaAmC,sBAAAA,CAAwBP,EAAOY,EAAWC,EAAS7b,EAAU8b,EAAYxE,GAExE,IAAIyE,EAAc,CAAA,EACdC,EAAY,CAAA,EAEhB,GAAGnY,MAAMvC,KAAMsa,EAAUzb,iBAAkBH,IAAawE,SAAS,CAAE1D,EAASjB,KAC3E,MAAMoc,EAAMH,EAAYhb,GACL,iBAARmb,GAAoBA,EAAIna,SAClCia,EAAYE,GAAOF,EAAYE,IAAQ,GACvCF,EAAYE,GAAKxT,KAAM3H,GACxB,IAGD,GAAG+C,MAAMvC,KAAMua,EAAQ1b,iBAAkBH,IAAawE,SAAS,CAAE1D,EAASjB,KACzE,MAAMoc,EAAMH,EAAYhb,GAIxB,IAAIob,EAGJ,GANAF,EAAUC,GAAOD,EAAUC,IAAQ,GACnCD,EAAUC,GAAKxT,KAAM3H,GAKjBib,EAAYE,GAAO,CACtB,MAAME,EAAeH,EAAUC,GAAKna,OAAS,EACvCsa,EAAiBL,EAAYE,GAAKna,OAAS,EAI7Cia,EAAYE,GAAME,IACrBD,EAAcH,EAAYE,GAAME,GAChCJ,EAAYE,GAAME,GAAiB,MAI3BJ,EAAYE,GAAMG,KAC1BF,EAAcH,EAAYE,GAAMG,GAChCL,EAAYE,GAAMG,GAAmB,KAEvC,CAGIF,GACHlB,EAAMvS,KAAK,CACVvI,KAAMgc,EACNnE,GAAIjX,EACJgJ,QAASwN,GAEX,GAGF,CAcAc,+BAAAA,CAAiCiE,GAEhC,MAAO,GAAGxY,MAAMvC,KAAM+a,EAAYC,UAAWC,QAAQ,CAAEC,EAAQ1b,KAE9D,MAAM2b,EAA2B3b,EAAQuL,cAAe,8BAaxD,OARKvL,EAAQ6I,aAAc,6BAAiC8S,GAC3DD,EAAO/T,KAAM3H,GAGVA,EAAQuL,cAAe,gCAC1BmQ,EAASA,EAAOtU,OAAQiB,KAAKiP,gCAAiCtX,KAGxD0b,CAAM,GAEX,GAEJ,ECjnBc,MAAME,EAEpBzT,WAAAA,CAAaC,GAEZC,KAAKD,OAASA,EAEdC,KAAK7E,QAAS,EACd6E,KAAKwT,mBAAqB,GAE1BxT,KAAKyT,SAAWzT,KAAKyT,SAASvT,KAAMF,KAErC,CAMA0T,QAAAA,GAEC,GAAI1T,KAAK7E,OAAS,OAElB,MAAMwY,EAAwB3T,KAAKD,OAAO6T,WAE1C5T,KAAK7E,QAAS,EAId6E,KAAK6T,0BAA4B7T,KAAKD,OAAO8D,mBAAmBuC,UAEhE,MAAMuG,EAAmBhW,EAAUqJ,KAAKD,OAAO4F,mBAAoBN,GAC7DyO,EAAmBnd,EAAUqJ,KAAKD,OAAO4F,mBNtCN,kCM0CzC,IAAIoO,EAFJ/T,KAAKgU,gBAAgB5c,UAAUC,IAAK,sBAAuB,iBAI3D,MAAM4c,EAAiBrU,OAAOhD,iBAAkBoD,KAAKgU,iBACjDC,GAAkBA,EAAe9S,aACpC4S,EAAyBE,EAAe9S,YAGzC,MAAM+S,EAAe,GACfC,EAAgBxH,EAAiB,GAAGtU,WAE1C,IAAI+b,EAIJ,MAAMC,EAAoBA,CAAE3T,EAAOnD,EAAG9B,KAErC,IAAI6Y,EAIJ,GAAIF,GAAiBpU,KAAKD,OAAOwU,yBAA0BH,EAAe1T,GACzE4T,EAAmB9b,SAASC,cAAe,OAC3C6b,EAAiBpd,UAAY,+CAC7Bod,EAAiBzc,MAAMiF,QAAU,OACjCsX,EAAchc,QAAS,wBAAyBC,WAAWS,YAAawb,OAEpE,CAGJ,MAAME,EAAOhc,SAASC,cAAe,OAKrC,GAJA+b,EAAKtd,UAAY,cACjBgd,EAAa5U,KAAMkV,GAGfV,GAAoBA,EAAiBnb,OAAS4E,EAAI,CACrD,MAAMkX,EAAkBX,EAAiBvW,GACnCmX,EAAiB9U,OAAOhD,iBAAkB6X,GAE5CC,GAAkBA,EAAevT,WACpCqT,EAAK3c,MAAMsJ,WAAauT,EAAevT,WAC7B4S,IACVS,EAAK3c,MAAMsJ,WAAa4S,EAEzB,MAAUA,IACVS,EAAK3c,MAAMsJ,WAAa4S,GAGzB,MAAMY,EAAkBnc,SAASC,cAAe,OAChDkc,EAAgBzd,UAAY,qBAC5Bsd,EAAK1b,YAAa6b,GAElBL,EAAmB9b,SAASC,cAAe,OAC3C6b,EAAiBpd,UAAY,sBAC7Byd,EAAgB7b,YAAawb,EAC9B,CAEAA,EAAiBxb,YAAa4H,GAE9BA,EAAMtJ,UAAUE,OAAQ,OAAQ,UAChCoJ,EAAMG,aAAc,eAAgBtD,GACpCmD,EAAMG,aAAc,eAAgBpF,GAEhCiF,EAAMU,yBACTV,EAAMU,uBAAuB9J,OAAQ,OAAQ,UAC7Cgd,EAAiBM,aAAclU,EAAMU,uBAAwBV,IAG9D0T,EAAgB1T,CAAK,EAKtBiM,EAAiBtR,SAAS,CAAEwZ,EAAiBtX,KAExCyC,KAAKD,OAAO+U,gBAAiBD,GAChCA,EAAgB7d,iBAAkB,WAAYqE,SAAS,CAAE0Z,EAAetZ,KACvE4Y,EAAmBU,EAAexX,EAAG9B,EAAG,IAIzC4Y,EAAmBQ,EAAiBtX,EAAG,EACxC,GAEEyC,MAEHA,KAAKgV,oBAGLre,EAAUqJ,KAAKD,OAAO4F,mBAAoB,UAAWtK,SAAS4Z,GAASA,EAAM3d,WAG7E4c,EAAa7Y,SAASmZ,GAAQL,EAAcrb,YAAa0b,KAGzDxU,KAAKD,OAAOoM,aAAahJ,OAAQnD,KAAKD,OAAO8D,oBAE7C7D,KAAKD,OAAOoD,SACZnD,KAAKD,OAAOmV,SAAUvB,GAEtB3T,KAAKwT,mBAAmBnY,SAAS8Z,GAAYA,MAC7CnV,KAAKwT,mBAAqB,GAE1BxT,KAAKoV,wBAELpV,KAAKgU,gBAAgB5c,UAAUE,OAAQ,uBACvC0I,KAAKgU,gBAAgBvP,iBAAkB,SAAUzE,KAAKyT,SAAU,CAAE4B,SAAS,GAE5E,CAMAC,UAAAA,GAEC,IAAKtV,KAAK7E,OAAS,OAEnB,MAAMoa,EAA0BvV,KAAKD,OAAO6T,WAE5C5T,KAAK7E,QAAS,EAEd6E,KAAKgU,gBAAgBtP,oBAAqB,SAAU1E,KAAKyT,UACzDzT,KAAKgU,gBAAgB5c,UAAUE,OAAQ,iBAEvC0I,KAAKwV,oBAELxV,KAAKD,OAAO8D,mBAAmBuC,UAAYpG,KAAK6T,0BAChD7T,KAAKD,OAAO0K,OACZzK,KAAKD,OAAOmV,SAAUK,GAEtBvV,KAAK6T,0BAA4B,IAElC,CAEA4B,MAAAA,CAAQC,GAEiB,kBAAbA,EACVA,EAAW1V,KAAK0T,WAAa1T,KAAKsV,aAGlCtV,KAAK2V,WAAa3V,KAAKsV,aAAetV,KAAK0T,UAG7C,CAKAiC,QAAAA,GAEC,OAAO3V,KAAK7E,MAEb,CAKA6Z,iBAAAA,GAEChV,KAAK4V,YAAcpd,SAASC,cAAe,OAC3CuH,KAAK4V,YAAY1e,UAAY,YAE7B8I,KAAK6V,iBAAmBrd,SAASC,cAAe,OAChDuH,KAAK6V,iBAAiB3e,UAAY,kBAClC8I,KAAK4V,YAAY9c,YAAakH,KAAK6V,kBAEnC7V,KAAK8V,oBAAsBtd,SAASC,cAAe,OACnDuH,KAAK8V,oBAAoB5e,UAAY,qBACrC8I,KAAK6V,iBAAiB/c,YAAakH,KAAK8V,qBAExC9V,KAAKgU,gBAAgBY,aAAc5U,KAAK4V,YAAa5V,KAAKgU,gBAAgB+B,YAE1E,MAAMC,EAA4BrR,IAEjC,IAAIsR,GAAatR,EAAMuR,QAAUlW,KAAK6V,iBAAiBtE,wBAAwB4E,KAAQnW,KAAKoW,kBAC5FH,EAAW7Z,KAAKE,IAAKF,KAAKC,IAAK4Z,EAAU,GAAK,GAE9CjW,KAAKgU,gBAAgBqC,UAAYJ,GAAajW,KAAKgU,gBAAgBsC,aAAetW,KAAKgU,gBAAgB1G,aAAc,EAIhHiJ,EAA0B5R,IAE/B3E,KAAKwW,qBAAsB,EAC3BxW,KAAKyW,kBAELje,SAASkM,oBAAqB,YAAasR,GAC3Cxd,SAASkM,oBAAqB,UAAW6R,EAAuB,EAiBjEvW,KAAK6V,iBAAiBpR,iBAAkB,aAbdE,IAEzBA,EAAM+R,iBAEN1W,KAAKwW,qBAAsB,EAE3Bhe,SAASiM,iBAAkB,YAAauR,GACxCxd,SAASiM,iBAAkB,UAAW8R,GAEtCP,EAAyBrR,EAAO,GAMlC,CAEA6Q,iBAAAA,GAEKxV,KAAK4V,cACR5V,KAAK4V,YAAYte,SACjB0I,KAAK4V,YAAc,KAGrB,CAEAzS,MAAAA,GAEKnD,KAAK2V,aACR3V,KAAK2W,YACL3W,KAAK4W,qBAGP,CAMAD,SAAAA,GAEC,MAAM9Q,EAAS7F,KAAKD,OAAOO,YAErBuW,EAAY7W,KAAKD,OAAO+W,qBAAsBlX,OAAOmX,WAAYnX,OAAOoX,aACxEhH,EAAQhQ,KAAKD,OAAOmQ,WACpB+G,EAA2C,YAAxBpR,EAAOqR,aAE1BC,EAAiBnX,KAAKgU,gBAAgB1G,aACtC8J,EAAgBP,EAAU/T,OAASkN,EACnCqH,EAAaJ,EAAmBG,EAAgBD,EAGtDnX,KAAKsX,oBAAsBL,EAAmBG,EAAgBD,EAE9DnX,KAAKgU,gBAAgBnc,MAAM0f,YAAa,gBAAiBF,EAAa,MACtErX,KAAKgU,gBAAgBnc,MAAM2f,eAA8C,iBAAtB3R,EAAO4R,WAA2B,KAAI5R,EAAO4R,aAAe,GAG/GzX,KAAK0X,cAAgB,GAErB,MAAMxD,EAAepd,MAAMC,KAAMiJ,KAAKD,OAAO4F,mBAAmB3O,iBAAkB,iBAElFgJ,KAAK2X,MAAQzD,EAAa9U,KAAKwY,IAC9B,MAAMpD,EAAOxU,KAAK6X,WAAW,CAC5BD,cACAE,aAAcF,EAAY1U,cAAe,WACzC6U,cAAeH,EAAY1U,cAAe,uBAC1CsH,eAAgBoN,EAAY1U,cAAe,wBAC3C8U,kBAAmBJ,EAAY1U,cAAe,qBAC9CyL,oBAAqBiJ,EAAY5gB,iBAAkB,6BACnDihB,iBAAkB,KAGnBzD,EAAKoD,YAAY/f,MAAM0f,YAAa,kBAAoC,IAAlB1R,EAAOyL,OAAkB,OAASuF,EAAU/T,OAAS,MAE3G9C,KAAK0X,cAAcpY,KAAK,CACvBkV,KAAMA,EACNd,SAAUA,IAAM1T,KAAKkY,aAAc1D,GACnCc,WAAYA,IAAMtV,KAAKmY,eAAgB3D,KAIxCxU,KAAKoY,8BAA+B5D,GAGhCA,EAAK7F,oBAAoBhW,OAAS,GACrCqH,KAAKqY,iCAAkC7D,GAGxC,IAAI8D,EAA0Blc,KAAKE,IAAKkY,EAAK+D,eAAe5f,OAAS,EAAG,GAIxE2f,GAA2B9D,EAAKyD,iBAAiB7E,QAAQ,CAAEoF,EAAOhE,IAC1DgE,EAAQpc,KAAKE,IAAKkY,EAAK+D,eAAe5f,OAAS,EAAG,IACvD6b,EAAKyD,iBAAiBtf,QAGzB6b,EAAKoD,YAAY5gB,iBAAkB,sBAAuBqE,SAASzE,GAAMA,EAAGU,WAO5E,IAAK,IAAIZ,EAAI,EAAGA,EAAI4hB,EAA0B,EAAG5hB,IAAM,CACtD,MAAM+hB,EAAejgB,SAASC,cAAe,OAC7CggB,EAAavhB,UAAY,oBACzBuhB,EAAa5gB,MAAMiL,OAAS9C,KAAKsX,oBAAsB,KACvDmB,EAAa5gB,MAAM6gB,gBAAkBzB,EAAmB,SAAW,QACnEzC,EAAKoD,YAAY9e,YAAa2f,GAEpB,IAAN/hB,IACH+hB,EAAa5gB,MAAM8gB,WAAa3Y,KAAKsX,oBAAsB,KAE7D,CAiCA,OA5BIL,GAAoBzC,EAAK+D,eAAe5f,OAAS,GACpD6b,EAAK6C,WAAaF,EAClB3C,EAAKoD,YAAY/f,MAAM0f,YAAa,gBAAiBJ,EAAiB,QAGtE3C,EAAK6C,WAAaA,EAClB7C,EAAKoD,YAAY/f,MAAM+gB,eAAgB,kBAIxCpE,EAAKqE,cAAgB7Y,KAAKsX,oBAAsBgB,EAGhD9D,EAAKsE,YAActE,EAAK6C,WAAa7C,EAAKqE,cAG1CrE,EAAKoD,YAAY/f,MAAM0f,YAAa,wBAAyB/C,EAAKqE,cAAgB,MAG9EP,EAA0B,GAC7B9D,EAAKuD,cAAclgB,MAAMkhB,SAAW,SACpCvE,EAAKuD,cAAclgB,MAAMse,IAAM/Z,KAAKE,KAAO6a,EAAiB3C,EAAK6C,YAAe,EAAG,GAAM,OAGzF7C,EAAKuD,cAAclgB,MAAMkhB,SAAW,WACpCvE,EAAKoD,YAAY/f,MAAM6gB,gBAAkBlE,EAAK6C,WAAaF,EAAiB,SAAW,SAGjF3C,CAAI,IAGZxU,KAAKgZ,mBAaLhZ,KAAKgU,gBAAgBnT,aAAc,iBAAkBgF,EAAOoT,gBAExDpT,EAAOoT,gBAAkBjZ,KAAKsY,wBAA0B,GAEtDtY,KAAK4V,aAAc5V,KAAKgV,oBAE7BhV,KAAKkZ,mBAGLlZ,KAAKwV,mBAGP,CAMAwD,gBAAAA,GAGChZ,KAAKsY,wBAA0BtY,KAAK0X,cAActE,QAAQ,CAAEoF,EAAOW,IAC3DX,EAAQpc,KAAKE,IAAK6c,EAAQ3E,KAAK+D,eAAe5f,OAAQ,IAC3D,GAEH,IAAIygB,EAAa,EAIjBpZ,KAAK0X,cAAcrc,SAAS,CAAE8d,EAASziB,KACtCyiB,EAAQE,MAAQ,CACfD,EACAA,EAAahd,KAAKE,IAAK6c,EAAQ3E,KAAK+D,eAAe5f,OAAQ,GAAMqH,KAAKsY,yBAGvE,MAAMgB,GAA6BH,EAAQE,MAAM,GAAKF,EAAQE,MAAM,IAAOF,EAAQ3E,KAAK+D,eAAe5f,OAEvGwgB,EAAQ3E,KAAK+D,eAAeld,SAAS,CAAEke,EAAe7iB,KACrD6iB,EAAcF,MAAQ,CACrBD,EAAa1iB,EAAI4iB,EACjBF,GAAe1iB,EAAI,GAAM4iB,EACzB,IAGFF,EAAaD,EAAQE,MAAM,EAAE,GAG/B,CAOAjB,6BAAAA,CAA+B5D,EAAMsD,GAEpCA,EAAeA,GAAgBtD,EAAKsD,aAKpC,MAAM0B,EAAiBxZ,KAAKD,OAAO0Z,UAAUC,KAAM5B,EAAa9gB,iBAAkB,cAAe,GAyBjG,OAtBIwiB,EAAe7gB,SAClB6b,EAAKiF,UAAYzZ,KAAKD,OAAO0Z,UAAUC,KAAM5B,EAAa9gB,iBAAkB,6BAC5Ewd,EAAK+D,eAAejZ,KAEnB,CACCoU,SAAUA,KACT1T,KAAKD,OAAO0Z,UAAUtT,QAAS,EAAGqO,EAAKiF,UAAW3B,EAAc,IAMnE0B,EAAene,SAAS,CAAEoe,EAAW/iB,KACpC8d,EAAK+D,eAAejZ,KAAK,CACxBoU,SAAUA,KACT1T,KAAKD,OAAO0Z,UAAUtT,OAAQzP,EAAG8d,EAAKiF,UAAW3B,EAAc,GAE/D,KAKGtD,EAAK+D,eAAe5f,MAE5B,CAQA0f,gCAAAA,CAAkC7D,GAE7BA,EAAK7F,oBAAoBhW,OAAS,GAGrCqH,KAAK0X,cAAcpY,QAASxI,MAAMC,KAAMyd,EAAK7F,qBAAsBvP,KAAK,CAAEua,EAAoBjjB,KAC7F,IAAIkjB,EAAkB5Z,KAAK6X,WAAW,CACrCC,aAAc6B,EAAmBzW,cAAe,WAChDsH,eAAgBmP,EAChB3B,kBAAmB2B,EAAmBzW,cAAe,uBAStD,OALAlD,KAAKoY,8BAA+BwB,EAAiBA,EAAgB9B,cAErEtD,EAAKyD,iBAAiB3Y,KAAMsa,GAGrB,CACNpF,KAAMoF,EACNlG,SAAUA,IAAM1T,KAAKkY,aAAc0B,GACnCtE,WAAYA,IAAMtV,KAAKmY,eAAgByB,GACvC,IAIJ,CAMA/B,UAAAA,CAAYrD,GAMX,OAJAA,EAAK+D,eAAiB,GACtB/D,EAAKqF,OAASxR,SAAUmM,EAAKsD,aAAahX,aAAc,gBAAkB,IAC1E0T,EAAKvI,OAAS5D,SAAUmM,EAAKsD,aAAahX,aAAc,gBAAkB,IAEnE0T,CAER,CAMA0E,eAAAA,GAEClZ,KAAK6V,iBAAiB7e,iBAAkB,oBAAqBqE,SAASqF,GAASA,EAAMpJ,WAErF,MAAMgf,EAAetW,KAAKgU,gBAAgBsC,aACpCa,EAAiBnX,KAAKgU,gBAAgB1G,aACtCwM,EAAuB3C,EAAiBb,EAE9CtW,KAAKoW,kBAAoBpW,KAAK6V,iBAAiBvI,aAC/CtN,KAAK+Z,eAAiB3d,KAAKE,IAAKwd,EAAuB9Z,KAAKoW,kBAliBlC,GAmiB1BpW,KAAKga,4BAA8Bha,KAAKoW,kBAAoBpW,KAAK+Z,eAEjE,MAAME,EAAwB9C,EAAiBb,EAAetW,KAAKoW,kBAC7D8D,EAAU9d,KAAKC,IAAK4d,EAAwB,EAxiBvB,GA0iB3Bja,KAAK8V,oBAAoBje,MAAMiL,OAAS9C,KAAK+Z,eAAiBG,EAAU,KAGpED,EA5iB8B,EA8iBjCja,KAAK0X,cAAcrc,SAAS8e,IAE3B,MAAM3F,KAAEA,GAAS2F,EAGjB3F,EAAK4F,iBAAmB5hB,SAASC,cAAe,OAChD+b,EAAK4F,iBAAiBljB,UAAY,kBAClCsd,EAAK4F,iBAAiBviB,MAAMse,IAAMgE,EAAad,MAAM,GAAKrZ,KAAKoW,kBAAoB,KACnF5B,EAAK4F,iBAAiBviB,MAAMiL,QAAWqX,EAAad,MAAM,GAAKc,EAAad,MAAM,IAAOrZ,KAAKoW,kBAAoB8D,EAAU,KAC5H1F,EAAK4F,iBAAiBhjB,UAAUqe,OAAQ,eAAgBjB,EAAK+D,eAAe5f,OAAS,GACrFqH,KAAK6V,iBAAiB/c,YAAa0b,EAAK4F,kBAGxC5F,EAAK6F,sBAAwB7F,EAAK+D,eAAenZ,KAAK,CAAE+Z,EAASziB,KAEhE,MAAM4jB,EAAiB9hB,SAASC,cAAe,OAQ/C,OAPA6hB,EAAepjB,UAAY,oBAC3BojB,EAAeziB,MAAMse,KAAQgD,EAAQE,MAAM,GAAKc,EAAad,MAAM,IAAOrZ,KAAKoW,kBAAoB,KACnGkE,EAAeziB,MAAMiL,QAAWqW,EAAQE,MAAM,GAAKF,EAAQE,MAAM,IAAOrZ,KAAKoW,kBAAoB8D,EAAU,KAC3G1F,EAAK4F,iBAAiBthB,YAAawhB,GAEzB,IAAN5jB,IAAU4jB,EAAeziB,MAAMiF,QAAU,QAEtCwd,CAAc,GAEnB,IAOJta,KAAK2X,MAAMtc,SAASmZ,GAAQA,EAAK4F,iBAAmB,MAItD,CAMAxD,kBAAAA,GAEC,MAAMO,EAAiBnX,KAAKgU,gBAAgB1G,aACtCwM,EAAuB3C,EAAiBnX,KAAKgU,gBAAgBsC,aAE7DD,EAAYrW,KAAKgU,gBAAgBqC,UACjCC,EAAetW,KAAKgU,gBAAgBsC,aAAea,EACnD8B,EAAiB7c,KAAKE,IAAKF,KAAKC,IAAKga,EAAYC,EAAc,GAAK,GACpEiE,EAAoBne,KAAKE,IAAKF,KAAKC,KAAOga,EAAYc,EAAiB,GAAMnX,KAAKgU,gBAAgBsC,aAAc,GAAK,GAE3H,IAAIkE,EAEJxa,KAAK0X,cAAcrc,SAAW8d,IAC7B,MAAM3E,KAAEA,GAAS2E,EAEKF,GAAkBE,EAAQE,MAAM,GAA0B,EAArBS,GAChDb,GAAkBE,EAAQE,MAAM,GAA0B,EAArBS,IAG1BtF,EAAKiG,QAC1BjG,EAAKiG,QAAS,EACdza,KAAKD,OAAOoM,aAAa1L,KAAM+T,EAAKsD,eAE5BtD,EAAKiG,SACbjG,EAAKiG,QAAS,EACdza,KAAKD,OAAOoM,aAAa7I,OAAQkR,EAAKsD,eAInCmB,GAAkBE,EAAQE,MAAM,IAAMJ,GAAkBE,EAAQE,MAAM,IACzErZ,KAAK0a,gBAAiBvB,GACtBqB,EAAarB,EAAQ3E,MAGb2E,EAAQhe,QAChB6E,KAAK2a,kBAAmBxB,EACzB,IAKGqB,GACHA,EAAWjC,eAAeld,SAAW8d,IAChCoB,GAAqBpB,EAAQE,MAAM,IAAMkB,GAAqBpB,EAAQE,MAAM,GAC/ErZ,KAAK0a,gBAAiBvB,GAEdA,EAAQhe,QAChB6E,KAAK2a,kBAAmBxB,EACzB,IAKFnZ,KAAK4a,oBAAqBvE,GAAcrW,KAAKgU,gBAAgBsC,aAAea,GAE7E,CAOAyD,mBAAAA,CAAqB3E,GAEhBjW,KAAK4V,cAER5V,KAAK8V,oBAAoBje,MAAMD,UAAa,cAAaqe,EAAWjW,KAAKga,iCAEzEha,KAAK6a,cACH5f,QAAQuZ,GAAQA,EAAK4F,mBACrB/e,SAAWmZ,IACXA,EAAK4F,iBAAiBhjB,UAAUqe,OAAQ,UAA0B,IAAhBjB,EAAKrZ,QAEvDqZ,EAAK+D,eAAeld,SAAS,CAAE8d,EAASziB,KACvC8d,EAAK6F,sBAAsB3jB,GAAGU,UAAUqe,OAAQ,UAA0B,IAAhBjB,EAAKrZ,SAAsC,IAAnBge,EAAQhe,OAAiB,GACzG,IAGL6E,KAAKyW,kBAIP,CAMAA,eAAAA,GAECzW,KAAK4V,YAAYxe,UAAUC,IAAK,WAEhCkH,aAAcyB,KAAK8a,wBAE4B,SAA3C9a,KAAKD,OAAOO,YAAY2Y,gBAA8BjZ,KAAKwW,sBAE9DxW,KAAK8a,uBAAyBtc,YAAY,KACrCwB,KAAK4V,aACR5V,KAAK4V,YAAYxe,UAAUE,OAAQ,UACpC,GA7rB2B,KAksB9B,CAKAyjB,IAAAA,GAEC/a,KAAKgU,gBAAgBqC,WAAarW,KAAKsX,mBAExC,CAKA0D,IAAAA,GAEChb,KAAKgU,gBAAgBqC,WAAarW,KAAKsX,mBAExC,CAOA2D,aAAAA,CAAenD,GAGd,GAAK9X,KAAK7E,OAGL,CAEJ,MAAMge,EAAUnZ,KAAKkb,wBAAyBpD,GAE1CqB,IAEHnZ,KAAKgU,gBAAgBqC,UAAY8C,EAAQE,MAAM,IAAOrZ,KAAKgU,gBAAgBsC,aAAetW,KAAKgU,gBAAgB1G,cAEjH,MAVCtN,KAAKwT,mBAAmBlU,MAAM,IAAMU,KAAKib,cAAenD,IAY1D,CAMAqD,mBAAAA,GAEC5c,aAAcyB,KAAKob,4BAEnBpb,KAAKob,2BAA6B5c,YAAY,KAC7C6c,eAAeC,QAAS,oBAAqBtb,KAAKgU,gBAAgBqC,WAClEgF,eAAeC,QAAS,uBAAwBniB,SAASoiB,OAASpiB,SAASqiB,UAE3Exb,KAAKob,2BAA6B,IAAI,GACpC,GAEJ,CAKAhG,qBAAAA,GAEC,MAAMqG,EAAiBJ,eAAeK,QAAS,qBACzCC,EAAeN,eAAeK,QAAS,wBAEzCD,GAAkBE,IAAiBxiB,SAASoiB,OAASpiB,SAASqiB,WACjExb,KAAKgU,gBAAgBqC,UAAYhO,SAAUoT,EAAgB,IAG7D,CAQAvD,YAAAA,CAAc1D,GAEb,IAAKA,EAAKrZ,OAAS,CAElBqZ,EAAKrZ,QAAS,EAEd,MAAM2c,aAAEA,EAAYE,kBAAEA,EAAiBxN,eAAEA,EAAcqP,OAAEA,EAAM5N,OAAEA,GAAWuI,EAE5EhK,EAAe3S,MAAMiF,QAAU,QAE/Bgb,EAAa1gB,UAAUC,IAAK,WAExB2gB,GACHA,EAAkB5gB,UAAUC,IAAK,WAGlC2I,KAAKD,OAAO6b,qBAAsB9D,EAAc+B,EAAQ5N,GACxDjM,KAAKD,OAAO8b,YAAYxQ,kCAAmCyM,EAAc9X,KAAKgU,iBAK9Eld,MAAMC,KAAMyT,EAAenS,WAAWrB,iBAAkB,yBAA2BqE,SAASygB,IACvFA,IAAYtR,IACfsR,EAAQjkB,MAAMiF,QAAU,OACzB,GAGF,CAED,CAOAqb,cAAAA,CAAgB3D,GAEXA,EAAKrZ,SAERqZ,EAAKrZ,QAAS,EACVqZ,EAAKsD,cAAetD,EAAKsD,aAAa1gB,UAAUE,OAAQ,WACxDkd,EAAKwD,mBAAoBxD,EAAKwD,kBAAkB5gB,UAAUE,OAAQ,WAIxE,CAEAojB,eAAAA,CAAiBvB,GAEXA,EAAQhe,SACZge,EAAQhe,QAAS,EACjBge,EAAQzF,WAGV,CAEAiH,iBAAAA,CAAmBxB,GAEdA,EAAQhe,SACXge,EAAQhe,QAAS,EAEbge,EAAQ7D,YACX6D,EAAQ7D,aAIX,CAUAyG,iBAAAA,CAAmBxe,EAAG9B,GAErB,MAAM+Y,EAAOxU,KAAK6a,cAAcjS,MAAM4L,GAC9BA,EAAKqF,SAAWtc,GAAKiX,EAAKvI,SAAWxQ,IAG7C,OAAO+Y,EAAOA,EAAKsD,aAAe,IAEnC,CASAoD,uBAAAA,CAAyBxa,GAExB,OAAOV,KAAK0X,cAAc9O,MAAMuQ,GAAWA,EAAQ3E,KAAKsD,eAAiBpX,GAE1E,CAQAma,WAAAA,GAEC,OAAO7a,KAAK2X,MAAMqE,SAASxH,GAAQ,CAACA,KAAUA,EAAKyD,kBAAoB,KAExE,CAEAxE,QAAAA,GAECzT,KAAK4W,qBACL5W,KAAKmb,qBAEN,CAEA,mBAAInH,GAEH,OAAOhU,KAAKD,OAAOkc,oBAEpB,EC34Bc,MAAMC,EAEpBpc,WAAAA,CAAaC,GAEZC,KAAKD,OAASA,CAEf,CAMA,cAAM2T,GAEL,MAAM7N,EAAS7F,KAAKD,OAAOO,YACrB6b,EAASxlB,EAAUqJ,KAAKD,OAAO4F,mBAAoBP,GAGnDgX,EAAoBvW,EAAOG,aAAe,aAAa5L,KAAMyL,EAAOK,iBAEpE2Q,EAAY7W,KAAKD,OAAO+W,qBAAsBlX,OAAOmX,WAAYnX,OAAOoX,aAGxEqF,EAAYjgB,KAAKkgB,MAAOzF,EAAUhU,OAAU,EAAIgD,EAAO0W,SAC5DlF,EAAajb,KAAKkgB,MAAOzF,EAAU/T,QAAW,EAAI+C,EAAO0W,SAGpDxP,EAAa8J,EAAUhU,MAC5BwK,EAAcwJ,EAAU/T,aAEnB,IAAI0Z,QAASzhB,uBAGnBzC,EAAkB,cAAe+jB,EAAW,MAAOhF,EAAY,qBAG/D/e,EAAkB,iFAAkFyU,EAAY,kBAAmBM,EAAa,OAEhJ7U,SAASikB,gBAAgBrlB,UAAUC,IAAK,eAAgB,aACxDmB,SAASkkB,KAAK7kB,MAAMgL,MAAQwZ,EAAY,KACxC7jB,SAASkkB,KAAK7kB,MAAMiL,OAASuU,EAAa,KAE1C,MAAMrD,EAAkBhU,KAAKD,OAAOkc,qBACpC,IAAIlI,EACJ,GAAIC,EAAkB,CACrB,MAAMC,EAAiBrU,OAAOhD,iBAAkBoX,GAC5CC,GAAkBA,EAAe9S,aACpC4S,EAAyBE,EAAe9S,WAE1C,OAGM,IAAIqb,QAASzhB,uBACnBiF,KAAKD,OAAO4c,oBAAqB5P,EAAYM,SAGvC,IAAImP,QAASzhB,uBAEnB,MAAM6hB,EAAqBT,EAAO/c,KAAKsB,GAASA,EAAM4V,eAEhDqB,EAAQ,GACRxD,EAAgBgI,EAAO,GAAG9jB,WAChC,IAAI2N,EAAc,EAGlBmW,EAAO9gB,SAAS,SAAUqF,EAAOwR,GAIhC,IAA4C,IAAxCxR,EAAMtJ,UAAUmU,SAAU,SAAsB,CAEnD,IAAIsR,GAASR,EAAYtP,GAAe,EACpCoJ,GAAQkB,EAAahK,GAAgB,EAEzC,MAAMyP,EAAgBF,EAAoB1K,GAC1C,IAAI6K,EAAgB3gB,KAAKE,IAAKF,KAAK4gB,KAAMF,EAAgBzF,GAAc,GAGvE0F,EAAgB3gB,KAAKC,IAAK0gB,EAAelX,EAAOoX,sBAG1B,IAAlBF,GAAuBlX,EAAOyL,QAAU5Q,EAAMtJ,UAAUmU,SAAU,aACrE4K,EAAM/Z,KAAKE,KAAO+a,EAAayF,GAAkB,EAAG,IAKrD,MAAMtI,EAAOhc,SAASC,cAAe,OA0BrC,GAzBAkf,EAAMrY,KAAMkV,GAEZA,EAAKtd,UAAY,WACjBsd,EAAK3c,MAAMiL,QAAauU,EAAaxR,EAAOqX,qBAAwBH,EAAkB,KAIlFhJ,IACHS,EAAK3c,MAAMsJ,WAAa4S,GAGzBS,EAAK1b,YAAa4H,GAGlBA,EAAM7I,MAAMglB,KAAOA,EAAO,KAC1Bnc,EAAM7I,MAAMse,IAAMA,EAAM,KACxBzV,EAAM7I,MAAMgL,MAAQkK,EAAa,KAEjC/M,KAAKD,OAAOoM,aAAahJ,OAAQzC,GAE7BA,EAAMU,wBACToT,EAAKI,aAAclU,EAAMU,uBAAwBV,GAI9CmF,EAAOsX,UAAY,CAGtB,MAAMC,EAAQpd,KAAKD,OAAOsd,cAAe3c,GACzC,GAAI0c,EAAQ,CAEX,MAAME,EAAe,EACfC,EAA0C,iBAArB1X,EAAOsX,UAAyBtX,EAAOsX,UAAY,SACxEK,EAAehlB,SAASC,cAAe,OAC7C+kB,EAAapmB,UAAUC,IAAK,iBAC5BmmB,EAAapmB,UAAUC,IAAK,qBAC5BmmB,EAAa3c,aAAc,cAAe0c,GAC1CC,EAAapX,UAAYgX,EAEL,kBAAhBG,EACH5F,EAAMrY,KAAMke,IAGZA,EAAa3lB,MAAMglB,KAAOS,EAAe,KACzCE,EAAa3lB,MAAM4lB,OAASH,EAAe,KAC3CE,EAAa3lB,MAAMgL,MAAUwZ,EAAyB,EAAbiB,EAAmB,KAC5D9I,EAAK1b,YAAa0kB,GAGpB,CAED,CAGA,GAAIpB,EAAoB,CACvB,MAAMsB,EAAgBllB,SAASC,cAAe,OAC9CilB,EAActmB,UAAUC,IAAK,gBAC7BqmB,EAActmB,UAAUC,IAAK,oBAC7BqmB,EAActX,UAAYJ,IAC1BwO,EAAK1b,YAAa4kB,EACnB,CAGA,GAAI7X,EAAO8X,qBAAuB,CAKjC,MAAMnE,EAAiBxZ,KAAKD,OAAO0Z,UAAUC,KAAMlF,EAAKxd,iBAAkB,cAAe,GAEzF,IAAI4mB,EAEJpE,EAAene,SAAS,SAAUoe,EAAWvH,GAGxC0L,GACHA,EAAqBviB,SAAS,SAAUwiB,GACvCA,EAASzmB,UAAUE,OAAQ,mBAC5B,IAIDmiB,EAAUpe,SAAS,SAAUwiB,GAC5BA,EAASzmB,UAAUC,IAAK,UAAW,mBACnC,GAAE2I,MAGH,MAAM8d,EAAatJ,EAAKuJ,WAAW,GAGnC,GAAI3B,EAAoB,CACvB,MACM4B,EAAiB9L,EAAQ,EADT4L,EAAW5a,cAAe,qBAElCkD,WAAa,IAAM4X,CAClC,CAEArG,EAAMrY,KAAMwe,GAEZF,EAAuBnE,CAEvB,GAAEzZ,MAGHwZ,EAAene,SAAS,SAAUoe,GACjCA,EAAUpe,SAAS,SAAUwiB,GAC5BA,EAASzmB,UAAUE,OAAQ,UAAW,mBACvC,GACD,GAED,MAGCX,EAAU6d,EAAM,4BAA6BnZ,SAAS,SAAUwiB,GAC/DA,EAASzmB,UAAUC,IAAK,UACzB,GAGF,CAEA,GAAE2I,YAEG,IAAIwc,QAASzhB,uBAEnB4c,EAAMtc,SAASmZ,GAAQL,EAAcrb,YAAa0b,KAGlDxU,KAAKD,OAAOoM,aAAahJ,OAAQnD,KAAKD,OAAO8D,oBAG7C7D,KAAKD,OAAO9C,cAAc,CAAEvE,KAAM,cAElCsb,EAAgB5c,UAAUE,OAAQ,sBAEnC,CAKAqe,QAAAA,GAEC,MAAwC,UAAjC3V,KAAKD,OAAOO,YAAY2d,IAEhC,ECrOc,MAAMC,EAEpBpe,WAAAA,CAAaC,GAEZC,KAAKD,OAASA,CAEf,CAKA6F,SAAAA,CAAWC,EAAQC,IAEO,IAArBD,EAAO4T,UACVzZ,KAAKme,WAE2B,IAAxBrY,EAAU2T,WAClBzZ,KAAKoe,QAGP,CAMAD,OAAAA,GAECxnB,EAAUqJ,KAAKD,OAAO8D,mBAAoB,aAAcxI,SAAS1D,IAChEA,EAAQP,UAAUC,IAAK,WACvBM,EAAQP,UAAUE,OAAQ,mBAAoB,GAGhD,CAMA8mB,MAAAA,GAECznB,EAAUqJ,KAAKD,OAAO8D,mBAAoB,aAAcxI,SAAS1D,IAChEA,EAAQP,UAAUE,OAAQ,WAC1BK,EAAQP,UAAUE,OAAQ,mBAAoB,GAGhD,CAQA+mB,eAAAA,GAEC,IAAI5S,EAAezL,KAAKD,OAAOuG,kBAC/B,GAAImF,GAAgBzL,KAAKD,OAAOO,YAAYmZ,UAAY,CACvD,IAAIA,EAAYhO,EAAazU,iBAAkB,4BAC3CsnB,EAAkB7S,EAAazU,iBAAkB,0CAErD,MAAO,CACN+jB,KAAMtB,EAAU9gB,OAAS2lB,EAAgB3lB,OAAS,EAClDqiB,OAAQsD,EAAgB3lB,OAE1B,CAEC,MAAO,CAAEoiB,MAAM,EAAOC,MAAM,EAG9B,CAqBAtB,IAAAA,CAAMD,EAAW8E,GAAU,GAE1B9E,EAAY3iB,MAAMC,KAAM0iB,GAExB,IAAI+E,EAAU,GACbC,EAAY,GACZC,EAAS,GAGVjF,EAAUpe,SAASwiB,IAClB,GAAIA,EAASrd,aAAc,uBAA0B,CACpD,IAAI0R,EAAQ7J,SAAUwV,EAAS/c,aAAc,uBAAyB,IAEjE0d,EAAQtM,KACZsM,EAAQtM,GAAS,IAGlBsM,EAAQtM,GAAO5S,KAAMue,EACtB,MAECY,EAAUnf,KAAM,CAAEue,GACnB,IAKDW,EAAUA,EAAQzf,OAAQ0f,GAI1B,IAAIvM,EAAQ,EAaZ,OATAsM,EAAQnjB,SAASsjB,IAChBA,EAAMtjB,SAASwiB,IACda,EAAOpf,KAAMue,GACbA,EAAShd,aAAc,sBAAuBqR,EAAO,IAGtDA,GAAQ,KAGU,IAAZqM,EAAmBC,EAAUE,CAErC,CAMAE,OAAAA,GAEC5e,KAAKD,OAAOyG,sBAAsBnL,SAASwZ,IAE1C,IAAIjI,EAAiBjW,EAAUke,EAAiB,WAChDjI,EAAevR,SAAS,CAAE0Z,EAAevZ,KAExCwE,KAAK0Z,KAAM3E,EAAc/d,iBAAkB,aAAe,GAExDgJ,MAE2B,IAA1B4M,EAAejU,QAAeqH,KAAK0Z,KAAM7E,EAAgB7d,iBAAkB,aAAe,GAIhG,CAYAmP,MAAAA,CAAQ+L,EAAOuH,EAAW/Y,EAAQV,KAAKD,OAAOuG,mBAE7C,IAAIuY,EAAmB,CACtBC,MAAO,GACPC,OAAQ,IAGT,GAAIre,GAASV,KAAKD,OAAOO,YAAYmZ,YAEpCA,EAAYA,GAAazZ,KAAK0Z,KAAMhZ,EAAM1J,iBAAkB,eAE9C2B,OAAS,CAEtB,IAAIqmB,EAAW,EAEf,GAAqB,iBAAV9M,EAAqB,CAC/B,IAAI+M,EAAkBjf,KAAK0Z,KAAMhZ,EAAM1J,iBAAkB,sBAAwBwC,MAC7EylB,IACH/M,EAAQ7J,SAAU4W,EAAgBne,aAAc,wBAA2B,EAAG,IAEhF,CAEAhK,MAAMC,KAAM0iB,GAAYpe,SAAS,CAAEzE,EAAIF,KAStC,GAPIE,EAAG4J,aAAc,yBACpB9J,EAAI2R,SAAUzR,EAAGkK,aAAc,uBAAyB,KAGzDke,EAAW5iB,KAAKE,IAAK0iB,EAAUtoB,GAG3BA,GAAKwb,EAAQ,CAChB,IAAIgN,EAAatoB,EAAGQ,UAAUmU,SAAU,WACxC3U,EAAGQ,UAAUC,IAAK,WAClBT,EAAGQ,UAAUE,OAAQ,oBAEjBZ,IAAMwb,IAETlS,KAAKD,OAAOof,eAAgBnf,KAAKD,OAAOqf,cAAexoB,IAEvDA,EAAGQ,UAAUC,IAAK,oBAClB2I,KAAKD,OAAOoM,aAAanI,qBAAsBpN,IAG3CsoB,IACJL,EAAiBC,MAAMxf,KAAM1I,GAC7BoJ,KAAKD,OAAO9C,cAAc,CACzBlF,OAAQnB,EACR8B,KAAM,UACN2mB,SAAS,IAGZ,KAEK,CACJ,IAAIH,EAAatoB,EAAGQ,UAAUmU,SAAU,WACxC3U,EAAGQ,UAAUE,OAAQ,WACrBV,EAAGQ,UAAUE,OAAQ,oBAEjB4nB,IACHlf,KAAKD,OAAOoM,aAAalH,oBAAqBrO,GAC9CioB,EAAiBE,OAAOzf,KAAM1I,GAC9BoJ,KAAKD,OAAO9C,cAAc,CACzBlF,OAAQnB,EACR8B,KAAM,SACN2mB,SAAS,IAGZ,KAODnN,EAAyB,iBAAVA,EAAqBA,GAAS,EAC7CA,EAAQ9V,KAAKE,IAAKF,KAAKC,IAAK6V,EAAO8M,IAAa,GAChDte,EAAMG,aAAc,gBAAiBqR,EAEtC,CAID,OAAO2M,CAER,CAUApU,IAAAA,CAAM/J,EAAQV,KAAKD,OAAOuG,mBAEzB,OAAOtG,KAAK0Z,KAAMhZ,EAAM1J,iBAAkB,aAE3C,CAaAsoB,IAAAA,CAAMpN,EAAOqN,EAAS,GAErB,IAAI9T,EAAezL,KAAKD,OAAOuG,kBAC/B,GAAImF,GAAgBzL,KAAKD,OAAOO,YAAYmZ,UAAY,CAEvD,IAAIA,EAAYzZ,KAAK0Z,KAAMjO,EAAazU,iBAAkB,6BAC1D,GAAIyiB,EAAU9gB,OAAS,CAGtB,GAAqB,iBAAVuZ,EAAqB,CAC/B,IAAIsN,EAAsBxf,KAAK0Z,KAAMjO,EAAazU,iBAAkB,qCAAuCwC,MAG1G0Y,EADGsN,EACKnX,SAAUmX,EAAoB1e,aAAc,wBAA2B,EAAG,KAGzE,CAEX,CAGAoR,GAASqN,EAET,IAAIV,EAAmB7e,KAAKmG,OAAQ+L,EAAOuH,GA6B3C,OA3BIoF,EAAiBE,OAAOpmB,QAC3BqH,KAAKD,OAAO9C,cAAc,CACzBvE,KAAM,iBACNgS,KAAM,CACLmT,SAAUgB,EAAiBE,OAAO,GAClCtF,UAAWoF,EAAiBE,UAK3BF,EAAiBC,MAAMnmB,QAC1BqH,KAAKD,OAAO9C,cAAc,CACzBvE,KAAM,gBACNgS,KAAM,CACLmT,SAAUgB,EAAiBC,MAAM,GACjCrF,UAAWoF,EAAiBC,SAK/B9e,KAAKD,OAAOyE,SAAS2B,SACrBnG,KAAKD,OAAOkW,SAAS9P,SAEjBnG,KAAKD,OAAOO,YAAYmf,eAC3Bzf,KAAKD,OAAO5G,SAASumB,cAGXb,EAAiBC,MAAMnmB,SAAUkmB,EAAiBE,OAAOpmB,OAErE,CAED,CAEA,OAAO,CAER,CAQAqiB,IAAAA,GAEC,OAAOhb,KAAKsf,KAAM,KAAM,EAEzB,CAQAvE,IAAAA,GAEC,OAAO/a,KAAKsf,KAAM,MAAO,EAE1B,EC7Wc,MAAMK,EAEpB7f,WAAAA,CAAaC,GAEZC,KAAKD,OAASA,EAEdC,KAAK7E,QAAS,EAEd6E,KAAK4f,eAAiB5f,KAAK4f,eAAe1f,KAAMF,KAEjD,CAMA0T,QAAAA,GAGC,GAAI1T,KAAKD,OAAOO,YAAYuf,WAAa7f,KAAKD,OAAOK,iBAAmBJ,KAAK2V,WAAa,CAEzF3V,KAAK7E,QAAS,EAEd6E,KAAKD,OAAO4F,mBAAmBvO,UAAUC,IAAK,YAG9C2I,KAAKD,OAAO+f,kBAIZ9f,KAAKD,OAAO8D,mBAAmB/K,YAAakH,KAAKD,OAAOggB,yBAGxDppB,EAAUqJ,KAAKD,OAAO4F,mBAAoBP,GAAkB/J,SAASqF,IAC/DA,EAAMtJ,UAAUmU,SAAU,UAC9B7K,EAAM+D,iBAAkB,QAASzE,KAAK4f,gBAAgB,EACvD,IAID,MAAMrD,EAAS,GACT1F,EAAY7W,KAAKD,OAAO+W,uBAC9B9W,KAAKggB,mBAAqBnJ,EAAUhU,MAAQ0Z,EAC5Cvc,KAAKigB,oBAAsBpJ,EAAU/T,OAASyZ,EAG1Cvc,KAAKD,OAAOO,YAAYsL,MAC3B5L,KAAKggB,oBAAsBhgB,KAAKggB,oBAGjChgB,KAAKD,OAAOmgB,yBAEZlgB,KAAKmD,SACLnD,KAAKmG,SAELnG,KAAKD,OAAOoD,SAEZ,MAAM2D,EAAU9G,KAAKD,OAAOgH,aAG5B/G,KAAKD,OAAO9C,cAAc,CACzBvE,KAAM,gBACNgS,KAAM,CACLmP,OAAU/S,EAAQvJ,EAClB0O,OAAUnF,EAAQrL,EAClBgQ,aAAgBzL,KAAKD,OAAOuG,oBAI/B,CAED,CAMAnD,MAAAA,GAGCnD,KAAKD,OAAOyG,sBAAsBnL,SAAS,CAAE8kB,EAAQ5iB,KACpD4iB,EAAOtf,aAAc,eAAgBtD,GACrC7F,EAAkByoB,EAAQ,eAAmB5iB,EAAIyC,KAAKggB,mBAAuB,aAEzEG,EAAO/oB,UAAUmU,SAAU,UAE9B5U,EAAUwpB,EAAQ,WAAY9kB,SAAS,CAAE+kB,EAAQ3kB,KAChD2kB,EAAOvf,aAAc,eAAgBtD,GACrC6iB,EAAOvf,aAAc,eAAgBpF,GAErC/D,EAAkB0oB,EAAQ,kBAAsB3kB,EAAIuE,KAAKigB,oBAAwB,SAAU,GAG7F,IAIDnpB,MAAMC,KAAMiJ,KAAKD,OAAOggB,wBAAwBjU,YAAazQ,SAAS,CAAEglB,EAAa9iB,KACpF7F,EAAkB2oB,EAAa,eAAmB9iB,EAAIyC,KAAKggB,mBAAuB,aAElFrpB,EAAU0pB,EAAa,qBAAsBhlB,SAAS,CAAEilB,EAAa7kB,KACpE/D,EAAkB4oB,EAAa,kBAAsB7kB,EAAIuE,KAAKigB,oBAAwB,SAAU,GAC9F,GAGL,CAMA9Z,MAAAA,GAEC,MAAMoa,EAAOnkB,KAAKC,IAAKuD,OAAOmX,WAAYnX,OAAOoX,aAC3ChH,EAAQ5T,KAAKE,IAAKikB,EAAO,EAAG,KAAQA,EACpCzZ,EAAU9G,KAAKD,OAAOgH,aAE5B/G,KAAKD,OAAOygB,gBAAiB,CAC5BX,SAAU,CACT,SAAU7P,EAAO,IACjB,eAAkBlJ,EAAQvJ,EAAIyC,KAAKggB,mBAAsB,MACzD,eAAkBlZ,EAAQrL,EAAIuE,KAAKigB,oBAAuB,OACzD7d,KAAM,MAGV,CAMAkT,UAAAA,GAGC,GAAItV,KAAKD,OAAOO,YAAYuf,SAAW,CAEtC7f,KAAK7E,QAAS,EAEd6E,KAAKD,OAAO4F,mBAAmBvO,UAAUE,OAAQ,YAKjD0I,KAAKD,OAAO4F,mBAAmBvO,UAAUC,IAAK,yBAE9CmH,YAAY,KACXwB,KAAKD,OAAO4F,mBAAmBvO,UAAUE,OAAQ,wBAAyB,GACxE,GAGH0I,KAAKD,OAAO4F,mBAAmB7M,YAAakH,KAAKD,OAAOggB,yBAGxDppB,EAAUqJ,KAAKD,OAAO4F,mBAAoBP,GAAkB/J,SAASqF,IACpEhJ,EAAkBgJ,EAAO,IAEzBA,EAAMgE,oBAAqB,QAAS1E,KAAK4f,gBAAgB,EAAM,IAIhEjpB,EAAUqJ,KAAKD,OAAOggB,wBAAyB,qBAAsB1kB,SAAS8F,IAC7EzJ,EAAkByJ,EAAY,GAAI,IAGnCnB,KAAKD,OAAOygB,gBAAiB,CAAEX,SAAU,KAEzC,MAAM/Y,EAAU9G,KAAKD,OAAOgH,aAE5B/G,KAAKD,OAAOW,MAAOoG,EAAQvJ,EAAGuJ,EAAQrL,GACtCuE,KAAKD,OAAOoD,SACZnD,KAAKD,OAAO0gB,eAGZzgB,KAAKD,OAAO9C,cAAc,CACzBvE,KAAM,iBACNgS,KAAM,CACLmP,OAAU/S,EAAQvJ,EAClB0O,OAAUnF,EAAQrL,EAClBgQ,aAAgBzL,KAAKD,OAAOuG,oBAI/B,CACD,CASAmP,MAAAA,CAAQC,GAEiB,kBAAbA,EACVA,EAAW1V,KAAK0T,WAAa1T,KAAKsV,aAGlCtV,KAAK2V,WAAa3V,KAAKsV,aAAetV,KAAK0T,UAG7C,CAQAiC,QAAAA,GAEC,OAAO3V,KAAK7E,MAEb,CAOAykB,cAAAA,CAAgBjb,GAEf,GAAI3E,KAAK2V,WAAa,CACrBhR,EAAM+R,iBAEN,IAAI/e,EAAUgN,EAAM5M,OAEpB,KAAOJ,IAAYA,EAAQ2a,SAAS9a,MAAO,cAC1CG,EAAUA,EAAQU,WAGnB,GAAIV,IAAYA,EAAQP,UAAUmU,SAAU,cAE3CvL,KAAKsV,aAED3d,EAAQ2a,SAAS9a,MAAO,cAAgB,CAC3C,IAAI+F,EAAI8K,SAAU1Q,EAAQmJ,aAAc,gBAAkB,IACzDrF,EAAI4M,SAAU1Q,EAAQmJ,aAAc,gBAAkB,IAEvDd,KAAKD,OAAOW,MAAOnD,EAAG9B,EACvB,CAGF,CAED,ECvPc,MAAMilB,EAEpB5gB,WAAAA,CAAaC,GAEZC,KAAKD,OAASA,EAIdC,KAAK2gB,UAAY,GAGjB3gB,KAAK4gB,SAAW,GAEhB5gB,KAAK6gB,kBAAoB7gB,KAAK6gB,kBAAkB3gB,KAAMF,KAEvD,CAKA4F,SAAAA,CAAWC,EAAQC,GAEY,WAA1BD,EAAOib,gBACV9gB,KAAK2gB,UAAU,mDAAqD,aACpE3gB,KAAK2gB,UAAU,yCAAqD,mBAGpE3gB,KAAK2gB,UAAU,eAAmB,aAClC3gB,KAAK2gB,UAAU,qBAAmC,iBAClD3gB,KAAK2gB,UAAU,iBAAmB,gBAClC3gB,KAAK2gB,UAAU,iBAAmB,iBAClC3gB,KAAK2gB,UAAU,iBAAmB,cAClC3gB,KAAK2gB,UAAU,iBAAmB,iBAGnC3gB,KAAK2gB,UAAU,wCAAiD,6BAChE3gB,KAAK2gB,UAAU,0CAAiD,2BAChE3gB,KAAK2gB,UAAU,WAAmC,QAClD3gB,KAAK2gB,UAAa,EAAgC,aAClD3gB,KAAK2gB,UAAa,EAAgC,gBAClD3gB,KAAK2gB,UAAU,UAAmC,gBAEnD,CAKAzgB,IAAAA,GAEC1H,SAASiM,iBAAkB,UAAWzE,KAAK6gB,mBAAmB,EAE/D,CAKAE,MAAAA,GAECvoB,SAASkM,oBAAqB,UAAW1E,KAAK6gB,mBAAmB,EAElE,CAMAG,aAAAA,CAAeC,EAAS9L,GAEA,iBAAZ8L,GAAwBA,EAAQjY,QAC1ChJ,KAAK4gB,SAASK,EAAQjY,SAAW,CAChCmM,SAAUA,EACVrC,IAAKmO,EAAQnO,IACboO,YAAaD,EAAQC,aAItBlhB,KAAK4gB,SAASK,GAAW,CACxB9L,SAAUA,EACVrC,IAAK,KACLoO,YAAa,KAIhB,CAKAC,gBAAAA,CAAkBnY,UAEVhJ,KAAK4gB,SAAS5X,EAEtB,CAOAoY,UAAAA,CAAYpY,GAEXhJ,KAAK6gB,kBAAmB,CAAE7X,WAE3B,CAQAqY,wBAAAA,CAA0BvO,EAAK3b,GAE9B6I,KAAK2gB,UAAU7N,GAAO3b,CAEvB,CAEAmqB,YAAAA,GAEC,OAAOthB,KAAK2gB,SAEb,CAEAY,WAAAA,GAEC,OAAOvhB,KAAK4gB,QAEb,CAOAC,iBAAAA,CAAmBlc,GAElB,IAAIkB,EAAS7F,KAAKD,OAAOO,YAIzB,GAAwC,mBAA7BuF,EAAO2b,oBAAwE,IAApC3b,EAAO2b,kBAAkB7c,GAC9E,OAAO,EAKR,GAAiC,YAA7BkB,EAAO2b,oBAAoCxhB,KAAKD,OAAO0hB,YAC1D,OAAO,EAIR,IAAIzY,EAAUrE,EAAMqE,QAGhB0Y,GAAsB1hB,KAAKD,OAAO4hB,gBAEtC3hB,KAAKD,OAAO6hB,YAAajd,GAGzB,IAAIkd,EAAoBrpB,SAASspB,gBAA8D,IAA7CtpB,SAASspB,cAAcC,kBACrEC,EAAuBxpB,SAASspB,eAAiBtpB,SAASspB,cAAclhB,SAAW,kBAAkBxG,KAAM5B,SAASspB,cAAclhB,SAClIqhB,EAAuBzpB,SAASspB,eAAiBtpB,SAASspB,cAAc5qB,WAAa,iBAAiBkD,KAAM5B,SAASspB,cAAc5qB,WAMnIgrB,KAHsF,IAAhE,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KAAKne,QAASY,EAAMqE,UAG3BrE,EAAMwd,UAAYxd,EAAMyd,UAChEzd,EAAMwd,UAAYxd,EAAMyd,QAAUzd,EAAM0d,SAAW1d,EAAM2d,SAIjE,GAAIT,GAAqBG,GAAwBC,GAAwBC,EAAiB,OAG1F,IACIpP,EADAyP,EAAiB,CAAC,GAAG,GAAG,IAAI,KAIhC,GAA+B,iBAApB1c,EAAO2c,SACjB,IAAK1P,KAAOjN,EAAO2c,SACW,gBAAzB3c,EAAO2c,SAAS1P,IACnByP,EAAejjB,KAAM+I,SAAUyK,EAAK,KAKvC,GAAI9S,KAAKD,OAAO0iB,aAAqD,IAAvCF,EAAexe,QAASiF,GACrD,OAAO,EAKR,IAAI0Z,EAA0C,WAA1B7c,EAAOib,iBAAgC9gB,KAAKD,OAAO4iB,wBAA0B3iB,KAAKD,OAAO6iB,oBAEzGC,GAAY,EAGhB,GAA+B,iBAApBhd,EAAO2c,SAEjB,IAAK1P,KAAOjN,EAAO2c,SAGlB,GAAIna,SAAUyK,EAAK,MAAS9J,EAAU,CAErC,IAAI7R,EAAQ0O,EAAO2c,SAAU1P,GAGR,mBAAV3b,EACVA,EAAM2rB,MAAO,KAAM,CAAEne,IAGI,iBAAVxN,GAAsD,mBAAzB6I,KAAKD,OAAQ5I,IACzD6I,KAAKD,OAAQ5I,GAAQgB,OAGtB0qB,GAAY,CAEb,CAOF,IAAkB,IAAdA,EAEH,IAAK/P,KAAO9S,KAAK4gB,SAGhB,GAAIvY,SAAUyK,EAAK,MAAS9J,EAAU,CAErC,IAAI+Z,EAAS/iB,KAAK4gB,SAAU9N,GAAMqC,SAGZ,mBAAX4N,EACVA,EAAOD,MAAO,KAAM,CAAEne,IAGI,iBAAXoe,GAAwD,mBAA1B/iB,KAAKD,OAAQgjB,IAC1D/iB,KAAKD,OAAQgjB,GAAS5qB,OAGvB0qB,GAAY,CACb,EAKgB,IAAdA,IAGHA,GAAY,EAGI,KAAZ7Z,GAA8B,KAAZA,EACrBhJ,KAAKD,OAAOgb,KAAK,CAACiI,cAAere,EAAMyd,SAGnB,KAAZpZ,GAA8B,KAAZA,EAC1BhJ,KAAKD,OAAOib,KAAK,CAACgI,cAAere,EAAMyd,SAGnB,KAAZpZ,GAA8B,KAAZA,EACtBrE,EAAMwd,SACTniB,KAAKD,OAAOW,MAAO,IAEVV,KAAKD,OAAO8f,SAASlK,YAAc+M,EAC5C1iB,KAAKD,OAAOgb,KAAK,CAACiI,cAAere,EAAMyd,SAGvCpiB,KAAKD,OAAO8c,KAAK,CAACmG,cAAere,EAAMyd,SAIpB,KAAZpZ,GAA8B,KAAZA,EACtBrE,EAAMwd,SACTniB,KAAKD,OAAOW,MAAOV,KAAKD,OAAOyG,sBAAsB7N,OAAS,IAErDqH,KAAKD,OAAO8f,SAASlK,YAAc+M,EAC5C1iB,KAAKD,OAAOib,KAAK,CAACgI,cAAere,EAAMyd,SAGvCpiB,KAAKD,OAAOkjB,MAAM,CAACD,cAAere,EAAMyd,SAIrB,KAAZpZ,GAA8B,KAAZA,EACtBrE,EAAMwd,SACTniB,KAAKD,OAAOW,WAAOwiB,EAAW,IAErBljB,KAAKD,OAAO8f,SAASlK,YAAc+M,EAC5C1iB,KAAKD,OAAOgb,KAAK,CAACiI,cAAere,EAAMyd,SAGvCpiB,KAAKD,OAAOojB,GAAG,CAACH,cAAere,EAAMyd,SAIlB,KAAZpZ,GAA8B,KAAZA,EACtBrE,EAAMwd,SACTniB,KAAKD,OAAOW,WAAOwiB,EAAWE,OAAOC,YAE5BrjB,KAAKD,OAAO8f,SAASlK,YAAc+M,EAC5C1iB,KAAKD,OAAOib,KAAK,CAACgI,cAAere,EAAMyd,SAGvCpiB,KAAKD,OAAOujB,KAAK,CAACN,cAAere,EAAMyd,SAIpB,KAAZpZ,EACRhJ,KAAKD,OAAOW,MAAO,GAGC,KAAZsI,EACRhJ,KAAKD,OAAOW,MAAOV,KAAKD,OAAOyG,sBAAsB7N,OAAS,GAG1C,KAAZqQ,GACJhJ,KAAKD,OAAO8f,SAASlK,YACxB3V,KAAKD,OAAO8f,SAASvK,aAElB3Q,EAAMwd,SACTniB,KAAKD,OAAOgb,KAAK,CAACiI,cAAere,EAAMyd,SAGvCpiB,KAAKD,OAAOib,KAAK,CAACgI,cAAere,EAAMyd,UAIhC,CAAC,GAAI,GAAI,GAAI,GAAI,KAAKmB,SAAUva,IAA2B,MAAZA,IAAoBrE,EAAMwd,SACjFniB,KAAKD,OAAOyjB,cAGQ,KAAZxa,EdtMmBrR,KAK9B,IAAI8rB,GAHJ9rB,EAAUA,GAAWa,SAASikB,iBAGFiH,mBACvB/rB,EAAQgsB,yBACRhsB,EAAQisB,yBACRjsB,EAAQksB,sBACRlsB,EAAQmsB,oBAETL,GACHA,EAAcX,MAAOnrB,EACtB,Ec0LGosB,CAAiBle,EAAOme,SAAWhkB,KAAKD,OAAOkc,qBAAuBzjB,SAASikB,iBAG3D,KAAZzT,EACJnD,EAAOoe,oBACVjkB,KAAKD,OAAOmkB,gBAAiBxC,GAIV,KAAZ1Y,EACJnD,EAAOse,aACVnkB,KAAKD,OAAOqkB,oBAIO,MAAZpb,GAAmBrE,EAAMwd,SACjCniB,KAAKD,OAAOskB,aAGZxB,GAAY,GAOVA,EACHle,EAAM+R,gBAAkB/R,EAAM+R,iBAGV,KAAZ1N,GAA8B,KAAZA,KACS,IAA/BhJ,KAAKD,OAAOukB,gBACftkB,KAAKD,OAAO8f,SAASpK,SAGtB9Q,EAAM+R,gBAAkB/R,EAAM+R,kBAK/B1W,KAAKD,OAAO0gB,cAEb,EC5Xc,MAAM8D,EAIpBC,4BAA8B,IAE9B1kB,WAAAA,CAAaC,GAEZC,KAAKD,OAASA,EAGdC,KAAKykB,gBAAkB,EAEvBzkB,KAAK0kB,sBAAwB,EAE7B1kB,KAAK2kB,mBAAqB3kB,KAAK2kB,mBAAmBzkB,KAAMF,KAEzD,CAEAE,IAAAA,GAECN,OAAO6E,iBAAkB,aAAczE,KAAK2kB,oBAAoB,EAEjE,CAEA5D,MAAAA,GAECnhB,OAAO8E,oBAAqB,aAAc1E,KAAK2kB,oBAAoB,EAEpE,CAUArc,kBAAAA,CAAoBsc,EAAKhlB,OAAOzG,SAASyrB,KAAMjkB,EAAQ,IAGtD,IAAIkkB,EAAOD,EAAKvrB,QAAS,QAAS,IAC9ByrB,EAAOD,EAAKvrB,MAAO,KAIvB,GAAK,WAAWc,KAAM0qB,EAAK,MAAQD,EAAKlsB,OAwBnC,CACJ,MAAMkN,EAAS7F,KAAKD,OAAOO,YAC3B,IAKC1E,EALGmpB,EAAgBlf,EAAOmf,mBAAqBrkB,EAAQ4H,cAAgB,EAAI,EAGxEhL,EAAM8K,SAAUyc,EAAK,GAAI,IAAOC,GAAmB,EACtDtpB,EAAM4M,SAAUyc,EAAK,GAAI,IAAOC,GAAmB,EAUpD,OAPIlf,EAAO4Z,gBACV7jB,EAAIyM,SAAUyc,EAAK,GAAI,IACnBzd,MAAOzL,KACVA,OAAIsnB,IAIC,CAAE3lB,IAAG9B,IAAGG,IAChB,CAzCiD,CAChD,IAAI8E,EAEA9E,EAGA,aAAaxB,KAAMyqB,KACtBjpB,EAAIyM,SAAUwc,EAAKvrB,MAAO,KAAME,MAAO,IACvCoC,EAAIyL,MAAMzL,QAAKsnB,EAAYtnB,EAC3BipB,EAAOA,EAAKvrB,MAAO,KAAMC,SAI1B,IACCmH,EAAQlI,SACNysB,eAAgBC,mBAAoBL,IACpCzsB,QAAQ,kBACX,CACA,MAAQ+sB,GAAU,CAElB,GAAIzkB,EACH,MAAO,IAAKV,KAAKD,OAAOgH,WAAYrG,GAAS9E,IAE/C,CAqBA,OAAO,IAER,CAKAwpB,OAAAA,GAEC,MAAMC,EAAiBrlB,KAAKD,OAAOgH,aAC7Bue,EAAatlB,KAAKsI,qBAEpBgd,EACGA,EAAW/nB,IAAM8nB,EAAe9nB,GAAK+nB,EAAW7pB,IAAM4pB,EAAe5pB,QAAsBynB,IAAjBoC,EAAW1pB,GACzFoE,KAAKD,OAAOW,MAAO4kB,EAAW/nB,EAAG+nB,EAAW7pB,EAAG6pB,EAAW1pB,GAM5DoE,KAAKD,OAAOW,MAAO2kB,EAAe9nB,GAAK,EAAG8nB,EAAe5pB,GAAK,EAGhE,CASAikB,QAAAA,CAAUjX,GAET,IAAI5C,EAAS7F,KAAKD,OAAOO,YACrBmL,EAAezL,KAAKD,OAAOuG,kBAM/B,GAHA/H,aAAcyB,KAAKykB,iBAGE,iBAAVhc,EACVzI,KAAKykB,gBAAkBjmB,WAAYwB,KAAK0f,SAAUjX,QAE9C,GAAIgD,EAAe,CAEvB,IAAImZ,EAAO5kB,KAAKkH,UAIZrB,EAAO0f,QACV3lB,OAAOzG,SAASyrB,KAAOA,EAIf/e,EAAO+e,OAEF,MAATA,EACH5kB,KAAKwlB,sBAAuB5lB,OAAOzG,SAASqiB,SAAW5b,OAAOzG,SAASC,QAGvE4G,KAAKwlB,sBAAuB,IAAMZ,GAcrC,CAED,CAEAa,YAAAA,CAAc3jB,GAEblC,OAAO2lB,QAAQE,aAAc,KAAM,KAAM3jB,GACzC9B,KAAK0kB,sBAAwBgB,KAAKC,KAEnC,CAEAH,qBAAAA,CAAuB1jB,GAEtBvD,aAAcyB,KAAK4lB,qBAEfF,KAAKC,MAAQ3lB,KAAK0kB,sBAAwB1kB,KAAKwkB,4BAClDxkB,KAAKylB,aAAc3jB,GAGnB9B,KAAK4lB,oBAAsBpnB,YAAY,IAAMwB,KAAKylB,aAAc3jB,IAAO9B,KAAKwkB,4BAG9E,CAOAtd,OAAAA,CAASxG,GAER,IAAIoB,EAAM,IAGN9G,EAAI0F,GAASV,KAAKD,OAAOuG,kBACzB8I,EAAKpU,EAAIA,EAAE8F,aAAc,MAAS,KAClCsO,IACHA,EAAKyW,mBAAoBzW,IAG1B,IAAI8C,EAAQlS,KAAKD,OAAOgH,WAAYrG,GAOpC,GANKV,KAAKD,OAAOO,YAAYmf,gBAC5BvN,EAAMtW,OAAIsnB,GAKO,iBAAP9T,GAAmBA,EAAGzW,OAChCmJ,EAAM,IAAMsN,EAIR8C,EAAMtW,GAAK,IAAIkG,GAAO,IAAMoQ,EAAMtW,OAGlC,CACJ,IAAImpB,EAAgB/kB,KAAKD,OAAOO,YAAY0kB,kBAAoB,EAAI,GAChE9S,EAAM3U,EAAI,GAAK2U,EAAMzW,EAAI,GAAKyW,EAAMtW,GAAK,KAAIkG,GAAOoQ,EAAM3U,EAAIwnB,IAC9D7S,EAAMzW,EAAI,GAAKyW,EAAMtW,GAAK,KAAIkG,GAAO,KAAOoQ,EAAMzW,EAAIspB,IACtD7S,EAAMtW,GAAK,IAAIkG,GAAO,IAAMoQ,EAAMtW,EACvC,CAEA,OAAOkG,CAER,CAOA6iB,kBAAAA,CAAoBhgB,GAEnB3E,KAAKolB,SAEN,ECrOc,MAAMU,EAEpBhmB,WAAAA,CAAaC,GAEZC,KAAKD,OAASA,EAEdC,KAAK+lB,sBAAwB/lB,KAAK+lB,sBAAsB7lB,KAAMF,MAC9DA,KAAKgmB,uBAAyBhmB,KAAKgmB,uBAAuB9lB,KAAMF,MAChEA,KAAKimB,oBAAsBjmB,KAAKimB,oBAAoB/lB,KAAMF,MAC1DA,KAAKkmB,sBAAwBlmB,KAAKkmB,sBAAsBhmB,KAAMF,MAC9DA,KAAKmmB,sBAAwBnmB,KAAKmmB,sBAAsBjmB,KAAMF,MAC9DA,KAAKomB,sBAAwBpmB,KAAKomB,sBAAsBlmB,KAAMF,KAE/D,CAEA0F,MAAAA,GAEC,MAAMkG,EAAM5L,KAAKD,OAAOO,YAAYsL,IAC9Bya,EAAgBrmB,KAAKD,OAAO4F,mBAElC3F,KAAKrI,QAAUa,SAASC,cAAe,SACvCuH,KAAKrI,QAAQT,UAAY,WACzB8I,KAAKrI,QAAQyO,UACX,6CAA6CwF,EAAM,aAAe,mHACrBA,EAAM,iBAAmB,8QAIxE5L,KAAKD,OAAO4F,mBAAmB7M,YAAakH,KAAKrI,SAGjDqI,KAAKsmB,aAAe3vB,EAAU0vB,EAAe,kBAC7CrmB,KAAKumB,cAAgB5vB,EAAU0vB,EAAe,mBAC9CrmB,KAAKwmB,WAAa7vB,EAAU0vB,EAAe,gBAC3CrmB,KAAKymB,aAAe9vB,EAAU0vB,EAAe,kBAC7CrmB,KAAK0mB,aAAe/vB,EAAU0vB,EAAe,kBAC7CrmB,KAAK2mB,aAAehwB,EAAU0vB,EAAe,kBAG7CrmB,KAAK4mB,mBAAqB5mB,KAAKrI,QAAQuL,cAAe,mBACtDlD,KAAK6mB,kBAAoB7mB,KAAKrI,QAAQuL,cAAe,kBACrDlD,KAAK8mB,kBAAoB9mB,KAAKrI,QAAQuL,cAAe,iBAEtD,CAKA0C,SAAAA,CAAWC,EAAQC,GAElB9F,KAAKrI,QAAQE,MAAMiF,QAAU+I,EAAOrB,SAAW,QAAU,OAEzDxE,KAAKrI,QAAQkJ,aAAc,uBAAwBgF,EAAOkhB,gBAC1D/mB,KAAKrI,QAAQkJ,aAAc,4BAA6BgF,EAAOmhB,mBAEhE,CAEA9mB,IAAAA,GAIC,IAAI+mB,EAAgB,CAAE,aAAc,SAIhC1sB,IACH0sB,EAAgB,CAAE,eAGnBA,EAAc5rB,SAAS6rB,IACtBlnB,KAAKsmB,aAAajrB,SAASzE,GAAMA,EAAG6N,iBAAkByiB,EAAWlnB,KAAK+lB,uBAAuB,KAC7F/lB,KAAKumB,cAAclrB,SAASzE,GAAMA,EAAG6N,iBAAkByiB,EAAWlnB,KAAKgmB,wBAAwB,KAC/FhmB,KAAKwmB,WAAWnrB,SAASzE,GAAMA,EAAG6N,iBAAkByiB,EAAWlnB,KAAKimB,qBAAqB,KACzFjmB,KAAKymB,aAAaprB,SAASzE,GAAMA,EAAG6N,iBAAkByiB,EAAWlnB,KAAKkmB,uBAAuB,KAC7FlmB,KAAK0mB,aAAarrB,SAASzE,GAAMA,EAAG6N,iBAAkByiB,EAAWlnB,KAAKmmB,uBAAuB,KAC7FnmB,KAAK2mB,aAAatrB,SAASzE,GAAMA,EAAG6N,iBAAkByiB,EAAWlnB,KAAKomB,uBAAuB,IAAS,GAGxG,CAEArF,MAAAA,GAEC,CAAE,aAAc,SAAU1lB,SAAS6rB,IAClClnB,KAAKsmB,aAAajrB,SAASzE,GAAMA,EAAG8N,oBAAqBwiB,EAAWlnB,KAAK+lB,uBAAuB,KAChG/lB,KAAKumB,cAAclrB,SAASzE,GAAMA,EAAG8N,oBAAqBwiB,EAAWlnB,KAAKgmB,wBAAwB,KAClGhmB,KAAKwmB,WAAWnrB,SAASzE,GAAMA,EAAG8N,oBAAqBwiB,EAAWlnB,KAAKimB,qBAAqB,KAC5FjmB,KAAKymB,aAAaprB,SAASzE,GAAMA,EAAG8N,oBAAqBwiB,EAAWlnB,KAAKkmB,uBAAuB,KAChGlmB,KAAK0mB,aAAarrB,SAASzE,GAAMA,EAAG8N,oBAAqBwiB,EAAWlnB,KAAKmmB,uBAAuB,KAChGnmB,KAAK2mB,aAAatrB,SAASzE,GAAMA,EAAG8N,oBAAqBwiB,EAAWlnB,KAAKomB,uBAAuB,IAAS,GAG3G,CAKAjgB,MAAAA,GAEC,IAAIghB,EAASnnB,KAAKD,OAAOse,kBAGzB,IAAIre,KAAKsmB,gBAAiBtmB,KAAKumB,iBAAkBvmB,KAAKwmB,cAAexmB,KAAKymB,gBAAiBzmB,KAAK0mB,gBAAiB1mB,KAAK2mB,cAActrB,SAASgX,IAC5IA,EAAKjb,UAAUE,OAAQ,UAAW,cAGlC+a,EAAKxR,aAAc,WAAY,WAAY,IAIxCsmB,EAAOtK,MAAO7c,KAAKsmB,aAAajrB,SAASzE,IAAQA,EAAGQ,UAAUC,IAAK,WAAaT,EAAGmK,gBAAiB,WAAY,IAChHomB,EAAOlE,OAAQjjB,KAAKumB,cAAclrB,SAASzE,IAAQA,EAAGQ,UAAUC,IAAK,WAAaT,EAAGmK,gBAAiB,WAAY,IAClHomB,EAAOhE,IAAKnjB,KAAKwmB,WAAWnrB,SAASzE,IAAQA,EAAGQ,UAAUC,IAAK,WAAaT,EAAGmK,gBAAiB,WAAY,IAC5GomB,EAAO7D,MAAOtjB,KAAKymB,aAAaprB,SAASzE,IAAQA,EAAGQ,UAAUC,IAAK,WAAaT,EAAGmK,gBAAiB,WAAY,KAGhHomB,EAAOtK,MAAQsK,EAAOhE,KAAKnjB,KAAK0mB,aAAarrB,SAASzE,IAAQA,EAAGQ,UAAUC,IAAK,WAAaT,EAAGmK,gBAAiB,WAAY,KAC7HomB,EAAOlE,OAASkE,EAAO7D,OAAOtjB,KAAK2mB,aAAatrB,SAASzE,IAAQA,EAAGQ,UAAUC,IAAK,WAAaT,EAAGmK,gBAAiB,WAAY,IAGpI,IAAI0K,EAAezL,KAAKD,OAAOuG,kBAC/B,GAAImF,EAAe,CAElB,IAAI2b,EAAkBpnB,KAAKD,OAAO0Z,UAAU4E,kBAGxC+I,EAAgBrM,MAAO/a,KAAK0mB,aAAarrB,SAASzE,IAAQA,EAAGQ,UAAUC,IAAK,aAAc,WAAaT,EAAGmK,gBAAiB,WAAY,IACvIqmB,EAAgBpM,MAAOhb,KAAK2mB,aAAatrB,SAASzE,IAAQA,EAAGQ,UAAUC,IAAK,aAAc,WAAaT,EAAGmK,gBAAiB,WAAY,IAIvIf,KAAKD,OAAOkH,gBAAiBwE,IAC5B2b,EAAgBrM,MAAO/a,KAAKwmB,WAAWnrB,SAASzE,IAAQA,EAAGQ,UAAUC,IAAK,aAAc,WAAaT,EAAGmK,gBAAiB,WAAY,IACrIqmB,EAAgBpM,MAAOhb,KAAKymB,aAAaprB,SAASzE,IAAQA,EAAGQ,UAAUC,IAAK,aAAc,WAAaT,EAAGmK,gBAAiB,WAAY,MAGvIqmB,EAAgBrM,MAAO/a,KAAKsmB,aAAajrB,SAASzE,IAAQA,EAAGQ,UAAUC,IAAK,aAAc,WAAaT,EAAGmK,gBAAiB,WAAY,IACvIqmB,EAAgBpM,MAAOhb,KAAKumB,cAAclrB,SAASzE,IAAQA,EAAGQ,UAAUC,IAAK,aAAc,WAAaT,EAAGmK,gBAAiB,WAAY,IAG9I,CAEA,GAAIf,KAAKD,OAAOO,YAAY+mB,iBAAmB,CAE9C,IAAIvgB,EAAU9G,KAAKD,OAAOgH,cAIrB/G,KAAKD,OAAOunB,0BAA4BH,EAAO7D,KACnDtjB,KAAK8mB,kBAAkB1vB,UAAUC,IAAK,cAGtC2I,KAAK8mB,kBAAkB1vB,UAAUE,OAAQ,aAErC0I,KAAKD,OAAOO,YAAYsL,KAEtB5L,KAAKD,OAAOwnB,4BAA8BJ,EAAOtK,MAAsB,IAAd/V,EAAQrL,EACrEuE,KAAK6mB,kBAAkBzvB,UAAUC,IAAK,aAGtC2I,KAAK6mB,kBAAkBzvB,UAAUE,OAAQ,cAKrC0I,KAAKD,OAAOwnB,4BAA8BJ,EAAOlE,OAAuB,IAAdnc,EAAQrL,EACtEuE,KAAK4mB,mBAAmBxvB,UAAUC,IAAK,aAGvC2I,KAAK4mB,mBAAmBxvB,UAAUE,OAAQ,aAI9C,CACD,CAEAgQ,OAAAA,GAECtH,KAAK+gB,SACL/gB,KAAKrI,QAAQL,QAEd,CAKAyuB,qBAAAA,CAAuBphB,GAEtBA,EAAM+R,iBACN1W,KAAKD,OAAO6hB,cAEmC,WAA3C5hB,KAAKD,OAAOO,YAAYwgB,eAC3B9gB,KAAKD,OAAOgb,OAGZ/a,KAAKD,OAAO8c,MAGd,CAEAmJ,sBAAAA,CAAwBrhB,GAEvBA,EAAM+R,iBACN1W,KAAKD,OAAO6hB,cAEmC,WAA3C5hB,KAAKD,OAAOO,YAAYwgB,eAC3B9gB,KAAKD,OAAOib,OAGZhb,KAAKD,OAAOkjB,OAGd,CAEAgD,mBAAAA,CAAqBthB,GAEpBA,EAAM+R,iBACN1W,KAAKD,OAAO6hB,cAEZ5hB,KAAKD,OAAOojB,IAEb,CAEA+C,qBAAAA,CAAuBvhB,GAEtBA,EAAM+R,iBACN1W,KAAKD,OAAO6hB,cAEZ5hB,KAAKD,OAAOujB,MAEb,CAEA6C,qBAAAA,CAAuBxhB,GAEtBA,EAAM+R,iBACN1W,KAAKD,OAAO6hB,cAEZ5hB,KAAKD,OAAOgb,MAEb,CAEAqL,qBAAAA,CAAuBzhB,GAEtBA,EAAM+R,iBACN1W,KAAKD,OAAO6hB,cAEZ5hB,KAAKD,OAAOib,MAEb,ECnQc,MAAMwM,EAEpB1nB,WAAAA,CAAaC,GAEZC,KAAKD,OAASA,EAEdC,KAAKynB,kBAAoBznB,KAAKynB,kBAAkBvnB,KAAMF,KAEvD,CAEA0F,MAAAA,GAEC1F,KAAKrI,QAAUa,SAASC,cAAe,OACvCuH,KAAKrI,QAAQT,UAAY,WACzB8I,KAAKD,OAAO4F,mBAAmB7M,YAAakH,KAAKrI,SAEjDqI,KAAK0nB,IAAMlvB,SAASC,cAAe,QACnCuH,KAAKrI,QAAQmB,YAAakH,KAAK0nB,IAEhC,CAKA9hB,SAAAA,CAAWC,EAAQC,GAElB9F,KAAKrI,QAAQE,MAAMiF,QAAU+I,EAAOoQ,SAAW,QAAU,MAE1D,CAEA/V,IAAAA,GAEKF,KAAKD,OAAOO,YAAY2V,UAAYjW,KAAKrI,SAC5CqI,KAAKrI,QAAQ8M,iBAAkB,QAASzE,KAAKynB,mBAAmB,EAGlE,CAEA1G,MAAAA,GAEM/gB,KAAKD,OAAOO,YAAY2V,UAAYjW,KAAKrI,SAC7CqI,KAAKrI,QAAQ+M,oBAAqB,QAAS1E,KAAKynB,mBAAmB,EAGrE,CAKAthB,MAAAA,GAGC,GAAInG,KAAKD,OAAOO,YAAY2V,UAAYjW,KAAK0nB,IAAM,CAElD,IAAI1X,EAAQhQ,KAAKD,OAAO4nB,cAGpB3nB,KAAKD,OAAO8G,iBAAmB,IAClCmJ,EAAQ,GAGThQ,KAAK0nB,IAAI7vB,MAAMD,UAAY,UAAWoY,EAAO,GAE9C,CAED,CAEA4X,WAAAA,GAEC,OAAO5nB,KAAKD,OAAO4F,mBAAmBqH,WAEvC,CAUAya,iBAAAA,CAAmB9iB,GAElB3E,KAAKD,OAAO6hB,YAAajd,GAEzBA,EAAM+R,iBAEN,IAAIyF,EAASnc,KAAKD,OAAOqI,YACrByf,EAAc1L,EAAOxjB,OACrBmvB,EAAa1rB,KAAKkgB,MAAS3X,EAAMojB,QAAU/nB,KAAK4nB,cAAkBC,GAElE7nB,KAAKD,OAAOO,YAAYsL,MAC3Bkc,EAAaD,EAAcC,GAG5B,IAAIE,EAAgBhoB,KAAKD,OAAOgH,WAAWoV,EAAO2L,IAClD9nB,KAAKD,OAAOW,MAAOsnB,EAAczqB,EAAGyqB,EAAcvsB,EAEnD,CAEA6L,OAAAA,GAECtH,KAAKrI,QAAQL,QAEd,ECxGc,MAAM2wB,EAEpBnoB,WAAAA,CAAaC,GAEZC,KAAKD,OAASA,EAGdC,KAAKkoB,mBAAqB,EAG1BloB,KAAKmoB,cAAe,EAGpBnoB,KAAKooB,sBAAwB,EAE7BpoB,KAAKqoB,uBAAyBroB,KAAKqoB,uBAAuBnoB,KAAMF,MAChEA,KAAKsoB,sBAAwBtoB,KAAKsoB,sBAAsBpoB,KAAMF,KAE/D,CAKA4F,SAAAA,CAAWC,EAAQC,GAEdD,EAAO0iB,WACV/vB,SAASiM,iBAAkB,QAASzE,KAAKsoB,uBAAuB,GAGhE9vB,SAASkM,oBAAqB,QAAS1E,KAAKsoB,uBAAuB,GAIhEziB,EAAO2iB,oBACVhwB,SAASiM,iBAAkB,YAAazE,KAAKqoB,wBAAwB,GACrE7vB,SAASiM,iBAAkB,YAAazE,KAAKqoB,wBAAwB,KAGrEroB,KAAKyoB,aAELjwB,SAASkM,oBAAqB,YAAa1E,KAAKqoB,wBAAwB,GACxE7vB,SAASkM,oBAAqB,YAAa1E,KAAKqoB,wBAAwB,GAG1E,CAMAI,UAAAA,GAEKzoB,KAAKmoB,eACRnoB,KAAKmoB,cAAe,EACpBnoB,KAAKD,OAAO4F,mBAAmB9N,MAAM6wB,OAAS,GAGhD,CAMAC,UAAAA,IAE2B,IAAtB3oB,KAAKmoB,eACRnoB,KAAKmoB,cAAe,EACpBnoB,KAAKD,OAAO4F,mBAAmB9N,MAAM6wB,OAAS,OAGhD,CAEAphB,OAAAA,GAECtH,KAAKyoB,aAELjwB,SAASkM,oBAAqB,QAAS1E,KAAKsoB,uBAAuB,GACnE9vB,SAASkM,oBAAqB,YAAa1E,KAAKqoB,wBAAwB,GACxE7vB,SAASkM,oBAAqB,YAAa1E,KAAKqoB,wBAAwB,EAEzE,CAQAA,sBAAAA,CAAwB1jB,GAEvB3E,KAAKyoB,aAELlqB,aAAcyB,KAAKooB,uBAEnBpoB,KAAKooB,sBAAwB5pB,WAAYwB,KAAK2oB,WAAWzoB,KAAMF,MAAQA,KAAKD,OAAOO,YAAYsoB,eAEhG,CAQAN,qBAAAA,CAAuB3jB,GAEtB,GAAI+gB,KAAKC,MAAQ3lB,KAAKkoB,mBAAqB,IAAO,CAEjDloB,KAAKkoB,mBAAqBxC,KAAKC,MAE/B,IAAIxV,EAAQxL,EAAMxH,SAAWwH,EAAMkkB,WAC/B1Y,EAAQ,EACXnQ,KAAKD,OAAOib,OAEJ7K,EAAQ,GAChBnQ,KAAKD,OAAOgb,MAGd,CAED,ECpHM,MAAM+N,EAAaA,CAAEhnB,EAAKqT,KAEhC,MAAM4T,EAASvwB,SAASC,cAAe,UACvCswB,EAAOrwB,KAAO,kBACdqwB,EAAOC,OAAQ,EACfD,EAAOE,OAAQ,EACfF,EAAOjlB,IAAMhC,EAEW,mBAAbqT,IAGV4T,EAAOG,OAASH,EAAOI,mBAAqBxkB,KACxB,SAAfA,EAAMjM,MAAmB,kBAAkB0B,KAAM2uB,EAAO3kB,eAG3D2kB,EAAOG,OAASH,EAAOI,mBAAqBJ,EAAOK,QAAU,KAE7DjU,IAED,EAID4T,EAAOK,QAAUC,IAGhBN,EAAOG,OAASH,EAAOI,mBAAqBJ,EAAOK,QAAU,KAE7DjU,EAAU,IAAImU,MAAO,0BAA4BP,EAAOjlB,IAAM,KAAOulB,GAAO,GAO9E,MAAMrwB,EAAOR,SAAS0K,cAAe,QACrClK,EAAK4b,aAAcmU,EAAQ/vB,EAAKuwB,UAAW,ECtC7B,MAAMC,EAEpB1pB,WAAAA,CAAa2pB,GAEZzpB,KAAKD,OAAS0pB,EAGdzpB,KAAK0pB,MAAQ,OAGb1pB,KAAK2pB,kBAAoB,GAEzB3pB,KAAK4pB,kBAAoB,EAE1B,CAeAnpB,IAAAA,CAAMopB,EAASC,GAMd,OAJA9pB,KAAK0pB,MAAQ,UAEbG,EAAQxuB,QAAS2E,KAAK+pB,eAAe7pB,KAAMF,OAEpC,IAAIwc,SAASwN,IAEnB,IAAIC,EAAU,GACbC,EAAgB,EAcjB,GAZAJ,EAAazuB,SAASL,IAEhBA,EAAEmvB,YAAanvB,EAAEmvB,cACjBnvB,EAAEguB,MACLhpB,KAAK4pB,kBAAkBtqB,KAAMtE,GAG7BivB,EAAQ3qB,KAAMtE,GAEhB,IAGGivB,EAAQtxB,OAAS,CACpBuxB,EAAgBD,EAAQtxB,OAExB,MAAMyxB,EAAwBpvB,IACzBA,GAA2B,mBAAfA,EAAEma,UAA0Bna,EAAEma,WAEtB,KAAlB+U,GACLlqB,KAAKqqB,cAAcC,KAAMN,EAC1B,EAIDC,EAAQ5uB,SAASL,IACI,iBAATA,EAAEoU,IACZpP,KAAK+pB,eAAgB/uB,GACrBovB,EAAsBpvB,IAEG,iBAAVA,EAAE8I,IACjBglB,EAAY9tB,EAAE8I,KAAK,IAAMsmB,EAAqBpvB,MAG9CuvB,QAAQC,KAAM,6BAA8BxvB,GAC5CovB,IACD,GAEF,MAECpqB,KAAKqqB,cAAcC,KAAMN,EAC1B,GAIF,CAMAK,WAAAA,GAEC,OAAO,IAAI7N,SAASwN,IAEnB,IAAIS,EAAe7rB,OAAO8rB,OAAQ1qB,KAAK2pB,mBACnCgB,EAAsBF,EAAa9xB,OAGvC,GAA4B,IAAxBgyB,EACH3qB,KAAK4qB,YAAYN,KAAMN,OAGnB,CAEJ,IAAIa,EAEAC,EAAuBA,KACI,KAAxBH,EACL3qB,KAAK4qB,YAAYN,KAAMN,GAGvBa,GACD,EAGGn0B,EAAI,EAGRm0B,EAAiBA,KAEhB,IAAIE,EAASN,EAAa/zB,KAG1B,GAA2B,mBAAhBq0B,EAAOC,KAAsB,CACvC,IAAI1mB,EAAUymB,EAAOC,KAAMhrB,KAAKD,QAG5BuE,GAAmC,mBAAjBA,EAAQgmB,KAC7BhmB,EAAQgmB,KAAMQ,GAGdA,GAEF,MAECA,GACD,EAIDD,GAED,IAIF,CAKAD,SAAAA,GAUC,OARA5qB,KAAK0pB,MAAQ,SAET1pB,KAAK4pB,kBAAkBjxB,QAC1BqH,KAAK4pB,kBAAkBvuB,SAASL,IAC/B8tB,EAAY9tB,EAAE8I,IAAK9I,EAAEma,SAAU,IAI1BqH,QAAQwN,SAEhB,CASAD,cAAAA,CAAgBgB,GAIU,IAArBprB,UAAUhH,QAAwC,iBAAjBgH,UAAU,IAC9CorB,EAASprB,UAAU,IACZyP,GAAKzP,UAAU,GAII,mBAAXorB,IACfA,EAASA,KAGV,IAAI3b,EAAK2b,EAAO3b,GAEE,iBAAPA,EACVmb,QAAQC,KAAM,mDAAqDO,QAE5B7H,IAA/BljB,KAAK2pB,kBAAkBva,IAC/BpP,KAAK2pB,kBAAkBva,GAAM2b,EAIV,WAAf/qB,KAAK0pB,OAA6C,mBAAhBqB,EAAOC,MAC5CD,EAAOC,KAAMhrB,KAAKD,SAInBwqB,QAAQC,KAAM,eAAgBpb,EAAI,uCAGpC,CAOA6b,SAAAA,CAAW7b,GAEV,QAASpP,KAAK2pB,kBAAkBva,EAEjC,CAQA8b,SAAAA,CAAW9b,GAEV,OAAOpP,KAAK2pB,kBAAkBva,EAE/B,CAEA+b,oBAAAA,GAEC,OAAOnrB,KAAK2pB,iBAEb,CAEAriB,OAAAA,GAEC1I,OAAO8rB,OAAQ1qB,KAAK2pB,mBAAoBtuB,SAAS0vB,IAClB,mBAAnBA,EAAOzjB,SACjByjB,EAAOzjB,SACR,IAGDtH,KAAK2pB,kBAAoB,GACzB3pB,KAAK4pB,kBAAoB,EAE1B,EClPc,MAAMwB,EAEpBtrB,WAAAA,CAAaC,GAEZC,KAAKD,OAASA,EAGdC,KAAKqrB,YAAc,EACnBrrB,KAAKsrB,YAAc,EACnBtrB,KAAKurB,gBAAkB,EACvBvrB,KAAKwrB,eAAgB,EAErBxrB,KAAKyrB,cAAgBzrB,KAAKyrB,cAAcvrB,KAAMF,MAC9CA,KAAK0rB,cAAgB1rB,KAAK0rB,cAAcxrB,KAAMF,MAC9CA,KAAK2rB,YAAc3rB,KAAK2rB,YAAYzrB,KAAMF,MAC1CA,KAAK4rB,aAAe5rB,KAAK4rB,aAAa1rB,KAAMF,MAC5CA,KAAK6rB,YAAc7rB,KAAK6rB,YAAY3rB,KAAMF,MAC1CA,KAAK8rB,WAAa9rB,KAAK8rB,WAAW5rB,KAAMF,KAEzC,CAKAE,IAAAA,GAEC,IAAImmB,EAAgBrmB,KAAKD,OAAO4F,mBAE5B,kBAAmB/F,QAEtBymB,EAAc5hB,iBAAkB,cAAezE,KAAKyrB,eAAe,GACnEpF,EAAc5hB,iBAAkB,cAAezE,KAAK0rB,eAAe,GACnErF,EAAc5hB,iBAAkB,YAAazE,KAAK2rB,aAAa,IAEvD/rB,OAAO3F,UAAU8xB,kBAEzB1F,EAAc5hB,iBAAkB,gBAAiBzE,KAAKyrB,eAAe,GACrEpF,EAAc5hB,iBAAkB,gBAAiBzE,KAAK0rB,eAAe,GACrErF,EAAc5hB,iBAAkB,cAAezE,KAAK2rB,aAAa,KAIjEtF,EAAc5hB,iBAAkB,aAAczE,KAAK4rB,cAAc,GACjEvF,EAAc5hB,iBAAkB,YAAazE,KAAK6rB,aAAa,GAC/DxF,EAAc5hB,iBAAkB,WAAYzE,KAAK8rB,YAAY,GAG/D,CAKA/K,MAAAA,GAEC,IAAIsF,EAAgBrmB,KAAKD,OAAO4F,mBAEhC0gB,EAAc3hB,oBAAqB,cAAe1E,KAAKyrB,eAAe,GACtEpF,EAAc3hB,oBAAqB,cAAe1E,KAAK0rB,eAAe,GACtErF,EAAc3hB,oBAAqB,YAAa1E,KAAK2rB,aAAa,GAElEtF,EAAc3hB,oBAAqB,gBAAiB1E,KAAKyrB,eAAe,GACxEpF,EAAc3hB,oBAAqB,gBAAiB1E,KAAK0rB,eAAe,GACxErF,EAAc3hB,oBAAqB,cAAe1E,KAAK2rB,aAAa,GAEpEtF,EAAc3hB,oBAAqB,aAAc1E,KAAK4rB,cAAc,GACpEvF,EAAc3hB,oBAAqB,YAAa1E,KAAK6rB,aAAa,GAClExF,EAAc3hB,oBAAqB,WAAY1E,KAAK8rB,YAAY,EAEjE,CAMAE,gBAAAA,CAAkBj0B,GAGjB,GAAID,EAASC,EAAQ,gBAAmB,OAAO,EAE/C,KAAOA,GAAyC,mBAAxBA,EAAOyI,cAA8B,CAC5D,GAAIzI,EAAOyI,aAAc,sBAAyB,OAAO,EACzDzI,EAASA,EAAOM,UACjB,CAEA,OAAO,CAER,CAQAuzB,YAAAA,CAAcjnB,GAEb,GAAI3E,KAAKgsB,iBAAkBrnB,EAAM5M,QAAW,OAAO,EAEnDiI,KAAKqrB,YAAc1mB,EAAMsnB,QAAQ,GAAGlE,QACpC/nB,KAAKsrB,YAAc3mB,EAAMsnB,QAAQ,GAAG/V,QACpClW,KAAKurB,gBAAkB5mB,EAAMsnB,QAAQtzB,MAEtC,CAOAkzB,WAAAA,CAAalnB,GAEZ,GAAI3E,KAAKgsB,iBAAkBrnB,EAAM5M,QAAW,OAAO,EAEnD,IAAI8N,EAAS7F,KAAKD,OAAOO,YAGzB,GAAKN,KAAKwrB,cA8EDjxB,GACRoK,EAAM+R,qBA/EmB,CACzB1W,KAAKD,OAAO6hB,YAAajd,GAEzB,IAAIunB,EAAWvnB,EAAMsnB,QAAQ,GAAGlE,QAC5BoE,EAAWxnB,EAAMsnB,QAAQ,GAAG/V,QAGhC,GAA6B,IAAzBvR,EAAMsnB,QAAQtzB,QAAyC,IAAzBqH,KAAKurB,gBAAwB,CAE9D,IAAIlN,EAAkBre,KAAKD,OAAOse,gBAAgB,CAAE+N,kBAAkB,IAElEC,EAASH,EAAWlsB,KAAKqrB,YAC5BiB,EAASH,EAAWnsB,KAAKsrB,YAEtBe,EAxIgB,IAwIYjwB,KAAKmwB,IAAKF,GAAWjwB,KAAKmwB,IAAKD,IAC9DtsB,KAAKwrB,eAAgB,EACS,WAA1B3lB,EAAOib,eACNjb,EAAO+F,IACV5L,KAAKD,OAAOib,OAGZhb,KAAKD,OAAOgb,OAIb/a,KAAKD,OAAO8c,QAGLwP,GAtJW,IAsJkBjwB,KAAKmwB,IAAKF,GAAWjwB,KAAKmwB,IAAKD,IACpEtsB,KAAKwrB,eAAgB,EACS,WAA1B3lB,EAAOib,eACNjb,EAAO+F,IACV5L,KAAKD,OAAOgb,OAGZ/a,KAAKD,OAAOib,OAIbhb,KAAKD,OAAOkjB,SAGLqJ,EApKW,IAoKiBjO,EAAgB8E,IACpDnjB,KAAKwrB,eAAgB,EACS,WAA1B3lB,EAAOib,eACV9gB,KAAKD,OAAOgb,OAGZ/a,KAAKD,OAAOojB,MAGLmJ,GA7KW,IA6KkBjO,EAAgBiF,OACrDtjB,KAAKwrB,eAAgB,EACS,WAA1B3lB,EAAOib,eACV9gB,KAAKD,OAAOib,OAGZhb,KAAKD,OAAOujB,QAMVzd,EAAOme,UACNhkB,KAAKwrB,eAAiBxrB,KAAKD,OAAOkH,oBACrCtC,EAAM+R,iBAMP/R,EAAM+R,gBAGR,CACD,CAOD,CAOAoV,UAAAA,CAAYnnB,GAEX3E,KAAKwrB,eAAgB,CAEtB,CAOAC,aAAAA,CAAe9mB,GAEVA,EAAM6nB,cAAgB7nB,EAAM8nB,sBAA8C,UAAtB9nB,EAAM6nB,cAC7D7nB,EAAMsnB,QAAU,CAAC,CAAElE,QAASpjB,EAAMojB,QAAS7R,QAASvR,EAAMuR,UAC1DlW,KAAK4rB,aAAcjnB,GAGrB,CAOA+mB,aAAAA,CAAe/mB,GAEVA,EAAM6nB,cAAgB7nB,EAAM8nB,sBAA8C,UAAtB9nB,EAAM6nB,cAC7D7nB,EAAMsnB,QAAU,CAAC,CAAElE,QAASpjB,EAAMojB,QAAS7R,QAASvR,EAAMuR,UAC1DlW,KAAK6rB,YAAalnB,GAGpB,CAOAgnB,WAAAA,CAAahnB,GAERA,EAAM6nB,cAAgB7nB,EAAM8nB,sBAA8C,UAAtB9nB,EAAM6nB,cAC7D7nB,EAAMsnB,QAAU,CAAC,CAAElE,QAASpjB,EAAMojB,QAAS7R,QAASvR,EAAMuR,UAC1DlW,KAAK8rB,WAAYnnB,GAGnB,EC3PD,MAAM+nB,EAAc,QACdC,EAAa,OAEJ,MAAMC,EAEpB9sB,WAAAA,CAAaC,GAEZC,KAAKD,OAASA,EAEdC,KAAK6sB,oBAAsB7sB,KAAK6sB,oBAAoB3sB,KAAMF,MAC1DA,KAAK8sB,sBAAwB9sB,KAAK8sB,sBAAsB5sB,KAAMF,KAE/D,CAKA4F,SAAAA,CAAWC,EAAQC,GAEdD,EAAOme,SACVhkB,KAAK+sB,QAGL/sB,KAAK+H,QACL/H,KAAK+gB,SAGP,CAEA7gB,IAAAA,GAEKF,KAAKD,OAAOO,YAAY0jB,UAC3BhkB,KAAKD,OAAO4F,mBAAmBlB,iBAAkB,cAAezE,KAAK6sB,qBAAqB,EAG5F,CAEA9L,MAAAA,GAEC/gB,KAAKD,OAAO4F,mBAAmBjB,oBAAqB,cAAe1E,KAAK6sB,qBAAqB,GAC7Fr0B,SAASkM,oBAAqB,cAAe1E,KAAK8sB,uBAAuB,EAE1E,CAEA/kB,KAAAA,GAEK/H,KAAK0pB,QAAUgD,IAClB1sB,KAAKD,OAAO4F,mBAAmBvO,UAAUC,IAAK,WAC9CmB,SAASiM,iBAAkB,cAAezE,KAAK8sB,uBAAuB,IAGvE9sB,KAAK0pB,MAAQgD,CAEd,CAEAK,IAAAA,GAEK/sB,KAAK0pB,QAAUiD,IAClB3sB,KAAKD,OAAO4F,mBAAmBvO,UAAUE,OAAQ,WACjDkB,SAASkM,oBAAqB,cAAe1E,KAAK8sB,uBAAuB,IAG1E9sB,KAAK0pB,MAAQiD,CAEd,CAEAlL,SAAAA,GAEC,OAAOzhB,KAAK0pB,QAAUgD,CAEvB,CAEAplB,OAAAA,GAECtH,KAAKD,OAAO4F,mBAAmBvO,UAAUE,OAAQ,UAElD,CAEAu1B,mBAAAA,CAAqBloB,GAEpB3E,KAAK+H,OAEN,CAEA+kB,qBAAAA,CAAuBnoB,GAEtB,IAAI0hB,EAAgBjuB,EAASuM,EAAM5M,OAAQ,WACtCsuB,GAAiBA,IAAkBrmB,KAAKD,OAAO4F,oBACnD3F,KAAK+sB,MAGP,ECjGc,MAAMC,EAEpBltB,WAAAA,CAAaC,GAEZC,KAAKD,OAASA,CAEf,CAEA2F,MAAAA,GAEC1F,KAAKrI,QAAUa,SAASC,cAAe,OACvCuH,KAAKrI,QAAQT,UAAY,gBACzB8I,KAAKrI,QAAQkJ,aAAc,qBAAsB,IACjDb,KAAKrI,QAAQkJ,aAAc,WAAY,KACvCb,KAAKD,OAAO4F,mBAAmB7M,YAAakH,KAAKrI,QAElD,CAKAiO,SAAAA,CAAWC,EAAQC,GAEdD,EAAOsX,WACVnd,KAAKrI,QAAQkJ,aAAc,cAA2C,iBAArBgF,EAAOsX,UAAyBtX,EAAOsX,UAAY,SAGtG,CAQAhX,MAAAA,GAEKnG,KAAKD,OAAOO,YAAY6c,WAC3Bnd,KAAKrI,SAAWqI,KAAKD,OAAOuG,oBAC3BtG,KAAKD,OAAOK,iBACZJ,KAAKD,OAAOkG,gBAEbjG,KAAKrI,QAAQyO,UAAYpG,KAAKqd,iBAAmB,iEAGnD,CAQA4P,gBAAAA,GAEKjtB,KAAKD,OAAOO,YAAY6c,WAC3Bnd,KAAKktB,aACJltB,KAAKD,OAAOK,iBACZJ,KAAKD,OAAOkG,cAEbjG,KAAKD,OAAO4F,mBAAmBvO,UAAUC,IAAK,cAG9C2I,KAAKD,OAAO4F,mBAAmBvO,UAAUE,OAAQ,aAGnD,CAMA41B,QAAAA,GAEC,OAAOltB,KAAKD,OAAO8D,mBAAmB7M,iBAAkB,6BAA8B2B,OAAS,CAEhG,CAQAw0B,oBAAAA,GAEC,QAASvtB,OAAOzG,SAASC,OAAO5B,MAAO,aAExC,CAWA6lB,aAAAA,CAAe3c,EAAQV,KAAKD,OAAOuG,mBAGlC,GAAI5F,EAAMF,aAAc,cACvB,OAAOE,EAAMI,aAAc,cAI5B,IAAIssB,EAAgB1sB,EAAM1J,iBAAkB,eAC5C,OAAIo2B,EACIt2B,MAAMC,KAAKq2B,GAAehuB,KAAKoe,GAAgBA,EAAapX,YAAYhE,KAAM,MAG/E,IAER,CAEAkF,OAAAA,GAECtH,KAAKrI,QAAQL,QAEd,ECvHc,MAAM+1B,EASpBvtB,WAAAA,CAAayK,EAAW+iB,GAGvBttB,KAAKutB,SAAW,IAChBvtB,KAAKwtB,UAAYxtB,KAAKutB,SAAS,EAC/BvtB,KAAKytB,UAAY,EAGjBztB,KAAK0tB,SAAU,EAGf1tB,KAAKiW,SAAW,EAGhBjW,KAAK2tB,eAAiB,EAEtB3tB,KAAKuK,UAAYA,EACjBvK,KAAKstB,cAAgBA,EAErBttB,KAAK4tB,OAASp1B,SAASC,cAAe,UACtCuH,KAAK4tB,OAAO12B,UAAY,WACxB8I,KAAK4tB,OAAO/qB,MAAQ7C,KAAKutB,SACzBvtB,KAAK4tB,OAAO9qB,OAAS9C,KAAKutB,SAC1BvtB,KAAK4tB,OAAO/1B,MAAMgL,MAAQ7C,KAAKwtB,UAAY,KAC3CxtB,KAAK4tB,OAAO/1B,MAAMiL,OAAS9C,KAAKwtB,UAAY,KAC5CxtB,KAAK6tB,QAAU7tB,KAAK4tB,OAAOE,WAAY,MAEvC9tB,KAAKuK,UAAUzR,YAAakH,KAAK4tB,QAEjC5tB,KAAK0F,QAEN,CAEAqoB,UAAAA,CAAY52B,GAEX,MAAM62B,EAAahuB,KAAK0tB,QAExB1tB,KAAK0tB,QAAUv2B,GAGV62B,GAAchuB,KAAK0tB,QACvB1tB,KAAKiuB,UAGLjuB,KAAK0F,QAGP,CAEAuoB,OAAAA,GAEC,MAAMC,EAAiBluB,KAAKiW,SAE5BjW,KAAKiW,SAAWjW,KAAKstB,gBAIjBY,EAAiB,IAAOluB,KAAKiW,SAAW,KAC3CjW,KAAK2tB,eAAiB3tB,KAAKiW,UAG5BjW,KAAK0F,SAED1F,KAAK0tB,SACR3yB,sBAAuBiF,KAAKiuB,QAAQ/tB,KAAMF,MAG5C,CAKA0F,MAAAA,GAEC,IAAIuQ,EAAWjW,KAAK0tB,QAAU1tB,KAAKiW,SAAW,EAC7CkY,EAAWnuB,KAAKwtB,UAAcxtB,KAAKytB,UACnChvB,EAAIuB,KAAKwtB,UACThyB,EAAIwE,KAAKwtB,UACTY,EAAW,GAGZpuB,KAAK2tB,gBAAgD,IAA5B,EAAI3tB,KAAK2tB,gBAElC,MAAMU,GAAejyB,KAAKkyB,GAAK,EAAQrY,GAAuB,EAAV7Z,KAAKkyB,IACnDC,GAAiBnyB,KAAKkyB,GAAK,EAAQtuB,KAAK2tB,gBAA6B,EAAVvxB,KAAKkyB,IAEtEtuB,KAAK6tB,QAAQW,OACbxuB,KAAK6tB,QAAQY,UAAW,EAAG,EAAGzuB,KAAKutB,SAAUvtB,KAAKutB,UAGlDvtB,KAAK6tB,QAAQa,YACb1uB,KAAK6tB,QAAQc,IAAKlwB,EAAGjD,EAAG2yB,EAAS,EAAG,EAAa,EAAV/xB,KAAKkyB,IAAQ,GACpDtuB,KAAK6tB,QAAQe,UAAY,uBACzB5uB,KAAK6tB,QAAQgB,OAGb7uB,KAAK6tB,QAAQa,YACb1uB,KAAK6tB,QAAQc,IAAKlwB,EAAGjD,EAAG2yB,EAAQ,EAAa,EAAV/xB,KAAKkyB,IAAQ,GAChDtuB,KAAK6tB,QAAQiB,UAAY9uB,KAAKytB,UAC9BztB,KAAK6tB,QAAQkB,YAAc,6BAC3B/uB,KAAK6tB,QAAQmB,SAEThvB,KAAK0tB,UAER1tB,KAAK6tB,QAAQa,YACb1uB,KAAK6tB,QAAQc,IAAKlwB,EAAGjD,EAAG2yB,EAAQI,EAAYF,GAAU,GACtDruB,KAAK6tB,QAAQiB,UAAY9uB,KAAKytB,UAC9BztB,KAAK6tB,QAAQkB,YAAc,OAC3B/uB,KAAK6tB,QAAQmB,UAGdhvB,KAAK6tB,QAAQ9d,UAAWtR,EAAM2vB,GAAgB5yB,EAAM4yB,IAGhDpuB,KAAK0tB,SACR1tB,KAAK6tB,QAAQe,UAAY,OACzB5uB,KAAK6tB,QAAQoB,SAAU,EAAG,EAAGb,GAAkBA,GAC/CpuB,KAAK6tB,QAAQoB,SAAUb,GAAkB,EAAGA,GAAkBA,KAG9DpuB,KAAK6tB,QAAQa,YACb1uB,KAAK6tB,QAAQ9d,UAAW,EAAG,GAC3B/P,KAAK6tB,QAAQqB,OAAQ,EAAG,GACxBlvB,KAAK6tB,QAAQsB,OAAQf,GAAcA,IACnCpuB,KAAK6tB,QAAQsB,OAAQ,EAAGf,GACxBpuB,KAAK6tB,QAAQe,UAAY,OACzB5uB,KAAK6tB,QAAQgB,QAGd7uB,KAAK6tB,QAAQuB,SAEd,CAEAC,EAAAA,CAAI32B,EAAM42B,GACTtvB,KAAK4tB,OAAOnpB,iBAAkB/L,EAAM42B,GAAU,EAC/C,CAEAC,GAAAA,CAAK72B,EAAM42B,GACVtvB,KAAK4tB,OAAOlpB,oBAAqBhM,EAAM42B,GAAU,EAClD,CAEAhoB,OAAAA,GAECtH,KAAK0tB,SAAU,EAEX1tB,KAAK4tB,OAAOv1B,YACf2H,KAAKuK,UAAUiF,YAAaxP,KAAK4tB,OAGnC,EC/Jc,IAAA4B,EAAA,CAId3sB,MAAO,IACPC,OAAQ,IAGRyZ,OAAQ,IAGRkT,SAAU,GACVC,SAAU,EAGVlrB,UAAU,EAIV6iB,kBAAkB,EAGlBN,eAAgB,eAIhBC,mBAAoB,QAGpB/Q,UAAU,EAgBVjQ,aAAa,EAMbE,gBAAiB,MAIjB8e,mBAAmB,EAInBJ,MAAM,EAGN+K,sBAAsB,EAGtBxL,aAAa,EAGboB,SAAS,EAGT/C,UAAU,EAMVhB,kBAAmB,KAInBoO,eAAe,EAGf/P,UAAU,EAGVvO,QAAQ,EAGRue,OAAO,EAGPC,MAAM,EAGNlkB,KAAK,EA0BLkV,eAAgB,UAGhBiP,SAAS,EAGTtW,WAAW,EAIXgG,eAAe,EAIfuE,UAAU,EAIVgM,MAAM,EAGN7qB,OAAO,EAGPgY,WAAW,EAGX8S,kBAAkB,EAMlB/rB,cAAe,KAOf3D,eAAgB,KAGhB8N,aAAa,EAIbyD,mBAAoB,KAIpBhB,kBAAmB,OACnBC,oBAAqB,EACrBlC,sBAAsB,EAKtB8C,kBAAmB,CAClB,UACA,QACA,mBACA,UACA,YACA,cACA,iBACA,eACA,eACA,gBACA,UACA,kBAQDue,UAAW,EAGXjM,oBAAoB,EAGpBkM,gBAAiB,KAKjBC,cAAe,KAGf7H,YAAY,EAKZ8H,cAAc,EAGdrrB,aAAa,EAGbsrB,mBAAmB,EAGnBC,iCAAiC,EAGjCC,WAAY,QAGZC,gBAAiB,UAGjB5lB,qBAAsB,OAGtBb,wBAAyB,GAGzBE,uBAAwB,GAGxBE,yBAA0B,GAG1BE,2BAA4B,GAG5B4C,6BAA8B,KAC9BM,2BAA4B,KAM5ByQ,KAAM,KAMN/G,aAAc,OAQdO,WAAY,YAMZwB,eAAgB,OAIhByX,sBAAuB,IAIvBzT,oBAAqBmG,OAAOuN,kBAG5BhT,sBAAsB,EAOtBT,qBAAsB,EAGtB0T,aAAc,EAKdC,mBAAoB,EAGpB/zB,QAAS,QAGT0rB,oBAAoB,EAGpBI,eAAgB,IAIhBkI,qBAAqB,EAGrBhH,aAAc,GAGdD,QAAS,ICzSH,MAAMkH,EAAU,QASR,SAAAC,EAAU3K,EAAe1lB,GAInChB,UAAUhH,OAAS,IACtBgI,EAAUhB,UAAU,GACpB0mB,EAAgB7tB,SAAS0K,cAAe,YAGzC,MAAMnD,EAAS,CAAA,EAGX8F,IAMHgU,EACA5N,EAGAmI,EACA3I,EAiCAwlB,EA5CGprB,EAAS,CAAA,EAGZqrB,GAAQ,EAWRC,EAAoB,CACnB5J,0BAA0B,EAC1BD,wBAAwB,GAMzBoC,EAAQ,GAGR1Z,EAAQ,EAIRohB,EAAkB,CAAEjuB,OAAQ,GAAI0c,SAAU,IAG1CwR,EAAM,CAAA,EAMNb,EAAa,OAGbN,EAAY,EAIZoB,EAAmB,EACnBC,GAAsB,EACtBC,GAAkB,EAKlBrlB,EAAe,IAAItM,EAAcE,GACjCiG,GAAc,IAAIP,EAAa1F,GAC/BokB,GAAc,IAAI5c,EAAaxH,GAC/BsO,GAAc,IAAIX,EAAa3N,GAC/B8b,GAAc,IAAInS,EAAa3J,GAC/B0xB,GAAa,IAAIle,EAAYxT,GAC7B2xB,GAAY,IAAIxV,EAAWnc,GAC3B0Z,GAAY,IAAIyE,EAAWne,GAC3B8f,GAAW,IAAIF,EAAU5f,GACzByiB,GAAW,IAAI9B,EAAU3gB,GACzB5G,GAAW,IAAIorB,EAAUxkB,GACzByE,GAAW,IAAIshB,EAAU/lB,GACzBkW,GAAW,IAAIuR,EAAUznB,GACzB4xB,GAAU,IAAI1J,EAASloB,GACvB8pB,GAAU,IAAIL,EAASzpB,GACvBgI,GAAQ,IAAI6kB,EAAO7sB,GACnB8vB,GAAQ,IAAIzE,EAAOrrB,GACnBqd,GAAQ,IAAI4P,EAAOjtB,GAiEpB,SAAS6xB,KAERV,GAAQ,EAoGHrrB,EAAOoqB,kBACX4B,EAAeR,EAAIS,QAAS,qCAAsCz2B,SAASqF,IAC1E,MAAMqxB,EAASrxB,EAAMrI,WAKY,IAA7B05B,EAAOC,mBAA2B,WAAW53B,KAAM23B,EAAOzf,UAC7Dyf,EAAOz6B,SAGPoJ,EAAMpJ,QACP,IAYH,WAGC+5B,EAAIlV,OAAO/kB,UAAUC,IAAK,iBAEtB46B,EACHZ,EAAIS,QAAQ16B,UAAUC,IAAK,YAG3Bg6B,EAAIS,QAAQ16B,UAAUE,OAAQ,YAG/BukB,GAAYnW,SACZM,GAAYN,SACZye,GAAYze,SACZlB,GAASkB,SACTuQ,GAASvQ,SACT0X,GAAM1X,SAGN2rB,EAAIa,a1BhK6BC,EAAE5nB,EAAW6nB,EAASC,EAAWjsB,EAAU,MAG7E,IAAIksB,EAAQ/nB,EAAUvT,iBAAkB,IAAMq7B,GAI9C,IAAK,IAAI37B,EAAI,EAAGA,EAAI47B,EAAM35B,OAAQjC,IAAM,CACvC,IAAI67B,EAAWD,EAAM57B,GACrB,GAAI67B,EAASl6B,aAAekS,EAC3B,OAAOgoB,CAET,CAGA,IAAIlgB,EAAO7Z,SAASC,cAAe25B,GAKnC,OAJA/f,EAAKnb,UAAYm7B,EACjBhgB,EAAKjM,UAAYA,EACjBmE,EAAUzR,YAAauZ,GAEhBA,CAAI,E0B4ISwf,CAA0BR,EAAIS,QAAS,MAAO,gBAAiBjsB,EAAOrB,SAAW,6DAA+D,MAEnK6sB,EAAImB,cAYL,WAEC,IAAIA,EAAgBnB,EAAIS,QAAQ5uB,cAAe,gBAC1CsvB,IACJA,EAAgBh6B,SAASC,cAAe,OACxC+5B,EAAc36B,MAAMkhB,SAAW,WAC/ByZ,EAAc36B,MAAMiL,OAAS,MAC7B0vB,EAAc36B,MAAMgL,MAAQ,MAC5B2vB,EAAc36B,MAAM46B,SAAW,SAC/BD,EAAc36B,MAAM66B,KAAO,6BAC3BF,EAAcp7B,UAAUC,IAAK,eAC7Bm7B,EAAc3xB,aAAc,YAAa,UACzC2xB,EAAc3xB,aAAc,cAAc,QAC1CwwB,EAAIS,QAAQh5B,YAAa05B,IAE1B,OAAOA,CAER,CA7BqBG,GAEpBtB,EAAIS,QAAQjxB,aAAc,OAAQ,cACnC,CA/IC+xB,GAmQI/sB,EAAOb,aACVpF,OAAO6E,iBAAkB,UAAWouB,IAAe,GAnCpDC,aAAa,OACPrB,GAAW9b,YAAwC,IAA1B0b,EAAIS,QAAQzb,WAA8C,IAA3Bgb,EAAIS,QAAQiB,cACxE1B,EAAIS,QAAQzb,UAAY,EACxBgb,EAAIS,QAAQiB,WAAa,EAC1B,GACE,KAYHv6B,SAASiM,iBAAkB,mBAAoBuuB,IAC/Cx6B,SAASiM,iBAAkB,yBAA0BuuB,IAmwCrDxsB,KAAsBnL,SAASwZ,IAE9Bgd,EAAehd,EAAiB,WAAYxZ,SAAS,CAAE0Z,EAAevZ,KAEjEA,EAAI,IACPuZ,EAAc3d,UAAUE,OAAQ,WAChCyd,EAAc3d,UAAUE,OAAQ,QAChCyd,EAAc3d,UAAUC,IAAK,UAC7B0d,EAAclU,aAAc,cAAe,QAC5C,GAEE,IAl/CJ+E,KAGAiW,GAAY1V,QAAQ,GAgCrB,WAEC,MAAM8sB,EAAoC,UAAhBptB,EAAOoY,KAC3BiV,EAAqC,WAAhBrtB,EAAOoY,MAAqC,WAAhBpY,EAAOoY,MAE1DgV,GAAqBC,KAEpBD,EACHE,KAGAtD,GAAM9O,SAIPsQ,EAAI+B,SAASh8B,UAAUC,IAAK,uBAExB47B,EAGyB,aAAxBz6B,SAAS4L,WACZstB,GAAUhe,WAGV9T,OAAO6E,iBAAkB,QAAQ,IAAMitB,GAAUhe,aAIlD+d,GAAW/d,WAId,CA7DC2f,GAGAl6B,GAASisB,UAIT5mB,YAAY,KAEX6yB,EAAIlV,OAAO/kB,UAAUE,OAAQ,iBAE7B+5B,EAAIS,QAAQ16B,UAAUC,IAAK,SAE3B4F,GAAc,CACbvE,KAAM,QACNgS,KAAM,CACLmP,SACA5N,SACAR,iBAEA,GACA,EAEJ,CAkIA,SAAS0T,GAAgBhoB,GAExBk6B,EAAImB,cAAcjgB,YAAcpb,CAEjC,CAOA,SAASioB,GAAe/M,GAEvB,IAAIihB,EAAO,GAGX,GAAsB,IAAlBjhB,EAAKkhB,SACRD,GAAQjhB,EAAKE,iBAGT,GAAsB,IAAlBF,EAAKkhB,SAAiB,CAE9B,IAAIC,EAAenhB,EAAKvR,aAAc,eAClC2yB,EAAiE,SAA/C7zB,OAAOhD,iBAAkByV,GAAgB,QAC1C,SAAjBmhB,GAA4BC,GAE/B38B,MAAMC,KAAMsb,EAAKvG,YAAazQ,SAASq4B,IACtCJ,GAAQlU,GAAesU,EAAO,GAKjC,CAIA,OAFAJ,EAAOA,EAAK1xB,OAEI,KAAT0xB,EAAc,GAAKA,EAAO,GAElC,CA2DA,SAAS1tB,GAAWjF,GAEnB,MAAMmF,EAAY,IAAKD,GAQvB,GAJuB,iBAAZlF,GAAuBkxB,EAAahsB,EAAQlF,IAI7B,IAAtBZ,EAAO4zB,UAAuB,OAElC,MAAMC,EAAiBvC,EAAIS,QAAQ96B,iBAAkBoO,GAAkBzM,OAGvE04B,EAAIS,QAAQ16B,UAAUE,OAAQwO,EAAU0qB,YACxCa,EAAIS,QAAQ16B,UAAUC,IAAKwO,EAAO2qB,YAElCa,EAAIS,QAAQjxB,aAAc,wBAAyBgF,EAAO4qB,iBAC1DY,EAAIS,QAAQjxB,aAAc,6BAA8BgF,EAAOgF,sBAG/DwmB,EAAI+B,SAASv7B,MAAM0f,YAAa,gBAAyC,iBAAjB1R,EAAOhD,MAAqBgD,EAAOhD,MAASgD,EAAOhD,MAAQ,MACnHwuB,EAAI+B,SAASv7B,MAAM0f,YAAa,iBAA2C,iBAAlB1R,EAAO/C,OAAsB+C,EAAO/C,OAAU+C,EAAO/C,OAAS,MAEnH+C,EAAOkqB,SACVA,KAGD8B,EAAkBR,EAAIS,QAAS,WAAYjsB,EAAOme,UAClD6N,EAAkBR,EAAIS,QAAS,MAAOjsB,EAAO+F,KAC7CimB,EAAkBR,EAAIS,QAAS,SAAUjsB,EAAOyL,SAG3B,IAAjBzL,EAAOV,OACV0uB,KAIGhuB,EAAOwqB,cACVyD,KACAC,GAAqB,+BAGrBA,KACAD,GAAoB,uDAIrBzlB,GAAYP,QAGRmjB,IACHA,EAAgB3pB,UAChB2pB,EAAkB,MAIf2C,EAAiB,GAAK/tB,EAAOqqB,WAAarqB,EAAOoe,qBACpDgN,EAAkB,IAAI5D,EAAUgE,EAAIS,SAAS,IACrC11B,KAAKC,IAAKD,KAAKE,KAAOopB,KAAKC,MAAQ4L,GAAuBrB,EAAW,GAAK,KAGlFe,EAAgB5B,GAAI,QAAS2E,IAC7BxC,GAAkB,GAIW,YAA1B3rB,EAAOib,eACVuQ,EAAIS,QAAQjxB,aAAc,uBAAwBgF,EAAOib,gBAGzDuQ,EAAIS,QAAQ/wB,gBAAiB,wBAG9Bqc,GAAMxX,UAAWC,EAAQC,GACzBiC,GAAMnC,UAAWC,EAAQC,GACzB6rB,GAAQ/rB,UAAWC,EAAQC,GAC3BtB,GAASoB,UAAWC,EAAQC,GAC5BmQ,GAASrQ,UAAWC,EAAQC,GAC5B0c,GAAS5c,UAAWC,EAAQC,GAC5B2T,GAAU7T,UAAWC,EAAQC,GAC7BE,GAAYJ,UAAWC,EAAQC,GAE/B2E,IAED,CAKA,SAASwpB,KAIRr0B,OAAO6E,iBAAkB,SAAUyvB,IAAgB,GAE/CruB,EAAOgqB,OAAQA,GAAM3vB,OACrB2F,EAAO2c,UAAWA,GAAStiB,OAC3B2F,EAAOoQ,UAAWA,GAAS/V,OAC3B2F,EAAO8pB,sBAAuBx2B,GAAS+G,OAC3CsE,GAAStE,OACT6H,GAAM7H,OAENmxB,EAAIlV,OAAO1X,iBAAkB,QAAS0vB,IAAiB,GACvD9C,EAAIlV,OAAO1X,iBAAkB,gBAAiB2vB,IAAiB,GAC/D/C,EAAIa,aAAaztB,iBAAkB,QAASovB,IAAQ,GAEhDhuB,EAAO0qB,iCACV/3B,SAASiM,iBAAkB,mBAAoB4vB,IAAwB,EAGzE,CAKA,SAASlB,KAIRtD,GAAM9O,SACNhZ,GAAMgZ,SACNyB,GAASzB,SACTvc,GAASuc,SACT9K,GAAS8K,SACT5nB,GAAS4nB,SAETnhB,OAAO8E,oBAAqB,SAAUwvB,IAAgB,GAEtD7C,EAAIlV,OAAOzX,oBAAqB,QAASyvB,IAAiB,GAC1D9C,EAAIlV,OAAOzX,oBAAqB,gBAAiB0vB,IAAiB,GAClE/C,EAAIa,aAAaxtB,oBAAqB,QAASmvB,IAAQ,EAExD,CAkEA,SAASxE,GAAI32B,EAAM42B,EAAUgF,GAE5BjO,EAAc5hB,iBAAkB/L,EAAM42B,EAAUgF,EAEjD,CAKA,SAAS/E,GAAK72B,EAAM42B,EAAUgF,GAE7BjO,EAAc3hB,oBAAqBhM,EAAM42B,EAAUgF,EAEpD,CASA,SAAS9T,GAAiB+T,GAGQ,iBAAtBA,EAAWpxB,SAAsBiuB,EAAgBjuB,OAASoxB,EAAWpxB,QAC7C,iBAAxBoxB,EAAW1U,WAAwBuR,EAAgBvR,SAAW0U,EAAW1U,UAGhFuR,EAAgBjuB,OACnB0uB,EAAuBR,EAAIlV,OAAQiV,EAAgBjuB,OAAS,IAAMiuB,EAAgBvR,UAGlFgS,EAAuBR,EAAIlV,OAAQiV,EAAgBvR,SAGrD,CAMA,SAAS5iB,IAAclF,OAAEA,EAAOs5B,EAAIS,QAAOp5B,KAAEA,EAAIgS,KAAEA,EAAI2U,QAAEA,GAAQ,IAEhE,IAAI1a,EAAQnM,SAASg8B,YAAa,aAAc,EAAG,GAWnD,OAVA7vB,EAAM8vB,UAAW/7B,EAAM2mB,GAAS,GAChCwS,EAAaltB,EAAO+F,GACpB3S,EAAOkF,cAAe0H,GAElB5M,IAAWs5B,EAAIS,SAGlB4C,GAAqBh8B,GAGfiM,CAER,CAOA,SAASgwB,GAAsBpZ,GAE9Bte,GAAc,CACbvE,KAAM,eACNgS,KAAM,CACLmP,SACA5N,SACAmI,gBACA3I,eACA8P,WAIH,CAKA,SAASmZ,GAAqBh8B,EAAMgS,GAEnC,GAAI7E,EAAOyqB,mBAAqB1wB,OAAOmyB,SAAWnyB,OAAOg1B,KAAO,CAC/D,IAAIC,EAAU,CACbC,UAAW,SACX5N,UAAWxuB,EACXgxB,MAAO9V,MAGRie,EAAagD,EAASnqB,GAEtB9K,OAAOmyB,OAAO/sB,YAAa+vB,KAAKC,UAAWH,GAAW,IACvD,CAED,CAOA,SAASf,GAAoBj9B,EAAW,KAEvCC,MAAMC,KAAMs6B,EAAIS,QAAQ96B,iBAAkBH,IAAawE,SAAS1D,IAC3D,gBAAgByC,KAAMzC,EAAQmJ,aAAc,UAC/CnJ,EAAQ8M,iBAAkB,QAASwwB,IAAsB,EAC1D,GAGF,CAKA,SAASlB,GAAqBl9B,EAAW,KAExCC,MAAMC,KAAMs6B,EAAIS,QAAQ96B,iBAAkBH,IAAawE,SAAS1D,IAC3D,gBAAgByC,KAAMzC,EAAQmJ,aAAc,UAC/CnJ,EAAQ+M,oBAAqB,QAASuwB,IAAsB,EAC7D,GAGF,CAOA,SAASC,GAAapzB,GAErBwiB,KAEA+M,EAAI8D,QAAU38B,SAASC,cAAe,OACtC44B,EAAI8D,QAAQ/9B,UAAUC,IAAK,WAC3Bg6B,EAAI8D,QAAQ/9B,UAAUC,IAAK,mBAC3Bg6B,EAAIS,QAAQh5B,YAAau4B,EAAI8D,SAE7B9D,EAAI8D,QAAQ/uB,UACV,iHAE4BtE,6JAIbA,uNAMjBuvB,EAAI8D,QAAQjyB,cAAe,UAAWuB,iBAAkB,QAAQE,IAC/D0sB,EAAI8D,QAAQ/9B,UAAUC,IAAK,SAAU,IACnC,GAEHg6B,EAAI8D,QAAQjyB,cAAe,UAAWuB,iBAAkB,SAASE,IAChE2f,KACA3f,EAAM+R,gBAAgB,IACpB,GAEH2a,EAAI8D,QAAQjyB,cAAe,aAAcuB,iBAAkB,SAASE,IACnE2f,IAAc,IACZ,EAEJ,CA2BA,SAAS8Q,KAER,GAAIvvB,EAAOmqB,KAAO,CAEjB1L,KAEA+M,EAAI8D,QAAU38B,SAASC,cAAe,OACtC44B,EAAI8D,QAAQ/9B,UAAUC,IAAK,WAC3Bg6B,EAAI8D,QAAQ/9B,UAAUC,IAAK,gBAC3Bg6B,EAAIS,QAAQh5B,YAAau4B,EAAI8D,SAE7B,IAAIE,EAAO,+CAEP1U,EAAY6B,GAASlB,eACxBV,EAAW4B,GAASjB,cAErB8T,GAAQ,qCACR,IAAK,IAAIviB,KAAO6N,EACf0U,GAAS,WAAUviB,aAAe6N,EAAW7N,eAI9C,IAAK,IAAImO,KAAWL,EACfA,EAASK,GAASnO,KAAO8N,EAASK,GAASC,cAC9CmU,GAAS,WAAUzU,EAASK,GAASnO,eAAe8N,EAASK,GAASC,yBAIxEmU,GAAQ,WAERhE,EAAI8D,QAAQ/uB,UAAa,oLAKOivB,kCAIhChE,EAAI8D,QAAQjyB,cAAe,UAAWuB,iBAAkB,SAASE,IAChE2f,KACA3f,EAAM+R,gBAAgB,IACpB,EAEJ,CAED,CAKA,SAAS4N,KAER,QAAI+M,EAAI8D,UACP9D,EAAI8D,QAAQ98B,WAAWmX,YAAa6hB,EAAI8D,SACxC9D,EAAI8D,QAAU,MACP,EAKT,CAMA,SAAShyB,KAER,GAAIkuB,EAAIS,UAAYJ,GAAU/b,WAAa,CAE1C,MAAM2f,EAAgBjE,EAAI+B,SAASpmB,YAC7BmK,EAAiBka,EAAI+B,SAAS9lB,aAEpC,IAAKzH,EAAO+pB,cAAgB,CAQvBqC,IAAoBpsB,EAAOme,UAC9BxrB,SAASikB,gBAAgB5kB,MAAM0f,YAAa,OAA+B,IAArB3X,OAAOoX,YAAuB,MAGrF,MAAMue,EAAO9D,GAAW9b,WACpBmB,GAAsBwe,EAAene,GACrCL,KAEE0e,EAAWxlB,EAGjB2M,GAAqB9W,EAAOhD,MAAOgD,EAAO/C,QAE1CuuB,EAAIlV,OAAOtkB,MAAMgL,MAAQ0yB,EAAK1yB,MAAQ,KACtCwuB,EAAIlV,OAAOtkB,MAAMiL,OAASyyB,EAAKzyB,OAAS,KAGxCkN,EAAQ5T,KAAKC,IAAKk5B,EAAKE,kBAAoBF,EAAK1yB,MAAO0yB,EAAKG,mBAAqBH,EAAKzyB,QAGtFkN,EAAQ5T,KAAKE,IAAK0T,EAAOnK,EAAO4pB,UAChCzf,EAAQ5T,KAAKC,IAAK2T,EAAOnK,EAAO6pB,UAIlB,IAAV1f,GAAeyhB,GAAW9b,YAC7B0b,EAAIlV,OAAOtkB,MAAM89B,KAAO,GACxBtE,EAAIlV,OAAOtkB,MAAMglB,KAAO,GACxBwU,EAAIlV,OAAOtkB,MAAMse,IAAM,GACvBkb,EAAIlV,OAAOtkB,MAAM4lB,OAAS,GAC1B4T,EAAIlV,OAAOtkB,MAAMorB,MAAQ,GACzBzC,GAAiB,CAAErd,OAAQ,OAG3BkuB,EAAIlV,OAAOtkB,MAAM89B,KAAO,GACxBtE,EAAIlV,OAAOtkB,MAAMglB,KAAO,MACxBwU,EAAIlV,OAAOtkB,MAAMse,IAAM,MACvBkb,EAAIlV,OAAOtkB,MAAM4lB,OAAS,OAC1B4T,EAAIlV,OAAOtkB,MAAMorB,MAAQ,OACzBzC,GAAiB,CAAErd,OAAQ,+BAAgC6M,EAAO,OAInE,MAAMmM,EAASrlB,MAAMC,KAAMs6B,EAAIS,QAAQ96B,iBAAkBoO,IAEzD,IAAK,IAAI1O,EAAI,EAAGk/B,EAAMzZ,EAAOxjB,OAAQjC,EAAIk/B,EAAKl/B,IAAM,CACnD,MAAMgK,EAAQyb,EAAQzlB,GAGM,SAAxBgK,EAAM7I,MAAMiF,UAIV+I,EAAOyL,QAAU5Q,EAAMtJ,UAAUmU,SAAU,UAG5C7K,EAAMtJ,UAAUmU,SAAU,SAC7B7K,EAAM7I,MAAMse,IAAM,EAGlBzV,EAAM7I,MAAMse,IAAM/Z,KAAKE,KAAOi5B,EAAKzyB,OAASpC,EAAM4V,cAAiB,EAAG,GAAM,KAI7E5V,EAAM7I,MAAMse,IAAM,GAGpB,CAEIqf,IAAaxlB,GAChB/S,GAAc,CACbvE,KAAM,SACNgS,KAAM,CACL8qB,WACAxlB,QACAulB,SAIJ,EA2DF,WAQC,GACClE,EAAIS,UACHjsB,EAAO+pB,gBACP8B,GAAU/b,YAC6B,iBAAjC9P,EAAO6qB,uBACE,WAAhB7qB,EAAOoY,KACN,CACD,MAAMsX,EAAOze,KAETye,EAAKE,kBAAoB,GAAKF,EAAKE,mBAAqB5vB,EAAO6qB,sBAC7De,GAAW9b,aACfkG,GAAYlS,SACZ8nB,GAAW/d,YAIR+d,GAAW9b,YAAa8b,GAAWnc,YAEzC,CAED,CArFEugB,GAEAxE,EAAI+B,SAASv7B,MAAM0f,YAAa,gBAAiBvH,GACjDqhB,EAAI+B,SAASv7B,MAAM0f,YAAa,mBAAoB+d,EAAgB,MACpEjE,EAAI+B,SAASv7B,MAAM0f,YAAa,oBAAqBJ,EAAiB,MAEtEsa,GAAWtuB,SAEX8S,GAAS9P,SACT0V,GAAYrP,iBAERqT,GAASlK,YACZkK,GAAS1Z,QAGX,CAED,CASA,SAASwW,GAAqB9Z,EAAOC,GAEpC+uB,EAAeR,EAAIlV,OAAQ,4CAA6C9gB,SAAS1D,IAGhF,IAAIm+B,E1B5xB2BC,EAAEp+B,EAASmL,EAAS,KAErD,GAAInL,EAAU,CACb,IAAIq+B,EAAWC,EAAYt+B,EAAQE,MAAMiL,OAkBzC,OAdAnL,EAAQE,MAAMiL,OAAS,MAIvBnL,EAAQU,WAAWR,MAAMiL,OAAS,OAElCkzB,EAAYlzB,EAASnL,EAAQU,WAAWiV,aAGxC3V,EAAQE,MAAMiL,OAASmzB,EAAY,KAGnCt+B,EAAQU,WAAWR,MAAM+gB,eAAe,UAEjCod,CACR,CAEA,OAAOlzB,CAAM,E0BowBW+uB,CAAyBl6B,EAASmL,GAGxD,GAAI,gBAAgB1I,KAAMzC,EAAQ2a,UAAa,CAC9C,MAAM4jB,EAAKv+B,EAAQw+B,cAAgBx+B,EAAQy+B,WACxCC,EAAK1+B,EAAQ2+B,eAAiB3+B,EAAQ4+B,YAEnCC,EAAKp6B,KAAKC,IAAKwG,EAAQqzB,EAAIJ,EAAkBO,GAEnD1+B,EAAQE,MAAMgL,MAAUqzB,EAAKM,EAAO,KACpC7+B,EAAQE,MAAMiL,OAAWuzB,EAAKG,EAAO,IAEtC,MAEC7+B,EAAQE,MAAMgL,MAAQA,EAAQ,KAC9BlL,EAAQE,MAAMiL,OAASgzB,EAAkB,IAC1C,GAIF,CA4CA,SAAShf,GAAsB2e,EAAmBC,GAEjD,IAAI7yB,EAAQgD,EAAOhD,MACfC,EAAS+C,EAAO/C,OAEhB+C,EAAO+pB,gBACV/sB,EAAQwuB,EAAIlV,OAAOnP,YACnBlK,EAASuuB,EAAIlV,OAAO7O,cAGrB,MAAMioB,EAAO,CAEZ1yB,MAAOA,EACPC,OAAQA,EAGR2yB,kBAAmBA,GAAqBpE,EAAIS,QAAQ9kB,YACpD0oB,mBAAoBA,GAAsBrE,EAAIS,QAAQxkB,cAiBvD,OAbAioB,EAAKE,mBAAuBF,EAAKE,kBAAoB5vB,EAAO0W,OAC5DgZ,EAAKG,oBAAwBH,EAAKG,mBAAqB7vB,EAAO0W,OAGpC,iBAAfgZ,EAAK1yB,OAAsB,KAAKzI,KAAMm7B,EAAK1yB,SACrD0yB,EAAK1yB,MAAQwF,SAAUktB,EAAK1yB,MAAO,IAAO,IAAM0yB,EAAKE,mBAI3B,iBAAhBF,EAAKzyB,QAAuB,KAAK1I,KAAMm7B,EAAKzyB,UACtDyyB,EAAKzyB,OAASuF,SAAUktB,EAAKzyB,OAAQ,IAAO,IAAMyyB,EAAKG,oBAGjDH,CAER,CAUA,SAASkB,GAA0BxhB,EAAOxZ,GAEpB,iBAAVwZ,GAAoD,mBAAvBA,EAAMpU,cAC7CoU,EAAMpU,aAAc,uBAAwBpF,GAAK,EAGnD,CASA,SAASi7B,GAA0BzhB,GAElC,GAAqB,iBAAVA,GAAoD,mBAAvBA,EAAMpU,cAA+BoU,EAAM7d,UAAUmU,SAAU,SAAY,CAElH,MAAMorB,EAAgB1hB,EAAMzU,aAAc,qBAAwB,oBAAsB,uBAExF,OAAO6H,SAAU4M,EAAMnU,aAAc61B,IAAmB,EAAG,GAC5D,CAEA,OAAO,CAER,CAUA,SAAS1vB,GAAiBvG,EAAQ+K,GAEjC,OAAO/K,GAASA,EAAMrI,cAAgBqI,EAAMrI,WAAWia,SAAS9a,MAAO,WAExE,CAmBA,SAASo/B,KAER,SAAInrB,IAAgBxE,GAAiBwE,MAEhCA,EAAaorB,kBAOnB,CAMA,SAASC,KAER,OAAkB,IAAXjd,GAA2B,IAAX5N,CAExB,CAQA,SAAS8qB,KAER,QAAItrB,KAECA,EAAaorB,sBAGb5vB,GAAiBwE,KAAkBA,EAAapT,WAAWw+B,oBAOjE,CAMA,SAAS1xB,KAER,GAAIU,EAAOV,MAAQ,CAClB,MAAM6xB,EAAY3F,EAAIS,QAAQ16B,UAAUmU,SAAU,UAElDuU,KACAuR,EAAIS,QAAQ16B,UAAUC,IAAK,WAET,IAAd2/B,GACH/5B,GAAc,CAAEvE,KAAM,UAExB,CAED,CAKA,SAASm7B,KAER,MAAMmD,EAAY3F,EAAIS,QAAQ16B,UAAUmU,SAAU,UAClD8lB,EAAIS,QAAQ16B,UAAUE,OAAQ,UAE9BmpB,KAEIuW,GACH/5B,GAAc,CAAEvE,KAAM,WAGxB,CAKA,SAAS8qB,GAAa9N,GAEG,kBAAbA,EACVA,EAAWvQ,KAAU0uB,KAGrBpR,KAAaoR,KAAW1uB,IAG1B,CAOA,SAASsd,KAER,OAAO4O,EAAIS,QAAQ16B,UAAUmU,SAAU,SAExC,CAyDA,SAAS7K,GAAOnD,EAAG9B,EAAGG,EAAG2f,GAaxB,GAVoBte,GAAc,CACjCvE,KAAM,oBACNgS,KAAM,CACLmP,YAAcqJ,IAAN3lB,EAAkBsc,EAAStc,EACnC0O,YAAciX,IAANznB,EAAkBwQ,EAASxQ,EACnC8f,YAKc0b,iBAAmB,OAGnC7iB,EAAgB3I,EAGhB,MAAMkB,EAAmB0kB,EAAIS,QAAQ96B,iBAAkBqO,GAIvD,GAAIosB,GAAW9b,WAAa,CAC3B,MAAMsF,EAAgBwW,GAAW1V,kBAAmBxe,EAAG9B,GAEvD,YADIwf,GAAgBwW,GAAWxW,cAAeA,GAE/C,CAGA,GAAgC,IAA5BtO,EAAiBhU,OAAe,YAI1BuqB,IAANznB,GAAoBokB,GAASlK,aAChCla,EAAIi7B,GAA0B/pB,EAAkBpP,KAK7C6W,GAAiBA,EAAc/b,YAAc+b,EAAc/b,WAAWjB,UAAUmU,SAAU,UAC7FkrB,GAA0BriB,EAAc/b,WAAY4T,GAIrD,MAAMirB,EAAcxN,EAAM3qB,SAG1B2qB,EAAM/wB,OAAS,EAEf,IAAIw+B,EAAetd,GAAU,EAC5Bud,EAAenrB,GAAU,EAG1B4N,EAASwd,GAAchyB,OAAkC6d,IAAN3lB,EAAkBsc,EAAStc,GAC9E0O,EAASorB,GAAc/xB,OAAgC4d,IAANznB,EAAkBwQ,EAASxQ,GAG5E,IAAI67B,EAAiBzd,IAAWsd,GAAgBlrB,IAAWmrB,EAGtDE,IAAeljB,EAAgB,MAIpC,IAAImjB,EAAyB5qB,EAAkBkN,GAC9C2d,EAAwBD,EAAuBvgC,iBAAkB,WAGlEyU,EAAe+rB,EAAuBvrB,IAAYsrB,EAElD,IAAIE,GAAwB,EAGxBH,GAAgBljB,GAAiB3I,IAAiBoU,GAASlK,aAC9D6a,EAAa,UAEbiH,EAAwBljB,GAA0BH,EAAe3I,EAAc0rB,EAAcC,GAQzFK,GACHpG,EAAIlV,OAAO/kB,UAAUC,IAAK,8BAK5B6oB,KAEA/c,KAGI0c,GAASlK,YACZkK,GAAS1Z,cAIO,IAANvK,GACV6d,GAAU6F,KAAM1jB,GAMbwY,GAAiBA,IAAkB3I,IACtC2I,EAAchd,UAAUE,OAAQ,WAChC8c,EAAcvT,aAAc,cAAe,QAGvCi2B,MAEHt4B,YAAY,KAovBPqzB,EAAeR,EAAIS,QAASzsB,EAA6B,UAnvBzChK,SAASqF,IAC5B+1B,GAA0B/1B,EAAO,EAAG,GAClC,GACD,IAKLg3B,EAAW,IAAK,IAAIhhC,EAAI,EAAGk/B,EAAMlM,EAAM/wB,OAAQjC,EAAIk/B,EAAKl/B,IAAM,CAG7D,IAAK,IAAIihC,EAAI,EAAGA,EAAIT,EAAYv+B,OAAQg/B,IACvC,GAAIT,EAAYS,KAAOjO,EAAMhzB,GAAK,CACjCwgC,EAAYU,OAAQD,EAAG,GACvB,SAASD,CACV,CAGDrG,EAAI+B,SAASh8B,UAAUC,IAAKqyB,EAAMhzB,IAGlCuG,GAAc,CAAEvE,KAAMgxB,EAAMhzB,IAC7B,CAGA,KAAOwgC,EAAYv+B,QAClB04B,EAAI+B,SAASh8B,UAAUE,OAAQ4/B,EAAY19B,OAGxC89B,GACH3C,GAAsBpZ,IAInB+b,GAAiBljB,IACpBjI,EAAalH,oBAAqBmP,GAClCjI,EAAanI,qBAAsByH,IAMpC1Q,uBAAuB,KACtBokB,GAAgBC,GAAe3T,GAAgB,IAGhDwK,GAAS9P,SACT3B,GAAS2B,SACTiX,GAAMjX,SACN0V,GAAY1V,SACZ0V,GAAYrP,iBACZxG,GAAYG,SACZsT,GAAUtT,SAGVhN,GAASumB,WAETe,KAGIgX,IAEHj5B,YAAY,KACX6yB,EAAIlV,OAAO/kB,UAAUE,OAAQ,4BAA6B,GACxD,GAECuO,EAAOwI,aAEVA,GAAYV,IAAKyG,EAAe3I,GAKnC,CAaA,SAAS8I,GAA0B3G,EAAWC,EAASspB,EAAcC,GAEpE,OAAQxpB,EAAUpN,aAAc,sBAAyBqN,EAAQrN,aAAc,sBAC7EoN,EAAU9M,aAAc,0BAA6B+M,EAAQ/M,aAAc,2BACtE+Y,EAASsd,GAAgBlrB,EAASmrB,EAAiBvpB,EAAUD,GAAYpN,aAAc,4BAE/F,CAqDA,SAASiK,KAGR0oB,KACAc,KAGA9wB,KAGA+sB,EAAYrqB,EAAOqqB,UAGnBzP,KAGA5E,GAAYlS,SAGZxQ,GAASumB,YAE0B,IAA/B7Z,EAAOirB,qBACVrX,GAAUmF,UAGXpa,GAAS2B,SACT8P,GAAS9P,SAET+Z,KAEA9C,GAAMjX,SACNiX,GAAM6P,mBACNpR,GAAY1V,QAAQ,GACpBH,GAAYG,SACZgG,EAAa3I,yBAGgB,IAAzBqC,EAAO3B,cACViI,EAAalH,oBAAqBwG,EAAc,CAAEvG,eAAe,IAGjEiH,EAAanI,qBAAsByH,GAGhCoU,GAASlK,YACZkK,GAAS1c,QAGX,CAkDA,SAAS4sB,GAAS5T,EAAS3V,MAE1B2V,EAAO9gB,SAAS,CAAEqF,EAAOhK,KAKxB,IAAImhC,EAAc1b,EAAQ/f,KAAKkgB,MAAOlgB,KAAK07B,SAAW3b,EAAOxjB,SACzDk/B,EAAYx/B,aAAeqI,EAAMrI,YACpCqI,EAAMrI,WAAWuc,aAAclU,EAAOm3B,GAIvC,IAAIjrB,EAAiBlM,EAAM1J,iBAAkB,WACzC4V,EAAejU,QAClBo3B,GAASnjB,EACV,GAIF,CAeA,SAASyqB,GAAcxgC,EAAUqb,GAIhC,IAAIiK,EAAS0V,EAAeR,EAAIS,QAASj7B,GACxCkhC,EAAe5b,EAAOxjB,OAEnBq/B,EAAYvG,GAAW9b,YAAc+b,GAAU/b,WAC/CsiB,GAAiB,EACjBC,GAAkB,EAEtB,GAAIH,EAAe,CAGdlyB,EAAOiqB,OACN5d,GAAS6lB,IAAeE,GAAiB,IAE7C/lB,GAAS6lB,GAEG,IACX7lB,EAAQ6lB,EAAe7lB,EACvBgmB,GAAkB,IAKpBhmB,EAAQ9V,KAAKE,IAAKF,KAAKC,IAAK6V,EAAO6lB,EAAe,GAAK,GAEvD,IAAK,IAAIrhC,EAAI,EAAGA,EAAIqhC,EAAcrhC,IAAM,CACvC,IAAIiB,EAAUwkB,EAAOzlB,GAEjByhC,EAAUtyB,EAAO+F,MAAQ3E,GAAiBtP,GAG9CA,EAAQP,UAAUE,OAAQ,QAC1BK,EAAQP,UAAUE,OAAQ,WAC1BK,EAAQP,UAAUE,OAAQ,UAG1BK,EAAQkJ,aAAc,SAAU,IAChClJ,EAAQkJ,aAAc,cAAe,QAGjClJ,EAAQuL,cAAe,YAC1BvL,EAAQP,UAAUC,IAAK,SAIpB2gC,EACHrgC,EAAQP,UAAUC,IAAK,WAIpBX,EAAIwb,GAEPva,EAAQP,UAAUC,IAAK8gC,EAAU,SAAW,QAExCtyB,EAAO4T,WAEV2e,GAAiBzgC,IAGVjB,EAAIwb,GAEZva,EAAQP,UAAUC,IAAK8gC,EAAU,OAAS,UAEtCtyB,EAAO4T,WAEV4e,GAAiB1gC,IAKVjB,IAAMwb,GAASrM,EAAO4T,YAC1Bwe,EACHI,GAAiB1gC,GAETugC,GACRE,GAAiBzgC,GAGpB,CAEA,IAAI+I,EAAQyb,EAAOjK,GACfomB,EAAa53B,EAAMtJ,UAAUmU,SAAU,WAG3C7K,EAAMtJ,UAAUC,IAAK,WACrBqJ,EAAMK,gBAAiB,UACvBL,EAAMK,gBAAiB,eAElBu3B,GAEJr7B,GAAc,CACblF,OAAQ2I,EACRhI,KAAM,UACN2mB,SAAS,IAMX,IAAIkZ,EAAa73B,EAAMI,aAAc,cACjCy3B,IACH7O,EAAQA,EAAM3qB,OAAQw5B,EAAWj/B,MAAO,MAG1C,MAIC4Y,EAAQ,EAGT,OAAOA,CAER,CAKA,SAASkmB,GAAiB7tB,GAEzBsnB,EAAetnB,EAAW,aAAclP,SAASwiB,IAChDA,EAASzmB,UAAUC,IAAK,WACxBwmB,EAASzmB,UAAUE,OAAQ,mBAAoB,GAGjD,CAKA,SAAS+gC,GAAiB9tB,GAEzBsnB,EAAetnB,EAAW,qBAAsBlP,SAASwiB,IACxDA,EAASzmB,UAAUE,OAAQ,UAAW,mBAAoB,GAG5D,CAMA,SAAS4oB,KAIR,IAECsY,EACAC,EAHG9rB,EAAmBnG,KACtBkyB,EAAyB/rB,EAAiBhU,OAI3C,GAAI+/B,QAA4C,IAAX7e,EAAyB,CAI7D,IAAI+W,EAAe/Q,GAASlK,WAAa,GAAK9P,EAAO+qB,aAIjDqB,IACHrB,EAAe/Q,GAASlK,WAAa,EAAI9P,EAAOgrB,oBAI7Ca,GAAU/b,aACbib,EAAexN,OAAOC,WAGvB,IAAK,IAAI5kB,EAAI,EAAGA,EAAIi6B,EAAwBj6B,IAAM,CACjD,IAAIoW,EAAkBlI,EAAiBlO,GAEnCmO,EAAiBilB,EAAehd,EAAiB,WACpD8jB,EAAuB/rB,EAAejU,OAmBvC,GAhBA6/B,EAAYp8B,KAAKmwB,KAAO1S,GAAU,GAAMpb,IAAO,EAI3CoH,EAAOiqB,OACV0I,EAAYp8B,KAAKmwB,MAAS1S,GAAU,GAAMpb,IAAQi6B,EAAyB9H,KAAoB,GAI5F4H,EAAY5H,EACfzkB,EAAa1L,KAAMoU,GAGnB1I,EAAa7I,OAAQuR,GAGlB8jB,EAAuB,CAE1B,IAAIC,EAAKlC,GAA0B7hB,GAEnC,IAAK,IAAIrZ,EAAI,EAAGA,EAAIm9B,EAAsBn9B,IAAM,CAC/C,IAAIuZ,EAAgBnI,EAAepR,GAEnCi9B,EAAYh6B,KAAQob,GAAU,GAAMzd,KAAKmwB,KAAOtgB,GAAU,GAAMzQ,GAAMY,KAAKmwB,IAAK/wB,EAAIo9B,GAEhFJ,EAAYC,EAAY7H,EAC3BzkB,EAAa1L,KAAMsU,GAGnB5I,EAAa7I,OAAQyR,EAEvB,CAED,CACD,CAGI6N,KACHyO,EAAIS,QAAQ16B,UAAUC,IAAK,uBAG3Bg6B,EAAIS,QAAQ16B,UAAUE,OAAQ,uBAI3BqrB,KACH0O,EAAIS,QAAQ16B,UAAUC,IAAK,yBAG3Bg6B,EAAIS,QAAQ16B,UAAUE,OAAQ,wBAGhC,CAED,CAOA,SAAS+mB,IAAgB+N,iBAAEA,GAAmB,GAAU,IAEvD,IAAIzf,EAAmB0kB,EAAIS,QAAQ96B,iBAAkBqO,GACpDuH,EAAiBykB,EAAIS,QAAQ96B,iBAAkBsO,GAE5C6hB,EAAS,CACZtK,KAAMhD,EAAS,EACfoJ,MAAOpJ,EAASlN,EAAiBhU,OAAS,EAC1CwqB,GAAIlX,EAAS,EACbqX,KAAMrX,EAASW,EAAejU,OAAS,GAyBxC,GApBIkN,EAAOiqB,OACNnjB,EAAiBhU,OAAS,IAC7BwuB,EAAOtK,MAAO,EACdsK,EAAOlE,OAAQ,GAGZrW,EAAejU,OAAS,IAC3BwuB,EAAOhE,IAAK,EACZgE,EAAO7D,MAAO,IAIX3W,EAAiBhU,OAAS,GAA+B,WAA1BkN,EAAOib,iBAC1CqG,EAAOlE,MAAQkE,EAAOlE,OAASkE,EAAO7D,KACtC6D,EAAOtK,KAAOsK,EAAOtK,MAAQsK,EAAOhE,KAMZ,IAArBiJ,EAA4B,CAC/B,IAAIyM,EAAiBpf,GAAU4E,kBAC/B8I,EAAOtK,KAAOsK,EAAOtK,MAAQgc,EAAe9d,KAC5CoM,EAAOhE,GAAKgE,EAAOhE,IAAM0V,EAAe9d,KACxCoM,EAAO7D,KAAO6D,EAAO7D,MAAQuV,EAAe7d,KAC5CmM,EAAOlE,MAAQkE,EAAOlE,OAAS4V,EAAe7d,IAC/C,CAGA,GAAInV,EAAO+F,IAAM,CAChB,IAAIiR,EAAOsK,EAAOtK,KAClBsK,EAAOtK,KAAOsK,EAAOlE,MACrBkE,EAAOlE,MAAQpG,CAChB,CAEA,OAAOsK,CAER,CAUA,SAASvgB,GAAmBlG,EAAQ+K,GAEnC,IAAIkB,EAAmBnG,KAGnBsyB,EAAY,EAGhBC,EAAU,IAAK,IAAIriC,EAAI,EAAGA,EAAIiW,EAAiBhU,OAAQjC,IAAM,CAE5D,IAAIme,EAAkBlI,EAAiBjW,GACnCkW,EAAiBiI,EAAgB7d,iBAAkB,WAEvD,IAAK,IAAI2gC,EAAI,EAAGA,EAAI/qB,EAAejU,OAAQg/B,IAAM,CAGhD,GAAI/qB,EAAe+qB,KAAOj3B,EACzB,MAAMq4B,EAIsC,cAAzCnsB,EAAe+qB,GAAGjxB,QAAQC,YAC7BmyB,GAGF,CAGA,GAAIjkB,IAAoBnU,EACvB,OAKqD,IAAlDmU,EAAgBzd,UAAUmU,SAAU,UAA8D,cAAvCsJ,EAAgBnO,QAAQC,YACtFmyB,GAGF,CAEA,OAAOA,CAER,CA+CA,SAAS/xB,GAAYrG,GAGpB,IAEC9E,EAFG2B,EAAIsc,EACPpe,EAAIwQ,EAIL,GAAIvL,EAEH,GAAI+wB,GAAW9b,WACdpY,EAAI8K,SAAU3H,EAAMI,aAAc,gBAAkB,IAEhDJ,EAAMI,aAAc,kBACvBrF,EAAI4M,SAAU3H,EAAMI,aAAc,gBAAkB,SAGjD,CACJ,IAAIk4B,EAAa/xB,GAAiBvG,GAC9BkJ,EAASovB,EAAat4B,EAAMrI,WAAaqI,EAGzCiM,EAAmBnG,KAGvBjJ,EAAInB,KAAKE,IAAKqQ,EAAiB5I,QAAS6F,GAAU,GAGlDnO,OAAIynB,EAGA8V,IACHv9B,EAAIW,KAAKE,IAAKu1B,EAAenxB,EAAMrI,WAAY,WAAY0L,QAASrD,GAAS,GAE/E,CAGD,IAAKA,GAAS+K,EAAe,CAE5B,GADmBA,EAAazU,iBAAkB,aAAc2B,OAAS,EACtD,CAClB,IAAIsmB,EAAkBxT,EAAavI,cAAe,qBAEjDtH,EADGqjB,GAAmBA,EAAgBze,aAAc,uBAChD6H,SAAU4W,EAAgBne,aAAc,uBAAyB,IAGjE2K,EAAazU,iBAAkB,qBAAsB2B,OAAS,CAEpE,CACD,CAEA,MAAO,CAAE4E,IAAG9B,IAAGG,IAEhB,CAKA,SAASwM,KAER,OAAOypB,EAAeR,EAAIS,QAAS1sB,EAAkB,kDAEtD,CAOA,SAASoB,KAER,OAAOqrB,EAAeR,EAAIS,QAASzsB,EAEpC,CAKA,SAASwH,KAER,OAAOglB,EAAeR,EAAIS,QAAS,0BAEpC,CAcA,SAASnP,KAER,OAAOnc,KAAsB7N,OAAS,CACvC,CAKA,SAASiqB,KAER,OAAO/V,KAAoBlU,OAAS,CAErC,CA0BA,SAASkO,KAER,OAAOuB,KAAYzP,MAEpB,CAOA,SAASsgC,GAAUx6B,EAAGjD,GAErB,IAAIqZ,EAAkBrO,KAAuB/H,GACzCmO,EAAiBiI,GAAmBA,EAAgB7d,iBAAkB,WAE1E,OAAI4V,GAAkBA,EAAejU,QAAuB,iBAAN6C,EAC9CoR,EAAiBA,EAAgBpR,QAAM0nB,EAGxCrO,CAER,CA+BA,SAASjB,KAER,IAAI9M,EAAUC,KAEd,MAAO,CACN8S,OAAQ/S,EAAQvJ,EAChB0O,OAAQnF,EAAQrL,EAChBy9B,OAAQpyB,EAAQlL,EAChBu9B,OAAQ1W,KACR5C,SAAUA,GAASlK,WAGrB,CA8BA,SAAS8K,KAIR,GAFAX,KAEIrU,IAAqC,IAArB5F,EAAOqqB,UAAsB,CAEhD,IAAIrS,EAAWpS,EAAavI,cAAe,qCAEvCk2B,EAAoBvb,EAAWA,EAAS/c,aAAc,kBAAqB,KAC3Eu4B,EAAkB5tB,EAAapT,WAAaoT,EAAapT,WAAWyI,aAAc,kBAAqB,KACvGw4B,EAAiB7tB,EAAa3K,aAAc,kBAO5Cs4B,EACHlJ,EAAY7nB,SAAU+wB,EAAmB,IAEjCE,EACRpJ,EAAY7nB,SAAUixB,EAAgB,IAE9BD,EACRnJ,EAAY7nB,SAAUgxB,EAAiB,KAGvCnJ,EAAYrqB,EAAOqqB,UAOyC,IAAxDzkB,EAAazU,iBAAkB,aAAc2B,QAChDk5B,EAAepmB,EAAc,gBAAiBpQ,SAASzE,IAClDA,EAAG4J,aAAc,kBAChB0vB,GAA4B,IAAdt5B,EAAGmY,SAAkBnY,EAAG2iC,aAAiBrJ,IAC1DA,EAA4B,IAAdt5B,EAAGmY,SAAkBnY,EAAG2iC,aAAiB,IAEzD,MAWCrJ,GAAcsB,GAAoB/O,MAAe5C,GAASlK,YAAiBohB,OAAiBtd,GAAU4E,kBAAkBrD,OAAwB,IAAhBnV,EAAOiqB,OAC1IwB,EAAmB9yB,YAAY,KACQ,mBAA3BqH,EAAOsqB,gBACjBtqB,EAAOsqB,kBAGPqJ,KAED/Y,IAAc,GACZyP,GACHqB,EAAqB7L,KAAKC,OAGvBsL,GACHA,EAAgBlD,YAAkC,IAAtBuD,EAG9B,CAED,CAKA,SAASxR,KAERvhB,aAAc+yB,GACdA,GAAoB,CAErB,CAEA,SAASmI,KAEJvJ,IAAcsB,IACjBA,GAAkB,EAClBv0B,GAAc,CAAEvE,KAAM,oBACtB6F,aAAc+yB,GAEVL,GACHA,EAAgBlD,YAAY,GAI/B,CAEA,SAAS2L,KAEJxJ,GAAasB,IAChBA,GAAkB,EAClBv0B,GAAc,CAAEvE,KAAM,qBACtB+nB,KAGF,CAEA,SAASkZ,IAAa3W,cAACA,GAAc,GAAO,IAK3C,GAHAmO,EAAkB5J,0BAA2B,EAGzCkK,GAAW9b,WAAa,OAAO8b,GAAW1W,OAG1ClV,EAAO+F,KACJiU,GAASlK,YAAcqN,IAAsC,IAArBvJ,GAAUuB,SAAsBqD,KAAkBxB,MAC/Fnc,GAAOmZ,EAAS,EAA6B,SAA1BhU,EAAOib,eAA4B7U,OAASiX,IAItDrD,GAASlK,YAAcqN,IAAsC,IAArBvJ,GAAUsB,SAAsBsD,KAAkBxB,MACpGnc,GAAOmZ,EAAS,EAA6B,SAA1BhU,EAAOib,eAA4B7U,OAASiX,EAGjE,CAEA,SAAS0W,IAAc5W,cAACA,GAAc,GAAO,IAK5C,GAHAmO,EAAkB5J,0BAA2B,EAGzCkK,GAAW9b,WAAa,OAAO8b,GAAWzW,OAG1CnV,EAAO+F,KACJiU,GAASlK,YAAcqN,IAAsC,IAArBvJ,GAAUsB,SAAsBsD,KAAkB4E,OAC/FviB,GAAOmZ,EAAS,EAA6B,SAA1BhU,EAAOib,eAA4B7U,OAASiX,IAItDrD,GAASlK,YAAcqN,IAAsC,IAArBvJ,GAAUuB,SAAsBqD,KAAkB4E,OACpGviB,GAAOmZ,EAAS,EAA6B,SAA1BhU,EAAOib,eAA4B7U,OAASiX,EAGjE,CAEA,SAAS2W,IAAW7W,cAACA,GAAc,GAAO,IAGzC,GAAIyO,GAAW9b,WAAa,OAAO8b,GAAW1W,QAGxC8E,GAASlK,YAAcqN,IAAsC,IAArBvJ,GAAUsB,SAAsBsD,KAAkB8E,IAC/FziB,GAAOmZ,EAAQ5N,EAAS,EAG1B,CAEA,SAAS6tB,IAAa9W,cAACA,GAAc,GAAO,IAK3C,GAHAmO,EAAkB7J,wBAAyB,EAGvCmK,GAAW9b,WAAa,OAAO8b,GAAWzW,QAGxC6E,GAASlK,YAAcqN,IAAsC,IAArBvJ,GAAUuB,SAAsBqD,KAAkBiF,MAC/F5iB,GAAOmZ,EAAQ5N,EAAS,EAG1B,CAQA,SAAS8tB,IAAa/W,cAACA,GAAc,GAAO,IAG3C,GAAIyO,GAAW9b,WAAa,OAAO8b,GAAW1W,OAG9C,GAAIiI,IAAsC,IAArBvJ,GAAUsB,OAC9B,GAAIsD,KAAkB8E,GACrB0W,GAAW,CAAC7W,sBAER,CAEJ,IAAI5O,EAWJ,GARCA,EADGvO,EAAO+F,IACMimB,EAAeR,EAAIS,QAASzsB,EAA6B,WAAY7L,MAGrEq4B,EAAeR,EAAIS,QAASzsB,EAA6B,SAAU7L,MAKhF4a,GAAiBA,EAAchd,UAAUmU,SAAU,SAAY,CAClE,IAAI9P,EAAM2Y,EAAcpd,iBAAkB,WAAY2B,OAAS,QAAOuqB,EAEtExiB,GADQmZ,EAAS,EACPpe,EACX,MAECk+B,GAAa,CAAC3W,iBAEhB,CAGF,CAKA,SAASwW,IAAaxW,cAACA,GAAc,GAAO,IAM3C,GAJAmO,EAAkB5J,0BAA2B,EAC7C4J,EAAkB7J,wBAAyB,EAGvCmK,GAAW9b,WAAa,OAAO8b,GAAWzW,OAG9C,GAAIgI,IAAsC,IAArBvJ,GAAUuB,OAAmB,CAEjD,IAAImM,EAAS9I,KAKT8I,EAAO7D,MAAQ6D,EAAOlE,OAASpd,EAAOiqB,MAAQ8G,OACjDzP,EAAO7D,MAAO,GAGX6D,EAAO7D,KACVwW,GAAa,CAAC9W,kBAENnd,EAAO+F,IACf+tB,GAAa,CAAC3W,kBAGd4W,GAAc,CAAC5W,iBAEjB,CAED,CAwBA,SAAS6P,GAAeluB,GAEvB,IAAI+F,EAAO/F,EAAM+F,KAGjB,GAAoB,iBAATA,GAA0C,MAArBA,EAAKpB,OAAQ,IAAkD,MAAnCoB,EAAKpB,OAAQoB,EAAK/R,OAAS,KACtF+R,EAAOqqB,KAAKiF,MAAOtvB,GAGfA,EAAKuvB,QAAyC,mBAAxBl6B,EAAO2K,EAAKuvB,SAErC,IAA0D,IAAtD10B,EAA8BnL,KAAMsQ,EAAKuvB,QAAqB,CAEjE,MAAM5mB,EAAStT,EAAO2K,EAAKuvB,QAAQnX,MAAO/iB,EAAQ2K,EAAKwvB,MAIvDxF,GAAqB,WAAY,CAAEuF,OAAQvvB,EAAKuvB,OAAQ5mB,OAAQA,GAEjE,MAECkX,QAAQC,KAAM,eAAgB9f,EAAKuvB,OAAQ,+CAM/C,CAOA,SAAS7F,GAAiBzvB,GAEN,YAAf6rB,GAA4B,YAAYp2B,KAAMuK,EAAM5M,OAAOua,YAC9Dke,EAAa,OACbvzB,GAAc,CACbvE,KAAM,qBACNgS,KAAM,CAAEmP,SAAQ5N,SAAQmI,gBAAe3I,kBAI1C,CAQA,SAAS0oB,GAAiBxvB,GAEzB,MAAMw1B,EAAStI,EAAcltB,EAAM5M,OAAQ,gBAO3C,GAAIoiC,EAAS,CACZ,MAAMvV,EAAOuV,EAAOr5B,aAAc,QAC5BgG,EAAU3N,GAASmP,mBAAoBsc,GAEzC9d,IACH/G,EAAOW,MAAOoG,EAAQvJ,EAAGuJ,EAAQrL,EAAGqL,EAAQlL,GAC5C+I,EAAM+R,iBAER,CAED,CAOA,SAASwd,GAAgBvvB,GAExBxB,IACD,CAOA,SAASkxB,GAAwB1vB,IAIR,IAApBnM,SAASumB,QAAoBvmB,SAASspB,gBAAkBtpB,SAASkkB,OAEzB,mBAAhClkB,SAASspB,cAAciL,MACjCv0B,SAASspB,cAAciL,OAExBv0B,SAASkkB,KAAK3U,QAGhB,CAOA,SAASirB,GAAoBruB,IAEdnM,SAAS4hC,mBAAqB5hC,SAAS6hC,2BACrChJ,EAAIS,UACnBntB,EAAMsE,2BAGNzK,YAAY,KACXuB,EAAOoD,SACPpD,EAAOgI,MAAMA,OAAO,GAClB,GAGL,CAQA,SAASktB,GAAsBtwB,GAE9B,GAAIA,EAAM21B,eAAiB31B,EAAM21B,cAAc95B,aAAc,QAAW,CACvE,IAAIsB,EAAM6C,EAAM21B,cAAcx5B,aAAc,QACxCgB,IACHozB,GAAapzB,GACb6C,EAAM+R,iBAER,CAED,CAOA,SAASsd,GAAwBrvB,GAG5BoyB,OAAiC,IAAhBlxB,EAAOiqB,MAC3BpvB,GAAO,EAAG,GACVg5B,MAGQlI,EACRkI,KAIAD,IAGF,CAQA,MAAMc,GAAM,CACXxJ,UAEAyJ,WAtpFD,SAAqBC,GAEpB,IAAKpU,EAAgB,KAAM,2DAM3B,GAHAgL,EAAIS,QAAUzL,EACdgL,EAAIlV,OAASkK,EAAcnjB,cAAe,YAErCmuB,EAAIlV,OAAS,KAAM,0DAwBxB,OAfAtW,EAAS,IAAK2pB,KAAkB3pB,KAAWlF,KAAY85B,KAAgB5I,KAGnE,cAAcz3B,KAAMwF,OAAOzG,SAASC,UACvCyM,EAAOoY,KAAO,SAmBhB,YAGyB,IAApBpY,EAAOme,SACVqN,EAAI+B,SAAWvB,EAAcxL,EAAe,qBAAwBA,GAIpEgL,EAAI+B,SAAW56B,SAASkkB,KACxBlkB,SAASikB,gBAAgBrlB,UAAUC,IAAK,qBAGzCg6B,EAAI+B,SAASh8B,UAAUC,IAAK,kBAE7B,CA9BCqjC,GAGA96B,OAAO6E,iBAAkB,OAAQtB,IAAQ,GAGzC0mB,GAAQppB,KAAMoF,EAAOgkB,QAAShkB,EAAOikB,cAAeQ,KAAMsH,IAEnD,IAAIpV,SAASwN,GAAWjqB,EAAOsvB,GAAI,QAASrF,IAEpD,EAqnFCpkB,aACA0B,QAzrED,WAEC6rB,KACArT,KACAiU,KAGA3W,GAAM9V,UACNS,GAAMT,UACNuiB,GAAQviB,UACRqqB,GAAQrqB,UACR9C,GAAS8C,UACT2O,GAAS3O,UACTuU,GAAYvU,UACZtB,GAAYsB,UACZ6c,GAAY7c,UAGZ9O,SAASkM,oBAAqB,mBAAoBsuB,IAClDx6B,SAASkM,oBAAqB,yBAA0BsuB,IACxDx6B,SAASkM,oBAAqB,mBAAoB2vB,IAAwB,GAC1Ez0B,OAAO8E,oBAAqB,UAAWmuB,IAAe,GACtDjzB,OAAO8E,oBAAqB,OAAQvB,IAAQ,GAGxCkuB,EAAIa,cAAeb,EAAIa,aAAa56B,SACpC+5B,EAAImB,eAAgBnB,EAAImB,cAAcl7B,SAE1CkB,SAASikB,gBAAgBrlB,UAAUE,OAAQ,oBAE3C+5B,EAAIS,QAAQ16B,UAAUE,OAAQ,QAAS,SAAU,wBAAyB,uBAC1E+5B,EAAIS,QAAQ/wB,gBAAiB,yBAC7BswB,EAAIS,QAAQ/wB,gBAAiB,8BAE7BswB,EAAI+B,SAASh8B,UAAUE,OAAQ,mBAC/B+5B,EAAI+B,SAASv7B,MAAM+gB,eAAgB,iBACnCyY,EAAI+B,SAASv7B,MAAM+gB,eAAgB,kBAEnCyY,EAAIlV,OAAOtkB,MAAM+gB,eAAgB,SACjCyY,EAAIlV,OAAOtkB,MAAM+gB,eAAgB,UACjCyY,EAAIlV,OAAOtkB,MAAM+gB,eAAgB,QACjCyY,EAAIlV,OAAOtkB,MAAM+gB,eAAgB,QACjCyY,EAAIlV,OAAOtkB,MAAM+gB,eAAgB,OACjCyY,EAAIlV,OAAOtkB,MAAM+gB,eAAgB,UACjCyY,EAAIlV,OAAOtkB,MAAM+gB,eAAgB,SACjCyY,EAAIlV,OAAOtkB,MAAM+gB,eAAgB,aAEjC9hB,MAAMC,KAAMs6B,EAAIS,QAAQ96B,iBAAkBoO,IAAoB/J,SAASqF,IACtEA,EAAM7I,MAAM+gB,eAAgB,WAC5BlY,EAAM7I,MAAM+gB,eAAgB,OAC5BlY,EAAMK,gBAAiB,UACvBL,EAAMK,gBAAiB,cAAe,GAGxC,EAqoEC0J,QACAkwB,UAnnCD,SAAoBj6B,EAAQ+K,GAE3BoQ,GAAYpR,KAAM/J,GAClB+Y,GAAUhP,KAAM/J,GAEhByL,EAAa1L,KAAMC,GAEnBmb,GAAY1V,SACZiX,GAAMjX,QAEP,EA0mCCy0B,cAAenhB,GAAUhP,KAAKvK,KAAMuZ,IAGpC/Y,SACAmc,KAAM8c,GACN1W,MAAO2W,GACPzW,GAAI0W,GACJvW,KAAMwW,GACN/e,KAAMgf,GACN/e,KAAMwe,GAGNG,gBAAcC,iBAAeC,cAAYC,gBAAcC,gBAAcP,gBAGrEqB,iBAAkBphB,GAAU6F,KAAKpf,KAAMuZ,IACvCqhB,aAAcrhB,GAAUsB,KAAK7a,KAAMuZ,IACnCshB,aAActhB,GAAUuB,KAAK9a,KAAMuZ,IAGnC4V,MACAE,OAGA9qB,iBAAkB4qB,GAClB3qB,oBAAqB6qB,GAGrBpsB,UAGA4sB,WAGA1R,mBAGA2c,mBAAoBvhB,GAAU4E,gBAAgBne,KAAMuZ,IAGpD4K,WA1/DD,SAAqB3O,GAEI,kBAAbA,EACVA,EAAW0f,KAAa9Q,KAGpB+M,EAAI8D,QACP7Q,KAGA8Q,IAGH,EAg/DC6F,eAAgBpb,GAASpK,OAAOvV,KAAM2f,IAGtCqb,iBAAkBzJ,GAAWhc,OAAOvV,KAAMuxB,IAG1CjO,eAGAU,gBA3gDD,SAA0BxO,GAED,kBAAbA,EACVA,EAAWgkB,KAAoBD,KAI/BjI,EAAkBkI,KAAoBD,IAGxC,EAogDCrV,kBAhiDD,SAA4B1O,GAEH,kBAAbA,EACVA,EAAWyO,GAAYtc,OAASsc,GAAYnc,OAG5Cmc,GAAYtf,YAAcsf,GAAYnc,OAASmc,GAAYtc,MAG7D,EA0hDCivB,gBACAC,eACAH,uBACA3vB,mBACA6N,gBA7pDD,SAA0BpU,EAAQ+K,GAEjC,OAAO/K,EAAMtJ,UAAUmU,SAAU,WAAmD,OAArC7K,EAAMwC,cAAe,UAErE,EA4pDCuf,YACAd,cAxgDD,WAEC,SAAWuO,GAAcsB,EAE1B,EAqgDCnvB,eAAgB+a,GAAM+P,qBAAqBjtB,KAAMkd,IACjD+d,WAAYtb,GAASlK,SAASzV,KAAM2f,IACpC4B,UAAW1Z,GAAM0Z,UAAUvhB,KAAM6H,IAEjC3H,aAAcqxB,GAAW9b,SAASzV,KAAMuxB,IACxCxrB,YAAayrB,GAAU/b,SAASzV,KAAMwxB,IAGtCiC,QAASA,IAAMzC,EAGfkK,UAAWjvB,EAAa1L,KAAKP,KAAMiM,GACnCkvB,YAAalvB,EAAa7I,OAAOpD,KAAMiM,GAGvCnI,qBAAsBA,IAAMmI,EAAanI,qBAAsByH,GAC/DxG,oBAAqBA,IAAMkH,EAAalH,oBAAqBwG,EAAc,CAAEvG,eAAe,IAG5FgwB,eACAoG,YAAahX,GAGb2P,qBACAd,wBACAl2B,iBAGA2W,YACAsB,SAxjBD,SAAmBwU,GAElB,GAAqB,iBAAVA,EAAqB,CAC/BhpB,GAAOmxB,EAAkBnI,EAAM7P,QAAUgY,EAAkBnI,EAAMzd,QAAU4lB,EAAkBnI,EAAMwP,SAEnG,IAAIqC,EAAa1J,EAAkBnI,EAAMyP,QACxCqC,EAAe3J,EAAkBnI,EAAM7J,UAEd,kBAAf0b,GAA4BA,IAAe9Y,MACrDe,GAAa+X,GAGc,kBAAjBC,GAA8BA,IAAiB3b,GAASlK,YAClEkK,GAASpK,OAAQ+lB,EAEnB,CAED,EA0iBC7T,YAhzBD,WAGC,IAAI8T,EAAa50B,KACbiyB,EAAYlyB,KAEhB,GAAI6E,EAAe,CAElB,IAAIiwB,EAAejwB,EAAazU,iBAAkB,aAIlD,GAAI0kC,EAAa/iC,OAAS,EAAI,CAC7B,IAIIgjC,EAAiB,GAGrB7C,GAPuBrtB,EAAazU,iBAAkB,qBAOtB2B,OAAS+iC,EAAa/iC,OAAWgjC,CAClE,CAED,CAEA,OAAOv/B,KAAKC,IAAKy8B,GAAc2C,EAAa,GAAK,EAElD,EAwxBC10B,cAIA60B,oBA/pBD,WAEC,OAAOxzB,KAAYhJ,KAAKsB,IAEvB,IAAIm7B,EAAa,CAAA,EACjB,IAAK,IAAInlC,EAAI,EAAGA,EAAIgK,EAAMm7B,WAAWljC,OAAQjC,IAAM,CAClD,IAAIolC,EAAYp7B,EAAMm7B,WAAYnlC,GAClCmlC,EAAYC,EAAUjX,MAASiX,EAAU3kC,KAC1C,CACA,OAAO0kC,CAAU,GAInB,EAqpBCj1B,qBAGAC,kBAGAoyB,YAGA8C,iBAAkBA,IAAM3nB,EAGxB9N,gBAAiBA,IAAMmF,EAGvBlI,mBA1nBD,SAA6B9E,EAAGjD,GAE/B,IAAIkF,EAAqB,iBAANjC,EAAiBw6B,GAAUx6B,EAAGjD,GAAMiD,EACvD,GAAIiC,EACH,OAAOA,EAAMU,sBAKf,EAonBCic,cAAeD,GAAMC,cAAcnd,KAAMkd,IAGzChV,aAGA5B,uBACAqG,qBAIA8V,uBACAC,qBAGA2E,yBAA0BA,IAAM4J,EAAkB5J,yBAClDD,uBAAwBA,IAAM6J,EAAkB7J,uBAEhD/S,4BAGAyM,cAAewB,GAASxB,cAAc9gB,KAAMsiB,IAC5CrB,iBAAkBqB,GAASrB,iBAAiBjhB,KAAMsiB,IAGlDpB,WAAYoB,GAASpB,WAAWlhB,KAAMsiB,IAGtCnB,yBAA0BmB,GAASnB,yBAAyBnhB,KAAMsiB,IAElE1L,wBACA8E,qBAz3CD,SAA+B9D,EAAcva,EAAG9B,GAE/C,IAAI07B,EAAetd,GAAU,EAE7BA,EAAStc,EACT0O,EAASxQ,EAET,MAAM67B,EAAe7rB,IAAiBqM,EAEtC1D,EAAgB3I,EAChBA,EAAeqM,EAEXrM,GAAgB2I,GACfvO,EAAOwI,aAAekG,GAA0BH,EAAe3I,EAAc0rB,EAAclrB,IAE9FoC,GAAYV,IAAKyG,EAAe3I,GAK9B6rB,IACCljB,IACHjI,EAAalH,oBAAqBmP,GAClCjI,EAAalH,oBAAqBmP,EAAchT,yBAGjD+K,EAAanI,qBAAsByH,GACnCU,EAAanI,qBAAsByH,EAAarK,yBAGjDrG,uBAAuB,KACtBokB,GAAgBC,GAAe3T,GAAgB,IAGhDkpB,IAED,EAw1CCzkB,SAAUA,IAAMF,EAGhB1P,UAAWA,IAAMuF,EAGjB5M,aAAc44B,EAGdmK,aAAc7iC,GAAS+N,QAAQhH,KAAM/G,IAGrCwM,iBAAkBA,IAAM0gB,EACxBxiB,iBAAkBA,IAAMwtB,EAAIlV,OAC5BF,mBAAoBA,IAAMoV,EAAI+B,SAC9BrT,sBAAuBA,IAAMlE,GAAYlkB,QAGzCoyB,eAAgBF,GAAQE,eAAe7pB,KAAM2pB,IAC7CoB,UAAWpB,GAAQoB,UAAU/qB,KAAM2pB,IACnCqB,UAAWrB,GAAQqB,UAAUhrB,KAAM2pB,IACnCoS,WAAYpS,GAAQsB,qBAAqBjrB,KAAM2pB,KAiChD,OA5BAgI,EAAa9xB,EAAQ,IACjBw6B,GAGHpb,kBACAC,iBAGArX,SACAm0B,OAAQzK,GACRxb,YACAzR,YACArL,YACA0mB,YACApG,aACAoC,eACA1P,eACAnG,eAEA4b,YA3YD,SAAsBjd,GAEjBkB,EAAOoe,oBACVwV,IAGF,EAsYCnV,gBACApE,0BACAvD,uBACA6D,mBACAC,gBACAX,qBAGMya,EAER,CCt+FIx6B,IAAAA,EAASixB,EAeTmL,EAAmB,UAEvBp8B,EAAOy6B,WAAa75B,IAGnB/B,OAAOO,OAAQY,EAAQ,IAAIixB,EAAMx4B,SAAS0K,cAAe,WAAavC,IAGtEw7B,EAAiB/8B,KAAK66B,GAAUA,EAAQl6B,KAEjCA,EAAOy6B,cAUf,CAAE,YAAa,KAAM,MAAO,mBAAoB,sBAAuB,kBAAmBn/B,SAAS4+B,IAClGl6B,EAAOk6B,GAAU,IAAKC,KACrBiC,EAAiB78B,MAAM88B,GAAQA,EAAKnC,GAAQ9hC,KAAM,QAAS+hC,IAAQ,CACnE,IAGFn6B,EAAO4zB,QAAU,KAAM,EAEvB5zB,EAAOgxB,QAAUA","x_google_ignoreList":[2]}
\ No newline at end of file
diff --git a/js/controllers/scrollview.js b/js/controllers/scrollview.js
index 2807a035535..40d6bfff34d 100644
--- a/js/controllers/scrollview.js
+++ b/js/controllers/scrollview.js
@@ -1,4 +1,4 @@
-import { HORIZONTAL_SLIDES_SELECTOR } from '../utils/constants.js'
+import { HORIZONTAL_SLIDES_SELECTOR, SLIDES_BACKGROUNDS_SELECTOR } from '../utils/constants.js'
import { queryAll } from '../utils/util.js'
const HIDE_SCROLLBAR_TIMEOUT = 500;
@@ -40,6 +40,7 @@ export default class ScrollView {
this.slideHTMLBeforeActivation = this.Reveal.getSlidesElement().innerHTML;
const horizontalSlides = queryAll( this.Reveal.getRevealElement(), HORIZONTAL_SLIDES_SELECTOR );
+ const slideBackgrounds = queryAll( this.Reveal.getRevealElement(), SLIDES_BACKGROUNDS_SELECTOR );
this.viewportElement.classList.add( 'loading-scroll-mode', 'reveal-scroll' );
@@ -76,8 +77,19 @@ export default class ScrollView {
page.className = 'scroll-page';
pageElements.push( page );
- // Copy the presentation-wide background to each page
- if( presentationBackground ) {
+ // This transfers over the background of the vertical stack containing
+ // the slide if it exists. Otherwise, it uses the presentation-wide
+ // background.
+ if( slideBackgrounds && slideBackgrounds.length > h ) {
+ const slideBackground = slideBackgrounds[h];
+ const pageBackground = window.getComputedStyle( slideBackground );
+
+ if( pageBackground && pageBackground.background ) {
+ page.style.background = pageBackground.background;
+ } else if( presentationBackground ) {
+ page.style.background = presentationBackground;
+ }
+ } else if( presentationBackground ) {
page.style.background = presentationBackground;
}
diff --git a/js/utils/constants.js b/js/utils/constants.js
index efe0c5efcff..aab4ace474b 100644
--- a/js/utils/constants.js
+++ b/js/utils/constants.js
@@ -2,6 +2,7 @@
export const SLIDES_SELECTOR = '.slides section';
export const HORIZONTAL_SLIDES_SELECTOR = '.slides>section';
export const VERTICAL_SLIDES_SELECTOR = '.slides>section.present>section';
+export const SLIDES_BACKGROUNDS_SELECTOR = '.backgrounds>.slide-background';
// Methods that may not be invoked via the postMessage API
export const POST_MESSAGE_METHOD_BLACKLIST = /registerPlugin|registerKeyboardShortcut|addKeyBinding|addEventListener|showPreview/;
diff --git a/package-lock.json b/package-lock.json
index 59031474c76..1bd0b73e400 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "reveal.js",
- "version": "5.0.2",
+ "version": "5.0.4",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "reveal.js",
- "version": "5.0.2",
+ "version": "5.0.4",
"license": "MIT",
"devDependencies": {
"@babel/core": "^7.23.2",