File: /home/eslinced-103/brise-edu.or.kr/node_modules/@inertiajs/progress/dist/index.umd.js.map
{"version":3,"file":"index.umd.js","sources":["../node_modules/nprogress/nprogress.js","../src/progress.js"],"sourcesContent":["/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress\n * @license MIT */\n\n;(function(root, factory) {\n\n if (typeof define === 'function' && define.amd) {\n define(factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n } else {\n root.NProgress = factory();\n }\n\n})(this, function() {\n var NProgress = {};\n\n NProgress.version = '0.2.0';\n\n var Settings = NProgress.settings = {\n minimum: 0.08,\n easing: 'ease',\n positionUsing: '',\n speed: 200,\n trickle: true,\n trickleRate: 0.02,\n trickleSpeed: 800,\n showSpinner: true,\n barSelector: '[role=\"bar\"]',\n spinnerSelector: '[role=\"spinner\"]',\n parent: 'body',\n template: '<div class=\"bar\" role=\"bar\"><div class=\"peg\"></div></div><div class=\"spinner\" role=\"spinner\"><div class=\"spinner-icon\"></div></div>'\n };\n\n /**\n * Updates configuration.\n *\n * NProgress.configure({\n * minimum: 0.1\n * });\n */\n NProgress.configure = function(options) {\n var key, value;\n for (key in options) {\n value = options[key];\n if (value !== undefined && options.hasOwnProperty(key)) Settings[key] = value;\n }\n\n return this;\n };\n\n /**\n * Last number.\n */\n\n NProgress.status = null;\n\n /**\n * Sets the progress bar status, where `n` is a number from `0.0` to `1.0`.\n *\n * NProgress.set(0.4);\n * NProgress.set(1.0);\n */\n\n NProgress.set = function(n) {\n var started = NProgress.isStarted();\n\n n = clamp(n, Settings.minimum, 1);\n NProgress.status = (n === 1 ? null : n);\n\n var progress = NProgress.render(!started),\n bar = progress.querySelector(Settings.barSelector),\n speed = Settings.speed,\n ease = Settings.easing;\n\n progress.offsetWidth; /* Repaint */\n\n queue(function(next) {\n // Set positionUsing if it hasn't already been set\n if (Settings.positionUsing === '') Settings.positionUsing = NProgress.getPositioningCSS();\n\n // Add transition\n css(bar, barPositionCSS(n, speed, ease));\n\n if (n === 1) {\n // Fade out\n css(progress, { \n transition: 'none', \n opacity: 1 \n });\n progress.offsetWidth; /* Repaint */\n\n setTimeout(function() {\n css(progress, { \n transition: 'all ' + speed + 'ms linear', \n opacity: 0 \n });\n setTimeout(function() {\n NProgress.remove();\n next();\n }, speed);\n }, speed);\n } else {\n setTimeout(next, speed);\n }\n });\n\n return this;\n };\n\n NProgress.isStarted = function() {\n return typeof NProgress.status === 'number';\n };\n\n /**\n * Shows the progress bar.\n * This is the same as setting the status to 0%, except that it doesn't go backwards.\n *\n * NProgress.start();\n *\n */\n NProgress.start = function() {\n if (!NProgress.status) NProgress.set(0);\n\n var work = function() {\n setTimeout(function() {\n if (!NProgress.status) return;\n NProgress.trickle();\n work();\n }, Settings.trickleSpeed);\n };\n\n if (Settings.trickle) work();\n\n return this;\n };\n\n /**\n * Hides the progress bar.\n * This is the *sort of* the same as setting the status to 100%, with the\n * difference being `done()` makes some placebo effect of some realistic motion.\n *\n * NProgress.done();\n *\n * If `true` is passed, it will show the progress bar even if its hidden.\n *\n * NProgress.done(true);\n */\n\n NProgress.done = function(force) {\n if (!force && !NProgress.status) return this;\n\n return NProgress.inc(0.3 + 0.5 * Math.random()).set(1);\n };\n\n /**\n * Increments by a random amount.\n */\n\n NProgress.inc = function(amount) {\n var n = NProgress.status;\n\n if (!n) {\n return NProgress.start();\n } else {\n if (typeof amount !== 'number') {\n amount = (1 - n) * clamp(Math.random() * n, 0.1, 0.95);\n }\n\n n = clamp(n + amount, 0, 0.994);\n return NProgress.set(n);\n }\n };\n\n NProgress.trickle = function() {\n return NProgress.inc(Math.random() * Settings.trickleRate);\n };\n\n /**\n * Waits for all supplied jQuery promises and\n * increases the progress as the promises resolve.\n *\n * @param $promise jQUery Promise\n */\n (function() {\n var initial = 0, current = 0;\n\n NProgress.promise = function($promise) {\n if (!$promise || $promise.state() === \"resolved\") {\n return this;\n }\n\n if (current === 0) {\n NProgress.start();\n }\n\n initial++;\n current++;\n\n $promise.always(function() {\n current--;\n if (current === 0) {\n initial = 0;\n NProgress.done();\n } else {\n NProgress.set((initial - current) / initial);\n }\n });\n\n return this;\n };\n\n })();\n\n /**\n * (Internal) renders the progress bar markup based on the `template`\n * setting.\n */\n\n NProgress.render = function(fromStart) {\n if (NProgress.isRendered()) return document.getElementById('nprogress');\n\n addClass(document.documentElement, 'nprogress-busy');\n \n var progress = document.createElement('div');\n progress.id = 'nprogress';\n progress.innerHTML = Settings.template;\n\n var bar = progress.querySelector(Settings.barSelector),\n perc = fromStart ? '-100' : toBarPerc(NProgress.status || 0),\n parent = document.querySelector(Settings.parent),\n spinner;\n \n css(bar, {\n transition: 'all 0 linear',\n transform: 'translate3d(' + perc + '%,0,0)'\n });\n\n if (!Settings.showSpinner) {\n spinner = progress.querySelector(Settings.spinnerSelector);\n spinner && removeElement(spinner);\n }\n\n if (parent != document.body) {\n addClass(parent, 'nprogress-custom-parent');\n }\n\n parent.appendChild(progress);\n return progress;\n };\n\n /**\n * Removes the element. Opposite of render().\n */\n\n NProgress.remove = function() {\n removeClass(document.documentElement, 'nprogress-busy');\n removeClass(document.querySelector(Settings.parent), 'nprogress-custom-parent');\n var progress = document.getElementById('nprogress');\n progress && removeElement(progress);\n };\n\n /**\n * Checks if the progress bar is rendered.\n */\n\n NProgress.isRendered = function() {\n return !!document.getElementById('nprogress');\n };\n\n /**\n * Determine which positioning CSS rule to use.\n */\n\n NProgress.getPositioningCSS = function() {\n // Sniff on document.body.style\n var bodyStyle = document.body.style;\n\n // Sniff prefixes\n var vendorPrefix = ('WebkitTransform' in bodyStyle) ? 'Webkit' :\n ('MozTransform' in bodyStyle) ? 'Moz' :\n ('msTransform' in bodyStyle) ? 'ms' :\n ('OTransform' in bodyStyle) ? 'O' : '';\n\n if (vendorPrefix + 'Perspective' in bodyStyle) {\n // Modern browsers with 3D support, e.g. Webkit, IE10\n return 'translate3d';\n } else if (vendorPrefix + 'Transform' in bodyStyle) {\n // Browsers without 3D support, e.g. IE9\n return 'translate';\n } else {\n // Browsers without translate() support, e.g. IE7-8\n return 'margin';\n }\n };\n\n /**\n * Helpers\n */\n\n function clamp(n, min, max) {\n if (n < min) return min;\n if (n > max) return max;\n return n;\n }\n\n /**\n * (Internal) converts a percentage (`0..1`) to a bar translateX\n * percentage (`-100%..0%`).\n */\n\n function toBarPerc(n) {\n return (-1 + n) * 100;\n }\n\n\n /**\n * (Internal) returns the correct CSS for changing the bar's\n * position given an n percentage, and speed and ease from Settings\n */\n\n function barPositionCSS(n, speed, ease) {\n var barCSS;\n\n if (Settings.positionUsing === 'translate3d') {\n barCSS = { transform: 'translate3d('+toBarPerc(n)+'%,0,0)' };\n } else if (Settings.positionUsing === 'translate') {\n barCSS = { transform: 'translate('+toBarPerc(n)+'%,0)' };\n } else {\n barCSS = { 'margin-left': toBarPerc(n)+'%' };\n }\n\n barCSS.transition = 'all '+speed+'ms '+ease;\n\n return barCSS;\n }\n\n /**\n * (Internal) Queues a function to be executed.\n */\n\n var queue = (function() {\n var pending = [];\n \n function next() {\n var fn = pending.shift();\n if (fn) {\n fn(next);\n }\n }\n\n return function(fn) {\n pending.push(fn);\n if (pending.length == 1) next();\n };\n })();\n\n /**\n * (Internal) Applies css properties to an element, similar to the jQuery \n * css method.\n *\n * While this helper does assist with vendor prefixed property names, it \n * does not perform any manipulation of values prior to setting styles.\n */\n\n var css = (function() {\n var cssPrefixes = [ 'Webkit', 'O', 'Moz', 'ms' ],\n cssProps = {};\n\n function camelCase(string) {\n return string.replace(/^-ms-/, 'ms-').replace(/-([\\da-z])/gi, function(match, letter) {\n return letter.toUpperCase();\n });\n }\n\n function getVendorProp(name) {\n var style = document.body.style;\n if (name in style) return name;\n\n var i = cssPrefixes.length,\n capName = name.charAt(0).toUpperCase() + name.slice(1),\n vendorName;\n while (i--) {\n vendorName = cssPrefixes[i] + capName;\n if (vendorName in style) return vendorName;\n }\n\n return name;\n }\n\n function getStyleProp(name) {\n name = camelCase(name);\n return cssProps[name] || (cssProps[name] = getVendorProp(name));\n }\n\n function applyCss(element, prop, value) {\n prop = getStyleProp(prop);\n element.style[prop] = value;\n }\n\n return function(element, properties) {\n var args = arguments,\n prop, \n value;\n\n if (args.length == 2) {\n for (prop in properties) {\n value = properties[prop];\n if (value !== undefined && properties.hasOwnProperty(prop)) applyCss(element, prop, value);\n }\n } else {\n applyCss(element, args[1], args[2]);\n }\n }\n })();\n\n /**\n * (Internal) Determines if an element or space separated list of class names contains a class name.\n */\n\n function hasClass(element, name) {\n var list = typeof element == 'string' ? element : classList(element);\n return list.indexOf(' ' + name + ' ') >= 0;\n }\n\n /**\n * (Internal) Adds a class to an element.\n */\n\n function addClass(element, name) {\n var oldList = classList(element),\n newList = oldList + name;\n\n if (hasClass(oldList, name)) return; \n\n // Trim the opening space.\n element.className = newList.substring(1);\n }\n\n /**\n * (Internal) Removes a class from an element.\n */\n\n function removeClass(element, name) {\n var oldList = classList(element),\n newList;\n\n if (!hasClass(element, name)) return;\n\n // Replace the class name.\n newList = oldList.replace(' ' + name + ' ', ' ');\n\n // Trim the opening and closing spaces.\n element.className = newList.substring(1, newList.length - 1);\n }\n\n /**\n * (Internal) Gets a space separated list of the class names on the element. \n * The list is wrapped with a single space on each end to facilitate finding \n * matches within the list.\n */\n\n function classList(element) {\n return (' ' + (element.className || '') + ' ').replace(/\\s+/gi, ' ');\n }\n\n /**\n * (Internal) Removes an element from the DOM.\n */\n\n function removeElement(element) {\n element && element.parentNode && element.parentNode.removeChild(element);\n }\n\n return NProgress;\n});\n\n","import NProgress from 'nprogress'\n\nlet timeout = null\n\nfunction addEventListeners(delay) {\n document.addEventListener('inertia:start', start.bind(null, delay))\n document.addEventListener('inertia:progress', progress)\n document.addEventListener('inertia:finish', finish)\n}\n\nfunction start(delay) {\n timeout = setTimeout(() => NProgress.start(), delay)\n}\n\nfunction progress(event) {\n if (NProgress.isStarted() && event.detail.progress.percentage) {\n NProgress.set(Math.max(NProgress.status, event.detail.progress.percentage / 100 * 0.9))\n }\n}\n\nfunction finish(event) {\n clearTimeout(timeout)\n if (!NProgress.isStarted()) {\n return\n } else if (event.detail.visit.completed) {\n NProgress.done()\n } else if (event.detail.visit.interrupted) {\n NProgress.set(0)\n } else if (event.detail.visit.cancelled) {\n NProgress.done()\n NProgress.remove()\n }\n}\n\nfunction injectCSS(color) {\n const element = document.createElement('style')\n element.type = 'text/css'\n element.textContent = `\n #nprogress {\n pointer-events: none;\n }\n\n #nprogress .bar {\n background: ${color};\n\n position: fixed;\n z-index: 1031;\n top: 0;\n left: 0;\n\n width: 100%;\n height: 2px;\n }\n\n #nprogress .peg {\n display: block;\n position: absolute;\n right: 0px;\n width: 100px;\n height: 100%;\n box-shadow: 0 0 10px ${color}, 0 0 5px ${color};\n opacity: 1.0;\n\n -webkit-transform: rotate(3deg) translate(0px, -4px);\n -ms-transform: rotate(3deg) translate(0px, -4px);\n transform: rotate(3deg) translate(0px, -4px);\n }\n\n #nprogress .spinner {\n display: block;\n position: fixed;\n z-index: 1031;\n top: 15px;\n right: 15px;\n }\n\n #nprogress .spinner-icon {\n width: 18px;\n height: 18px;\n box-sizing: border-box;\n\n border: solid 2px transparent;\n border-top-color: ${color};\n border-left-color: ${color};\n border-radius: 50%;\n\n -webkit-animation: nprogress-spinner 400ms linear infinite;\n animation: nprogress-spinner 400ms linear infinite;\n }\n\n .nprogress-custom-parent {\n overflow: hidden;\n position: relative;\n }\n\n .nprogress-custom-parent #nprogress .spinner,\n .nprogress-custom-parent #nprogress .bar {\n position: absolute;\n }\n\n @-webkit-keyframes nprogress-spinner {\n 0% { -webkit-transform: rotate(0deg); }\n 100% { -webkit-transform: rotate(360deg); }\n }\n @keyframes nprogress-spinner {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n }\n `\n document.head.appendChild(element)\n}\n\nconst Progress = {\n init({ delay = 250, color = '#29d', includeCSS = true, showSpinner = false } = {}) {\n addEventListeners(delay)\n NProgress.configure({ showSpinner })\n if (includeCSS) {\n injectCSS(color)\n }\n },\n}\n\nexport default Progress\n"],"names":["module","initial","current","NProgress","version","Settings","settings","minimum","easing","positionUsing","speed","trickle","trickleRate","trickleSpeed","showSpinner","barSelector","spinnerSelector","parent","template","clamp","n","min","max","toBarPerc","configure","options","key","value","undefined","hasOwnProperty","this","status","set","started","isStarted","progress","render","bar","querySelector","ease","queue","next","getPositioningCSS","css","barCSS","transform","margin-left","transition","barPositionCSS","opacity","setTimeout","remove","start","work","done","force","inc","Math","random","amount","promise","$promise","state","always","fromStart","isRendered","document","getElementById","addClass","documentElement","createElement","id","innerHTML","spinner","perc","removeElement","body","appendChild","removeClass","bodyStyle","style","vendorPrefix","pending","fn","shift","push","length","cssPrefixes","cssProps","applyCss","element","prop","name","replace","match","letter","toUpperCase","vendorName","i","capName","charAt","slice","getVendorProp","properties","args","arguments","hasClass","classList","indexOf","oldList","newList","className","substring","parentNode","removeChild","factory","timeout","addEventListeners","delay","addEventListener","bind","finish","event","detail","percentage","clearTimeout","visit","completed","interrupted","cancelled","init","color","includeCSS","type","textContent","head","injectCSS"],"mappings":"+WAQIA,UAKK,WACP,IA0KMC,EAAaC,EA1KfC,EAAY,CAEhBC,QAAoB,SAEhBC,EAAWF,EAAUG,SAAW,CAClCC,QAAS,IACTC,OAAQ,OACRC,cAAe,GACfC,MAAO,IACPC,SAAS,EACTC,YAAa,IACbC,aAAc,IACdC,aAAa,EACbC,YAAa,eACbC,gBAAiB,mBACjBC,OAAQ,OACRC,SAAU,uIA6QZ,SAASC,EAAMC,EAAGC,EAAKC,GACrB,OAAIF,EAAIC,EAAYA,EAChBD,EAAIE,EAAYA,EACbF,EAQT,SAASG,EAAUH,GACjB,OAAkB,MAAT,EAAIA,GA/QfjB,EAAUqB,UAAY,SAASC,GAC7B,IAAIC,EAAKC,EACT,IAAKD,KAAOD,OAEIG,KADdD,EAAQF,EAAQC,KACWD,EAAQI,eAAeH,KAAMrB,EAASqB,GAAOC,GAG1E,OAAOG,MAOT3B,EAAU4B,OAAS,KASnB5B,EAAU6B,IAAM,SAASZ,GACvB,IAAIa,EAAU9B,EAAU+B,YAExBd,EAAID,EAAMC,EAAGf,EAASE,QAAS,GAC/BJ,EAAU4B,OAAgB,IAANX,EAAU,KAAOA,EAErC,IAAIe,EAAWhC,EAAUiC,QAAQH,GAC7BI,EAAWF,EAASG,cAAcjC,EAASU,aAC3CL,EAAWL,EAASK,MACpB6B,EAAWlC,EAASG,OAkCxB,OA9BAgC,EAAM,SAASC,GAEkB,KAA3BpC,EAASI,gBAAsBJ,EAASI,cAAgBN,EAAUuC,qBAGtEC,EAAIN,EA+OR,SAAwBjB,EAAGV,EAAO6B,GAChC,IAAIK,EAYJ,OATEA,EAD6B,gBAA3BvC,EAASI,cACF,CAAEoC,UAAW,eAAetB,EAAUH,GAAG,UACd,cAA3Bf,EAASI,cACT,CAAEoC,UAAW,aAAatB,EAAUH,GAAG,QAEvC,CAAE0B,cAAevB,EAAUH,GAAG,MAGlC2B,WAAa,OAAOrC,EAAM,MAAM6B,EAEhCK,EA5PII,CAAe5B,EAAGV,EAAO6B,IAExB,IAANnB,GAEFuB,EAAIR,EAAU,CACZY,WAAY,OACZE,QAAS,IAIXC,WAAW,WACTP,EAAIR,EAAU,CACZY,WAAY,OAASrC,EAAQ,YAC7BuC,QAAS,IAEXC,WAAW,WACT/C,EAAUgD,SACVV,KACC/B,IACFA,IAEHwC,WAAWT,EAAM/B,KAIdoB,MAGT3B,EAAU+B,UAAY,WACpB,MAAmC,iBAArB/B,EAAU4B,QAU1B5B,EAAUiD,MAAQ,WACXjD,EAAU4B,QAAQ5B,EAAU6B,IAAI,GAErC,IAAIqB,EAAO,WACTH,WAAW,WACJ/C,EAAU4B,SACf5B,EAAUQ,UACV0C,MACChD,EAASQ,eAKd,OAFIR,EAASM,SAAS0C,IAEfvB,MAeT3B,EAAUmD,KAAO,SAASC,GACxB,OAAKA,GAAUpD,EAAU4B,OAElB5B,EAAUqD,IAAI,GAAM,GAAMC,KAAKC,UAAU1B,IAAI,GAFZF,MAS1C3B,EAAUqD,IAAM,SAASG,GACvB,IAAIvC,EAAIjB,EAAU4B,OAElB,OAAKX,GAGmB,iBAAXuC,IACTA,GAAU,EAAIvC,GAAKD,EAAMsC,KAAKC,SAAWtC,EAAG,GAAK,MAGnDA,EAAID,EAAMC,EAAIuC,EAAQ,EAAG,MAClBxD,EAAU6B,IAAIZ,IAPdjB,EAAUiD,SAWrBjD,EAAUQ,QAAU,WAClB,OAAOR,EAAUqD,IAAIC,KAAKC,SAAWrD,EAASO,cAU1CX,EAAU,EAAGC,EAAU,EAE3BC,EAAUyD,QAAU,SAASC,GAC3B,OAAKA,GAAiC,aAArBA,EAASC,SAIV,IAAZ5D,GACFC,EAAUiD,QAGZnD,IACAC,IAEA2D,EAASE,OAAO,WAEE,KADhB7D,GAEID,EAAU,EACVE,EAAUmD,QAEVnD,EAAU6B,KAAK/B,EAAUC,GAAWD,KAInC6B,MApBEA,MA8Bb3B,EAAUiC,OAAS,SAAS4B,GAC1B,GAAI7D,EAAU8D,aAAc,OAAOC,SAASC,eAAe,aAE3DC,EAASF,SAASG,gBAAiB,kBAEnC,IAAIlC,EAAW+B,SAASI,cAAc,OACtCnC,EAASoC,GAAK,YACdpC,EAASqC,UAAYnE,EAASa,SAE9B,IAGIuD,EAHApC,EAAWF,EAASG,cAAcjC,EAASU,aAC3C2D,EAAWV,EAAY,OAASzC,EAAUpB,EAAU4B,QAAU,GAC9Dd,EAAWiD,SAAS5B,cAAcjC,EAASY,QAkB/C,OAfA0B,EAAIN,EAAK,CACPU,WAAY,eACZF,UAAW,eAAiB6B,EAAO,WAGhCrE,EAASS,cACZ2D,EAAUtC,EAASG,cAAcjC,EAASW,mBAC/B2D,EAAcF,GAGvBxD,GAAUiD,SAASU,MACrBR,EAASnD,EAAQ,2BAGnBA,EAAO4D,YAAY1C,GACZA,GAOThC,EAAUgD,OAAS,WACjB2B,EAAYZ,SAASG,gBAAiB,kBACtCS,EAAYZ,SAAS5B,cAAcjC,EAASY,QAAS,2BACrD,IAAIkB,EAAW+B,SAASC,eAAe,aACvChC,GAAYwC,EAAcxC,IAO5BhC,EAAU8D,WAAa,WACrB,QAASC,SAASC,eAAe,cAOnChE,EAAUuC,kBAAoB,WAE5B,IAAIqC,EAAYb,SAASU,KAAKI,MAG1BC,EAAgB,oBAAqBF,EAAa,SAClC,iBAAkBA,EAAa,MAC/B,gBAAiBA,EAAa,KAC9B,eAAgBA,EAAa,IAAM,GAEvD,OAAIE,EAAe,gBAAiBF,EAE3B,cACEE,EAAe,cAAeF,EAEhC,YAGA,UAiDX,IAAIvC,EAAQ,WACV,IAAI0C,EAAU,GAEd,SAASzC,IACP,IAAI0C,EAAKD,EAAQE,QACbD,GACFA,EAAG1C,GAIP,OAAO,SAAS0C,GACdD,EAAQG,KAAKF,GACS,GAAlBD,EAAQI,QAAa7C,KAZjB,GAwBRE,EAAM,WACR,IAAI4C,EAAc,CAAE,SAAU,IAAK,MAAO,MACtCC,EAAc,GA4BlB,SAASC,EAASC,EAASC,EAAMhE,GALjC,IAAsBiE,EACpBA,GADoBA,EAMAD,GA1BNE,QAAQ,QAAS,OAAOA,QAAQ,eAAgB,SAASC,EAAOC,GAC5E,OAAOA,EAAOC,gBAyBhBL,EAJOH,EAASI,KAAUJ,EAASI,GAjBrC,SAAuBA,GACrB,IAAIZ,EAAQd,SAASU,KAAKI,MAC1B,GAAIY,KAAQZ,EAAO,OAAOY,EAK1B,IAHA,IAEIK,EAFAC,EAAIX,EAAYD,OAChBa,EAAUP,EAAKQ,OAAO,GAAGJ,cAAgBJ,EAAKS,MAAM,GAEjDH,KAEL,IADAD,EAAaV,EAAYW,GAAKC,KACZnB,EAAO,OAAOiB,EAGlC,OAAOL,EAKoCU,CAAcV,IAKzDF,EAAQV,MAAMW,GAAQhE,EAGxB,OAAO,SAAS+D,EAASa,GACvB,IACIZ,EACAhE,EAFA6E,EAAOC,UAIX,GAAmB,GAAfD,EAAKlB,OACP,IAAKK,KAAQY,OAEG3E,KADdD,EAAQ4E,EAAWZ,KACQY,EAAW1E,eAAe8D,IAAOF,EAASC,EAASC,EAAMhE,QAGtF8D,EAASC,EAASc,EAAK,GAAIA,EAAK,KA9C5B,GAuDV,SAASE,EAAShB,EAASE,GAEzB,OAD6B,iBAAXF,EAAsBA,EAAUiB,EAAUjB,IAChDkB,QAAQ,IAAMhB,EAAO,MAAQ,EAO3C,SAASxB,EAASsB,EAASE,GACzB,IAAIiB,EAAUF,EAAUjB,GACpBoB,EAAUD,EAAUjB,EAEpBc,EAASG,EAASjB,KAGtBF,EAAQqB,UAAYD,EAAQE,UAAU,IAOxC,SAASlC,EAAYY,EAASE,GAC5B,IACIkB,EADAD,EAAUF,EAAUjB,GAGnBgB,EAAShB,EAASE,KAGvBkB,EAAUD,EAAQhB,QAAQ,IAAMD,EAAO,IAAK,KAG5CF,EAAQqB,UAAYD,EAAQE,UAAU,EAAGF,EAAQxB,OAAS,IAS5D,SAASqB,EAAUjB,GACjB,OAAQ,KAAOA,EAAQqB,WAAa,IAAM,KAAKlB,QAAQ,QAAS,KAOlE,SAASlB,EAAce,GACrBA,GAAWA,EAAQuB,YAAcvB,EAAQuB,WAAWC,YAAYxB,GAGlE,OAAOvF,EAjdYgH,oLCNjBC,EAAU,KAEd,SAASC,EAAkBC,GACzBpD,SAASqD,iBAAiB,gBAAiBnE,EAAMoE,KAAK,KAAMF,IAC5DpD,SAASqD,iBAAiB,mBAAoBpF,GAC9C+B,SAASqD,iBAAiB,iBAAkBE,GAG9C,SAASrE,EAAMkE,GACbF,EAAUlE,WAAW,kBAAM/C,EAAUiD,SAASkE,GAGhD,SAASnF,EAASuF,GACZvH,EAAU+B,aAAewF,EAAMC,OAAOxF,SAASyF,YACjDzH,EAAU6B,IAAIyB,KAAKnC,IAAInB,EAAU4B,OAAQ2F,EAAMC,OAAOxF,SAASyF,WAAa,IAAM,KAItF,SAASH,EAAOC,GACdG,aAAaT,GACRjH,EAAU+B,cAEJwF,EAAMC,OAAOG,MAAMC,UAC5B5H,EAAUmD,OACDoE,EAAMC,OAAOG,MAAME,YAC5B7H,EAAU6B,IAAI,GACL0F,EAAMC,OAAOG,MAAMG,YAC5B9H,EAAUmD,OACVnD,EAAUgD,6BAkFG,CACf+E,kCAA+E,SAAxEZ,UAAaa,MAAAA,aAAQ,aAAQC,WAAAA,oBAAmBtH,YAAAA,gBACrDuG,aADa,OAEblH,EAAUqB,UAAU,CAAEV,YAAAA,IAClBsH,GAlFR,SAAmBD,GACjB,IAAMzC,EAAUxB,SAASI,cAAc,SACvCoB,EAAQ2C,KAAO,WACf3C,EAAQ4C,kHAMUH,2SAiBSA,eAAkBA,shBAsBrBA,iCACCA,grBA0BzBjE,SAASqE,KAAK1D,YAAYa,GAQtB8C,CAAUL"}