{ "version": 3, "sources": ["../../../node_modules/@rails/actioncable/src/adapters.js", "../../../node_modules/@rails/actioncable/src/logger.js", "../../../node_modules/@rails/actioncable/src/connection_monitor.js", "../../../node_modules/@rails/actioncable/src/internal.js", "../../../node_modules/@rails/actioncable/src/connection.js", "../../../node_modules/@rails/actioncable/src/subscription.js", "../../../node_modules/@rails/actioncable/src/subscription_guarantor.js", "../../../node_modules/@rails/actioncable/src/subscriptions.js", "../../../node_modules/@rails/actioncable/src/consumer.js", "../../../node_modules/@rails/actioncable/src/index.js", "../../../node_modules/jquery/dist/jquery.min.js", "../../javascript/chart.min.js", "../../../node_modules/jquery/dist/jquery.js", "../../../node_modules/select2/dist/js/select2.js", "../../javascript/bootstrap.bundle.js", "../../../node_modules/trix/dist/trix.esm.min.js", "../../../node_modules/@rails/actiontext/app/assets/javascripts/actiontext.esm.js", "../../../node_modules/@hotwired/turbo/dist/turbo.es2017-esm.js", "../../../node_modules/@hotwired/turbo-rails/app/javascript/turbo/cable.js", "../../../node_modules/@hotwired/turbo-rails/app/javascript/turbo/snakeize.js", "../../../node_modules/@hotwired/turbo-rails/app/javascript/turbo/cable_stream_source_element.js", "../../../node_modules/@hotwired/turbo-rails/app/javascript/turbo/fetch_requests.js", "../../../node_modules/@hotwired/turbo-rails/app/javascript/turbo/index.js", "../../../node_modules/@hotwired/stimulus/dist/stimulus.js", "../../javascript/controllers/application.js", "../../javascript/controllers/auto_hide_controller.js", "../../javascript/controllers/basket_controller.js", "../../javascript/controllers/countdown_controller.js", "../../javascript/controllers/countdown_tile_controller.js", "../../javascript/controllers/coupon_codes_form_controller.js", "../../javascript/controllers/direcktdruck_controller.js", "../../javascript/controllers/field_copy_controller.js", "../../javascript/controllers/focus_controller.js", "../../javascript/controllers/hello_controller.js", "../../javascript/controllers/image_modal_controller.js", "../../javascript/controllers/kleinunternehmer_modal_controller.js", "../../javascript/controllers/motiv_collection_controller.js", "../../javascript/controllers/motiv_own_price_controller.js", "../../javascript/controllers/motiv_position_copy_controller.js", "../../javascript/controllers/motiv_show_controller.js", "../../javascript/controllers/password_controller.js", "../../javascript/controllers/predefined_position_controller.js", "../../javascript/controllers/search_auto_controller.js", "../../javascript/controllers/select_full_with_controller.js", "../../javascript/controllers/stats_data_controller.js", "../../javascript/controllers/stock_item_amount_manual_controller.js", "../../javascript/controllers/storno_price_update_controller.js", "../../javascript/controllers/tile_type_controller.js", "../../javascript/controllers/index.js", "../../javascript/application.js", "../../../node_modules/@rails/ujs/app/assets/javascripts/rails-ujs.esm.js"], "sourcesContent": ["export default {\n logger: typeof console !== \"undefined\" ? console : undefined,\n WebSocket: typeof WebSocket !== \"undefined\" ? WebSocket : undefined,\n}\n", "import adapters from \"./adapters\"\n\n// The logger is disabled by default. You can enable it with:\n//\n// ActionCable.logger.enabled = true\n//\n// Example:\n//\n// import * as ActionCable from '@rails/actioncable'\n//\n// ActionCable.logger.enabled = true\n// ActionCable.logger.log('Connection Established.')\n//\n\nexport default {\n log(...messages) {\n if (this.enabled) {\n messages.push(Date.now())\n adapters.logger.log(\"[ActionCable]\", ...messages)\n }\n },\n}\n", "import logger from \"./logger\"\n\n// Responsible for ensuring the cable connection is in good health by validating the heartbeat pings sent from the server, and attempting\n// revival reconnections if things go astray. Internal class, not intended for direct user manipulation.\n\nconst now = () => new Date().getTime()\n\nconst secondsSince = time => (now() - time) / 1000\n\nclass ConnectionMonitor {\n constructor(connection) {\n this.visibilityDidChange = this.visibilityDidChange.bind(this)\n this.connection = connection\n this.reconnectAttempts = 0\n }\n\n start() {\n if (!this.isRunning()) {\n this.startedAt = now()\n delete this.stoppedAt\n this.startPolling()\n addEventListener(\"visibilitychange\", this.visibilityDidChange)\n logger.log(`ConnectionMonitor started. stale threshold = ${this.constructor.staleThreshold} s`)\n }\n }\n\n stop() {\n if (this.isRunning()) {\n this.stoppedAt = now()\n this.stopPolling()\n removeEventListener(\"visibilitychange\", this.visibilityDidChange)\n logger.log(\"ConnectionMonitor stopped\")\n }\n }\n\n isRunning() {\n return this.startedAt && !this.stoppedAt\n }\n\n recordMessage() {\n this.pingedAt = now()\n }\n\n recordConnect() {\n this.reconnectAttempts = 0\n delete this.disconnectedAt\n logger.log(\"ConnectionMonitor recorded connect\")\n }\n\n recordDisconnect() {\n this.disconnectedAt = now()\n logger.log(\"ConnectionMonitor recorded disconnect\")\n }\n\n // Private\n\n startPolling() {\n this.stopPolling()\n this.poll()\n }\n\n stopPolling() {\n clearTimeout(this.pollTimeout)\n }\n\n poll() {\n this.pollTimeout = setTimeout(() => {\n this.reconnectIfStale()\n this.poll()\n }\n , this.getPollInterval())\n }\n\n getPollInterval() {\n const { staleThreshold, reconnectionBackoffRate } = this.constructor\n const backoff = Math.pow(1 + reconnectionBackoffRate, Math.min(this.reconnectAttempts, 10))\n const jitterMax = this.reconnectAttempts === 0 ? 1.0 : reconnectionBackoffRate\n const jitter = jitterMax * Math.random()\n return staleThreshold * 1000 * backoff * (1 + jitter)\n }\n\n reconnectIfStale() {\n if (this.connectionIsStale()) {\n logger.log(`ConnectionMonitor detected stale connection. reconnectAttempts = ${this.reconnectAttempts}, time stale = ${secondsSince(this.refreshedAt)} s, stale threshold = ${this.constructor.staleThreshold} s`)\n this.reconnectAttempts++\n if (this.disconnectedRecently()) {\n logger.log(`ConnectionMonitor skipping reopening recent disconnect. time disconnected = ${secondsSince(this.disconnectedAt)} s`)\n } else {\n logger.log(\"ConnectionMonitor reopening\")\n this.connection.reopen()\n }\n }\n }\n\n get refreshedAt() {\n return this.pingedAt ? this.pingedAt : this.startedAt\n }\n\n connectionIsStale() {\n return secondsSince(this.refreshedAt) > this.constructor.staleThreshold\n }\n\n disconnectedRecently() {\n return this.disconnectedAt && (secondsSince(this.disconnectedAt) < this.constructor.staleThreshold)\n }\n\n visibilityDidChange() {\n if (document.visibilityState === \"visible\") {\n setTimeout(() => {\n if (this.connectionIsStale() || !this.connection.isOpen()) {\n logger.log(`ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = ${document.visibilityState}`)\n this.connection.reopen()\n }\n }\n , 200)\n }\n }\n\n}\n\nConnectionMonitor.staleThreshold = 6 // Server::Connections::BEAT_INTERVAL * 2 (missed two pings)\nConnectionMonitor.reconnectionBackoffRate = 0.15\n\nexport default ConnectionMonitor\n", "export default {\n \"message_types\": {\n \"welcome\": \"welcome\",\n \"disconnect\": \"disconnect\",\n \"ping\": \"ping\",\n \"confirmation\": \"confirm_subscription\",\n \"rejection\": \"reject_subscription\"\n },\n \"disconnect_reasons\": {\n \"unauthorized\": \"unauthorized\",\n \"invalid_request\": \"invalid_request\",\n \"server_restart\": \"server_restart\",\n \"remote\": \"remote\"\n },\n \"default_mount_path\": \"/cable\",\n \"protocols\": [\n \"actioncable-v1-json\",\n \"actioncable-unsupported\"\n ]\n}\n", "import adapters from \"./adapters\"\nimport ConnectionMonitor from \"./connection_monitor\"\nimport INTERNAL from \"./internal\"\nimport logger from \"./logger\"\n\n// Encapsulate the cable connection held by the consumer. This is an internal class not intended for direct user manipulation.\n\nconst {message_types, protocols} = INTERNAL\nconst supportedProtocols = protocols.slice(0, protocols.length - 1)\n\nconst indexOf = [].indexOf\n\nclass Connection {\n constructor(consumer) {\n this.open = this.open.bind(this)\n this.consumer = consumer\n this.subscriptions = this.consumer.subscriptions\n this.monitor = new ConnectionMonitor(this)\n this.disconnected = true\n }\n\n send(data) {\n if (this.isOpen()) {\n this.webSocket.send(JSON.stringify(data))\n return true\n } else {\n return false\n }\n }\n\n open() {\n if (this.isActive()) {\n logger.log(`Attempted to open WebSocket, but existing socket is ${this.getState()}`)\n return false\n } else {\n const socketProtocols = [...protocols, ...this.consumer.subprotocols || []]\n logger.log(`Opening WebSocket, current state is ${this.getState()}, subprotocols: ${socketProtocols}`)\n if (this.webSocket) { this.uninstallEventHandlers() }\n this.webSocket = new adapters.WebSocket(this.consumer.url, socketProtocols)\n this.installEventHandlers()\n this.monitor.start()\n return true\n }\n }\n\n close({allowReconnect} = {allowReconnect: true}) {\n if (!allowReconnect) { this.monitor.stop() }\n // Avoid closing websockets in a \"connecting\" state due to Safari 15.1+ bug. See: https://github.com/rails/rails/issues/43835#issuecomment-1002288478\n if (this.isOpen()) {\n return this.webSocket.close()\n }\n }\n\n reopen() {\n logger.log(`Reopening WebSocket, current state is ${this.getState()}`)\n if (this.isActive()) {\n try {\n return this.close()\n } catch (error) {\n logger.log(\"Failed to reopen WebSocket\", error)\n }\n finally {\n logger.log(`Reopening WebSocket in ${this.constructor.reopenDelay}ms`)\n setTimeout(this.open, this.constructor.reopenDelay)\n }\n } else {\n return this.open()\n }\n }\n\n getProtocol() {\n if (this.webSocket) {\n return this.webSocket.protocol\n }\n }\n\n isOpen() {\n return this.isState(\"open\")\n }\n\n isActive() {\n return this.isState(\"open\", \"connecting\")\n }\n\n triedToReconnect() {\n return this.monitor.reconnectAttempts > 0\n }\n\n // Private\n\n isProtocolSupported() {\n return indexOf.call(supportedProtocols, this.getProtocol()) >= 0\n }\n\n isState(...states) {\n return indexOf.call(states, this.getState()) >= 0\n }\n\n getState() {\n if (this.webSocket) {\n for (let state in adapters.WebSocket) {\n if (adapters.WebSocket[state] === this.webSocket.readyState) {\n return state.toLowerCase()\n }\n }\n }\n return null\n }\n\n installEventHandlers() {\n for (let eventName in this.events) {\n const handler = this.events[eventName].bind(this)\n this.webSocket[`on${eventName}`] = handler\n }\n }\n\n uninstallEventHandlers() {\n for (let eventName in this.events) {\n this.webSocket[`on${eventName}`] = function() {}\n }\n }\n\n}\n\nConnection.reopenDelay = 500\n\nConnection.prototype.events = {\n message(event) {\n if (!this.isProtocolSupported()) { return }\n const {identifier, message, reason, reconnect, type} = JSON.parse(event.data)\n this.monitor.recordMessage()\n switch (type) {\n case message_types.welcome:\n if (this.triedToReconnect()) {\n this.reconnectAttempted = true\n }\n this.monitor.recordConnect()\n return this.subscriptions.reload()\n case message_types.disconnect:\n logger.log(`Disconnecting. Reason: ${reason}`)\n return this.close({allowReconnect: reconnect})\n case message_types.ping:\n return null\n case message_types.confirmation:\n this.subscriptions.confirmSubscription(identifier)\n if (this.reconnectAttempted) {\n this.reconnectAttempted = false\n return this.subscriptions.notify(identifier, \"connected\", {reconnected: true})\n } else {\n return this.subscriptions.notify(identifier, \"connected\", {reconnected: false})\n }\n case message_types.rejection:\n return this.subscriptions.reject(identifier)\n default:\n return this.subscriptions.notify(identifier, \"received\", message)\n }\n },\n\n open() {\n logger.log(`WebSocket onopen event, using '${this.getProtocol()}' subprotocol`)\n this.disconnected = false\n if (!this.isProtocolSupported()) {\n logger.log(\"Protocol is unsupported. Stopping monitor and disconnecting.\")\n return this.close({allowReconnect: false})\n }\n },\n\n close(event) {\n logger.log(\"WebSocket onclose event\")\n if (this.disconnected) { return }\n this.disconnected = true\n this.monitor.recordDisconnect()\n return this.subscriptions.notifyAll(\"disconnected\", {willAttemptReconnect: this.monitor.isRunning()})\n },\n\n error() {\n logger.log(\"WebSocket onerror event\")\n }\n}\n\nexport default Connection\n", "// A new subscription is created through the ActionCable.Subscriptions instance available on the consumer.\n// It provides a number of callbacks and a method for calling remote procedure calls on the corresponding\n// Channel instance on the server side.\n//\n// An example demonstrates the basic functionality:\n//\n// App.appearance = App.cable.subscriptions.create(\"AppearanceChannel\", {\n// connected() {\n// // Called once the subscription has been successfully completed\n// },\n//\n// disconnected({ willAttemptReconnect: boolean }) {\n// // Called when the client has disconnected with the server.\n// // The object will have an `willAttemptReconnect` property which\n// // says whether the client has the intention of attempting\n// // to reconnect.\n// },\n//\n// appear() {\n// this.perform('appear', {appearing_on: this.appearingOn()})\n// },\n//\n// away() {\n// this.perform('away')\n// },\n//\n// appearingOn() {\n// $('main').data('appearing-on')\n// }\n// })\n//\n// The methods #appear and #away forward their intent to the remote AppearanceChannel instance on the server\n// by calling the `perform` method with the first parameter being the action (which maps to AppearanceChannel#appear/away).\n// The second parameter is a hash that'll get JSON encoded and made available on the server in the data parameter.\n//\n// This is how the server component would look:\n//\n// class AppearanceChannel < ApplicationActionCable::Channel\n// def subscribed\n// current_user.appear\n// end\n//\n// def unsubscribed\n// current_user.disappear\n// end\n//\n// def appear(data)\n// current_user.appear on: data['appearing_on']\n// end\n//\n// def away\n// current_user.away\n// end\n// end\n//\n// The \"AppearanceChannel\" name is automatically mapped between the client-side subscription creation and the server-side Ruby class name.\n// The AppearanceChannel#appear/away public methods are exposed automatically to client-side invocation through the perform method.\n\nconst extend = function(object, properties) {\n if (properties != null) {\n for (let key in properties) {\n const value = properties[key]\n object[key] = value\n }\n }\n return object\n}\n\nexport default class Subscription {\n constructor(consumer, params = {}, mixin) {\n this.consumer = consumer\n this.identifier = JSON.stringify(params)\n extend(this, mixin)\n }\n\n // Perform a channel action with the optional data passed as an attribute\n perform(action, data = {}) {\n data.action = action\n return this.send(data)\n }\n\n send(data) {\n return this.consumer.send({command: \"message\", identifier: this.identifier, data: JSON.stringify(data)})\n }\n\n unsubscribe() {\n return this.consumer.subscriptions.remove(this)\n }\n}\n", "import logger from \"./logger\"\n\n// Responsible for ensuring channel subscribe command is confirmed, retrying until confirmation is received.\n// Internal class, not intended for direct user manipulation.\n\nclass SubscriptionGuarantor {\n constructor(subscriptions) {\n this.subscriptions = subscriptions\n this.pendingSubscriptions = []\n }\n\n guarantee(subscription) {\n if(this.pendingSubscriptions.indexOf(subscription) == -1){ \n logger.log(`SubscriptionGuarantor guaranteeing ${subscription.identifier}`)\n this.pendingSubscriptions.push(subscription) \n }\n else {\n logger.log(`SubscriptionGuarantor already guaranteeing ${subscription.identifier}`)\n }\n this.startGuaranteeing()\n }\n\n forget(subscription) {\n logger.log(`SubscriptionGuarantor forgetting ${subscription.identifier}`)\n this.pendingSubscriptions = (this.pendingSubscriptions.filter((s) => s !== subscription))\n }\n\n startGuaranteeing() {\n this.stopGuaranteeing()\n this.retrySubscribing()\n }\n \n stopGuaranteeing() {\n clearTimeout(this.retryTimeout)\n }\n\n retrySubscribing() {\n this.retryTimeout = setTimeout(() => {\n if (this.subscriptions && typeof(this.subscriptions.subscribe) === \"function\") {\n this.pendingSubscriptions.map((subscription) => {\n logger.log(`SubscriptionGuarantor resubscribing ${subscription.identifier}`)\n this.subscriptions.subscribe(subscription)\n })\n }\n }\n , 500)\n }\n}\n\nexport default SubscriptionGuarantor", "import Subscription from \"./subscription\"\nimport SubscriptionGuarantor from \"./subscription_guarantor\"\nimport logger from \"./logger\"\n\n// Collection class for creating (and internally managing) channel subscriptions.\n// The only method intended to be triggered by the user is ActionCable.Subscriptions#create,\n// and it should be called through the consumer like so:\n//\n// App = {}\n// App.cable = ActionCable.createConsumer(\"ws://example.com/accounts/1\")\n// App.appearance = App.cable.subscriptions.create(\"AppearanceChannel\")\n//\n// For more details on how you'd configure an actual channel subscription, see ActionCable.Subscription.\n\nexport default class Subscriptions {\n constructor(consumer) {\n this.consumer = consumer\n this.guarantor = new SubscriptionGuarantor(this)\n this.subscriptions = []\n }\n\n create(channelName, mixin) {\n const channel = channelName\n const params = typeof channel === \"object\" ? channel : {channel}\n const subscription = new Subscription(this.consumer, params, mixin)\n return this.add(subscription)\n }\n\n // Private\n\n add(subscription) {\n this.subscriptions.push(subscription)\n this.consumer.ensureActiveConnection()\n this.notify(subscription, \"initialized\")\n this.subscribe(subscription)\n return subscription\n }\n\n remove(subscription) {\n this.forget(subscription)\n if (!this.findAll(subscription.identifier).length) {\n this.sendCommand(subscription, \"unsubscribe\")\n }\n return subscription\n }\n\n reject(identifier) {\n return this.findAll(identifier).map((subscription) => {\n this.forget(subscription)\n this.notify(subscription, \"rejected\")\n return subscription\n })\n }\n\n forget(subscription) {\n this.guarantor.forget(subscription)\n this.subscriptions = (this.subscriptions.filter((s) => s !== subscription))\n return subscription\n }\n\n findAll(identifier) {\n return this.subscriptions.filter((s) => s.identifier === identifier)\n }\n\n reload() {\n return this.subscriptions.map((subscription) =>\n this.subscribe(subscription))\n }\n\n notifyAll(callbackName, ...args) {\n return this.subscriptions.map((subscription) =>\n this.notify(subscription, callbackName, ...args))\n }\n\n notify(subscription, callbackName, ...args) {\n let subscriptions\n if (typeof subscription === \"string\") {\n subscriptions = this.findAll(subscription)\n } else {\n subscriptions = [subscription]\n }\n\n return subscriptions.map((subscription) =>\n (typeof subscription[callbackName] === \"function\" ? subscription[callbackName](...args) : undefined))\n }\n\n subscribe(subscription) {\n if (this.sendCommand(subscription, \"subscribe\")) {\n this.guarantor.guarantee(subscription)\n }\n }\n\n confirmSubscription(identifier) {\n logger.log(`Subscription confirmed ${identifier}`)\n this.findAll(identifier).map((subscription) =>\n this.guarantor.forget(subscription))\n }\n\n sendCommand(subscription, command) {\n const {identifier} = subscription\n return this.consumer.send({command, identifier})\n }\n}\n", "import Connection from \"./connection\"\nimport Subscriptions from \"./subscriptions\"\n\n// The ActionCable.Consumer establishes the connection to a server-side Ruby Connection object. Once established,\n// the ActionCable.ConnectionMonitor will ensure that its properly maintained through heartbeats and checking for stale updates.\n// The Consumer instance is also the gateway to establishing subscriptions to desired channels through the #createSubscription\n// method.\n//\n// The following example shows how this can be set up:\n//\n// App = {}\n// App.cable = ActionCable.createConsumer(\"ws://example.com/accounts/1\")\n// App.appearance = App.cable.subscriptions.create(\"AppearanceChannel\")\n//\n// For more details on how you'd configure an actual channel subscription, see ActionCable.Subscription.\n//\n// When a consumer is created, it automatically connects with the server.\n//\n// To disconnect from the server, call\n//\n// App.cable.disconnect()\n//\n// and to restart the connection:\n//\n// App.cable.connect()\n//\n// Any channel subscriptions which existed prior to disconnecting will\n// automatically resubscribe.\n\nexport default class Consumer {\n constructor(url) {\n this._url = url\n this.subscriptions = new Subscriptions(this)\n this.connection = new Connection(this)\n this.subprotocols = []\n }\n\n get url() {\n return createWebSocketURL(this._url)\n }\n\n send(data) {\n return this.connection.send(data)\n }\n\n connect() {\n return this.connection.open()\n }\n\n disconnect() {\n return this.connection.close({allowReconnect: false})\n }\n\n ensureActiveConnection() {\n if (!this.connection.isActive()) {\n return this.connection.open()\n }\n }\n\n addSubProtocol(subprotocol) {\n this.subprotocols = [...this.subprotocols, subprotocol]\n }\n}\n\nexport function createWebSocketURL(url) {\n if (typeof url === \"function\") {\n url = url()\n }\n\n if (url && !/^wss?:/i.test(url)) {\n const a = document.createElement(\"a\")\n a.href = url\n // Fix populating Location properties in IE. Otherwise, protocol will be blank.\n a.href = a.href\n a.protocol = a.protocol.replace(\"http\", \"ws\")\n return a.href\n } else {\n return url\n }\n}\n", "import Connection from \"./connection\"\nimport ConnectionMonitor from \"./connection_monitor\"\nimport Consumer, { createWebSocketURL } from \"./consumer\"\nimport INTERNAL from \"./internal\"\nimport Subscription from \"./subscription\"\nimport Subscriptions from \"./subscriptions\"\nimport SubscriptionGuarantor from \"./subscription_guarantor\"\nimport adapters from \"./adapters\"\nimport logger from \"./logger\"\n\nexport {\n Connection,\n ConnectionMonitor,\n Consumer,\n INTERNAL,\n Subscription,\n Subscriptions,\n SubscriptionGuarantor,\n adapters,\n createWebSocketURL,\n logger,\n}\n\nexport function createConsumer(url = getConfig(\"url\") || INTERNAL.default_mount_path) {\n return new Consumer(url)\n}\n\nexport function getConfig(name) {\n const element = document.head.querySelector(`meta[name='action-cable-${name}']`)\n if (element) {\n return element.getAttribute(\"content\")\n }\n}\n", "/*! jQuery v3.7.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */\n!function(e,t){\"use strict\";\"object\"==typeof module&&\"object\"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error(\"jQuery requires a window with a document\");return t(e)}:t(e)}(\"undefined\"!=typeof window?window:this,function(ie,e){\"use strict\";var oe=[],r=Object.getPrototypeOf,ae=oe.slice,g=oe.flat?function(e){return oe.flat.call(e)}:function(e){return oe.concat.apply([],e)},s=oe.push,se=oe.indexOf,n={},i=n.toString,ue=n.hasOwnProperty,o=ue.toString,a=o.call(Object),le={},v=function(e){return\"function\"==typeof e&&\"number\"!=typeof e.nodeType&&\"function\"!=typeof e.item},y=function(e){return null!=e&&e===e.window},C=ie.document,u={type:!0,src:!0,nonce:!0,noModule:!0};function m(e,t,n){var r,i,o=(n=n||C).createElement(\"script\");if(o.text=e,t)for(r in u)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+\"\":\"object\"==typeof e||\"function\"==typeof e?n[i.call(e)]||\"object\":typeof e}var t=\"3.7.1\",l=/HTML$/i,ce=function(e,t){return new ce.fn.init(e,t)};function c(e){var t=!!e&&\"length\"in e&&e.length,n=x(e);return!v(e)&&!y(e)&&(\"array\"===n||0===t||\"number\"==typeof t&&0<t&&t-1 in e)}function fe(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}ce.fn=ce.prototype={jquery:t,constructor:ce,length:0,toArray:function(){return ae.call(this)},get:function(e){return null==e?ae.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=ce.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return ce.each(this,e)},map:function(n){return this.pushStack(ce.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(ae.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(ce.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(ce.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:s,sort:oe.sort,splice:oe.splice},ce.extend=ce.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for(\"boolean\"==typeof a&&(l=a,a=arguments[s]||{},s++),\"object\"==typeof a||v(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],\"__proto__\"!==t&&a!==r&&(l&&r&&(ce.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||ce.isPlainObject(n)?n:{},i=!1,a[t]=ce.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},ce.extend({expando:\"jQuery\"+(t+Math.random()).replace(/\\D/g,\"\"),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||\"[object Object]\"!==i.call(e))&&(!(t=r(e))||\"function\"==typeof(n=ue.call(t,\"constructor\")&&t.constructor)&&o.call(n)===a)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){m(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(c(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},text:function(e){var t,n=\"\",r=0,i=e.nodeType;if(!i)while(t=e[r++])n+=ce.text(t);return 1===i||11===i?e.textContent:9===i?e.documentElement.textContent:3===i||4===i?e.nodeValue:n},makeArray:function(e,t){var n=t||[];return null!=e&&(c(Object(e))?ce.merge(n,\"string\"==typeof e?[e]:e):s.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:se.call(t,e,n)},isXMLDoc:function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!l.test(t||n&&n.nodeName||\"HTML\")},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(c(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:le}),\"function\"==typeof Symbol&&(ce.fn[Symbol.iterator]=oe[Symbol.iterator]),ce.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"),function(e,t){n[\"[object \"+t+\"]\"]=t.toLowerCase()});var pe=oe.pop,de=oe.sort,he=oe.splice,ge=\"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",ve=new RegExp(\"^\"+ge+\"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\"+ge+\"+$\",\"g\");ce.contains=function(e,t){var n=t&&t.parentNode;return e===n||!(!n||1!==n.nodeType||!(e.contains?e.contains(n):e.compareDocumentPosition&&16&e.compareDocumentPosition(n)))};var f=/([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g;function p(e,t){return t?\"\\0\"===e?\"\\ufffd\":e.slice(0,-1)+\"\\\\\"+e.charCodeAt(e.length-1).toString(16)+\" \":\"\\\\\"+e}ce.escapeSelector=function(e){return(e+\"\").replace(f,p)};var ye=C,me=s;!function(){var e,b,w,o,a,T,r,C,d,i,k=me,S=ce.expando,E=0,n=0,s=W(),c=W(),u=W(),h=W(),l=function(e,t){return e===t&&(a=!0),0},f=\"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",t=\"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\"+ge+\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",p=\"\\\\[\"+ge+\"*(\"+t+\")(?:\"+ge+\"*([*^$|!~]?=)\"+ge+\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\"+t+\"))|)\"+ge+\"*\\\\]\",g=\":(\"+t+\")(?:\\\\((('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\"+p+\")*)|.*)\\\\)|)\",v=new RegExp(ge+\"+\",\"g\"),y=new RegExp(\"^\"+ge+\"*,\"+ge+\"*\"),m=new RegExp(\"^\"+ge+\"*([>+~]|\"+ge+\")\"+ge+\"*\"),x=new RegExp(ge+\"|>\"),j=new RegExp(g),A=new RegExp(\"^\"+t+\"$\"),D={ID:new RegExp(\"^#(\"+t+\")\"),CLASS:new RegExp(\"^\\\\.(\"+t+\")\"),TAG:new RegExp(\"^(\"+t+\"|[*])\"),ATTR:new RegExp(\"^\"+p),PSEUDO:new RegExp(\"^\"+g),CHILD:new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\"+ge+\"*(even|odd|(([+-]|)(\\\\d*)n|)\"+ge+\"*(?:([+-]|)\"+ge+\"*(\\\\d+)|))\"+ge+\"*\\\\)|)\",\"i\"),bool:new RegExp(\"^(?:\"+f+\")$\",\"i\"),needsContext:new RegExp(\"^\"+ge+\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\"+ge+\"*((?:-\\\\d)?\\\\d*)\"+ge+\"*\\\\)|)(?=[^-]|$)\",\"i\")},N=/^(?:input|select|textarea|button)$/i,q=/^h\\d$/i,L=/^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,H=/[+~]/,O=new RegExp(\"\\\\\\\\[\\\\da-fA-F]{1,6}\"+ge+\"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\",\"g\"),P=function(e,t){var n=\"0x\"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},M=function(){V()},R=J(function(e){return!0===e.disabled&&fe(e,\"fieldset\")},{dir:\"parentNode\",next:\"legend\"});try{k.apply(oe=ae.call(ye.childNodes),ye.childNodes),oe[ye.childNodes.length].nodeType}catch(e){k={apply:function(e,t){me.apply(e,ae.call(t))},call:function(e){me.apply(e,ae.call(arguments,1))}}}function I(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],\"string\"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(V(e),e=e||T,C)){if(11!==p&&(u=L.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return k.call(n,a),n}else if(f&&(a=f.getElementById(i))&&I.contains(e,a)&&a.id===i)return k.call(n,a),n}else{if(u[2])return k.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&e.getElementsByClassName)return k.apply(n,e.getElementsByClassName(i)),n}if(!(h[t+\" \"]||d&&d.test(t))){if(c=t,f=e,1===p&&(x.test(t)||m.test(t))){(f=H.test(t)&&U(e.parentNode)||e)==e&&le.scope||((s=e.getAttribute(\"id\"))?s=ce.escapeSelector(s):e.setAttribute(\"id\",s=S)),o=(l=Y(t)).length;while(o--)l[o]=(s?\"#\"+s:\":scope\")+\" \"+Q(l[o]);c=l.join(\",\")}try{return k.apply(n,f.querySelectorAll(c)),n}catch(e){h(t,!0)}finally{s===S&&e.removeAttribute(\"id\")}}}return re(t.replace(ve,\"$1\"),e,n,r)}function W(){var r=[];return function e(t,n){return r.push(t+\" \")>b.cacheLength&&delete e[r.shift()],e[t+\" \"]=n}}function F(e){return e[S]=!0,e}function $(e){var t=T.createElement(\"fieldset\");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function B(t){return function(e){return fe(e,\"input\")&&e.type===t}}function _(t){return function(e){return(fe(e,\"input\")||fe(e,\"button\"))&&e.type===t}}function z(t){return function(e){return\"form\"in e?e.parentNode&&!1===e.disabled?\"label\"in e?\"label\"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&R(e)===t:e.disabled===t:\"label\"in e&&e.disabled===t}}function X(a){return F(function(o){return o=+o,F(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function U(e){return e&&\"undefined\"!=typeof e.getElementsByTagName&&e}function V(e){var t,n=e?e.ownerDocument||e:ye;return n!=T&&9===n.nodeType&&n.documentElement&&(r=(T=n).documentElement,C=!ce.isXMLDoc(T),i=r.matches||r.webkitMatchesSelector||r.msMatchesSelector,r.msMatchesSelector&&ye!=T&&(t=T.defaultView)&&t.top!==t&&t.addEventListener(\"unload\",M),le.getById=$(function(e){return r.appendChild(e).id=ce.expando,!T.getElementsByName||!T.getElementsByName(ce.expando).length}),le.disconnectedMatch=$(function(e){return i.call(e,\"*\")}),le.scope=$(function(){return T.querySelectorAll(\":scope\")}),le.cssHas=$(function(){try{return T.querySelector(\":has(*,:jqfake)\"),!1}catch(e){return!0}}),le.getById?(b.filter.ID=function(e){var t=e.replace(O,P);return function(e){return e.getAttribute(\"id\")===t}},b.find.ID=function(e,t){if(\"undefined\"!=typeof t.getElementById&&C){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(O,P);return function(e){var t=\"undefined\"!=typeof e.getAttributeNode&&e.getAttributeNode(\"id\");return t&&t.value===n}},b.find.ID=function(e,t){if(\"undefined\"!=typeof t.getElementById&&C){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode(\"id\"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode(\"id\"))&&n.value===e)return[o]}return[]}}),b.find.TAG=function(e,t){return\"undefined\"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},b.find.CLASS=function(e,t){if(\"undefined\"!=typeof t.getElementsByClassName&&C)return t.getElementsByClassName(e)},d=[],$(function(e){var t;r.appendChild(e).innerHTML=\"<a id='\"+S+\"' href='' disabled='disabled'></a><select id='\"+S+\"-\\r\\\\' disabled='disabled'><option selected=''></option></select>\",e.querySelectorAll(\"[selected]\").length||d.push(\"\\\\[\"+ge+\"*(?:value|\"+f+\")\"),e.querySelectorAll(\"[id~=\"+S+\"-]\").length||d.push(\"~=\"),e.querySelectorAll(\"a#\"+S+\"+*\").length||d.push(\".#.+[+~]\"),e.querySelectorAll(\":checked\").length||d.push(\":checked\"),(t=T.createElement(\"input\")).setAttribute(\"type\",\"hidden\"),e.appendChild(t).setAttribute(\"name\",\"D\"),r.appendChild(e).disabled=!0,2!==e.querySelectorAll(\":disabled\").length&&d.push(\":enabled\",\":disabled\"),(t=T.createElement(\"input\")).setAttribute(\"name\",\"\"),e.appendChild(t),e.querySelectorAll(\"[name='']\").length||d.push(\"\\\\[\"+ge+\"*name\"+ge+\"*=\"+ge+\"*(?:''|\\\"\\\")\")}),le.cssHas||d.push(\":has\"),d=d.length&&new RegExp(d.join(\"|\")),l=function(e,t){if(e===t)return a=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!le.sortDetached&&t.compareDocumentPosition(e)===n?e===T||e.ownerDocument==ye&&I.contains(ye,e)?-1:t===T||t.ownerDocument==ye&&I.contains(ye,t)?1:o?se.call(o,e)-se.call(o,t):0:4&n?-1:1)}),T}for(e in I.matches=function(e,t){return I(e,null,null,t)},I.matchesSelector=function(e,t){if(V(e),C&&!h[t+\" \"]&&(!d||!d.test(t)))try{var n=i.call(e,t);if(n||le.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){h(t,!0)}return 0<I(t,T,null,[e]).length},I.contains=function(e,t){return(e.ownerDocument||e)!=T&&V(e),ce.contains(e,t)},I.attr=function(e,t){(e.ownerDocument||e)!=T&&V(e);var n=b.attrHandle[t.toLowerCase()],r=n&&ue.call(b.attrHandle,t.toLowerCase())?n(e,t,!C):void 0;return void 0!==r?r:e.getAttribute(t)},I.error=function(e){throw new Error(\"Syntax error, unrecognized expression: \"+e)},ce.uniqueSort=function(e){var t,n=[],r=0,i=0;if(a=!le.sortStable,o=!le.sortStable&&ae.call(e,0),de.call(e,l),a){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)he.call(e,n[r],1)}return o=null,e},ce.fn.uniqueSort=function(){return this.pushStack(ce.uniqueSort(ae.apply(this)))},(b=ce.expr={cacheLength:50,createPseudo:F,match:D,attrHandle:{},find:{},relative:{\">\":{dir:\"parentNode\",first:!0},\" \":{dir:\"parentNode\"},\"+\":{dir:\"previousSibling\",first:!0},\"~\":{dir:\"previousSibling\"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(O,P),e[3]=(e[3]||e[4]||e[5]||\"\").replace(O,P),\"~=\"===e[2]&&(e[3]=\" \"+e[3]+\" \"),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),\"nth\"===e[1].slice(0,3)?(e[3]||I.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*(\"even\"===e[3]||\"odd\"===e[3])),e[5]=+(e[7]+e[8]||\"odd\"===e[3])):e[3]&&I.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return D.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||\"\":n&&j.test(n)&&(t=Y(n,!0))&&(t=n.indexOf(\")\",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(O,P).toLowerCase();return\"*\"===e?function(){return!0}:function(e){return fe(e,t)}},CLASS:function(e){var t=s[e+\" \"];return t||(t=new RegExp(\"(^|\"+ge+\")\"+e+\"(\"+ge+\"|$)\"))&&s(e,function(e){return t.test(\"string\"==typeof e.className&&e.className||\"undefined\"!=typeof e.getAttribute&&e.getAttribute(\"class\")||\"\")})},ATTR:function(n,r,i){return function(e){var t=I.attr(e,n);return null==t?\"!=\"===r:!r||(t+=\"\",\"=\"===r?t===i:\"!=\"===r?t!==i:\"^=\"===r?i&&0===t.indexOf(i):\"*=\"===r?i&&-1<t.indexOf(i):\"$=\"===r?i&&t.slice(-i.length)===i:\"~=\"===r?-1<(\" \"+t.replace(v,\" \")+\" \").indexOf(i):\"|=\"===r&&(t===i||t.slice(0,i.length+1)===i+\"-\"))}},CHILD:function(d,e,t,h,g){var v=\"nth\"!==d.slice(0,3),y=\"last\"!==d.slice(-4),m=\"of-type\"===e;return 1===h&&0===g?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u=v!==y?\"nextSibling\":\"previousSibling\",l=e.parentNode,c=m&&e.nodeName.toLowerCase(),f=!n&&!m,p=!1;if(l){if(v){while(u){o=e;while(o=o[u])if(m?fe(o,c):1===o.nodeType)return!1;s=u=\"only\"===d&&!s&&\"nextSibling\"}return!0}if(s=[y?l.firstChild:l.lastChild],y&&f){p=(a=(r=(i=l[S]||(l[S]={}))[d]||[])[0]===E&&r[1])&&r[2],o=a&&l.childNodes[a];while(o=++a&&o&&o[u]||(p=a=0)||s.pop())if(1===o.nodeType&&++p&&o===e){i[d]=[E,a,p];break}}else if(f&&(p=a=(r=(i=e[S]||(e[S]={}))[d]||[])[0]===E&&r[1]),!1===p)while(o=++a&&o&&o[u]||(p=a=0)||s.pop())if((m?fe(o,c):1===o.nodeType)&&++p&&(f&&((i=o[S]||(o[S]={}))[d]=[E,p]),o===e))break;return(p-=g)===h||p%h==0&&0<=p/h}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||I.error(\"unsupported pseudo: \"+e);return a[S]?a(o):1<a.length?(t=[e,e,\"\",o],b.setFilters.hasOwnProperty(e.toLowerCase())?F(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=se.call(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:F(function(e){var r=[],i=[],s=ne(e.replace(ve,\"$1\"));return s[S]?F(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:F(function(t){return function(e){return 0<I(t,e).length}}),contains:F(function(t){return t=t.replace(O,P),function(e){return-1<(e.textContent||ce.text(e)).indexOf(t)}}),lang:F(function(n){return A.test(n||\"\")||I.error(\"unsupported lang: \"+n),n=n.replace(O,P).toLowerCase(),function(e){var t;do{if(t=C?e.lang:e.getAttribute(\"xml:lang\")||e.getAttribute(\"lang\"))return(t=t.toLowerCase())===n||0===t.indexOf(n+\"-\")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=ie.location&&ie.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===r},focus:function(e){return e===function(){try{return T.activeElement}catch(e){}}()&&T.hasFocus()&&!!(e.type||e.href||~e.tabIndex)},enabled:z(!1),disabled:z(!0),checked:function(e){return fe(e,\"input\")&&!!e.checked||fe(e,\"option\")&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return q.test(e.nodeName)},input:function(e){return N.test(e.nodeName)},button:function(e){return fe(e,\"input\")&&\"button\"===e.type||fe(e,\"button\")},text:function(e){var t;return fe(e,\"input\")&&\"text\"===e.type&&(null==(t=e.getAttribute(\"type\"))||\"text\"===t.toLowerCase())},first:X(function(){return[0]}),last:X(function(e,t){return[t-1]}),eq:X(function(e,t,n){return[n<0?n+t:n]}),even:X(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:X(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:X(function(e,t,n){var r;for(r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:X(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=B(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=_(e);function G(){}function Y(e,t){var n,r,i,o,a,s,u,l=c[e+\" \"];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=y.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=m.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(ve,\" \")}),a=a.slice(n.length)),b.filter)!(r=D[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?I.error(e):c(e,s).slice(0)}function Q(e){for(var t=0,n=e.length,r=\"\";t<n;t++)r+=e[t].value;return r}function J(a,e,t){var s=e.dir,u=e.next,l=u||s,c=t&&\"parentNode\"===l,f=n++;return e.first?function(e,t,n){while(e=e[s])if(1===e.nodeType||c)return a(e,t,n);return!1}:function(e,t,n){var r,i,o=[E,f];if(n){while(e=e[s])if((1===e.nodeType||c)&&a(e,t,n))return!0}else while(e=e[s])if(1===e.nodeType||c)if(i=e[S]||(e[S]={}),u&&fe(e,u))e=e[s]||e;else{if((r=i[l])&&r[0]===E&&r[1]===f)return o[2]=r[2];if((i[l]=o)[2]=a(e,t,n))return!0}return!1}}function K(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Z(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function ee(d,h,g,v,y,e){return v&&!v[S]&&(v=ee(v)),y&&!y[S]&&(y=ee(y,e)),F(function(e,t,n,r){var i,o,a,s,u=[],l=[],c=t.length,f=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)I(e,t[r],n);return n}(h||\"*\",n.nodeType?[n]:n,[]),p=!d||!e&&h?f:Z(f,u,d,n,r);if(g?g(p,s=y||(e?d:c||v)?[]:t,n,r):s=p,v){i=Z(s,l),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(s[l[o]]=!(p[l[o]]=a))}if(e){if(y||d){if(y){i=[],o=s.length;while(o--)(a=s[o])&&i.push(p[o]=a);y(null,s=[],i,r)}o=s.length;while(o--)(a=s[o])&&-1<(i=y?se.call(e,a):u[o])&&(e[i]=!(t[i]=a))}}else s=Z(s===t?s.splice(c,s.length):s),y?y(null,t,s,r):k.apply(t,s)})}function te(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[\" \"],s=o?1:0,u=J(function(e){return e===i},a,!0),l=J(function(e){return-1<se.call(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!=w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[J(K(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[S]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return ee(1<s&&K(c),1<s&&Q(e.slice(0,s-1).concat({value:\" \"===e[s-2].type?\"*\":\"\"})).replace(ve,\"$1\"),t,s<n&&te(e.slice(s,n)),n<r&&te(e=e.slice(n)),n<r&&Q(e))}c.push(t)}return K(c)}function ne(e,t){var n,v,y,m,x,r,i=[],o=[],a=u[e+\" \"];if(!a){t||(t=Y(e)),n=t.length;while(n--)(a=te(t[n]))[S]?i.push(a):o.push(a);(a=u(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l=\"0\",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG(\"*\",i),h=E+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t==T||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument==T||(V(o),n=!C);while(s=v[a++])if(s(o,t||T,n)){k.call(r,o);break}i&&(E=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=pe.call(r));f=Z(f)}k.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&ce.uniqueSort(r)}return i&&(E=h,w=p),c},m?F(r):r))).selector=e}return a}function re(e,t,n,r){var i,o,a,s,u,l=\"function\"==typeof e&&e,c=!r&&Y(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&\"ID\"===(a=o[0]).type&&9===t.nodeType&&C&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(O,P),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=D.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(O,P),H.test(o[0].type)&&U(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&Q(o)))return k.apply(n,r),n;break}}}return(l||ne(e,c))(r,t,!C,n,!t||H.test(e)&&U(t.parentNode)||t),n}G.prototype=b.filters=b.pseudos,b.setFilters=new G,le.sortStable=S.split(\"\").sort(l).join(\"\")===S,V(),le.sortDetached=$(function(e){return 1&e.compareDocumentPosition(T.createElement(\"fieldset\"))}),ce.find=I,ce.expr[\":\"]=ce.expr.pseudos,ce.unique=ce.uniqueSort,I.compile=ne,I.select=re,I.setDocument=V,I.tokenize=Y,I.escape=ce.escapeSelector,I.getText=ce.text,I.isXML=ce.isXMLDoc,I.selectors=ce.expr,I.support=ce.support,I.uniqueSort=ce.uniqueSort}();var d=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&ce(e).is(n))break;r.push(e)}return r},h=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},b=ce.expr.match.needsContext,w=/^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i;function T(e,n,r){return v(n)?ce.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?ce.grep(e,function(e){return e===n!==r}):\"string\"!=typeof n?ce.grep(e,function(e){return-1<se.call(n,e)!==r}):ce.filter(n,e,r)}ce.filter=function(e,t,n){var r=t[0];return n&&(e=\":not(\"+e+\")\"),1===t.length&&1===r.nodeType?ce.find.matchesSelector(r,e)?[r]:[]:ce.find.matches(e,ce.grep(t,function(e){return 1===e.nodeType}))},ce.fn.extend({find:function(e){var t,n,r=this.length,i=this;if(\"string\"!=typeof e)return this.pushStack(ce(e).filter(function(){for(t=0;t<r;t++)if(ce.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)ce.find(e,i[t],n);return 1<r?ce.uniqueSort(n):n},filter:function(e){return this.pushStack(T(this,e||[],!1))},not:function(e){return this.pushStack(T(this,e||[],!0))},is:function(e){return!!T(this,\"string\"==typeof e&&b.test(e)?ce(e):e||[],!1).length}});var k,S=/^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/;(ce.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||k,\"string\"==typeof e){if(!(r=\"<\"===e[0]&&\">\"===e[e.length-1]&&3<=e.length?[null,e,null]:S.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof ce?t[0]:t,ce.merge(this,ce.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:C,!0)),w.test(r[1])&&ce.isPlainObject(t))for(r in t)v(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=C.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(ce):ce.makeArray(e,this)}).prototype=ce.fn,k=ce(C);var E=/^(?:parents|prev(?:Until|All))/,j={children:!0,contents:!0,next:!0,prev:!0};function A(e,t){while((e=e[t])&&1!==e.nodeType);return e}ce.fn.extend({has:function(e){var t=ce(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(ce.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a=\"string\"!=typeof e&&ce(e);if(!b.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&ce.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?ce.uniqueSort(o):o)},index:function(e){return e?\"string\"==typeof e?se.call(ce(e),this[0]):se.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(ce.uniqueSort(ce.merge(this.get(),ce(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),ce.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return d(e,\"parentNode\")},parentsUntil:function(e,t,n){return d(e,\"parentNode\",n)},next:function(e){return A(e,\"nextSibling\")},prev:function(e){return A(e,\"previousSibling\")},nextAll:function(e){return d(e,\"nextSibling\")},prevAll:function(e){return d(e,\"previousSibling\")},nextUntil:function(e,t,n){return d(e,\"nextSibling\",n)},prevUntil:function(e,t,n){return d(e,\"previousSibling\",n)},siblings:function(e){return h((e.parentNode||{}).firstChild,e)},children:function(e){return h(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(fe(e,\"template\")&&(e=e.content||e),ce.merge([],e.childNodes))}},function(r,i){ce.fn[r]=function(e,t){var n=ce.map(this,i,e);return\"Until\"!==r.slice(-5)&&(t=e),t&&\"string\"==typeof t&&(n=ce.filter(t,n)),1<this.length&&(j[r]||ce.uniqueSort(n),E.test(r)&&n.reverse()),this.pushStack(n)}});var D=/[^\\x20\\t\\r\\n\\f]+/g;function N(e){return e}function q(e){throw e}function L(e,t,n,r){var i;try{e&&v(i=e.promise)?i.call(e).done(t).fail(n):e&&v(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}ce.Callbacks=function(r){var e,n;r=\"string\"==typeof r?(e=r,n={},ce.each(e.match(D)||[],function(e,t){n[t]=!0}),n):ce.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:\"\")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){ce.each(e,function(e,t){v(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&\"string\"!==x(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return ce.each(arguments,function(e,t){var n;while(-1<(n=ce.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<ce.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t=\"\",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=\"\"),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},ce.extend({Deferred:function(e){var o=[[\"notify\",\"progress\",ce.Callbacks(\"memory\"),ce.Callbacks(\"memory\"),2],[\"resolve\",\"done\",ce.Callbacks(\"once memory\"),ce.Callbacks(\"once memory\"),0,\"resolved\"],[\"reject\",\"fail\",ce.Callbacks(\"once memory\"),ce.Callbacks(\"once memory\"),1,\"rejected\"]],i=\"pending\",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},\"catch\":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return ce.Deferred(function(r){ce.each(o,function(e,t){var n=v(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&v(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+\"With\"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError(\"Thenable self-resolution\");t=e&&(\"object\"==typeof e||\"function\"==typeof e)&&e.then,v(t)?s?t.call(e,l(u,o,N,s),l(u,o,q,s)):(u++,t.call(e,l(u,o,N,s),l(u,o,q,s),l(u,o,N,o.notifyWith))):(a!==N&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){ce.Deferred.exceptionHook&&ce.Deferred.exceptionHook(e,t.error),u<=i+1&&(a!==q&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(ce.Deferred.getErrorHook?t.error=ce.Deferred.getErrorHook():ce.Deferred.getStackHook&&(t.error=ce.Deferred.getStackHook()),ie.setTimeout(t))}}return ce.Deferred(function(e){o[0][3].add(l(0,e,v(r)?r:N,e.notifyWith)),o[1][3].add(l(0,e,v(t)?t:N)),o[2][3].add(l(0,e,v(n)?n:q))}).promise()},promise:function(e){return null!=e?ce.extend(e,a):a}},s={};return ce.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+\"With\"](this===s?void 0:this,arguments),this},s[t[0]+\"With\"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=ae.call(arguments),o=ce.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?ae.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(L(e,o.done(a(t)).resolve,o.reject,!n),\"pending\"===o.state()||v(i[t]&&i[t].then)))return o.then();while(t--)L(i[t],a(t),o.reject);return o.promise()}});var H=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;ce.Deferred.exceptionHook=function(e,t){ie.console&&ie.console.warn&&e&&H.test(e.name)&&ie.console.warn(\"jQuery.Deferred exception: \"+e.message,e.stack,t)},ce.readyException=function(e){ie.setTimeout(function(){throw e})};var O=ce.Deferred();function P(){C.removeEventListener(\"DOMContentLoaded\",P),ie.removeEventListener(\"load\",P),ce.ready()}ce.fn.ready=function(e){return O.then(e)[\"catch\"](function(e){ce.readyException(e)}),this},ce.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--ce.readyWait:ce.isReady)||(ce.isReady=!0)!==e&&0<--ce.readyWait||O.resolveWith(C,[ce])}}),ce.ready.then=O.then,\"complete\"===C.readyState||\"loading\"!==C.readyState&&!C.documentElement.doScroll?ie.setTimeout(ce.ready):(C.addEventListener(\"DOMContentLoaded\",P),ie.addEventListener(\"load\",P));var M=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if(\"object\"===x(n))for(s in i=!0,n)M(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,v(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(ce(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},R=/^-ms-/,I=/-([a-z])/g;function W(e,t){return t.toUpperCase()}function F(e){return e.replace(R,\"ms-\").replace(I,W)}var $=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function B(){this.expando=ce.expando+B.uid++}B.uid=1,B.prototype={cache:function(e){var t=e[this.expando];return t||(t={},$(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if(\"string\"==typeof t)i[F(t)]=n;else for(r in t)i[F(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][F(t)]},access:function(e,t,n){return void 0===t||t&&\"string\"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(F):(t=F(t))in r?[t]:t.match(D)||[]).length;while(n--)delete r[t[n]]}(void 0===t||ce.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!ce.isEmptyObject(t)}};var _=new B,z=new B,X=/^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,U=/[A-Z]/g;function V(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r=\"data-\"+t.replace(U,\"-$&\").toLowerCase(),\"string\"==typeof(n=e.getAttribute(r))){try{n=\"true\"===(i=n)||\"false\"!==i&&(\"null\"===i?null:i===+i+\"\"?+i:X.test(i)?JSON.parse(i):i)}catch(e){}z.set(e,t,n)}else n=void 0;return n}ce.extend({hasData:function(e){return z.hasData(e)||_.hasData(e)},data:function(e,t,n){return z.access(e,t,n)},removeData:function(e,t){z.remove(e,t)},_data:function(e,t,n){return _.access(e,t,n)},_removeData:function(e,t){_.remove(e,t)}}),ce.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=z.get(o),1===o.nodeType&&!_.get(o,\"hasDataAttrs\"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf(\"data-\")&&(r=F(r.slice(5)),V(o,r,i[r]));_.set(o,\"hasDataAttrs\",!0)}return i}return\"object\"==typeof n?this.each(function(){z.set(this,n)}):M(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=z.get(o,n))?t:void 0!==(t=V(o,n))?t:void 0;this.each(function(){z.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){z.remove(this,e)})}}),ce.extend({queue:function(e,t,n){var r;if(e)return t=(t||\"fx\")+\"queue\",r=_.get(e,t),n&&(!r||Array.isArray(n)?r=_.access(e,t,ce.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||\"fx\";var n=ce.queue(e,t),r=n.length,i=n.shift(),o=ce._queueHooks(e,t);\"inprogress\"===i&&(i=n.shift(),r--),i&&(\"fx\"===t&&n.unshift(\"inprogress\"),delete o.stop,i.call(e,function(){ce.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+\"queueHooks\";return _.get(e,n)||_.access(e,n,{empty:ce.Callbacks(\"once memory\").add(function(){_.remove(e,[t+\"queue\",n])})})}}),ce.fn.extend({queue:function(t,n){var e=2;return\"string\"!=typeof t&&(n=t,t=\"fx\",e--),arguments.length<e?ce.queue(this[0],t):void 0===n?this:this.each(function(){var e=ce.queue(this,t,n);ce._queueHooks(this,t),\"fx\"===t&&\"inprogress\"!==e[0]&&ce.dequeue(this,t)})},dequeue:function(e){return this.each(function(){ce.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||\"fx\",[])},promise:function(e,t){var n,r=1,i=ce.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};\"string\"!=typeof e&&(t=e,e=void 0),e=e||\"fx\";while(a--)(n=_.get(o[a],e+\"queueHooks\"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var G=/[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source,Y=new RegExp(\"^(?:([+-])=|)(\"+G+\")([a-z%]*)$\",\"i\"),Q=[\"Top\",\"Right\",\"Bottom\",\"Left\"],J=C.documentElement,K=function(e){return ce.contains(e.ownerDocument,e)},Z={composed:!0};J.getRootNode&&(K=function(e){return ce.contains(e.ownerDocument,e)||e.getRootNode(Z)===e.ownerDocument});var ee=function(e,t){return\"none\"===(e=t||e).style.display||\"\"===e.style.display&&K(e)&&\"none\"===ce.css(e,\"display\")};function te(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return ce.css(e,t,\"\")},u=s(),l=n&&n[3]||(ce.cssNumber[t]?\"\":\"px\"),c=e.nodeType&&(ce.cssNumber[t]||\"px\"!==l&&+u)&&Y.exec(ce.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)ce.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,ce.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ne={};function re(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?(\"none\"===n&&(l[c]=_.get(r,\"display\")||null,l[c]||(r.style.display=\"\")),\"\"===r.style.display&&ee(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ne[s])||(o=a.body.appendChild(a.createElement(s)),u=ce.css(o,\"display\"),o.parentNode.removeChild(o),\"none\"===u&&(u=\"block\"),ne[s]=u)))):\"none\"!==n&&(l[c]=\"none\",_.set(r,\"display\",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}ce.fn.extend({show:function(){return re(this,!0)},hide:function(){return re(this)},toggle:function(e){return\"boolean\"==typeof e?e?this.show():this.hide():this.each(function(){ee(this)?ce(this).show():ce(this).hide()})}});var xe,be,we=/^(?:checkbox|radio)$/i,Te=/<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i,Ce=/^$|^module$|\\/(?:java|ecma)script/i;xe=C.createDocumentFragment().appendChild(C.createElement(\"div\")),(be=C.createElement(\"input\")).setAttribute(\"type\",\"radio\"),be.setAttribute(\"checked\",\"checked\"),be.setAttribute(\"name\",\"t\"),xe.appendChild(be),le.checkClone=xe.cloneNode(!0).cloneNode(!0).lastChild.checked,xe.innerHTML=\"<textarea>x</textarea>\",le.noCloneChecked=!!xe.cloneNode(!0).lastChild.defaultValue,xe.innerHTML=\"<option></option>\",le.option=!!xe.lastChild;var ke={thead:[1,\"<table>\",\"</table>\"],col:[2,\"<table><colgroup>\",\"</colgroup></table>\"],tr:[2,\"<table><tbody>\",\"</tbody></table>\"],td:[3,\"<table><tbody><tr>\",\"</tr></tbody></table>\"],_default:[0,\"\",\"\"]};function Se(e,t){var n;return n=\"undefined\"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||\"*\"):\"undefined\"!=typeof e.querySelectorAll?e.querySelectorAll(t||\"*\"):[],void 0===t||t&&fe(e,t)?ce.merge([e],n):n}function Ee(e,t){for(var n=0,r=e.length;n<r;n++)_.set(e[n],\"globalEval\",!t||_.get(t[n],\"globalEval\"))}ke.tbody=ke.tfoot=ke.colgroup=ke.caption=ke.thead,ke.th=ke.td,le.option||(ke.optgroup=ke.option=[1,\"<select multiple='multiple'>\",\"</select>\"]);var je=/<|&#?\\w+;/;function Ae(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if(\"object\"===x(o))ce.merge(p,o.nodeType?[o]:o);else if(je.test(o)){a=a||f.appendChild(t.createElement(\"div\")),s=(Te.exec(o)||[\"\",\"\"])[1].toLowerCase(),u=ke[s]||ke._default,a.innerHTML=u[1]+ce.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;ce.merge(p,a.childNodes),(a=f.firstChild).textContent=\"\"}else p.push(t.createTextNode(o));f.textContent=\"\",d=0;while(o=p[d++])if(r&&-1<ce.inArray(o,r))i&&i.push(o);else if(l=K(o),a=Se(f.appendChild(o),\"script\"),l&&Ee(a),n){c=0;while(o=a[c++])Ce.test(o.type||\"\")&&n.push(o)}return f}var De=/^([^.]*)(?:\\.(.+)|)/;function Ne(){return!0}function qe(){return!1}function Le(e,t,n,r,i,o){var a,s;if(\"object\"==typeof t){for(s in\"string\"!=typeof n&&(r=r||n,n=void 0),t)Le(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&(\"string\"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=qe;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return ce().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=ce.guid++)),e.each(function(){ce.event.add(this,t,i,r,n)})}function He(e,r,t){t?(_.set(e,r,!1),ce.event.add(e,r,{namespace:!1,handler:function(e){var t,n=_.get(this,r);if(1&e.isTrigger&&this[r]){if(n)(ce.event.special[r]||{}).delegateType&&e.stopPropagation();else if(n=ae.call(arguments),_.set(this,r,n),this[r](),t=_.get(this,r),_.set(this,r,!1),n!==t)return e.stopImmediatePropagation(),e.preventDefault(),t}else n&&(_.set(this,r,ce.event.trigger(n[0],n.slice(1),this)),e.stopPropagation(),e.isImmediatePropagationStopped=Ne)}})):void 0===_.get(e,r)&&ce.event.add(e,r,Ne)}ce.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=_.get(t);if($(t)){n.handler&&(n=(o=n).handler,i=o.selector),i&&ce.find.matchesSelector(J,i),n.guid||(n.guid=ce.guid++),(u=v.events)||(u=v.events=Object.create(null)),(a=v.handle)||(a=v.handle=function(e){return\"undefined\"!=typeof ce&&ce.event.triggered!==e.type?ce.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||\"\").match(D)||[\"\"]).length;while(l--)d=g=(s=De.exec(e[l])||[])[1],h=(s[2]||\"\").split(\".\").sort(),d&&(f=ce.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=ce.event.special[d]||{},c=ce.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&ce.expr.match.needsContext.test(i),namespace:h.join(\".\")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),ce.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=_.hasData(e)&&_.get(e);if(v&&(u=v.events)){l=(t=(t||\"\").match(D)||[\"\"]).length;while(l--)if(d=g=(s=De.exec(t[l])||[])[1],h=(s[2]||\"\").split(\".\").sort(),d){f=ce.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp(\"(^|\\\\.)\"+h.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&(\"**\"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||ce.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)ce.event.remove(e,d+t[l],n,r,!0);ce.isEmptyObject(u)&&_.remove(e,\"handle events\")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=ce.event.fix(e),l=(_.get(this,\"events\")||Object.create(null))[u.type]||[],c=ce.event.special[u.type]||{};for(s[0]=u,t=1;t<arguments.length;t++)s[t]=arguments[t];if(u.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,u)){a=ce.event.handlers.call(this,u,l),t=0;while((i=a[t++])&&!u.isPropagationStopped()){u.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!u.isImmediatePropagationStopped())u.rnamespace&&!1!==o.namespace&&!u.rnamespace.test(o.namespace)||(u.handleObj=o,u.data=o.data,void 0!==(r=((ce.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(u.result=r)&&(u.preventDefault(),u.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,u),u.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!(\"click\"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&(\"click\"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+\" \"]&&(a[i]=r.needsContext?-1<ce(i,this).index(l):ce.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(ce.Event.prototype,t,{enumerable:!0,configurable:!0,get:v(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[ce.expando]?e:new ce.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return we.test(t.type)&&t.click&&fe(t,\"input\")&&He(t,\"click\",!0),!1},trigger:function(e){var t=this||e;return we.test(t.type)&&t.click&&fe(t,\"input\")&&He(t,\"click\"),!0},_default:function(e){var t=e.target;return we.test(t.type)&&t.click&&fe(t,\"input\")&&_.get(t,\"click\")||fe(t,\"a\")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},ce.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},ce.Event=function(e,t){if(!(this instanceof ce.Event))return new ce.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Ne:qe,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&ce.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[ce.expando]=!0},ce.Event.prototype={constructor:ce.Event,isDefaultPrevented:qe,isPropagationStopped:qe,isImmediatePropagationStopped:qe,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Ne,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Ne,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Ne,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},ce.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,\"char\":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:!0},ce.event.addProp),ce.each({focus:\"focusin\",blur:\"focusout\"},function(r,i){function o(e){if(C.documentMode){var t=_.get(this,\"handle\"),n=ce.event.fix(e);n.type=\"focusin\"===e.type?\"focus\":\"blur\",n.isSimulated=!0,t(e),n.target===n.currentTarget&&t(n)}else ce.event.simulate(i,e.target,ce.event.fix(e))}ce.event.special[r]={setup:function(){var e;if(He(this,r,!0),!C.documentMode)return!1;(e=_.get(this,i))||this.addEventListener(i,o),_.set(this,i,(e||0)+1)},trigger:function(){return He(this,r),!0},teardown:function(){var e;if(!C.documentMode)return!1;(e=_.get(this,i)-1)?_.set(this,i,e):(this.removeEventListener(i,o),_.remove(this,i))},_default:function(e){return _.get(e.target,r)},delegateType:i},ce.event.special[i]={setup:function(){var e=this.ownerDocument||this.document||this,t=C.documentMode?this:e,n=_.get(t,i);n||(C.documentMode?this.addEventListener(i,o):e.addEventListener(r,o,!0)),_.set(t,i,(n||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=C.documentMode?this:e,n=_.get(t,i)-1;n?_.set(t,i,n):(C.documentMode?this.removeEventListener(i,o):e.removeEventListener(r,o,!0),_.remove(t,i))}}}),ce.each({mouseenter:\"mouseover\",mouseleave:\"mouseout\",pointerenter:\"pointerover\",pointerleave:\"pointerout\"},function(e,i){ce.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||ce.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),ce.fn.extend({on:function(e,t,n,r){return Le(this,e,t,n,r)},one:function(e,t,n,r){return Le(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,ce(e.delegateTarget).off(r.namespace?r.origType+\".\"+r.namespace:r.origType,r.selector,r.handler),this;if(\"object\"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&\"function\"!=typeof t||(n=t,t=void 0),!1===n&&(n=qe),this.each(function(){ce.event.remove(this,e,n,t)})}});var Oe=/<script|<style|<link/i,Pe=/checked\\s*(?:[^=]|=\\s*.checked.)/i,Me=/^\\s*<!\\[CDATA\\[|\\]\\]>\\s*$/g;function Re(e,t){return fe(e,\"table\")&&fe(11!==t.nodeType?t:t.firstChild,\"tr\")&&ce(e).children(\"tbody\")[0]||e}function Ie(e){return e.type=(null!==e.getAttribute(\"type\"))+\"/\"+e.type,e}function We(e){return\"true/\"===(e.type||\"\").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute(\"type\"),e}function Fe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(_.hasData(e)&&(s=_.get(e).events))for(i in _.remove(t,\"handle events\"),s)for(n=0,r=s[i].length;n<r;n++)ce.event.add(t,i,s[i][n]);z.hasData(e)&&(o=z.access(e),a=ce.extend({},o),z.set(t,a))}}function $e(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=v(d);if(h||1<f&&\"string\"==typeof d&&!le.checkClone&&Pe.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),$e(t,r,i,o)});if(f&&(t=(e=Ae(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=ce.map(Se(e,\"script\"),Ie)).length;c<f;c++)u=e,c!==p&&(u=ce.clone(u,!0,!0),s&&ce.merge(a,Se(u,\"script\"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,ce.map(a,We),c=0;c<s;c++)u=a[c],Ce.test(u.type||\"\")&&!_.access(u,\"globalEval\")&&ce.contains(l,u)&&(u.src&&\"module\"!==(u.type||\"\").toLowerCase()?ce._evalUrl&&!u.noModule&&ce._evalUrl(u.src,{nonce:u.nonce||u.getAttribute(\"nonce\")},l):m(u.textContent.replace(Me,\"\"),u,l))}return n}function Be(e,t,n){for(var r,i=t?ce.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||ce.cleanData(Se(r)),r.parentNode&&(n&&K(r)&&Ee(Se(r,\"script\")),r.parentNode.removeChild(r));return e}ce.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=K(e);if(!(le.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||ce.isXMLDoc(e)))for(a=Se(c),r=0,i=(o=Se(e)).length;r<i;r++)s=o[r],u=a[r],void 0,\"input\"===(l=u.nodeName.toLowerCase())&&we.test(s.type)?u.checked=s.checked:\"input\"!==l&&\"textarea\"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||Se(e),a=a||Se(c),r=0,i=o.length;r<i;r++)Fe(o[r],a[r]);else Fe(e,c);return 0<(a=Se(c,\"script\")).length&&Ee(a,!f&&Se(e,\"script\")),c},cleanData:function(e){for(var t,n,r,i=ce.event.special,o=0;void 0!==(n=e[o]);o++)if($(n)){if(t=n[_.expando]){if(t.events)for(r in t.events)i[r]?ce.event.remove(n,r):ce.removeEvent(n,r,t.handle);n[_.expando]=void 0}n[z.expando]&&(n[z.expando]=void 0)}}}),ce.fn.extend({detach:function(e){return Be(this,e,!0)},remove:function(e){return Be(this,e)},text:function(e){return M(this,function(e){return void 0===e?ce.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return $e(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Re(this,e).appendChild(e)})},prepend:function(){return $e(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Re(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return $e(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return $e(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(ce.cleanData(Se(e,!1)),e.textContent=\"\");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return ce.clone(this,e,t)})},html:function(e){return M(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if(\"string\"==typeof e&&!Oe.test(e)&&!ke[(Te.exec(e)||[\"\",\"\"])[1].toLowerCase()]){e=ce.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(ce.cleanData(Se(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return $e(this,arguments,function(e){var t=this.parentNode;ce.inArray(this,n)<0&&(ce.cleanData(Se(this)),t&&t.replaceChild(e,this))},n)}}),ce.each({appendTo:\"append\",prependTo:\"prepend\",insertBefore:\"before\",insertAfter:\"after\",replaceAll:\"replaceWith\"},function(e,a){ce.fn[e]=function(e){for(var t,n=[],r=ce(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),ce(r[o])[a](t),s.apply(n,t.get());return this.pushStack(n)}});var _e=new RegExp(\"^(\"+G+\")(?!px)[a-z%]+$\",\"i\"),ze=/^--/,Xe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=ie),t.getComputedStyle(e)},Ue=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r},Ve=new RegExp(Q.join(\"|\"),\"i\");function Ge(e,t,n){var r,i,o,a,s=ze.test(t),u=e.style;return(n=n||Xe(e))&&(a=n.getPropertyValue(t)||n[t],s&&a&&(a=a.replace(ve,\"$1\")||void 0),\"\"!==a||K(e)||(a=ce.style(e,t)),!le.pixelBoxStyles()&&_e.test(a)&&Ve.test(t)&&(r=u.width,i=u.minWidth,o=u.maxWidth,u.minWidth=u.maxWidth=u.width=a,a=n.width,u.width=r,u.minWidth=i,u.maxWidth=o)),void 0!==a?a+\"\":a}function Ye(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(l){u.style.cssText=\"position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0\",l.style.cssText=\"position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%\",J.appendChild(u).appendChild(l);var e=ie.getComputedStyle(l);n=\"1%\"!==e.top,s=12===t(e.marginLeft),l.style.right=\"60%\",o=36===t(e.right),r=36===t(e.width),l.style.position=\"absolute\",i=12===t(l.offsetWidth/3),J.removeChild(u),l=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s,u=C.createElement(\"div\"),l=C.createElement(\"div\");l.style&&(l.style.backgroundClip=\"content-box\",l.cloneNode(!0).style.backgroundClip=\"\",le.clearCloneStyle=\"content-box\"===l.style.backgroundClip,ce.extend(le,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),s},scrollboxSize:function(){return e(),i},reliableTrDimensions:function(){var e,t,n,r;return null==a&&(e=C.createElement(\"table\"),t=C.createElement(\"tr\"),n=C.createElement(\"div\"),e.style.cssText=\"position:absolute;left:-11111px;border-collapse:separate\",t.style.cssText=\"box-sizing:content-box;border:1px solid\",t.style.height=\"1px\",n.style.height=\"9px\",n.style.display=\"block\",J.appendChild(e).appendChild(t).appendChild(n),r=ie.getComputedStyle(t),a=parseInt(r.height,10)+parseInt(r.borderTopWidth,10)+parseInt(r.borderBottomWidth,10)===t.offsetHeight,J.removeChild(e)),a}}))}();var Qe=[\"Webkit\",\"Moz\",\"ms\"],Je=C.createElement(\"div\").style,Ke={};function Ze(e){var t=ce.cssProps[e]||Ke[e];return t||(e in Je?e:Ke[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Qe.length;while(n--)if((e=Qe[n]+t)in Je)return e}(e)||e)}var et=/^(none|table(?!-c[ea]).+)/,tt={position:\"absolute\",visibility:\"hidden\",display:\"block\"},nt={letterSpacing:\"0\",fontWeight:\"400\"};function rt(e,t,n){var r=Y.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||\"px\"):t}function it(e,t,n,r,i,o){var a=\"width\"===t?1:0,s=0,u=0,l=0;if(n===(r?\"border\":\"content\"))return 0;for(;a<4;a+=2)\"margin\"===n&&(l+=ce.css(e,n+Q[a],!0,i)),r?(\"content\"===n&&(u-=ce.css(e,\"padding\"+Q[a],!0,i)),\"margin\"!==n&&(u-=ce.css(e,\"border\"+Q[a]+\"Width\",!0,i))):(u+=ce.css(e,\"padding\"+Q[a],!0,i),\"padding\"!==n?u+=ce.css(e,\"border\"+Q[a]+\"Width\",!0,i):s+=ce.css(e,\"border\"+Q[a]+\"Width\",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e[\"offset\"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u+l}function ot(e,t,n){var r=Xe(e),i=(!le.boxSizingReliable()||n)&&\"border-box\"===ce.css(e,\"boxSizing\",!1,r),o=i,a=Ge(e,t,r),s=\"offset\"+t[0].toUpperCase()+t.slice(1);if(_e.test(a)){if(!n)return a;a=\"auto\"}return(!le.boxSizingReliable()&&i||!le.reliableTrDimensions()&&fe(e,\"tr\")||\"auto\"===a||!parseFloat(a)&&\"inline\"===ce.css(e,\"display\",!1,r))&&e.getClientRects().length&&(i=\"border-box\"===ce.css(e,\"boxSizing\",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+it(e,t,n||(i?\"border\":\"content\"),o,r,a)+\"px\"}function at(e,t,n,r,i){return new at.prototype.init(e,t,n,r,i)}ce.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Ge(e,\"opacity\");return\"\"===n?\"1\":n}}}},cssNumber:{animationIterationCount:!0,aspectRatio:!0,borderImageSlice:!0,columnCount:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,scale:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeMiterlimit:!0,strokeOpacity:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=F(t),u=ze.test(t),l=e.style;if(u||(t=Ze(s)),a=ce.cssHooks[t]||ce.cssHooks[s],void 0===n)return a&&\"get\"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];\"string\"===(o=typeof n)&&(i=Y.exec(n))&&i[1]&&(n=te(e,t,i),o=\"number\"),null!=n&&n==n&&(\"number\"!==o||u||(n+=i&&i[3]||(ce.cssNumber[s]?\"\":\"px\")),le.clearCloneStyle||\"\"!==n||0!==t.indexOf(\"background\")||(l[t]=\"inherit\"),a&&\"set\"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=F(t);return ze.test(t)||(t=Ze(s)),(a=ce.cssHooks[t]||ce.cssHooks[s])&&\"get\"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Ge(e,t,r)),\"normal\"===i&&t in nt&&(i=nt[t]),\"\"===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),ce.each([\"height\",\"width\"],function(e,u){ce.cssHooks[u]={get:function(e,t,n){if(t)return!et.test(ce.css(e,\"display\"))||e.getClientRects().length&&e.getBoundingClientRect().width?ot(e,u,n):Ue(e,tt,function(){return ot(e,u,n)})},set:function(e,t,n){var r,i=Xe(e),o=!le.scrollboxSize()&&\"absolute\"===i.position,a=(o||n)&&\"border-box\"===ce.css(e,\"boxSizing\",!1,i),s=n?it(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e[\"offset\"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-it(e,u,\"border\",!1,i)-.5)),s&&(r=Y.exec(t))&&\"px\"!==(r[3]||\"px\")&&(e.style[u]=t,t=ce.css(e,u)),rt(0,t,s)}}}),ce.cssHooks.marginLeft=Ye(le.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Ge(e,\"marginLeft\"))||e.getBoundingClientRect().left-Ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+\"px\"}),ce.each({margin:\"\",padding:\"\",border:\"Width\"},function(i,o){ce.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r=\"string\"==typeof e?e.split(\" \"):[e];t<4;t++)n[i+Q[t]+o]=r[t]||r[t-2]||r[0];return n}},\"margin\"!==i&&(ce.cssHooks[i+o].set=rt)}),ce.fn.extend({css:function(e,t){return M(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Xe(e),i=t.length;a<i;a++)o[t[a]]=ce.css(e,t[a],!1,r);return o}return void 0!==n?ce.style(e,t,n):ce.css(e,t)},e,t,1<arguments.length)}}),((ce.Tween=at).prototype={constructor:at,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||ce.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(ce.cssNumber[n]?\"\":\"px\")},cur:function(){var e=at.propHooks[this.prop];return e&&e.get?e.get(this):at.propHooks._default.get(this)},run:function(e){var t,n=at.propHooks[this.prop];return this.options.duration?this.pos=t=ce.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):at.propHooks._default.set(this),this}}).init.prototype=at.prototype,(at.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=ce.css(e.elem,e.prop,\"\"))&&\"auto\"!==t?t:0},set:function(e){ce.fx.step[e.prop]?ce.fx.step[e.prop](e):1!==e.elem.nodeType||!ce.cssHooks[e.prop]&&null==e.elem.style[Ze(e.prop)]?e.elem[e.prop]=e.now:ce.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=at.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},ce.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:\"swing\"},ce.fx=at.prototype.init,ce.fx.step={};var st,ut,lt,ct,ft=/^(?:toggle|show|hide)$/,pt=/queueHooks$/;function dt(){ut&&(!1===C.hidden&&ie.requestAnimationFrame?ie.requestAnimationFrame(dt):ie.setTimeout(dt,ce.fx.interval),ce.fx.tick())}function ht(){return ie.setTimeout(function(){st=void 0}),st=Date.now()}function gt(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i[\"margin\"+(n=Q[r])]=i[\"padding\"+n]=e;return t&&(i.opacity=i.width=e),i}function vt(e,t,n){for(var r,i=(yt.tweeners[t]||[]).concat(yt.tweeners[\"*\"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function yt(o,e,t){var n,a,r=0,i=yt.prefilters.length,s=ce.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=st||ht(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:ce.extend({},e),opts:ce.extend(!0,{specialEasing:{},easing:ce.easing._default},t),originalProperties:e,originalOptions:t,startTime:st||ht(),duration:t.duration,tweens:[],createTween:function(e,t){var n=ce.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=F(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=ce.cssHooks[r])&&\"expand\"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=yt.prefilters[r].call(l,o,c,l.opts))return v(n.stop)&&(ce._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return ce.map(c,vt,l),v(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),ce.fx.timer(ce.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}ce.Animation=ce.extend(yt,{tweeners:{\"*\":[function(e,t){var n=this.createTween(e,t);return te(n.elem,e,Y.exec(t),n),n}]},tweener:function(e,t){v(e)?(t=e,e=[\"*\"]):e=e.match(D);for(var n,r=0,i=e.length;r<i;r++)n=e[r],yt.tweeners[n]=yt.tweeners[n]||[],yt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f=\"width\"in t||\"height\"in t,p=this,d={},h=e.style,g=e.nodeType&&ee(e),v=_.get(e,\"fxshow\");for(r in n.queue||(null==(a=ce._queueHooks(e,\"fx\")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,ce.queue(e,\"fx\").length||a.empty.fire()})})),t)if(i=t[r],ft.test(i)){if(delete t[r],o=o||\"toggle\"===i,i===(g?\"hide\":\"show\")){if(\"show\"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||ce.style(e,r)}if((u=!ce.isEmptyObject(t))||!ce.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=_.get(e,\"display\")),\"none\"===(c=ce.css(e,\"display\"))&&(l?c=l:(re([e],!0),l=e.style.display||l,c=ce.css(e,\"display\"),re([e]))),(\"inline\"===c||\"inline-block\"===c&&null!=l)&&\"none\"===ce.css(e,\"float\")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l=\"none\"===c?\"\":c)),h.display=\"inline-block\")),n.overflow&&(h.overflow=\"hidden\",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?\"hidden\"in v&&(g=v.hidden):v=_.access(e,\"fxshow\",{display:l}),o&&(v.hidden=!g),g&&re([e],!0),p.done(function(){for(r in g||re([e]),_.remove(e,\"fxshow\"),d)ce.style(e,r,d[r])})),u=vt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?yt.prefilters.unshift(e):yt.prefilters.push(e)}}),ce.speed=function(e,t,n){var r=e&&\"object\"==typeof e?ce.extend({},e):{complete:n||!n&&t||v(e)&&e,duration:e,easing:n&&t||t&&!v(t)&&t};return ce.fx.off?r.duration=0:\"number\"!=typeof r.duration&&(r.duration in ce.fx.speeds?r.duration=ce.fx.speeds[r.duration]:r.duration=ce.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue=\"fx\"),r.old=r.complete,r.complete=function(){v(r.old)&&r.old.call(this),r.queue&&ce.dequeue(this,r.queue)},r},ce.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ee).css(\"opacity\",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=ce.isEmptyObject(t),o=ce.speed(e,n,r),a=function(){var e=yt(this,ce.extend({},t),o);(i||_.get(this,\"finish\"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return\"string\"!=typeof i&&(o=e,e=i,i=void 0),e&&this.queue(i||\"fx\",[]),this.each(function(){var e=!0,t=null!=i&&i+\"queueHooks\",n=ce.timers,r=_.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&pt.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||ce.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||\"fx\"),this.each(function(){var e,t=_.get(this),n=t[a+\"queue\"],r=t[a+\"queueHooks\"],i=ce.timers,o=n?n.length:0;for(t.finish=!0,ce.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),ce.each([\"toggle\",\"show\",\"hide\"],function(e,r){var i=ce.fn[r];ce.fn[r]=function(e,t,n){return null==e||\"boolean\"==typeof e?i.apply(this,arguments):this.animate(gt(r,!0),e,t,n)}}),ce.each({slideDown:gt(\"show\"),slideUp:gt(\"hide\"),slideToggle:gt(\"toggle\"),fadeIn:{opacity:\"show\"},fadeOut:{opacity:\"hide\"},fadeToggle:{opacity:\"toggle\"}},function(e,r){ce.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),ce.timers=[],ce.fx.tick=function(){var e,t=0,n=ce.timers;for(st=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||ce.fx.stop(),st=void 0},ce.fx.timer=function(e){ce.timers.push(e),ce.fx.start()},ce.fx.interval=13,ce.fx.start=function(){ut||(ut=!0,dt())},ce.fx.stop=function(){ut=null},ce.fx.speeds={slow:600,fast:200,_default:400},ce.fn.delay=function(r,e){return r=ce.fx&&ce.fx.speeds[r]||r,e=e||\"fx\",this.queue(e,function(e,t){var n=ie.setTimeout(e,r);t.stop=function(){ie.clearTimeout(n)}})},lt=C.createElement(\"input\"),ct=C.createElement(\"select\").appendChild(C.createElement(\"option\")),lt.type=\"checkbox\",le.checkOn=\"\"!==lt.value,le.optSelected=ct.selected,(lt=C.createElement(\"input\")).value=\"t\",lt.type=\"radio\",le.radioValue=\"t\"===lt.value;var mt,xt=ce.expr.attrHandle;ce.fn.extend({attr:function(e,t){return M(this,ce.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){ce.removeAttr(this,e)})}}),ce.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return\"undefined\"==typeof e.getAttribute?ce.prop(e,t,n):(1===o&&ce.isXMLDoc(e)||(i=ce.attrHooks[t.toLowerCase()]||(ce.expr.match.bool.test(t)?mt:void 0)),void 0!==n?null===n?void ce.removeAttr(e,t):i&&\"set\"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+\"\"),n):i&&\"get\"in i&&null!==(r=i.get(e,t))?r:null==(r=ce.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!le.radioValue&&\"radio\"===t&&fe(e,\"input\")){var n=e.value;return e.setAttribute(\"type\",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(D);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),mt={set:function(e,t,n){return!1===t?ce.removeAttr(e,n):e.setAttribute(n,n),n}},ce.each(ce.expr.match.bool.source.match(/\\w+/g),function(e,t){var a=xt[t]||ce.find.attr;xt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=xt[o],xt[o]=r,r=null!=a(e,t,n)?o:null,xt[o]=i),r}});var bt=/^(?:input|select|textarea|button)$/i,wt=/^(?:a|area)$/i;function Tt(e){return(e.match(D)||[]).join(\" \")}function Ct(e){return e.getAttribute&&e.getAttribute(\"class\")||\"\"}function kt(e){return Array.isArray(e)?e:\"string\"==typeof e&&e.match(D)||[]}ce.fn.extend({prop:function(e,t){return M(this,ce.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[ce.propFix[e]||e]})}}),ce.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&ce.isXMLDoc(e)||(t=ce.propFix[t]||t,i=ce.propHooks[t]),void 0!==n?i&&\"set\"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&\"get\"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=ce.find.attr(e,\"tabindex\");return t?parseInt(t,10):bt.test(e.nodeName)||wt.test(e.nodeName)&&e.href?0:-1}}},propFix:{\"for\":\"htmlFor\",\"class\":\"className\"}}),le.optSelected||(ce.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),ce.each([\"tabIndex\",\"readOnly\",\"maxLength\",\"cellSpacing\",\"cellPadding\",\"rowSpan\",\"colSpan\",\"useMap\",\"frameBorder\",\"contentEditable\"],function(){ce.propFix[this.toLowerCase()]=this}),ce.fn.extend({addClass:function(t){var e,n,r,i,o,a;return v(t)?this.each(function(e){ce(this).addClass(t.call(this,e,Ct(this)))}):(e=kt(t)).length?this.each(function(){if(r=Ct(this),n=1===this.nodeType&&\" \"+Tt(r)+\" \"){for(o=0;o<e.length;o++)i=e[o],n.indexOf(\" \"+i+\" \")<0&&(n+=i+\" \");a=Tt(n),r!==a&&this.setAttribute(\"class\",a)}}):this},removeClass:function(t){var e,n,r,i,o,a;return v(t)?this.each(function(e){ce(this).removeClass(t.call(this,e,Ct(this)))}):arguments.length?(e=kt(t)).length?this.each(function(){if(r=Ct(this),n=1===this.nodeType&&\" \"+Tt(r)+\" \"){for(o=0;o<e.length;o++){i=e[o];while(-1<n.indexOf(\" \"+i+\" \"))n=n.replace(\" \"+i+\" \",\" \")}a=Tt(n),r!==a&&this.setAttribute(\"class\",a)}}):this:this.attr(\"class\",\"\")},toggleClass:function(t,n){var e,r,i,o,a=typeof t,s=\"string\"===a||Array.isArray(t);return v(t)?this.each(function(e){ce(this).toggleClass(t.call(this,e,Ct(this),n),n)}):\"boolean\"==typeof n&&s?n?this.addClass(t):this.removeClass(t):(e=kt(t),this.each(function(){if(s)for(o=ce(this),i=0;i<e.length;i++)r=e[i],o.hasClass(r)?o.removeClass(r):o.addClass(r);else void 0!==t&&\"boolean\"!==a||((r=Ct(this))&&_.set(this,\"__className__\",r),this.setAttribute&&this.setAttribute(\"class\",r||!1===t?\"\":_.get(this,\"__className__\")||\"\"))}))},hasClass:function(e){var t,n,r=0;t=\" \"+e+\" \";while(n=this[r++])if(1===n.nodeType&&-1<(\" \"+Tt(Ct(n))+\" \").indexOf(t))return!0;return!1}});var St=/\\r/g;ce.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=v(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,ce(this).val()):n)?t=\"\":\"number\"==typeof t?t+=\"\":Array.isArray(t)&&(t=ce.map(t,function(e){return null==e?\"\":e+\"\"})),(r=ce.valHooks[this.type]||ce.valHooks[this.nodeName.toLowerCase()])&&\"set\"in r&&void 0!==r.set(this,t,\"value\")||(this.value=t))})):t?(r=ce.valHooks[t.type]||ce.valHooks[t.nodeName.toLowerCase()])&&\"get\"in r&&void 0!==(e=r.get(t,\"value\"))?e:\"string\"==typeof(e=t.value)?e.replace(St,\"\"):null==e?\"\":e:void 0}}),ce.extend({valHooks:{option:{get:function(e){var t=ce.find.attr(e,\"value\");return null!=t?t:Tt(ce.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a=\"select-one\"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!fe(n.parentNode,\"optgroup\"))){if(t=ce(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=ce.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<ce.inArray(ce.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),ce.each([\"radio\",\"checkbox\"],function(){ce.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<ce.inArray(ce(e).val(),t)}},le.checkOn||(ce.valHooks[this].get=function(e){return null===e.getAttribute(\"value\")?\"on\":e.value})});var Et=ie.location,jt={guid:Date.now()},At=/\\?/;ce.parseXML=function(e){var t,n;if(!e||\"string\"!=typeof e)return null;try{t=(new ie.DOMParser).parseFromString(e,\"text/xml\")}catch(e){}return n=t&&t.getElementsByTagName(\"parsererror\")[0],t&&!n||ce.error(\"Invalid XML: \"+(n?ce.map(n.childNodes,function(e){return e.textContent}).join(\"\\n\"):e)),t};var Dt=/^(?:focusinfocus|focusoutblur)$/,Nt=function(e){e.stopPropagation()};ce.extend(ce.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||C],d=ue.call(e,\"type\")?e.type:e,h=ue.call(e,\"namespace\")?e.namespace.split(\".\"):[];if(o=f=a=n=n||C,3!==n.nodeType&&8!==n.nodeType&&!Dt.test(d+ce.event.triggered)&&(-1<d.indexOf(\".\")&&(d=(h=d.split(\".\")).shift(),h.sort()),u=d.indexOf(\":\")<0&&\"on\"+d,(e=e[ce.expando]?e:new ce.Event(d,\"object\"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join(\".\"),e.rnamespace=e.namespace?new RegExp(\"(^|\\\\.)\"+h.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:ce.makeArray(t,[e]),c=ce.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!y(n)){for(s=c.delegateType||d,Dt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||C)&&p.push(a.defaultView||a.parentWindow||ie)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(_.get(o,\"events\")||Object.create(null))[e.type]&&_.get(o,\"handle\"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&$(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!$(n)||u&&v(n[d])&&!y(n)&&((a=n[u])&&(n[u]=null),ce.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Nt),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Nt),ce.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=ce.extend(new ce.Event,n,{type:e,isSimulated:!0});ce.event.trigger(r,null,t)}}),ce.fn.extend({trigger:function(e,t){return this.each(function(){ce.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return ce.event.trigger(e,t,n,!0)}});var qt=/\\[\\]$/,Lt=/\\r?\\n/g,Ht=/^(?:submit|button|image|reset|file)$/i,Ot=/^(?:input|select|textarea|keygen)/i;function Pt(n,e,r,i){var t;if(Array.isArray(e))ce.each(e,function(e,t){r||qt.test(n)?i(n,t):Pt(n+\"[\"+(\"object\"==typeof t&&null!=t?e:\"\")+\"]\",t,r,i)});else if(r||\"object\"!==x(e))i(n,e);else for(t in e)Pt(n+\"[\"+t+\"]\",e[t],r,i)}ce.param=function(e,t){var n,r=[],i=function(e,t){var n=v(t)?t():t;r[r.length]=encodeURIComponent(e)+\"=\"+encodeURIComponent(null==n?\"\":n)};if(null==e)return\"\";if(Array.isArray(e)||e.jquery&&!ce.isPlainObject(e))ce.each(e,function(){i(this.name,this.value)});else for(n in e)Pt(n,e[n],t,i);return r.join(\"&\")},ce.fn.extend({serialize:function(){return ce.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=ce.prop(this,\"elements\");return e?ce.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!ce(this).is(\":disabled\")&&Ot.test(this.nodeName)&&!Ht.test(e)&&(this.checked||!we.test(e))}).map(function(e,t){var n=ce(this).val();return null==n?null:Array.isArray(n)?ce.map(n,function(e){return{name:t.name,value:e.replace(Lt,\"\\r\\n\")}}):{name:t.name,value:n.replace(Lt,\"\\r\\n\")}}).get()}});var Mt=/%20/g,Rt=/#.*$/,It=/([?&])_=[^&]*/,Wt=/^(.*?):[ \\t]*([^\\r\\n]*)$/gm,Ft=/^(?:GET|HEAD)$/,$t=/^\\/\\//,Bt={},_t={},zt=\"*/\".concat(\"*\"),Xt=C.createElement(\"a\");function Ut(o){return function(e,t){\"string\"!=typeof e&&(t=e,e=\"*\");var n,r=0,i=e.toLowerCase().match(D)||[];if(v(t))while(n=i[r++])\"+\"===n[0]?(n=n.slice(1)||\"*\",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function Vt(t,i,o,a){var s={},u=t===_t;function l(e){var r;return s[e]=!0,ce.each(t[e]||[],function(e,t){var n=t(i,o,a);return\"string\"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s[\"*\"]&&l(\"*\")}function Gt(e,t){var n,r,i=ce.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&ce.extend(!0,e,r),e}Xt.href=Et.href,ce.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:\"GET\",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:\"application/x-www-form-urlencoded; charset=UTF-8\",accepts:{\"*\":zt,text:\"text/plain\",html:\"text/html\",xml:\"application/xml, text/xml\",json:\"application/json, text/javascript\"},contents:{xml:/\\bxml\\b/,html:/\\bhtml/,json:/\\bjson\\b/},responseFields:{xml:\"responseXML\",text:\"responseText\",json:\"responseJSON\"},converters:{\"* text\":String,\"text html\":!0,\"text json\":JSON.parse,\"text xml\":ce.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Gt(Gt(e,ce.ajaxSettings),t):Gt(ce.ajaxSettings,e)},ajaxPrefilter:Ut(Bt),ajaxTransport:Ut(_t),ajax:function(e,t){\"object\"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=ce.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?ce(y):ce.event,x=ce.Deferred(),b=ce.Callbacks(\"once memory\"),w=v.statusCode||{},a={},s={},u=\"canceled\",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Wt.exec(p))n[t[1].toLowerCase()+\" \"]=(n[t[1].toLowerCase()+\" \"]||[]).concat(t[2])}t=n[e.toLowerCase()+\" \"]}return null==t?null:t.join(\", \")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+\"\").replace($t,Et.protocol+\"//\"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||\"*\").toLowerCase().match(D)||[\"\"],null==v.crossDomain){r=C.createElement(\"a\");try{r.href=v.url,r.href=r.href,v.crossDomain=Xt.protocol+\"//\"+Xt.host!=r.protocol+\"//\"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&\"string\"!=typeof v.data&&(v.data=ce.param(v.data,v.traditional)),Vt(Bt,v,t,T),h)return T;for(i in(g=ce.event&&v.global)&&0==ce.active++&&ce.event.trigger(\"ajaxStart\"),v.type=v.type.toUpperCase(),v.hasContent=!Ft.test(v.type),f=v.url.replace(Rt,\"\"),v.hasContent?v.data&&v.processData&&0===(v.contentType||\"\").indexOf(\"application/x-www-form-urlencoded\")&&(v.data=v.data.replace(Mt,\"+\")):(o=v.url.slice(f.length),v.data&&(v.processData||\"string\"==typeof v.data)&&(f+=(At.test(f)?\"&\":\"?\")+v.data,delete v.data),!1===v.cache&&(f=f.replace(It,\"$1\"),o=(At.test(f)?\"&\":\"?\")+\"_=\"+jt.guid+++o),v.url=f+o),v.ifModified&&(ce.lastModified[f]&&T.setRequestHeader(\"If-Modified-Since\",ce.lastModified[f]),ce.etag[f]&&T.setRequestHeader(\"If-None-Match\",ce.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader(\"Content-Type\",v.contentType),T.setRequestHeader(\"Accept\",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+(\"*\"!==v.dataTypes[0]?\", \"+zt+\"; q=0.01\":\"\"):v.accepts[\"*\"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u=\"abort\",b.add(v.complete),T.done(v.success),T.fail(v.error),c=Vt(_t,v,t,T)){if(T.readyState=1,g&&m.trigger(\"ajaxSend\",[T,v]),h)return T;v.async&&0<v.timeout&&(d=ie.setTimeout(function(){T.abort(\"timeout\")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,\"No Transport\");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&ie.clearTimeout(d),c=void 0,p=r||\"\",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while(\"*\"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader(\"Content-Type\"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+\" \"+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),!i&&-1<ce.inArray(\"script\",v.dataTypes)&&ce.inArray(\"json\",v.dataTypes)<0&&(v.converters[\"text script\"]=function(){}),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if(\"*\"===o)o=u;else if(\"*\"!==u&&u!==o){if(!(a=l[u+\" \"+o]||l[\"* \"+o]))for(i in l)if((s=i.split(\" \"))[1]===o&&(a=l[u+\" \"+s[0]]||l[\"* \"+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e[\"throws\"])t=a(t);else try{t=a(t)}catch(e){return{state:\"parsererror\",error:a?e:\"No conversion from \"+u+\" to \"+o}}}return{state:\"success\",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader(\"Last-Modified\"))&&(ce.lastModified[f]=u),(u=T.getResponseHeader(\"etag\"))&&(ce.etag[f]=u)),204===e||\"HEAD\"===v.type?l=\"nocontent\":304===e?l=\"notmodified\":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l=\"error\",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+\"\",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?\"ajaxSuccess\":\"ajaxError\",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger(\"ajaxComplete\",[T,v]),--ce.active||ce.event.trigger(\"ajaxStop\")))}return T},getJSON:function(e,t,n){return ce.get(e,t,n,\"json\")},getScript:function(e,t){return ce.get(e,void 0,t,\"script\")}}),ce.each([\"get\",\"post\"],function(e,i){ce[i]=function(e,t,n,r){return v(t)&&(r=r||n,n=t,t=void 0),ce.ajax(ce.extend({url:e,type:i,dataType:r,data:t,success:n},ce.isPlainObject(e)&&e))}}),ce.ajaxPrefilter(function(e){var t;for(t in e.headers)\"content-type\"===t.toLowerCase()&&(e.contentType=e.headers[t]||\"\")}),ce._evalUrl=function(e,t,n){return ce.ajax({url:e,type:\"GET\",dataType:\"script\",cache:!0,async:!1,global:!1,converters:{\"text script\":function(){}},dataFilter:function(e){ce.globalEval(e,t,n)}})},ce.fn.extend({wrapAll:function(e){var t;return this[0]&&(v(e)&&(e=e.call(this[0])),t=ce(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return v(n)?this.each(function(e){ce(this).wrapInner(n.call(this,e))}):this.each(function(){var e=ce(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=v(t);return this.each(function(e){ce(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not(\"body\").each(function(){ce(this).replaceWith(this.childNodes)}),this}}),ce.expr.pseudos.hidden=function(e){return!ce.expr.pseudos.visible(e)},ce.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},ce.ajaxSettings.xhr=function(){try{return new ie.XMLHttpRequest}catch(e){}};var Yt={0:200,1223:204},Qt=ce.ajaxSettings.xhr();le.cors=!!Qt&&\"withCredentials\"in Qt,le.ajax=Qt=!!Qt,ce.ajaxTransport(function(i){var o,a;if(le.cors||Qt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e[\"X-Requested-With\"]||(e[\"X-Requested-With\"]=\"XMLHttpRequest\"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,\"abort\"===e?r.abort():\"error\"===e?\"number\"!=typeof r.status?t(0,\"error\"):t(r.status,r.statusText):t(Yt[r.status]||r.status,r.statusText,\"text\"!==(r.responseType||\"text\")||\"string\"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o(\"error\"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&ie.setTimeout(function(){o&&a()})},o=o(\"abort\");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),ce.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),ce.ajaxSetup({accepts:{script:\"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript\"},contents:{script:/\\b(?:java|ecma)script\\b/},converters:{\"text script\":function(e){return ce.globalEval(e),e}}}),ce.ajaxPrefilter(\"script\",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type=\"GET\")}),ce.ajaxTransport(\"script\",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=ce(\"<script>\").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on(\"load error\",i=function(e){r.remove(),i=null,e&&t(\"error\"===e.type?404:200,e.type)}),C.head.appendChild(r[0])},abort:function(){i&&i()}}});var Jt,Kt=[],Zt=/(=)\\?(?=&|$)|\\?\\?/;ce.ajaxSetup({jsonp:\"callback\",jsonpCallback:function(){var e=Kt.pop()||ce.expando+\"_\"+jt.guid++;return this[e]=!0,e}}),ce.ajaxPrefilter(\"json jsonp\",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Zt.test(e.url)?\"url\":\"string\"==typeof e.data&&0===(e.contentType||\"\").indexOf(\"application/x-www-form-urlencoded\")&&Zt.test(e.data)&&\"data\");if(a||\"jsonp\"===e.dataTypes[0])return r=e.jsonpCallback=v(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Zt,\"$1\"+r):!1!==e.jsonp&&(e.url+=(At.test(e.url)?\"&\":\"?\")+e.jsonp+\"=\"+r),e.converters[\"script json\"]=function(){return o||ce.error(r+\" was not called\"),o[0]},e.dataTypes[0]=\"json\",i=ie[r],ie[r]=function(){o=arguments},n.always(function(){void 0===i?ce(ie).removeProp(r):ie[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Kt.push(r)),o&&v(i)&&i(o[0]),o=i=void 0}),\"script\"}),le.createHTMLDocument=((Jt=C.implementation.createHTMLDocument(\"\").body).innerHTML=\"<form></form><form></form>\",2===Jt.childNodes.length),ce.parseHTML=function(e,t,n){return\"string\"!=typeof e?[]:(\"boolean\"==typeof t&&(n=t,t=!1),t||(le.createHTMLDocument?((r=(t=C.implementation.createHTMLDocument(\"\")).createElement(\"base\")).href=C.location.href,t.head.appendChild(r)):t=C),o=!n&&[],(i=w.exec(e))?[t.createElement(i[1])]:(i=Ae([e],t,o),o&&o.length&&ce(o).remove(),ce.merge([],i.childNodes)));var r,i,o},ce.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(\" \");return-1<s&&(r=Tt(e.slice(s)),e=e.slice(0,s)),v(t)?(n=t,t=void 0):t&&\"object\"==typeof t&&(i=\"POST\"),0<a.length&&ce.ajax({url:e,type:i||\"GET\",dataType:\"html\",data:t}).done(function(e){o=arguments,a.html(r?ce(\"<div>\").append(ce.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},ce.expr.pseudos.animated=function(t){return ce.grep(ce.timers,function(e){return t===e.elem}).length},ce.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=ce.css(e,\"position\"),c=ce(e),f={};\"static\"===l&&(e.style.position=\"relative\"),s=c.offset(),o=ce.css(e,\"top\"),u=ce.css(e,\"left\"),(\"absolute\"===l||\"fixed\"===l)&&-1<(o+u).indexOf(\"auto\")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),v(t)&&(t=t.call(e,n,ce.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),\"using\"in t?t.using.call(e,f):c.css(f)}},ce.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){ce.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if(\"fixed\"===ce.css(r,\"position\"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&\"static\"===ce.css(e,\"position\"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=ce(e).offset()).top+=ce.css(e,\"borderTopWidth\",!0),i.left+=ce.css(e,\"borderLeftWidth\",!0))}return{top:t.top-i.top-ce.css(r,\"marginTop\",!0),left:t.left-i.left-ce.css(r,\"marginLeft\",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&\"static\"===ce.css(e,\"position\"))e=e.offsetParent;return e||J})}}),ce.each({scrollLeft:\"pageXOffset\",scrollTop:\"pageYOffset\"},function(t,i){var o=\"pageYOffset\"===i;ce.fn[t]=function(e){return M(this,function(e,t,n){var r;if(y(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),ce.each([\"top\",\"left\"],function(e,n){ce.cssHooks[n]=Ye(le.pixelPosition,function(e,t){if(t)return t=Ge(e,n),_e.test(t)?ce(e).position()[n]+\"px\":t})}),ce.each({Height:\"height\",Width:\"width\"},function(a,s){ce.each({padding:\"inner\"+a,content:s,\"\":\"outer\"+a},function(r,o){ce.fn[o]=function(e,t){var n=arguments.length&&(r||\"boolean\"!=typeof e),i=r||(!0===e||!0===t?\"margin\":\"border\");return M(this,function(e,t,n){var r;return y(e)?0===o.indexOf(\"outer\")?e[\"inner\"+a]:e.document.documentElement[\"client\"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body[\"scroll\"+a],r[\"scroll\"+a],e.body[\"offset\"+a],r[\"offset\"+a],r[\"client\"+a])):void 0===n?ce.css(e,t,i):ce.style(e,t,n,i)},s,n?e:void 0,n)}})}),ce.each([\"ajaxStart\",\"ajaxStop\",\"ajaxComplete\",\"ajaxError\",\"ajaxSuccess\",\"ajaxSend\"],function(e,t){ce.fn[t]=function(e){return this.on(t,e)}}),ce.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,\"**\"):this.off(t,e||\"**\",n)},hover:function(e,t){return this.on(\"mouseenter\",e).on(\"mouseleave\",t||e)}}),ce.each(\"blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu\".split(\" \"),function(e,n){ce.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}});var en=/^[\\s\\uFEFF\\xA0]+|([^\\s\\uFEFF\\xA0])[\\s\\uFEFF\\xA0]+$/g;ce.proxy=function(e,t){var n,r,i;if(\"string\"==typeof t&&(n=e[t],t=e,e=n),v(e))return r=ae.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(ae.call(arguments)))}).guid=e.guid=e.guid||ce.guid++,i},ce.holdReady=function(e){e?ce.readyWait++:ce.ready(!0)},ce.isArray=Array.isArray,ce.parseJSON=JSON.parse,ce.nodeName=fe,ce.isFunction=v,ce.isWindow=y,ce.camelCase=F,ce.type=x,ce.now=Date.now,ce.isNumeric=function(e){var t=ce.type(e);return(\"number\"===t||\"string\"===t)&&!isNaN(e-parseFloat(e))},ce.trim=function(e){return null==e?\"\":(e+\"\").replace(en,\"$1\")},\"function\"==typeof define&&define.amd&&define(\"jquery\",[],function(){return ce});var tn=ie.jQuery,nn=ie.$;return ce.noConflict=function(e){return ie.$===ce&&(ie.$=nn),e&&ie.jQuery===ce&&(ie.jQuery=tn),ce},\"undefined\"==typeof e&&(ie.jQuery=ie.$=ce),ce});\n", "/*!\n * Chart.js v3.7.1\n * https://www.chartjs.org\n * (c) 2022 Chart.js Contributors\n * Released under the MIT License\n */\n!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).Chart=e()}(this,(function(){\"use strict\";const t=\"undefined\"==typeof window?function(t){return t()}:window.requestAnimationFrame;function e(e,i,s){const n=s||(t=>Array.prototype.slice.call(t));let o=!1,a=[];return function(...s){a=n(s),o||(o=!0,t.call(window,(()=>{o=!1,e.apply(i,a)})))}}function i(t,e){let i;return function(...s){return e?(clearTimeout(i),i=setTimeout(t,e,s)):t.apply(this,s),e}}const s=t=>\"start\"===t?\"left\":\"end\"===t?\"right\":\"center\",n=(t,e,i)=>\"start\"===t?e:\"end\"===t?i:(e+i)/2,o=(t,e,i,s)=>t===(s?\"left\":\"right\")?i:\"center\"===t?(e+i)/2:e;var a=new class{constructor(){this._request=null,this._charts=new Map,this._running=!1,this._lastDate=void 0}_notify(t,e,i,s){const n=e.listeners[s],o=e.duration;n.forEach((s=>s({chart:t,initial:e.initial,numSteps:o,currentStep:Math.min(i-e.start,o)})))}_refresh(){this._request||(this._running=!0,this._request=t.call(window,(()=>{this._update(),this._request=null,this._running&&this._refresh()})))}_update(t=Date.now()){let e=0;this._charts.forEach(((i,s)=>{if(!i.running||!i.items.length)return;const n=i.items;let o,a=n.length-1,r=!1;for(;a>=0;--a)o=n[a],o._active?(o._total>i.duration&&(i.duration=o._total),o.tick(t),r=!0):(n[a]=n[n.length-1],n.pop());r&&(s.draw(),this._notify(s,i,t,\"progress\")),n.length||(i.running=!1,this._notify(s,i,t,\"complete\"),i.initial=!1),e+=n.length})),this._lastDate=t,0===e&&(this._running=!1)}_getAnims(t){const e=this._charts;let i=e.get(t);return i||(i={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},e.set(t,i)),i}listen(t,e,i){this._getAnims(t).listeners[e].push(i)}add(t,e){e&&e.length&&this._getAnims(t).items.push(...e)}has(t){return this._getAnims(t).items.length>0}start(t){const e=this._charts.get(t);e&&(e.running=!0,e.start=Date.now(),e.duration=e.items.reduce(((t,e)=>Math.max(t,e._duration)),0),this._refresh())}running(t){if(!this._running)return!1;const e=this._charts.get(t);return!!(e&&e.running&&e.items.length)}stop(t){const e=this._charts.get(t);if(!e||!e.items.length)return;const i=e.items;let s=i.length-1;for(;s>=0;--s)i[s].cancel();e.items=[],this._notify(t,e,Date.now(),\"complete\")}remove(t){return this._charts.delete(t)}};\n/*!\n * @kurkle/color v0.1.9\n * https://github.com/kurkle/color#readme\n * (c) 2020 Jukka Kurkela\n * Released under the MIT License\n */const r={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},l=\"0123456789ABCDEF\",h=t=>l[15&t],c=t=>l[(240&t)>>4]+l[15&t],d=t=>(240&t)>>4==(15&t);function u(t){var e=function(t){return d(t.r)&&d(t.g)&&d(t.b)&&d(t.a)}(t)?h:c;return t?\"#\"+e(t.r)+e(t.g)+e(t.b)+(t.a<255?e(t.a):\"\"):t}function f(t){return t+.5|0}const g=(t,e,i)=>Math.max(Math.min(t,i),e);function p(t){return g(f(2.55*t),0,255)}function m(t){return g(f(255*t),0,255)}function x(t){return g(f(t/2.55)/100,0,1)}function b(t){return g(f(100*t),0,100)}const _=/^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;const y=/^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;function v(t,e,i){const s=e*Math.min(i,1-i),n=(e,n=(e+t/30)%12)=>i-s*Math.max(Math.min(n-3,9-n,1),-1);return[n(0),n(8),n(4)]}function w(t,e,i){const s=(s,n=(s+t/60)%6)=>i-i*e*Math.max(Math.min(n,4-n,1),0);return[s(5),s(3),s(1)]}function M(t,e,i){const s=v(t,1,.5);let n;for(e+i>1&&(n=1/(e+i),e*=n,i*=n),n=0;n<3;n++)s[n]*=1-e-i,s[n]+=e;return s}function k(t){const e=t.r/255,i=t.g/255,s=t.b/255,n=Math.max(e,i,s),o=Math.min(e,i,s),a=(n+o)/2;let r,l,h;return n!==o&&(h=n-o,l=a>.5?h/(2-n-o):h/(n+o),r=n===e?(i-s)/h+(i<s?6:0):n===i?(s-e)/h+2:(e-i)/h+4,r=60*r+.5),[0|r,l||0,a]}function S(t,e,i,s){return(Array.isArray(e)?t(e[0],e[1],e[2]):t(e,i,s)).map(m)}function P(t,e,i){return S(v,t,e,i)}function D(t){return(t%360+360)%360}function C(t){const e=y.exec(t);let i,s=255;if(!e)return;e[5]!==i&&(s=e[6]?p(+e[5]):m(+e[5]));const n=D(+e[2]),o=+e[3]/100,a=+e[4]/100;return i=\"hwb\"===e[1]?function(t,e,i){return S(M,t,e,i)}(n,o,a):\"hsv\"===e[1]?function(t,e,i){return S(w,t,e,i)}(n,o,a):P(n,o,a),{r:i[0],g:i[1],b:i[2],a:s}}const O={x:\"dark\",Z:\"light\",Y:\"re\",X:\"blu\",W:\"gr\",V:\"medium\",U:\"slate\",A:\"ee\",T:\"ol\",S:\"or\",B:\"ra\",C:\"lateg\",D:\"ights\",R:\"in\",Q:\"turquois\",E:\"hi\",P:\"ro\",O:\"al\",N:\"le\",M:\"de\",L:\"yello\",F:\"en\",K:\"ch\",G:\"arks\",H:\"ea\",I:\"ightg\",J:\"wh\"},A={OiceXe:\"f0f8ff\",antiquewEte:\"faebd7\",aqua:\"ffff\",aquamarRe:\"7fffd4\",azuY:\"f0ffff\",beige:\"f5f5dc\",bisque:\"ffe4c4\",black:\"0\",blanKedOmond:\"ffebcd\",Xe:\"ff\",XeviTet:\"8a2be2\",bPwn:\"a52a2a\",burlywood:\"deb887\",caMtXe:\"5f9ea0\",KartYuse:\"7fff00\",KocTate:\"d2691e\",cSO:\"ff7f50\",cSnflowerXe:\"6495ed\",cSnsilk:\"fff8dc\",crimson:\"dc143c\",cyan:\"ffff\",xXe:\"8b\",xcyan:\"8b8b\",xgTMnPd:\"b8860b\",xWay:\"a9a9a9\",xgYF:\"6400\",xgYy:\"a9a9a9\",xkhaki:\"bdb76b\",xmagFta:\"8b008b\",xTivegYF:\"556b2f\",xSange:\"ff8c00\",xScEd:\"9932cc\",xYd:\"8b0000\",xsOmon:\"e9967a\",xsHgYF:\"8fbc8f\",xUXe:\"483d8b\",xUWay:\"2f4f4f\",xUgYy:\"2f4f4f\",xQe:\"ced1\",xviTet:\"9400d3\",dAppRk:\"ff1493\",dApskyXe:\"bfff\",dimWay:\"696969\",dimgYy:\"696969\",dodgerXe:\"1e90ff\",fiYbrick:\"b22222\",flSOwEte:\"fffaf0\",foYstWAn:\"228b22\",fuKsia:\"ff00ff\",gaRsbSo:\"dcdcdc\",ghostwEte:\"f8f8ff\",gTd:\"ffd700\",gTMnPd:\"daa520\",Way:\"808080\",gYF:\"8000\",gYFLw:\"adff2f\",gYy:\"808080\",honeyMw:\"f0fff0\",hotpRk:\"ff69b4\",RdianYd:\"cd5c5c\",Rdigo:\"4b0082\",ivSy:\"fffff0\",khaki:\"f0e68c\",lavFMr:\"e6e6fa\",lavFMrXsh:\"fff0f5\",lawngYF:\"7cfc00\",NmoncEffon:\"fffacd\",ZXe:\"add8e6\",ZcSO:\"f08080\",Zcyan:\"e0ffff\",ZgTMnPdLw:\"fafad2\",ZWay:\"d3d3d3\",ZgYF:\"90ee90\",ZgYy:\"d3d3d3\",ZpRk:\"ffb6c1\",ZsOmon:\"ffa07a\",ZsHgYF:\"20b2aa\",ZskyXe:\"87cefa\",ZUWay:\"778899\",ZUgYy:\"778899\",ZstAlXe:\"b0c4de\",ZLw:\"ffffe0\",lime:\"ff00\",limegYF:\"32cd32\",lRF:\"faf0e6\",magFta:\"ff00ff\",maPon:\"800000\",VaquamarRe:\"66cdaa\",VXe:\"cd\",VScEd:\"ba55d3\",VpurpN:\"9370db\",VsHgYF:\"3cb371\",VUXe:\"7b68ee\",VsprRggYF:\"fa9a\",VQe:\"48d1cc\",VviTetYd:\"c71585\",midnightXe:\"191970\",mRtcYam:\"f5fffa\",mistyPse:\"ffe4e1\",moccasR:\"ffe4b5\",navajowEte:\"ffdead\",navy:\"80\",Tdlace:\"fdf5e6\",Tive:\"808000\",TivedBb:\"6b8e23\",Sange:\"ffa500\",SangeYd:\"ff4500\",ScEd:\"da70d6\",pOegTMnPd:\"eee8aa\",pOegYF:\"98fb98\",pOeQe:\"afeeee\",pOeviTetYd:\"db7093\",papayawEp:\"ffefd5\",pHKpuff:\"ffdab9\",peru:\"cd853f\",pRk:\"ffc0cb\",plum:\"dda0dd\",powMrXe:\"b0e0e6\",purpN:\"800080\",YbeccapurpN:\"663399\",Yd:\"ff0000\",Psybrown:\"bc8f8f\",PyOXe:\"4169e1\",saddNbPwn:\"8b4513\",sOmon:\"fa8072\",sandybPwn:\"f4a460\",sHgYF:\"2e8b57\",sHshell:\"fff5ee\",siFna:\"a0522d\",silver:\"c0c0c0\",skyXe:\"87ceeb\",UXe:\"6a5acd\",UWay:\"708090\",UgYy:\"708090\",snow:\"fffafa\",sprRggYF:\"ff7f\",stAlXe:\"4682b4\",tan:\"d2b48c\",teO:\"8080\",tEstN:\"d8bfd8\",tomato:\"ff6347\",Qe:\"40e0d0\",viTet:\"ee82ee\",JHt:\"f5deb3\",wEte:\"ffffff\",wEtesmoke:\"f5f5f5\",Lw:\"ffff00\",LwgYF:\"9acd32\"};let T;function L(t){T||(T=function(){const t={},e=Object.keys(A),i=Object.keys(O);let s,n,o,a,r;for(s=0;s<e.length;s++){for(a=r=e[s],n=0;n<i.length;n++)o=i[n],r=r.replace(o,O[o]);o=parseInt(A[a],16),t[r]=[o>>16&255,o>>8&255,255&o]}return t}(),T.transparent=[0,0,0,0]);const e=T[t.toLowerCase()];return e&&{r:e[0],g:e[1],b:e[2],a:4===e.length?e[3]:255}}function R(t,e,i){if(t){let s=k(t);s[e]=Math.max(0,Math.min(s[e]+s[e]*i,0===e?360:1)),s=P(s),t.r=s[0],t.g=s[1],t.b=s[2]}}function E(t,e){return t?Object.assign(e||{},t):t}function I(t){var e={r:0,g:0,b:0,a:255};return Array.isArray(t)?t.length>=3&&(e={r:t[0],g:t[1],b:t[2],a:255},t.length>3&&(e.a=m(t[3]))):(e=E(t,{r:0,g:0,b:0,a:1})).a=m(e.a),e}function z(t){return\"r\"===t.charAt(0)?function(t){const e=_.exec(t);let i,s,n,o=255;if(e){if(e[7]!==i){const t=+e[7];o=255&(e[8]?p(t):255*t)}return i=+e[1],s=+e[3],n=+e[5],i=255&(e[2]?p(i):i),s=255&(e[4]?p(s):s),n=255&(e[6]?p(n):n),{r:i,g:s,b:n,a:o}}}(t):C(t)}class F{constructor(t){if(t instanceof F)return t;const e=typeof t;let i;var s,n,o;\"object\"===e?i=I(t):\"string\"===e&&(o=(s=t).length,\"#\"===s[0]&&(4===o||5===o?n={r:255&17*r[s[1]],g:255&17*r[s[2]],b:255&17*r[s[3]],a:5===o?17*r[s[4]]:255}:7!==o&&9!==o||(n={r:r[s[1]]<<4|r[s[2]],g:r[s[3]]<<4|r[s[4]],b:r[s[5]]<<4|r[s[6]],a:9===o?r[s[7]]<<4|r[s[8]]:255})),i=n||L(t)||z(t)),this._rgb=i,this._valid=!!i}get valid(){return this._valid}get rgb(){var t=E(this._rgb);return t&&(t.a=x(t.a)),t}set rgb(t){this._rgb=I(t)}rgbString(){return this._valid?(t=this._rgb)&&(t.a<255?`rgba(${t.r}, ${t.g}, ${t.b}, ${x(t.a)})`:`rgb(${t.r}, ${t.g}, ${t.b})`):this._rgb;var t}hexString(){return this._valid?u(this._rgb):this._rgb}hslString(){return this._valid?function(t){if(!t)return;const e=k(t),i=e[0],s=b(e[1]),n=b(e[2]);return t.a<255?`hsla(${i}, ${s}%, ${n}%, ${x(t.a)})`:`hsl(${i}, ${s}%, ${n}%)`}(this._rgb):this._rgb}mix(t,e){const i=this;if(t){const s=i.rgb,n=t.rgb;let o;const a=e===o?.5:e,r=2*a-1,l=s.a-n.a,h=((r*l==-1?r:(r+l)/(1+r*l))+1)/2;o=1-h,s.r=255&h*s.r+o*n.r+.5,s.g=255&h*s.g+o*n.g+.5,s.b=255&h*s.b+o*n.b+.5,s.a=a*s.a+(1-a)*n.a,i.rgb=s}return i}clone(){return new F(this.rgb)}alpha(t){return this._rgb.a=m(t),this}clearer(t){return this._rgb.a*=1-t,this}greyscale(){const t=this._rgb,e=f(.3*t.r+.59*t.g+.11*t.b);return t.r=t.g=t.b=e,this}opaquer(t){return this._rgb.a*=1+t,this}negate(){const t=this._rgb;return t.r=255-t.r,t.g=255-t.g,t.b=255-t.b,this}lighten(t){return R(this._rgb,2,t),this}darken(t){return R(this._rgb,2,-t),this}saturate(t){return R(this._rgb,1,t),this}desaturate(t){return R(this._rgb,1,-t),this}rotate(t){return function(t,e){var i=k(t);i[0]=D(i[0]+e),i=P(i),t.r=i[0],t.g=i[1],t.b=i[2]}(this._rgb,t),this}}function B(t){return new F(t)}const V=t=>t instanceof CanvasGradient||t instanceof CanvasPattern;function W(t){return V(t)?t:B(t)}function N(t){return V(t)?t:B(t).saturate(.5).darken(.1).hexString()}function H(){}const j=function(){let t=0;return function(){return t++}}();function $(t){return null==t}function Y(t){if(Array.isArray&&Array.isArray(t))return!0;const e=Object.prototype.toString.call(t);return\"[object\"===e.substr(0,7)&&\"Array]\"===e.substr(-6)}function U(t){return null!==t&&\"[object Object]\"===Object.prototype.toString.call(t)}const X=t=>(\"number\"==typeof t||t instanceof Number)&&isFinite(+t);function q(t,e){return X(t)?t:e}function K(t,e){return void 0===t?e:t}const G=(t,e)=>\"string\"==typeof t&&t.endsWith(\"%\")?parseFloat(t)/100:t/e,Z=(t,e)=>\"string\"==typeof t&&t.endsWith(\"%\")?parseFloat(t)/100*e:+t;function J(t,e,i){if(t&&\"function\"==typeof t.call)return t.apply(i,e)}function Q(t,e,i,s){let n,o,a;if(Y(t))if(o=t.length,s)for(n=o-1;n>=0;n--)e.call(i,t[n],n);else for(n=0;n<o;n++)e.call(i,t[n],n);else if(U(t))for(a=Object.keys(t),o=a.length,n=0;n<o;n++)e.call(i,t[a[n]],a[n])}function tt(t,e){let i,s,n,o;if(!t||!e||t.length!==e.length)return!1;for(i=0,s=t.length;i<s;++i)if(n=t[i],o=e[i],n.datasetIndex!==o.datasetIndex||n.index!==o.index)return!1;return!0}function et(t){if(Y(t))return t.map(et);if(U(t)){const e=Object.create(null),i=Object.keys(t),s=i.length;let n=0;for(;n<s;++n)e[i[n]]=et(t[i[n]]);return e}return t}function it(t){return-1===[\"__proto__\",\"prototype\",\"constructor\"].indexOf(t)}function st(t,e,i,s){if(!it(t))return;const n=e[t],o=i[t];U(n)&&U(o)?nt(n,o,s):e[t]=et(o)}function nt(t,e,i){const s=Y(e)?e:[e],n=s.length;if(!U(t))return t;const o=(i=i||{}).merger||st;for(let a=0;a<n;++a){if(!U(e=s[a]))continue;const n=Object.keys(e);for(let s=0,a=n.length;s<a;++s)o(n[s],t,e,i)}return t}function ot(t,e){return nt(t,e,{merger:at})}function at(t,e,i){if(!it(t))return;const s=e[t],n=i[t];U(s)&&U(n)?ot(s,n):Object.prototype.hasOwnProperty.call(e,t)||(e[t]=et(n))}function rt(t,e){const i=t.indexOf(\".\",e);return-1===i?t.length:i}function lt(t,e){if(\"\"===e)return t;let i=0,s=rt(e,i);for(;t&&s>i;)t=t[e.substr(i,s-i)],i=s+1,s=rt(e,i);return t}function ht(t){return t.charAt(0).toUpperCase()+t.slice(1)}const ct=t=>void 0!==t,dt=t=>\"function\"==typeof t,ut=(t,e)=>{if(t.size!==e.size)return!1;for(const i of t)if(!e.has(i))return!1;return!0};function ft(t){return\"mouseup\"===t.type||\"click\"===t.type||\"contextmenu\"===t.type}const gt=Object.create(null),pt=Object.create(null);function mt(t,e){if(!e)return t;const i=e.split(\".\");for(let e=0,s=i.length;e<s;++e){const s=i[e];t=t[s]||(t[s]=Object.create(null))}return t}function xt(t,e,i){return\"string\"==typeof e?nt(mt(t,e),i):nt(mt(t,\"\"),e)}var bt=new class{constructor(t){this.animation=void 0,this.backgroundColor=\"rgba(0,0,0,0.1)\",this.borderColor=\"rgba(0,0,0,0.1)\",this.color=\"#666\",this.datasets={},this.devicePixelRatio=t=>t.chart.platform.getDevicePixelRatio(),this.elements={},this.events=[\"mousemove\",\"mouseout\",\"click\",\"touchstart\",\"touchmove\"],this.font={family:\"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",size:12,style:\"normal\",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(t,e)=>N(e.backgroundColor),this.hoverBorderColor=(t,e)=>N(e.borderColor),this.hoverColor=(t,e)=>N(e.color),this.indexAxis=\"x\",this.interaction={mode:\"nearest\",intersect:!0},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(t)}set(t,e){return xt(this,t,e)}get(t){return mt(this,t)}describe(t,e){return xt(pt,t,e)}override(t,e){return xt(gt,t,e)}route(t,e,i,s){const n=mt(this,t),o=mt(this,i),a=\"_\"+e;Object.defineProperties(n,{[a]:{value:n[e],writable:!0},[e]:{enumerable:!0,get(){const t=this[a],e=o[s];return U(t)?Object.assign({},e,t):K(t,e)},set(t){this[a]=t}}})}}({_scriptable:t=>!t.startsWith(\"on\"),_indexable:t=>\"events\"!==t,hover:{_fallback:\"interaction\"},interaction:{_scriptable:!1,_indexable:!1}});const _t=Math.PI,yt=2*_t,vt=yt+_t,wt=Number.POSITIVE_INFINITY,Mt=_t/180,kt=_t/2,St=_t/4,Pt=2*_t/3,Dt=Math.log10,Ct=Math.sign;function Ot(t){const e=Math.round(t);t=Lt(t,e,t/1e3)?e:t;const i=Math.pow(10,Math.floor(Dt(t))),s=t/i;return(s<=1?1:s<=2?2:s<=5?5:10)*i}function At(t){const e=[],i=Math.sqrt(t);let s;for(s=1;s<i;s++)t%s==0&&(e.push(s),e.push(t/s));return i===(0|i)&&e.push(i),e.sort(((t,e)=>t-e)).pop(),e}function Tt(t){return!isNaN(parseFloat(t))&&isFinite(t)}function Lt(t,e,i){return Math.abs(t-e)<i}function Rt(t,e){const i=Math.round(t);return i-e<=t&&i+e>=t}function Et(t,e,i){let s,n,o;for(s=0,n=t.length;s<n;s++)o=t[s][i],isNaN(o)||(e.min=Math.min(e.min,o),e.max=Math.max(e.max,o))}function It(t){return t*(_t/180)}function zt(t){return t*(180/_t)}function Ft(t){if(!X(t))return;let e=1,i=0;for(;Math.round(t*e)/e!==t;)e*=10,i++;return i}function Bt(t,e){const i=e.x-t.x,s=e.y-t.y,n=Math.sqrt(i*i+s*s);let o=Math.atan2(s,i);return o<-.5*_t&&(o+=yt),{angle:o,distance:n}}function Vt(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function Wt(t,e){return(t-e+vt)%yt-_t}function Nt(t){return(t%yt+yt)%yt}function Ht(t,e,i,s){const n=Nt(t),o=Nt(e),a=Nt(i),r=Nt(o-n),l=Nt(a-n),h=Nt(n-o),c=Nt(n-a);return n===o||n===a||s&&o===a||r>l&&h<c}function jt(t,e,i){return Math.max(e,Math.min(i,t))}function $t(t){return jt(t,-32768,32767)}function Yt(t,e,i,s=1e-6){return t>=Math.min(e,i)-s&&t<=Math.max(e,i)+s}function Ut(t){return!t||$(t.size)||$(t.family)?null:(t.style?t.style+\" \":\"\")+(t.weight?t.weight+\" \":\"\")+t.size+\"px \"+t.family}function Xt(t,e,i,s,n){let o=e[n];return o||(o=e[n]=t.measureText(n).width,i.push(n)),o>s&&(s=o),s}function qt(t,e,i,s){let n=(s=s||{}).data=s.data||{},o=s.garbageCollect=s.garbageCollect||[];s.font!==e&&(n=s.data={},o=s.garbageCollect=[],s.font=e),t.save(),t.font=e;let a=0;const r=i.length;let l,h,c,d,u;for(l=0;l<r;l++)if(d=i[l],null!=d&&!0!==Y(d))a=Xt(t,n,o,a,d);else if(Y(d))for(h=0,c=d.length;h<c;h++)u=d[h],null==u||Y(u)||(a=Xt(t,n,o,a,u));t.restore();const f=o.length/2;if(f>i.length){for(l=0;l<f;l++)delete n[o[l]];o.splice(0,f)}return a}function Kt(t,e,i){const s=t.currentDevicePixelRatio,n=0!==i?Math.max(i/2,.5):0;return Math.round((e-n)*s)/s+n}function Gt(t,e){(e=e||t.getContext(\"2d\")).save(),e.resetTransform(),e.clearRect(0,0,t.width,t.height),e.restore()}function Zt(t,e,i,s){let n,o,a,r,l;const h=e.pointStyle,c=e.rotation,d=e.radius;let u=(c||0)*Mt;if(h&&\"object\"==typeof h&&(n=h.toString(),\"[object HTMLImageElement]\"===n||\"[object HTMLCanvasElement]\"===n))return t.save(),t.translate(i,s),t.rotate(u),t.drawImage(h,-h.width/2,-h.height/2,h.width,h.height),void t.restore();if(!(isNaN(d)||d<=0)){switch(t.beginPath(),h){default:t.arc(i,s,d,0,yt),t.closePath();break;case\"triangle\":t.moveTo(i+Math.sin(u)*d,s-Math.cos(u)*d),u+=Pt,t.lineTo(i+Math.sin(u)*d,s-Math.cos(u)*d),u+=Pt,t.lineTo(i+Math.sin(u)*d,s-Math.cos(u)*d),t.closePath();break;case\"rectRounded\":l=.516*d,r=d-l,o=Math.cos(u+St)*r,a=Math.sin(u+St)*r,t.arc(i-o,s-a,l,u-_t,u-kt),t.arc(i+a,s-o,l,u-kt,u),t.arc(i+o,s+a,l,u,u+kt),t.arc(i-a,s+o,l,u+kt,u+_t),t.closePath();break;case\"rect\":if(!c){r=Math.SQRT1_2*d,t.rect(i-r,s-r,2*r,2*r);break}u+=St;case\"rectRot\":o=Math.cos(u)*d,a=Math.sin(u)*d,t.moveTo(i-o,s-a),t.lineTo(i+a,s-o),t.lineTo(i+o,s+a),t.lineTo(i-a,s+o),t.closePath();break;case\"crossRot\":u+=St;case\"cross\":o=Math.cos(u)*d,a=Math.sin(u)*d,t.moveTo(i-o,s-a),t.lineTo(i+o,s+a),t.moveTo(i+a,s-o),t.lineTo(i-a,s+o);break;case\"star\":o=Math.cos(u)*d,a=Math.sin(u)*d,t.moveTo(i-o,s-a),t.lineTo(i+o,s+a),t.moveTo(i+a,s-o),t.lineTo(i-a,s+o),u+=St,o=Math.cos(u)*d,a=Math.sin(u)*d,t.moveTo(i-o,s-a),t.lineTo(i+o,s+a),t.moveTo(i+a,s-o),t.lineTo(i-a,s+o);break;case\"line\":o=Math.cos(u)*d,a=Math.sin(u)*d,t.moveTo(i-o,s-a),t.lineTo(i+o,s+a);break;case\"dash\":t.moveTo(i,s),t.lineTo(i+Math.cos(u)*d,s+Math.sin(u)*d)}t.fill(),e.borderWidth>0&&t.stroke()}}function Jt(t,e,i){return i=i||.5,!e||t&&t.x>e.left-i&&t.x<e.right+i&&t.y>e.top-i&&t.y<e.bottom+i}function Qt(t,e){t.save(),t.beginPath(),t.rect(e.left,e.top,e.right-e.left,e.bottom-e.top),t.clip()}function te(t){t.restore()}function ee(t,e,i,s,n){if(!e)return t.lineTo(i.x,i.y);if(\"middle\"===n){const s=(e.x+i.x)/2;t.lineTo(s,e.y),t.lineTo(s,i.y)}else\"after\"===n!=!!s?t.lineTo(e.x,i.y):t.lineTo(i.x,e.y);t.lineTo(i.x,i.y)}function ie(t,e,i,s){if(!e)return t.lineTo(i.x,i.y);t.bezierCurveTo(s?e.cp1x:e.cp2x,s?e.cp1y:e.cp2y,s?i.cp2x:i.cp1x,s?i.cp2y:i.cp1y,i.x,i.y)}function se(t,e,i,s,n,o={}){const a=Y(e)?e:[e],r=o.strokeWidth>0&&\"\"!==o.strokeColor;let l,h;for(t.save(),t.font=n.string,function(t,e){e.translation&&t.translate(e.translation[0],e.translation[1]);$(e.rotation)||t.rotate(e.rotation);e.color&&(t.fillStyle=e.color);e.textAlign&&(t.textAlign=e.textAlign);e.textBaseline&&(t.textBaseline=e.textBaseline)}(t,o),l=0;l<a.length;++l)h=a[l],r&&(o.strokeColor&&(t.strokeStyle=o.strokeColor),$(o.strokeWidth)||(t.lineWidth=o.strokeWidth),t.strokeText(h,i,s,o.maxWidth)),t.fillText(h,i,s,o.maxWidth),ne(t,i,s,h,o),s+=n.lineHeight;t.restore()}function ne(t,e,i,s,n){if(n.strikethrough||n.underline){const o=t.measureText(s),a=e-o.actualBoundingBoxLeft,r=e+o.actualBoundingBoxRight,l=i-o.actualBoundingBoxAscent,h=i+o.actualBoundingBoxDescent,c=n.strikethrough?(l+h)/2:h;t.strokeStyle=t.fillStyle,t.beginPath(),t.lineWidth=n.decorationWidth||2,t.moveTo(a,c),t.lineTo(r,c),t.stroke()}}function oe(t,e){const{x:i,y:s,w:n,h:o,radius:a}=e;t.arc(i+a.topLeft,s+a.topLeft,a.topLeft,-kt,_t,!0),t.lineTo(i,s+o-a.bottomLeft),t.arc(i+a.bottomLeft,s+o-a.bottomLeft,a.bottomLeft,_t,kt,!0),t.lineTo(i+n-a.bottomRight,s+o),t.arc(i+n-a.bottomRight,s+o-a.bottomRight,a.bottomRight,kt,0,!0),t.lineTo(i+n,s+a.topRight),t.arc(i+n-a.topRight,s+a.topRight,a.topRight,0,-kt,!0),t.lineTo(i+a.topLeft,s)}function ae(t,e,i){i=i||(i=>t[i]<e);let s,n=t.length-1,o=0;for(;n-o>1;)s=o+n>>1,i(s)?o=s:n=s;return{lo:o,hi:n}}const re=(t,e,i)=>ae(t,i,(s=>t[s][e]<i)),le=(t,e,i)=>ae(t,i,(s=>t[s][e]>=i));function he(t,e,i){let s=0,n=t.length;for(;s<n&&t[s]<e;)s++;for(;n>s&&t[n-1]>i;)n--;return s>0||n<t.length?t.slice(s,n):t}const ce=[\"push\",\"pop\",\"shift\",\"splice\",\"unshift\"];function de(t,e){t._chartjs?t._chartjs.listeners.push(e):(Object.defineProperty(t,\"_chartjs\",{configurable:!0,enumerable:!1,value:{listeners:[e]}}),ce.forEach((e=>{const i=\"_onData\"+ht(e),s=t[e];Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value(...e){const n=s.apply(this,e);return t._chartjs.listeners.forEach((t=>{\"function\"==typeof t[i]&&t[i](...e)})),n}})})))}function ue(t,e){const i=t._chartjs;if(!i)return;const s=i.listeners,n=s.indexOf(e);-1!==n&&s.splice(n,1),s.length>0||(ce.forEach((e=>{delete t[e]})),delete t._chartjs)}function fe(t){const e=new Set;let i,s;for(i=0,s=t.length;i<s;++i)e.add(t[i]);return e.size===s?t:Array.from(e)}function ge(){return\"undefined\"!=typeof window&&\"undefined\"!=typeof document}function pe(t){let e=t.parentNode;return e&&\"[object ShadowRoot]\"===e.toString()&&(e=e.host),e}function me(t,e,i){let s;return\"string\"==typeof t?(s=parseInt(t,10),-1!==t.indexOf(\"%\")&&(s=s/100*e.parentNode[i])):s=t,s}const xe=t=>window.getComputedStyle(t,null);function be(t,e){return xe(t).getPropertyValue(e)}const _e=[\"top\",\"right\",\"bottom\",\"left\"];function ye(t,e,i){const s={};i=i?\"-\"+i:\"\";for(let n=0;n<4;n++){const o=_e[n];s[o]=parseFloat(t[e+\"-\"+o+i])||0}return s.width=s.left+s.right,s.height=s.top+s.bottom,s}function ve(t,e){const{canvas:i,currentDevicePixelRatio:s}=e,n=xe(i),o=\"border-box\"===n.boxSizing,a=ye(n,\"padding\"),r=ye(n,\"border\",\"width\"),{x:l,y:h,box:c}=function(t,e){const i=t.native||t,s=i.touches,n=s&&s.length?s[0]:i,{offsetX:o,offsetY:a}=n;let r,l,h=!1;if(((t,e,i)=>(t>0||e>0)&&(!i||!i.shadowRoot))(o,a,i.target))r=o,l=a;else{const t=e.getBoundingClientRect();r=n.clientX-t.left,l=n.clientY-t.top,h=!0}return{x:r,y:l,box:h}}(t,i),d=a.left+(c&&r.left),u=a.top+(c&&r.top);let{width:f,height:g}=e;return o&&(f-=a.width+r.width,g-=a.height+r.height),{x:Math.round((l-d)/f*i.width/s),y:Math.round((h-u)/g*i.height/s)}}const we=t=>Math.round(10*t)/10;function Me(t,e,i,s){const n=xe(t),o=ye(n,\"margin\"),a=me(n.maxWidth,t,\"clientWidth\")||wt,r=me(n.maxHeight,t,\"clientHeight\")||wt,l=function(t,e,i){let s,n;if(void 0===e||void 0===i){const o=pe(t);if(o){const t=o.getBoundingClientRect(),a=xe(o),r=ye(a,\"border\",\"width\"),l=ye(a,\"padding\");e=t.width-l.width-r.width,i=t.height-l.height-r.height,s=me(a.maxWidth,o,\"clientWidth\"),n=me(a.maxHeight,o,\"clientHeight\")}else e=t.clientWidth,i=t.clientHeight}return{width:e,height:i,maxWidth:s||wt,maxHeight:n||wt}}(t,e,i);let{width:h,height:c}=l;if(\"content-box\"===n.boxSizing){const t=ye(n,\"border\",\"width\"),e=ye(n,\"padding\");h-=e.width+t.width,c-=e.height+t.height}return h=Math.max(0,h-o.width),c=Math.max(0,s?Math.floor(h/s):c-o.height),h=we(Math.min(h,a,l.maxWidth)),c=we(Math.min(c,r,l.maxHeight)),h&&!c&&(c=we(h/2)),{width:h,height:c}}function ke(t,e,i){const s=e||1,n=Math.floor(t.height*s),o=Math.floor(t.width*s);t.height=n/s,t.width=o/s;const a=t.canvas;return a.style&&(i||!a.style.height&&!a.style.width)&&(a.style.height=`${t.height}px`,a.style.width=`${t.width}px`),(t.currentDevicePixelRatio!==s||a.height!==n||a.width!==o)&&(t.currentDevicePixelRatio=s,a.height=n,a.width=o,t.ctx.setTransform(s,0,0,s,0,0),!0)}const Se=function(){let t=!1;try{const e={get passive(){return t=!0,!1}};window.addEventListener(\"test\",null,e),window.removeEventListener(\"test\",null,e)}catch(t){}return t}();function Pe(t,e){const i=be(t,e),s=i&&i.match(/^(\\d+)(\\.\\d+)?px$/);return s?+s[1]:void 0}function De(t,e){return\"native\"in t?{x:t.x,y:t.y}:ve(t,e)}function Ce(t,e,i,s){const{controller:n,data:o,_sorted:a}=t,r=n._cachedMeta.iScale;if(r&&e===r.axis&&\"r\"!==e&&a&&o.length){const t=r._reversePixels?le:re;if(!s)return t(o,e,i);if(n._sharedOptions){const s=o[0],n=\"function\"==typeof s.getRange&&s.getRange(e);if(n){const s=t(o,e,i-n),a=t(o,e,i+n);return{lo:s.lo,hi:a.hi}}}}return{lo:0,hi:o.length-1}}function Oe(t,e,i,s,n){const o=t.getSortedVisibleDatasetMetas(),a=i[e];for(let t=0,i=o.length;t<i;++t){const{index:i,data:r}=o[t],{lo:l,hi:h}=Ce(o[t],e,a,n);for(let t=l;t<=h;++t){const e=r[t];e.skip||s(e,i,t)}}}function Ae(t,e,i,s){const n=[];if(!Jt(e,t.chartArea,t._minPadding))return n;return Oe(t,i,e,(function(t,i,o){t.inRange(e.x,e.y,s)&&n.push({element:t,datasetIndex:i,index:o})}),!0),n}function Te(t,e,i,s,n){let o=[];const a=function(t){const e=-1!==t.indexOf(\"x\"),i=-1!==t.indexOf(\"y\");return function(t,s){const n=e?Math.abs(t.x-s.x):0,o=i?Math.abs(t.y-s.y):0;return Math.sqrt(Math.pow(n,2)+Math.pow(o,2))}}(i);let r=Number.POSITIVE_INFINITY;return Oe(t,i,e,(function(i,l,h){const c=i.inRange(e.x,e.y,n);if(s&&!c)return;const d=i.getCenterPoint(n);if(!Jt(d,t.chartArea,t._minPadding)&&!c)return;const u=a(e,d);u<r?(o=[{element:i,datasetIndex:l,index:h}],r=u):u===r&&o.push({element:i,datasetIndex:l,index:h})})),o}function Le(t,e,i,s,n){return Jt(e,t.chartArea,t._minPadding)?\"r\"!==i||s?Te(t,e,i,s,n):function(t,e,i,s){let n=[];return Oe(t,i,e,(function(t,i,o){const{startAngle:a,endAngle:r}=t.getProps([\"startAngle\",\"endAngle\"],s),{angle:l}=Bt(t,{x:e.x,y:e.y});Ht(l,a,r)&&n.push({element:t,datasetIndex:i,index:o})})),n}(t,e,i,n):[]}function Re(t,e,i,s){const n=De(e,t),o=[],a=i.axis,r=\"x\"===a?\"inXRange\":\"inYRange\";let l=!1;return function(t,e){const i=t.getSortedVisibleDatasetMetas();let s,n,o;for(let t=0,a=i.length;t<a;++t){({index:s,data:n}=i[t]);for(let t=0,i=n.length;t<i;++t)o=n[t],o.skip||e(o,s,t)}}(t,((t,e,i)=>{t[r](n[a],s)&&o.push({element:t,datasetIndex:e,index:i}),t.inRange(n.x,n.y,s)&&(l=!0)})),i.intersect&&!l?[]:o}var Ee={modes:{index(t,e,i,s){const n=De(e,t),o=i.axis||\"x\",a=i.intersect?Ae(t,n,o,s):Le(t,n,o,!1,s),r=[];return a.length?(t.getSortedVisibleDatasetMetas().forEach((t=>{const e=a[0].index,i=t.data[e];i&&!i.skip&&r.push({element:i,datasetIndex:t.index,index:e})})),r):[]},dataset(t,e,i,s){const n=De(e,t),o=i.axis||\"xy\";let a=i.intersect?Ae(t,n,o,s):Le(t,n,o,!1,s);if(a.length>0){const e=a[0].datasetIndex,i=t.getDatasetMeta(e).data;a=[];for(let t=0;t<i.length;++t)a.push({element:i[t],datasetIndex:e,index:t})}return a},point:(t,e,i,s)=>Ae(t,De(e,t),i.axis||\"xy\",s),nearest:(t,e,i,s)=>Le(t,De(e,t),i.axis||\"xy\",i.intersect,s),x:(t,e,i,s)=>Re(t,e,{axis:\"x\",intersect:i.intersect},s),y:(t,e,i,s)=>Re(t,e,{axis:\"y\",intersect:i.intersect},s)}};const Ie=new RegExp(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/),ze=new RegExp(/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/);function Fe(t,e){const i=(\"\"+t).match(Ie);if(!i||\"normal\"===i[1])return 1.2*e;switch(t=+i[2],i[3]){case\"px\":return t;case\"%\":t/=100}return e*t}function Be(t,e){const i={},s=U(e),n=s?Object.keys(e):e,o=U(t)?s?i=>K(t[i],t[e[i]]):e=>t[e]:()=>t;for(const t of n)i[t]=+o(t)||0;return i}function Ve(t){return Be(t,{top:\"y\",right:\"x\",bottom:\"y\",left:\"x\"})}function We(t){return Be(t,[\"topLeft\",\"topRight\",\"bottomLeft\",\"bottomRight\"])}function Ne(t){const e=Ve(t);return e.width=e.left+e.right,e.height=e.top+e.bottom,e}function He(t,e){t=t||{},e=e||bt.font;let i=K(t.size,e.size);\"string\"==typeof i&&(i=parseInt(i,10));let s=K(t.style,e.style);s&&!(\"\"+s).match(ze)&&(console.warn('Invalid font style specified: \"'+s+'\"'),s=\"\");const n={family:K(t.family,e.family),lineHeight:Fe(K(t.lineHeight,e.lineHeight),i),size:i,style:s,weight:K(t.weight,e.weight),string:\"\"};return n.string=Ut(n),n}function je(t,e,i,s){let n,o,a,r=!0;for(n=0,o=t.length;n<o;++n)if(a=t[n],void 0!==a&&(void 0!==e&&\"function\"==typeof a&&(a=a(e),r=!1),void 0!==i&&Y(a)&&(a=a[i%a.length],r=!1),void 0!==a))return s&&!r&&(s.cacheable=!1),a}function $e(t,e,i){const{min:s,max:n}=t,o=Z(e,(n-s)/2),a=(t,e)=>i&&0===t?0:t+e;return{min:a(s,-Math.abs(o)),max:a(n,o)}}function Ye(t,e){return Object.assign(Object.create(t),e)}const Ue=[\"left\",\"top\",\"right\",\"bottom\"];function Xe(t,e){return t.filter((t=>t.pos===e))}function qe(t,e){return t.filter((t=>-1===Ue.indexOf(t.pos)&&t.box.axis===e))}function Ke(t,e){return t.sort(((t,i)=>{const s=e?i:t,n=e?t:i;return s.weight===n.weight?s.index-n.index:s.weight-n.weight}))}function Ge(t,e){const i=function(t){const e={};for(const i of t){const{stack:t,pos:s,stackWeight:n}=i;if(!t||!Ue.includes(s))continue;const o=e[t]||(e[t]={count:0,placed:0,weight:0,size:0});o.count++,o.weight+=n}return e}(t),{vBoxMaxWidth:s,hBoxMaxHeight:n}=e;let o,a,r;for(o=0,a=t.length;o<a;++o){r=t[o];const{fullSize:a}=r.box,l=i[r.stack],h=l&&r.stackWeight/l.weight;r.horizontal?(r.width=h?h*s:a&&e.availableWidth,r.height=n):(r.width=s,r.height=h?h*n:a&&e.availableHeight)}return i}function Ze(t,e,i,s){return Math.max(t[i],e[i])+Math.max(t[s],e[s])}function Je(t,e){t.top=Math.max(t.top,e.top),t.left=Math.max(t.left,e.left),t.bottom=Math.max(t.bottom,e.bottom),t.right=Math.max(t.right,e.right)}function Qe(t,e,i,s){const{pos:n,box:o}=i,a=t.maxPadding;if(!U(n)){i.size&&(t[n]-=i.size);const e=s[i.stack]||{size:0,count:1};e.size=Math.max(e.size,i.horizontal?o.height:o.width),i.size=e.size/e.count,t[n]+=i.size}o.getPadding&&Je(a,o.getPadding());const r=Math.max(0,e.outerWidth-Ze(a,t,\"left\",\"right\")),l=Math.max(0,e.outerHeight-Ze(a,t,\"top\",\"bottom\")),h=r!==t.w,c=l!==t.h;return t.w=r,t.h=l,i.horizontal?{same:h,other:c}:{same:c,other:h}}function ti(t,e){const i=e.maxPadding;function s(t){const s={left:0,top:0,right:0,bottom:0};return t.forEach((t=>{s[t]=Math.max(e[t],i[t])})),s}return s(t?[\"left\",\"right\"]:[\"top\",\"bottom\"])}function ei(t,e,i,s){const n=[];let o,a,r,l,h,c;for(o=0,a=t.length,h=0;o<a;++o){r=t[o],l=r.box,l.update(r.width||e.w,r.height||e.h,ti(r.horizontal,e));const{same:a,other:d}=Qe(e,i,r,s);h|=a&&n.length,c=c||d,l.fullSize||n.push(r)}return h&&ei(n,e,i,s)||c}function ii(t,e,i,s,n){t.top=i,t.left=e,t.right=e+s,t.bottom=i+n,t.width=s,t.height=n}function si(t,e,i,s){const n=i.padding;let{x:o,y:a}=e;for(const r of t){const t=r.box,l=s[r.stack]||{count:1,placed:0,weight:1},h=r.stackWeight/l.weight||1;if(r.horizontal){const s=e.w*h,o=l.size||t.height;ct(l.start)&&(a=l.start),t.fullSize?ii(t,n.left,a,i.outerWidth-n.right-n.left,o):ii(t,e.left+l.placed,a,s,o),l.start=a,l.placed+=s,a=t.bottom}else{const s=e.h*h,a=l.size||t.width;ct(l.start)&&(o=l.start),t.fullSize?ii(t,o,n.top,a,i.outerHeight-n.bottom-n.top):ii(t,o,e.top+l.placed,a,s),l.start=o,l.placed+=s,o=t.right}}e.x=o,e.y=a}bt.set(\"layout\",{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}});var ni={addBox(t,e){t.boxes||(t.boxes=[]),e.fullSize=e.fullSize||!1,e.position=e.position||\"top\",e.weight=e.weight||0,e._layers=e._layers||function(){return[{z:0,draw(t){e.draw(t)}}]},t.boxes.push(e)},removeBox(t,e){const i=t.boxes?t.boxes.indexOf(e):-1;-1!==i&&t.boxes.splice(i,1)},configure(t,e,i){e.fullSize=i.fullSize,e.position=i.position,e.weight=i.weight},update(t,e,i,s){if(!t)return;const n=Ne(t.options.layout.padding),o=Math.max(e-n.width,0),a=Math.max(i-n.height,0),r=function(t){const e=function(t){const e=[];let i,s,n,o,a,r;for(i=0,s=(t||[]).length;i<s;++i)n=t[i],({position:o,options:{stack:a,stackWeight:r=1}}=n),e.push({index:i,box:n,pos:o,horizontal:n.isHorizontal(),weight:n.weight,stack:a&&o+a,stackWeight:r});return e}(t),i=Ke(e.filter((t=>t.box.fullSize)),!0),s=Ke(Xe(e,\"left\"),!0),n=Ke(Xe(e,\"right\")),o=Ke(Xe(e,\"top\"),!0),a=Ke(Xe(e,\"bottom\")),r=qe(e,\"x\"),l=qe(e,\"y\");return{fullSize:i,leftAndTop:s.concat(o),rightAndBottom:n.concat(l).concat(a).concat(r),chartArea:Xe(e,\"chartArea\"),vertical:s.concat(n).concat(l),horizontal:o.concat(a).concat(r)}}(t.boxes),l=r.vertical,h=r.horizontal;Q(t.boxes,(t=>{\"function\"==typeof t.beforeLayout&&t.beforeLayout()}));const c=l.reduce(((t,e)=>e.box.options&&!1===e.box.options.display?t:t+1),0)||1,d=Object.freeze({outerWidth:e,outerHeight:i,padding:n,availableWidth:o,availableHeight:a,vBoxMaxWidth:o/2/c,hBoxMaxHeight:a/2}),u=Object.assign({},n);Je(u,Ne(s));const f=Object.assign({maxPadding:u,w:o,h:a,x:n.left,y:n.top},n),g=Ge(l.concat(h),d);ei(r.fullSize,f,d,g),ei(l,f,d,g),ei(h,f,d,g)&&ei(l,f,d,g),function(t){const e=t.maxPadding;function i(i){const s=Math.max(e[i]-t[i],0);return t[i]+=s,s}t.y+=i(\"top\"),t.x+=i(\"left\"),i(\"right\"),i(\"bottom\")}(f),si(r.leftAndTop,f,d,g),f.x+=f.w,f.y+=f.h,si(r.rightAndBottom,f,d,g),t.chartArea={left:f.left,top:f.top,right:f.left+f.w,bottom:f.top+f.h,height:f.h,width:f.w},Q(r.chartArea,(e=>{const i=e.box;Object.assign(i,t.chartArea),i.update(f.w,f.h,{left:0,top:0,right:0,bottom:0})}))}};function oi(t,e=[\"\"],i=t,s,n=(()=>t[0])){ct(s)||(s=mi(\"_fallback\",t));const o={[Symbol.toStringTag]:\"Object\",_cacheable:!0,_scopes:t,_rootScopes:i,_fallback:s,_getTarget:n,override:n=>oi([n,...t],e,i,s)};return new Proxy(o,{deleteProperty:(e,i)=>(delete e[i],delete e._keys,delete t[0][i],!0),get:(i,s)=>ci(i,s,(()=>function(t,e,i,s){let n;for(const o of e)if(n=mi(li(o,t),i),ct(n))return hi(t,n)?gi(i,s,t,n):n}(s,e,t,i))),getOwnPropertyDescriptor:(t,e)=>Reflect.getOwnPropertyDescriptor(t._scopes[0],e),getPrototypeOf:()=>Reflect.getPrototypeOf(t[0]),has:(t,e)=>xi(t).includes(e),ownKeys:t=>xi(t),set(t,e,i){const s=t._storage||(t._storage=n());return t[e]=s[e]=i,delete t._keys,!0}})}function ai(t,e,i,s){const n={_cacheable:!1,_proxy:t,_context:e,_subProxy:i,_stack:new Set,_descriptors:ri(t,s),setContext:e=>ai(t,e,i,s),override:n=>ai(t.override(n),e,i,s)};return new Proxy(n,{deleteProperty:(e,i)=>(delete e[i],delete t[i],!0),get:(t,e,i)=>ci(t,e,(()=>function(t,e,i){const{_proxy:s,_context:n,_subProxy:o,_descriptors:a}=t;let r=s[e];dt(r)&&a.isScriptable(e)&&(r=function(t,e,i,s){const{_proxy:n,_context:o,_subProxy:a,_stack:r}=i;if(r.has(t))throw new Error(\"Recursion detected: \"+Array.from(r).join(\"->\")+\"->\"+t);r.add(t),e=e(o,a||s),r.delete(t),hi(t,e)&&(e=gi(n._scopes,n,t,e));return e}(e,r,t,i));Y(r)&&r.length&&(r=function(t,e,i,s){const{_proxy:n,_context:o,_subProxy:a,_descriptors:r}=i;if(ct(o.index)&&s(t))e=e[o.index%e.length];else if(U(e[0])){const i=e,s=n._scopes.filter((t=>t!==i));e=[];for(const l of i){const i=gi(s,n,t,l);e.push(ai(i,o,a&&a[t],r))}}return e}(e,r,t,a.isIndexable));hi(e,r)&&(r=ai(r,n,o&&o[e],a));return r}(t,e,i))),getOwnPropertyDescriptor:(e,i)=>e._descriptors.allKeys?Reflect.has(t,i)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(t,i),getPrototypeOf:()=>Reflect.getPrototypeOf(t),has:(e,i)=>Reflect.has(t,i),ownKeys:()=>Reflect.ownKeys(t),set:(e,i,s)=>(t[i]=s,delete e[i],!0)})}function ri(t,e={scriptable:!0,indexable:!0}){const{_scriptable:i=e.scriptable,_indexable:s=e.indexable,_allKeys:n=e.allKeys}=t;return{allKeys:n,scriptable:i,indexable:s,isScriptable:dt(i)?i:()=>i,isIndexable:dt(s)?s:()=>s}}const li=(t,e)=>t?t+ht(e):e,hi=(t,e)=>U(e)&&\"adapters\"!==t&&(null===Object.getPrototypeOf(e)||e.constructor===Object);function ci(t,e,i){if(Object.prototype.hasOwnProperty.call(t,e))return t[e];const s=i();return t[e]=s,s}function di(t,e,i){return dt(t)?t(e,i):t}const ui=(t,e)=>!0===t?e:\"string\"==typeof t?lt(e,t):void 0;function fi(t,e,i,s,n){for(const o of e){const e=ui(i,o);if(e){t.add(e);const o=di(e._fallback,i,n);if(ct(o)&&o!==i&&o!==s)return o}else if(!1===e&&ct(s)&&i!==s)return null}return!1}function gi(t,e,i,s){const n=e._rootScopes,o=di(e._fallback,i,s),a=[...t,...n],r=new Set;r.add(s);let l=pi(r,a,i,o||i,s);return null!==l&&((!ct(o)||o===i||(l=pi(r,a,o,l,s),null!==l))&&oi(Array.from(r),[\"\"],n,o,(()=>function(t,e,i){const s=t._getTarget();e in s||(s[e]={});const n=s[e];if(Y(n)&&U(i))return i;return n}(e,i,s))))}function pi(t,e,i,s,n){for(;i;)i=fi(t,e,i,s,n);return i}function mi(t,e){for(const i of e){if(!i)continue;const e=i[t];if(ct(e))return e}}function xi(t){let e=t._keys;return e||(e=t._keys=function(t){const e=new Set;for(const i of t)for(const t of Object.keys(i).filter((t=>!t.startsWith(\"_\"))))e.add(t);return Array.from(e)}(t._scopes)),e}const bi=Number.EPSILON||1e-14,_i=(t,e)=>e<t.length&&!t[e].skip&&t[e],yi=t=>\"x\"===t?\"y\":\"x\";function vi(t,e,i,s){const n=t.skip?e:t,o=e,a=i.skip?e:i,r=Vt(o,n),l=Vt(a,o);let h=r/(r+l),c=l/(r+l);h=isNaN(h)?0:h,c=isNaN(c)?0:c;const d=s*h,u=s*c;return{previous:{x:o.x-d*(a.x-n.x),y:o.y-d*(a.y-n.y)},next:{x:o.x+u*(a.x-n.x),y:o.y+u*(a.y-n.y)}}}function wi(t,e=\"x\"){const i=yi(e),s=t.length,n=Array(s).fill(0),o=Array(s);let a,r,l,h=_i(t,0);for(a=0;a<s;++a)if(r=l,l=h,h=_i(t,a+1),l){if(h){const t=h[e]-l[e];n[a]=0!==t?(h[i]-l[i])/t:0}o[a]=r?h?Ct(n[a-1])!==Ct(n[a])?0:(n[a-1]+n[a])/2:n[a-1]:n[a]}!function(t,e,i){const s=t.length;let n,o,a,r,l,h=_i(t,0);for(let c=0;c<s-1;++c)l=h,h=_i(t,c+1),l&&h&&(Lt(e[c],0,bi)?i[c]=i[c+1]=0:(n=i[c]/e[c],o=i[c+1]/e[c],r=Math.pow(n,2)+Math.pow(o,2),r<=9||(a=3/Math.sqrt(r),i[c]=n*a*e[c],i[c+1]=o*a*e[c])))}(t,n,o),function(t,e,i=\"x\"){const s=yi(i),n=t.length;let o,a,r,l=_i(t,0);for(let h=0;h<n;++h){if(a=r,r=l,l=_i(t,h+1),!r)continue;const n=r[i],c=r[s];a&&(o=(n-a[i])/3,r[`cp1${i}`]=n-o,r[`cp1${s}`]=c-o*e[h]),l&&(o=(l[i]-n)/3,r[`cp2${i}`]=n+o,r[`cp2${s}`]=c+o*e[h])}}(t,o,e)}function Mi(t,e,i){return Math.max(Math.min(t,i),e)}function ki(t,e,i,s,n){let o,a,r,l;if(e.spanGaps&&(t=t.filter((t=>!t.skip))),\"monotone\"===e.cubicInterpolationMode)wi(t,n);else{let i=s?t[t.length-1]:t[0];for(o=0,a=t.length;o<a;++o)r=t[o],l=vi(i,r,t[Math.min(o+1,a-(s?0:1))%a],e.tension),r.cp1x=l.previous.x,r.cp1y=l.previous.y,r.cp2x=l.next.x,r.cp2y=l.next.y,i=r}e.capBezierPoints&&function(t,e){let i,s,n,o,a,r=Jt(t[0],e);for(i=0,s=t.length;i<s;++i)a=o,o=r,r=i<s-1&&Jt(t[i+1],e),o&&(n=t[i],a&&(n.cp1x=Mi(n.cp1x,e.left,e.right),n.cp1y=Mi(n.cp1y,e.top,e.bottom)),r&&(n.cp2x=Mi(n.cp2x,e.left,e.right),n.cp2y=Mi(n.cp2y,e.top,e.bottom)))}(t,i)}const Si=t=>0===t||1===t,Pi=(t,e,i)=>-Math.pow(2,10*(t-=1))*Math.sin((t-e)*yt/i),Di=(t,e,i)=>Math.pow(2,-10*t)*Math.sin((t-e)*yt/i)+1,Ci={linear:t=>t,easeInQuad:t=>t*t,easeOutQuad:t=>-t*(t-2),easeInOutQuad:t=>(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1),easeInCubic:t=>t*t*t,easeOutCubic:t=>(t-=1)*t*t+1,easeInOutCubic:t=>(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2),easeInQuart:t=>t*t*t*t,easeOutQuart:t=>-((t-=1)*t*t*t-1),easeInOutQuart:t=>(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2),easeInQuint:t=>t*t*t*t*t,easeOutQuint:t=>(t-=1)*t*t*t*t+1,easeInOutQuint:t=>(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2),easeInSine:t=>1-Math.cos(t*kt),easeOutSine:t=>Math.sin(t*kt),easeInOutSine:t=>-.5*(Math.cos(_t*t)-1),easeInExpo:t=>0===t?0:Math.pow(2,10*(t-1)),easeOutExpo:t=>1===t?1:1-Math.pow(2,-10*t),easeInOutExpo:t=>Si(t)?t:t<.5?.5*Math.pow(2,10*(2*t-1)):.5*(2-Math.pow(2,-10*(2*t-1))),easeInCirc:t=>t>=1?t:-(Math.sqrt(1-t*t)-1),easeOutCirc:t=>Math.sqrt(1-(t-=1)*t),easeInOutCirc:t=>(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1),easeInElastic:t=>Si(t)?t:Pi(t,.075,.3),easeOutElastic:t=>Si(t)?t:Di(t,.075,.3),easeInOutElastic(t){const e=.1125;return Si(t)?t:t<.5?.5*Pi(2*t,e,.45):.5+.5*Di(2*t-1,e,.45)},easeInBack(t){const e=1.70158;return t*t*((e+1)*t-e)},easeOutBack(t){const e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},easeInOutBack(t){let e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:t=>1-Ci.easeOutBounce(1-t),easeOutBounce(t){const e=7.5625,i=2.75;return t<1/i?e*t*t:t<2/i?e*(t-=1.5/i)*t+.75:t<2.5/i?e*(t-=2.25/i)*t+.9375:e*(t-=2.625/i)*t+.984375},easeInOutBounce:t=>t<.5?.5*Ci.easeInBounce(2*t):.5*Ci.easeOutBounce(2*t-1)+.5};function Oi(t,e,i,s){return{x:t.x+i*(e.x-t.x),y:t.y+i*(e.y-t.y)}}function Ai(t,e,i,s){return{x:t.x+i*(e.x-t.x),y:\"middle\"===s?i<.5?t.y:e.y:\"after\"===s?i<1?t.y:e.y:i>0?e.y:t.y}}function Ti(t,e,i,s){const n={x:t.cp2x,y:t.cp2y},o={x:e.cp1x,y:e.cp1y},a=Oi(t,n,i),r=Oi(n,o,i),l=Oi(o,e,i),h=Oi(a,r,i),c=Oi(r,l,i);return Oi(h,c,i)}const Li=new Map;function Ri(t,e,i){return function(t,e){e=e||{};const i=t+JSON.stringify(e);let s=Li.get(i);return s||(s=new Intl.NumberFormat(t,e),Li.set(i,s)),s}(e,i).format(t)}function Ei(t,e,i){return t?function(t,e){return{x:i=>t+t+e-i,setWidth(t){e=t},textAlign:t=>\"center\"===t?t:\"right\"===t?\"left\":\"right\",xPlus:(t,e)=>t-e,leftForLtr:(t,e)=>t-e}}(e,i):{x:t=>t,setWidth(t){},textAlign:t=>t,xPlus:(t,e)=>t+e,leftForLtr:(t,e)=>t}}function Ii(t,e){let i,s;\"ltr\"!==e&&\"rtl\"!==e||(i=t.canvas.style,s=[i.getPropertyValue(\"direction\"),i.getPropertyPriority(\"direction\")],i.setProperty(\"direction\",e,\"important\"),t.prevTextDirection=s)}function zi(t,e){void 0!==e&&(delete t.prevTextDirection,t.canvas.style.setProperty(\"direction\",e[0],e[1]))}function Fi(t){return\"angle\"===t?{between:Ht,compare:Wt,normalize:Nt}:{between:Yt,compare:(t,e)=>t-e,normalize:t=>t}}function Bi({start:t,end:e,count:i,loop:s,style:n}){return{start:t%i,end:e%i,loop:s&&(e-t+1)%i==0,style:n}}function Vi(t,e,i){if(!i)return[t];const{property:s,start:n,end:o}=i,a=e.length,{compare:r,between:l,normalize:h}=Fi(s),{start:c,end:d,loop:u,style:f}=function(t,e,i){const{property:s,start:n,end:o}=i,{between:a,normalize:r}=Fi(s),l=e.length;let h,c,{start:d,end:u,loop:f}=t;if(f){for(d+=l,u+=l,h=0,c=l;h<c&&a(r(e[d%l][s]),n,o);++h)d--,u--;d%=l,u%=l}return u<d&&(u+=l),{start:d,end:u,loop:f,style:t.style}}(t,e,i),g=[];let p,m,x,b=!1,_=null;const y=()=>b||l(n,x,p)&&0!==r(n,x),v=()=>!b||0===r(o,p)||l(o,x,p);for(let t=c,i=c;t<=d;++t)m=e[t%a],m.skip||(p=h(m[s]),p!==x&&(b=l(p,n,o),null===_&&y()&&(_=0===r(p,n)?t:i),null!==_&&v()&&(g.push(Bi({start:_,end:t,loop:u,count:a,style:f})),_=null),i=t,x=p));return null!==_&&g.push(Bi({start:_,end:d,loop:u,count:a,style:f})),g}function Wi(t,e){const i=[],s=t.segments;for(let n=0;n<s.length;n++){const o=Vi(s[n],t.points,e);o.length&&i.push(...o)}return i}function Ni(t,e){const i=t.points,s=t.options.spanGaps,n=i.length;if(!n)return[];const o=!!t._loop,{start:a,end:r}=function(t,e,i,s){let n=0,o=e-1;if(i&&!s)for(;n<e&&!t[n].skip;)n++;for(;n<e&&t[n].skip;)n++;for(n%=e,i&&(o+=n);o>n&&t[o%e].skip;)o--;return o%=e,{start:n,end:o}}(i,n,o,s);if(!0===s)return Hi(t,[{start:a,end:r,loop:o}],i,e);return Hi(t,function(t,e,i,s){const n=t.length,o=[];let a,r=e,l=t[e];for(a=e+1;a<=i;++a){const i=t[a%n];i.skip||i.stop?l.skip||(s=!1,o.push({start:e%n,end:(a-1)%n,loop:s}),e=r=i.stop?a:null):(r=a,l.skip&&(e=a)),l=i}return null!==r&&o.push({start:e%n,end:r%n,loop:s}),o}(i,a,r<a?r+n:r,!!t._fullLoop&&0===a&&r===n-1),i,e)}function Hi(t,e,i,s){return s&&s.setContext&&i?function(t,e,i,s){const n=t._chart.getContext(),o=ji(t.options),{_datasetIndex:a,options:{spanGaps:r}}=t,l=i.length,h=[];let c=o,d=e[0].start,u=d;function f(t,e,s,n){const o=r?-1:1;if(t!==e){for(t+=l;i[t%l].skip;)t-=o;for(;i[e%l].skip;)e+=o;t%l!=e%l&&(h.push({start:t%l,end:e%l,loop:s,style:n}),c=n,d=e%l)}}for(const t of e){d=r?d:t.start;let e,o=i[d%l];for(u=d+1;u<=t.end;u++){const r=i[u%l];e=ji(s.setContext(Ye(n,{type:\"segment\",p0:o,p1:r,p0DataIndex:(u-1)%l,p1DataIndex:u%l,datasetIndex:a}))),$i(e,c)&&f(d,u-1,t.loop,c),o=r,c=e}d<u-1&&f(d,u-1,t.loop,c)}return h}(t,e,i,s):e}function ji(t){return{backgroundColor:t.backgroundColor,borderCapStyle:t.borderCapStyle,borderDash:t.borderDash,borderDashOffset:t.borderDashOffset,borderJoinStyle:t.borderJoinStyle,borderWidth:t.borderWidth,borderColor:t.borderColor}}function $i(t,e){return e&&JSON.stringify(t)!==JSON.stringify(e)}var Yi=Object.freeze({__proto__:null,easingEffects:Ci,color:W,getHoverColor:N,noop:H,uid:j,isNullOrUndef:$,isArray:Y,isObject:U,isFinite:X,finiteOrDefault:q,valueOrDefault:K,toPercentage:G,toDimension:Z,callback:J,each:Q,_elementsEqual:tt,clone:et,_merger:st,merge:nt,mergeIf:ot,_mergerIf:at,_deprecated:function(t,e,i,s){void 0!==e&&console.warn(t+': \"'+i+'\" is deprecated. Please use \"'+s+'\" instead')},resolveObjectKey:lt,_capitalize:ht,defined:ct,isFunction:dt,setsEqual:ut,_isClickEvent:ft,toFontString:Ut,_measureText:Xt,_longestText:qt,_alignPixel:Kt,clearCanvas:Gt,drawPoint:Zt,_isPointInArea:Jt,clipArea:Qt,unclipArea:te,_steppedLineTo:ee,_bezierCurveTo:ie,renderText:se,addRoundedRectPath:oe,_lookup:ae,_lookupByKey:re,_rlookupByKey:le,_filterBetween:he,listenArrayEvents:de,unlistenArrayEvents:ue,_arrayUnique:fe,_createResolver:oi,_attachContext:ai,_descriptors:ri,splineCurve:vi,splineCurveMonotone:wi,_updateBezierControlPoints:ki,_isDomSupported:ge,_getParentNode:pe,getStyle:be,getRelativePosition:ve,getMaximumSize:Me,retinaScale:ke,supportsEventListenerOptions:Se,readUsedSize:Pe,fontString:function(t,e,i){return e+\" \"+t+\"px \"+i},requestAnimFrame:t,throttled:e,debounce:i,_toLeftRightCenter:s,_alignStartEnd:n,_textX:o,_pointInLine:Oi,_steppedInterpolation:Ai,_bezierInterpolation:Ti,formatNumber:Ri,toLineHeight:Fe,_readValueToProps:Be,toTRBL:Ve,toTRBLCorners:We,toPadding:Ne,toFont:He,resolve:je,_addGrace:$e,createContext:Ye,PI:_t,TAU:yt,PITAU:vt,INFINITY:wt,RAD_PER_DEG:Mt,HALF_PI:kt,QUARTER_PI:St,TWO_THIRDS_PI:Pt,log10:Dt,sign:Ct,niceNum:Ot,_factorize:At,isNumber:Tt,almostEquals:Lt,almostWhole:Rt,_setMinAndMaxByKey:Et,toRadians:It,toDegrees:zt,_decimalPlaces:Ft,getAngleFromPoint:Bt,distanceBetweenPoints:Vt,_angleDiff:Wt,_normalizeAngle:Nt,_angleBetween:Ht,_limitValue:jt,_int16Range:$t,_isBetween:Yt,getRtlAdapter:Ei,overrideTextDirection:Ii,restoreTextDirection:zi,_boundSegment:Vi,_boundSegments:Wi,_computeSegments:Ni});class Ui{acquireContext(t,e){}releaseContext(t){return!1}addEventListener(t,e,i){}removeEventListener(t,e,i){}getDevicePixelRatio(){return 1}getMaximumSize(t,e,i,s){return e=Math.max(0,e||t.width),i=i||t.height,{width:e,height:Math.max(0,s?Math.floor(e/s):i)}}isAttached(t){return!0}updateConfig(t){}}class Xi extends Ui{acquireContext(t){return t&&t.getContext&&t.getContext(\"2d\")||null}updateConfig(t){t.options.animation=!1}}const qi={touchstart:\"mousedown\",touchmove:\"mousemove\",touchend:\"mouseup\",pointerenter:\"mouseenter\",pointerdown:\"mousedown\",pointermove:\"mousemove\",pointerup:\"mouseup\",pointerleave:\"mouseout\",pointerout:\"mouseout\"},Ki=t=>null===t||\"\"===t;const Gi=!!Se&&{passive:!0};function Zi(t,e,i){t.canvas.removeEventListener(e,i,Gi)}function Ji(t,e){for(const i of t)if(i===e||i.contains(e))return!0}function Qi(t,e,i){const s=t.canvas,n=new MutationObserver((t=>{let e=!1;for(const i of t)e=e||Ji(i.addedNodes,s),e=e&&!Ji(i.removedNodes,s);e&&i()}));return n.observe(document,{childList:!0,subtree:!0}),n}function ts(t,e,i){const s=t.canvas,n=new MutationObserver((t=>{let e=!1;for(const i of t)e=e||Ji(i.removedNodes,s),e=e&&!Ji(i.addedNodes,s);e&&i()}));return n.observe(document,{childList:!0,subtree:!0}),n}const es=new Map;let is=0;function ss(){const t=window.devicePixelRatio;t!==is&&(is=t,es.forEach(((e,i)=>{i.currentDevicePixelRatio!==t&&e()})))}function ns(t,i,s){const n=t.canvas,o=n&&pe(n);if(!o)return;const a=e(((t,e)=>{const i=o.clientWidth;s(t,e),i<o.clientWidth&&s()}),window),r=new ResizeObserver((t=>{const e=t[0],i=e.contentRect.width,s=e.contentRect.height;0===i&&0===s||a(i,s)}));return r.observe(o),function(t,e){es.size||window.addEventListener(\"resize\",ss),es.set(t,e)}(t,a),r}function os(t,e,i){i&&i.disconnect(),\"resize\"===e&&function(t){es.delete(t),es.size||window.removeEventListener(\"resize\",ss)}(t)}function as(t,i,s){const n=t.canvas,o=e((e=>{null!==t.ctx&&s(function(t,e){const i=qi[t.type]||t.type,{x:s,y:n}=ve(t,e);return{type:i,chart:e,native:t,x:void 0!==s?s:null,y:void 0!==n?n:null}}(e,t))}),t,(t=>{const e=t[0];return[e,e.offsetX,e.offsetY]}));return function(t,e,i){t.addEventListener(e,i,Gi)}(n,i,o),o}class rs extends Ui{acquireContext(t,e){const i=t&&t.getContext&&t.getContext(\"2d\");return i&&i.canvas===t?(function(t,e){const i=t.style,s=t.getAttribute(\"height\"),n=t.getAttribute(\"width\");if(t.$chartjs={initial:{height:s,width:n,style:{display:i.display,height:i.height,width:i.width}}},i.display=i.display||\"block\",i.boxSizing=i.boxSizing||\"border-box\",Ki(n)){const e=Pe(t,\"width\");void 0!==e&&(t.width=e)}if(Ki(s))if(\"\"===t.style.height)t.height=t.width/(e||2);else{const e=Pe(t,\"height\");void 0!==e&&(t.height=e)}}(t,e),i):null}releaseContext(t){const e=t.canvas;if(!e.$chartjs)return!1;const i=e.$chartjs.initial;[\"height\",\"width\"].forEach((t=>{const s=i[t];$(s)?e.removeAttribute(t):e.setAttribute(t,s)}));const s=i.style||{};return Object.keys(s).forEach((t=>{e.style[t]=s[t]})),e.width=e.width,delete e.$chartjs,!0}addEventListener(t,e,i){this.removeEventListener(t,e);const s=t.$proxies||(t.$proxies={}),n={attach:Qi,detach:ts,resize:ns}[e]||as;s[e]=n(t,e,i)}removeEventListener(t,e){const i=t.$proxies||(t.$proxies={}),s=i[e];if(!s)return;({attach:os,detach:os,resize:os}[e]||Zi)(t,e,s),i[e]=void 0}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(t,e,i,s){return Me(t,e,i,s)}isAttached(t){const e=pe(t);return!(!e||!e.isConnected)}}function ls(t){return!ge()||\"undefined\"!=typeof OffscreenCanvas&&t instanceof OffscreenCanvas?Xi:rs}var hs=Object.freeze({__proto__:null,_detectPlatform:ls,BasePlatform:Ui,BasicPlatform:Xi,DomPlatform:rs});const cs=\"transparent\",ds={boolean:(t,e,i)=>i>.5?e:t,color(t,e,i){const s=W(t||cs),n=s.valid&&W(e||cs);return n&&n.valid?n.mix(s,i).hexString():e},number:(t,e,i)=>t+(e-t)*i};class us{constructor(t,e,i,s){const n=e[i];s=je([t.to,s,n,t.from]);const o=je([t.from,n,s]);this._active=!0,this._fn=t.fn||ds[t.type||typeof o],this._easing=Ci[t.easing]||Ci.linear,this._start=Math.floor(Date.now()+(t.delay||0)),this._duration=this._total=Math.floor(t.duration),this._loop=!!t.loop,this._target=e,this._prop=i,this._from=o,this._to=s,this._promises=void 0}active(){return this._active}update(t,e,i){if(this._active){this._notify(!1);const s=this._target[this._prop],n=i-this._start,o=this._duration-n;this._start=i,this._duration=Math.floor(Math.max(o,t.duration)),this._total+=n,this._loop=!!t.loop,this._to=je([t.to,e,s,t.from]),this._from=je([t.from,s,e])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(t){const e=t-this._start,i=this._duration,s=this._prop,n=this._from,o=this._loop,a=this._to;let r;if(this._active=n!==a&&(o||e<i),!this._active)return this._target[s]=a,void this._notify(!0);e<0?this._target[s]=n:(r=e/i%2,r=o&&r>1?2-r:r,r=this._easing(Math.min(1,Math.max(0,r))),this._target[s]=this._fn(n,a,r))}wait(){const t=this._promises||(this._promises=[]);return new Promise(((e,i)=>{t.push({res:e,rej:i})}))}_notify(t){const e=t?\"res\":\"rej\",i=this._promises||[];for(let t=0;t<i.length;t++)i[t][e]()}}bt.set(\"animation\",{delay:void 0,duration:1e3,easing:\"easeOutQuart\",fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0});const fs=Object.keys(bt.animation);bt.describe(\"animation\",{_fallback:!1,_indexable:!1,_scriptable:t=>\"onProgress\"!==t&&\"onComplete\"!==t&&\"fn\"!==t}),bt.set(\"animations\",{colors:{type:\"color\",properties:[\"color\",\"borderColor\",\"backgroundColor\"]},numbers:{type:\"number\",properties:[\"x\",\"y\",\"borderWidth\",\"radius\",\"tension\"]}}),bt.describe(\"animations\",{_fallback:\"animation\"}),bt.set(\"transitions\",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:\"transparent\"},visible:{type:\"boolean\",duration:0}}},hide:{animations:{colors:{to:\"transparent\"},visible:{type:\"boolean\",easing:\"linear\",fn:t=>0|t}}}});class gs{constructor(t,e){this._chart=t,this._properties=new Map,this.configure(e)}configure(t){if(!U(t))return;const e=this._properties;Object.getOwnPropertyNames(t).forEach((i=>{const s=t[i];if(!U(s))return;const n={};for(const t of fs)n[t]=s[t];(Y(s.properties)&&s.properties||[i]).forEach((t=>{t!==i&&e.has(t)||e.set(t,n)}))}))}_animateOptions(t,e){const i=e.options,s=function(t,e){if(!e)return;let i=t.options;if(!i)return void(t.options=e);i.$shared&&(t.options=i=Object.assign({},i,{$shared:!1,$animations:{}}));return i}(t,i);if(!s)return[];const n=this._createAnimations(s,i);return i.$shared&&function(t,e){const i=[],s=Object.keys(e);for(let e=0;e<s.length;e++){const n=t[s[e]];n&&n.active()&&i.push(n.wait())}return Promise.all(i)}(t.options.$animations,i).then((()=>{t.options=i}),(()=>{})),n}_createAnimations(t,e){const i=this._properties,s=[],n=t.$animations||(t.$animations={}),o=Object.keys(e),a=Date.now();let r;for(r=o.length-1;r>=0;--r){const l=o[r];if(\"$\"===l.charAt(0))continue;if(\"options\"===l){s.push(...this._animateOptions(t,e));continue}const h=e[l];let c=n[l];const d=i.get(l);if(c){if(d&&c.active()){c.update(d,h,a);continue}c.cancel()}d&&d.duration?(n[l]=c=new us(d,t,l,h),s.push(c)):t[l]=h}return s}update(t,e){if(0===this._properties.size)return void Object.assign(t,e);const i=this._createAnimations(t,e);return i.length?(a.add(this._chart,i),!0):void 0}}function ps(t,e){const i=t&&t.options||{},s=i.reverse,n=void 0===i.min?e:0,o=void 0===i.max?e:0;return{start:s?o:n,end:s?n:o}}function ms(t,e){const i=[],s=t._getSortedDatasetMetas(e);let n,o;for(n=0,o=s.length;n<o;++n)i.push(s[n].index);return i}function xs(t,e,i,s={}){const n=t.keys,o=\"single\"===s.mode;let a,r,l,h;if(null!==e){for(a=0,r=n.length;a<r;++a){if(l=+n[a],l===i){if(s.all)continue;break}h=t.values[l],X(h)&&(o||0===e||Ct(e)===Ct(h))&&(e+=h)}return e}}function bs(t,e){const i=t&&t.options.stacked;return i||void 0===i&&void 0!==e.stack}function _s(t,e,i){const s=t[e]||(t[e]={});return s[i]||(s[i]={})}function ys(t,e,i,s){for(const n of e.getMatchingVisibleMetas(s).reverse()){const e=t[n.index];if(i&&e>0||!i&&e<0)return n.index}return null}function vs(t,e){const{chart:i,_cachedMeta:s}=t,n=i._stacks||(i._stacks={}),{iScale:o,vScale:a,index:r}=s,l=o.axis,h=a.axis,c=function(t,e,i){return`${t.id}.${e.id}.${i.stack||i.type}`}(o,a,s),d=e.length;let u;for(let t=0;t<d;++t){const i=e[t],{[l]:o,[h]:d}=i;u=(i._stacks||(i._stacks={}))[h]=_s(n,c,o),u[r]=d,u._top=ys(u,a,!0,s.type),u._bottom=ys(u,a,!1,s.type)}}function ws(t,e){const i=t.scales;return Object.keys(i).filter((t=>i[t].axis===e)).shift()}function Ms(t,e){const i=t.controller.index,s=t.vScale&&t.vScale.axis;if(s){e=e||t._parsed;for(const t of e){const e=t._stacks;if(!e||void 0===e[s]||void 0===e[s][i])return;delete e[s][i]}}}const ks=t=>\"reset\"===t||\"none\"===t,Ss=(t,e)=>e?t:Object.assign({},t);class Ps{constructor(t,e){this.chart=t,this._ctx=t.ctx,this.index=e,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.$context=void 0,this._syncList=[],this.initialize()}initialize(){const t=this._cachedMeta;this.configure(),this.linkScales(),t._stacked=bs(t.vScale,t),this.addElements()}updateIndex(t){this.index!==t&&Ms(this._cachedMeta),this.index=t}linkScales(){const t=this.chart,e=this._cachedMeta,i=this.getDataset(),s=(t,e,i,s)=>\"x\"===t?e:\"r\"===t?s:i,n=e.xAxisID=K(i.xAxisID,ws(t,\"x\")),o=e.yAxisID=K(i.yAxisID,ws(t,\"y\")),a=e.rAxisID=K(i.rAxisID,ws(t,\"r\")),r=e.indexAxis,l=e.iAxisID=s(r,n,o,a),h=e.vAxisID=s(r,o,n,a);e.xScale=this.getScaleForId(n),e.yScale=this.getScaleForId(o),e.rScale=this.getScaleForId(a),e.iScale=this.getScaleForId(l),e.vScale=this.getScaleForId(h)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(t){return this.chart.scales[t]}_getOtherScale(t){const e=this._cachedMeta;return t===e.iScale?e.vScale:e.iScale}reset(){this._update(\"reset\")}_destroy(){const t=this._cachedMeta;this._data&&ue(this._data,this),t._stacked&&Ms(t)}_dataCheck(){const t=this.getDataset(),e=t.data||(t.data=[]),i=this._data;if(U(e))this._data=function(t){const e=Object.keys(t),i=new Array(e.length);let s,n,o;for(s=0,n=e.length;s<n;++s)o=e[s],i[s]={x:o,y:t[o]};return i}(e);else if(i!==e){if(i){ue(i,this);const t=this._cachedMeta;Ms(t),t._parsed=[]}e&&Object.isExtensible(e)&&de(e,this),this._syncList=[],this._data=e}}addElements(){const t=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(t.dataset=new this.datasetElementType)}buildOrUpdateElements(t){const e=this._cachedMeta,i=this.getDataset();let s=!1;this._dataCheck();const n=e._stacked;e._stacked=bs(e.vScale,e),e.stack!==i.stack&&(s=!0,Ms(e),e.stack=i.stack),this._resyncElements(t),(s||n!==e._stacked)&&vs(this,e._parsed)}configure(){const t=this.chart.config,e=t.datasetScopeKeys(this._type),i=t.getOptionScopes(this.getDataset(),e,!0);this.options=t.createResolver(i,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(t,e){const{_cachedMeta:i,_data:s}=this,{iScale:n,_stacked:o}=i,a=n.axis;let r,l,h,c=0===t&&e===s.length||i._sorted,d=t>0&&i._parsed[t-1];if(!1===this._parsing)i._parsed=s,i._sorted=!0,h=s;else{h=Y(s[t])?this.parseArrayData(i,s,t,e):U(s[t])?this.parseObjectData(i,s,t,e):this.parsePrimitiveData(i,s,t,e);const n=()=>null===l[a]||d&&l[a]<d[a];for(r=0;r<e;++r)i._parsed[r+t]=l=h[r],c&&(n()&&(c=!1),d=l);i._sorted=c}o&&vs(this,h)}parsePrimitiveData(t,e,i,s){const{iScale:n,vScale:o}=t,a=n.axis,r=o.axis,l=n.getLabels(),h=n===o,c=new Array(s);let d,u,f;for(d=0,u=s;d<u;++d)f=d+i,c[d]={[a]:h||n.parse(l[f],f),[r]:o.parse(e[f],f)};return c}parseArrayData(t,e,i,s){const{xScale:n,yScale:o}=t,a=new Array(s);let r,l,h,c;for(r=0,l=s;r<l;++r)h=r+i,c=e[h],a[r]={x:n.parse(c[0],h),y:o.parse(c[1],h)};return a}parseObjectData(t,e,i,s){const{xScale:n,yScale:o}=t,{xAxisKey:a=\"x\",yAxisKey:r=\"y\"}=this._parsing,l=new Array(s);let h,c,d,u;for(h=0,c=s;h<c;++h)d=h+i,u=e[d],l[h]={x:n.parse(lt(u,a),d),y:o.parse(lt(u,r),d)};return l}getParsed(t){return this._cachedMeta._parsed[t]}getDataElement(t){return this._cachedMeta.data[t]}applyStack(t,e,i){const s=this.chart,n=this._cachedMeta,o=e[t.axis];return xs({keys:ms(s,!0),values:e._stacks[t.axis]},o,n.index,{mode:i})}updateRangeFromParsed(t,e,i,s){const n=i[e.axis];let o=null===n?NaN:n;const a=s&&i._stacks[e.axis];s&&a&&(s.values=a,o=xs(s,n,this._cachedMeta.index)),t.min=Math.min(t.min,o),t.max=Math.max(t.max,o)}getMinMax(t,e){const i=this._cachedMeta,s=i._parsed,n=i._sorted&&t===i.iScale,o=s.length,a=this._getOtherScale(t),r=((t,e,i)=>t&&!e.hidden&&e._stacked&&{keys:ms(i,!0),values:null})(e,i,this.chart),l={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY},{min:h,max:c}=function(t){const{min:e,max:i,minDefined:s,maxDefined:n}=t.getUserBounds();return{min:s?e:Number.NEGATIVE_INFINITY,max:n?i:Number.POSITIVE_INFINITY}}(a);let d,u;function f(){u=s[d];const e=u[a.axis];return!X(u[t.axis])||h>e||c<e}for(d=0;d<o&&(f()||(this.updateRangeFromParsed(l,t,u,r),!n));++d);if(n)for(d=o-1;d>=0;--d)if(!f()){this.updateRangeFromParsed(l,t,u,r);break}return l}getAllParsedValues(t){const e=this._cachedMeta._parsed,i=[];let s,n,o;for(s=0,n=e.length;s<n;++s)o=e[s][t.axis],X(o)&&i.push(o);return i}getMaxOverflow(){return!1}getLabelAndValue(t){const e=this._cachedMeta,i=e.iScale,s=e.vScale,n=this.getParsed(t);return{label:i?\"\"+i.getLabelForValue(n[i.axis]):\"\",value:s?\"\"+s.getLabelForValue(n[s.axis]):\"\"}}_update(t){const e=this._cachedMeta;this.update(t||\"default\"),e._clip=function(t){let e,i,s,n;return U(t)?(e=t.top,i=t.right,s=t.bottom,n=t.left):e=i=s=n=t,{top:e,right:i,bottom:s,left:n,disabled:!1===t}}(K(this.options.clip,function(t,e,i){if(!1===i)return!1;const s=ps(t,i),n=ps(e,i);return{top:n.end,right:s.end,bottom:n.start,left:s.start}}(e.xScale,e.yScale,this.getMaxOverflow())))}update(t){}draw(){const t=this._ctx,e=this.chart,i=this._cachedMeta,s=i.data||[],n=e.chartArea,o=[],a=this._drawStart||0,r=this._drawCount||s.length-a,l=this.options.drawActiveElementsOnTop;let h;for(i.dataset&&i.dataset.draw(t,n,a,r),h=a;h<a+r;++h){const e=s[h];e.hidden||(e.active&&l?o.push(e):e.draw(t,n))}for(h=0;h<o.length;++h)o[h].draw(t,n)}getStyle(t,e){const i=e?\"active\":\"default\";return void 0===t&&this._cachedMeta.dataset?this.resolveDatasetElementOptions(i):this.resolveDataElementOptions(t||0,i)}getContext(t,e,i){const s=this.getDataset();let n;if(t>=0&&t<this._cachedMeta.data.length){const e=this._cachedMeta.data[t];n=e.$context||(e.$context=function(t,e,i){return Ye(t,{active:!1,dataIndex:e,parsed:void 0,raw:void 0,element:i,index:e,mode:\"default\",type:\"data\"})}(this.getContext(),t,e)),n.parsed=this.getParsed(t),n.raw=s.data[t],n.index=n.dataIndex=t}else n=this.$context||(this.$context=function(t,e){return Ye(t,{active:!1,dataset:void 0,datasetIndex:e,index:e,mode:\"default\",type:\"dataset\"})}(this.chart.getContext(),this.index)),n.dataset=s,n.index=n.datasetIndex=this.index;return n.active=!!e,n.mode=i,n}resolveDatasetElementOptions(t){return this._resolveElementOptions(this.datasetElementType.id,t)}resolveDataElementOptions(t,e){return this._resolveElementOptions(this.dataElementType.id,e,t)}_resolveElementOptions(t,e=\"default\",i){const s=\"active\"===e,n=this._cachedDataOpts,o=t+\"-\"+e,a=n[o],r=this.enableOptionSharing&&ct(i);if(a)return Ss(a,r);const l=this.chart.config,h=l.datasetElementScopeKeys(this._type,t),c=s?[`${t}Hover`,\"hover\",t,\"\"]:[t,\"\"],d=l.getOptionScopes(this.getDataset(),h),u=Object.keys(bt.elements[t]),f=l.resolveNamedOptions(d,u,(()=>this.getContext(i,s)),c);return f.$shared&&(f.$shared=r,n[o]=Object.freeze(Ss(f,r))),f}_resolveAnimations(t,e,i){const s=this.chart,n=this._cachedDataOpts,o=`animation-${e}`,a=n[o];if(a)return a;let r;if(!1!==s.options.animation){const s=this.chart.config,n=s.datasetAnimationScopeKeys(this._type,e),o=s.getOptionScopes(this.getDataset(),n);r=s.createResolver(o,this.getContext(t,i,e))}const l=new gs(s,r&&r.animations);return r&&r._cacheable&&(n[o]=Object.freeze(l)),l}getSharedOptions(t){if(t.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},t))}includeOptions(t,e){return!e||ks(t)||this.chart._animationsDisabled}updateElement(t,e,i,s){ks(s)?Object.assign(t,i):this._resolveAnimations(e,s).update(t,i)}updateSharedOptions(t,e,i){t&&!ks(e)&&this._resolveAnimations(void 0,e).update(t,i)}_setStyle(t,e,i,s){t.active=s;const n=this.getStyle(e,s);this._resolveAnimations(e,i,s).update(t,{options:!s&&this.getSharedOptions(n)||n})}removeHoverStyle(t,e,i){this._setStyle(t,i,\"active\",!1)}setHoverStyle(t,e,i){this._setStyle(t,i,\"active\",!0)}_removeDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,\"active\",!1)}_setDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,\"active\",!0)}_resyncElements(t){const e=this._data,i=this._cachedMeta.data;for(const[t,e,i]of this._syncList)this[t](e,i);this._syncList=[];const s=i.length,n=e.length,o=Math.min(n,s);o&&this.parse(0,o),n>s?this._insertElements(s,n-s,t):n<s&&this._removeElements(n,s-n)}_insertElements(t,e,i=!0){const s=this._cachedMeta,n=s.data,o=t+e;let a;const r=t=>{for(t.length+=e,a=t.length-1;a>=o;a--)t[a]=t[a-e]};for(r(n),a=t;a<o;++a)n[a]=new this.dataElementType;this._parsing&&r(s._parsed),this.parse(t,e),i&&this.updateElements(n,t,e,\"reset\")}updateElements(t,e,i,s){}_removeElements(t,e){const i=this._cachedMeta;if(this._parsing){const s=i._parsed.splice(t,e);i._stacked&&Ms(i,s)}i.data.splice(t,e)}_sync(t){if(this._parsing)this._syncList.push(t);else{const[e,i,s]=t;this[e](i,s)}this.chart._dataChanges.push([this.index,...t])}_onDataPush(){const t=arguments.length;this._sync([\"_insertElements\",this.getDataset().data.length-t,t])}_onDataPop(){this._sync([\"_removeElements\",this._cachedMeta.data.length-1,1])}_onDataShift(){this._sync([\"_removeElements\",0,1])}_onDataSplice(t,e){e&&this._sync([\"_removeElements\",t,e]);const i=arguments.length-2;i&&this._sync([\"_insertElements\",t,i])}_onDataUnshift(){this._sync([\"_insertElements\",0,arguments.length])}}Ps.defaults={},Ps.prototype.datasetElementType=null,Ps.prototype.dataElementType=null;class Ds{constructor(){this.x=void 0,this.y=void 0,this.active=!1,this.options=void 0,this.$animations=void 0}tooltipPosition(t){const{x:e,y:i}=this.getProps([\"x\",\"y\"],t);return{x:e,y:i}}hasValue(){return Tt(this.x)&&Tt(this.y)}getProps(t,e){const i=this.$animations;if(!e||!i)return this;const s={};return t.forEach((t=>{s[t]=i[t]&&i[t].active()?i[t]._to:this[t]})),s}}Ds.defaults={},Ds.defaultRoutes=void 0;const Cs={values:t=>Y(t)?t:\"\"+t,numeric(t,e,i){if(0===t)return\"0\";const s=this.chart.options.locale;let n,o=t;if(i.length>1){const e=Math.max(Math.abs(i[0].value),Math.abs(i[i.length-1].value));(e<1e-4||e>1e15)&&(n=\"scientific\"),o=function(t,e){let i=e.length>3?e[2].value-e[1].value:e[1].value-e[0].value;Math.abs(i)>=1&&t!==Math.floor(t)&&(i=t-Math.floor(t));return i}(t,i)}const a=Dt(Math.abs(o)),r=Math.max(Math.min(-1*Math.floor(a),20),0),l={notation:n,minimumFractionDigits:r,maximumFractionDigits:r};return Object.assign(l,this.options.ticks.format),Ri(t,s,l)},logarithmic(t,e,i){if(0===t)return\"0\";const s=t/Math.pow(10,Math.floor(Dt(t)));return 1===s||2===s||5===s?Cs.numeric.call(this,t,e,i):\"\"}};var Os={formatters:Cs};function As(t,e){const i=t.options.ticks,s=i.maxTicksLimit||function(t){const e=t.options.offset,i=t._tickSize(),s=t._length/i+(e?0:1),n=t._maxLength/i;return Math.floor(Math.min(s,n))}(t),n=i.major.enabled?function(t){const e=[];let i,s;for(i=0,s=t.length;i<s;i++)t[i].major&&e.push(i);return e}(e):[],o=n.length,a=n[0],r=n[o-1],l=[];if(o>s)return function(t,e,i,s){let n,o=0,a=i[0];for(s=Math.ceil(s),n=0;n<t.length;n++)n===a&&(e.push(t[n]),o++,a=i[o*s])}(e,l,n,o/s),l;const h=function(t,e,i){const s=function(t){const e=t.length;let i,s;if(e<2)return!1;for(s=t[0],i=1;i<e;++i)if(t[i]-t[i-1]!==s)return!1;return s}(t),n=e.length/i;if(!s)return Math.max(n,1);const o=At(s);for(let t=0,e=o.length-1;t<e;t++){const e=o[t];if(e>n)return e}return Math.max(n,1)}(n,e,s);if(o>0){let t,i;const s=o>1?Math.round((r-a)/(o-1)):null;for(Ts(e,l,h,$(s)?0:a-s,a),t=0,i=o-1;t<i;t++)Ts(e,l,h,n[t],n[t+1]);return Ts(e,l,h,r,$(s)?e.length:r+s),l}return Ts(e,l,h),l}function Ts(t,e,i,s,n){const o=K(s,0),a=Math.min(K(n,t.length),t.length);let r,l,h,c=0;for(i=Math.ceil(i),n&&(r=n-s,i=r/Math.floor(r/i)),h=o;h<0;)c++,h=Math.round(o+c*i);for(l=Math.max(o,0);l<a;l++)l===h&&(e.push(t[l]),c++,h=Math.round(o+c*i))}bt.set(\"scale\",{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:\"ticks\",grace:0,grid:{display:!0,lineWidth:1,drawBorder:!0,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(t,e)=>e.lineWidth,tickColor:(t,e)=>e.color,offset:!1,borderDash:[],borderDashOffset:0,borderWidth:1},title:{display:!1,text:\"\",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:\"\",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:Os.formatters.values,minor:{},major:{},align:\"center\",crossAlign:\"near\",showLabelBackdrop:!1,backdropColor:\"rgba(255, 255, 255, 0.75)\",backdropPadding:2}}),bt.route(\"scale.ticks\",\"color\",\"\",\"color\"),bt.route(\"scale.grid\",\"color\",\"\",\"borderColor\"),bt.route(\"scale.grid\",\"borderColor\",\"\",\"borderColor\"),bt.route(\"scale.title\",\"color\",\"\",\"color\"),bt.describe(\"scale\",{_fallback:!1,_scriptable:t=>!t.startsWith(\"before\")&&!t.startsWith(\"after\")&&\"callback\"!==t&&\"parser\"!==t,_indexable:t=>\"borderDash\"!==t&&\"tickBorderDash\"!==t}),bt.describe(\"scales\",{_fallback:\"scale\"}),bt.describe(\"scale.ticks\",{_scriptable:t=>\"backdropPadding\"!==t&&\"callback\"!==t,_indexable:t=>\"backdropPadding\"!==t});const Ls=(t,e,i)=>\"top\"===e||\"left\"===e?t[e]+i:t[e]-i;function Rs(t,e){const i=[],s=t.length/e,n=t.length;let o=0;for(;o<n;o+=s)i.push(t[Math.floor(o)]);return i}function Es(t,e,i){const s=t.ticks.length,n=Math.min(e,s-1),o=t._startPixel,a=t._endPixel,r=1e-6;let l,h=t.getPixelForTick(n);if(!(i&&(l=1===s?Math.max(h-o,a-h):0===e?(t.getPixelForTick(1)-h)/2:(h-t.getPixelForTick(n-1))/2,h+=n<e?l:-l,h<o-r||h>a+r)))return h}function Is(t){return t.drawTicks?t.tickLength:0}function zs(t,e){if(!t.display)return 0;const i=He(t.font,e),s=Ne(t.padding);return(Y(t.text)?t.text.length:1)*i.lineHeight+s.height}function Fs(t,e,i){let n=s(t);return(i&&\"right\"!==e||!i&&\"right\"===e)&&(n=(t=>\"left\"===t?\"right\":\"right\"===t?\"left\":t)(n)),n}class Bs extends Ds{constructor(t){super(),this.id=t.id,this.type=t.type,this.options=void 0,this.ctx=t.ctx,this.chart=t.chart,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this._margins={left:0,right:0,top:0,bottom:0},this.maxWidth=void 0,this.maxHeight=void 0,this.paddingTop=void 0,this.paddingBottom=void 0,this.paddingLeft=void 0,this.paddingRight=void 0,this.axis=void 0,this.labelRotation=void 0,this.min=void 0,this.max=void 0,this._range=void 0,this.ticks=[],this._gridLineItems=null,this._labelItems=null,this._labelSizes=null,this._length=0,this._maxLength=0,this._longestTextCache={},this._startPixel=void 0,this._endPixel=void 0,this._reversePixels=!1,this._userMax=void 0,this._userMin=void 0,this._suggestedMax=void 0,this._suggestedMin=void 0,this._ticksLength=0,this._borderValue=0,this._cache={},this._dataLimitsCached=!1,this.$context=void 0}init(t){this.options=t.setContext(this.getContext()),this.axis=t.axis,this._userMin=this.parse(t.min),this._userMax=this.parse(t.max),this._suggestedMin=this.parse(t.suggestedMin),this._suggestedMax=this.parse(t.suggestedMax)}parse(t,e){return t}getUserBounds(){let{_userMin:t,_userMax:e,_suggestedMin:i,_suggestedMax:s}=this;return t=q(t,Number.POSITIVE_INFINITY),e=q(e,Number.NEGATIVE_INFINITY),i=q(i,Number.POSITIVE_INFINITY),s=q(s,Number.NEGATIVE_INFINITY),{min:q(t,i),max:q(e,s),minDefined:X(t),maxDefined:X(e)}}getMinMax(t){let e,{min:i,max:s,minDefined:n,maxDefined:o}=this.getUserBounds();if(n&&o)return{min:i,max:s};const a=this.getMatchingVisibleMetas();for(let r=0,l=a.length;r<l;++r)e=a[r].controller.getMinMax(this,t),n||(i=Math.min(i,e.min)),o||(s=Math.max(s,e.max));return i=o&&i>s?s:i,s=n&&i>s?i:s,{min:q(i,q(s,i)),max:q(s,q(i,s))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels||[]}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){J(this.options.beforeUpdate,[this])}update(t,e,i){const{beginAtZero:s,grace:n,ticks:o}=this.options,a=o.sampleSize;this.beforeUpdate(),this.maxWidth=t,this.maxHeight=e,this._margins=i=Object.assign({left:0,right:0,top:0,bottom:0},i),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+i.left+i.right:this.height+i.top+i.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=$e(this,n,s),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const r=a<this.ticks.length;this._convertTicksToLabels(r?Rs(this.ticks,a):this.ticks),this.configure(),this.beforeCalculateLabelRotation(),this.calculateLabelRotation(),this.afterCalculateLabelRotation(),o.display&&(o.autoSkip||\"auto\"===o.source)&&(this.ticks=As(this,this.ticks),this._labelSizes=null),r&&this._convertTicksToLabels(this.ticks),this.beforeFit(),this.fit(),this.afterFit(),this.afterUpdate()}configure(){let t,e,i=this.options.reverse;this.isHorizontal()?(t=this.left,e=this.right):(t=this.top,e=this.bottom,i=!i),this._startPixel=t,this._endPixel=e,this._reversePixels=i,this._length=e-t,this._alignToPixels=this.options.alignToPixels}afterUpdate(){J(this.options.afterUpdate,[this])}beforeSetDimensions(){J(this.options.beforeSetDimensions,[this])}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=0,this.right=this.width):(this.height=this.maxHeight,this.top=0,this.bottom=this.height),this.paddingLeft=0,this.paddingTop=0,this.paddingRight=0,this.paddingBottom=0}afterSetDimensions(){J(this.options.afterSetDimensions,[this])}_callHooks(t){this.chart.notifyPlugins(t,this.getContext()),J(this.options[t],[this])}beforeDataLimits(){this._callHooks(\"beforeDataLimits\")}determineDataLimits(){}afterDataLimits(){this._callHooks(\"afterDataLimits\")}beforeBuildTicks(){this._callHooks(\"beforeBuildTicks\")}buildTicks(){return[]}afterBuildTicks(){this._callHooks(\"afterBuildTicks\")}beforeTickToLabelConversion(){J(this.options.beforeTickToLabelConversion,[this])}generateTickLabels(t){const e=this.options.ticks;let i,s,n;for(i=0,s=t.length;i<s;i++)n=t[i],n.label=J(e.callback,[n.value,i,t],this)}afterTickToLabelConversion(){J(this.options.afterTickToLabelConversion,[this])}beforeCalculateLabelRotation(){J(this.options.beforeCalculateLabelRotation,[this])}calculateLabelRotation(){const t=this.options,e=t.ticks,i=this.ticks.length,s=e.minRotation||0,n=e.maxRotation;let o,a,r,l=s;if(!this._isVisible()||!e.display||s>=n||i<=1||!this.isHorizontal())return void(this.labelRotation=s);const h=this._getLabelSizes(),c=h.widest.width,d=h.highest.height,u=jt(this.chart.width-c,0,this.maxWidth);o=t.offset?this.maxWidth/i:u/(i-1),c+6>o&&(o=u/(i-(t.offset?.5:1)),a=this.maxHeight-Is(t.grid)-e.padding-zs(t.title,this.chart.options.font),r=Math.sqrt(c*c+d*d),l=zt(Math.min(Math.asin(jt((h.highest.height+6)/o,-1,1)),Math.asin(jt(a/r,-1,1))-Math.asin(jt(d/r,-1,1)))),l=Math.max(s,Math.min(n,l))),this.labelRotation=l}afterCalculateLabelRotation(){J(this.options.afterCalculateLabelRotation,[this])}beforeFit(){J(this.options.beforeFit,[this])}fit(){const t={width:0,height:0},{chart:e,options:{ticks:i,title:s,grid:n}}=this,o=this._isVisible(),a=this.isHorizontal();if(o){const o=zs(s,e.options.font);if(a?(t.width=this.maxWidth,t.height=Is(n)+o):(t.height=this.maxHeight,t.width=Is(n)+o),i.display&&this.ticks.length){const{first:e,last:s,widest:n,highest:o}=this._getLabelSizes(),r=2*i.padding,l=It(this.labelRotation),h=Math.cos(l),c=Math.sin(l);if(a){const e=i.mirror?0:c*n.width+h*o.height;t.height=Math.min(this.maxHeight,t.height+e+r)}else{const e=i.mirror?0:h*n.width+c*o.height;t.width=Math.min(this.maxWidth,t.width+e+r)}this._calculatePadding(e,s,c,h)}}this._handleMargins(),a?(this.width=this._length=e.width-this._margins.left-this._margins.right,this.height=t.height):(this.width=t.width,this.height=this._length=e.height-this._margins.top-this._margins.bottom)}_calculatePadding(t,e,i,s){const{ticks:{align:n,padding:o},position:a}=this.options,r=0!==this.labelRotation,l=\"top\"!==a&&\"x\"===this.axis;if(this.isHorizontal()){const a=this.getPixelForTick(0)-this.left,h=this.right-this.getPixelForTick(this.ticks.length-1);let c=0,d=0;r?l?(c=s*t.width,d=i*e.height):(c=i*t.height,d=s*e.width):\"start\"===n?d=e.width:\"end\"===n?c=t.width:(c=t.width/2,d=e.width/2),this.paddingLeft=Math.max((c-a+o)*this.width/(this.width-a),0),this.paddingRight=Math.max((d-h+o)*this.width/(this.width-h),0)}else{let i=e.height/2,s=t.height/2;\"start\"===n?(i=0,s=t.height):\"end\"===n&&(i=e.height,s=0),this.paddingTop=i+o,this.paddingBottom=s+o}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){J(this.options.afterFit,[this])}isHorizontal(){const{axis:t,position:e}=this.options;return\"top\"===e||\"bottom\"===e||\"x\"===t}isFullSize(){return this.options.fullSize}_convertTicksToLabels(t){let e,i;for(this.beforeTickToLabelConversion(),this.generateTickLabels(t),e=0,i=t.length;e<i;e++)$(t[e].label)&&(t.splice(e,1),i--,e--);this.afterTickToLabelConversion()}_getLabelSizes(){let t=this._labelSizes;if(!t){const e=this.options.ticks.sampleSize;let i=this.ticks;e<i.length&&(i=Rs(i,e)),this._labelSizes=t=this._computeLabelSizes(i,i.length)}return t}_computeLabelSizes(t,e){const{ctx:i,_longestTextCache:s}=this,n=[],o=[];let a,r,l,h,c,d,u,f,g,p,m,x=0,b=0;for(a=0;a<e;++a){if(h=t[a].label,c=this._resolveTickFontOptions(a),i.font=d=c.string,u=s[d]=s[d]||{data:{},gc:[]},f=c.lineHeight,g=p=0,$(h)||Y(h)){if(Y(h))for(r=0,l=h.length;r<l;++r)m=h[r],$(m)||Y(m)||(g=Xt(i,u.data,u.gc,g,m),p+=f)}else g=Xt(i,u.data,u.gc,g,h),p=f;n.push(g),o.push(p),x=Math.max(g,x),b=Math.max(p,b)}!function(t,e){Q(t,(t=>{const i=t.gc,s=i.length/2;let n;if(s>e){for(n=0;n<s;++n)delete t.data[i[n]];i.splice(0,s)}}))}(s,e);const _=n.indexOf(x),y=o.indexOf(b),v=t=>({width:n[t]||0,height:o[t]||0});return{first:v(0),last:v(e-1),widest:v(_),highest:v(y),widths:n,heights:o}}getLabelForValue(t){return t}getPixelForValue(t,e){return NaN}getValueForPixel(t){}getPixelForTick(t){const e=this.ticks;return t<0||t>e.length-1?null:this.getPixelForValue(e[t].value)}getPixelForDecimal(t){this._reversePixels&&(t=1-t);const e=this._startPixel+t*this._length;return $t(this._alignToPixels?Kt(this.chart,e,0):e)}getDecimalForPixel(t){const e=(t-this._startPixel)/this._length;return this._reversePixels?1-e:e}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:t,max:e}=this;return t<0&&e<0?e:t>0&&e>0?t:0}getContext(t){const e=this.ticks||[];if(t>=0&&t<e.length){const i=e[t];return i.$context||(i.$context=function(t,e,i){return Ye(t,{tick:i,index:e,type:\"tick\"})}(this.getContext(),t,i))}return this.$context||(this.$context=Ye(this.chart.getContext(),{scale:this,type:\"scale\"}))}_tickSize(){const t=this.options.ticks,e=It(this.labelRotation),i=Math.abs(Math.cos(e)),s=Math.abs(Math.sin(e)),n=this._getLabelSizes(),o=t.autoSkipPadding||0,a=n?n.widest.width+o:0,r=n?n.highest.height+o:0;return this.isHorizontal()?r*i>a*s?a/i:r/s:r*s<a*i?r/i:a/s}_isVisible(){const t=this.options.display;return\"auto\"!==t?!!t:this.getMatchingVisibleMetas().length>0}_computeGridLineItems(t){const e=this.axis,i=this.chart,s=this.options,{grid:n,position:o}=s,a=n.offset,r=this.isHorizontal(),l=this.ticks.length+(a?1:0),h=Is(n),c=[],d=n.setContext(this.getContext()),u=d.drawBorder?d.borderWidth:0,f=u/2,g=function(t){return Kt(i,t,u)};let p,m,x,b,_,y,v,w,M,k,S,P;if(\"top\"===o)p=g(this.bottom),y=this.bottom-h,w=p-f,k=g(t.top)+f,P=t.bottom;else if(\"bottom\"===o)p=g(this.top),k=t.top,P=g(t.bottom)-f,y=p+f,w=this.top+h;else if(\"left\"===o)p=g(this.right),_=this.right-h,v=p-f,M=g(t.left)+f,S=t.right;else if(\"right\"===o)p=g(this.left),M=t.left,S=g(t.right)-f,_=p+f,v=this.left+h;else if(\"x\"===e){if(\"center\"===o)p=g((t.top+t.bottom)/2+.5);else if(U(o)){const t=Object.keys(o)[0],e=o[t];p=g(this.chart.scales[t].getPixelForValue(e))}k=t.top,P=t.bottom,y=p+f,w=y+h}else if(\"y\"===e){if(\"center\"===o)p=g((t.left+t.right)/2);else if(U(o)){const t=Object.keys(o)[0],e=o[t];p=g(this.chart.scales[t].getPixelForValue(e))}_=p-f,v=_-h,M=t.left,S=t.right}const D=K(s.ticks.maxTicksLimit,l),C=Math.max(1,Math.ceil(l/D));for(m=0;m<l;m+=C){const t=n.setContext(this.getContext(m)),e=t.lineWidth,s=t.color,o=n.borderDash||[],l=t.borderDashOffset,h=t.tickWidth,d=t.tickColor,u=t.tickBorderDash||[],f=t.tickBorderDashOffset;x=Es(this,m,a),void 0!==x&&(b=Kt(i,x,e),r?_=v=M=S=b:y=w=k=P=b,c.push({tx1:_,ty1:y,tx2:v,ty2:w,x1:M,y1:k,x2:S,y2:P,width:e,color:s,borderDash:o,borderDashOffset:l,tickWidth:h,tickColor:d,tickBorderDash:u,tickBorderDashOffset:f}))}return this._ticksLength=l,this._borderValue=p,c}_computeLabelItems(t){const e=this.axis,i=this.options,{position:s,ticks:n}=i,o=this.isHorizontal(),a=this.ticks,{align:r,crossAlign:l,padding:h,mirror:c}=n,d=Is(i.grid),u=d+h,f=c?-h:u,g=-It(this.labelRotation),p=[];let m,x,b,_,y,v,w,M,k,S,P,D,C=\"middle\";if(\"top\"===s)v=this.bottom-f,w=this._getXAxisLabelAlignment();else if(\"bottom\"===s)v=this.top+f,w=this._getXAxisLabelAlignment();else if(\"left\"===s){const t=this._getYAxisLabelAlignment(d);w=t.textAlign,y=t.x}else if(\"right\"===s){const t=this._getYAxisLabelAlignment(d);w=t.textAlign,y=t.x}else if(\"x\"===e){if(\"center\"===s)v=(t.top+t.bottom)/2+u;else if(U(s)){const t=Object.keys(s)[0],e=s[t];v=this.chart.scales[t].getPixelForValue(e)+u}w=this._getXAxisLabelAlignment()}else if(\"y\"===e){if(\"center\"===s)y=(t.left+t.right)/2-u;else if(U(s)){const t=Object.keys(s)[0],e=s[t];y=this.chart.scales[t].getPixelForValue(e)}w=this._getYAxisLabelAlignment(d).textAlign}\"y\"===e&&(\"start\"===r?C=\"top\":\"end\"===r&&(C=\"bottom\"));const O=this._getLabelSizes();for(m=0,x=a.length;m<x;++m){b=a[m],_=b.label;const t=n.setContext(this.getContext(m));M=this.getPixelForTick(m)+n.labelOffset,k=this._resolveTickFontOptions(m),S=k.lineHeight,P=Y(_)?_.length:1;const e=P/2,i=t.color,r=t.textStrokeColor,h=t.textStrokeWidth;let d;if(o?(y=M,D=\"top\"===s?\"near\"===l||0!==g?-P*S+S/2:\"center\"===l?-O.highest.height/2-e*S+S:-O.highest.height+S/2:\"near\"===l||0!==g?S/2:\"center\"===l?O.highest.height/2-e*S:O.highest.height-P*S,c&&(D*=-1)):(v=M,D=(1-P)*S/2),t.showLabelBackdrop){const e=Ne(t.backdropPadding),i=O.heights[m],s=O.widths[m];let n=v+D-e.top,o=y-e.left;switch(C){case\"middle\":n-=i/2;break;case\"bottom\":n-=i}switch(w){case\"center\":o-=s/2;break;case\"right\":o-=s}d={left:o,top:n,width:s+e.width,height:i+e.height,color:t.backdropColor}}p.push({rotation:g,label:_,font:k,color:i,strokeColor:r,strokeWidth:h,textOffset:D,textAlign:w,textBaseline:C,translation:[y,v],backdrop:d})}return p}_getXAxisLabelAlignment(){const{position:t,ticks:e}=this.options;if(-It(this.labelRotation))return\"top\"===t?\"left\":\"right\";let i=\"center\";return\"start\"===e.align?i=\"left\":\"end\"===e.align&&(i=\"right\"),i}_getYAxisLabelAlignment(t){const{position:e,ticks:{crossAlign:i,mirror:s,padding:n}}=this.options,o=t+n,a=this._getLabelSizes().widest.width;let r,l;return\"left\"===e?s?(l=this.right+n,\"near\"===i?r=\"left\":\"center\"===i?(r=\"center\",l+=a/2):(r=\"right\",l+=a)):(l=this.right-o,\"near\"===i?r=\"right\":\"center\"===i?(r=\"center\",l-=a/2):(r=\"left\",l=this.left)):\"right\"===e?s?(l=this.left+n,\"near\"===i?r=\"right\":\"center\"===i?(r=\"center\",l-=a/2):(r=\"left\",l-=a)):(l=this.left+o,\"near\"===i?r=\"left\":\"center\"===i?(r=\"center\",l+=a/2):(r=\"right\",l=this.right)):r=\"right\",{textAlign:r,x:l}}_computeLabelArea(){if(this.options.ticks.mirror)return;const t=this.chart,e=this.options.position;return\"left\"===e||\"right\"===e?{top:0,left:this.left,bottom:t.height,right:this.right}:\"top\"===e||\"bottom\"===e?{top:this.top,left:0,bottom:this.bottom,right:t.width}:void 0}drawBackground(){const{ctx:t,options:{backgroundColor:e},left:i,top:s,width:n,height:o}=this;e&&(t.save(),t.fillStyle=e,t.fillRect(i,s,n,o),t.restore())}getLineWidthForValue(t){const e=this.options.grid;if(!this._isVisible()||!e.display)return 0;const i=this.ticks.findIndex((e=>e.value===t));if(i>=0){return e.setContext(this.getContext(i)).lineWidth}return 0}drawGrid(t){const e=this.options.grid,i=this.ctx,s=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(t));let n,o;const a=(t,e,s)=>{s.width&&s.color&&(i.save(),i.lineWidth=s.width,i.strokeStyle=s.color,i.setLineDash(s.borderDash||[]),i.lineDashOffset=s.borderDashOffset,i.beginPath(),i.moveTo(t.x,t.y),i.lineTo(e.x,e.y),i.stroke(),i.restore())};if(e.display)for(n=0,o=s.length;n<o;++n){const t=s[n];e.drawOnChartArea&&a({x:t.x1,y:t.y1},{x:t.x2,y:t.y2},t),e.drawTicks&&a({x:t.tx1,y:t.ty1},{x:t.tx2,y:t.ty2},{color:t.tickColor,width:t.tickWidth,borderDash:t.tickBorderDash,borderDashOffset:t.tickBorderDashOffset})}}drawBorder(){const{chart:t,ctx:e,options:{grid:i}}=this,s=i.setContext(this.getContext()),n=i.drawBorder?s.borderWidth:0;if(!n)return;const o=i.setContext(this.getContext(0)).lineWidth,a=this._borderValue;let r,l,h,c;this.isHorizontal()?(r=Kt(t,this.left,n)-n/2,l=Kt(t,this.right,o)+o/2,h=c=a):(h=Kt(t,this.top,n)-n/2,c=Kt(t,this.bottom,o)+o/2,r=l=a),e.save(),e.lineWidth=s.borderWidth,e.strokeStyle=s.borderColor,e.beginPath(),e.moveTo(r,h),e.lineTo(l,c),e.stroke(),e.restore()}drawLabels(t){if(!this.options.ticks.display)return;const e=this.ctx,i=this._computeLabelArea();i&&Qt(e,i);const s=this._labelItems||(this._labelItems=this._computeLabelItems(t));let n,o;for(n=0,o=s.length;n<o;++n){const t=s[n],i=t.font,o=t.label;t.backdrop&&(e.fillStyle=t.backdrop.color,e.fillRect(t.backdrop.left,t.backdrop.top,t.backdrop.width,t.backdrop.height)),se(e,o,0,t.textOffset,i,t)}i&&te(e)}drawTitle(){const{ctx:t,options:{position:e,title:i,reverse:s}}=this;if(!i.display)return;const o=He(i.font),a=Ne(i.padding),r=i.align;let l=o.lineHeight/2;\"bottom\"===e||\"center\"===e||U(e)?(l+=a.bottom,Y(i.text)&&(l+=o.lineHeight*(i.text.length-1))):l+=a.top;const{titleX:h,titleY:c,maxWidth:d,rotation:u}=function(t,e,i,s){const{top:o,left:a,bottom:r,right:l,chart:h}=t,{chartArea:c,scales:d}=h;let u,f,g,p=0;const m=r-o,x=l-a;if(t.isHorizontal()){if(f=n(s,a,l),U(i)){const t=Object.keys(i)[0],s=i[t];g=d[t].getPixelForValue(s)+m-e}else g=\"center\"===i?(c.bottom+c.top)/2+m-e:Ls(t,i,e);u=l-a}else{if(U(i)){const t=Object.keys(i)[0],s=i[t];f=d[t].getPixelForValue(s)-x+e}else f=\"center\"===i?(c.left+c.right)/2-x+e:Ls(t,i,e);g=n(s,r,o),p=\"left\"===i?-kt:kt}return{titleX:f,titleY:g,maxWidth:u,rotation:p}}(this,l,e,r);se(t,i.text,0,0,o,{color:i.color,maxWidth:d,rotation:u,textAlign:Fs(r,e,s),textBaseline:\"middle\",translation:[h,c]})}draw(t){this._isVisible()&&(this.drawBackground(),this.drawGrid(t),this.drawBorder(),this.drawTitle(),this.drawLabels(t))}_layers(){const t=this.options,e=t.ticks&&t.ticks.z||0,i=K(t.grid&&t.grid.z,-1);return this._isVisible()&&this.draw===Bs.prototype.draw?[{z:i,draw:t=>{this.drawBackground(),this.drawGrid(t),this.drawTitle()}},{z:i+1,draw:()=>{this.drawBorder()}},{z:e,draw:t=>{this.drawLabels(t)}}]:[{z:e,draw:t=>{this.draw(t)}}]}getMatchingVisibleMetas(t){const e=this.chart.getSortedVisibleDatasetMetas(),i=this.axis+\"AxisID\",s=[];let n,o;for(n=0,o=e.length;n<o;++n){const o=e[n];o[i]!==this.id||t&&o.type!==t||s.push(o)}return s}_resolveTickFontOptions(t){return He(this.options.ticks.setContext(this.getContext(t)).font)}_maxDigits(){const t=this._resolveTickFontOptions(0).lineHeight;return(this.isHorizontal()?this.width:this.height)/t}}class Vs{constructor(t,e,i){this.type=t,this.scope=e,this.override=i,this.items=Object.create(null)}isForType(t){return Object.prototype.isPrototypeOf.call(this.type.prototype,t.prototype)}register(t){const e=Object.getPrototypeOf(t);let i;(function(t){return\"id\"in t&&\"defaults\"in t})(e)&&(i=this.register(e));const s=this.items,n=t.id,o=this.scope+\".\"+n;if(!n)throw new Error(\"class does not have id: \"+t);return n in s||(s[n]=t,function(t,e,i){const s=nt(Object.create(null),[i?bt.get(i):{},bt.get(e),t.defaults]);bt.set(e,s),t.defaultRoutes&&function(t,e){Object.keys(e).forEach((i=>{const s=i.split(\".\"),n=s.pop(),o=[t].concat(s).join(\".\"),a=e[i].split(\".\"),r=a.pop(),l=a.join(\".\");bt.route(o,n,l,r)}))}(e,t.defaultRoutes);t.descriptors&&bt.describe(e,t.descriptors)}(t,o,i),this.override&&bt.override(t.id,t.overrides)),o}get(t){return this.items[t]}unregister(t){const e=this.items,i=t.id,s=this.scope;i in e&&delete e[i],s&&i in bt[s]&&(delete bt[s][i],this.override&&delete gt[i])}}var Ws=new class{constructor(){this.controllers=new Vs(Ps,\"datasets\",!0),this.elements=new Vs(Ds,\"elements\"),this.plugins=new Vs(Object,\"plugins\"),this.scales=new Vs(Bs,\"scales\"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...t){this._each(\"register\",t)}remove(...t){this._each(\"unregister\",t)}addControllers(...t){this._each(\"register\",t,this.controllers)}addElements(...t){this._each(\"register\",t,this.elements)}addPlugins(...t){this._each(\"register\",t,this.plugins)}addScales(...t){this._each(\"register\",t,this.scales)}getController(t){return this._get(t,this.controllers,\"controller\")}getElement(t){return this._get(t,this.elements,\"element\")}getPlugin(t){return this._get(t,this.plugins,\"plugin\")}getScale(t){return this._get(t,this.scales,\"scale\")}removeControllers(...t){this._each(\"unregister\",t,this.controllers)}removeElements(...t){this._each(\"unregister\",t,this.elements)}removePlugins(...t){this._each(\"unregister\",t,this.plugins)}removeScales(...t){this._each(\"unregister\",t,this.scales)}_each(t,e,i){[...e].forEach((e=>{const s=i||this._getRegistryForType(e);i||s.isForType(e)||s===this.plugins&&e.id?this._exec(t,s,e):Q(e,(e=>{const s=i||this._getRegistryForType(e);this._exec(t,s,e)}))}))}_exec(t,e,i){const s=ht(t);J(i[\"before\"+s],[],i),e[t](i),J(i[\"after\"+s],[],i)}_getRegistryForType(t){for(let e=0;e<this._typedRegistries.length;e++){const i=this._typedRegistries[e];if(i.isForType(t))return i}return this.plugins}_get(t,e,i){const s=e.get(t);if(void 0===s)throw new Error('\"'+t+'\" is not a registered '+i+\".\");return s}};class Ns{constructor(){this._init=[]}notify(t,e,i,s){\"beforeInit\"===e&&(this._init=this._createDescriptors(t,!0),this._notify(this._init,t,\"install\"));const n=s?this._descriptors(t).filter(s):this._descriptors(t),o=this._notify(n,t,e,i);return\"afterDestroy\"===e&&(this._notify(n,t,\"stop\"),this._notify(this._init,t,\"uninstall\")),o}_notify(t,e,i,s){s=s||{};for(const n of t){const t=n.plugin;if(!1===J(t[i],[e,s,n.options],t)&&s.cancelable)return!1}return!0}invalidate(){$(this._cache)||(this._oldCache=this._cache,this._cache=void 0)}_descriptors(t){if(this._cache)return this._cache;const e=this._cache=this._createDescriptors(t);return this._notifyStateChanges(t),e}_createDescriptors(t,e){const i=t&&t.config,s=K(i.options&&i.options.plugins,{}),n=function(t){const e=[],i=Object.keys(Ws.plugins.items);for(let t=0;t<i.length;t++)e.push(Ws.getPlugin(i[t]));const s=t.plugins||[];for(let t=0;t<s.length;t++){const i=s[t];-1===e.indexOf(i)&&e.push(i)}return e}(i);return!1!==s||e?function(t,e,i,s){const n=[],o=t.getContext();for(let a=0;a<e.length;a++){const r=e[a],l=Hs(i[r.id],s);null!==l&&n.push({plugin:r,options:js(t.config,r,l,o)})}return n}(t,n,s,e):[]}_notifyStateChanges(t){const e=this._oldCache||[],i=this._cache,s=(t,e)=>t.filter((t=>!e.some((e=>t.plugin.id===e.plugin.id))));this._notify(s(e,i),t,\"stop\"),this._notify(s(i,e),t,\"start\")}}function Hs(t,e){return e||!1!==t?!0===t?{}:t:null}function js(t,e,i,s){const n=t.pluginScopeKeys(e),o=t.getOptionScopes(i,n);return t.createResolver(o,s,[\"\"],{scriptable:!1,indexable:!1,allKeys:!0})}function $s(t,e){const i=bt.datasets[t]||{};return((e.datasets||{})[t]||{}).indexAxis||e.indexAxis||i.indexAxis||\"x\"}function Ys(t,e){return\"x\"===t||\"y\"===t?t:e.axis||(\"top\"===(i=e.position)||\"bottom\"===i?\"x\":\"left\"===i||\"right\"===i?\"y\":void 0)||t.charAt(0).toLowerCase();var i}function Us(t){const e=t.options||(t.options={});e.plugins=K(e.plugins,{}),e.scales=function(t,e){const i=gt[t.type]||{scales:{}},s=e.scales||{},n=$s(t.type,e),o=Object.create(null),a=Object.create(null);return Object.keys(s).forEach((t=>{const e=s[t];if(!U(e))return console.error(`Invalid scale configuration for scale: ${t}`);if(e._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${t}`);const r=Ys(t,e),l=function(t,e){return t===e?\"_index_\":\"_value_\"}(r,n),h=i.scales||{};o[r]=o[r]||t,a[t]=ot(Object.create(null),[{axis:r},e,h[r],h[l]])})),t.data.datasets.forEach((i=>{const n=i.type||t.type,r=i.indexAxis||$s(n,e),l=(gt[n]||{}).scales||{};Object.keys(l).forEach((t=>{const e=function(t,e){let i=t;return\"_index_\"===t?i=e:\"_value_\"===t&&(i=\"x\"===e?\"y\":\"x\"),i}(t,r),n=i[e+\"AxisID\"]||o[e]||e;a[n]=a[n]||Object.create(null),ot(a[n],[{axis:e},s[n],l[t]])}))})),Object.keys(a).forEach((t=>{const e=a[t];ot(e,[bt.scales[e.type],bt.scale])})),a}(t,e)}function Xs(t){return(t=t||{}).datasets=t.datasets||[],t.labels=t.labels||[],t}const qs=new Map,Ks=new Set;function Gs(t,e){let i=qs.get(t);return i||(i=e(),qs.set(t,i),Ks.add(i)),i}const Zs=(t,e,i)=>{const s=lt(e,i);void 0!==s&&t.add(s)};class Js{constructor(t){this._config=function(t){return(t=t||{}).data=Xs(t.data),Us(t),t}(t),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(t){this._config.type=t}get data(){return this._config.data}set data(t){this._config.data=Xs(t)}get options(){return this._config.options}set options(t){this._config.options=t}get plugins(){return this._config.plugins}update(){const t=this._config;this.clearCache(),Us(t)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(t){return Gs(t,(()=>[[`datasets.${t}`,\"\"]]))}datasetAnimationScopeKeys(t,e){return Gs(`${t}.transition.${e}`,(()=>[[`datasets.${t}.transitions.${e}`,`transitions.${e}`],[`datasets.${t}`,\"\"]]))}datasetElementScopeKeys(t,e){return Gs(`${t}-${e}`,(()=>[[`datasets.${t}.elements.${e}`,`datasets.${t}`,`elements.${e}`,\"\"]]))}pluginScopeKeys(t){const e=t.id;return Gs(`${this.type}-plugin-${e}`,(()=>[[`plugins.${e}`,...t.additionalOptionScopes||[]]]))}_cachedScopes(t,e){const i=this._scopeCache;let s=i.get(t);return s&&!e||(s=new Map,i.set(t,s)),s}getOptionScopes(t,e,i){const{options:s,type:n}=this,o=this._cachedScopes(t,i),a=o.get(e);if(a)return a;const r=new Set;e.forEach((e=>{t&&(r.add(t),e.forEach((e=>Zs(r,t,e)))),e.forEach((t=>Zs(r,s,t))),e.forEach((t=>Zs(r,gt[n]||{},t))),e.forEach((t=>Zs(r,bt,t))),e.forEach((t=>Zs(r,pt,t)))}));const l=Array.from(r);return 0===l.length&&l.push(Object.create(null)),Ks.has(e)&&o.set(e,l),l}chartOptionScopes(){const{options:t,type:e}=this;return[t,gt[e]||{},bt.datasets[e]||{},{type:e},bt,pt]}resolveNamedOptions(t,e,i,s=[\"\"]){const n={$shared:!0},{resolver:o,subPrefixes:a}=Qs(this._resolverCache,t,s);let r=o;if(function(t,e){const{isScriptable:i,isIndexable:s}=ri(t);for(const n of e){const e=i(n),o=s(n),a=(o||e)&&t[n];if(e&&(dt(a)||tn(a))||o&&Y(a))return!0}return!1}(o,e)){n.$shared=!1;r=ai(o,i=dt(i)?i():i,this.createResolver(t,i,a))}for(const t of e)n[t]=r[t];return n}createResolver(t,e,i=[\"\"],s){const{resolver:n}=Qs(this._resolverCache,t,i);return U(e)?ai(n,e,void 0,s):n}}function Qs(t,e,i){let s=t.get(e);s||(s=new Map,t.set(e,s));const n=i.join();let o=s.get(n);if(!o){o={resolver:oi(e,i),subPrefixes:i.filter((t=>!t.toLowerCase().includes(\"hover\")))},s.set(n,o)}return o}const tn=t=>U(t)&&Object.getOwnPropertyNames(t).reduce(((e,i)=>e||dt(t[i])),!1);const en=[\"top\",\"bottom\",\"left\",\"right\",\"chartArea\"];function sn(t,e){return\"top\"===t||\"bottom\"===t||-1===en.indexOf(t)&&\"x\"===e}function nn(t,e){return function(i,s){return i[t]===s[t]?i[e]-s[e]:i[t]-s[t]}}function on(t){const e=t.chart,i=e.options.animation;e.notifyPlugins(\"afterRender\"),J(i&&i.onComplete,[t],e)}function an(t){const e=t.chart,i=e.options.animation;J(i&&i.onProgress,[t],e)}function rn(t){return ge()&&\"string\"==typeof t?t=document.getElementById(t):t&&t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas),t}const ln={},hn=t=>{const e=rn(t);return Object.values(ln).filter((t=>t.canvas===e)).pop()};function cn(t,e,i){const s=Object.keys(t);for(const n of s){const s=+n;if(s>=e){const o=t[n];delete t[n],(i>0||s>e)&&(t[s+i]=o)}}}class dn{constructor(t,e){const s=this.config=new Js(e),n=rn(t),o=hn(n);if(o)throw new Error(\"Canvas is already in use. Chart with ID '\"+o.id+\"' must be destroyed before the canvas can be reused.\");const r=s.createResolver(s.chartOptionScopes(),this.getContext());this.platform=new(s.platform||ls(n)),this.platform.updateConfig(s);const l=this.platform.acquireContext(n,r.aspectRatio),h=l&&l.canvas,c=h&&h.height,d=h&&h.width;this.id=j(),this.ctx=l,this.canvas=h,this.width=d,this.height=c,this._options=r,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new Ns,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=i((t=>this.update(t)),r.resizeDelay||0),this._dataChanges=[],ln[this.id]=this,l&&h?(a.listen(this,\"complete\",on),a.listen(this,\"progress\",an),this._initialize(),this.attached&&this.update()):console.error(\"Failed to create chart: can't acquire context from the given item\")}get aspectRatio(){const{options:{aspectRatio:t,maintainAspectRatio:e},width:i,height:s,_aspectRatio:n}=this;return $(t)?e&&n?n:s?i/s:null:t}get data(){return this.config.data}set data(t){this.config.data=t}get options(){return this._options}set options(t){this.config.options=t}_initialize(){return this.notifyPlugins(\"beforeInit\"),this.options.responsive?this.resize():ke(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins(\"afterInit\"),this}clear(){return Gt(this.canvas,this.ctx),this}stop(){return a.stop(this),this}resize(t,e){a.running(this)?this._resizeBeforeDraw={width:t,height:e}:this._resize(t,e)}_resize(t,e){const i=this.options,s=this.canvas,n=i.maintainAspectRatio&&this.aspectRatio,o=this.platform.getMaximumSize(s,t,e,n),a=i.devicePixelRatio||this.platform.getDevicePixelRatio(),r=this.width?\"resize\":\"attach\";this.width=o.width,this.height=o.height,this._aspectRatio=this.aspectRatio,ke(this,a,!0)&&(this.notifyPlugins(\"resize\",{size:o}),J(i.onResize,[this,o],this),this.attached&&this._doResize(r)&&this.render())}ensureScalesHaveIDs(){Q(this.options.scales||{},((t,e)=>{t.id=e}))}buildOrUpdateScales(){const t=this.options,e=t.scales,i=this.scales,s=Object.keys(i).reduce(((t,e)=>(t[e]=!1,t)),{});let n=[];e&&(n=n.concat(Object.keys(e).map((t=>{const i=e[t],s=Ys(t,i),n=\"r\"===s,o=\"x\"===s;return{options:i,dposition:n?\"chartArea\":o?\"bottom\":\"left\",dtype:n?\"radialLinear\":o?\"category\":\"linear\"}})))),Q(n,(e=>{const n=e.options,o=n.id,a=Ys(o,n),r=K(n.type,e.dtype);void 0!==n.position&&sn(n.position,a)===sn(e.dposition)||(n.position=e.dposition),s[o]=!0;let l=null;if(o in i&&i[o].type===r)l=i[o];else{l=new(Ws.getScale(r))({id:o,type:r,ctx:this.ctx,chart:this}),i[l.id]=l}l.init(n,t)})),Q(s,((t,e)=>{t||delete i[e]})),Q(i,(t=>{ni.configure(this,t,t.options),ni.addBox(this,t)}))}_updateMetasets(){const t=this._metasets,e=this.data.datasets.length,i=t.length;if(t.sort(((t,e)=>t.index-e.index)),i>e){for(let t=e;t<i;++t)this._destroyDatasetMeta(t);t.splice(e,i-e)}this._sortedMetasets=t.slice(0).sort(nn(\"order\",\"index\"))}_removeUnreferencedMetasets(){const{_metasets:t,data:{datasets:e}}=this;t.length>e.length&&delete this._stacks,t.forEach(((t,i)=>{0===e.filter((e=>e===t._dataset)).length&&this._destroyDatasetMeta(i)}))}buildOrUpdateControllers(){const t=[],e=this.data.datasets;let i,s;for(this._removeUnreferencedMetasets(),i=0,s=e.length;i<s;i++){const s=e[i];let n=this.getDatasetMeta(i);const o=s.type||this.config.type;if(n.type&&n.type!==o&&(this._destroyDatasetMeta(i),n=this.getDatasetMeta(i)),n.type=o,n.indexAxis=s.indexAxis||$s(o,this.options),n.order=s.order||0,n.index=i,n.label=\"\"+s.label,n.visible=this.isDatasetVisible(i),n.controller)n.controller.updateIndex(i),n.controller.linkScales();else{const e=Ws.getController(o),{datasetElementType:s,dataElementType:a}=bt.datasets[o];Object.assign(e.prototype,{dataElementType:Ws.getElement(a),datasetElementType:s&&Ws.getElement(s)}),n.controller=new e(this,i),t.push(n.controller)}}return this._updateMetasets(),t}_resetElements(){Q(this.data.datasets,((t,e)=>{this.getDatasetMeta(e).controller.reset()}),this)}reset(){this._resetElements(),this.notifyPlugins(\"reset\")}update(t){const e=this.config;e.update();const i=this._options=e.createResolver(e.chartOptionScopes(),this.getContext()),s=this._animationsDisabled=!i.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),!1===this.notifyPlugins(\"beforeUpdate\",{mode:t,cancelable:!0}))return;const n=this.buildOrUpdateControllers();this.notifyPlugins(\"beforeElementsUpdate\");let o=0;for(let t=0,e=this.data.datasets.length;t<e;t++){const{controller:e}=this.getDatasetMeta(t),i=!s&&-1===n.indexOf(e);e.buildOrUpdateElements(i),o=Math.max(+e.getMaxOverflow(),o)}o=this._minPadding=i.layout.autoPadding?o:0,this._updateLayout(o),s||Q(n,(t=>{t.reset()})),this._updateDatasets(t),this.notifyPlugins(\"afterUpdate\",{mode:t}),this._layers.sort(nn(\"z\",\"_idx\"));const{_active:a,_lastEvent:r}=this;r?this._eventHandler(r,!0):a.length&&this._updateHoverStyles(a,a,!0),this.render()}_updateScales(){Q(this.scales,(t=>{ni.removeBox(this,t)})),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const t=this.options,e=new Set(Object.keys(this._listeners)),i=new Set(t.events);ut(e,i)&&!!this._responsiveListeners===t.responsive||(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:t}=this,e=this._getUniformDataChanges()||[];for(const{method:i,start:s,count:n}of e){cn(t,s,\"_removeElements\"===i?-n:n)}}_getUniformDataChanges(){const t=this._dataChanges;if(!t||!t.length)return;this._dataChanges=[];const e=this.data.datasets.length,i=e=>new Set(t.filter((t=>t[0]===e)).map(((t,e)=>e+\",\"+t.splice(1).join(\",\")))),s=i(0);for(let t=1;t<e;t++)if(!ut(s,i(t)))return;return Array.from(s).map((t=>t.split(\",\"))).map((t=>({method:t[1],start:+t[2],count:+t[3]})))}_updateLayout(t){if(!1===this.notifyPlugins(\"beforeLayout\",{cancelable:!0}))return;ni.update(this,this.width,this.height,t);const e=this.chartArea,i=e.width<=0||e.height<=0;this._layers=[],Q(this.boxes,(t=>{i&&\"chartArea\"===t.position||(t.configure&&t.configure(),this._layers.push(...t._layers()))}),this),this._layers.forEach(((t,e)=>{t._idx=e})),this.notifyPlugins(\"afterLayout\")}_updateDatasets(t){if(!1!==this.notifyPlugins(\"beforeDatasetsUpdate\",{mode:t,cancelable:!0})){for(let t=0,e=this.data.datasets.length;t<e;++t)this.getDatasetMeta(t).controller.configure();for(let e=0,i=this.data.datasets.length;e<i;++e)this._updateDataset(e,dt(t)?t({datasetIndex:e}):t);this.notifyPlugins(\"afterDatasetsUpdate\",{mode:t})}}_updateDataset(t,e){const i=this.getDatasetMeta(t),s={meta:i,index:t,mode:e,cancelable:!0};!1!==this.notifyPlugins(\"beforeDatasetUpdate\",s)&&(i.controller._update(e),s.cancelable=!1,this.notifyPlugins(\"afterDatasetUpdate\",s))}render(){!1!==this.notifyPlugins(\"beforeRender\",{cancelable:!0})&&(a.has(this)?this.attached&&!a.running(this)&&a.start(this):(this.draw(),on({chart:this})))}draw(){let t;if(this._resizeBeforeDraw){const{width:t,height:e}=this._resizeBeforeDraw;this._resize(t,e),this._resizeBeforeDraw=null}if(this.clear(),this.width<=0||this.height<=0)return;if(!1===this.notifyPlugins(\"beforeDraw\",{cancelable:!0}))return;const e=this._layers;for(t=0;t<e.length&&e[t].z<=0;++t)e[t].draw(this.chartArea);for(this._drawDatasets();t<e.length;++t)e[t].draw(this.chartArea);this.notifyPlugins(\"afterDraw\")}_getSortedDatasetMetas(t){const e=this._sortedMetasets,i=[];let s,n;for(s=0,n=e.length;s<n;++s){const n=e[s];t&&!n.visible||i.push(n)}return i}getSortedVisibleDatasetMetas(){return this._getSortedDatasetMetas(!0)}_drawDatasets(){if(!1===this.notifyPlugins(\"beforeDatasetsDraw\",{cancelable:!0}))return;const t=this.getSortedVisibleDatasetMetas();for(let e=t.length-1;e>=0;--e)this._drawDataset(t[e]);this.notifyPlugins(\"afterDatasetsDraw\")}_drawDataset(t){const e=this.ctx,i=t._clip,s=!i.disabled,n=this.chartArea,o={meta:t,index:t.index,cancelable:!0};!1!==this.notifyPlugins(\"beforeDatasetDraw\",o)&&(s&&Qt(e,{left:!1===i.left?0:n.left-i.left,right:!1===i.right?this.width:n.right+i.right,top:!1===i.top?0:n.top-i.top,bottom:!1===i.bottom?this.height:n.bottom+i.bottom}),t.controller.draw(),s&&te(e),o.cancelable=!1,this.notifyPlugins(\"afterDatasetDraw\",o))}getElementsAtEventForMode(t,e,i,s){const n=Ee.modes[e];return\"function\"==typeof n?n(this,t,i,s):[]}getDatasetMeta(t){const e=this.data.datasets[t],i=this._metasets;let s=i.filter((t=>t&&t._dataset===e)).pop();return s||(s={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:e&&e.order||0,index:t,_dataset:e,_parsed:[],_sorted:!1},i.push(s)),s}getContext(){return this.$context||(this.$context=Ye(null,{chart:this,type:\"chart\"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(t){const e=this.data.datasets[t];if(!e)return!1;const i=this.getDatasetMeta(t);return\"boolean\"==typeof i.hidden?!i.hidden:!e.hidden}setDatasetVisibility(t,e){this.getDatasetMeta(t).hidden=!e}toggleDataVisibility(t){this._hiddenIndices[t]=!this._hiddenIndices[t]}getDataVisibility(t){return!this._hiddenIndices[t]}_updateVisibility(t,e,i){const s=i?\"show\":\"hide\",n=this.getDatasetMeta(t),o=n.controller._resolveAnimations(void 0,s);ct(e)?(n.data[e].hidden=!i,this.update()):(this.setDatasetVisibility(t,i),o.update(n,{visible:i}),this.update((e=>e.datasetIndex===t?s:void 0)))}hide(t,e){this._updateVisibility(t,e,!1)}show(t,e){this._updateVisibility(t,e,!0)}_destroyDatasetMeta(t){const e=this._metasets[t];e&&e.controller&&e.controller._destroy(),delete this._metasets[t]}_stop(){let t,e;for(this.stop(),a.remove(this),t=0,e=this.data.datasets.length;t<e;++t)this._destroyDatasetMeta(t)}destroy(){this.notifyPlugins(\"beforeDestroy\");const{canvas:t,ctx:e}=this;this._stop(),this.config.clearCache(),t&&(this.unbindEvents(),Gt(t,e),this.platform.releaseContext(e),this.canvas=null,this.ctx=null),this.notifyPlugins(\"destroy\"),delete ln[this.id],this.notifyPlugins(\"afterDestroy\")}toBase64Image(...t){return this.canvas.toDataURL(...t)}bindEvents(){this.bindUserEvents(),this.options.responsive?this.bindResponsiveEvents():this.attached=!0}bindUserEvents(){const t=this._listeners,e=this.platform,i=(i,s)=>{e.addEventListener(this,i,s),t[i]=s},s=(t,e,i)=>{t.offsetX=e,t.offsetY=i,this._eventHandler(t)};Q(this.options.events,(t=>i(t,s)))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const t=this._responsiveListeners,e=this.platform,i=(i,s)=>{e.addEventListener(this,i,s),t[i]=s},s=(i,s)=>{t[i]&&(e.removeEventListener(this,i,s),delete t[i])},n=(t,e)=>{this.canvas&&this.resize(t,e)};let o;const a=()=>{s(\"attach\",a),this.attached=!0,this.resize(),i(\"resize\",n),i(\"detach\",o)};o=()=>{this.attached=!1,s(\"resize\",n),this._stop(),this._resize(0,0),i(\"attach\",a)},e.isAttached(this.canvas)?a():o()}unbindEvents(){Q(this._listeners,((t,e)=>{this.platform.removeEventListener(this,e,t)})),this._listeners={},Q(this._responsiveListeners,((t,e)=>{this.platform.removeEventListener(this,e,t)})),this._responsiveListeners=void 0}updateHoverStyle(t,e,i){const s=i?\"set\":\"remove\";let n,o,a,r;for(\"dataset\"===e&&(n=this.getDatasetMeta(t[0].datasetIndex),n.controller[\"_\"+s+\"DatasetHoverStyle\"]()),a=0,r=t.length;a<r;++a){o=t[a];const e=o&&this.getDatasetMeta(o.datasetIndex).controller;e&&e[s+\"HoverStyle\"](o.element,o.datasetIndex,o.index)}}getActiveElements(){return this._active||[]}setActiveElements(t){const e=this._active||[],i=t.map((({datasetIndex:t,index:e})=>{const i=this.getDatasetMeta(t);if(!i)throw new Error(\"No dataset found at index \"+t);return{datasetIndex:t,element:i.data[e],index:e}}));!tt(i,e)&&(this._active=i,this._lastEvent=null,this._updateHoverStyles(i,e))}notifyPlugins(t,e,i){return this._plugins.notify(this,t,e,i)}_updateHoverStyles(t,e,i){const s=this.options.hover,n=(t,e)=>t.filter((t=>!e.some((e=>t.datasetIndex===e.datasetIndex&&t.index===e.index)))),o=n(e,t),a=i?t:n(t,e);o.length&&this.updateHoverStyle(o,s.mode,!1),a.length&&s.mode&&this.updateHoverStyle(a,s.mode,!0)}_eventHandler(t,e){const i={event:t,replay:e,cancelable:!0,inChartArea:Jt(t,this.chartArea,this._minPadding)},s=e=>(e.options.events||this.options.events).includes(t.native.type);if(!1===this.notifyPlugins(\"beforeEvent\",i,s))return;const n=this._handleEvent(t,e,i.inChartArea);return i.cancelable=!1,this.notifyPlugins(\"afterEvent\",i,s),(n||i.changed)&&this.render(),this}_handleEvent(t,e,i){const{_active:s=[],options:n}=this,o=e,a=this._getActiveElements(t,s,i,o),r=ft(t),l=function(t,e,i,s){return i&&\"mouseout\"!==t.type?s?e:t:null}(t,this._lastEvent,i,r);i&&(this._lastEvent=null,J(n.onHover,[t,a,this],this),r&&J(n.onClick,[t,a,this],this));const h=!tt(a,s);return(h||e)&&(this._active=a,this._updateHoverStyles(a,s,e)),this._lastEvent=l,h}_getActiveElements(t,e,i,s){if(\"mouseout\"===t.type)return[];if(!i)return e;const n=this.options.hover;return this.getElementsAtEventForMode(t,n.mode,n,s)}}const un=()=>Q(dn.instances,(t=>t._plugins.invalidate())),fn=!0;function gn(){throw new Error(\"This method is not implemented: Check that a complete date adapter is provided.\")}Object.defineProperties(dn,{defaults:{enumerable:fn,value:bt},instances:{enumerable:fn,value:ln},overrides:{enumerable:fn,value:gt},registry:{enumerable:fn,value:Ws},version:{enumerable:fn,value:\"3.7.1\"},getChart:{enumerable:fn,value:hn},register:{enumerable:fn,value:(...t)=>{Ws.add(...t),un()}},unregister:{enumerable:fn,value:(...t)=>{Ws.remove(...t),un()}}});class pn{constructor(t){this.options=t||{}}formats(){return gn()}parse(t,e){return gn()}format(t,e){return gn()}add(t,e,i){return gn()}diff(t,e,i){return gn()}startOf(t,e,i){return gn()}endOf(t,e){return gn()}}pn.override=function(t){Object.assign(pn.prototype,t)};var mn={_date:pn};function xn(t){const e=t.iScale,i=function(t,e){if(!t._cache.$bar){const i=t.getMatchingVisibleMetas(e);let s=[];for(let e=0,n=i.length;e<n;e++)s=s.concat(i[e].controller.getAllParsedValues(t));t._cache.$bar=fe(s.sort(((t,e)=>t-e)))}return t._cache.$bar}(e,t.type);let s,n,o,a,r=e._length;const l=()=>{32767!==o&&-32768!==o&&(ct(a)&&(r=Math.min(r,Math.abs(o-a)||r)),a=o)};for(s=0,n=i.length;s<n;++s)o=e.getPixelForValue(i[s]),l();for(a=void 0,s=0,n=e.ticks.length;s<n;++s)o=e.getPixelForTick(s),l();return r}function bn(t,e,i,s){return Y(t)?function(t,e,i,s){const n=i.parse(t[0],s),o=i.parse(t[1],s),a=Math.min(n,o),r=Math.max(n,o);let l=a,h=r;Math.abs(a)>Math.abs(r)&&(l=r,h=a),e[i.axis]=h,e._custom={barStart:l,barEnd:h,start:n,end:o,min:a,max:r}}(t,e,i,s):e[i.axis]=i.parse(t,s),e}function _n(t,e,i,s){const n=t.iScale,o=t.vScale,a=n.getLabels(),r=n===o,l=[];let h,c,d,u;for(h=i,c=i+s;h<c;++h)u=e[h],d={},d[n.axis]=r||n.parse(a[h],h),l.push(bn(u,d,o,h));return l}function yn(t){return t&&void 0!==t.barStart&&void 0!==t.barEnd}function vn(t,e,i,s){let n=e.borderSkipped;const o={};if(!n)return void(t.borderSkipped=o);const{start:a,end:r,reverse:l,top:h,bottom:c}=function(t){let e,i,s,n,o;return t.horizontal?(e=t.base>t.x,i=\"left\",s=\"right\"):(e=t.base<t.y,i=\"bottom\",s=\"top\"),e?(n=\"end\",o=\"start\"):(n=\"start\",o=\"end\"),{start:i,end:s,reverse:e,top:n,bottom:o}}(t);\"middle\"===n&&i&&(t.enableBorderRadius=!0,(i._top||0)===s?n=h:(i._bottom||0)===s?n=c:(o[wn(c,a,r,l)]=!0,n=h)),o[wn(n,a,r,l)]=!0,t.borderSkipped=o}function wn(t,e,i,s){var n,o,a;return s?(a=i,t=Mn(t=(n=t)===(o=e)?a:n===a?o:n,i,e)):t=Mn(t,e,i),t}function Mn(t,e,i){return\"start\"===t?e:\"end\"===t?i:t}function kn(t,{inflateAmount:e},i){t.inflateAmount=\"auto\"===e?1===i?.33:0:e}class Sn extends Ps{parsePrimitiveData(t,e,i,s){return _n(t,e,i,s)}parseArrayData(t,e,i,s){return _n(t,e,i,s)}parseObjectData(t,e,i,s){const{iScale:n,vScale:o}=t,{xAxisKey:a=\"x\",yAxisKey:r=\"y\"}=this._parsing,l=\"x\"===n.axis?a:r,h=\"x\"===o.axis?a:r,c=[];let d,u,f,g;for(d=i,u=i+s;d<u;++d)g=e[d],f={},f[n.axis]=n.parse(lt(g,l),d),c.push(bn(lt(g,h),f,o,d));return c}updateRangeFromParsed(t,e,i,s){super.updateRangeFromParsed(t,e,i,s);const n=i._custom;n&&e===this._cachedMeta.vScale&&(t.min=Math.min(t.min,n.min),t.max=Math.max(t.max,n.max))}getMaxOverflow(){return 0}getLabelAndValue(t){const e=this._cachedMeta,{iScale:i,vScale:s}=e,n=this.getParsed(t),o=n._custom,a=yn(o)?\"[\"+o.start+\", \"+o.end+\"]\":\"\"+s.getLabelForValue(n[s.axis]);return{label:\"\"+i.getLabelForValue(n[i.axis]),value:a}}initialize(){this.enableOptionSharing=!0,super.initialize();this._cachedMeta.stack=this.getDataset().stack}update(t){const e=this._cachedMeta;this.updateElements(e.data,0,e.data.length,t)}updateElements(t,e,i,s){const n=\"reset\"===s,{index:o,_cachedMeta:{vScale:a}}=this,r=a.getBasePixel(),l=a.isHorizontal(),h=this._getRuler(),c=this.resolveDataElementOptions(e,s),d=this.getSharedOptions(c),u=this.includeOptions(s,d);this.updateSharedOptions(d,s,c);for(let c=e;c<e+i;c++){const e=this.getParsed(c),i=n||$(e[a.axis])?{base:r,head:r}:this._calculateBarValuePixels(c),f=this._calculateBarIndexPixels(c,h),g=(e._stacks||{})[a.axis],p={horizontal:l,base:i.base,enableBorderRadius:!g||yn(e._custom)||o===g._top||o===g._bottom,x:l?i.head:f.center,y:l?f.center:i.head,height:l?f.size:Math.abs(i.size),width:l?Math.abs(i.size):f.size};u&&(p.options=d||this.resolveDataElementOptions(c,t[c].active?\"active\":s));const m=p.options||t[c].options;vn(p,m,g,o),kn(p,m,h.ratio),this.updateElement(t[c],c,p,s)}}_getStacks(t,e){const i=this._cachedMeta.iScale,s=i.getMatchingVisibleMetas(this._type),n=i.options.stacked,o=s.length,a=[];let r,l;for(r=0;r<o;++r)if(l=s[r],l.controller.options.grouped){if(void 0!==e){const t=l.controller.getParsed(e)[l.controller._cachedMeta.vScale.axis];if($(t)||isNaN(t))continue}if((!1===n||-1===a.indexOf(l.stack)||void 0===n&&void 0===l.stack)&&a.push(l.stack),l.index===t)break}return a.length||a.push(void 0),a}_getStackCount(t){return this._getStacks(void 0,t).length}_getStackIndex(t,e,i){const s=this._getStacks(t,i),n=void 0!==e?s.indexOf(e):-1;return-1===n?s.length-1:n}_getRuler(){const t=this.options,e=this._cachedMeta,i=e.iScale,s=[];let n,o;for(n=0,o=e.data.length;n<o;++n)s.push(i.getPixelForValue(this.getParsed(n)[i.axis],n));const a=t.barThickness;return{min:a||xn(e),pixels:s,start:i._startPixel,end:i._endPixel,stackCount:this._getStackCount(),scale:i,grouped:t.grouped,ratio:a?1:t.categoryPercentage*t.barPercentage}}_calculateBarValuePixels(t){const{_cachedMeta:{vScale:e,_stacked:i},options:{base:s,minBarLength:n}}=this,o=s||0,a=this.getParsed(t),r=a._custom,l=yn(r);let h,c,d=a[e.axis],u=0,f=i?this.applyStack(e,a,i):d;f!==d&&(u=f-d,f=d),l&&(d=r.barStart,f=r.barEnd-r.barStart,0!==d&&Ct(d)!==Ct(r.barEnd)&&(u=0),u+=d);const g=$(s)||l?u:s;let p=e.getPixelForValue(g);if(h=this.chart.getDataVisibility(t)?e.getPixelForValue(u+f):p,c=h-p,Math.abs(c)<n&&(c=function(t,e,i){return 0!==t?Ct(t):(e.isHorizontal()?1:-1)*(e.min>=i?1:-1)}(c,e,o)*n,d===o&&(p-=c/2),h=p+c),p===e.getPixelForValue(o)){const t=Ct(c)*e.getLineWidthForValue(o)/2;p+=t,c-=t}return{size:c,base:p,head:h,center:h+c/2}}_calculateBarIndexPixels(t,e){const i=e.scale,s=this.options,n=s.skipNull,o=K(s.maxBarThickness,1/0);let a,r;if(e.grouped){const i=n?this._getStackCount(t):e.stackCount,l=\"flex\"===s.barThickness?function(t,e,i,s){const n=e.pixels,o=n[t];let a=t>0?n[t-1]:null,r=t<n.length-1?n[t+1]:null;const l=i.categoryPercentage;null===a&&(a=o-(null===r?e.end-e.start:r-o)),null===r&&(r=o+o-a);const h=o-(o-Math.min(a,r))/2*l;return{chunk:Math.abs(r-a)/2*l/s,ratio:i.barPercentage,start:h}}(t,e,s,i):function(t,e,i,s){const n=i.barThickness;let o,a;return $(n)?(o=e.min*i.categoryPercentage,a=i.barPercentage):(o=n*s,a=1),{chunk:o/s,ratio:a,start:e.pixels[t]-o/2}}(t,e,s,i),h=this._getStackIndex(this.index,this._cachedMeta.stack,n?t:void 0);a=l.start+l.chunk*h+l.chunk/2,r=Math.min(o,l.chunk*l.ratio)}else a=i.getPixelForValue(this.getParsed(t)[i.axis],t),r=Math.min(o,e.min*e.ratio);return{base:a-r/2,head:a+r/2,center:a,size:r}}draw(){const t=this._cachedMeta,e=t.vScale,i=t.data,s=i.length;let n=0;for(;n<s;++n)null!==this.getParsed(n)[e.axis]&&i[n].draw(this._ctx)}}Sn.id=\"bar\",Sn.defaults={datasetElementType:!1,dataElementType:\"bar\",categoryPercentage:.8,barPercentage:.9,grouped:!0,animations:{numbers:{type:\"number\",properties:[\"x\",\"y\",\"base\",\"width\",\"height\"]}}},Sn.overrides={scales:{_index_:{type:\"category\",offset:!0,grid:{offset:!0}},_value_:{type:\"linear\",beginAtZero:!0}}};class Pn extends Ps{initialize(){this.enableOptionSharing=!0,super.initialize()}parsePrimitiveData(t,e,i,s){const n=super.parsePrimitiveData(t,e,i,s);for(let t=0;t<n.length;t++)n[t]._custom=this.resolveDataElementOptions(t+i).radius;return n}parseArrayData(t,e,i,s){const n=super.parseArrayData(t,e,i,s);for(let t=0;t<n.length;t++){const s=e[i+t];n[t]._custom=K(s[2],this.resolveDataElementOptions(t+i).radius)}return n}parseObjectData(t,e,i,s){const n=super.parseObjectData(t,e,i,s);for(let t=0;t<n.length;t++){const s=e[i+t];n[t]._custom=K(s&&s.r&&+s.r,this.resolveDataElementOptions(t+i).radius)}return n}getMaxOverflow(){const t=this._cachedMeta.data;let e=0;for(let i=t.length-1;i>=0;--i)e=Math.max(e,t[i].size(this.resolveDataElementOptions(i))/2);return e>0&&e}getLabelAndValue(t){const e=this._cachedMeta,{xScale:i,yScale:s}=e,n=this.getParsed(t),o=i.getLabelForValue(n.x),a=s.getLabelForValue(n.y),r=n._custom;return{label:e.label,value:\"(\"+o+\", \"+a+(r?\", \"+r:\"\")+\")\"}}update(t){const e=this._cachedMeta.data;this.updateElements(e,0,e.length,t)}updateElements(t,e,i,s){const n=\"reset\"===s,{iScale:o,vScale:a}=this._cachedMeta,r=this.resolveDataElementOptions(e,s),l=this.getSharedOptions(r),h=this.includeOptions(s,l),c=o.axis,d=a.axis;for(let r=e;r<e+i;r++){const e=t[r],i=!n&&this.getParsed(r),l={},u=l[c]=n?o.getPixelForDecimal(.5):o.getPixelForValue(i[c]),f=l[d]=n?a.getBasePixel():a.getPixelForValue(i[d]);l.skip=isNaN(u)||isNaN(f),h&&(l.options=this.resolveDataElementOptions(r,e.active?\"active\":s),n&&(l.options.radius=0)),this.updateElement(e,r,l,s)}this.updateSharedOptions(l,s,r)}resolveDataElementOptions(t,e){const i=this.getParsed(t);let s=super.resolveDataElementOptions(t,e);s.$shared&&(s=Object.assign({},s,{$shared:!1}));const n=s.radius;return\"active\"!==e&&(s.radius=0),s.radius+=K(i&&i._custom,n),s}}Pn.id=\"bubble\",Pn.defaults={datasetElementType:!1,dataElementType:\"point\",animations:{numbers:{type:\"number\",properties:[\"x\",\"y\",\"borderWidth\",\"radius\"]}}},Pn.overrides={scales:{x:{type:\"linear\"},y:{type:\"linear\"}},plugins:{tooltip:{callbacks:{title:()=>\"\"}}}};class Dn extends Ps{constructor(t,e){super(t,e),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(t,e){const i=this.getDataset().data,s=this._cachedMeta;if(!1===this._parsing)s._parsed=i;else{let n,o,a=t=>+i[t];if(U(i[t])){const{key:t=\"value\"}=this._parsing;a=e=>+lt(i[e],t)}for(n=t,o=t+e;n<o;++n)s._parsed[n]=a(n)}}_getRotation(){return It(this.options.rotation-90)}_getCircumference(){return It(this.options.circumference)}_getRotationExtents(){let t=yt,e=-yt;for(let i=0;i<this.chart.data.datasets.length;++i)if(this.chart.isDatasetVisible(i)){const s=this.chart.getDatasetMeta(i).controller,n=s._getRotation(),o=s._getCircumference();t=Math.min(t,n),e=Math.max(e,n+o)}return{rotation:t,circumference:e-t}}update(t){const e=this.chart,{chartArea:i}=e,s=this._cachedMeta,n=s.data,o=this.getMaxBorderWidth()+this.getMaxOffset(n)+this.options.spacing,a=Math.max((Math.min(i.width,i.height)-o)/2,0),r=Math.min(G(this.options.cutout,a),1),l=this._getRingWeight(this.index),{circumference:h,rotation:c}=this._getRotationExtents(),{ratioX:d,ratioY:u,offsetX:f,offsetY:g}=function(t,e,i){let s=1,n=1,o=0,a=0;if(e<yt){const r=t,l=r+e,h=Math.cos(r),c=Math.sin(r),d=Math.cos(l),u=Math.sin(l),f=(t,e,s)=>Ht(t,r,l,!0)?1:Math.max(e,e*i,s,s*i),g=(t,e,s)=>Ht(t,r,l,!0)?-1:Math.min(e,e*i,s,s*i),p=f(0,h,d),m=f(kt,c,u),x=g(_t,h,d),b=g(_t+kt,c,u);s=(p-x)/2,n=(m-b)/2,o=-(p+x)/2,a=-(m+b)/2}return{ratioX:s,ratioY:n,offsetX:o,offsetY:a}}(c,h,r),p=(i.width-o)/d,m=(i.height-o)/u,x=Math.max(Math.min(p,m)/2,0),b=Z(this.options.radius,x),_=(b-Math.max(b*r,0))/this._getVisibleDatasetWeightTotal();this.offsetX=f*b,this.offsetY=g*b,s.total=this.calculateTotal(),this.outerRadius=b-_*this._getRingWeightOffset(this.index),this.innerRadius=Math.max(this.outerRadius-_*l,0),this.updateElements(n,0,n.length,t)}_circumference(t,e){const i=this.options,s=this._cachedMeta,n=this._getCircumference();return e&&i.animation.animateRotate||!this.chart.getDataVisibility(t)||null===s._parsed[t]||s.data[t].hidden?0:this.calculateCircumference(s._parsed[t]*n/yt)}updateElements(t,e,i,s){const n=\"reset\"===s,o=this.chart,a=o.chartArea,r=o.options.animation,l=(a.left+a.right)/2,h=(a.top+a.bottom)/2,c=n&&r.animateScale,d=c?0:this.innerRadius,u=c?0:this.outerRadius,f=this.resolveDataElementOptions(e,s),g=this.getSharedOptions(f),p=this.includeOptions(s,g);let m,x=this._getRotation();for(m=0;m<e;++m)x+=this._circumference(m,n);for(m=e;m<e+i;++m){const e=this._circumference(m,n),i=t[m],o={x:l+this.offsetX,y:h+this.offsetY,startAngle:x,endAngle:x+e,circumference:e,outerRadius:u,innerRadius:d};p&&(o.options=g||this.resolveDataElementOptions(m,i.active?\"active\":s)),x+=e,this.updateElement(i,m,o,s)}this.updateSharedOptions(g,s,f)}calculateTotal(){const t=this._cachedMeta,e=t.data;let i,s=0;for(i=0;i<e.length;i++){const n=t._parsed[i];null===n||isNaN(n)||!this.chart.getDataVisibility(i)||e[i].hidden||(s+=Math.abs(n))}return s}calculateCircumference(t){const e=this._cachedMeta.total;return e>0&&!isNaN(t)?yt*(Math.abs(t)/e):0}getLabelAndValue(t){const e=this._cachedMeta,i=this.chart,s=i.data.labels||[],n=Ri(e._parsed[t],i.options.locale);return{label:s[t]||\"\",value:n}}getMaxBorderWidth(t){let e=0;const i=this.chart;let s,n,o,a,r;if(!t)for(s=0,n=i.data.datasets.length;s<n;++s)if(i.isDatasetVisible(s)){o=i.getDatasetMeta(s),t=o.data,a=o.controller;break}if(!t)return 0;for(s=0,n=t.length;s<n;++s)r=a.resolveDataElementOptions(s),\"inner\"!==r.borderAlign&&(e=Math.max(e,r.borderWidth||0,r.hoverBorderWidth||0));return e}getMaxOffset(t){let e=0;for(let i=0,s=t.length;i<s;++i){const t=this.resolveDataElementOptions(i);e=Math.max(e,t.offset||0,t.hoverOffset||0)}return e}_getRingWeightOffset(t){let e=0;for(let i=0;i<t;++i)this.chart.isDatasetVisible(i)&&(e+=this._getRingWeight(i));return e}_getRingWeight(t){return Math.max(K(this.chart.data.datasets[t].weight,1),0)}_getVisibleDatasetWeightTotal(){return this._getRingWeightOffset(this.chart.data.datasets.length)||1}}Dn.id=\"doughnut\",Dn.defaults={datasetElementType:!1,dataElementType:\"arc\",animation:{animateRotate:!0,animateScale:!1},animations:{numbers:{type:\"number\",properties:[\"circumference\",\"endAngle\",\"innerRadius\",\"outerRadius\",\"startAngle\",\"x\",\"y\",\"offset\",\"borderWidth\",\"spacing\"]}},cutout:\"50%\",rotation:0,circumference:360,radius:\"100%\",spacing:0,indexAxis:\"r\"},Dn.descriptors={_scriptable:t=>\"spacing\"!==t,_indexable:t=>\"spacing\"!==t},Dn.overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(t){const e=t.data;if(e.labels.length&&e.datasets.length){const{labels:{pointStyle:i}}=t.legend.options;return e.labels.map(((e,s)=>{const n=t.getDatasetMeta(0).controller.getStyle(s);return{text:e,fillStyle:n.backgroundColor,strokeStyle:n.borderColor,lineWidth:n.borderWidth,pointStyle:i,hidden:!t.getDataVisibility(s),index:s}}))}return[]}},onClick(t,e,i){i.chart.toggleDataVisibility(e.index),i.chart.update()}},tooltip:{callbacks:{title:()=>\"\",label(t){let e=t.label;const i=\": \"+t.formattedValue;return Y(e)?(e=e.slice(),e[0]+=i):e+=i,e}}}}};class Cn extends Ps{initialize(){this.enableOptionSharing=!0,super.initialize()}update(t){const e=this._cachedMeta,{dataset:i,data:s=[],_dataset:n}=e,o=this.chart._animationsDisabled;let{start:a,count:r}=function(t,e,i){const s=e.length;let n=0,o=s;if(t._sorted){const{iScale:a,_parsed:r}=t,l=a.axis,{min:h,max:c,minDefined:d,maxDefined:u}=a.getUserBounds();d&&(n=jt(Math.min(re(r,a.axis,h).lo,i?s:re(e,l,a.getPixelForValue(h)).lo),0,s-1)),o=u?jt(Math.max(re(r,a.axis,c).hi+1,i?0:re(e,l,a.getPixelForValue(c)).hi+1),n,s)-n:s-n}return{start:n,count:o}}(e,s,o);this._drawStart=a,this._drawCount=r,function(t){const{xScale:e,yScale:i,_scaleRanges:s}=t,n={xmin:e.min,xmax:e.max,ymin:i.min,ymax:i.max};if(!s)return t._scaleRanges=n,!0;const o=s.xmin!==e.min||s.xmax!==e.max||s.ymin!==i.min||s.ymax!==i.max;return Object.assign(s,n),o}(e)&&(a=0,r=s.length),i._chart=this.chart,i._datasetIndex=this.index,i._decimated=!!n._decimated,i.points=s;const l=this.resolveDatasetElementOptions(t);this.options.showLine||(l.borderWidth=0),l.segment=this.options.segment,this.updateElement(i,void 0,{animated:!o,options:l},t),this.updateElements(s,a,r,t)}updateElements(t,e,i,s){const n=\"reset\"===s,{iScale:o,vScale:a,_stacked:r,_dataset:l}=this._cachedMeta,h=this.resolveDataElementOptions(e,s),c=this.getSharedOptions(h),d=this.includeOptions(s,c),u=o.axis,f=a.axis,{spanGaps:g,segment:p}=this.options,m=Tt(g)?g:Number.POSITIVE_INFINITY,x=this.chart._animationsDisabled||n||\"none\"===s;let b=e>0&&this.getParsed(e-1);for(let h=e;h<e+i;++h){const e=t[h],i=this.getParsed(h),g=x?e:{},_=$(i[f]),y=g[u]=o.getPixelForValue(i[u],h),v=g[f]=n||_?a.getBasePixel():a.getPixelForValue(r?this.applyStack(a,i,r):i[f],h);g.skip=isNaN(y)||isNaN(v)||_,g.stop=h>0&&i[u]-b[u]>m,p&&(g.parsed=i,g.raw=l.data[h]),d&&(g.options=c||this.resolveDataElementOptions(h,e.active?\"active\":s)),x||this.updateElement(e,h,g,s),b=i}this.updateSharedOptions(c,s,h)}getMaxOverflow(){const t=this._cachedMeta,e=t.dataset,i=e.options&&e.options.borderWidth||0,s=t.data||[];if(!s.length)return i;const n=s[0].size(this.resolveDataElementOptions(0)),o=s[s.length-1].size(this.resolveDataElementOptions(s.length-1));return Math.max(i,n,o)/2}draw(){const t=this._cachedMeta;t.dataset.updateControlPoints(this.chart.chartArea,t.iScale.axis),super.draw()}}Cn.id=\"line\",Cn.defaults={datasetElementType:\"line\",dataElementType:\"point\",showLine:!0,spanGaps:!1},Cn.overrides={scales:{_index_:{type:\"category\"},_value_:{type:\"linear\"}}};class On extends Ps{constructor(t,e){super(t,e),this.innerRadius=void 0,this.outerRadius=void 0}getLabelAndValue(t){const e=this._cachedMeta,i=this.chart,s=i.data.labels||[],n=Ri(e._parsed[t].r,i.options.locale);return{label:s[t]||\"\",value:n}}update(t){const e=this._cachedMeta.data;this._updateRadius(),this.updateElements(e,0,e.length,t)}_updateRadius(){const t=this.chart,e=t.chartArea,i=t.options,s=Math.min(e.right-e.left,e.bottom-e.top),n=Math.max(s/2,0),o=(n-Math.max(i.cutoutPercentage?n/100*i.cutoutPercentage:1,0))/t.getVisibleDatasetCount();this.outerRadius=n-o*this.index,this.innerRadius=this.outerRadius-o}updateElements(t,e,i,s){const n=\"reset\"===s,o=this.chart,a=this.getDataset(),r=o.options.animation,l=this._cachedMeta.rScale,h=l.xCenter,c=l.yCenter,d=l.getIndexAngle(0)-.5*_t;let u,f=d;const g=360/this.countVisibleElements();for(u=0;u<e;++u)f+=this._computeAngle(u,s,g);for(u=e;u<e+i;u++){const e=t[u];let i=f,p=f+this._computeAngle(u,s,g),m=o.getDataVisibility(u)?l.getDistanceFromCenterForValue(a.data[u]):0;f=p,n&&(r.animateScale&&(m=0),r.animateRotate&&(i=p=d));const x={x:h,y:c,innerRadius:0,outerRadius:m,startAngle:i,endAngle:p,options:this.resolveDataElementOptions(u,e.active?\"active\":s)};this.updateElement(e,u,x,s)}}countVisibleElements(){const t=this.getDataset(),e=this._cachedMeta;let i=0;return e.data.forEach(((e,s)=>{!isNaN(t.data[s])&&this.chart.getDataVisibility(s)&&i++})),i}_computeAngle(t,e,i){return this.chart.getDataVisibility(t)?It(this.resolveDataElementOptions(t,e).angle||i):0}}On.id=\"polarArea\",On.defaults={dataElementType:\"arc\",animation:{animateRotate:!0,animateScale:!0},animations:{numbers:{type:\"number\",properties:[\"x\",\"y\",\"startAngle\",\"endAngle\",\"innerRadius\",\"outerRadius\"]}},indexAxis:\"r\",startAngle:0},On.overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(t){const e=t.data;if(e.labels.length&&e.datasets.length){const{labels:{pointStyle:i}}=t.legend.options;return e.labels.map(((e,s)=>{const n=t.getDatasetMeta(0).controller.getStyle(s);return{text:e,fillStyle:n.backgroundColor,strokeStyle:n.borderColor,lineWidth:n.borderWidth,pointStyle:i,hidden:!t.getDataVisibility(s),index:s}}))}return[]}},onClick(t,e,i){i.chart.toggleDataVisibility(e.index),i.chart.update()}},tooltip:{callbacks:{title:()=>\"\",label:t=>t.chart.data.labels[t.dataIndex]+\": \"+t.formattedValue}}},scales:{r:{type:\"radialLinear\",angleLines:{display:!1},beginAtZero:!0,grid:{circular:!0},pointLabels:{display:!1},startAngle:0}}};class An extends Dn{}An.id=\"pie\",An.defaults={cutout:0,rotation:0,circumference:360,radius:\"100%\"};class Tn extends Ps{getLabelAndValue(t){const e=this._cachedMeta.vScale,i=this.getParsed(t);return{label:e.getLabels()[t],value:\"\"+e.getLabelForValue(i[e.axis])}}update(t){const e=this._cachedMeta,i=e.dataset,s=e.data||[],n=e.iScale.getLabels();if(i.points=s,\"resize\"!==t){const e=this.resolveDatasetElementOptions(t);this.options.showLine||(e.borderWidth=0);const o={_loop:!0,_fullLoop:n.length===s.length,options:e};this.updateElement(i,void 0,o,t)}this.updateElements(s,0,s.length,t)}updateElements(t,e,i,s){const n=this.getDataset(),o=this._cachedMeta.rScale,a=\"reset\"===s;for(let r=e;r<e+i;r++){const e=t[r],i=this.resolveDataElementOptions(r,e.active?\"active\":s),l=o.getPointPositionForValue(r,n.data[r]),h=a?o.xCenter:l.x,c=a?o.yCenter:l.y,d={x:h,y:c,angle:l.angle,skip:isNaN(h)||isNaN(c),options:i};this.updateElement(e,r,d,s)}}}Tn.id=\"radar\",Tn.defaults={datasetElementType:\"line\",dataElementType:\"point\",indexAxis:\"r\",showLine:!0,elements:{line:{fill:\"start\"}}},Tn.overrides={aspectRatio:1,scales:{r:{type:\"radialLinear\"}}};class Ln extends Cn{}Ln.id=\"scatter\",Ln.defaults={showLine:!1,fill:!1},Ln.overrides={interaction:{mode:\"point\"},plugins:{tooltip:{callbacks:{title:()=>\"\",label:t=>\"(\"+t.label+\", \"+t.formattedValue+\")\"}}},scales:{x:{type:\"linear\"},y:{type:\"linear\"}}};var Rn=Object.freeze({__proto__:null,BarController:Sn,BubbleController:Pn,DoughnutController:Dn,LineController:Cn,PolarAreaController:On,PieController:An,RadarController:Tn,ScatterController:Ln});function En(t,e,i){const{startAngle:s,pixelMargin:n,x:o,y:a,outerRadius:r,innerRadius:l}=e;let h=n/r;t.beginPath(),t.arc(o,a,r,s-h,i+h),l>n?(h=n/l,t.arc(o,a,l,i+h,s-h,!0)):t.arc(o,a,n,i+kt,s-kt),t.closePath(),t.clip()}function In(t,e,i,s){const n=Be(t.options.borderRadius,[\"outerStart\",\"outerEnd\",\"innerStart\",\"innerEnd\"]);const o=(i-e)/2,a=Math.min(o,s*e/2),r=t=>{const e=(i-Math.min(o,t))*s/2;return jt(t,0,Math.min(o,e))};return{outerStart:r(n.outerStart),outerEnd:r(n.outerEnd),innerStart:jt(n.innerStart,0,a),innerEnd:jt(n.innerEnd,0,a)}}function zn(t,e,i,s){return{x:i+t*Math.cos(e),y:s+t*Math.sin(e)}}function Fn(t,e,i,s,n){const{x:o,y:a,startAngle:r,pixelMargin:l,innerRadius:h}=e,c=Math.max(e.outerRadius+s+i-l,0),d=h>0?h+s+i+l:0;let u=0;const f=n-r;if(s){const t=((h>0?h-s:0)+(c>0?c-s:0))/2;u=(f-(0!==t?f*t/(t+s):f))/2}const g=(f-Math.max(.001,f*c-i/_t)/c)/2,p=r+g+u,m=n-g-u,{outerStart:x,outerEnd:b,innerStart:_,innerEnd:y}=In(e,d,c,m-p),v=c-x,w=c-b,M=p+x/v,k=m-b/w,S=d+_,P=d+y,D=p+_/S,C=m-y/P;if(t.beginPath(),t.arc(o,a,c,M,k),b>0){const e=zn(w,k,o,a);t.arc(e.x,e.y,b,k,m+kt)}const O=zn(P,m,o,a);if(t.lineTo(O.x,O.y),y>0){const e=zn(P,C,o,a);t.arc(e.x,e.y,y,m+kt,C+Math.PI)}if(t.arc(o,a,d,m-y/d,p+_/d,!0),_>0){const e=zn(S,D,o,a);t.arc(e.x,e.y,_,D+Math.PI,p-kt)}const A=zn(v,p,o,a);if(t.lineTo(A.x,A.y),x>0){const e=zn(v,M,o,a);t.arc(e.x,e.y,x,p-kt,M)}t.closePath()}function Bn(t,e,i,s,n){const{options:o}=e,{borderWidth:a,borderJoinStyle:r}=o,l=\"inner\"===o.borderAlign;a&&(l?(t.lineWidth=2*a,t.lineJoin=r||\"round\"):(t.lineWidth=a,t.lineJoin=r||\"bevel\"),e.fullCircles&&function(t,e,i){const{x:s,y:n,startAngle:o,pixelMargin:a,fullCircles:r}=e,l=Math.max(e.outerRadius-a,0),h=e.innerRadius+a;let c;for(i&&En(t,e,o+yt),t.beginPath(),t.arc(s,n,h,o+yt,o,!0),c=0;c<r;++c)t.stroke();for(t.beginPath(),t.arc(s,n,l,o,o+yt),c=0;c<r;++c)t.stroke()}(t,e,l),l&&En(t,e,n),Fn(t,e,i,s,n),t.stroke())}class Vn extends Ds{constructor(t){super(),this.options=void 0,this.circumference=void 0,this.startAngle=void 0,this.endAngle=void 0,this.innerRadius=void 0,this.outerRadius=void 0,this.pixelMargin=0,this.fullCircles=0,t&&Object.assign(this,t)}inRange(t,e,i){const s=this.getProps([\"x\",\"y\"],i),{angle:n,distance:o}=Bt(s,{x:t,y:e}),{startAngle:a,endAngle:r,innerRadius:l,outerRadius:h,circumference:c}=this.getProps([\"startAngle\",\"endAngle\",\"innerRadius\",\"outerRadius\",\"circumference\"],i),d=this.options.spacing/2,u=K(c,r-a)>=yt||Ht(n,a,r),f=Yt(o,l+d,h+d);return u&&f}getCenterPoint(t){const{x:e,y:i,startAngle:s,endAngle:n,innerRadius:o,outerRadius:a}=this.getProps([\"x\",\"y\",\"startAngle\",\"endAngle\",\"innerRadius\",\"outerRadius\",\"circumference\"],t),{offset:r,spacing:l}=this.options,h=(s+n)/2,c=(o+a+l+r)/2;return{x:e+Math.cos(h)*c,y:i+Math.sin(h)*c}}tooltipPosition(t){return this.getCenterPoint(t)}draw(t){const{options:e,circumference:i}=this,s=(e.offset||0)/2,n=(e.spacing||0)/2;if(this.pixelMargin=\"inner\"===e.borderAlign?.33:0,this.fullCircles=i>yt?Math.floor(i/yt):0,0===i||this.innerRadius<0||this.outerRadius<0)return;t.save();let o=0;if(s){o=s/2;const e=(this.startAngle+this.endAngle)/2;t.translate(Math.cos(e)*o,Math.sin(e)*o),this.circumference>=_t&&(o=s)}t.fillStyle=e.backgroundColor,t.strokeStyle=e.borderColor;const a=function(t,e,i,s){const{fullCircles:n,startAngle:o,circumference:a}=e;let r=e.endAngle;if(n){Fn(t,e,i,s,o+yt);for(let e=0;e<n;++e)t.fill();isNaN(a)||(r=o+a%yt,a%yt==0&&(r+=yt))}return Fn(t,e,i,s,r),t.fill(),r}(t,this,o,n);Bn(t,this,o,n,a),t.restore()}}function Wn(t,e,i=e){t.lineCap=K(i.borderCapStyle,e.borderCapStyle),t.setLineDash(K(i.borderDash,e.borderDash)),t.lineDashOffset=K(i.borderDashOffset,e.borderDashOffset),t.lineJoin=K(i.borderJoinStyle,e.borderJoinStyle),t.lineWidth=K(i.borderWidth,e.borderWidth),t.strokeStyle=K(i.borderColor,e.borderColor)}function Nn(t,e,i){t.lineTo(i.x,i.y)}function Hn(t,e,i={}){const s=t.length,{start:n=0,end:o=s-1}=i,{start:a,end:r}=e,l=Math.max(n,a),h=Math.min(o,r),c=n<a&&o<a||n>r&&o>r;return{count:s,start:l,loop:e.loop,ilen:h<l&&!c?s+h-l:h-l}}function jn(t,e,i,s){const{points:n,options:o}=e,{count:a,start:r,loop:l,ilen:h}=Hn(n,i,s),c=function(t){return t.stepped?ee:t.tension||\"monotone\"===t.cubicInterpolationMode?ie:Nn}(o);let d,u,f,{move:g=!0,reverse:p}=s||{};for(d=0;d<=h;++d)u=n[(r+(p?h-d:d))%a],u.skip||(g?(t.moveTo(u.x,u.y),g=!1):c(t,f,u,p,o.stepped),f=u);return l&&(u=n[(r+(p?h:0))%a],c(t,f,u,p,o.stepped)),!!l}function $n(t,e,i,s){const n=e.points,{count:o,start:a,ilen:r}=Hn(n,i,s),{move:l=!0,reverse:h}=s||{};let c,d,u,f,g,p,m=0,x=0;const b=t=>(a+(h?r-t:t))%o,_=()=>{f!==g&&(t.lineTo(m,g),t.lineTo(m,f),t.lineTo(m,p))};for(l&&(d=n[b(0)],t.moveTo(d.x,d.y)),c=0;c<=r;++c){if(d=n[b(c)],d.skip)continue;const e=d.x,i=d.y,s=0|e;s===u?(i<f?f=i:i>g&&(g=i),m=(x*m+e)/++x):(_(),t.lineTo(e,i),u=s,x=0,f=g=i),p=i}_()}function Yn(t){const e=t.options,i=e.borderDash&&e.borderDash.length;return!(t._decimated||t._loop||e.tension||\"monotone\"===e.cubicInterpolationMode||e.stepped||i)?$n:jn}Vn.id=\"arc\",Vn.defaults={borderAlign:\"center\",borderColor:\"#fff\",borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0},Vn.defaultRoutes={backgroundColor:\"backgroundColor\"};const Un=\"function\"==typeof Path2D;function Xn(t,e,i,s){Un&&!e.options.segment?function(t,e,i,s){let n=e._path;n||(n=e._path=new Path2D,e.path(n,i,s)&&n.closePath()),Wn(t,e.options),t.stroke(n)}(t,e,i,s):function(t,e,i,s){const{segments:n,options:o}=e,a=Yn(e);for(const r of n)Wn(t,o,r.style),t.beginPath(),a(t,e,r,{start:i,end:i+s-1})&&t.closePath(),t.stroke()}(t,e,i,s)}class qn extends Ds{constructor(t){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,t&&Object.assign(this,t)}updateControlPoints(t,e){const i=this.options;if((i.tension||\"monotone\"===i.cubicInterpolationMode)&&!i.stepped&&!this._pointsUpdated){const s=i.spanGaps?this._loop:this._fullLoop;ki(this._points,i,t,s,e),this._pointsUpdated=!0}}set points(t){this._points=t,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=Ni(this,this.options.segment))}first(){const t=this.segments,e=this.points;return t.length&&e[t[0].start]}last(){const t=this.segments,e=this.points,i=t.length;return i&&e[t[i-1].end]}interpolate(t,e){const i=this.options,s=t[e],n=this.points,o=Wi(this,{property:e,start:s,end:s});if(!o.length)return;const a=[],r=function(t){return t.stepped?Ai:t.tension||\"monotone\"===t.cubicInterpolationMode?Ti:Oi}(i);let l,h;for(l=0,h=o.length;l<h;++l){const{start:h,end:c}=o[l],d=n[h],u=n[c];if(d===u){a.push(d);continue}const f=r(d,u,Math.abs((s-d[e])/(u[e]-d[e])),i.stepped);f[e]=t[e],a.push(f)}return 1===a.length?a[0]:a}pathSegment(t,e,i){return Yn(this)(t,this,e,i)}path(t,e,i){const s=this.segments,n=Yn(this);let o=this._loop;e=e||0,i=i||this.points.length-e;for(const a of s)o&=n(t,this,a,{start:e,end:e+i-1});return!!o}draw(t,e,i,s){const n=this.options||{};(this.points||[]).length&&n.borderWidth&&(t.save(),Xn(t,this,i,s),t.restore()),this.animated&&(this._pointsUpdated=!1,this._path=void 0)}}function Kn(t,e,i,s){const n=t.options,{[i]:o}=t.getProps([i],s);return Math.abs(e-o)<n.radius+n.hitRadius}qn.id=\"line\",qn.defaults={borderCapStyle:\"butt\",borderDash:[],borderDashOffset:0,borderJoinStyle:\"miter\",borderWidth:3,capBezierPoints:!0,cubicInterpolationMode:\"default\",fill:!1,spanGaps:!1,stepped:!1,tension:0},qn.defaultRoutes={backgroundColor:\"backgroundColor\",borderColor:\"borderColor\"},qn.descriptors={_scriptable:!0,_indexable:t=>\"borderDash\"!==t&&\"fill\"!==t};class Gn extends Ds{constructor(t){super(),this.options=void 0,this.parsed=void 0,this.skip=void 0,this.stop=void 0,t&&Object.assign(this,t)}inRange(t,e,i){const s=this.options,{x:n,y:o}=this.getProps([\"x\",\"y\"],i);return Math.pow(t-n,2)+Math.pow(e-o,2)<Math.pow(s.hitRadius+s.radius,2)}inXRange(t,e){return Kn(this,t,\"x\",e)}inYRange(t,e){return Kn(this,t,\"y\",e)}getCenterPoint(t){const{x:e,y:i}=this.getProps([\"x\",\"y\"],t);return{x:e,y:i}}size(t){let e=(t=t||this.options||{}).radius||0;e=Math.max(e,e&&t.hoverRadius||0);return 2*(e+(e&&t.borderWidth||0))}draw(t,e){const i=this.options;this.skip||i.radius<.1||!Jt(this,e,this.size(i)/2)||(t.strokeStyle=i.borderColor,t.lineWidth=i.borderWidth,t.fillStyle=i.backgroundColor,Zt(t,i,this.x,this.y))}getRange(){const t=this.options||{};return t.radius+t.hitRadius}}function Zn(t,e){const{x:i,y:s,base:n,width:o,height:a}=t.getProps([\"x\",\"y\",\"base\",\"width\",\"height\"],e);let r,l,h,c,d;return t.horizontal?(d=a/2,r=Math.min(i,n),l=Math.max(i,n),h=s-d,c=s+d):(d=o/2,r=i-d,l=i+d,h=Math.min(s,n),c=Math.max(s,n)),{left:r,top:h,right:l,bottom:c}}function Jn(t,e,i,s){return t?0:jt(e,i,s)}function Qn(t){const e=Zn(t),i=e.right-e.left,s=e.bottom-e.top,n=function(t,e,i){const s=t.options.borderWidth,n=t.borderSkipped,o=Ve(s);return{t:Jn(n.top,o.top,0,i),r:Jn(n.right,o.right,0,e),b:Jn(n.bottom,o.bottom,0,i),l:Jn(n.left,o.left,0,e)}}(t,i/2,s/2),o=function(t,e,i){const{enableBorderRadius:s}=t.getProps([\"enableBorderRadius\"]),n=t.options.borderRadius,o=We(n),a=Math.min(e,i),r=t.borderSkipped,l=s||U(n);return{topLeft:Jn(!l||r.top||r.left,o.topLeft,0,a),topRight:Jn(!l||r.top||r.right,o.topRight,0,a),bottomLeft:Jn(!l||r.bottom||r.left,o.bottomLeft,0,a),bottomRight:Jn(!l||r.bottom||r.right,o.bottomRight,0,a)}}(t,i/2,s/2);return{outer:{x:e.left,y:e.top,w:i,h:s,radius:o},inner:{x:e.left+n.l,y:e.top+n.t,w:i-n.l-n.r,h:s-n.t-n.b,radius:{topLeft:Math.max(0,o.topLeft-Math.max(n.t,n.l)),topRight:Math.max(0,o.topRight-Math.max(n.t,n.r)),bottomLeft:Math.max(0,o.bottomLeft-Math.max(n.b,n.l)),bottomRight:Math.max(0,o.bottomRight-Math.max(n.b,n.r))}}}}function to(t,e,i,s){const n=null===e,o=null===i,a=t&&!(n&&o)&&Zn(t,s);return a&&(n||Yt(e,a.left,a.right))&&(o||Yt(i,a.top,a.bottom))}function eo(t,e){t.rect(e.x,e.y,e.w,e.h)}function io(t,e,i={}){const s=t.x!==i.x?-e:0,n=t.y!==i.y?-e:0,o=(t.x+t.w!==i.x+i.w?e:0)-s,a=(t.y+t.h!==i.y+i.h?e:0)-n;return{x:t.x+s,y:t.y+n,w:t.w+o,h:t.h+a,radius:t.radius}}Gn.id=\"point\",Gn.defaults={borderWidth:1,hitRadius:1,hoverBorderWidth:1,hoverRadius:4,pointStyle:\"circle\",radius:3,rotation:0},Gn.defaultRoutes={backgroundColor:\"backgroundColor\",borderColor:\"borderColor\"};class so extends Ds{constructor(t){super(),this.options=void 0,this.horizontal=void 0,this.base=void 0,this.width=void 0,this.height=void 0,this.inflateAmount=void 0,t&&Object.assign(this,t)}draw(t){const{inflateAmount:e,options:{borderColor:i,backgroundColor:s}}=this,{inner:n,outer:o}=Qn(this),a=(r=o.radius).topLeft||r.topRight||r.bottomLeft||r.bottomRight?oe:eo;var r;t.save(),o.w===n.w&&o.h===n.h||(t.beginPath(),a(t,io(o,e,n)),t.clip(),a(t,io(n,-e,o)),t.fillStyle=i,t.fill(\"evenodd\")),t.beginPath(),a(t,io(n,e)),t.fillStyle=s,t.fill(),t.restore()}inRange(t,e,i){return to(this,t,e,i)}inXRange(t,e){return to(this,t,null,e)}inYRange(t,e){return to(this,null,t,e)}getCenterPoint(t){const{x:e,y:i,base:s,horizontal:n}=this.getProps([\"x\",\"y\",\"base\",\"horizontal\"],t);return{x:n?(e+s)/2:e,y:n?i:(i+s)/2}}getRange(t){return\"x\"===t?this.width/2:this.height/2}}so.id=\"bar\",so.defaults={borderSkipped:\"start\",borderWidth:0,borderRadius:0,inflateAmount:\"auto\",pointStyle:void 0},so.defaultRoutes={backgroundColor:\"backgroundColor\",borderColor:\"borderColor\"};var no=Object.freeze({__proto__:null,ArcElement:Vn,LineElement:qn,PointElement:Gn,BarElement:so});function oo(t){if(t._decimated){const e=t._data;delete t._decimated,delete t._data,Object.defineProperty(t,\"data\",{value:e})}}function ao(t){t.data.datasets.forEach((t=>{oo(t)}))}var ro={id:\"decimation\",defaults:{algorithm:\"min-max\",enabled:!1},beforeElementsUpdate:(t,e,i)=>{if(!i.enabled)return void ao(t);const s=t.width;t.data.datasets.forEach(((e,n)=>{const{_data:o,indexAxis:a}=e,r=t.getDatasetMeta(n),l=o||e.data;if(\"y\"===je([a,t.options.indexAxis]))return;if(\"line\"!==r.type)return;const h=t.scales[r.xAxisID];if(\"linear\"!==h.type&&\"time\"!==h.type)return;if(t.options.parsing)return;let{start:c,count:d}=function(t,e){const i=e.length;let s,n=0;const{iScale:o}=t,{min:a,max:r,minDefined:l,maxDefined:h}=o.getUserBounds();return l&&(n=jt(re(e,o.axis,a).lo,0,i-1)),s=h?jt(re(e,o.axis,r).hi+1,n,i)-n:i-n,{start:n,count:s}}(r,l);if(d<=(i.threshold||4*s))return void oo(e);let u;switch($(o)&&(e._data=l,delete e.data,Object.defineProperty(e,\"data\",{configurable:!0,enumerable:!0,get:function(){return this._decimated},set:function(t){this._data=t}})),i.algorithm){case\"lttb\":u=function(t,e,i,s,n){const o=n.samples||s;if(o>=i)return t.slice(e,e+i);const a=[],r=(i-2)/(o-2);let l=0;const h=e+i-1;let c,d,u,f,g,p=e;for(a[l++]=t[p],c=0;c<o-2;c++){let s,n=0,o=0;const h=Math.floor((c+1)*r)+1+e,m=Math.min(Math.floor((c+2)*r)+1,i)+e,x=m-h;for(s=h;s<m;s++)n+=t[s].x,o+=t[s].y;n/=x,o/=x;const b=Math.floor(c*r)+1+e,_=Math.min(Math.floor((c+1)*r)+1,i)+e,{x:y,y:v}=t[p];for(u=f=-1,s=b;s<_;s++)f=.5*Math.abs((y-n)*(t[s].y-v)-(y-t[s].x)*(o-v)),f>u&&(u=f,d=t[s],g=s);a[l++]=d,p=g}return a[l++]=t[h],a}(l,c,d,s,i);break;case\"min-max\":u=function(t,e,i,s){let n,o,a,r,l,h,c,d,u,f,g=0,p=0;const m=[],x=e+i-1,b=t[e].x,_=t[x].x-b;for(n=e;n<e+i;++n){o=t[n],a=(o.x-b)/_*s,r=o.y;const e=0|a;if(e===l)r<u?(u=r,h=n):r>f&&(f=r,c=n),g=(p*g+o.x)/++p;else{const i=n-1;if(!$(h)&&!$(c)){const e=Math.min(h,c),s=Math.max(h,c);e!==d&&e!==i&&m.push({...t[e],x:g}),s!==d&&s!==i&&m.push({...t[s],x:g})}n>0&&i!==d&&m.push(t[i]),m.push(o),l=e,p=0,u=f=r,h=c=d=n}}return m}(l,c,d,s);break;default:throw new Error(`Unsupported decimation algorithm '${i.algorithm}'`)}e._decimated=u}))},destroy(t){ao(t)}};function lo(t,e,i){const s=function(t){const e=t.options,i=e.fill;let s=K(i&&i.target,i);return void 0===s&&(s=!!e.backgroundColor),!1!==s&&null!==s&&(!0===s?\"origin\":s)}(t);if(U(s))return!isNaN(s.value)&&s;let n=parseFloat(s);return X(n)&&Math.floor(n)===n?(\"-\"!==s[0]&&\"+\"!==s[0]||(n=e+n),!(n===e||n<0||n>=i)&&n):[\"origin\",\"start\",\"end\",\"stack\",\"shape\"].indexOf(s)>=0&&s}class ho{constructor(t){this.x=t.x,this.y=t.y,this.radius=t.radius}pathSegment(t,e,i){const{x:s,y:n,radius:o}=this;return e=e||{start:0,end:yt},t.arc(s,n,o,e.end,e.start,!0),!i.bounds}interpolate(t){const{x:e,y:i,radius:s}=this,n=t.angle;return{x:e+Math.cos(n)*s,y:i+Math.sin(n)*s,angle:n}}}function co(t){return(t.scale||{}).getPointPositionForValue?function(t){const{scale:e,fill:i}=t,s=e.options,n=e.getLabels().length,o=[],a=s.reverse?e.max:e.min,r=s.reverse?e.min:e.max;let l,h,c;if(c=\"start\"===i?a:\"end\"===i?r:U(i)?i.value:e.getBaseValue(),s.grid.circular)return h=e.getPointPositionForValue(0,a),new ho({x:h.x,y:h.y,radius:e.getDistanceFromCenterForValue(c)});for(l=0;l<n;++l)o.push(e.getPointPositionForValue(l,c));return o}(t):function(t){const{scale:e={},fill:i}=t;let s,n=null;return\"start\"===i?n=e.bottom:\"end\"===i?n=e.top:U(i)?n=e.getPixelForValue(i.value):e.getBasePixel&&(n=e.getBasePixel()),X(n)?(s=e.isHorizontal(),{x:s?n:null,y:s?null:n}):null}(t)}function uo(t,e,i){for(;e>t;e--){const t=i[e];if(!isNaN(t.x)&&!isNaN(t.y))break}return e}function fo(t,e,i){const s=[];for(let n=0;n<i.length;n++){const o=i[n],{first:a,last:r,point:l}=go(o,e,\"x\");if(!(!l||a&&r))if(a)s.unshift(l);else if(t.push(l),!r)break}t.push(...s)}function go(t,e,i){const s=t.interpolate(e,i);if(!s)return{};const n=s[i],o=t.segments,a=t.points;let r=!1,l=!1;for(let t=0;t<o.length;t++){const e=o[t],s=a[e.start][i],h=a[e.end][i];if(Yt(n,s,h)){r=n===s,l=n===h;break}}return{first:r,last:l,point:s}}function po(t){const{chart:e,fill:i,line:s}=t;if(X(i))return function(t,e){const i=t.getDatasetMeta(e);return i&&t.isDatasetVisible(e)?i.dataset:null}(e,i);if(\"stack\"===i)return function(t){const{scale:e,index:i,line:s}=t,n=[],o=s.segments,a=s.points,r=function(t,e){const i=[],s=t.getMatchingVisibleMetas(\"line\");for(let t=0;t<s.length;t++){const n=s[t];if(n.index===e)break;n.hidden||i.unshift(n.dataset)}return i}(e,i);r.push(mo({x:null,y:e.bottom},s));for(let t=0;t<o.length;t++){const e=o[t];for(let t=e.start;t<=e.end;t++)fo(n,a[t],r)}return new qn({points:n,options:{}})}(t);if(\"shape\"===i)return!0;const n=co(t);return n instanceof ho?n:mo(n,s)}function mo(t,e){let i=[],s=!1;return Y(t)?(s=!0,i=t):i=function(t,e){const{x:i=null,y:s=null}=t||{},n=e.points,o=[];return e.segments.forEach((({start:t,end:e})=>{e=uo(t,e,n);const a=n[t],r=n[e];null!==s?(o.push({x:a.x,y:s}),o.push({x:r.x,y:s})):null!==i&&(o.push({x:i,y:a.y}),o.push({x:i,y:r.y}))})),o}(t,e),i.length?new qn({points:i,options:{tension:0},_loop:s,_fullLoop:s}):null}function xo(t,e,i){let s=t[e].fill;const n=[e];let o;if(!i)return s;for(;!1!==s&&-1===n.indexOf(s);){if(!X(s))return s;if(o=t[s],!o)return!1;if(o.visible)return s;n.push(s),s=o.fill}return!1}function bo(t,e,i){const{segments:s,points:n}=e;let o=!0,a=!1;t.beginPath();for(const r of s){const{start:s,end:l}=r,h=n[s],c=n[uo(s,l,n)];o?(t.moveTo(h.x,h.y),o=!1):(t.lineTo(h.x,i),t.lineTo(h.x,h.y)),a=!!e.pathSegment(t,r,{move:a}),a?t.closePath():t.lineTo(c.x,i)}t.lineTo(e.first().x,i),t.closePath(),t.clip()}function _o(t,e,i,s){if(s)return;let n=e[t],o=i[t];return\"angle\"===t&&(n=Nt(n),o=Nt(o)),{property:t,start:n,end:o}}function yo(t,e,i,s){return t&&e?s(t[i],e[i]):t?t[i]:e?e[i]:0}function vo(t,e,i){const{top:s,bottom:n}=e.chart.chartArea,{property:o,start:a,end:r}=i||{};\"x\"===o&&(t.beginPath(),t.rect(a,s,r-a,n-s),t.clip())}function wo(t,e,i,s){const n=e.interpolate(i,s);n&&t.lineTo(n.x,n.y)}function Mo(t,e){const{line:i,target:s,property:n,color:o,scale:a}=e,r=function(t,e,i){const s=t.segments,n=t.points,o=e.points,a=[];for(const t of s){let{start:s,end:r}=t;r=uo(s,r,n);const l=_o(i,n[s],n[r],t.loop);if(!e.segments){a.push({source:t,target:l,start:n[s],end:n[r]});continue}const h=Wi(e,l);for(const e of h){const s=_o(i,o[e.start],o[e.end],e.loop),r=Vi(t,n,s);for(const t of r)a.push({source:t,target:e,start:{[i]:yo(l,s,\"start\",Math.max)},end:{[i]:yo(l,s,\"end\",Math.min)}})}}return a}(i,s,n);for(const{source:e,target:l,start:h,end:c}of r){const{style:{backgroundColor:r=o}={}}=e,d=!0!==s;t.save(),t.fillStyle=r,vo(t,a,d&&_o(n,h,c)),t.beginPath();const u=!!i.pathSegment(t,e);let f;if(d){u?t.closePath():wo(t,s,c,n);const e=!!s.pathSegment(t,l,{move:u,reverse:!0});f=u&&e,f||wo(t,s,h,n)}t.closePath(),t.fill(f?\"evenodd\":\"nonzero\"),t.restore()}}function ko(t,e,i){const s=po(e),{line:n,scale:o,axis:a}=e,r=n.options,l=r.fill,h=r.backgroundColor,{above:c=h,below:d=h}=l||{};s&&n.points.length&&(Qt(t,i),function(t,e){const{line:i,target:s,above:n,below:o,area:a,scale:r}=e,l=i._loop?\"angle\":e.axis;t.save(),\"x\"===l&&o!==n&&(bo(t,s,a.top),Mo(t,{line:i,target:s,color:n,scale:r,property:l}),t.restore(),t.save(),bo(t,s,a.bottom)),Mo(t,{line:i,target:s,color:o,scale:r,property:l}),t.restore()}(t,{line:n,target:s,above:c,below:d,area:i,scale:o,axis:a}),te(t))}var So={id:\"filler\",afterDatasetsUpdate(t,e,i){const s=(t.data.datasets||[]).length,n=[];let o,a,r,l;for(a=0;a<s;++a)o=t.getDatasetMeta(a),r=o.dataset,l=null,r&&r.options&&r instanceof qn&&(l={visible:t.isDatasetVisible(a),index:a,fill:lo(r,a,s),chart:t,axis:o.controller.options.indexAxis,scale:o.vScale,line:r}),o.$filler=l,n.push(l);for(a=0;a<s;++a)l=n[a],l&&!1!==l.fill&&(l.fill=xo(n,a,i.propagate))},beforeDraw(t,e,i){const s=\"beforeDraw\"===i.drawTime,n=t.getSortedVisibleDatasetMetas(),o=t.chartArea;for(let e=n.length-1;e>=0;--e){const i=n[e].$filler;i&&(i.line.updateControlPoints(o,i.axis),s&&ko(t.ctx,i,o))}},beforeDatasetsDraw(t,e,i){if(\"beforeDatasetsDraw\"!==i.drawTime)return;const s=t.getSortedVisibleDatasetMetas();for(let e=s.length-1;e>=0;--e){const i=s[e].$filler;i&&ko(t.ctx,i,t.chartArea)}},beforeDatasetDraw(t,e,i){const s=e.meta.$filler;s&&!1!==s.fill&&\"beforeDatasetDraw\"===i.drawTime&&ko(t.ctx,s,t.chartArea)},defaults:{propagate:!0,drawTime:\"beforeDatasetDraw\"}};const Po=(t,e)=>{let{boxHeight:i=e,boxWidth:s=e}=t;return t.usePointStyle&&(i=Math.min(i,e),s=Math.min(s,e)),{boxWidth:s,boxHeight:i,itemHeight:Math.max(e,i)}};class Do extends Ds{constructor(t){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,e,i){this.maxWidth=t,this.maxHeight=e,this._margins=i,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){const t=this.options.labels||{};let e=J(t.generateLabels,[this.chart],this)||[];t.filter&&(e=e.filter((e=>t.filter(e,this.chart.data)))),t.sort&&(e=e.sort(((e,i)=>t.sort(e,i,this.chart.data)))),this.options.reverse&&e.reverse(),this.legendItems=e}fit(){const{options:t,ctx:e}=this;if(!t.display)return void(this.width=this.height=0);const i=t.labels,s=He(i.font),n=s.size,o=this._computeTitleHeight(),{boxWidth:a,itemHeight:r}=Po(i,n);let l,h;e.font=s.string,this.isHorizontal()?(l=this.maxWidth,h=this._fitRows(o,n,a,r)+10):(h=this.maxHeight,l=this._fitCols(o,n,a,r)+10),this.width=Math.min(l,t.maxWidth||this.maxWidth),this.height=Math.min(h,t.maxHeight||this.maxHeight)}_fitRows(t,e,i,s){const{ctx:n,maxWidth:o,options:{labels:{padding:a}}}=this,r=this.legendHitBoxes=[],l=this.lineWidths=[0],h=s+a;let c=t;n.textAlign=\"left\",n.textBaseline=\"middle\";let d=-1,u=-h;return this.legendItems.forEach(((t,f)=>{const g=i+e/2+n.measureText(t.text).width;(0===f||l[l.length-1]+g+2*a>o)&&(c+=h,l[l.length-(f>0?0:1)]=0,u+=h,d++),r[f]={left:0,top:u,row:d,width:g,height:s},l[l.length-1]+=g+a})),c}_fitCols(t,e,i,s){const{ctx:n,maxHeight:o,options:{labels:{padding:a}}}=this,r=this.legendHitBoxes=[],l=this.columnSizes=[],h=o-t;let c=a,d=0,u=0,f=0,g=0;return this.legendItems.forEach(((t,o)=>{const p=i+e/2+n.measureText(t.text).width;o>0&&u+s+2*a>h&&(c+=d+a,l.push({width:d,height:u}),f+=d+a,g++,d=u=0),r[o]={left:f,top:u,col:g,width:p,height:s},d=Math.max(d,p),u+=s+a})),c+=d,l.push({width:d,height:u}),c}adjustHitBoxes(){if(!this.options.display)return;const t=this._computeTitleHeight(),{legendHitBoxes:e,options:{align:i,labels:{padding:s},rtl:o}}=this,a=Ei(o,this.left,this.width);if(this.isHorizontal()){let o=0,r=n(i,this.left+s,this.right-this.lineWidths[o]);for(const l of e)o!==l.row&&(o=l.row,r=n(i,this.left+s,this.right-this.lineWidths[o])),l.top+=this.top+t+s,l.left=a.leftForLtr(a.x(r),l.width),r+=l.width+s}else{let o=0,r=n(i,this.top+t+s,this.bottom-this.columnSizes[o].height);for(const l of e)l.col!==o&&(o=l.col,r=n(i,this.top+t+s,this.bottom-this.columnSizes[o].height)),l.top=r,l.left+=this.left+s,l.left=a.leftForLtr(a.x(l.left),l.width),r+=l.height+s}}isHorizontal(){return\"top\"===this.options.position||\"bottom\"===this.options.position}draw(){if(this.options.display){const t=this.ctx;Qt(t,this),this._draw(),te(t)}}_draw(){const{options:t,columnSizes:e,lineWidths:i,ctx:s}=this,{align:a,labels:r}=t,l=bt.color,h=Ei(t.rtl,this.left,this.width),c=He(r.font),{color:d,padding:u}=r,f=c.size,g=f/2;let p;this.drawTitle(),s.textAlign=h.textAlign(\"left\"),s.textBaseline=\"middle\",s.lineWidth=.5,s.font=c.string;const{boxWidth:m,boxHeight:x,itemHeight:b}=Po(r,f),_=this.isHorizontal(),y=this._computeTitleHeight();p=_?{x:n(a,this.left+u,this.right-i[0]),y:this.top+u+y,line:0}:{x:this.left+u,y:n(a,this.top+y+u,this.bottom-e[0].height),line:0},Ii(this.ctx,t.textDirection);const v=b+u;this.legendItems.forEach(((w,M)=>{s.strokeStyle=w.fontColor||d,s.fillStyle=w.fontColor||d;const k=s.measureText(w.text).width,S=h.textAlign(w.textAlign||(w.textAlign=r.textAlign)),P=m+g+k;let D=p.x,C=p.y;h.setWidth(this.width),_?M>0&&D+P+u>this.right&&(C=p.y+=v,p.line++,D=p.x=n(a,this.left+u,this.right-i[p.line])):M>0&&C+v>this.bottom&&(D=p.x=D+e[p.line].width+u,p.line++,C=p.y=n(a,this.top+y+u,this.bottom-e[p.line].height));!function(t,e,i){if(isNaN(m)||m<=0||isNaN(x)||x<0)return;s.save();const n=K(i.lineWidth,1);if(s.fillStyle=K(i.fillStyle,l),s.lineCap=K(i.lineCap,\"butt\"),s.lineDashOffset=K(i.lineDashOffset,0),s.lineJoin=K(i.lineJoin,\"miter\"),s.lineWidth=n,s.strokeStyle=K(i.strokeStyle,l),s.setLineDash(K(i.lineDash,[])),r.usePointStyle){const o={radius:m*Math.SQRT2/2,pointStyle:i.pointStyle,rotation:i.rotation,borderWidth:n},a=h.xPlus(t,m/2);Zt(s,o,a,e+g)}else{const o=e+Math.max((f-x)/2,0),a=h.leftForLtr(t,m),r=We(i.borderRadius);s.beginPath(),Object.values(r).some((t=>0!==t))?oe(s,{x:a,y:o,w:m,h:x,radius:r}):s.rect(a,o,m,x),s.fill(),0!==n&&s.stroke()}s.restore()}(h.x(D),C,w),D=o(S,D+m+g,_?D+P:this.right,t.rtl),function(t,e,i){se(s,i.text,t,e+b/2,c,{strikethrough:i.hidden,textAlign:h.textAlign(i.textAlign)})}(h.x(D),C,w),_?p.x+=P+u:p.y+=v})),zi(this.ctx,t.textDirection)}drawTitle(){const t=this.options,e=t.title,i=He(e.font),o=Ne(e.padding);if(!e.display)return;const a=Ei(t.rtl,this.left,this.width),r=this.ctx,l=e.position,h=i.size/2,c=o.top+h;let d,u=this.left,f=this.width;if(this.isHorizontal())f=Math.max(...this.lineWidths),d=this.top+c,u=n(t.align,u,this.right-f);else{const e=this.columnSizes.reduce(((t,e)=>Math.max(t,e.height)),0);d=c+n(t.align,this.top,this.bottom-e-t.labels.padding-this._computeTitleHeight())}const g=n(l,u,u+f);r.textAlign=a.textAlign(s(l)),r.textBaseline=\"middle\",r.strokeStyle=e.color,r.fillStyle=e.color,r.font=i.string,se(r,e.text,g,d,i)}_computeTitleHeight(){const t=this.options.title,e=He(t.font),i=Ne(t.padding);return t.display?e.lineHeight+i.height:0}_getLegendItemAt(t,e){let i,s,n;if(Yt(t,this.left,this.right)&&Yt(e,this.top,this.bottom))for(n=this.legendHitBoxes,i=0;i<n.length;++i)if(s=n[i],Yt(t,s.left,s.left+s.width)&&Yt(e,s.top,s.top+s.height))return this.legendItems[i];return null}handleEvent(t){const e=this.options;if(!function(t,e){if(\"mousemove\"===t&&(e.onHover||e.onLeave))return!0;if(e.onClick&&(\"click\"===t||\"mouseup\"===t))return!0;return!1}(t.type,e))return;const i=this._getLegendItemAt(t.x,t.y);if(\"mousemove\"===t.type){const o=this._hoveredItem,a=(n=i,null!==(s=o)&&null!==n&&s.datasetIndex===n.datasetIndex&&s.index===n.index);o&&!a&&J(e.onLeave,[t,o,this],this),this._hoveredItem=i,i&&!a&&J(e.onHover,[t,i,this],this)}else i&&J(e.onClick,[t,i,this],this);var s,n}}var Co={id:\"legend\",_element:Do,start(t,e,i){const s=t.legend=new Do({ctx:t.ctx,options:i,chart:t});ni.configure(t,s,i),ni.addBox(t,s)},stop(t){ni.removeBox(t,t.legend),delete t.legend},beforeUpdate(t,e,i){const s=t.legend;ni.configure(t,s,i),s.options=i},afterUpdate(t){const e=t.legend;e.buildLabels(),e.adjustHitBoxes()},afterEvent(t,e){e.replay||t.legend.handleEvent(e.event)},defaults:{display:!0,position:\"top\",align:\"center\",fullSize:!0,reverse:!1,weight:1e3,onClick(t,e,i){const s=e.datasetIndex,n=i.chart;n.isDatasetVisible(s)?(n.hide(s),e.hidden=!0):(n.show(s),e.hidden=!1)},onHover:null,onLeave:null,labels:{color:t=>t.chart.options.color,boxWidth:40,padding:10,generateLabels(t){const e=t.data.datasets,{labels:{usePointStyle:i,pointStyle:s,textAlign:n,color:o}}=t.legend.options;return t._getSortedDatasetMetas().map((t=>{const a=t.controller.getStyle(i?0:void 0),r=Ne(a.borderWidth);return{text:e[t.index].label,fillStyle:a.backgroundColor,fontColor:o,hidden:!t.visible,lineCap:a.borderCapStyle,lineDash:a.borderDash,lineDashOffset:a.borderDashOffset,lineJoin:a.borderJoinStyle,lineWidth:(r.width+r.height)/4,strokeStyle:a.borderColor,pointStyle:s||a.pointStyle,rotation:a.rotation,textAlign:n||a.textAlign,borderRadius:0,datasetIndex:t.index}}),this)}},title:{color:t=>t.chart.options.color,display:!1,position:\"center\",text:\"\"}},descriptors:{_scriptable:t=>!t.startsWith(\"on\"),labels:{_scriptable:t=>![\"generateLabels\",\"filter\",\"sort\"].includes(t)}}};class Oo extends Ds{constructor(t){super(),this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this._padding=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,e){const i=this.options;if(this.left=0,this.top=0,!i.display)return void(this.width=this.height=this.right=this.bottom=0);this.width=this.right=t,this.height=this.bottom=e;const s=Y(i.text)?i.text.length:1;this._padding=Ne(i.padding);const n=s*He(i.font).lineHeight+this._padding.height;this.isHorizontal()?this.height=n:this.width=n}isHorizontal(){const t=this.options.position;return\"top\"===t||\"bottom\"===t}_drawArgs(t){const{top:e,left:i,bottom:s,right:o,options:a}=this,r=a.align;let l,h,c,d=0;return this.isHorizontal()?(h=n(r,i,o),c=e+t,l=o-i):(\"left\"===a.position?(h=i+t,c=n(r,s,e),d=-.5*_t):(h=o-t,c=n(r,e,s),d=.5*_t),l=s-e),{titleX:h,titleY:c,maxWidth:l,rotation:d}}draw(){const t=this.ctx,e=this.options;if(!e.display)return;const i=He(e.font),n=i.lineHeight/2+this._padding.top,{titleX:o,titleY:a,maxWidth:r,rotation:l}=this._drawArgs(n);se(t,e.text,0,0,i,{color:e.color,maxWidth:r,rotation:l,textAlign:s(e.align),textBaseline:\"middle\",translation:[o,a]})}}var Ao={id:\"title\",_element:Oo,start(t,e,i){!function(t,e){const i=new Oo({ctx:t.ctx,options:e,chart:t});ni.configure(t,i,e),ni.addBox(t,i),t.titleBlock=i}(t,i)},stop(t){const e=t.titleBlock;ni.removeBox(t,e),delete t.titleBlock},beforeUpdate(t,e,i){const s=t.titleBlock;ni.configure(t,s,i),s.options=i},defaults:{align:\"center\",display:!1,font:{weight:\"bold\"},fullSize:!0,padding:10,position:\"top\",text:\"\",weight:2e3},defaultRoutes:{color:\"color\"},descriptors:{_scriptable:!0,_indexable:!1}};const To=new WeakMap;var Lo={id:\"subtitle\",start(t,e,i){const s=new Oo({ctx:t.ctx,options:i,chart:t});ni.configure(t,s,i),ni.addBox(t,s),To.set(t,s)},stop(t){ni.removeBox(t,To.get(t)),To.delete(t)},beforeUpdate(t,e,i){const s=To.get(t);ni.configure(t,s,i),s.options=i},defaults:{align:\"center\",display:!1,font:{weight:\"normal\"},fullSize:!0,padding:0,position:\"top\",text:\"\",weight:1500},defaultRoutes:{color:\"color\"},descriptors:{_scriptable:!0,_indexable:!1}};const Ro={average(t){if(!t.length)return!1;let e,i,s=0,n=0,o=0;for(e=0,i=t.length;e<i;++e){const i=t[e].element;if(i&&i.hasValue()){const t=i.tooltipPosition();s+=t.x,n+=t.y,++o}}return{x:s/o,y:n/o}},nearest(t,e){if(!t.length)return!1;let i,s,n,o=e.x,a=e.y,r=Number.POSITIVE_INFINITY;for(i=0,s=t.length;i<s;++i){const s=t[i].element;if(s&&s.hasValue()){const t=Vt(e,s.getCenterPoint());t<r&&(r=t,n=s)}}if(n){const t=n.tooltipPosition();o=t.x,a=t.y}return{x:o,y:a}}};function Eo(t,e){return e&&(Y(e)?Array.prototype.push.apply(t,e):t.push(e)),t}function Io(t){return(\"string\"==typeof t||t instanceof String)&&t.indexOf(\"\\n\")>-1?t.split(\"\\n\"):t}function zo(t,e){const{element:i,datasetIndex:s,index:n}=e,o=t.getDatasetMeta(s).controller,{label:a,value:r}=o.getLabelAndValue(n);return{chart:t,label:a,parsed:o.getParsed(n),raw:t.data.datasets[s].data[n],formattedValue:r,dataset:o.getDataset(),dataIndex:n,datasetIndex:s,element:i}}function Fo(t,e){const i=t.chart.ctx,{body:s,footer:n,title:o}=t,{boxWidth:a,boxHeight:r}=e,l=He(e.bodyFont),h=He(e.titleFont),c=He(e.footerFont),d=o.length,u=n.length,f=s.length,g=Ne(e.padding);let p=g.height,m=0,x=s.reduce(((t,e)=>t+e.before.length+e.lines.length+e.after.length),0);if(x+=t.beforeBody.length+t.afterBody.length,d&&(p+=d*h.lineHeight+(d-1)*e.titleSpacing+e.titleMarginBottom),x){p+=f*(e.displayColors?Math.max(r,l.lineHeight):l.lineHeight)+(x-f)*l.lineHeight+(x-1)*e.bodySpacing}u&&(p+=e.footerMarginTop+u*c.lineHeight+(u-1)*e.footerSpacing);let b=0;const _=function(t){m=Math.max(m,i.measureText(t).width+b)};return i.save(),i.font=h.string,Q(t.title,_),i.font=l.string,Q(t.beforeBody.concat(t.afterBody),_),b=e.displayColors?a+2+e.boxPadding:0,Q(s,(t=>{Q(t.before,_),Q(t.lines,_),Q(t.after,_)})),b=0,i.font=c.string,Q(t.footer,_),i.restore(),m+=g.width,{width:m,height:p}}function Bo(t,e,i,s){const{x:n,width:o}=i,{width:a,chartArea:{left:r,right:l}}=t;let h=\"center\";return\"center\"===s?h=n<=(r+l)/2?\"left\":\"right\":n<=o/2?h=\"left\":n>=a-o/2&&(h=\"right\"),function(t,e,i,s){const{x:n,width:o}=s,a=i.caretSize+i.caretPadding;return\"left\"===t&&n+o+a>e.width||\"right\"===t&&n-o-a<0||void 0}(h,t,e,i)&&(h=\"center\"),h}function Vo(t,e,i){const s=i.yAlign||e.yAlign||function(t,e){const{y:i,height:s}=e;return i<s/2?\"top\":i>t.height-s/2?\"bottom\":\"center\"}(t,i);return{xAlign:i.xAlign||e.xAlign||Bo(t,e,i,s),yAlign:s}}function Wo(t,e,i,s){const{caretSize:n,caretPadding:o,cornerRadius:a}=t,{xAlign:r,yAlign:l}=i,h=n+o,{topLeft:c,topRight:d,bottomLeft:u,bottomRight:f}=We(a);let g=function(t,e){let{x:i,width:s}=t;return\"right\"===e?i-=s:\"center\"===e&&(i-=s/2),i}(e,r);const p=function(t,e,i){let{y:s,height:n}=t;return\"top\"===e?s+=i:s-=\"bottom\"===e?n+i:n/2,s}(e,l,h);return\"center\"===l?\"left\"===r?g+=h:\"right\"===r&&(g-=h):\"left\"===r?g-=Math.max(c,u)+n:\"right\"===r&&(g+=Math.max(d,f)+n),{x:jt(g,0,s.width-e.width),y:jt(p,0,s.height-e.height)}}function No(t,e,i){const s=Ne(i.padding);return\"center\"===e?t.x+t.width/2:\"right\"===e?t.x+t.width-s.right:t.x+s.left}function Ho(t){return Eo([],Io(t))}function jo(t,e){const i=e&&e.dataset&&e.dataset.tooltip&&e.dataset.tooltip.callbacks;return i?t.override(i):t}class $o extends Ds{constructor(t){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=t.chart||t._chart,this._chart=this.chart,this.options=t.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(t){this.options=t,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){const t=this._cachedAnimations;if(t)return t;const e=this.chart,i=this.options.setContext(this.getContext()),s=i.enabled&&e.options.animation&&i.animations,n=new gs(this.chart,s);return s._cacheable&&(this._cachedAnimations=Object.freeze(n)),n}getContext(){return this.$context||(this.$context=(t=this.chart.getContext(),e=this,i=this._tooltipItems,Ye(t,{tooltip:e,tooltipItems:i,type:\"tooltip\"})));var t,e,i}getTitle(t,e){const{callbacks:i}=e,s=i.beforeTitle.apply(this,[t]),n=i.title.apply(this,[t]),o=i.afterTitle.apply(this,[t]);let a=[];return a=Eo(a,Io(s)),a=Eo(a,Io(n)),a=Eo(a,Io(o)),a}getBeforeBody(t,e){return Ho(e.callbacks.beforeBody.apply(this,[t]))}getBody(t,e){const{callbacks:i}=e,s=[];return Q(t,(t=>{const e={before:[],lines:[],after:[]},n=jo(i,t);Eo(e.before,Io(n.beforeLabel.call(this,t))),Eo(e.lines,n.label.call(this,t)),Eo(e.after,Io(n.afterLabel.call(this,t))),s.push(e)})),s}getAfterBody(t,e){return Ho(e.callbacks.afterBody.apply(this,[t]))}getFooter(t,e){const{callbacks:i}=e,s=i.beforeFooter.apply(this,[t]),n=i.footer.apply(this,[t]),o=i.afterFooter.apply(this,[t]);let a=[];return a=Eo(a,Io(s)),a=Eo(a,Io(n)),a=Eo(a,Io(o)),a}_createItems(t){const e=this._active,i=this.chart.data,s=[],n=[],o=[];let a,r,l=[];for(a=0,r=e.length;a<r;++a)l.push(zo(this.chart,e[a]));return t.filter&&(l=l.filter(((e,s,n)=>t.filter(e,s,n,i)))),t.itemSort&&(l=l.sort(((e,s)=>t.itemSort(e,s,i)))),Q(l,(e=>{const i=jo(t.callbacks,e);s.push(i.labelColor.call(this,e)),n.push(i.labelPointStyle.call(this,e)),o.push(i.labelTextColor.call(this,e))})),this.labelColors=s,this.labelPointStyles=n,this.labelTextColors=o,this.dataPoints=l,l}update(t,e){const i=this.options.setContext(this.getContext()),s=this._active;let n,o=[];if(s.length){const t=Ro[i.position].call(this,s,this._eventPosition);o=this._createItems(i),this.title=this.getTitle(o,i),this.beforeBody=this.getBeforeBody(o,i),this.body=this.getBody(o,i),this.afterBody=this.getAfterBody(o,i),this.footer=this.getFooter(o,i);const e=this._size=Fo(this,i),a=Object.assign({},t,e),r=Vo(this.chart,i,a),l=Wo(i,a,r,this.chart);this.xAlign=r.xAlign,this.yAlign=r.yAlign,n={opacity:1,x:l.x,y:l.y,width:e.width,height:e.height,caretX:t.x,caretY:t.y}}else 0!==this.opacity&&(n={opacity:0});this._tooltipItems=o,this.$context=void 0,n&&this._resolveAnimations().update(this,n),t&&i.external&&i.external.call(this,{chart:this.chart,tooltip:this,replay:e})}drawCaret(t,e,i,s){const n=this.getCaretPosition(t,i,s);e.lineTo(n.x1,n.y1),e.lineTo(n.x2,n.y2),e.lineTo(n.x3,n.y3)}getCaretPosition(t,e,i){const{xAlign:s,yAlign:n}=this,{caretSize:o,cornerRadius:a}=i,{topLeft:r,topRight:l,bottomLeft:h,bottomRight:c}=We(a),{x:d,y:u}=t,{width:f,height:g}=e;let p,m,x,b,_,y;return\"center\"===n?(_=u+g/2,\"left\"===s?(p=d,m=p-o,b=_+o,y=_-o):(p=d+f,m=p+o,b=_-o,y=_+o),x=p):(m=\"left\"===s?d+Math.max(r,h)+o:\"right\"===s?d+f-Math.max(l,c)-o:this.caretX,\"top\"===n?(b=u,_=b-o,p=m-o,x=m+o):(b=u+g,_=b+o,p=m+o,x=m-o),y=b),{x1:p,x2:m,x3:x,y1:b,y2:_,y3:y}}drawTitle(t,e,i){const s=this.title,n=s.length;let o,a,r;if(n){const l=Ei(i.rtl,this.x,this.width);for(t.x=No(this,i.titleAlign,i),e.textAlign=l.textAlign(i.titleAlign),e.textBaseline=\"middle\",o=He(i.titleFont),a=i.titleSpacing,e.fillStyle=i.titleColor,e.font=o.string,r=0;r<n;++r)e.fillText(s[r],l.x(t.x),t.y+o.lineHeight/2),t.y+=o.lineHeight+a,r+1===n&&(t.y+=i.titleMarginBottom-a)}}_drawColorBox(t,e,i,s,n){const o=this.labelColors[i],a=this.labelPointStyles[i],{boxHeight:r,boxWidth:l,boxPadding:h}=n,c=He(n.bodyFont),d=No(this,\"left\",n),u=s.x(d),f=r<c.lineHeight?(c.lineHeight-r)/2:0,g=e.y+f;if(n.usePointStyle){const e={radius:Math.min(l,r)/2,pointStyle:a.pointStyle,rotation:a.rotation,borderWidth:1},i=s.leftForLtr(u,l)+l/2,h=g+r/2;t.strokeStyle=n.multiKeyBackground,t.fillStyle=n.multiKeyBackground,Zt(t,e,i,h),t.strokeStyle=o.borderColor,t.fillStyle=o.backgroundColor,Zt(t,e,i,h)}else{t.lineWidth=o.borderWidth||1,t.strokeStyle=o.borderColor,t.setLineDash(o.borderDash||[]),t.lineDashOffset=o.borderDashOffset||0;const e=s.leftForLtr(u,l-h),i=s.leftForLtr(s.xPlus(u,1),l-h-2),a=We(o.borderRadius);Object.values(a).some((t=>0!==t))?(t.beginPath(),t.fillStyle=n.multiKeyBackground,oe(t,{x:e,y:g,w:l,h:r,radius:a}),t.fill(),t.stroke(),t.fillStyle=o.backgroundColor,t.beginPath(),oe(t,{x:i,y:g+1,w:l-2,h:r-2,radius:a}),t.fill()):(t.fillStyle=n.multiKeyBackground,t.fillRect(e,g,l,r),t.strokeRect(e,g,l,r),t.fillStyle=o.backgroundColor,t.fillRect(i,g+1,l-2,r-2))}t.fillStyle=this.labelTextColors[i]}drawBody(t,e,i){const{body:s}=this,{bodySpacing:n,bodyAlign:o,displayColors:a,boxHeight:r,boxWidth:l,boxPadding:h}=i,c=He(i.bodyFont);let d=c.lineHeight,u=0;const f=Ei(i.rtl,this.x,this.width),g=function(i){e.fillText(i,f.x(t.x+u),t.y+d/2),t.y+=d+n},p=f.textAlign(o);let m,x,b,_,y,v,w;for(e.textAlign=o,e.textBaseline=\"middle\",e.font=c.string,t.x=No(this,p,i),e.fillStyle=i.bodyColor,Q(this.beforeBody,g),u=a&&\"right\"!==p?\"center\"===o?l/2+h:l+2+h:0,_=0,v=s.length;_<v;++_){for(m=s[_],x=this.labelTextColors[_],e.fillStyle=x,Q(m.before,g),b=m.lines,a&&b.length&&(this._drawColorBox(e,t,_,f,i),d=Math.max(c.lineHeight,r)),y=0,w=b.length;y<w;++y)g(b[y]),d=c.lineHeight;Q(m.after,g)}u=0,d=c.lineHeight,Q(this.afterBody,g),t.y-=n}drawFooter(t,e,i){const s=this.footer,n=s.length;let o,a;if(n){const r=Ei(i.rtl,this.x,this.width);for(t.x=No(this,i.footerAlign,i),t.y+=i.footerMarginTop,e.textAlign=r.textAlign(i.footerAlign),e.textBaseline=\"middle\",o=He(i.footerFont),e.fillStyle=i.footerColor,e.font=o.string,a=0;a<n;++a)e.fillText(s[a],r.x(t.x),t.y+o.lineHeight/2),t.y+=o.lineHeight+i.footerSpacing}}drawBackground(t,e,i,s){const{xAlign:n,yAlign:o}=this,{x:a,y:r}=t,{width:l,height:h}=i,{topLeft:c,topRight:d,bottomLeft:u,bottomRight:f}=We(s.cornerRadius);e.fillStyle=s.backgroundColor,e.strokeStyle=s.borderColor,e.lineWidth=s.borderWidth,e.beginPath(),e.moveTo(a+c,r),\"top\"===o&&this.drawCaret(t,e,i,s),e.lineTo(a+l-d,r),e.quadraticCurveTo(a+l,r,a+l,r+d),\"center\"===o&&\"right\"===n&&this.drawCaret(t,e,i,s),e.lineTo(a+l,r+h-f),e.quadraticCurveTo(a+l,r+h,a+l-f,r+h),\"bottom\"===o&&this.drawCaret(t,e,i,s),e.lineTo(a+u,r+h),e.quadraticCurveTo(a,r+h,a,r+h-u),\"center\"===o&&\"left\"===n&&this.drawCaret(t,e,i,s),e.lineTo(a,r+c),e.quadraticCurveTo(a,r,a+c,r),e.closePath(),e.fill(),s.borderWidth>0&&e.stroke()}_updateAnimationTarget(t){const e=this.chart,i=this.$animations,s=i&&i.x,n=i&&i.y;if(s||n){const i=Ro[t.position].call(this,this._active,this._eventPosition);if(!i)return;const o=this._size=Fo(this,t),a=Object.assign({},i,this._size),r=Vo(e,t,a),l=Wo(t,a,r,e);s._to===l.x&&n._to===l.y||(this.xAlign=r.xAlign,this.yAlign=r.yAlign,this.width=o.width,this.height=o.height,this.caretX=i.x,this.caretY=i.y,this._resolveAnimations().update(this,l))}}draw(t){const e=this.options.setContext(this.getContext());let i=this.opacity;if(!i)return;this._updateAnimationTarget(e);const s={width:this.width,height:this.height},n={x:this.x,y:this.y};i=Math.abs(i)<.001?0:i;const o=Ne(e.padding),a=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;e.enabled&&a&&(t.save(),t.globalAlpha=i,this.drawBackground(n,t,s,e),Ii(t,e.textDirection),n.y+=o.top,this.drawTitle(n,t,e),this.drawBody(n,t,e),this.drawFooter(n,t,e),zi(t,e.textDirection),t.restore())}getActiveElements(){return this._active||[]}setActiveElements(t,e){const i=this._active,s=t.map((({datasetIndex:t,index:e})=>{const i=this.chart.getDatasetMeta(t);if(!i)throw new Error(\"Cannot find a dataset at index \"+t);return{datasetIndex:t,element:i.data[e],index:e}})),n=!tt(i,s),o=this._positionChanged(s,e);(n||o)&&(this._active=s,this._eventPosition=e,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(t,e,i=!0){if(e&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const s=this.options,n=this._active||[],o=this._getActiveElements(t,n,e,i),a=this._positionChanged(o,t),r=e||!tt(o,n)||a;return r&&(this._active=o,(s.enabled||s.external)&&(this._eventPosition={x:t.x,y:t.y},this.update(!0,e))),r}_getActiveElements(t,e,i,s){const n=this.options;if(\"mouseout\"===t.type)return[];if(!s)return e;const o=this.chart.getElementsAtEventForMode(t,n.mode,n,i);return n.reverse&&o.reverse(),o}_positionChanged(t,e){const{caretX:i,caretY:s,options:n}=this,o=Ro[n.position].call(this,t,e);return!1!==o&&(i!==o.x||s!==o.y)}}$o.positioners=Ro;var Yo={id:\"tooltip\",_element:$o,positioners:Ro,afterInit(t,e,i){i&&(t.tooltip=new $o({chart:t,options:i}))},beforeUpdate(t,e,i){t.tooltip&&t.tooltip.initialize(i)},reset(t,e,i){t.tooltip&&t.tooltip.initialize(i)},afterDraw(t){const e=t.tooltip,i={tooltip:e};!1!==t.notifyPlugins(\"beforeTooltipDraw\",i)&&(e&&e.draw(t.ctx),t.notifyPlugins(\"afterTooltipDraw\",i))},afterEvent(t,e){if(t.tooltip){const i=e.replay;t.tooltip.handleEvent(e.event,i,e.inChartArea)&&(e.changed=!0)}},defaults:{enabled:!0,external:null,position:\"average\",backgroundColor:\"rgba(0,0,0,0.8)\",titleColor:\"#fff\",titleFont:{weight:\"bold\"},titleSpacing:2,titleMarginBottom:6,titleAlign:\"left\",bodyColor:\"#fff\",bodySpacing:2,bodyFont:{},bodyAlign:\"left\",footerColor:\"#fff\",footerSpacing:2,footerMarginTop:6,footerFont:{weight:\"bold\"},footerAlign:\"left\",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(t,e)=>e.bodyFont.size,boxWidth:(t,e)=>e.bodyFont.size,multiKeyBackground:\"#fff\",displayColors:!0,boxPadding:0,borderColor:\"rgba(0,0,0,0)\",borderWidth:0,animation:{duration:400,easing:\"easeOutQuart\"},animations:{numbers:{type:\"number\",properties:[\"x\",\"y\",\"width\",\"height\",\"caretX\",\"caretY\"]},opacity:{easing:\"linear\",duration:200}},callbacks:{beforeTitle:H,title(t){if(t.length>0){const e=t[0],i=e.chart.data.labels,s=i?i.length:0;if(this&&this.options&&\"dataset\"===this.options.mode)return e.dataset.label||\"\";if(e.label)return e.label;if(s>0&&e.dataIndex<s)return i[e.dataIndex]}return\"\"},afterTitle:H,beforeBody:H,beforeLabel:H,label(t){if(this&&this.options&&\"dataset\"===this.options.mode)return t.label+\": \"+t.formattedValue||t.formattedValue;let e=t.dataset.label||\"\";e&&(e+=\": \");const i=t.formattedValue;return $(i)||(e+=i),e},labelColor(t){const e=t.chart.getDatasetMeta(t.datasetIndex).controller.getStyle(t.dataIndex);return{borderColor:e.borderColor,backgroundColor:e.backgroundColor,borderWidth:e.borderWidth,borderDash:e.borderDash,borderDashOffset:e.borderDashOffset,borderRadius:0}},labelTextColor(){return this.options.bodyColor},labelPointStyle(t){const e=t.chart.getDatasetMeta(t.datasetIndex).controller.getStyle(t.dataIndex);return{pointStyle:e.pointStyle,rotation:e.rotation}},afterLabel:H,afterBody:H,beforeFooter:H,footer:H,afterFooter:H}},defaultRoutes:{bodyFont:\"font\",footerFont:\"font\",titleFont:\"font\"},descriptors:{_scriptable:t=>\"filter\"!==t&&\"itemSort\"!==t&&\"external\"!==t,_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:\"animation\"}},additionalOptionScopes:[\"interaction\"]},Uo=Object.freeze({__proto__:null,Decimation:ro,Filler:So,Legend:Co,SubTitle:Lo,Title:Ao,Tooltip:Yo});function Xo(t,e,i,s){const n=t.indexOf(e);if(-1===n)return((t,e,i,s)=>(\"string\"==typeof e?(i=t.push(e)-1,s.unshift({index:i,label:e})):isNaN(e)&&(i=null),i))(t,e,i,s);return n!==t.lastIndexOf(e)?i:n}class qo extends Bs{constructor(t){super(t),this._startValue=void 0,this._valueRange=0,this._addedLabels=[]}init(t){const e=this._addedLabels;if(e.length){const t=this.getLabels();for(const{index:i,label:s}of e)t[i]===s&&t.splice(i,1);this._addedLabels=[]}super.init(t)}parse(t,e){if($(t))return null;const i=this.getLabels();return((t,e)=>null===t?null:jt(Math.round(t),0,e))(e=isFinite(e)&&i[e]===t?e:Xo(i,t,K(e,t),this._addedLabels),i.length-1)}determineDataLimits(){const{minDefined:t,maxDefined:e}=this.getUserBounds();let{min:i,max:s}=this.getMinMax(!0);\"ticks\"===this.options.bounds&&(t||(i=0),e||(s=this.getLabels().length-1)),this.min=i,this.max=s}buildTicks(){const t=this.min,e=this.max,i=this.options.offset,s=[];let n=this.getLabels();n=0===t&&e===n.length-1?n:n.slice(t,e+1),this._valueRange=Math.max(n.length-(i?0:1),1),this._startValue=this.min-(i?.5:0);for(let i=t;i<=e;i++)s.push({value:i});return s}getLabelForValue(t){const e=this.getLabels();return t>=0&&t<e.length?e[t]:t}configure(){super.configure(),this.isHorizontal()||(this._reversePixels=!this._reversePixels)}getPixelForValue(t){return\"number\"!=typeof t&&(t=this.parse(t)),null===t?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getPixelForTick(t){const e=this.ticks;return t<0||t>e.length-1?null:this.getPixelForValue(e[t].value)}getValueForPixel(t){return Math.round(this._startValue+this.getDecimalForPixel(t)*this._valueRange)}getBasePixel(){return this.bottom}}function Ko(t,e,{horizontal:i,minRotation:s}){const n=It(s),o=(i?Math.sin(n):Math.cos(n))||.001,a=.75*e*(\"\"+t).length;return Math.min(e/o,a)}qo.id=\"category\",qo.defaults={ticks:{callback:qo.prototype.getLabelForValue}};class Go extends Bs{constructor(t){super(t),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(t,e){return $(t)||(\"number\"==typeof t||t instanceof Number)&&!isFinite(+t)?null:+t}handleTickRangeOptions(){const{beginAtZero:t}=this.options,{minDefined:e,maxDefined:i}=this.getUserBounds();let{min:s,max:n}=this;const o=t=>s=e?s:t,a=t=>n=i?n:t;if(t){const t=Ct(s),e=Ct(n);t<0&&e<0?a(0):t>0&&e>0&&o(0)}if(s===n){let e=1;(n>=Number.MAX_SAFE_INTEGER||s<=Number.MIN_SAFE_INTEGER)&&(e=Math.abs(.05*n)),a(n+e),t||o(s-e)}this.min=s,this.max=n}getTickLimit(){const t=this.options.ticks;let e,{maxTicksLimit:i,stepSize:s}=t;return s?(e=Math.ceil(this.max/s)-Math.floor(this.min/s)+1,e>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${s} would result generating up to ${e} ticks. Limiting to 1000.`),e=1e3)):(e=this.computeTickLimit(),i=i||11),i&&(e=Math.min(i,e)),e}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const t=this.options,e=t.ticks;let i=this.getTickLimit();i=Math.max(2,i);const s=function(t,e){const i=[],{bounds:s,step:n,min:o,max:a,precision:r,count:l,maxTicks:h,maxDigits:c,includeBounds:d}=t,u=n||1,f=h-1,{min:g,max:p}=e,m=!$(o),x=!$(a),b=!$(l),_=(p-g)/(c+1);let y,v,w,M,k=Ot((p-g)/f/u)*u;if(k<1e-14&&!m&&!x)return[{value:g},{value:p}];M=Math.ceil(p/k)-Math.floor(g/k),M>f&&(k=Ot(M*k/f/u)*u),$(r)||(y=Math.pow(10,r),k=Math.ceil(k*y)/y),\"ticks\"===s?(v=Math.floor(g/k)*k,w=Math.ceil(p/k)*k):(v=g,w=p),m&&x&&n&&Rt((a-o)/n,k/1e3)?(M=Math.round(Math.min((a-o)/k,h)),k=(a-o)/M,v=o,w=a):b?(v=m?o:v,w=x?a:w,M=l-1,k=(w-v)/M):(M=(w-v)/k,M=Lt(M,Math.round(M),k/1e3)?Math.round(M):Math.ceil(M));const S=Math.max(Ft(k),Ft(v));y=Math.pow(10,$(r)?S:r),v=Math.round(v*y)/y,w=Math.round(w*y)/y;let P=0;for(m&&(d&&v!==o?(i.push({value:o}),v<o&&P++,Lt(Math.round((v+P*k)*y)/y,o,Ko(o,_,t))&&P++):v<o&&P++);P<M;++P)i.push({value:Math.round((v+P*k)*y)/y});return x&&d&&w!==a?i.length&&Lt(i[i.length-1].value,a,Ko(a,_,t))?i[i.length-1].value=a:i.push({value:a}):x&&w!==a||i.push({value:w}),i}({maxTicks:i,bounds:t.bounds,min:t.min,max:t.max,precision:e.precision,step:e.stepSize,count:e.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:e.minRotation||0,includeBounds:!1!==e.includeBounds},this._range||this);return\"ticks\"===t.bounds&&Et(s,this,\"value\"),t.reverse?(s.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),s}configure(){const t=this.ticks;let e=this.min,i=this.max;if(super.configure(),this.options.offset&&t.length){const s=(i-e)/Math.max(t.length-1,1)/2;e-=s,i+=s}this._startValue=e,this._endValue=i,this._valueRange=i-e}getLabelForValue(t){return Ri(t,this.chart.options.locale,this.options.ticks.format)}}class Zo extends Go{determineDataLimits(){const{min:t,max:e}=this.getMinMax(!0);this.min=X(t)?t:0,this.max=X(e)?e:1,this.handleTickRangeOptions()}computeTickLimit(){const t=this.isHorizontal(),e=t?this.width:this.height,i=It(this.options.ticks.minRotation),s=(t?Math.sin(i):Math.cos(i))||.001,n=this._resolveTickFontOptions(0);return Math.ceil(e/Math.min(40,n.lineHeight/s))}getPixelForValue(t){return null===t?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getValueForPixel(t){return this._startValue+this.getDecimalForPixel(t)*this._valueRange}}function Jo(t){return 1===t/Math.pow(10,Math.floor(Dt(t)))}Zo.id=\"linear\",Zo.defaults={ticks:{callback:Os.formatters.numeric}};class Qo extends Bs{constructor(t){super(t),this.start=void 0,this.end=void 0,this._startValue=void 0,this._valueRange=0}parse(t,e){const i=Go.prototype.parse.apply(this,[t,e]);if(0!==i)return X(i)&&i>0?i:null;this._zero=!0}determineDataLimits(){const{min:t,max:e}=this.getMinMax(!0);this.min=X(t)?Math.max(0,t):null,this.max=X(e)?Math.max(0,e):null,this.options.beginAtZero&&(this._zero=!0),this.handleTickRangeOptions()}handleTickRangeOptions(){const{minDefined:t,maxDefined:e}=this.getUserBounds();let i=this.min,s=this.max;const n=e=>i=t?i:e,o=t=>s=e?s:t,a=(t,e)=>Math.pow(10,Math.floor(Dt(t))+e);i===s&&(i<=0?(n(1),o(10)):(n(a(i,-1)),o(a(s,1)))),i<=0&&n(a(s,-1)),s<=0&&o(a(i,1)),this._zero&&this.min!==this._suggestedMin&&i===a(this.min,0)&&n(a(i,-1)),this.min=i,this.max=s}buildTicks(){const t=this.options,e=function(t,e){const i=Math.floor(Dt(e.max)),s=Math.ceil(e.max/Math.pow(10,i)),n=[];let o=q(t.min,Math.pow(10,Math.floor(Dt(e.min)))),a=Math.floor(Dt(o)),r=Math.floor(o/Math.pow(10,a)),l=a<0?Math.pow(10,Math.abs(a)):1;do{n.push({value:o,major:Jo(o)}),++r,10===r&&(r=1,++a,l=a>=0?1:l),o=Math.round(r*Math.pow(10,a)*l)/l}while(a<i||a===i&&r<s);const h=q(t.max,o);return n.push({value:h,major:Jo(o)}),n}({min:this._userMin,max:this._userMax},this);return\"ticks\"===t.bounds&&Et(e,this,\"value\"),t.reverse?(e.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),e}getLabelForValue(t){return void 0===t?\"0\":Ri(t,this.chart.options.locale,this.options.ticks.format)}configure(){const t=this.min;super.configure(),this._startValue=Dt(t),this._valueRange=Dt(this.max)-Dt(t)}getPixelForValue(t){return void 0!==t&&0!==t||(t=this.min),null===t||isNaN(t)?NaN:this.getPixelForDecimal(t===this.min?0:(Dt(t)-this._startValue)/this._valueRange)}getValueForPixel(t){const e=this.getDecimalForPixel(t);return Math.pow(10,this._startValue+e*this._valueRange)}}function ta(t){const e=t.ticks;if(e.display&&t.display){const t=Ne(e.backdropPadding);return K(e.font&&e.font.size,bt.font.size)+t.height}return 0}function ea(t,e,i,s,n){return t===s||t===n?{start:e-i/2,end:e+i/2}:t<s||t>n?{start:e-i,end:e}:{start:e,end:e+i}}function ia(t){const e={l:t.left+t._padding.left,r:t.right-t._padding.right,t:t.top+t._padding.top,b:t.bottom-t._padding.bottom},i=Object.assign({},e),s=[],n=[],o=t._pointLabels.length,a=t.options.pointLabels,r=a.centerPointLabels?_t/o:0;for(let d=0;d<o;d++){const o=a.setContext(t.getPointLabelContext(d));n[d]=o.padding;const u=t.getPointPosition(d,t.drawingArea+n[d],r),f=He(o.font),g=(l=t.ctx,h=f,c=Y(c=t._pointLabels[d])?c:[c],{w:qt(l,h.string,c),h:c.length*h.lineHeight});s[d]=g;const p=Nt(t.getIndexAngle(d)+r),m=Math.round(zt(p));sa(i,e,p,ea(m,u.x,g.w,0,180),ea(m,u.y,g.h,90,270))}var l,h,c;t.setCenterPoint(e.l-i.l,i.r-e.r,e.t-i.t,i.b-e.b),t._pointLabelItems=function(t,e,i){const s=[],n=t._pointLabels.length,o=t.options,a=ta(o)/2,r=t.drawingArea,l=o.pointLabels.centerPointLabels?_t/n:0;for(let o=0;o<n;o++){const n=t.getPointPosition(o,r+a+i[o],l),h=Math.round(zt(Nt(n.angle+kt))),c=e[o],d=aa(n.y,c.h,h),u=na(h),f=oa(n.x,c.w,u);s.push({x:n.x,y:d,textAlign:u,left:f,top:d,right:f+c.w,bottom:d+c.h})}return s}(t,s,n)}function sa(t,e,i,s,n){const o=Math.abs(Math.sin(i)),a=Math.abs(Math.cos(i));let r=0,l=0;s.start<e.l?(r=(e.l-s.start)/o,t.l=Math.min(t.l,e.l-r)):s.end>e.r&&(r=(s.end-e.r)/o,t.r=Math.max(t.r,e.r+r)),n.start<e.t?(l=(e.t-n.start)/a,t.t=Math.min(t.t,e.t-l)):n.end>e.b&&(l=(n.end-e.b)/a,t.b=Math.max(t.b,e.b+l))}function na(t){return 0===t||180===t?\"center\":t<180?\"left\":\"right\"}function oa(t,e,i){return\"right\"===i?t-=e:\"center\"===i&&(t-=e/2),t}function aa(t,e,i){return 90===i||270===i?t-=e/2:(i>270||i<90)&&(t-=e),t}function ra(t,e,i,s){const{ctx:n}=t;if(i)n.arc(t.xCenter,t.yCenter,e,0,yt);else{let i=t.getPointPosition(0,e);n.moveTo(i.x,i.y);for(let o=1;o<s;o++)i=t.getPointPosition(o,e),n.lineTo(i.x,i.y)}}Qo.id=\"logarithmic\",Qo.defaults={ticks:{callback:Os.formatters.logarithmic,major:{enabled:!0}}};class la extends Go{constructor(t){super(t),this.xCenter=void 0,this.yCenter=void 0,this.drawingArea=void 0,this._pointLabels=[],this._pointLabelItems=[]}setDimensions(){const t=this._padding=Ne(ta(this.options)/2),e=this.width=this.maxWidth-t.width,i=this.height=this.maxHeight-t.height;this.xCenter=Math.floor(this.left+e/2+t.left),this.yCenter=Math.floor(this.top+i/2+t.top),this.drawingArea=Math.floor(Math.min(e,i)/2)}determineDataLimits(){const{min:t,max:e}=this.getMinMax(!1);this.min=X(t)&&!isNaN(t)?t:0,this.max=X(e)&&!isNaN(e)?e:0,this.handleTickRangeOptions()}computeTickLimit(){return Math.ceil(this.drawingArea/ta(this.options))}generateTickLabels(t){Go.prototype.generateTickLabels.call(this,t),this._pointLabels=this.getLabels().map(((t,e)=>{const i=J(this.options.pointLabels.callback,[t,e],this);return i||0===i?i:\"\"})).filter(((t,e)=>this.chart.getDataVisibility(e)))}fit(){const t=this.options;t.display&&t.pointLabels.display?ia(this):this.setCenterPoint(0,0,0,0)}setCenterPoint(t,e,i,s){this.xCenter+=Math.floor((t-e)/2),this.yCenter+=Math.floor((i-s)/2),this.drawingArea-=Math.min(this.drawingArea/2,Math.max(t,e,i,s))}getIndexAngle(t){return Nt(t*(yt/(this._pointLabels.length||1))+It(this.options.startAngle||0))}getDistanceFromCenterForValue(t){if($(t))return NaN;const e=this.drawingArea/(this.max-this.min);return this.options.reverse?(this.max-t)*e:(t-this.min)*e}getValueForDistanceFromCenter(t){if($(t))return NaN;const e=t/(this.drawingArea/(this.max-this.min));return this.options.reverse?this.max-e:this.min+e}getPointLabelContext(t){const e=this._pointLabels||[];if(t>=0&&t<e.length){const i=e[t];return function(t,e,i){return Ye(t,{label:i,index:e,type:\"pointLabel\"})}(this.getContext(),t,i)}}getPointPosition(t,e,i=0){const s=this.getIndexAngle(t)-kt+i;return{x:Math.cos(s)*e+this.xCenter,y:Math.sin(s)*e+this.yCenter,angle:s}}getPointPositionForValue(t,e){return this.getPointPosition(t,this.getDistanceFromCenterForValue(e))}getBasePosition(t){return this.getPointPositionForValue(t||0,this.getBaseValue())}getPointLabelPosition(t){const{left:e,top:i,right:s,bottom:n}=this._pointLabelItems[t];return{left:e,top:i,right:s,bottom:n}}drawBackground(){const{backgroundColor:t,grid:{circular:e}}=this.options;if(t){const i=this.ctx;i.save(),i.beginPath(),ra(this,this.getDistanceFromCenterForValue(this._endValue),e,this._pointLabels.length),i.closePath(),i.fillStyle=t,i.fill(),i.restore()}}drawGrid(){const t=this.ctx,e=this.options,{angleLines:i,grid:s}=e,n=this._pointLabels.length;let o,a,r;if(e.pointLabels.display&&function(t,e){const{ctx:i,options:{pointLabels:s}}=t;for(let n=e-1;n>=0;n--){const e=s.setContext(t.getPointLabelContext(n)),o=He(e.font),{x:a,y:r,textAlign:l,left:h,top:c,right:d,bottom:u}=t._pointLabelItems[n],{backdropColor:f}=e;if(!$(f)){const t=Ne(e.backdropPadding);i.fillStyle=f,i.fillRect(h-t.left,c-t.top,d-h+t.width,u-c+t.height)}se(i,t._pointLabels[n],a,r+o.lineHeight/2,o,{color:e.color,textAlign:l,textBaseline:\"middle\"})}}(this,n),s.display&&this.ticks.forEach(((t,e)=>{if(0!==e){a=this.getDistanceFromCenterForValue(t.value);!function(t,e,i,s){const n=t.ctx,o=e.circular,{color:a,lineWidth:r}=e;!o&&!s||!a||!r||i<0||(n.save(),n.strokeStyle=a,n.lineWidth=r,n.setLineDash(e.borderDash),n.lineDashOffset=e.borderDashOffset,n.beginPath(),ra(t,i,o,s),n.closePath(),n.stroke(),n.restore())}(this,s.setContext(this.getContext(e-1)),a,n)}})),i.display){for(t.save(),o=n-1;o>=0;o--){const s=i.setContext(this.getPointLabelContext(o)),{color:n,lineWidth:l}=s;l&&n&&(t.lineWidth=l,t.strokeStyle=n,t.setLineDash(s.borderDash),t.lineDashOffset=s.borderDashOffset,a=this.getDistanceFromCenterForValue(e.ticks.reverse?this.min:this.max),r=this.getPointPosition(o,a),t.beginPath(),t.moveTo(this.xCenter,this.yCenter),t.lineTo(r.x,r.y),t.stroke())}t.restore()}}drawBorder(){}drawLabels(){const t=this.ctx,e=this.options,i=e.ticks;if(!i.display)return;const s=this.getIndexAngle(0);let n,o;t.save(),t.translate(this.xCenter,this.yCenter),t.rotate(s),t.textAlign=\"center\",t.textBaseline=\"middle\",this.ticks.forEach(((s,a)=>{if(0===a&&!e.reverse)return;const r=i.setContext(this.getContext(a)),l=He(r.font);if(n=this.getDistanceFromCenterForValue(this.ticks[a].value),r.showLabelBackdrop){t.font=l.string,o=t.measureText(s.label).width,t.fillStyle=r.backdropColor;const e=Ne(r.backdropPadding);t.fillRect(-o/2-e.left,-n-l.size/2-e.top,o+e.width,l.size+e.height)}se(t,s.label,0,-n,l,{color:r.color})})),t.restore()}drawTitle(){}}la.id=\"radialLinear\",la.defaults={display:!0,animate:!0,position:\"chartArea\",angleLines:{display:!0,lineWidth:1,borderDash:[],borderDashOffset:0},grid:{circular:!1},startAngle:0,ticks:{showLabelBackdrop:!0,callback:Os.formatters.numeric},pointLabels:{backdropColor:void 0,backdropPadding:2,display:!0,font:{size:10},callback:t=>t,padding:5,centerPointLabels:!1}},la.defaultRoutes={\"angleLines.color\":\"borderColor\",\"pointLabels.color\":\"color\",\"ticks.color\":\"color\"},la.descriptors={angleLines:{_fallback:\"grid\"}};const ha={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},ca=Object.keys(ha);function da(t,e){return t-e}function ua(t,e){if($(e))return null;const i=t._adapter,{parser:s,round:n,isoWeekday:o}=t._parseOpts;let a=e;return\"function\"==typeof s&&(a=s(a)),X(a)||(a=\"string\"==typeof s?i.parse(a,s):i.parse(a)),null===a?null:(n&&(a=\"week\"!==n||!Tt(o)&&!0!==o?i.startOf(a,n):i.startOf(a,\"isoWeek\",o)),+a)}function fa(t,e,i,s){const n=ca.length;for(let o=ca.indexOf(t);o<n-1;++o){const t=ha[ca[o]],n=t.steps?t.steps:Number.MAX_SAFE_INTEGER;if(t.common&&Math.ceil((i-e)/(n*t.size))<=s)return ca[o]}return ca[n-1]}function ga(t,e,i){if(i){if(i.length){const{lo:s,hi:n}=ae(i,e);t[i[s]>=e?i[s]:i[n]]=!0}}else t[e]=!0}function pa(t,e,i){const s=[],n={},o=e.length;let a,r;for(a=0;a<o;++a)r=e[a],n[r]=a,s.push({value:r,major:!1});return 0!==o&&i?function(t,e,i,s){const n=t._adapter,o=+n.startOf(e[0].value,s),a=e[e.length-1].value;let r,l;for(r=o;r<=a;r=+n.add(r,1,s))l=i[r],l>=0&&(e[l].major=!0);return e}(t,s,n,i):s}class ma extends Bs{constructor(t){super(t),this._cache={data:[],labels:[],all:[]},this._unit=\"day\",this._majorUnit=void 0,this._offsets={},this._normalized=!1,this._parseOpts=void 0}init(t,e){const i=t.time||(t.time={}),s=this._adapter=new mn._date(t.adapters.date);ot(i.displayFormats,s.formats()),this._parseOpts={parser:i.parser,round:i.round,isoWeekday:i.isoWeekday},super.init(t),this._normalized=e.normalized}parse(t,e){return void 0===t?null:ua(this,t)}beforeLayout(){super.beforeLayout(),this._cache={data:[],labels:[],all:[]}}determineDataLimits(){const t=this.options,e=this._adapter,i=t.time.unit||\"day\";let{min:s,max:n,minDefined:o,maxDefined:a}=this.getUserBounds();function r(t){o||isNaN(t.min)||(s=Math.min(s,t.min)),a||isNaN(t.max)||(n=Math.max(n,t.max))}o&&a||(r(this._getLabelBounds()),\"ticks\"===t.bounds&&\"labels\"===t.ticks.source||r(this.getMinMax(!1))),s=X(s)&&!isNaN(s)?s:+e.startOf(Date.now(),i),n=X(n)&&!isNaN(n)?n:+e.endOf(Date.now(),i)+1,this.min=Math.min(s,n-1),this.max=Math.max(s+1,n)}_getLabelBounds(){const t=this.getLabelTimestamps();let e=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY;return t.length&&(e=t[0],i=t[t.length-1]),{min:e,max:i}}buildTicks(){const t=this.options,e=t.time,i=t.ticks,s=\"labels\"===i.source?this.getLabelTimestamps():this._generate();\"ticks\"===t.bounds&&s.length&&(this.min=this._userMin||s[0],this.max=this._userMax||s[s.length-1]);const n=this.min,o=he(s,n,this.max);return this._unit=e.unit||(i.autoSkip?fa(e.minUnit,this.min,this.max,this._getLabelCapacity(n)):function(t,e,i,s,n){for(let o=ca.length-1;o>=ca.indexOf(i);o--){const i=ca[o];if(ha[i].common&&t._adapter.diff(n,s,i)>=e-1)return i}return ca[i?ca.indexOf(i):0]}(this,o.length,e.minUnit,this.min,this.max)),this._majorUnit=i.major.enabled&&\"year\"!==this._unit?function(t){for(let e=ca.indexOf(t)+1,i=ca.length;e<i;++e)if(ha[ca[e]].common)return ca[e]}(this._unit):void 0,this.initOffsets(s),t.reverse&&o.reverse(),pa(this,o,this._majorUnit)}initOffsets(t){let e,i,s=0,n=0;this.options.offset&&t.length&&(e=this.getDecimalForValue(t[0]),s=1===t.length?1-e:(this.getDecimalForValue(t[1])-e)/2,i=this.getDecimalForValue(t[t.length-1]),n=1===t.length?i:(i-this.getDecimalForValue(t[t.length-2]))/2);const o=t.length<3?.5:.25;s=jt(s,0,o),n=jt(n,0,o),this._offsets={start:s,end:n,factor:1/(s+1+n)}}_generate(){const t=this._adapter,e=this.min,i=this.max,s=this.options,n=s.time,o=n.unit||fa(n.minUnit,e,i,this._getLabelCapacity(e)),a=K(n.stepSize,1),r=\"week\"===o&&n.isoWeekday,l=Tt(r)||!0===r,h={};let c,d,u=e;if(l&&(u=+t.startOf(u,\"isoWeek\",r)),u=+t.startOf(u,l?\"day\":o),t.diff(i,e,o)>1e5*a)throw new Error(e+\" and \"+i+\" are too far apart with stepSize of \"+a+\" \"+o);const f=\"data\"===s.ticks.source&&this.getDataTimestamps();for(c=u,d=0;c<i;c=+t.add(c,a,o),d++)ga(h,c,f);return c!==i&&\"ticks\"!==s.bounds&&1!==d||ga(h,c,f),Object.keys(h).sort(((t,e)=>t-e)).map((t=>+t))}getLabelForValue(t){const e=this._adapter,i=this.options.time;return i.tooltipFormat?e.format(t,i.tooltipFormat):e.format(t,i.displayFormats.datetime)}_tickFormatFunction(t,e,i,s){const n=this.options,o=n.time.displayFormats,a=this._unit,r=this._majorUnit,l=a&&o[a],h=r&&o[r],c=i[e],d=r&&h&&c&&c.major,u=this._adapter.format(t,s||(d?h:l)),f=n.ticks.callback;return f?J(f,[u,e,i],this):u}generateTickLabels(t){let e,i,s;for(e=0,i=t.length;e<i;++e)s=t[e],s.label=this._tickFormatFunction(s.value,e,t)}getDecimalForValue(t){return null===t?NaN:(t-this.min)/(this.max-this.min)}getPixelForValue(t){const e=this._offsets,i=this.getDecimalForValue(t);return this.getPixelForDecimal((e.start+i)*e.factor)}getValueForPixel(t){const e=this._offsets,i=this.getDecimalForPixel(t)/e.factor-e.end;return this.min+i*(this.max-this.min)}_getLabelSize(t){const e=this.options.ticks,i=this.ctx.measureText(t).width,s=It(this.isHorizontal()?e.maxRotation:e.minRotation),n=Math.cos(s),o=Math.sin(s),a=this._resolveTickFontOptions(0).size;return{w:i*n+a*o,h:i*o+a*n}}_getLabelCapacity(t){const e=this.options.time,i=e.displayFormats,s=i[e.unit]||i.millisecond,n=this._tickFormatFunction(t,0,pa(this,[t],this._majorUnit),s),o=this._getLabelSize(n),a=Math.floor(this.isHorizontal()?this.width/o.w:this.height/o.h)-1;return a>0?a:1}getDataTimestamps(){let t,e,i=this._cache.data||[];if(i.length)return i;const s=this.getMatchingVisibleMetas();if(this._normalized&&s.length)return this._cache.data=s[0].controller.getAllParsedValues(this);for(t=0,e=s.length;t<e;++t)i=i.concat(s[t].controller.getAllParsedValues(this));return this._cache.data=this.normalize(i)}getLabelTimestamps(){const t=this._cache.labels||[];let e,i;if(t.length)return t;const s=this.getLabels();for(e=0,i=s.length;e<i;++e)t.push(ua(this,s[e]));return this._cache.labels=this._normalized?t:this.normalize(t)}normalize(t){return fe(t.sort(da))}}function xa(t,e,i){let s,n,o,a,r=0,l=t.length-1;i?(e>=t[r].pos&&e<=t[l].pos&&({lo:r,hi:l}=re(t,\"pos\",e)),({pos:s,time:o}=t[r]),({pos:n,time:a}=t[l])):(e>=t[r].time&&e<=t[l].time&&({lo:r,hi:l}=re(t,\"time\",e)),({time:s,pos:o}=t[r]),({time:n,pos:a}=t[l]));const h=n-s;return h?o+(a-o)*(e-s)/h:o}ma.id=\"time\",ma.defaults={bounds:\"data\",adapters:{},time:{parser:!1,unit:!1,round:!1,isoWeekday:!1,minUnit:\"millisecond\",displayFormats:{}},ticks:{source:\"auto\",major:{enabled:!1}}};class ba extends ma{constructor(t){super(t),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){const t=this._getTimestampsForTable(),e=this._table=this.buildLookupTable(t);this._minPos=xa(e,this.min),this._tableRange=xa(e,this.max)-this._minPos,super.initOffsets(t)}buildLookupTable(t){const{min:e,max:i}=this,s=[],n=[];let o,a,r,l,h;for(o=0,a=t.length;o<a;++o)l=t[o],l>=e&&l<=i&&s.push(l);if(s.length<2)return[{time:e,pos:0},{time:i,pos:1}];for(o=0,a=s.length;o<a;++o)h=s[o+1],r=s[o-1],l=s[o],Math.round((h+r)/2)!==l&&n.push({time:l,pos:o/(a-1)});return n}_getTimestampsForTable(){let t=this._cache.all||[];if(t.length)return t;const e=this.getDataTimestamps(),i=this.getLabelTimestamps();return t=e.length&&i.length?this.normalize(e.concat(i)):e.length?e:i,t=this._cache.all=t,t}getDecimalForValue(t){return(xa(this._table,t)-this._minPos)/this._tableRange}getValueForPixel(t){const e=this._offsets,i=this.getDecimalForPixel(t)/e.factor-e.end;return xa(this._table,i*this._tableRange+this._minPos,!0)}}ba.id=\"timeseries\",ba.defaults=ma.defaults;var _a=Object.freeze({__proto__:null,CategoryScale:qo,LinearScale:Zo,LogarithmicScale:Qo,RadialLinearScale:la,TimeScale:ma,TimeSeriesScale:ba});return dn.register(Rn,_a,no,Uo),dn.helpers={...Yi},dn._adapters=mn,dn.Animation=us,dn.Animations=gs,dn.animator=a,dn.controllers=Ws.controllers.items,dn.DatasetController=Ps,dn.Element=Ds,dn.elements=no,dn.Interaction=Ee,dn.layouts=ni,dn.platforms=hs,dn.Scale=Bs,dn.Ticks=Os,Object.assign(dn,Rn,_a,no,Uo,hs),dn.Chart=dn,\"undefined\"!=typeof window&&(window.Chart=dn),dn}));\n", "/*!\n * jQuery JavaScript Library v3.7.1\n * https://jquery.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2023-08-28T13:37Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket trac-14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n\t\t// Support: Chrome <=57, Firefox <=52\n\t\t// In some browsers, typeof returns \"function\" for HTML <object> elements\n\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n\t\t// We don't want to classify *any* DOM node as a function.\n\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\n\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\n\t\t\ttypeof obj.item !== \"function\";\n\t};\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar version = \"3.7.1\",\n\n\trhtmlSuffix = /HTML$/i,\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\n\t// Retrieve the text value of an array of DOM nodes\n\ttext: function( elem ) {\n\t\tvar node,\n\t\t\tret = \"\",\n\t\t\ti = 0,\n\t\t\tnodeType = elem.nodeType;\n\n\t\tif ( !nodeType ) {\n\n\t\t\t// If no nodeType, this is expected to be an array\n\t\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t\t// Do not traverse comment nodes\n\t\t\t\tret += jQuery.text( node );\n\t\t\t}\n\t\t}\n\t\tif ( nodeType === 1 || nodeType === 11 ) {\n\t\t\treturn elem.textContent;\n\t\t}\n\t\tif ( nodeType === 9 ) {\n\t\t\treturn elem.documentElement.textContent;\n\t\t}\n\t\tif ( nodeType === 3 || nodeType === 4 ) {\n\t\t\treturn elem.nodeValue;\n\t\t}\n\n\t\t// Do not include comment or processing instruction nodes\n\n\t\treturn ret;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\tisXMLDoc: function( elem ) {\n\t\tvar namespace = elem && elem.namespaceURI,\n\t\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t\t// Assume HTML when documentElement doesn't yet exist, such as inside\n\t\t// document fragments.\n\t\treturn !rhtmlSuffix.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\n\n\nfunction nodeName( elem, name ) {\n\n\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n}\nvar pop = arr.pop;\n\n\nvar sort = arr.sort;\n\n\nvar splice = arr.splice;\n\n\nvar whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\";\n\n\nvar rtrimCSS = new RegExp(\n\t\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\",\n\t\"g\"\n);\n\n\n\n\n// Note: an element does not contain itself\njQuery.contains = function( a, b ) {\n\tvar bup = b && b.parentNode;\n\n\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\n\t\t// Support: IE 9 - 11+\n\t\t// IE doesn't have `contains` on SVG.\n\t\ta.contains ?\n\t\t\ta.contains( bup ) :\n\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t) );\n};\n\n\n\n\n// CSS string/identifier serialization\n// https://drafts.csswg.org/cssom/#common-serializing-idioms\nvar rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g;\n\nfunction fcssescape( ch, asCodePoint ) {\n\tif ( asCodePoint ) {\n\n\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\tif ( ch === \"\\0\" ) {\n\t\t\treturn \"\\uFFFD\";\n\t\t}\n\n\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\treturn ch.slice( 0, -1 ) + \"\\\\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t}\n\n\t// Other potentially-special ASCII characters get backslash-escaped\n\treturn \"\\\\\" + ch;\n}\n\njQuery.escapeSelector = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\n\n\n\nvar preferredDoc = document,\n\tpushNative = push;\n\n( function() {\n\nvar i,\n\tExpr,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\tpush = pushNative,\n\n\t// Local document vars\n\tdocument,\n\tdocumentElement,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\tmatches,\n\n\t// Instance-specific data\n\texpando = jQuery.expando,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|\" +\n\t\t\"loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: https://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trleadingCombinator = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" +\n\t\twhitespace + \"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\tID: new RegExp( \"^#(\" + identifier + \")\" ),\n\t\tCLASS: new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\tTAG: new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\tATTR: new RegExp( \"^\" + attributes ),\n\t\tPSEUDO: new RegExp( \"^\" + pseudos ),\n\t\tCHILD: new RegExp(\n\t\t\t\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\tbool: new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\tneedsContext: new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// https://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\tif ( nonHex ) {\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\treturn nonHex;\n\t\t}\n\n\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t// Support: IE <=11+\n\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t// surrogate pair\n\t\treturn high < 0 ?\n\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// Used for iframes; see `setDocument`.\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE/Edge.\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && nodeName( elem, \"fieldset\" );\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android <=4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = {\n\t\tapply: function( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t},\n\t\tcall: function( target ) {\n\t\t\tpushNative.apply( target, slice.call( arguments, 1 ) );\n\t\t}\n\t};\n}\n\nfunction find( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE 9 only\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tpush.call( results, elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE 9 only\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tfind.contains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tpush.call( results, elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && context.getElementsByClassName ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( !nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rleadingCombinator.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when\n\t\t\t\t\t// strict-comparing two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( newContext != context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = jQuery.escapeSelector( nid );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrimCSS, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties\n\t\t// (see https://github.com/jquery/sizzle/issues/157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by jQuery selector module\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\treturn nodeName( elem, \"input\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\treturn ( nodeName( elem, \"input\" ) || nodeName( elem, \"button\" ) ) &&\n\t\t\telem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11+\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a jQuery selector context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [node] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nfunction setDocument( node ) {\n\tvar subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocumentElement = document.documentElement;\n\tdocumentIsHTML = !jQuery.isXMLDoc( document );\n\n\t// Support: iOS 7 only, IE 9 - 11+\n\t// Older browsers didn't support unprefixed `matches`.\n\tmatches = documentElement.matches ||\n\t\tdocumentElement.webkitMatchesSelector ||\n\t\tdocumentElement.msMatchesSelector;\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors\n\t// (see trac-13936).\n\t// Limit the fix to IE & Edge Legacy; despite Edge 15+ implementing `matches`,\n\t// all IE 9+ and Edge Legacy versions implement `msMatchesSelector` as well.\n\tif ( documentElement.msMatchesSelector &&\n\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tpreferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t\tsubWindow.addEventListener( \"unload\", unloadHandler );\n\t}\n\n\t// Support: IE <10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocumentElement.appendChild( el ).id = jQuery.expando;\n\t\treturn !document.getElementsByName ||\n\t\t\t!document.getElementsByName( jQuery.expando ).length;\n\t} );\n\n\t// Support: IE 9 only\n\t// Check to see if it's possible to do matchesSelector\n\t// on a disconnected node.\n\tsupport.disconnectedMatch = assert( function( el ) {\n\t\treturn matches.call( el, \"*\" );\n\t} );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// IE/Edge don't support the :scope pseudo-class.\n\tsupport.scope = assert( function() {\n\t\treturn document.querySelectorAll( \":scope\" );\n\t} );\n\n\t// Support: Chrome 105 - 111 only, Safari 15.4 - 16.3 only\n\t// Make sure the `:has()` argument is parsed unforgivingly.\n\t// We include `*` in the test to detect buggy implementations that are\n\t// _selectively_ forgiving (specifically when the list includes at least\n\t// one valid selector).\n\t// Note that we treat complete lack of support for `:has()` as if it were\n\t// spec-compliant support, which is fine because use of `:has()` in such\n\t// environments will fail in the qSA path and fall back to jQuery traversal\n\t// anyway.\n\tsupport.cssHas = assert( function() {\n\t\ttry {\n\t\t\tdocument.querySelector( \":has(*,:jqfake)\" );\n\t\t\treturn false;\n\t\t} catch ( e ) {\n\t\t\treturn true;\n\t\t}\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter.ID = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find.ID = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter.ID = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find.ID = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find.TAG = function( tag, context ) {\n\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t// DocumentFragment nodes don't have gEBTN\n\t\t} else {\n\t\t\treturn context.querySelectorAll( tag );\n\t\t}\n\t};\n\n\t// Class\n\tExpr.find.CLASS = function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\trbuggyQSA = [];\n\n\t// Build QSA regex\n\t// Regex strategy adopted from Diego Perini\n\tassert( function( el ) {\n\n\t\tvar input;\n\n\t\tdocumentElement.appendChild( el ).innerHTML =\n\t\t\t\"<a id='\" + expando + \"' href='' disabled='disabled'></a>\" +\n\t\t\t\"<select id='\" + expando + \"-\\r\\\\' disabled='disabled'>\" +\n\t\t\t\"<option selected=''></option></select>\";\n\n\t\t// Support: iOS <=7 - 8 only\n\t\t// Boolean attributes and \"value\" are not treated correctly in some XML documents\n\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t}\n\n\t\t// Support: iOS <=7 - 8 only\n\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\trbuggyQSA.push( \"~=\" );\n\t\t}\n\n\t\t// Support: iOS 8 only\n\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t}\n\n\t\t// Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+\n\t\t// In some of the document kinds, these selectors wouldn't work natively.\n\t\t// This is probably OK but for backwards compatibility we want to maintain\n\t\t// handling them through jQuery traversal in jQuery 3.x.\n\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\trbuggyQSA.push( \":checked\" );\n\t\t}\n\n\t\t// Support: Windows 8 Native Apps\n\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\tinput = document.createElement( \"input\" );\n\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t// Support: IE 9 - 11+\n\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t// Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+\n\t\t// In some of the document kinds, these selectors wouldn't work natively.\n\t\t// This is probably OK but for backwards compatibility we want to maintain\n\t\t// handling them through jQuery traversal in jQuery 3.x.\n\t\tdocumentElement.appendChild( el ).disabled = true;\n\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t}\n\n\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t// Adding a temporary attribute to the document before the selection works\n\t\t// around the issue.\n\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\tinput = document.createElement( \"input\" );\n\t\tinput.setAttribute( \"name\", \"\" );\n\t\tel.appendChild( input );\n\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t}\n\t} );\n\n\tif ( !support.cssHas ) {\n\n\t\t// Support: Chrome 105 - 110+, Safari 15.4 - 16.3+\n\t\t// Our regular `try-catch` mechanism fails to detect natively-unsupported\n\t\t// pseudo-classes inside `:has()` (such as `:has(:contains(\"Foo\"))`)\n\t\t// in browsers that parse the `:has()` argument as a forgiving selector list.\n\t\t// https://drafts.csswg.org/selectors/#relational now requires the argument\n\t\t// to be parsed unforgivingly, but browsers have not yet fully adjusted.\n\t\trbuggyQSA.push( \":has\" );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = function( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a === document || a.ownerDocument == preferredDoc &&\n\t\t\t\tfind.contains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b === document || b.ownerDocument == preferredDoc &&\n\t\t\t\tfind.contains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t};\n\n\treturn document;\n}\n\nfind.matches = function( expr, elements ) {\n\treturn find( expr, null, null, elements );\n};\n\nfind.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn find( expr, document, null, [ elem ] ).length > 0;\n};\n\nfind.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn jQuery.contains( context, elem );\n};\n\n\nfind.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (see trac-13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\tif ( val !== undefined ) {\n\t\treturn val;\n\t}\n\n\treturn elem.getAttribute( name );\n};\n\nfind.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\njQuery.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\t//\n\t// Support: Android <=4.0+\n\t// Testing for detecting duplicates is unpredictable so instead assume we can't\n\t// depend on duplicate detection in all browsers without a stable sort.\n\thasDuplicate = !support.sortStable;\n\tsortInput = !support.sortStable && slice.call( results, 0 );\n\tsort.call( results, sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tsplice.call( results, duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\njQuery.fn.uniqueSort = function() {\n\treturn this.pushStack( jQuery.uniqueSort( slice.apply( this ) ) );\n};\n\nExpr = jQuery.expr = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\tATTR: function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] || match[ 5 ] || \"\" )\n\t\t\t\t.replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\tCHILD: function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tfind.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" )\n\t\t\t\t);\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tfind.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\tPSEUDO: function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr.CHILD.test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\tTAG: function( nodeNameSelector ) {\n\t\t\tvar expectedNodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn nodeName( elem, expectedNodeName );\n\t\t\t\t};\n\t\t},\n\n\t\tCLASS: function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace + \")\" + className +\n\t\t\t\t\t\"(\" + whitespace + \"|$)\" ) ) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\tATTR: function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = find.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\tif ( operator === \"=\" ) {\n\t\t\t\t\treturn result === check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"!=\" ) {\n\t\t\t\t\treturn result !== check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"^=\" ) {\n\t\t\t\t\treturn check && result.indexOf( check ) === 0;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"*=\" ) {\n\t\t\t\t\treturn check && result.indexOf( check ) > -1;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"$=\" ) {\n\t\t\t\t\treturn check && result.slice( -check.length ) === check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"~=\" ) {\n\t\t\t\t\treturn ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" )\n\t\t\t\t\t\t.indexOf( check ) > -1;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"|=\" ) {\n\t\t\t\t\treturn result === check || result.slice( 0, check.length + 1 ) === check + \"-\";\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t};\n\t\t},\n\n\t\tCHILD: function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnodeName( node, name ) :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\t\t\t\t\t\t\touterCache = parent[ expando ] || ( parent[ expando ] = {} );\n\t\t\t\t\t\t\tcache = outerCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\touterCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\t\t\t\t\t\t\t\tcache = outerCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnodeName( node, name ) :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\t\t\t\t\t\t\t\t\t\t\touterCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\tPSEUDO: function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// https://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tfind.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as jQuery does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf.call( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\tnot: markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrimCSS, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element\n\t\t\t\t\t// (see https://github.com/jquery/sizzle/issues/299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\thas: markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn find( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\tcontains: markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || jQuery.text( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// https://www.w3.org/TR/selectors/#lang-pseudo\n\t\tlang: markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tfind.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\ttarget: function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\troot: function( elem ) {\n\t\t\treturn elem === documentElement;\n\t\t},\n\n\t\tfocus: function( elem ) {\n\t\t\treturn elem === safeActiveElement() &&\n\t\t\t\tdocument.hasFocus() &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\tenabled: createDisabledPseudo( false ),\n\t\tdisabled: createDisabledPseudo( true ),\n\n\t\tchecked: function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// https://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\treturn ( nodeName( elem, \"input\" ) && !!elem.checked ) ||\n\t\t\t\t( nodeName( elem, \"option\" ) && !!elem.selected );\n\t\t},\n\n\t\tselected: function( elem ) {\n\n\t\t\t// Support: IE <=11+\n\t\t\t// Accessing the selectedIndex property\n\t\t\t// forces the browser to treat the default option as\n\t\t\t// selected when in an optgroup.\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\tempty: function( elem ) {\n\n\t\t\t// https://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\tparent: function( elem ) {\n\t\t\treturn !Expr.pseudos.empty( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\theader: function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\tinput: function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\tbutton: function( elem ) {\n\t\t\treturn nodeName( elem, \"input\" ) && elem.type === \"button\" ||\n\t\t\t\tnodeName( elem, \"button\" );\n\t\t},\n\n\t\ttext: function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn nodeName( elem, \"input\" ) && elem.type === \"text\" &&\n\n\t\t\t\t// Support: IE <10 only\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear\n\t\t\t\t// with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\tfirst: createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\tlast: createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\teq: createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\teven: createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\todd: createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\tlt: createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i;\n\n\t\t\tif ( argument < 0 ) {\n\t\t\t\ti = argument + length;\n\t\t\t} else if ( argument > length ) {\n\t\t\t\ti = length;\n\t\t\t} else {\n\t\t\t\ti = argument;\n\t\t\t}\n\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\tgt: createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos.nth = Expr.pseudos.eq;\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\nfunction tokenize( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rleadingCombinator.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrimCSS, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\tif ( parseOnly ) {\n\t\treturn soFar.length;\n\t}\n\n\treturn soFar ?\n\t\tfind.error( selector ) :\n\n\t\t// Cache the tokens\n\t\ttokenCache( selector, groups ).slice( 0 );\n}\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\tif ( skip && nodeName( elem, skip ) ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = outerCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\touterCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\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\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tfind( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem, matcherOut,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed ||\n\t\t\t\tmultipleContexts( selector || \"*\",\n\t\t\t\t\tcontext.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems;\n\n\t\tif ( matcher ) {\n\n\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter\n\t\t\t// or preexisting results,\n\t\t\tmatcherOut = postFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t[] :\n\n\t\t\t\t// ...otherwise use results directly\n\t\t\t\tresults;\n\n\t\t\t// Find primary matches\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t} else {\n\t\t\tmatcherOut = matcherIn;\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf.call( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf.call( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tvar ret = ( !leadingRelative && ( xml || context != outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element\n\t\t\t// (see https://github.com/jquery/sizzle/issues/299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 )\n\t\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrimCSS, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find.TAG( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: iOS <=7 - 9 only\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: <number>) matching\n\t\t\t// elements by id. (see trac-14142)\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tpush.call( results, elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tjQuery.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\nfunction compile( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n}\n\n/**\n * A low-level selection function that works with jQuery's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with jQuery selector compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nfunction select( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find.ID(\n\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\tcontext\n\t\t\t) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr.needsContext.test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) &&\n\t\t\t\t\t\ttestContext( context.parentNode ) || context\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n}\n\n// One-time assignments\n\n// Support: Android <=4.0 - 4.1+\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Android <=4.0 - 4.1+\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\njQuery.find = find;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.unique = jQuery.uniqueSort;\n\n// These have always been private, but they used to be documented as part of\n// Sizzle so let's maintain them for now for backwards compatibility purposes.\nfind.compile = compile;\nfind.select = select;\nfind.setDocument = setDocument;\nfind.tokenize = tokenize;\n\nfind.escape = jQuery.escapeSelector;\nfind.getText = jQuery.text;\nfind.isXML = jQuery.isXMLDoc;\nfind.selectors = jQuery.expr;\nfind.support = jQuery.support;\nfind.uniqueSort = jQuery.uniqueSort;\n\n\t/* eslint-enable */\n\n} )();\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over <tag> to avoid XSS via location.hash (trac-9521)\n\t// Strict HTML recognition (trac-11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to jQuery#find\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// <object> elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.error );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the error, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getErrorHook ) {\n\t\t\t\t\t\t\t\t\tprocess.error = jQuery.Deferred.getErrorHook();\n\n\t\t\t\t\t\t\t\t// The deprecated alias of the above. While the name suggests\n\t\t\t\t\t\t\t\t// returning the stack, not an error instance, jQuery just passes\n\t\t\t\t\t\t\t\t// it directly to `console.warn` so both will work; an instance\n\t\t\t\t\t\t\t\t// just better cooperates with source maps.\n\t\t\t\t\t\t\t\t} else if ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.error = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the primary Deferred\n\t\t\tprimary = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tprimary.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( primary.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn primary.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );\n\t\t}\n\n\t\treturn primary.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\n// If `jQuery.Deferred.getErrorHook` is defined, `asyncError` is an error\n// captured before the async barrier to get the original error cause\n// which may otherwise be hidden.\njQuery.Deferred.exceptionHook = function( error, asyncError ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message,\n\t\t\terror.stack, asyncError );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See trac-6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\t\tvalue :\n\t\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (trac-9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see trac-8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (trac-14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\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\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (trac-11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (trac-14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"<textarea>x</textarea>\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces <option> tags with their contents when inserted outside of\n\t// the select element.\n\tdiv.innerHTML = \"<option></option>\";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (trac-13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting <tbody> or other required elements.\n\tthead: [ 1, \"<table>\", \"</table>\" ],\n\tcol: [ 2, \"<table><colgroup>\", \"</colgroup></table>\" ],\n\ttr: [ 2, \"<table><tbody>\", \"</tbody></table>\" ],\n\ttd: [ 3, \"<table><tbody><tr>\", \"</tr></tbody></table>\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"<select multiple='multiple'>\", \"</select>\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (trac-15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (trac-12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG <use> instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (trac-13208)\n\t\t\t\t// Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (trac-13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", true );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, isSetup ) {\n\n\t// Missing `isSetup` indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !isSetup ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\tif ( !saved ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tdataPriv.set( this, type, false );\n\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering\n\t\t\t\t// the native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, jQuery.event.trigger(\n\t\t\t\t\tsaved[ 0 ],\n\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\tthis\n\t\t\t\t) );\n\n\t\t\t\t// Abort handling of the native event by all jQuery handlers while allowing\n\t\t\t\t// native handlers on the same element to run. On target, this is achieved\n\t\t\t\t// by stopping immediate propagation just on the jQuery event. However,\n\t\t\t\t// the native event is re-wrapped by a jQuery one on each level of the\n\t\t\t\t// propagation so the only way to stop it for jQuery is to stop it for\n\t\t\t\t// everyone via native `stopPropagation()`. This is not a problem for\n\t\t\t\t// focus/blur which don't bubble, but it does also stop click on checkboxes\n\t\t\t\t// and radios. We accept this limitation.\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tevent.isImmediatePropagationStopped = returnTrue;\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (trac-504, trac-13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\twhich: true\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\n\tfunction focusMappedHandler( nativeEvent ) {\n\t\tif ( document.documentMode ) {\n\n\t\t\t// Support: IE 11+\n\t\t\t// Attach a single focusin/focusout handler on the document while someone wants\n\t\t\t// focus/blur. This is because the former are synchronous in IE while the latter\n\t\t\t// are async. In other browsers, all those handlers are invoked synchronously.\n\n\t\t\t// `handle` from private data would already wrap the event, but we need\n\t\t\t// to change the `type` here.\n\t\t\tvar handle = dataPriv.get( this, \"handle\" ),\n\t\t\t\tevent = jQuery.event.fix( nativeEvent );\n\t\t\tevent.type = nativeEvent.type === \"focusin\" ? \"focus\" : \"blur\";\n\t\t\tevent.isSimulated = true;\n\n\t\t\t// First, handle focusin/focusout\n\t\t\thandle( nativeEvent );\n\n\t\t\t// ...then, handle focus/blur\n\t\t\t//\n\t\t\t// focus/blur don't bubble while focusin/focusout do; simulate the former by only\n\t\t\t// invoking the handler at the lower level.\n\t\t\tif ( event.target === event.currentTarget ) {\n\n\t\t\t\t// The setup part calls `leverageNative`, which, in turn, calls\n\t\t\t\t// `jQuery.event.add`, so event handle will already have been set\n\t\t\t\t// by this point.\n\t\t\t\thandle( event );\n\t\t\t}\n\t\t} else {\n\n\t\t\t// For non-IE browsers, attach a single capturing handler on the document\n\t\t\t// while someone wants focusin/focusout.\n\t\t\tjQuery.event.simulate( delegateType, nativeEvent.target,\n\t\t\t\tjQuery.event.fix( nativeEvent ) );\n\t\t}\n\t}\n\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\tvar attaches;\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, true );\n\n\t\t\tif ( document.documentMode ) {\n\n\t\t\t\t// Support: IE 9 - 11+\n\t\t\t\t// We use the same native handler for focusin & focus (and focusout & blur)\n\t\t\t\t// so we need to coordinate setup & teardown parts between those events.\n\t\t\t\t// Use `delegateType` as the key as `type` is already used by `leverageNative`.\n\t\t\t\tattaches = dataPriv.get( this, delegateType );\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tthis.addEventListener( delegateType, focusMappedHandler );\n\t\t\t\t}\n\t\t\t\tdataPriv.set( this, delegateType, ( attaches || 0 ) + 1 );\n\t\t\t} else {\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\tteardown: function() {\n\t\t\tvar attaches;\n\n\t\t\tif ( document.documentMode ) {\n\t\t\t\tattaches = dataPriv.get( this, delegateType ) - 1;\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tthis.removeEventListener( delegateType, focusMappedHandler );\n\t\t\t\t\tdataPriv.remove( this, delegateType );\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.set( this, delegateType, attaches );\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Return false to indicate standard teardown should be applied\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\n\t\t// Suppress native focus or blur if we're currently inside\n\t\t// a leveraged native-event stack\n\t\t_default: function( event ) {\n\t\t\treturn dataPriv.get( event.target, type );\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n\n\t// Support: Firefox <=44\n\t// Firefox doesn't have focus(in | out) events\n\t// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n\t//\n\t// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n\t// focus(in | out) events fire after focus & blur events,\n\t// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n\t// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\n\t//\n\t// Support: IE 9 - 11+\n\t// To preserve relative focusin/focus & focusout/blur event order guaranteed on the 3.x branch,\n\t// attach a single handler for both events in IE.\n\tjQuery.event.special[ delegateType ] = {\n\t\tsetup: function() {\n\n\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\tdataHolder = document.documentMode ? this : doc,\n\t\t\t\tattaches = dataPriv.get( dataHolder, delegateType );\n\n\t\t\t// Support: IE 9 - 11+\n\t\t\t// We use the same native handler for focusin & focus (and focusout & blur)\n\t\t\t// so we need to coordinate setup & teardown parts between those events.\n\t\t\t// Use `delegateType` as the key as `type` is already used by `leverageNative`.\n\t\t\tif ( !attaches ) {\n\t\t\t\tif ( document.documentMode ) {\n\t\t\t\t\tthis.addEventListener( delegateType, focusMappedHandler );\n\t\t\t\t} else {\n\t\t\t\t\tdoc.addEventListener( type, focusMappedHandler, true );\n\t\t\t\t}\n\t\t\t}\n\t\t\tdataPriv.set( dataHolder, delegateType, ( attaches || 0 ) + 1 );\n\t\t},\n\t\tteardown: function() {\n\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\tdataHolder = document.documentMode ? this : doc,\n\t\t\t\tattaches = dataPriv.get( dataHolder, delegateType ) - 1;\n\n\t\t\tif ( !attaches ) {\n\t\t\t\tif ( document.documentMode ) {\n\t\t\t\t\tthis.removeEventListener( delegateType, focusMappedHandler );\n\t\t\t\t} else {\n\t\t\t\t\tdoc.removeEventListener( type, focusMappedHandler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( dataHolder, delegateType );\n\t\t\t} else {\n\t\t\t\tdataPriv.set( dataHolder, delegateType, attaches );\n\t\t\t}\n\t\t}\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /<script|<style|<link/i,\n\n\t// checked=\"checked\" or checked\n\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n\n\trcleanScript = /^\\s*<!\\[CDATA\\[|\\]\\]>\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (trac-8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Re-enable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Unwrap a CDATA section containing script contents. This shouldn't be\n\t\t\t\t\t\t\t// needed as in XML documents they're already not visible when\n\t\t\t\t\t\t\t// inspecting element contents and in HTML documents they have no\n\t\t\t\t\t\t\t// meaning but we're preserving that logic for backwards compatibility.\n\t\t\t\t\t\t\t// This will be removed completely in 4.0. See gh-4904.\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew jQuery#find here for performance reasons:\n\t\t\t// https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar rcustomProp = /^--/;\n\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (trac-15098, trac-14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (trac-8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\t//\n\t\t// Support: Firefox 70+\n\t\t// Only Firefox includes border widths\n\t\t// in computed dimensions. (gh-4529)\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n\t\t\t\ttr.style.cssText = \"box-sizing:content-box;border:1px solid\";\n\n\t\t\t\t// Support: Chrome 86+\n\t\t\t\t// Height set through cssText does not get applied.\n\t\t\t\t// Computed height then comes back as 0.\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\t// Support: Android 8 Chrome 86+\n\t\t\t\t// In our bodyBackground.html iframe,\n\t\t\t\t// display for all div elements is set to \"inline\",\n\t\t\t\t// which causes a problem only in Android 8 Chrome 86.\n\t\t\t\t// Ensuring the div is `display: block`\n\t\t\t\t// gets around this issue.\n\t\t\t\ttrChild.style.display = \"block\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderTopWidth, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\t\tisCustomProp = rcustomProp.test( name ),\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t// .css('filter') (IE 9 only, trac-12537)\n\t// .css('--customProperty) (gh-3144)\n\tif ( computed ) {\n\n\t\t// Support: IE <=9 - 11+\n\t\t// IE only supports `\"float\"` in `getPropertyValue`; in computed styles\n\t\t// it's only available as `\"cssFloat\"`. We no longer modify properties\n\t\t// sent to `.css()` apart from camelCasing, so we need to check both.\n\t\t// Normally, this would create difference in behavior: if\n\t\t// `getPropertyValue` returns an empty string, the value returned\n\t\t// by `.css()` would be `undefined`. This is usually the case for\n\t\t// disconnected elements. However, in IE even disconnected elements\n\t\t// with no styles return `\"none\"` for `getPropertyValue( \"float\" )`\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( isCustomProp && ret ) {\n\n\t\t\t// Support: Firefox 105+, Chrome <=105+\n\t\t\t// Spec requires trimming whitespace for custom properties (gh-4926).\n\t\t\t// Firefox only trims leading whitespace. Chrome just collapses\n\t\t\t// both leading & trailing whitespace to a single space.\n\t\t\t//\n\t\t\t// Fall back to `undefined` if empty string returned.\n\t\t\t// This collapses a missing definition with property defined\n\t\t\t// and set to an empty string but there's no standard API\n\t\t\t// allowing us to differentiate them without a performance penalty\n\t\t\t// and returning `undefined` aligns with older jQuery.\n\t\t\t//\n\t\t\t// rtrimCSS treats U+000D CARRIAGE RETURN and U+000C FORM FEED\n\t\t\t// as whitespace while CSS does not, but this is not a problem\n\t\t\t// because CSS preprocessing replaces them with U+000A LINE FEED\n\t\t\t// (which *is* CSS whitespace)\n\t\t\t// https://www.w3.org/TR/css-syntax-3/#input-preprocessing\n\t\t\tret = ret.replace( rtrimCSS, \"$1\" ) || undefined;\n\t\t}\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0,\n\t\tmarginDelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\t// Count margin delta separately to only add it after scroll gutter adjustment.\n\t\t// This is needed to make negative margins work with `outerHeight( true )` (gh-3982).\n\t\tif ( box === \"margin\" ) {\n\t\t\tmarginDelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta + marginDelta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\tanimationIterationCount: true,\n\t\taspectRatio: true,\n\t\tborderImageSlice: true,\n\t\tcolumnCount: true,\n\t\tflexGrow: true,\n\t\tflexShrink: true,\n\t\tfontWeight: true,\n\t\tgridArea: true,\n\t\tgridColumn: true,\n\t\tgridColumnEnd: true,\n\t\tgridColumnStart: true,\n\t\tgridRow: true,\n\t\tgridRowEnd: true,\n\t\tgridRowStart: true,\n\t\tlineHeight: true,\n\t\topacity: true,\n\t\torder: true,\n\t\torphans: true,\n\t\tscale: true,\n\t\twidows: true,\n\t\tzIndex: true,\n\t\tzoom: true,\n\n\t\t// SVG-related\n\t\tfillOpacity: true,\n\t\tfloodOpacity: true,\n\t\tstopOpacity: true,\n\t\tstrokeMiterlimit: true,\n\t\tstrokeOpacity: true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (trac-7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug trac-9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (trac-7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t} ) :\n\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (trac-12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\n\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// Use proper attribute retrieval (trac-12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classNames, cur, curValue, className, i, finalValue;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tcurValue = getClass( this );\n\t\t\t\tcur = this.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\t\tclassName = classNames[ i ];\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + className + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += className + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\tthis.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classNames, cur, curValue, className, i, finalValue;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tcurValue = getClass( this );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = this.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\t\tclassName = classNames[ i ];\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + className + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + className + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\tthis.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar classNames, className, i, self,\n\t\t\ttype = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\treturn this.each( function() {\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\tself = jQuery( this );\n\n\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\tclassName = classNames[ i ];\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (trac-14686, trac-14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (trac-2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\nvar location = window.location;\n\nvar nonce = { guid: Date.now() };\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml, parserErrorElem;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {}\n\n\tparserErrorElem = xml && xml.getElementsByTagName( \"parsererror\" )[ 0 ];\n\tif ( !xml || parserErrorElem ) {\n\t\tjQuery.error( \"Invalid XML: \" + (\n\t\t\tparserErrorElem ?\n\t\t\t\tjQuery.map( parserErrorElem.childNodes, function( el ) {\n\t\t\t\t\treturn el.textContent;\n\t\t\t\t} ).join( \"\\n\" ) :\n\t\t\t\tdata\n\t\t) );\n\t}\n\treturn xml;\n};\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (trac-9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (trac-9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || Object.create( null ) )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (trac-6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} ).filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} ).map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// trac-7653, trac-8125, trac-8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (trac-10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\noriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes trac-9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\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\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\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\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\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\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (trac-10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket trac-12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (trac-15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// trac-9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\n\t\t\t\t\tuncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Use a noop converter for missing script but not if jsonp\n\t\t\tif ( !isSuccess &&\n\t\t\t\tjQuery.inArray( \"script\", s.dataTypes ) > -1 &&\n\t\t\t\tjQuery.inArray( \"json\", s.dataTypes ) < 0 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\n\njQuery._evalUrl = function( url, options, doc ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (trac-11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options, doc );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// trac-1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see trac-8605, trac-14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\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\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\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\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// trac-14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"<script>\" )\n\t\t\t\t\t.attr( s.scriptAttrs || {} )\n\t\t\t\t\t.prop( { charset: s.scriptCharset, src: s.url } )\n\t\t\t\t\t.on( \"load error\", callback = function( evt ) {\n\t\t\t\t\t\tscript.remove();\n\t\t\t\t\t\tcallback = null;\n\t\t\t\t\t\tif ( evt ) {\n\t\t\t\t\t\t\tcomplete( evt.type === \"error\" ? 404 : 200, evt.type );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t// Use native DOM manipulation to avoid our domManip AJAX trickery\n\t\t\t\tdocument.head.appendChild( script[ 0 ] );\n\t\t\t},\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\nvar oldCallbacks = [],\n\trjsonp = /(=)\\?(?=&|$)|\\?\\?/;\n\n// Default jsonp settings\njQuery.ajaxSetup( {\n\tjsonp: \"callback\",\n\tjsonpCallback: function() {\n\t\tvar callback = oldCallbacks.pop() || ( jQuery.expando + \"_\" + ( nonce.guid++ ) );\n\t\tthis[ callback ] = true;\n\t\treturn callback;\n\t}\n} );\n\n// Detect, normalize options and install callbacks for jsonp requests\njQuery.ajaxPrefilter( \"json jsonp\", function( s, originalSettings, jqXHR ) {\n\n\tvar callbackName, overwritten, responseContainer,\n\t\tjsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?\n\t\t\t\"url\" :\n\t\t\ttypeof s.data === \"string\" &&\n\t\t\t\t( s.contentType || \"\" )\n\t\t\t\t\t.indexOf( \"application/x-www-form-urlencoded\" ) === 0 &&\n\t\t\t\trjsonp.test( s.data ) && \"data\"\n\t\t);\n\n\t// Handle iff the expected data type is \"jsonp\" or we have a parameter to set\n\tif ( jsonProp || s.dataTypes[ 0 ] === \"jsonp\" ) {\n\n\t\t// Get callback name, remembering preexisting value associated with it\n\t\tcallbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ?\n\t\t\ts.jsonpCallback() :\n\t\t\ts.jsonpCallback;\n\n\t\t// Insert callback into url or form data\n\t\tif ( jsonProp ) {\n\t\t\ts[ jsonProp ] = s[ jsonProp ].replace( rjsonp, \"$1\" + callbackName );\n\t\t} else if ( s.jsonp !== false ) {\n\t\t\ts.url += ( rquery.test( s.url ) ? \"&\" : \"?\" ) + s.jsonp + \"=\" + callbackName;\n\t\t}\n\n\t\t// Use data converter to retrieve json after script execution\n\t\ts.converters[ \"script json\" ] = function() {\n\t\t\tif ( !responseContainer ) {\n\t\t\t\tjQuery.error( callbackName + \" was not called\" );\n\t\t\t}\n\t\t\treturn responseContainer[ 0 ];\n\t\t};\n\n\t\t// Force json dataType\n\t\ts.dataTypes[ 0 ] = \"json\";\n\n\t\t// Install callback\n\t\toverwritten = window[ callbackName ];\n\t\twindow[ callbackName ] = function() {\n\t\t\tresponseContainer = arguments;\n\t\t};\n\n\t\t// Clean-up function (fires after converters)\n\t\tjqXHR.always( function() {\n\n\t\t\t// If previous value didn't exist - remove it\n\t\t\tif ( overwritten === undefined ) {\n\t\t\t\tjQuery( window ).removeProp( callbackName );\n\n\t\t\t// Otherwise restore preexisting value\n\t\t\t} else {\n\t\t\t\twindow[ callbackName ] = overwritten;\n\t\t\t}\n\n\t\t\t// Save back as free\n\t\t\tif ( s[ callbackName ] ) {\n\n\t\t\t\t// Make sure that re-using the options doesn't screw things around\n\t\t\t\ts.jsonpCallback = originalSettings.jsonpCallback;\n\n\t\t\t\t// Save the callback name for future use\n\t\t\t\toldCallbacks.push( callbackName );\n\t\t\t}\n\n\t\t\t// Call if it was a function and we have a response\n\t\t\tif ( responseContainer && isFunction( overwritten ) ) {\n\t\t\t\toverwritten( responseContainer[ 0 ] );\n\t\t\t}\n\n\t\t\tresponseContainer = overwritten = undefined;\n\t\t} );\n\n\t\t// Delegate to script\n\t\treturn \"script\";\n\t}\n} );\n\n\n\n\n// Support: Safari 8 only\n// In Safari 8 documents created via document.implementation.createHTMLDocument\n// collapse sibling forms: the second one becomes a child of the first one.\n// Because of that, this security measure has to be disabled in Safari 8.\n// https://bugs.webkit.org/show_bug.cgi?id=137337\nsupport.createHTMLDocument = ( function() {\n\tvar body = document.implementation.createHTMLDocument( \"\" ).body;\n\tbody.innerHTML = \"<form></form><form></form>\";\n\treturn body.childNodes.length === 2;\n} )();\n\n\n// Argument \"data\" should be string of html\n// context (optional): If specified, the fragment will be created in this context,\n// defaults to document\n// keepScripts (optional): If true, will include scripts passed in the html string\njQuery.parseHTML = function( data, context, keepScripts ) {\n\tif ( typeof data !== \"string\" ) {\n\t\treturn [];\n\t}\n\tif ( typeof context === \"boolean\" ) {\n\t\tkeepScripts = context;\n\t\tcontext = false;\n\t}\n\n\tvar base, parsed, scripts;\n\n\tif ( !context ) {\n\n\t\t// Stop scripts or inline event handlers from being executed immediately\n\t\t// by using document.implementation\n\t\tif ( support.createHTMLDocument ) {\n\t\t\tcontext = document.implementation.createHTMLDocument( \"\" );\n\n\t\t\t// Set the base href for the created document\n\t\t\t// so any parsed elements with URLs\n\t\t\t// are based on the document's URL (gh-2965)\n\t\t\tbase = context.createElement( \"base\" );\n\t\t\tbase.href = document.location.href;\n\t\t\tcontext.head.appendChild( base );\n\t\t} else {\n\t\t\tcontext = document;\n\t\t}\n\t}\n\n\tparsed = rsingleTag.exec( data );\n\tscripts = !keepScripts && [];\n\n\t// Single tag\n\tif ( parsed ) {\n\t\treturn [ context.createElement( parsed[ 1 ] ) ];\n\t}\n\n\tparsed = buildFragment( [ data ], context, scripts );\n\n\tif ( scripts && scripts.length ) {\n\t\tjQuery( scripts ).remove();\n\t}\n\n\treturn jQuery.merge( [], parsed.childNodes );\n};\n\n\n/**\n * Load a url into a page\n */\njQuery.fn.load = function( url, params, callback ) {\n\tvar selector, type, response,\n\t\tself = this,\n\t\toff = url.indexOf( \" \" );\n\n\tif ( off > -1 ) {\n\t\tselector = stripAndCollapse( url.slice( off ) );\n\t\turl = url.slice( 0, off );\n\t}\n\n\t// If it's a function\n\tif ( isFunction( params ) ) {\n\n\t\t// We assume that it's the callback\n\t\tcallback = params;\n\t\tparams = undefined;\n\n\t// Otherwise, build a param string\n\t} else if ( params && typeof params === \"object\" ) {\n\t\ttype = \"POST\";\n\t}\n\n\t// If we have elements to modify, make the request\n\tif ( self.length > 0 ) {\n\t\tjQuery.ajax( {\n\t\t\turl: url,\n\n\t\t\t// If \"type\" variable is undefined, then \"GET\" method will be used.\n\t\t\t// Make value of this field explicit since\n\t\t\t// user can override it through ajaxSetup method\n\t\t\ttype: type || \"GET\",\n\t\t\tdataType: \"html\",\n\t\t\tdata: params\n\t\t} ).done( function( responseText ) {\n\n\t\t\t// Save response for use in complete callback\n\t\t\tresponse = arguments;\n\n\t\t\tself.html( selector ?\n\n\t\t\t\t// If a selector was specified, locate the right elements in a dummy div\n\t\t\t\t// Exclude scripts to avoid IE 'Permission Denied' errors\n\t\t\t\tjQuery( \"<div>\" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :\n\n\t\t\t\t// Otherwise use the full result\n\t\t\t\tresponseText );\n\n\t\t// If the request succeeds, this function gets \"data\", \"status\", \"jqXHR\"\n\t\t// but they are ignored because response was set above.\n\t\t// If it fails, this function gets \"jqXHR\", \"status\", \"error\"\n\t\t} ).always( callback && function( jqXHR, status ) {\n\t\t\tself.each( function() {\n\t\t\t\tcallback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );\n\t\t\t} );\n\t\t} );\n\t}\n\n\treturn this;\n};\n\n\n\n\njQuery.expr.pseudos.animated = function( elem ) {\n\treturn jQuery.grep( jQuery.timers, function( fn ) {\n\t\treturn elem === fn.elem;\n\t} ).length;\n};\n\n\n\n\njQuery.offset = {\n\tsetOffset: function( elem, options, i ) {\n\t\tvar curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,\n\t\t\tposition = jQuery.css( elem, \"position\" ),\n\t\t\tcurElem = jQuery( elem ),\n\t\t\tprops = {};\n\n\t\t// Set position first, in-case top/left are set even on static elem\n\t\tif ( position === \"static\" ) {\n\t\t\telem.style.position = \"relative\";\n\t\t}\n\n\t\tcurOffset = curElem.offset();\n\t\tcurCSSTop = jQuery.css( elem, \"top\" );\n\t\tcurCSSLeft = jQuery.css( elem, \"left\" );\n\t\tcalculatePosition = ( position === \"absolute\" || position === \"fixed\" ) &&\n\t\t\t( curCSSTop + curCSSLeft ).indexOf( \"auto\" ) > -1;\n\n\t\t// Need to be able to calculate position if either\n\t\t// top or left is auto and position is either absolute or fixed\n\t\tif ( calculatePosition ) {\n\t\t\tcurPosition = curElem.position();\n\t\t\tcurTop = curPosition.top;\n\t\t\tcurLeft = curPosition.left;\n\n\t\t} else {\n\t\t\tcurTop = parseFloat( curCSSTop ) || 0;\n\t\t\tcurLeft = parseFloat( curCSSLeft ) || 0;\n\t\t}\n\n\t\tif ( isFunction( options ) ) {\n\n\t\t\t// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)\n\t\t\toptions = options.call( elem, i, jQuery.extend( {}, curOffset ) );\n\t\t}\n\n\t\tif ( options.top != null ) {\n\t\t\tprops.top = ( options.top - curOffset.top ) + curTop;\n\t\t}\n\t\tif ( options.left != null ) {\n\t\t\tprops.left = ( options.left - curOffset.left ) + curLeft;\n\t\t}\n\n\t\tif ( \"using\" in options ) {\n\t\t\toptions.using.call( elem, props );\n\n\t\t} else {\n\t\t\tcurElem.css( props );\n\t\t}\n\t}\n};\n\njQuery.fn.extend( {\n\n\t// offset() relates an element's border box to the document origin\n\toffset: function( options ) {\n\n\t\t// Preserve chaining for setter\n\t\tif ( arguments.length ) {\n\t\t\treturn options === undefined ?\n\t\t\t\tthis :\n\t\t\t\tthis.each( function( i ) {\n\t\t\t\t\tjQuery.offset.setOffset( this, options, i );\n\t\t\t\t} );\n\t\t}\n\n\t\tvar rect, win,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !elem ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Return zeros for disconnected and hidden (display: none) elements (gh-2310)\n\t\t// Support: IE <=11 only\n\t\t// Running getBoundingClientRect on a\n\t\t// disconnected node in IE throws an error\n\t\tif ( !elem.getClientRects().length ) {\n\t\t\treturn { top: 0, left: 0 };\n\t\t}\n\n\t\t// Get document-relative position by adding viewport scroll to viewport-relative gBCR\n\t\trect = elem.getBoundingClientRect();\n\t\twin = elem.ownerDocument.defaultView;\n\t\treturn {\n\t\t\ttop: rect.top + win.pageYOffset,\n\t\t\tleft: rect.left + win.pageXOffset\n\t\t};\n\t},\n\n\t// position() relates an element's margin box to its offset parent's padding box\n\t// This corresponds to the behavior of CSS absolute positioning\n\tposition: function() {\n\t\tif ( !this[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar offsetParent, offset, doc,\n\t\t\telem = this[ 0 ],\n\t\t\tparentOffset = { top: 0, left: 0 };\n\n\t\t// position:fixed elements are offset from the viewport, which itself always has zero offset\n\t\tif ( jQuery.css( elem, \"position\" ) === \"fixed\" ) {\n\n\t\t\t// Assume position:fixed implies availability of getBoundingClientRect\n\t\t\toffset = elem.getBoundingClientRect();\n\n\t\t} else {\n\t\t\toffset = this.offset();\n\n\t\t\t// Account for the *real* offset parent, which can be the document or its root element\n\t\t\t// when a statically positioned element is identified\n\t\t\tdoc = elem.ownerDocument;\n\t\t\toffsetParent = elem.offsetParent || doc.documentElement;\n\t\t\twhile ( offsetParent &&\n\t\t\t\t( offsetParent === doc.body || offsetParent === doc.documentElement ) &&\n\t\t\t\tjQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\n\t\t\t\toffsetParent = offsetParent.parentNode;\n\t\t\t}\n\t\t\tif ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {\n\n\t\t\t\t// Incorporate borders into its offset, since they are outside its content origin\n\t\t\t\tparentOffset = jQuery( offsetParent ).offset();\n\t\t\t\tparentOffset.top += jQuery.css( offsetParent, \"borderTopWidth\", true );\n\t\t\t\tparentOffset.left += jQuery.css( offsetParent, \"borderLeftWidth\", true );\n\t\t\t}\n\t\t}\n\n\t\t// Subtract parent offsets and element margins\n\t\treturn {\n\t\t\ttop: offset.top - parentOffset.top - jQuery.css( elem, \"marginTop\", true ),\n\t\t\tleft: offset.left - parentOffset.left - jQuery.css( elem, \"marginLeft\", true )\n\t\t};\n\t},\n\n\t// This method will return documentElement in the following cases:\n\t// 1) For the element inside the iframe without offsetParent, this method will return\n\t// documentElement of the parent window\n\t// 2) For the hidden or detached element\n\t// 3) For body or html element, i.e. in case of the html node - it will return itself\n\t//\n\t// but those exceptions were never presented as a real life use-cases\n\t// and might be considered as more preferable results.\n\t//\n\t// This logic, however, is not guaranteed and can change at any point in the future\n\toffsetParent: function() {\n\t\treturn this.map( function() {\n\t\t\tvar offsetParent = this.offsetParent;\n\n\t\t\twhile ( offsetParent && jQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\t\t\t\toffsetParent = offsetParent.offsetParent;\n\t\t\t}\n\n\t\t\treturn offsetParent || documentElement;\n\t\t} );\n\t}\n} );\n\n// Create scrollLeft and scrollTop methods\njQuery.each( { scrollLeft: \"pageXOffset\", scrollTop: \"pageYOffset\" }, function( method, prop ) {\n\tvar top = \"pageYOffset\" === prop;\n\n\tjQuery.fn[ method ] = function( val ) {\n\t\treturn access( this, function( elem, method, val ) {\n\n\t\t\t// Coalesce documents and windows\n\t\t\tvar win;\n\t\t\tif ( isWindow( elem ) ) {\n\t\t\t\twin = elem;\n\t\t\t} else if ( elem.nodeType === 9 ) {\n\t\t\t\twin = elem.defaultView;\n\t\t\t}\n\n\t\t\tif ( val === undefined ) {\n\t\t\t\treturn win ? win[ prop ] : elem[ method ];\n\t\t\t}\n\n\t\t\tif ( win ) {\n\t\t\t\twin.scrollTo(\n\t\t\t\t\t!top ? val : win.pageXOffset,\n\t\t\t\t\ttop ? val : win.pageYOffset\n\t\t\t\t);\n\n\t\t\t} else {\n\t\t\t\telem[ method ] = val;\n\t\t\t}\n\t\t}, method, val, arguments.length );\n\t};\n} );\n\n// Support: Safari <=7 - 9.1, Chrome <=37 - 49\n// Add the top/left cssHooks using jQuery.fn.position\n// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084\n// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347\n// getComputedStyle returns percent when specified for top/left/bottom/right;\n// rather than make the css module depend on the offset module, just check for it here\njQuery.each( [ \"top\", \"left\" ], function( _i, prop ) {\n\tjQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,\n\t\tfunction( elem, computed ) {\n\t\t\tif ( computed ) {\n\t\t\t\tcomputed = curCSS( elem, prop );\n\n\t\t\t\t// If curCSS returns percentage, fallback to offset\n\t\t\t\treturn rnumnonpx.test( computed ) ?\n\t\t\t\t\tjQuery( elem ).position()[ prop ] + \"px\" :\n\t\t\t\t\tcomputed;\n\t\t\t}\n\t\t}\n\t);\n} );\n\n\n// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\njQuery.each( { Height: \"height\", Width: \"width\" }, function( name, type ) {\n\tjQuery.each( {\n\t\tpadding: \"inner\" + name,\n\t\tcontent: type,\n\t\t\"\": \"outer\" + name\n\t}, function( defaultExtra, funcName ) {\n\n\t\t// Margin is only for outerHeight, outerWidth\n\t\tjQuery.fn[ funcName ] = function( margin, value ) {\n\t\t\tvar chainable = arguments.length && ( defaultExtra || typeof margin !== \"boolean\" ),\n\t\t\t\textra = defaultExtra || ( margin === true || value === true ? \"margin\" : \"border\" );\n\n\t\t\treturn access( this, function( elem, type, value ) {\n\t\t\t\tvar doc;\n\n\t\t\t\tif ( isWindow( elem ) ) {\n\n\t\t\t\t\t// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)\n\t\t\t\t\treturn funcName.indexOf( \"outer\" ) === 0 ?\n\t\t\t\t\t\telem[ \"inner\" + name ] :\n\t\t\t\t\t\telem.document.documentElement[ \"client\" + name ];\n\t\t\t\t}\n\n\t\t\t\t// Get document width or height\n\t\t\t\tif ( elem.nodeType === 9 ) {\n\t\t\t\t\tdoc = elem.documentElement;\n\n\t\t\t\t\t// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],\n\t\t\t\t\t// whichever is greatest\n\t\t\t\t\treturn Math.max(\n\t\t\t\t\t\telem.body[ \"scroll\" + name ], doc[ \"scroll\" + name ],\n\t\t\t\t\t\telem.body[ \"offset\" + name ], doc[ \"offset\" + name ],\n\t\t\t\t\t\tdoc[ \"client\" + name ]\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn value === undefined ?\n\n\t\t\t\t\t// Get width or height on the element, requesting but not forcing parseFloat\n\t\t\t\t\tjQuery.css( elem, type, extra ) :\n\n\t\t\t\t\t// Set width or height on the element\n\t\t\t\t\tjQuery.style( elem, type, value, extra );\n\t\t\t}, type, chainable ? margin : undefined, chainable );\n\t\t};\n\t} );\n} );\n\n\njQuery.each( [\n\t\"ajaxStart\",\n\t\"ajaxStop\",\n\t\"ajaxComplete\",\n\t\"ajaxError\",\n\t\"ajaxSuccess\",\n\t\"ajaxSend\"\n], function( _i, type ) {\n\tjQuery.fn[ type ] = function( fn ) {\n\t\treturn this.on( type, fn );\n\t};\n} );\n\n\n\n\njQuery.fn.extend( {\n\n\tbind: function( types, data, fn ) {\n\t\treturn this.on( types, null, data, fn );\n\t},\n\tunbind: function( types, fn ) {\n\t\treturn this.off( types, null, fn );\n\t},\n\n\tdelegate: function( selector, types, data, fn ) {\n\t\treturn this.on( types, selector, data, fn );\n\t},\n\tundelegate: function( selector, types, fn ) {\n\n\t\t// ( namespace ) or ( selector, types [, fn] )\n\t\treturn arguments.length === 1 ?\n\t\t\tthis.off( selector, \"**\" ) :\n\t\t\tthis.off( types, selector || \"**\", fn );\n\t},\n\n\thover: function( fnOver, fnOut ) {\n\t\treturn this\n\t\t\t.on( \"mouseenter\", fnOver )\n\t\t\t.on( \"mouseleave\", fnOut || fnOver );\n\t}\n} );\n\njQuery.each(\n\t( \"blur focus focusin focusout resize scroll click dblclick \" +\n\t\"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" +\n\t\"change select submit keydown keypress keyup contextmenu\" ).split( \" \" ),\n\tfunction( _i, name ) {\n\n\t\t// Handle event binding\n\t\tjQuery.fn[ name ] = function( data, fn ) {\n\t\t\treturn arguments.length > 0 ?\n\t\t\t\tthis.on( name, null, data, fn ) :\n\t\t\t\tthis.trigger( name );\n\t\t};\n\t}\n);\n\n\n\n\n// Support: Android <=4.0 only\n// Make sure we trim BOM and NBSP\n// Require that the \"whitespace run\" starts from a non-whitespace\n// to avoid O(N^2) behavior when the engine would try matching \"\\s+$\" at each space position.\nvar rtrim = /^[\\s\\uFEFF\\xA0]+|([^\\s\\uFEFF\\xA0])[\\s\\uFEFF\\xA0]+$/g;\n\n// Bind a function to a context, optionally partially applying any\n// arguments.\n// jQuery.proxy is deprecated to promote standards (specifically Function#bind)\n// However, it is not slated for removal any time soon\njQuery.proxy = function( fn, context ) {\n\tvar tmp, args, proxy;\n\n\tif ( typeof context === \"string\" ) {\n\t\ttmp = fn[ context ];\n\t\tcontext = fn;\n\t\tfn = tmp;\n\t}\n\n\t// Quick check to determine if target is callable, in the spec\n\t// this throws a TypeError, but we will just return undefined.\n\tif ( !isFunction( fn ) ) {\n\t\treturn undefined;\n\t}\n\n\t// Simulated bind\n\targs = slice.call( arguments, 2 );\n\tproxy = function() {\n\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t};\n\n\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\treturn proxy;\n};\n\njQuery.holdReady = function( hold ) {\n\tif ( hold ) {\n\t\tjQuery.readyWait++;\n\t} else {\n\t\tjQuery.ready( true );\n\t}\n};\njQuery.isArray = Array.isArray;\njQuery.parseJSON = JSON.parse;\njQuery.nodeName = nodeName;\njQuery.isFunction = isFunction;\njQuery.isWindow = isWindow;\njQuery.camelCase = camelCase;\njQuery.type = toType;\n\njQuery.now = Date.now;\n\njQuery.isNumeric = function( obj ) {\n\n\t// As of jQuery 3.0, isNumeric is limited to\n\t// strings and numbers (primitives or objects)\n\t// that can be coerced to finite numbers (gh-2662)\n\tvar type = jQuery.type( obj );\n\treturn ( type === \"number\" || type === \"string\" ) &&\n\n\t\t// parseFloat NaNs numeric-cast false positives (\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t!isNaN( obj - parseFloat( obj ) );\n};\n\njQuery.trim = function( text ) {\n\treturn text == null ?\n\t\t\"\" :\n\t\t( text + \"\" ).replace( rtrim, \"$1\" );\n};\n\n\n\n// Register as a named AMD module, since jQuery can be concatenated with other\n// files that may use define, but not via a proper concatenation script that\n// understands anonymous AMD modules. A named AMD is safest and most robust\n// way to register. Lowercase jquery is used because AMD module names are\n// derived from file names, and jQuery is normally delivered in a lowercase\n// file name. Do this after creating the global so that if an AMD module wants\n// to call noConflict to hide this version of jQuery, it will work.\n\n// Note that for maximum portability, libraries that are not jQuery should\n// declare themselves as anonymous modules, and avoid setting a global if an\n// AMD loader is present. jQuery is a special case. For more information, see\n// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon\n\nif ( typeof define === \"function\" && define.amd ) {\n\tdefine( \"jquery\", [], function() {\n\t\treturn jQuery;\n\t} );\n}\n\n\n\n\nvar\n\n\t// Map over jQuery in case of overwrite\n\t_jQuery = window.jQuery,\n\n\t// Map over the $ in case of overwrite\n\t_$ = window.$;\n\njQuery.noConflict = function( deep ) {\n\tif ( window.$ === jQuery ) {\n\t\twindow.$ = _$;\n\t}\n\n\tif ( deep && window.jQuery === jQuery ) {\n\t\twindow.jQuery = _jQuery;\n\t}\n\n\treturn jQuery;\n};\n\n// Expose jQuery and $ identifiers, even in AMD\n// (trac-7102#comment:10, https://github.com/jquery/jquery/pull/557)\n// and CommonJS for browser emulators (trac-13566)\nif ( typeof noGlobal === \"undefined\" ) {\n\twindow.jQuery = window.$ = jQuery;\n}\n\n\n\n\nreturn jQuery;\n} );\n", "/*!\n * Select2 4.1.0-rc.0\n * https://select2.github.io\n *\n * Released under the MIT license\n * https://github.com/select2/select2/blob/master/LICENSE.md\n */\n;(function (factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['jquery'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // Node/CommonJS\n module.exports = function (root, jQuery) {\n if (jQuery === undefined) {\n // require('jQuery') returns a factory that requires window to\n // build a jQuery instance, we normalize how we use modules\n // that require this pattern but the window provided is a noop\n // if it's defined (how jquery works)\n if (typeof window !== 'undefined') {\n jQuery = require('jquery');\n }\n else {\n jQuery = require('jquery')(root);\n }\n }\n factory(jQuery);\n return jQuery;\n };\n } else {\n // Browser globals\n factory(jQuery);\n }\n} (function (jQuery) {\n // This is needed so we can catch the AMD loader configuration and use it\n // The inner file should be wrapped (by `banner.start.js`) in a function that\n // returns the AMD loader references.\n var S2 =(function () {\n // Restore the Select2 AMD loader so it can be used\n // Needed mostly in the language files, where the loader is not inserted\n if (jQuery && jQuery.fn && jQuery.fn.select2 && jQuery.fn.select2.amd) {\n var S2 = jQuery.fn.select2.amd;\n }\nvar S2;(function () { if (!S2 || !S2.requirejs) {\nif (!S2) { S2 = {}; } else { require = S2; }\n/**\n * @license almond 0.3.3 Copyright jQuery Foundation and other contributors.\n * Released under MIT license, http://github.com/requirejs/almond/LICENSE\n */\n//Going sloppy to avoid 'use strict' string cost, but strict practices should\n//be followed.\n/*global setTimeout: false */\n\nvar requirejs, require, define;\n(function (undef) {\n var main, req, makeMap, handlers,\n defined = {},\n waiting = {},\n config = {},\n defining = {},\n hasOwn = Object.prototype.hasOwnProperty,\n aps = [].slice,\n jsSuffixRegExp = /\\.js$/;\n\n function hasProp(obj, prop) {\n return hasOwn.call(obj, prop);\n }\n\n /**\n * Given a relative module name, like ./something, normalize it to\n * a real name that can be mapped to a path.\n * @param {String} name the relative name\n * @param {String} baseName a real name that the name arg is relative\n * to.\n * @returns {String} normalized name\n */\n function normalize(name, baseName) {\n var nameParts, nameSegment, mapValue, foundMap, lastIndex,\n foundI, foundStarMap, starI, i, j, part, normalizedBaseParts,\n baseParts = baseName && baseName.split(\"/\"),\n map = config.map,\n starMap = (map && map['*']) || {};\n\n //Adjust any relative paths.\n if (name) {\n name = name.split('/');\n lastIndex = name.length - 1;\n\n // If wanting node ID compatibility, strip .js from end\n // of IDs. Have to do this here, and not in nameToUrl\n // because node allows either .js or non .js to map\n // to same file.\n if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) {\n name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '');\n }\n\n // Starts with a '.' so need the baseName\n if (name[0].charAt(0) === '.' && baseParts) {\n //Convert baseName to array, and lop off the last part,\n //so that . matches that 'directory' and not name of the baseName's\n //module. For instance, baseName of 'one/two/three', maps to\n //'one/two/three.js', but we want the directory, 'one/two' for\n //this normalization.\n normalizedBaseParts = baseParts.slice(0, baseParts.length - 1);\n name = normalizedBaseParts.concat(name);\n }\n\n //start trimDots\n for (i = 0; i < name.length; i++) {\n part = name[i];\n if (part === '.') {\n name.splice(i, 1);\n i -= 1;\n } else if (part === '..') {\n // If at the start, or previous value is still ..,\n // keep them so that when converted to a path it may\n // still work when converted to a path, even though\n // as an ID it is less than ideal. In larger point\n // releases, may be better to just kick out an error.\n if (i === 0 || (i === 1 && name[2] === '..') || name[i - 1] === '..') {\n continue;\n } else if (i > 0) {\n name.splice(i - 1, 2);\n i -= 2;\n }\n }\n }\n //end trimDots\n\n name = name.join('/');\n }\n\n //Apply map config if available.\n if ((baseParts || starMap) && map) {\n nameParts = name.split('/');\n\n for (i = nameParts.length; i > 0; i -= 1) {\n nameSegment = nameParts.slice(0, i).join(\"/\");\n\n if (baseParts) {\n //Find the longest baseName segment match in the config.\n //So, do joins on the biggest to smallest lengths of baseParts.\n for (j = baseParts.length; j > 0; j -= 1) {\n mapValue = map[baseParts.slice(0, j).join('/')];\n\n //baseName segment has config, find if it has one for\n //this name.\n if (mapValue) {\n mapValue = mapValue[nameSegment];\n if (mapValue) {\n //Match, update name to the new value.\n foundMap = mapValue;\n foundI = i;\n break;\n }\n }\n }\n }\n\n if (foundMap) {\n break;\n }\n\n //Check for a star map match, but just hold on to it,\n //if there is a shorter segment match later in a matching\n //config, then favor over this star map.\n if (!foundStarMap && starMap && starMap[nameSegment]) {\n foundStarMap = starMap[nameSegment];\n starI = i;\n }\n }\n\n if (!foundMap && foundStarMap) {\n foundMap = foundStarMap;\n foundI = starI;\n }\n\n if (foundMap) {\n nameParts.splice(0, foundI, foundMap);\n name = nameParts.join('/');\n }\n }\n\n return name;\n }\n\n function makeRequire(relName, forceSync) {\n return function () {\n //A version of a require function that passes a moduleName\n //value for items that may need to\n //look up paths relative to the moduleName\n var args = aps.call(arguments, 0);\n\n //If first arg is not require('string'), and there is only\n //one arg, it is the array form without a callback. Insert\n //a null so that the following concat is correct.\n if (typeof args[0] !== 'string' && args.length === 1) {\n args.push(null);\n }\n return req.apply(undef, args.concat([relName, forceSync]));\n };\n }\n\n function makeNormalize(relName) {\n return function (name) {\n return normalize(name, relName);\n };\n }\n\n function makeLoad(depName) {\n return function (value) {\n defined[depName] = value;\n };\n }\n\n function callDep(name) {\n if (hasProp(waiting, name)) {\n var args = waiting[name];\n delete waiting[name];\n defining[name] = true;\n main.apply(undef, args);\n }\n\n if (!hasProp(defined, name) && !hasProp(defining, name)) {\n throw new Error('No ' + name);\n }\n return defined[name];\n }\n\n //Turns a plugin!resource to [plugin, resource]\n //with the plugin being undefined if the name\n //did not have a plugin prefix.\n function splitPrefix(name) {\n var prefix,\n index = name ? name.indexOf('!') : -1;\n if (index > -1) {\n prefix = name.substring(0, index);\n name = name.substring(index + 1, name.length);\n }\n return [prefix, name];\n }\n\n //Creates a parts array for a relName where first part is plugin ID,\n //second part is resource ID. Assumes relName has already been normalized.\n function makeRelParts(relName) {\n return relName ? splitPrefix(relName) : [];\n }\n\n /**\n * Makes a name map, normalizing the name, and using a plugin\n * for normalization if necessary. Grabs a ref to plugin\n * too, as an optimization.\n */\n makeMap = function (name, relParts) {\n var plugin,\n parts = splitPrefix(name),\n prefix = parts[0],\n relResourceName = relParts[1];\n\n name = parts[1];\n\n if (prefix) {\n prefix = normalize(prefix, relResourceName);\n plugin = callDep(prefix);\n }\n\n //Normalize according\n if (prefix) {\n if (plugin && plugin.normalize) {\n name = plugin.normalize(name, makeNormalize(relResourceName));\n } else {\n name = normalize(name, relResourceName);\n }\n } else {\n name = normalize(name, relResourceName);\n parts = splitPrefix(name);\n prefix = parts[0];\n name = parts[1];\n if (prefix) {\n plugin = callDep(prefix);\n }\n }\n\n //Using ridiculous property names for space reasons\n return {\n f: prefix ? prefix + '!' + name : name, //fullName\n n: name,\n pr: prefix,\n p: plugin\n };\n };\n\n function makeConfig(name) {\n return function () {\n return (config && config.config && config.config[name]) || {};\n };\n }\n\n handlers = {\n require: function (name) {\n return makeRequire(name);\n },\n exports: function (name) {\n var e = defined[name];\n if (typeof e !== 'undefined') {\n return e;\n } else {\n return (defined[name] = {});\n }\n },\n module: function (name) {\n return {\n id: name,\n uri: '',\n exports: defined[name],\n config: makeConfig(name)\n };\n }\n };\n\n main = function (name, deps, callback, relName) {\n var cjsModule, depName, ret, map, i, relParts,\n args = [],\n callbackType = typeof callback,\n usingExports;\n\n //Use name if no relName\n relName = relName || name;\n relParts = makeRelParts(relName);\n\n //Call the callback to define the module, if necessary.\n if (callbackType === 'undefined' || callbackType === 'function') {\n //Pull out the defined dependencies and pass the ordered\n //values to the callback.\n //Default to [require, exports, module] if no deps\n deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps;\n for (i = 0; i < deps.length; i += 1) {\n map = makeMap(deps[i], relParts);\n depName = map.f;\n\n //Fast path CommonJS standard dependencies.\n if (depName === \"require\") {\n args[i] = handlers.require(name);\n } else if (depName === \"exports\") {\n //CommonJS module spec 1.1\n args[i] = handlers.exports(name);\n usingExports = true;\n } else if (depName === \"module\") {\n //CommonJS module spec 1.1\n cjsModule = args[i] = handlers.module(name);\n } else if (hasProp(defined, depName) ||\n hasProp(waiting, depName) ||\n hasProp(defining, depName)) {\n args[i] = callDep(depName);\n } else if (map.p) {\n map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {});\n args[i] = defined[depName];\n } else {\n throw new Error(name + ' missing ' + depName);\n }\n }\n\n ret = callback ? callback.apply(defined[name], args) : undefined;\n\n if (name) {\n //If setting exports via \"module\" is in play,\n //favor that over return value and exports. After that,\n //favor a non-undefined return value over exports use.\n if (cjsModule && cjsModule.exports !== undef &&\n cjsModule.exports !== defined[name]) {\n defined[name] = cjsModule.exports;\n } else if (ret !== undef || !usingExports) {\n //Use the return value from the function.\n defined[name] = ret;\n }\n }\n } else if (name) {\n //May just be an object definition for the module. Only\n //worry about defining if have a module name.\n defined[name] = callback;\n }\n };\n\n requirejs = require = req = function (deps, callback, relName, forceSync, alt) {\n if (typeof deps === \"string\") {\n if (handlers[deps]) {\n //callback in this case is really relName\n return handlers[deps](callback);\n }\n //Just return the module wanted. In this scenario, the\n //deps arg is the module name, and second arg (if passed)\n //is just the relName.\n //Normalize module name, if it contains . or ..\n return callDep(makeMap(deps, makeRelParts(callback)).f);\n } else if (!deps.splice) {\n //deps is a config object, not an array.\n config = deps;\n if (config.deps) {\n req(config.deps, config.callback);\n }\n if (!callback) {\n return;\n }\n\n if (callback.splice) {\n //callback is an array, which means it is a dependency list.\n //Adjust args if there are dependencies\n deps = callback;\n callback = relName;\n relName = null;\n } else {\n deps = undef;\n }\n }\n\n //Support require(['a'])\n callback = callback || function () {};\n\n //If relName is a function, it is an errback handler,\n //so remove it.\n if (typeof relName === 'function') {\n relName = forceSync;\n forceSync = alt;\n }\n\n //Simulate async callback;\n if (forceSync) {\n main(undef, deps, callback, relName);\n } else {\n //Using a non-zero value because of concern for what old browsers\n //do, and latest browsers \"upgrade\" to 4 if lower value is used:\n //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout:\n //If want a value immediately, use require('id') instead -- something\n //that works in almond on the global level, but not guaranteed and\n //unlikely to work in other AMD implementations.\n setTimeout(function () {\n main(undef, deps, callback, relName);\n }, 4);\n }\n\n return req;\n };\n\n /**\n * Just drops the config on the floor, but returns req in case\n * the config return value is used.\n */\n req.config = function (cfg) {\n return req(cfg);\n };\n\n /**\n * Expose module registry for debugging and tooling\n */\n requirejs._defined = defined;\n\n define = function (name, deps, callback) {\n if (typeof name !== 'string') {\n throw new Error('See almond README: incorrect module build, no module name');\n }\n\n //This module may not have dependencies\n if (!deps.splice) {\n //deps is not an array, so probably means\n //an object literal or factory function for\n //the value. Adjust args.\n callback = deps;\n deps = [];\n }\n\n if (!hasProp(defined, name) && !hasProp(waiting, name)) {\n waiting[name] = [name, deps, callback];\n }\n };\n\n define.amd = {\n jQuery: true\n };\n}());\n\nS2.requirejs = requirejs;S2.require = require;S2.define = define;\n}\n}());\nS2.define(\"almond\", function(){});\n\n/* global jQuery:false, $:false */\nS2.define('jquery',[],function () {\n var _$ = jQuery || $;\n\n if (_$ == null && console && console.error) {\n console.error(\n 'Select2: An instance of jQuery or a jQuery-compatible library was not ' +\n 'found. Make sure that you are including jQuery before Select2 on your ' +\n 'web page.'\n );\n }\n\n return _$;\n});\n\nS2.define('select2/utils',[\n 'jquery'\n], function ($) {\n var Utils = {};\n\n Utils.Extend = function (ChildClass, SuperClass) {\n var __hasProp = {}.hasOwnProperty;\n\n function BaseConstructor () {\n this.constructor = ChildClass;\n }\n\n for (var key in SuperClass) {\n if (__hasProp.call(SuperClass, key)) {\n ChildClass[key] = SuperClass[key];\n }\n }\n\n BaseConstructor.prototype = SuperClass.prototype;\n ChildClass.prototype = new BaseConstructor();\n ChildClass.__super__ = SuperClass.prototype;\n\n return ChildClass;\n };\n\n function getMethods (theClass) {\n var proto = theClass.prototype;\n\n var methods = [];\n\n for (var methodName in proto) {\n var m = proto[methodName];\n\n if (typeof m !== 'function') {\n continue;\n }\n\n if (methodName === 'constructor') {\n continue;\n }\n\n methods.push(methodName);\n }\n\n return methods;\n }\n\n Utils.Decorate = function (SuperClass, DecoratorClass) {\n var decoratedMethods = getMethods(DecoratorClass);\n var superMethods = getMethods(SuperClass);\n\n function DecoratedClass () {\n var unshift = Array.prototype.unshift;\n\n var argCount = DecoratorClass.prototype.constructor.length;\n\n var calledConstructor = SuperClass.prototype.constructor;\n\n if (argCount > 0) {\n unshift.call(arguments, SuperClass.prototype.constructor);\n\n calledConstructor = DecoratorClass.prototype.constructor;\n }\n\n calledConstructor.apply(this, arguments);\n }\n\n DecoratorClass.displayName = SuperClass.displayName;\n\n function ctr () {\n this.constructor = DecoratedClass;\n }\n\n DecoratedClass.prototype = new ctr();\n\n for (var m = 0; m < superMethods.length; m++) {\n var superMethod = superMethods[m];\n\n DecoratedClass.prototype[superMethod] =\n SuperClass.prototype[superMethod];\n }\n\n var calledMethod = function (methodName) {\n // Stub out the original method if it's not decorating an actual method\n var originalMethod = function () {};\n\n if (methodName in DecoratedClass.prototype) {\n originalMethod = DecoratedClass.prototype[methodName];\n }\n\n var decoratedMethod = DecoratorClass.prototype[methodName];\n\n return function () {\n var unshift = Array.prototype.unshift;\n\n unshift.call(arguments, originalMethod);\n\n return decoratedMethod.apply(this, arguments);\n };\n };\n\n for (var d = 0; d < decoratedMethods.length; d++) {\n var decoratedMethod = decoratedMethods[d];\n\n DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod);\n }\n\n return DecoratedClass;\n };\n\n var Observable = function () {\n this.listeners = {};\n };\n\n Observable.prototype.on = function (event, callback) {\n this.listeners = this.listeners || {};\n\n if (event in this.listeners) {\n this.listeners[event].push(callback);\n } else {\n this.listeners[event] = [callback];\n }\n };\n\n Observable.prototype.trigger = function (event) {\n var slice = Array.prototype.slice;\n var params = slice.call(arguments, 1);\n\n this.listeners = this.listeners || {};\n\n // Params should always come in as an array\n if (params == null) {\n params = [];\n }\n\n // If there are no arguments to the event, use a temporary object\n if (params.length === 0) {\n params.push({});\n }\n\n // Set the `_type` of the first object to the event\n params[0]._type = event;\n\n if (event in this.listeners) {\n this.invoke(this.listeners[event], slice.call(arguments, 1));\n }\n\n if ('*' in this.listeners) {\n this.invoke(this.listeners['*'], arguments);\n }\n };\n\n Observable.prototype.invoke = function (listeners, params) {\n for (var i = 0, len = listeners.length; i < len; i++) {\n listeners[i].apply(this, params);\n }\n };\n\n Utils.Observable = Observable;\n\n Utils.generateChars = function (length) {\n var chars = '';\n\n for (var i = 0; i < length; i++) {\n var randomChar = Math.floor(Math.random() * 36);\n chars += randomChar.toString(36);\n }\n\n return chars;\n };\n\n Utils.bind = function (func, context) {\n return function () {\n func.apply(context, arguments);\n };\n };\n\n Utils._convertData = function (data) {\n for (var originalKey in data) {\n var keys = originalKey.split('-');\n\n var dataLevel = data;\n\n if (keys.length === 1) {\n continue;\n }\n\n for (var k = 0; k < keys.length; k++) {\n var key = keys[k];\n\n // Lowercase the first letter\n // By default, dash-separated becomes camelCase\n key = key.substring(0, 1).toLowerCase() + key.substring(1);\n\n if (!(key in dataLevel)) {\n dataLevel[key] = {};\n }\n\n if (k == keys.length - 1) {\n dataLevel[key] = data[originalKey];\n }\n\n dataLevel = dataLevel[key];\n }\n\n delete data[originalKey];\n }\n\n return data;\n };\n\n Utils.hasScroll = function (index, el) {\n // Adapted from the function created by @ShadowScripter\n // and adapted by @BillBarry on the Stack Exchange Code Review website.\n // The original code can be found at\n // http://codereview.stackexchange.com/q/13338\n // and was designed to be used with the Sizzle selector engine.\n\n var $el = $(el);\n var overflowX = el.style.overflowX;\n var overflowY = el.style.overflowY;\n\n //Check both x and y declarations\n if (overflowX === overflowY &&\n (overflowY === 'hidden' || overflowY === 'visible')) {\n return false;\n }\n\n if (overflowX === 'scroll' || overflowY === 'scroll') {\n return true;\n }\n\n return ($el.innerHeight() < el.scrollHeight ||\n $el.innerWidth() < el.scrollWidth);\n };\n\n Utils.escapeMarkup = function (markup) {\n var replaceMap = {\n '\\\\': '\',\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n '\\'': ''',\n '/': '/'\n };\n\n // Do not try to escape the markup if it's not a string\n if (typeof markup !== 'string') {\n return markup;\n }\n\n return String(markup).replace(/[&<>\"'\\/\\\\]/g, function (match) {\n return replaceMap[match];\n });\n };\n\n // Cache objects in Utils.__cache instead of $.data (see #4346)\n Utils.__cache = {};\n\n var id = 0;\n Utils.GetUniqueElementId = function (element) {\n // Get a unique element Id. If element has no id,\n // creates a new unique number, stores it in the id\n // attribute and returns the new id with a prefix.\n // If an id already exists, it simply returns it with a prefix.\n\n var select2Id = element.getAttribute('data-select2-id');\n\n if (select2Id != null) {\n return select2Id;\n }\n\n // If element has id, use it.\n if (element.id) {\n select2Id = 'select2-data-' + element.id;\n } else {\n select2Id = 'select2-data-' + (++id).toString() +\n '-' + Utils.generateChars(4);\n }\n\n element.setAttribute('data-select2-id', select2Id);\n\n return select2Id;\n };\n\n Utils.StoreData = function (element, name, value) {\n // Stores an item in the cache for a specified element.\n // name is the cache key.\n var id = Utils.GetUniqueElementId(element);\n if (!Utils.__cache[id]) {\n Utils.__cache[id] = {};\n }\n\n Utils.__cache[id][name] = value;\n };\n\n Utils.GetData = function (element, name) {\n // Retrieves a value from the cache by its key (name)\n // name is optional. If no name specified, return\n // all cache items for the specified element.\n // and for a specified element.\n var id = Utils.GetUniqueElementId(element);\n if (name) {\n if (Utils.__cache[id]) {\n if (Utils.__cache[id][name] != null) {\n return Utils.__cache[id][name];\n }\n return $(element).data(name); // Fallback to HTML5 data attribs.\n }\n return $(element).data(name); // Fallback to HTML5 data attribs.\n } else {\n return Utils.__cache[id];\n }\n };\n\n Utils.RemoveData = function (element) {\n // Removes all cached items for a specified element.\n var id = Utils.GetUniqueElementId(element);\n if (Utils.__cache[id] != null) {\n delete Utils.__cache[id];\n }\n\n element.removeAttribute('data-select2-id');\n };\n\n Utils.copyNonInternalCssClasses = function (dest, src) {\n var classes;\n\n var destinationClasses = dest.getAttribute('class').trim().split(/\\s+/);\n\n destinationClasses = destinationClasses.filter(function (clazz) {\n // Save all Select2 classes\n return clazz.indexOf('select2-') === 0;\n });\n\n var sourceClasses = src.getAttribute('class').trim().split(/\\s+/);\n\n sourceClasses = sourceClasses.filter(function (clazz) {\n // Only copy non-Select2 classes\n return clazz.indexOf('select2-') !== 0;\n });\n\n var replacements = destinationClasses.concat(sourceClasses);\n\n dest.setAttribute('class', replacements.join(' '));\n };\n\n return Utils;\n});\n\nS2.define('select2/results',[\n 'jquery',\n './utils'\n], function ($, Utils) {\n function Results ($element, options, dataAdapter) {\n this.$element = $element;\n this.data = dataAdapter;\n this.options = options;\n\n Results.__super__.constructor.call(this);\n }\n\n Utils.Extend(Results, Utils.Observable);\n\n Results.prototype.render = function () {\n var $results = $(\n '<ul class=\"select2-results__options\" role=\"listbox\"></ul>'\n );\n\n if (this.options.get('multiple')) {\n $results.attr('aria-multiselectable', 'true');\n }\n\n this.$results = $results;\n\n return $results;\n };\n\n Results.prototype.clear = function () {\n this.$results.empty();\n };\n\n Results.prototype.displayMessage = function (params) {\n var escapeMarkup = this.options.get('escapeMarkup');\n\n this.clear();\n this.hideLoading();\n\n var $message = $(\n '<li role=\"alert\" aria-live=\"assertive\"' +\n ' class=\"select2-results__option\"></li>'\n );\n\n var message = this.options.get('translations').get(params.message);\n\n $message.append(\n escapeMarkup(\n message(params.args)\n )\n );\n\n $message[0].className += ' select2-results__message';\n\n this.$results.append($message);\n };\n\n Results.prototype.hideMessages = function () {\n this.$results.find('.select2-results__message').remove();\n };\n\n Results.prototype.append = function (data) {\n this.hideLoading();\n\n var $options = [];\n\n if (data.results == null || data.results.length === 0) {\n if (this.$results.children().length === 0) {\n this.trigger('results:message', {\n message: 'noResults'\n });\n }\n\n return;\n }\n\n data.results = this.sort(data.results);\n\n for (var d = 0; d < data.results.length; d++) {\n var item = data.results[d];\n\n var $option = this.option(item);\n\n $options.push($option);\n }\n\n this.$results.append($options);\n };\n\n Results.prototype.position = function ($results, $dropdown) {\n var $resultsContainer = $dropdown.find('.select2-results');\n $resultsContainer.append($results);\n };\n\n Results.prototype.sort = function (data) {\n var sorter = this.options.get('sorter');\n\n return sorter(data);\n };\n\n Results.prototype.highlightFirstItem = function () {\n var $options = this.$results\n .find('.select2-results__option--selectable');\n\n var $selected = $options.filter('.select2-results__option--selected');\n\n // Check if there are any selected options\n if ($selected.length > 0) {\n // If there are selected options, highlight the first\n $selected.first().trigger('mouseenter');\n } else {\n // If there are no selected options, highlight the first option\n // in the dropdown\n $options.first().trigger('mouseenter');\n }\n\n this.ensureHighlightVisible();\n };\n\n Results.prototype.setClasses = function () {\n var self = this;\n\n this.data.current(function (selected) {\n var selectedIds = selected.map(function (s) {\n return s.id.toString();\n });\n\n var $options = self.$results\n .find('.select2-results__option--selectable');\n\n $options.each(function () {\n var $option = $(this);\n\n var item = Utils.GetData(this, 'data');\n\n // id needs to be converted to a string when comparing\n var id = '' + item.id;\n\n if ((item.element != null && item.element.selected) ||\n (item.element == null && selectedIds.indexOf(id) > -1)) {\n this.classList.add('select2-results__option--selected');\n $option.attr('aria-selected', 'true');\n } else {\n this.classList.remove('select2-results__option--selected');\n $option.attr('aria-selected', 'false');\n }\n });\n\n });\n };\n\n Results.prototype.showLoading = function (params) {\n this.hideLoading();\n\n var loadingMore = this.options.get('translations').get('searching');\n\n var loading = {\n disabled: true,\n loading: true,\n text: loadingMore(params)\n };\n var $loading = this.option(loading);\n $loading.className += ' loading-results';\n\n this.$results.prepend($loading);\n };\n\n Results.prototype.hideLoading = function () {\n this.$results.find('.loading-results').remove();\n };\n\n Results.prototype.option = function (data) {\n var option = document.createElement('li');\n option.classList.add('select2-results__option');\n option.classList.add('select2-results__option--selectable');\n\n var attrs = {\n 'role': 'option'\n };\n\n var matches = window.Element.prototype.matches ||\n window.Element.prototype.msMatchesSelector ||\n window.Element.prototype.webkitMatchesSelector;\n\n if ((data.element != null && matches.call(data.element, ':disabled')) ||\n (data.element == null && data.disabled)) {\n attrs['aria-disabled'] = 'true';\n\n option.classList.remove('select2-results__option--selectable');\n option.classList.add('select2-results__option--disabled');\n }\n\n if (data.id == null) {\n option.classList.remove('select2-results__option--selectable');\n }\n\n if (data._resultId != null) {\n option.id = data._resultId;\n }\n\n if (data.title) {\n option.title = data.title;\n }\n\n if (data.children) {\n attrs.role = 'group';\n attrs['aria-label'] = data.text;\n\n option.classList.remove('select2-results__option--selectable');\n option.classList.add('select2-results__option--group');\n }\n\n for (var attr in attrs) {\n var val = attrs[attr];\n\n option.setAttribute(attr, val);\n }\n\n if (data.children) {\n var $option = $(option);\n\n var label = document.createElement('strong');\n label.className = 'select2-results__group';\n\n this.template(data, label);\n\n var $children = [];\n\n for (var c = 0; c < data.children.length; c++) {\n var child = data.children[c];\n\n var $child = this.option(child);\n\n $children.push($child);\n }\n\n var $childrenContainer = $('<ul></ul>', {\n 'class': 'select2-results__options select2-results__options--nested',\n 'role': 'none'\n });\n\n $childrenContainer.append($children);\n\n $option.append(label);\n $option.append($childrenContainer);\n } else {\n this.template(data, option);\n }\n\n Utils.StoreData(option, 'data', data);\n\n return option;\n };\n\n Results.prototype.bind = function (container, $container) {\n var self = this;\n\n var id = container.id + '-results';\n\n this.$results.attr('id', id);\n\n container.on('results:all', function (params) {\n self.clear();\n self.append(params.data);\n\n if (container.isOpen()) {\n self.setClasses();\n self.highlightFirstItem();\n }\n });\n\n container.on('results:append', function (params) {\n self.append(params.data);\n\n if (container.isOpen()) {\n self.setClasses();\n }\n });\n\n container.on('query', function (params) {\n self.hideMessages();\n self.showLoading(params);\n });\n\n container.on('select', function () {\n if (!container.isOpen()) {\n return;\n }\n\n self.setClasses();\n\n if (self.options.get('scrollAfterSelect')) {\n self.highlightFirstItem();\n }\n });\n\n container.on('unselect', function () {\n if (!container.isOpen()) {\n return;\n }\n\n self.setClasses();\n\n if (self.options.get('scrollAfterSelect')) {\n self.highlightFirstItem();\n }\n });\n\n container.on('open', function () {\n // When the dropdown is open, aria-expended=\"true\"\n self.$results.attr('aria-expanded', 'true');\n self.$results.attr('aria-hidden', 'false');\n\n self.setClasses();\n self.ensureHighlightVisible();\n });\n\n container.on('close', function () {\n // When the dropdown is closed, aria-expended=\"false\"\n self.$results.attr('aria-expanded', 'false');\n self.$results.attr('aria-hidden', 'true');\n self.$results.removeAttr('aria-activedescendant');\n });\n\n container.on('results:toggle', function () {\n var $highlighted = self.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n $highlighted.trigger('mouseup');\n });\n\n container.on('results:select', function () {\n var $highlighted = self.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n var data = Utils.GetData($highlighted[0], 'data');\n\n if ($highlighted.hasClass('select2-results__option--selected')) {\n self.trigger('close', {});\n } else {\n self.trigger('select', {\n data: data\n });\n }\n });\n\n container.on('results:previous', function () {\n var $highlighted = self.getHighlightedResults();\n\n var $options = self.$results.find('.select2-results__option--selectable');\n\n var currentIndex = $options.index($highlighted);\n\n // If we are already at the top, don't move further\n // If no options, currentIndex will be -1\n if (currentIndex <= 0) {\n return;\n }\n\n var nextIndex = currentIndex - 1;\n\n // If none are highlighted, highlight the first\n if ($highlighted.length === 0) {\n nextIndex = 0;\n }\n\n var $next = $options.eq(nextIndex);\n\n $next.trigger('mouseenter');\n\n var currentOffset = self.$results.offset().top;\n var nextTop = $next.offset().top;\n var nextOffset = self.$results.scrollTop() + (nextTop - currentOffset);\n\n if (nextIndex === 0) {\n self.$results.scrollTop(0);\n } else if (nextTop - currentOffset < 0) {\n self.$results.scrollTop(nextOffset);\n }\n });\n\n container.on('results:next', function () {\n var $highlighted = self.getHighlightedResults();\n\n var $options = self.$results.find('.select2-results__option--selectable');\n\n var currentIndex = $options.index($highlighted);\n\n var nextIndex = currentIndex + 1;\n\n // If we are at the last option, stay there\n if (nextIndex >= $options.length) {\n return;\n }\n\n var $next = $options.eq(nextIndex);\n\n $next.trigger('mouseenter');\n\n var currentOffset = self.$results.offset().top +\n self.$results.outerHeight(false);\n var nextBottom = $next.offset().top + $next.outerHeight(false);\n var nextOffset = self.$results.scrollTop() + nextBottom - currentOffset;\n\n if (nextIndex === 0) {\n self.$results.scrollTop(0);\n } else if (nextBottom > currentOffset) {\n self.$results.scrollTop(nextOffset);\n }\n });\n\n container.on('results:focus', function (params) {\n params.element[0].classList.add('select2-results__option--highlighted');\n params.element[0].setAttribute('aria-selected', 'true');\n });\n\n container.on('results:message', function (params) {\n self.displayMessage(params);\n });\n\n if ($.fn.mousewheel) {\n this.$results.on('mousewheel', function (e) {\n var top = self.$results.scrollTop();\n\n var bottom = self.$results.get(0).scrollHeight - top + e.deltaY;\n\n var isAtTop = e.deltaY > 0 && top - e.deltaY <= 0;\n var isAtBottom = e.deltaY < 0 && bottom <= self.$results.height();\n\n if (isAtTop) {\n self.$results.scrollTop(0);\n\n e.preventDefault();\n e.stopPropagation();\n } else if (isAtBottom) {\n self.$results.scrollTop(\n self.$results.get(0).scrollHeight - self.$results.height()\n );\n\n e.preventDefault();\n e.stopPropagation();\n }\n });\n }\n\n this.$results.on('mouseup', '.select2-results__option--selectable',\n function (evt) {\n var $this = $(this);\n\n var data = Utils.GetData(this, 'data');\n\n if ($this.hasClass('select2-results__option--selected')) {\n if (self.options.get('multiple')) {\n self.trigger('unselect', {\n originalEvent: evt,\n data: data\n });\n } else {\n self.trigger('close', {});\n }\n\n return;\n }\n\n self.trigger('select', {\n originalEvent: evt,\n data: data\n });\n });\n\n this.$results.on('mouseenter', '.select2-results__option--selectable',\n function (evt) {\n var data = Utils.GetData(this, 'data');\n\n self.getHighlightedResults()\n .removeClass('select2-results__option--highlighted')\n .attr('aria-selected', 'false');\n\n self.trigger('results:focus', {\n data: data,\n element: $(this)\n });\n });\n };\n\n Results.prototype.getHighlightedResults = function () {\n var $highlighted = this.$results\n .find('.select2-results__option--highlighted');\n\n return $highlighted;\n };\n\n Results.prototype.destroy = function () {\n this.$results.remove();\n };\n\n Results.prototype.ensureHighlightVisible = function () {\n var $highlighted = this.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n var $options = this.$results.find('.select2-results__option--selectable');\n\n var currentIndex = $options.index($highlighted);\n\n var currentOffset = this.$results.offset().top;\n var nextTop = $highlighted.offset().top;\n var nextOffset = this.$results.scrollTop() + (nextTop - currentOffset);\n\n var offsetDelta = nextTop - currentOffset;\n nextOffset -= $highlighted.outerHeight(false) * 2;\n\n if (currentIndex <= 2) {\n this.$results.scrollTop(0);\n } else if (offsetDelta > this.$results.outerHeight() || offsetDelta < 0) {\n this.$results.scrollTop(nextOffset);\n }\n };\n\n Results.prototype.template = function (result, container) {\n var template = this.options.get('templateResult');\n var escapeMarkup = this.options.get('escapeMarkup');\n\n var content = template(result, container);\n\n if (content == null) {\n container.style.display = 'none';\n } else if (typeof content === 'string') {\n container.innerHTML = escapeMarkup(content);\n } else {\n $(container).append(content);\n }\n };\n\n return Results;\n});\n\nS2.define('select2/keys',[\n\n], function () {\n var KEYS = {\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n SHIFT: 16,\n CTRL: 17,\n ALT: 18,\n ESC: 27,\n SPACE: 32,\n PAGE_UP: 33,\n PAGE_DOWN: 34,\n END: 35,\n HOME: 36,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46\n };\n\n return KEYS;\n});\n\nS2.define('select2/selection/base',[\n 'jquery',\n '../utils',\n '../keys'\n], function ($, Utils, KEYS) {\n function BaseSelection ($element, options) {\n this.$element = $element;\n this.options = options;\n\n BaseSelection.__super__.constructor.call(this);\n }\n\n Utils.Extend(BaseSelection, Utils.Observable);\n\n BaseSelection.prototype.render = function () {\n var $selection = $(\n '<span class=\"select2-selection\" role=\"combobox\" ' +\n ' aria-haspopup=\"true\" aria-expanded=\"false\">' +\n '</span>'\n );\n\n this._tabindex = 0;\n\n if (Utils.GetData(this.$element[0], 'old-tabindex') != null) {\n this._tabindex = Utils.GetData(this.$element[0], 'old-tabindex');\n } else if (this.$element.attr('tabindex') != null) {\n this._tabindex = this.$element.attr('tabindex');\n }\n\n $selection.attr('title', this.$element.attr('title'));\n $selection.attr('tabindex', this._tabindex);\n $selection.attr('aria-disabled', 'false');\n\n this.$selection = $selection;\n\n return $selection;\n };\n\n BaseSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n var resultsId = container.id + '-results';\n\n this.container = container;\n\n this.$selection.on('focus', function (evt) {\n self.trigger('focus', evt);\n });\n\n this.$selection.on('blur', function (evt) {\n self._handleBlur(evt);\n });\n\n this.$selection.on('keydown', function (evt) {\n self.trigger('keypress', evt);\n\n if (evt.which === KEYS.SPACE) {\n evt.preventDefault();\n }\n });\n\n container.on('results:focus', function (params) {\n self.$selection.attr('aria-activedescendant', params.data._resultId);\n });\n\n container.on('selection:update', function (params) {\n self.update(params.data);\n });\n\n container.on('open', function () {\n // When the dropdown is open, aria-expanded=\"true\"\n self.$selection.attr('aria-expanded', 'true');\n self.$selection.attr('aria-owns', resultsId);\n\n self._attachCloseHandler(container);\n });\n\n container.on('close', function () {\n // When the dropdown is closed, aria-expanded=\"false\"\n self.$selection.attr('aria-expanded', 'false');\n self.$selection.removeAttr('aria-activedescendant');\n self.$selection.removeAttr('aria-owns');\n\n self.$selection.trigger('focus');\n\n self._detachCloseHandler(container);\n });\n\n container.on('enable', function () {\n self.$selection.attr('tabindex', self._tabindex);\n self.$selection.attr('aria-disabled', 'false');\n });\n\n container.on('disable', function () {\n self.$selection.attr('tabindex', '-1');\n self.$selection.attr('aria-disabled', 'true');\n });\n };\n\n BaseSelection.prototype._handleBlur = function (evt) {\n var self = this;\n\n // This needs to be delayed as the active element is the body when the tab\n // key is pressed, possibly along with others.\n window.setTimeout(function () {\n // Don't trigger `blur` if the focus is still in the selection\n if (\n (document.activeElement == self.$selection[0]) ||\n ($.contains(self.$selection[0], document.activeElement))\n ) {\n return;\n }\n\n self.trigger('blur', evt);\n }, 1);\n };\n\n BaseSelection.prototype._attachCloseHandler = function (container) {\n\n $(document.body).on('mousedown.select2.' + container.id, function (e) {\n var $target = $(e.target);\n\n var $select = $target.closest('.select2');\n\n var $all = $('.select2.select2-container--open');\n\n $all.each(function () {\n if (this == $select[0]) {\n return;\n }\n\n var $element = Utils.GetData(this, 'element');\n\n $element.select2('close');\n });\n });\n };\n\n BaseSelection.prototype._detachCloseHandler = function (container) {\n $(document.body).off('mousedown.select2.' + container.id);\n };\n\n BaseSelection.prototype.position = function ($selection, $container) {\n var $selectionContainer = $container.find('.selection');\n $selectionContainer.append($selection);\n };\n\n BaseSelection.prototype.destroy = function () {\n this._detachCloseHandler(this.container);\n };\n\n BaseSelection.prototype.update = function (data) {\n throw new Error('The `update` method must be defined in child classes.');\n };\n\n /**\n * Helper method to abstract the \"enabled\" (not \"disabled\") state of this\n * object.\n *\n * @return {true} if the instance is not disabled.\n * @return {false} if the instance is disabled.\n */\n BaseSelection.prototype.isEnabled = function () {\n return !this.isDisabled();\n };\n\n /**\n * Helper method to abstract the \"disabled\" state of this object.\n *\n * @return {true} if the disabled option is true.\n * @return {false} if the disabled option is false.\n */\n BaseSelection.prototype.isDisabled = function () {\n return this.options.get('disabled');\n };\n\n return BaseSelection;\n});\n\nS2.define('select2/selection/single',[\n 'jquery',\n './base',\n '../utils',\n '../keys'\n], function ($, BaseSelection, Utils, KEYS) {\n function SingleSelection () {\n SingleSelection.__super__.constructor.apply(this, arguments);\n }\n\n Utils.Extend(SingleSelection, BaseSelection);\n\n SingleSelection.prototype.render = function () {\n var $selection = SingleSelection.__super__.render.call(this);\n\n $selection[0].classList.add('select2-selection--single');\n\n $selection.html(\n '<span class=\"select2-selection__rendered\"></span>' +\n '<span class=\"select2-selection__arrow\" role=\"presentation\">' +\n '<b role=\"presentation\"></b>' +\n '</span>'\n );\n\n return $selection;\n };\n\n SingleSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n SingleSelection.__super__.bind.apply(this, arguments);\n\n var id = container.id + '-container';\n\n this.$selection.find('.select2-selection__rendered')\n .attr('id', id)\n .attr('role', 'textbox')\n .attr('aria-readonly', 'true');\n this.$selection.attr('aria-labelledby', id);\n this.$selection.attr('aria-controls', id);\n\n this.$selection.on('mousedown', function (evt) {\n // Only respond to left clicks\n if (evt.which !== 1) {\n return;\n }\n\n self.trigger('toggle', {\n originalEvent: evt\n });\n });\n\n this.$selection.on('focus', function (evt) {\n // User focuses on the container\n });\n\n this.$selection.on('blur', function (evt) {\n // User exits the container\n });\n\n container.on('focus', function (evt) {\n if (!container.isOpen()) {\n self.$selection.trigger('focus');\n }\n });\n };\n\n SingleSelection.prototype.clear = function () {\n var $rendered = this.$selection.find('.select2-selection__rendered');\n $rendered.empty();\n $rendered.removeAttr('title'); // clear tooltip on empty\n };\n\n SingleSelection.prototype.display = function (data, container) {\n var template = this.options.get('templateSelection');\n var escapeMarkup = this.options.get('escapeMarkup');\n\n return escapeMarkup(template(data, container));\n };\n\n SingleSelection.prototype.selectionContainer = function () {\n return $('<span></span>');\n };\n\n SingleSelection.prototype.update = function (data) {\n if (data.length === 0) {\n this.clear();\n return;\n }\n\n var selection = data[0];\n\n var $rendered = this.$selection.find('.select2-selection__rendered');\n var formatted = this.display(selection, $rendered);\n\n $rendered.empty().append(formatted);\n\n var title = selection.title || selection.text;\n\n if (title) {\n $rendered.attr('title', title);\n } else {\n $rendered.removeAttr('title');\n }\n };\n\n return SingleSelection;\n});\n\nS2.define('select2/selection/multiple',[\n 'jquery',\n './base',\n '../utils'\n], function ($, BaseSelection, Utils) {\n function MultipleSelection ($element, options) {\n MultipleSelection.__super__.constructor.apply(this, arguments);\n }\n\n Utils.Extend(MultipleSelection, BaseSelection);\n\n MultipleSelection.prototype.render = function () {\n var $selection = MultipleSelection.__super__.render.call(this);\n\n $selection[0].classList.add('select2-selection--multiple');\n\n $selection.html(\n '<ul class=\"select2-selection__rendered\"></ul>'\n );\n\n return $selection;\n };\n\n MultipleSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n MultipleSelection.__super__.bind.apply(this, arguments);\n\n var id = container.id + '-container';\n this.$selection.find('.select2-selection__rendered').attr('id', id);\n\n this.$selection.on('click', function (evt) {\n self.trigger('toggle', {\n originalEvent: evt\n });\n });\n\n this.$selection.on(\n 'click',\n '.select2-selection__choice__remove',\n function (evt) {\n // Ignore the event if it is disabled\n if (self.isDisabled()) {\n return;\n }\n\n var $remove = $(this);\n var $selection = $remove.parent();\n\n var data = Utils.GetData($selection[0], 'data');\n\n self.trigger('unselect', {\n originalEvent: evt,\n data: data\n });\n }\n );\n\n this.$selection.on(\n 'keydown',\n '.select2-selection__choice__remove',\n function (evt) {\n // Ignore the event if it is disabled\n if (self.isDisabled()) {\n return;\n }\n\n evt.stopPropagation();\n }\n );\n };\n\n MultipleSelection.prototype.clear = function () {\n var $rendered = this.$selection.find('.select2-selection__rendered');\n $rendered.empty();\n $rendered.removeAttr('title');\n };\n\n MultipleSelection.prototype.display = function (data, container) {\n var template = this.options.get('templateSelection');\n var escapeMarkup = this.options.get('escapeMarkup');\n\n return escapeMarkup(template(data, container));\n };\n\n MultipleSelection.prototype.selectionContainer = function () {\n var $container = $(\n '<li class=\"select2-selection__choice\">' +\n '<button type=\"button\" class=\"select2-selection__choice__remove\" ' +\n 'tabindex=\"-1\">' +\n '<span aria-hidden=\"true\">×</span>' +\n '</button>' +\n '<span class=\"select2-selection__choice__display\"></span>' +\n '</li>'\n );\n\n return $container;\n };\n\n MultipleSelection.prototype.update = function (data) {\n this.clear();\n\n if (data.length === 0) {\n return;\n }\n\n var $selections = [];\n\n var selectionIdPrefix = this.$selection.find('.select2-selection__rendered')\n .attr('id') + '-choice-';\n\n for (var d = 0; d < data.length; d++) {\n var selection = data[d];\n\n var $selection = this.selectionContainer();\n var formatted = this.display(selection, $selection);\n\n var selectionId = selectionIdPrefix + Utils.generateChars(4) + '-';\n\n if (selection.id) {\n selectionId += selection.id;\n } else {\n selectionId += Utils.generateChars(4);\n }\n\n $selection.find('.select2-selection__choice__display')\n .append(formatted)\n .attr('id', selectionId);\n\n var title = selection.title || selection.text;\n\n if (title) {\n $selection.attr('title', title);\n }\n\n var removeItem = this.options.get('translations').get('removeItem');\n\n var $remove = $selection.find('.select2-selection__choice__remove');\n\n $remove.attr('title', removeItem());\n $remove.attr('aria-label', removeItem());\n $remove.attr('aria-describedby', selectionId);\n\n Utils.StoreData($selection[0], 'data', selection);\n\n $selections.push($selection);\n }\n\n var $rendered = this.$selection.find('.select2-selection__rendered');\n\n $rendered.append($selections);\n };\n\n return MultipleSelection;\n});\n\nS2.define('select2/selection/placeholder',[\n\n], function () {\n function Placeholder (decorated, $element, options) {\n this.placeholder = this.normalizePlaceholder(options.get('placeholder'));\n\n decorated.call(this, $element, options);\n }\n\n Placeholder.prototype.normalizePlaceholder = function (_, placeholder) {\n if (typeof placeholder === 'string') {\n placeholder = {\n id: '',\n text: placeholder\n };\n }\n\n return placeholder;\n };\n\n Placeholder.prototype.createPlaceholder = function (decorated, placeholder) {\n var $placeholder = this.selectionContainer();\n\n $placeholder.html(this.display(placeholder));\n $placeholder[0].classList.add('select2-selection__placeholder');\n $placeholder[0].classList.remove('select2-selection__choice');\n\n var placeholderTitle = placeholder.title ||\n placeholder.text ||\n $placeholder.text();\n\n this.$selection.find('.select2-selection__rendered').attr(\n 'title',\n placeholderTitle\n );\n\n return $placeholder;\n };\n\n Placeholder.prototype.update = function (decorated, data) {\n var singlePlaceholder = (\n data.length == 1 && data[0].id != this.placeholder.id\n );\n var multipleSelections = data.length > 1;\n\n if (multipleSelections || singlePlaceholder) {\n return decorated.call(this, data);\n }\n\n this.clear();\n\n var $placeholder = this.createPlaceholder(this.placeholder);\n\n this.$selection.find('.select2-selection__rendered').append($placeholder);\n };\n\n return Placeholder;\n});\n\nS2.define('select2/selection/allowClear',[\n 'jquery',\n '../keys',\n '../utils'\n], function ($, KEYS, Utils) {\n function AllowClear () { }\n\n AllowClear.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n if (this.placeholder == null) {\n if (this.options.get('debug') && window.console && console.error) {\n console.error(\n 'Select2: The `allowClear` option should be used in combination ' +\n 'with the `placeholder` option.'\n );\n }\n }\n\n this.$selection.on('mousedown', '.select2-selection__clear',\n function (evt) {\n self._handleClear(evt);\n });\n\n container.on('keypress', function (evt) {\n self._handleKeyboardClear(evt, container);\n });\n };\n\n AllowClear.prototype._handleClear = function (_, evt) {\n // Ignore the event if it is disabled\n if (this.isDisabled()) {\n return;\n }\n\n var $clear = this.$selection.find('.select2-selection__clear');\n\n // Ignore the event if nothing has been selected\n if ($clear.length === 0) {\n return;\n }\n\n evt.stopPropagation();\n\n var data = Utils.GetData($clear[0], 'data');\n\n var previousVal = this.$element.val();\n this.$element.val(this.placeholder.id);\n\n var unselectData = {\n data: data\n };\n this.trigger('clear', unselectData);\n if (unselectData.prevented) {\n this.$element.val(previousVal);\n return;\n }\n\n for (var d = 0; d < data.length; d++) {\n unselectData = {\n data: data[d]\n };\n\n // Trigger the `unselect` event, so people can prevent it from being\n // cleared.\n this.trigger('unselect', unselectData);\n\n // If the event was prevented, don't clear it out.\n if (unselectData.prevented) {\n this.$element.val(previousVal);\n return;\n }\n }\n\n this.$element.trigger('input').trigger('change');\n\n this.trigger('toggle', {});\n };\n\n AllowClear.prototype._handleKeyboardClear = function (_, evt, container) {\n if (container.isOpen()) {\n return;\n }\n\n if (evt.which == KEYS.DELETE || evt.which == KEYS.BACKSPACE) {\n this._handleClear(evt);\n }\n };\n\n AllowClear.prototype.update = function (decorated, data) {\n decorated.call(this, data);\n\n this.$selection.find('.select2-selection__clear').remove();\n this.$selection[0].classList.remove('select2-selection--clearable');\n\n if (this.$selection.find('.select2-selection__placeholder').length > 0 ||\n data.length === 0) {\n return;\n }\n\n var selectionId = this.$selection.find('.select2-selection__rendered')\n .attr('id');\n\n var removeAll = this.options.get('translations').get('removeAllItems');\n\n var $remove = $(\n '<button type=\"button\" class=\"select2-selection__clear\" tabindex=\"-1\">' +\n '<span aria-hidden=\"true\">×</span>' +\n '</button>'\n );\n $remove.attr('title', removeAll());\n $remove.attr('aria-label', removeAll());\n $remove.attr('aria-describedby', selectionId);\n Utils.StoreData($remove[0], 'data', data);\n\n this.$selection.prepend($remove);\n this.$selection[0].classList.add('select2-selection--clearable');\n };\n\n return AllowClear;\n});\n\nS2.define('select2/selection/search',[\n 'jquery',\n '../utils',\n '../keys'\n], function ($, Utils, KEYS) {\n function Search (decorated, $element, options) {\n decorated.call(this, $element, options);\n }\n\n Search.prototype.render = function (decorated) {\n var searchLabel = this.options.get('translations').get('search');\n var $search = $(\n '<span class=\"select2-search select2-search--inline\">' +\n '<textarea class=\"select2-search__field\"'+\n ' type=\"search\" tabindex=\"-1\"' +\n ' autocorrect=\"off\" autocapitalize=\"none\"' +\n ' spellcheck=\"false\" role=\"searchbox\" aria-autocomplete=\"list\" >' +\n '</textarea>' +\n '</span>'\n );\n\n this.$searchContainer = $search;\n this.$search = $search.find('textarea');\n\n this.$search.prop('autocomplete', this.options.get('autocomplete'));\n this.$search.attr('aria-label', searchLabel());\n\n var $rendered = decorated.call(this);\n\n this._transferTabIndex();\n $rendered.append(this.$searchContainer);\n\n return $rendered;\n };\n\n Search.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n var resultsId = container.id + '-results';\n var selectionId = container.id + '-container';\n\n decorated.call(this, container, $container);\n\n self.$search.attr('aria-describedby', selectionId);\n\n container.on('open', function () {\n self.$search.attr('aria-controls', resultsId);\n self.$search.trigger('focus');\n });\n\n container.on('close', function () {\n self.$search.val('');\n self.resizeSearch();\n self.$search.removeAttr('aria-controls');\n self.$search.removeAttr('aria-activedescendant');\n self.$search.trigger('focus');\n });\n\n container.on('enable', function () {\n self.$search.prop('disabled', false);\n\n self._transferTabIndex();\n });\n\n container.on('disable', function () {\n self.$search.prop('disabled', true);\n });\n\n container.on('focus', function (evt) {\n self.$search.trigger('focus');\n });\n\n container.on('results:focus', function (params) {\n if (params.data._resultId) {\n self.$search.attr('aria-activedescendant', params.data._resultId);\n } else {\n self.$search.removeAttr('aria-activedescendant');\n }\n });\n\n this.$selection.on('focusin', '.select2-search--inline', function (evt) {\n self.trigger('focus', evt);\n });\n\n this.$selection.on('focusout', '.select2-search--inline', function (evt) {\n self._handleBlur(evt);\n });\n\n this.$selection.on('keydown', '.select2-search--inline', function (evt) {\n evt.stopPropagation();\n\n self.trigger('keypress', evt);\n\n self._keyUpPrevented = evt.isDefaultPrevented();\n\n var key = evt.which;\n\n if (key === KEYS.BACKSPACE && self.$search.val() === '') {\n var $previousChoice = self.$selection\n .find('.select2-selection__choice').last();\n\n if ($previousChoice.length > 0) {\n var item = Utils.GetData($previousChoice[0], 'data');\n\n self.searchRemoveChoice(item);\n\n evt.preventDefault();\n }\n }\n });\n\n this.$selection.on('click', '.select2-search--inline', function (evt) {\n if (self.$search.val()) {\n evt.stopPropagation();\n }\n });\n\n // Try to detect the IE version should the `documentMode` property that\n // is stored on the document. This is only implemented in IE and is\n // slightly cleaner than doing a user agent check.\n // This property is not available in Edge, but Edge also doesn't have\n // this bug.\n var msie = document.documentMode;\n var disableInputEvents = msie && msie <= 11;\n\n // Workaround for browsers which do not support the `input` event\n // This will prevent double-triggering of events for browsers which support\n // both the `keyup` and `input` events.\n this.$selection.on(\n 'input.searchcheck',\n '.select2-search--inline',\n function (evt) {\n // IE will trigger the `input` event when a placeholder is used on a\n // search box. To get around this issue, we are forced to ignore all\n // `input` events in IE and keep using `keyup`.\n if (disableInputEvents) {\n self.$selection.off('input.search input.searchcheck');\n return;\n }\n\n // Unbind the duplicated `keyup` event\n self.$selection.off('keyup.search');\n }\n );\n\n this.$selection.on(\n 'keyup.search input.search',\n '.select2-search--inline',\n function (evt) {\n // IE will trigger the `input` event when a placeholder is used on a\n // search box. To get around this issue, we are forced to ignore all\n // `input` events in IE and keep using `keyup`.\n if (disableInputEvents && evt.type === 'input') {\n self.$selection.off('input.search input.searchcheck');\n return;\n }\n\n var key = evt.which;\n\n // We can freely ignore events from modifier keys\n if (key == KEYS.SHIFT || key == KEYS.CTRL || key == KEYS.ALT) {\n return;\n }\n\n // Tabbing will be handled during the `keydown` phase\n if (key == KEYS.TAB) {\n return;\n }\n\n self.handleSearch(evt);\n }\n );\n };\n\n /**\n * This method will transfer the tabindex attribute from the rendered\n * selection to the search box. This allows for the search box to be used as\n * the primary focus instead of the selection container.\n *\n * @private\n */\n Search.prototype._transferTabIndex = function (decorated) {\n this.$search.attr('tabindex', this.$selection.attr('tabindex'));\n this.$selection.attr('tabindex', '-1');\n };\n\n Search.prototype.createPlaceholder = function (decorated, placeholder) {\n this.$search.attr('placeholder', placeholder.text);\n };\n\n Search.prototype.update = function (decorated, data) {\n var searchHadFocus = this.$search[0] == document.activeElement;\n\n this.$search.attr('placeholder', '');\n\n decorated.call(this, data);\n\n this.resizeSearch();\n if (searchHadFocus) {\n this.$search.trigger('focus');\n }\n };\n\n Search.prototype.handleSearch = function () {\n this.resizeSearch();\n\n if (!this._keyUpPrevented) {\n var input = this.$search.val();\n\n this.trigger('query', {\n term: input\n });\n }\n\n this._keyUpPrevented = false;\n };\n\n Search.prototype.searchRemoveChoice = function (decorated, item) {\n this.trigger('unselect', {\n data: item\n });\n\n this.$search.val(item.text);\n this.handleSearch();\n };\n\n Search.prototype.resizeSearch = function () {\n this.$search.css('width', '25px');\n\n var width = '100%';\n\n if (this.$search.attr('placeholder') === '') {\n var minimumWidth = this.$search.val().length + 1;\n\n width = (minimumWidth * 0.75) + 'em';\n }\n\n this.$search.css('width', width);\n };\n\n return Search;\n});\n\nS2.define('select2/selection/selectionCss',[\n '../utils'\n], function (Utils) {\n function SelectionCSS () { }\n\n SelectionCSS.prototype.render = function (decorated) {\n var $selection = decorated.call(this);\n\n var selectionCssClass = this.options.get('selectionCssClass') || '';\n\n if (selectionCssClass.indexOf(':all:') !== -1) {\n selectionCssClass = selectionCssClass.replace(':all:', '');\n\n Utils.copyNonInternalCssClasses($selection[0], this.$element[0]);\n }\n\n $selection.addClass(selectionCssClass);\n\n return $selection;\n };\n\n return SelectionCSS;\n});\n\nS2.define('select2/selection/eventRelay',[\n 'jquery'\n], function ($) {\n function EventRelay () { }\n\n EventRelay.prototype.bind = function (decorated, container, $container) {\n var self = this;\n var relayEvents = [\n 'open', 'opening',\n 'close', 'closing',\n 'select', 'selecting',\n 'unselect', 'unselecting',\n 'clear', 'clearing'\n ];\n\n var preventableEvents = [\n 'opening', 'closing', 'selecting', 'unselecting', 'clearing'\n ];\n\n decorated.call(this, container, $container);\n\n container.on('*', function (name, params) {\n // Ignore events that should not be relayed\n if (relayEvents.indexOf(name) === -1) {\n return;\n }\n\n // The parameters should always be an object\n params = params || {};\n\n // Generate the jQuery event for the Select2 event\n var evt = $.Event('select2:' + name, {\n params: params\n });\n\n self.$element.trigger(evt);\n\n // Only handle preventable events if it was one\n if (preventableEvents.indexOf(name) === -1) {\n return;\n }\n\n params.prevented = evt.isDefaultPrevented();\n });\n };\n\n return EventRelay;\n});\n\nS2.define('select2/translation',[\n 'jquery',\n 'require'\n], function ($, require) {\n function Translation (dict) {\n this.dict = dict || {};\n }\n\n Translation.prototype.all = function () {\n return this.dict;\n };\n\n Translation.prototype.get = function (key) {\n return this.dict[key];\n };\n\n Translation.prototype.extend = function (translation) {\n this.dict = $.extend({}, translation.all(), this.dict);\n };\n\n // Static functions\n\n Translation._cache = {};\n\n Translation.loadPath = function (path) {\n if (!(path in Translation._cache)) {\n var translations = require(path);\n\n Translation._cache[path] = translations;\n }\n\n return new Translation(Translation._cache[path]);\n };\n\n return Translation;\n});\n\nS2.define('select2/diacritics',[\n\n], function () {\n var diacritics = {\n '\\u24B6': 'A',\n '\\uFF21': 'A',\n '\\u00C0': 'A',\n '\\u00C1': 'A',\n '\\u00C2': 'A',\n '\\u1EA6': 'A',\n '\\u1EA4': 'A',\n '\\u1EAA': 'A',\n '\\u1EA8': 'A',\n '\\u00C3': 'A',\n '\\u0100': 'A',\n '\\u0102': 'A',\n '\\u1EB0': 'A',\n '\\u1EAE': 'A',\n '\\u1EB4': 'A',\n '\\u1EB2': 'A',\n '\\u0226': 'A',\n '\\u01E0': 'A',\n '\\u00C4': 'A',\n '\\u01DE': 'A',\n '\\u1EA2': 'A',\n '\\u00C5': 'A',\n '\\u01FA': 'A',\n '\\u01CD': 'A',\n '\\u0200': 'A',\n '\\u0202': 'A',\n '\\u1EA0': 'A',\n '\\u1EAC': 'A',\n '\\u1EB6': 'A',\n '\\u1E00': 'A',\n '\\u0104': 'A',\n '\\u023A': 'A',\n '\\u2C6F': 'A',\n '\\uA732': 'AA',\n '\\u00C6': 'AE',\n '\\u01FC': 'AE',\n '\\u01E2': 'AE',\n '\\uA734': 'AO',\n '\\uA736': 'AU',\n '\\uA738': 'AV',\n '\\uA73A': 'AV',\n '\\uA73C': 'AY',\n '\\u24B7': 'B',\n '\\uFF22': 'B',\n '\\u1E02': 'B',\n '\\u1E04': 'B',\n '\\u1E06': 'B',\n '\\u0243': 'B',\n '\\u0182': 'B',\n '\\u0181': 'B',\n '\\u24B8': 'C',\n '\\uFF23': 'C',\n '\\u0106': 'C',\n '\\u0108': 'C',\n '\\u010A': 'C',\n '\\u010C': 'C',\n '\\u00C7': 'C',\n '\\u1E08': 'C',\n '\\u0187': 'C',\n '\\u023B': 'C',\n '\\uA73E': 'C',\n '\\u24B9': 'D',\n '\\uFF24': 'D',\n '\\u1E0A': 'D',\n '\\u010E': 'D',\n '\\u1E0C': 'D',\n '\\u1E10': 'D',\n '\\u1E12': 'D',\n '\\u1E0E': 'D',\n '\\u0110': 'D',\n '\\u018B': 'D',\n '\\u018A': 'D',\n '\\u0189': 'D',\n '\\uA779': 'D',\n '\\u01F1': 'DZ',\n '\\u01C4': 'DZ',\n '\\u01F2': 'Dz',\n '\\u01C5': 'Dz',\n '\\u24BA': 'E',\n '\\uFF25': 'E',\n '\\u00C8': 'E',\n '\\u00C9': 'E',\n '\\u00CA': 'E',\n '\\u1EC0': 'E',\n '\\u1EBE': 'E',\n '\\u1EC4': 'E',\n '\\u1EC2': 'E',\n '\\u1EBC': 'E',\n '\\u0112': 'E',\n '\\u1E14': 'E',\n '\\u1E16': 'E',\n '\\u0114': 'E',\n '\\u0116': 'E',\n '\\u00CB': 'E',\n '\\u1EBA': 'E',\n '\\u011A': 'E',\n '\\u0204': 'E',\n '\\u0206': 'E',\n '\\u1EB8': 'E',\n '\\u1EC6': 'E',\n '\\u0228': 'E',\n '\\u1E1C': 'E',\n '\\u0118': 'E',\n '\\u1E18': 'E',\n '\\u1E1A': 'E',\n '\\u0190': 'E',\n '\\u018E': 'E',\n '\\u24BB': 'F',\n '\\uFF26': 'F',\n '\\u1E1E': 'F',\n '\\u0191': 'F',\n '\\uA77B': 'F',\n '\\u24BC': 'G',\n '\\uFF27': 'G',\n '\\u01F4': 'G',\n '\\u011C': 'G',\n '\\u1E20': 'G',\n '\\u011E': 'G',\n '\\u0120': 'G',\n '\\u01E6': 'G',\n '\\u0122': 'G',\n '\\u01E4': 'G',\n '\\u0193': 'G',\n '\\uA7A0': 'G',\n '\\uA77D': 'G',\n '\\uA77E': 'G',\n '\\u24BD': 'H',\n '\\uFF28': 'H',\n '\\u0124': 'H',\n '\\u1E22': 'H',\n '\\u1E26': 'H',\n '\\u021E': 'H',\n '\\u1E24': 'H',\n '\\u1E28': 'H',\n '\\u1E2A': 'H',\n '\\u0126': 'H',\n '\\u2C67': 'H',\n '\\u2C75': 'H',\n '\\uA78D': 'H',\n '\\u24BE': 'I',\n '\\uFF29': 'I',\n '\\u00CC': 'I',\n '\\u00CD': 'I',\n '\\u00CE': 'I',\n '\\u0128': 'I',\n '\\u012A': 'I',\n '\\u012C': 'I',\n '\\u0130': 'I',\n '\\u00CF': 'I',\n '\\u1E2E': 'I',\n '\\u1EC8': 'I',\n '\\u01CF': 'I',\n '\\u0208': 'I',\n '\\u020A': 'I',\n '\\u1ECA': 'I',\n '\\u012E': 'I',\n '\\u1E2C': 'I',\n '\\u0197': 'I',\n '\\u24BF': 'J',\n '\\uFF2A': 'J',\n '\\u0134': 'J',\n '\\u0248': 'J',\n '\\u24C0': 'K',\n '\\uFF2B': 'K',\n '\\u1E30': 'K',\n '\\u01E8': 'K',\n '\\u1E32': 'K',\n '\\u0136': 'K',\n '\\u1E34': 'K',\n '\\u0198': 'K',\n '\\u2C69': 'K',\n '\\uA740': 'K',\n '\\uA742': 'K',\n '\\uA744': 'K',\n '\\uA7A2': 'K',\n '\\u24C1': 'L',\n '\\uFF2C': 'L',\n '\\u013F': 'L',\n '\\u0139': 'L',\n '\\u013D': 'L',\n '\\u1E36': 'L',\n '\\u1E38': 'L',\n '\\u013B': 'L',\n '\\u1E3C': 'L',\n '\\u1E3A': 'L',\n '\\u0141': 'L',\n '\\u023D': 'L',\n '\\u2C62': 'L',\n '\\u2C60': 'L',\n '\\uA748': 'L',\n '\\uA746': 'L',\n '\\uA780': 'L',\n '\\u01C7': 'LJ',\n '\\u01C8': 'Lj',\n '\\u24C2': 'M',\n '\\uFF2D': 'M',\n '\\u1E3E': 'M',\n '\\u1E40': 'M',\n '\\u1E42': 'M',\n '\\u2C6E': 'M',\n '\\u019C': 'M',\n '\\u24C3': 'N',\n '\\uFF2E': 'N',\n '\\u01F8': 'N',\n '\\u0143': 'N',\n '\\u00D1': 'N',\n '\\u1E44': 'N',\n '\\u0147': 'N',\n '\\u1E46': 'N',\n '\\u0145': 'N',\n '\\u1E4A': 'N',\n '\\u1E48': 'N',\n '\\u0220': 'N',\n '\\u019D': 'N',\n '\\uA790': 'N',\n '\\uA7A4': 'N',\n '\\u01CA': 'NJ',\n '\\u01CB': 'Nj',\n '\\u24C4': 'O',\n '\\uFF2F': 'O',\n '\\u00D2': 'O',\n '\\u00D3': 'O',\n '\\u00D4': 'O',\n '\\u1ED2': 'O',\n '\\u1ED0': 'O',\n '\\u1ED6': 'O',\n '\\u1ED4': 'O',\n '\\u00D5': 'O',\n '\\u1E4C': 'O',\n '\\u022C': 'O',\n '\\u1E4E': 'O',\n '\\u014C': 'O',\n '\\u1E50': 'O',\n '\\u1E52': 'O',\n '\\u014E': 'O',\n '\\u022E': 'O',\n '\\u0230': 'O',\n '\\u00D6': 'O',\n '\\u022A': 'O',\n '\\u1ECE': 'O',\n '\\u0150': 'O',\n '\\u01D1': 'O',\n '\\u020C': 'O',\n '\\u020E': 'O',\n '\\u01A0': 'O',\n '\\u1EDC': 'O',\n '\\u1EDA': 'O',\n '\\u1EE0': 'O',\n '\\u1EDE': 'O',\n '\\u1EE2': 'O',\n '\\u1ECC': 'O',\n '\\u1ED8': 'O',\n '\\u01EA': 'O',\n '\\u01EC': 'O',\n '\\u00D8': 'O',\n '\\u01FE': 'O',\n '\\u0186': 'O',\n '\\u019F': 'O',\n '\\uA74A': 'O',\n '\\uA74C': 'O',\n '\\u0152': 'OE',\n '\\u01A2': 'OI',\n '\\uA74E': 'OO',\n '\\u0222': 'OU',\n '\\u24C5': 'P',\n '\\uFF30': 'P',\n '\\u1E54': 'P',\n '\\u1E56': 'P',\n '\\u01A4': 'P',\n '\\u2C63': 'P',\n '\\uA750': 'P',\n '\\uA752': 'P',\n '\\uA754': 'P',\n '\\u24C6': 'Q',\n '\\uFF31': 'Q',\n '\\uA756': 'Q',\n '\\uA758': 'Q',\n '\\u024A': 'Q',\n '\\u24C7': 'R',\n '\\uFF32': 'R',\n '\\u0154': 'R',\n '\\u1E58': 'R',\n '\\u0158': 'R',\n '\\u0210': 'R',\n '\\u0212': 'R',\n '\\u1E5A': 'R',\n '\\u1E5C': 'R',\n '\\u0156': 'R',\n '\\u1E5E': 'R',\n '\\u024C': 'R',\n '\\u2C64': 'R',\n '\\uA75A': 'R',\n '\\uA7A6': 'R',\n '\\uA782': 'R',\n '\\u24C8': 'S',\n '\\uFF33': 'S',\n '\\u1E9E': 'S',\n '\\u015A': 'S',\n '\\u1E64': 'S',\n '\\u015C': 'S',\n '\\u1E60': 'S',\n '\\u0160': 'S',\n '\\u1E66': 'S',\n '\\u1E62': 'S',\n '\\u1E68': 'S',\n '\\u0218': 'S',\n '\\u015E': 'S',\n '\\u2C7E': 'S',\n '\\uA7A8': 'S',\n '\\uA784': 'S',\n '\\u24C9': 'T',\n '\\uFF34': 'T',\n '\\u1E6A': 'T',\n '\\u0164': 'T',\n '\\u1E6C': 'T',\n '\\u021A': 'T',\n '\\u0162': 'T',\n '\\u1E70': 'T',\n '\\u1E6E': 'T',\n '\\u0166': 'T',\n '\\u01AC': 'T',\n '\\u01AE': 'T',\n '\\u023E': 'T',\n '\\uA786': 'T',\n '\\uA728': 'TZ',\n '\\u24CA': 'U',\n '\\uFF35': 'U',\n '\\u00D9': 'U',\n '\\u00DA': 'U',\n '\\u00DB': 'U',\n '\\u0168': 'U',\n '\\u1E78': 'U',\n '\\u016A': 'U',\n '\\u1E7A': 'U',\n '\\u016C': 'U',\n '\\u00DC': 'U',\n '\\u01DB': 'U',\n '\\u01D7': 'U',\n '\\u01D5': 'U',\n '\\u01D9': 'U',\n '\\u1EE6': 'U',\n '\\u016E': 'U',\n '\\u0170': 'U',\n '\\u01D3': 'U',\n '\\u0214': 'U',\n '\\u0216': 'U',\n '\\u01AF': 'U',\n '\\u1EEA': 'U',\n '\\u1EE8': 'U',\n '\\u1EEE': 'U',\n '\\u1EEC': 'U',\n '\\u1EF0': 'U',\n '\\u1EE4': 'U',\n '\\u1E72': 'U',\n '\\u0172': 'U',\n '\\u1E76': 'U',\n '\\u1E74': 'U',\n '\\u0244': 'U',\n '\\u24CB': 'V',\n '\\uFF36': 'V',\n '\\u1E7C': 'V',\n '\\u1E7E': 'V',\n '\\u01B2': 'V',\n '\\uA75E': 'V',\n '\\u0245': 'V',\n '\\uA760': 'VY',\n '\\u24CC': 'W',\n '\\uFF37': 'W',\n '\\u1E80': 'W',\n '\\u1E82': 'W',\n '\\u0174': 'W',\n '\\u1E86': 'W',\n '\\u1E84': 'W',\n '\\u1E88': 'W',\n '\\u2C72': 'W',\n '\\u24CD': 'X',\n '\\uFF38': 'X',\n '\\u1E8A': 'X',\n '\\u1E8C': 'X',\n '\\u24CE': 'Y',\n '\\uFF39': 'Y',\n '\\u1EF2': 'Y',\n '\\u00DD': 'Y',\n '\\u0176': 'Y',\n '\\u1EF8': 'Y',\n '\\u0232': 'Y',\n '\\u1E8E': 'Y',\n '\\u0178': 'Y',\n '\\u1EF6': 'Y',\n '\\u1EF4': 'Y',\n '\\u01B3': 'Y',\n '\\u024E': 'Y',\n '\\u1EFE': 'Y',\n '\\u24CF': 'Z',\n '\\uFF3A': 'Z',\n '\\u0179': 'Z',\n '\\u1E90': 'Z',\n '\\u017B': 'Z',\n '\\u017D': 'Z',\n '\\u1E92': 'Z',\n '\\u1E94': 'Z',\n '\\u01B5': 'Z',\n '\\u0224': 'Z',\n '\\u2C7F': 'Z',\n '\\u2C6B': 'Z',\n '\\uA762': 'Z',\n '\\u24D0': 'a',\n '\\uFF41': 'a',\n '\\u1E9A': 'a',\n '\\u00E0': 'a',\n '\\u00E1': 'a',\n '\\u00E2': 'a',\n '\\u1EA7': 'a',\n '\\u1EA5': 'a',\n '\\u1EAB': 'a',\n '\\u1EA9': 'a',\n '\\u00E3': 'a',\n '\\u0101': 'a',\n '\\u0103': 'a',\n '\\u1EB1': 'a',\n '\\u1EAF': 'a',\n '\\u1EB5': 'a',\n '\\u1EB3': 'a',\n '\\u0227': 'a',\n '\\u01E1': 'a',\n '\\u00E4': 'a',\n '\\u01DF': 'a',\n '\\u1EA3': 'a',\n '\\u00E5': 'a',\n '\\u01FB': 'a',\n '\\u01CE': 'a',\n '\\u0201': 'a',\n '\\u0203': 'a',\n '\\u1EA1': 'a',\n '\\u1EAD': 'a',\n '\\u1EB7': 'a',\n '\\u1E01': 'a',\n '\\u0105': 'a',\n '\\u2C65': 'a',\n '\\u0250': 'a',\n '\\uA733': 'aa',\n '\\u00E6': 'ae',\n '\\u01FD': 'ae',\n '\\u01E3': 'ae',\n '\\uA735': 'ao',\n '\\uA737': 'au',\n '\\uA739': 'av',\n '\\uA73B': 'av',\n '\\uA73D': 'ay',\n '\\u24D1': 'b',\n '\\uFF42': 'b',\n '\\u1E03': 'b',\n '\\u1E05': 'b',\n '\\u1E07': 'b',\n '\\u0180': 'b',\n '\\u0183': 'b',\n '\\u0253': 'b',\n '\\u24D2': 'c',\n '\\uFF43': 'c',\n '\\u0107': 'c',\n '\\u0109': 'c',\n '\\u010B': 'c',\n '\\u010D': 'c',\n '\\u00E7': 'c',\n '\\u1E09': 'c',\n '\\u0188': 'c',\n '\\u023C': 'c',\n '\\uA73F': 'c',\n '\\u2184': 'c',\n '\\u24D3': 'd',\n '\\uFF44': 'd',\n '\\u1E0B': 'd',\n '\\u010F': 'd',\n '\\u1E0D': 'd',\n '\\u1E11': 'd',\n '\\u1E13': 'd',\n '\\u1E0F': 'd',\n '\\u0111': 'd',\n '\\u018C': 'd',\n '\\u0256': 'd',\n '\\u0257': 'd',\n '\\uA77A': 'd',\n '\\u01F3': 'dz',\n '\\u01C6': 'dz',\n '\\u24D4': 'e',\n '\\uFF45': 'e',\n '\\u00E8': 'e',\n '\\u00E9': 'e',\n '\\u00EA': 'e',\n '\\u1EC1': 'e',\n '\\u1EBF': 'e',\n '\\u1EC5': 'e',\n '\\u1EC3': 'e',\n '\\u1EBD': 'e',\n '\\u0113': 'e',\n '\\u1E15': 'e',\n '\\u1E17': 'e',\n '\\u0115': 'e',\n '\\u0117': 'e',\n '\\u00EB': 'e',\n '\\u1EBB': 'e',\n '\\u011B': 'e',\n '\\u0205': 'e',\n '\\u0207': 'e',\n '\\u1EB9': 'e',\n '\\u1EC7': 'e',\n '\\u0229': 'e',\n '\\u1E1D': 'e',\n '\\u0119': 'e',\n '\\u1E19': 'e',\n '\\u1E1B': 'e',\n '\\u0247': 'e',\n '\\u025B': 'e',\n '\\u01DD': 'e',\n '\\u24D5': 'f',\n '\\uFF46': 'f',\n '\\u1E1F': 'f',\n '\\u0192': 'f',\n '\\uA77C': 'f',\n '\\u24D6': 'g',\n '\\uFF47': 'g',\n '\\u01F5': 'g',\n '\\u011D': 'g',\n '\\u1E21': 'g',\n '\\u011F': 'g',\n '\\u0121': 'g',\n '\\u01E7': 'g',\n '\\u0123': 'g',\n '\\u01E5': 'g',\n '\\u0260': 'g',\n '\\uA7A1': 'g',\n '\\u1D79': 'g',\n '\\uA77F': 'g',\n '\\u24D7': 'h',\n '\\uFF48': 'h',\n '\\u0125': 'h',\n '\\u1E23': 'h',\n '\\u1E27': 'h',\n '\\u021F': 'h',\n '\\u1E25': 'h',\n '\\u1E29': 'h',\n '\\u1E2B': 'h',\n '\\u1E96': 'h',\n '\\u0127': 'h',\n '\\u2C68': 'h',\n '\\u2C76': 'h',\n '\\u0265': 'h',\n '\\u0195': 'hv',\n '\\u24D8': 'i',\n '\\uFF49': 'i',\n '\\u00EC': 'i',\n '\\u00ED': 'i',\n '\\u00EE': 'i',\n '\\u0129': 'i',\n '\\u012B': 'i',\n '\\u012D': 'i',\n '\\u00EF': 'i',\n '\\u1E2F': 'i',\n '\\u1EC9': 'i',\n '\\u01D0': 'i',\n '\\u0209': 'i',\n '\\u020B': 'i',\n '\\u1ECB': 'i',\n '\\u012F': 'i',\n '\\u1E2D': 'i',\n '\\u0268': 'i',\n '\\u0131': 'i',\n '\\u24D9': 'j',\n '\\uFF4A': 'j',\n '\\u0135': 'j',\n '\\u01F0': 'j',\n '\\u0249': 'j',\n '\\u24DA': 'k',\n '\\uFF4B': 'k',\n '\\u1E31': 'k',\n '\\u01E9': 'k',\n '\\u1E33': 'k',\n '\\u0137': 'k',\n '\\u1E35': 'k',\n '\\u0199': 'k',\n '\\u2C6A': 'k',\n '\\uA741': 'k',\n '\\uA743': 'k',\n '\\uA745': 'k',\n '\\uA7A3': 'k',\n '\\u24DB': 'l',\n '\\uFF4C': 'l',\n '\\u0140': 'l',\n '\\u013A': 'l',\n '\\u013E': 'l',\n '\\u1E37': 'l',\n '\\u1E39': 'l',\n '\\u013C': 'l',\n '\\u1E3D': 'l',\n '\\u1E3B': 'l',\n '\\u017F': 'l',\n '\\u0142': 'l',\n '\\u019A': 'l',\n '\\u026B': 'l',\n '\\u2C61': 'l',\n '\\uA749': 'l',\n '\\uA781': 'l',\n '\\uA747': 'l',\n '\\u01C9': 'lj',\n '\\u24DC': 'm',\n '\\uFF4D': 'm',\n '\\u1E3F': 'm',\n '\\u1E41': 'm',\n '\\u1E43': 'm',\n '\\u0271': 'm',\n '\\u026F': 'm',\n '\\u24DD': 'n',\n '\\uFF4E': 'n',\n '\\u01F9': 'n',\n '\\u0144': 'n',\n '\\u00F1': 'n',\n '\\u1E45': 'n',\n '\\u0148': 'n',\n '\\u1E47': 'n',\n '\\u0146': 'n',\n '\\u1E4B': 'n',\n '\\u1E49': 'n',\n '\\u019E': 'n',\n '\\u0272': 'n',\n '\\u0149': 'n',\n '\\uA791': 'n',\n '\\uA7A5': 'n',\n '\\u01CC': 'nj',\n '\\u24DE': 'o',\n '\\uFF4F': 'o',\n '\\u00F2': 'o',\n '\\u00F3': 'o',\n '\\u00F4': 'o',\n '\\u1ED3': 'o',\n '\\u1ED1': 'o',\n '\\u1ED7': 'o',\n '\\u1ED5': 'o',\n '\\u00F5': 'o',\n '\\u1E4D': 'o',\n '\\u022D': 'o',\n '\\u1E4F': 'o',\n '\\u014D': 'o',\n '\\u1E51': 'o',\n '\\u1E53': 'o',\n '\\u014F': 'o',\n '\\u022F': 'o',\n '\\u0231': 'o',\n '\\u00F6': 'o',\n '\\u022B': 'o',\n '\\u1ECF': 'o',\n '\\u0151': 'o',\n '\\u01D2': 'o',\n '\\u020D': 'o',\n '\\u020F': 'o',\n '\\u01A1': 'o',\n '\\u1EDD': 'o',\n '\\u1EDB': 'o',\n '\\u1EE1': 'o',\n '\\u1EDF': 'o',\n '\\u1EE3': 'o',\n '\\u1ECD': 'o',\n '\\u1ED9': 'o',\n '\\u01EB': 'o',\n '\\u01ED': 'o',\n '\\u00F8': 'o',\n '\\u01FF': 'o',\n '\\u0254': 'o',\n '\\uA74B': 'o',\n '\\uA74D': 'o',\n '\\u0275': 'o',\n '\\u0153': 'oe',\n '\\u01A3': 'oi',\n '\\u0223': 'ou',\n '\\uA74F': 'oo',\n '\\u24DF': 'p',\n '\\uFF50': 'p',\n '\\u1E55': 'p',\n '\\u1E57': 'p',\n '\\u01A5': 'p',\n '\\u1D7D': 'p',\n '\\uA751': 'p',\n '\\uA753': 'p',\n '\\uA755': 'p',\n '\\u24E0': 'q',\n '\\uFF51': 'q',\n '\\u024B': 'q',\n '\\uA757': 'q',\n '\\uA759': 'q',\n '\\u24E1': 'r',\n '\\uFF52': 'r',\n '\\u0155': 'r',\n '\\u1E59': 'r',\n '\\u0159': 'r',\n '\\u0211': 'r',\n '\\u0213': 'r',\n '\\u1E5B': 'r',\n '\\u1E5D': 'r',\n '\\u0157': 'r',\n '\\u1E5F': 'r',\n '\\u024D': 'r',\n '\\u027D': 'r',\n '\\uA75B': 'r',\n '\\uA7A7': 'r',\n '\\uA783': 'r',\n '\\u24E2': 's',\n '\\uFF53': 's',\n '\\u00DF': 's',\n '\\u015B': 's',\n '\\u1E65': 's',\n '\\u015D': 's',\n '\\u1E61': 's',\n '\\u0161': 's',\n '\\u1E67': 's',\n '\\u1E63': 's',\n '\\u1E69': 's',\n '\\u0219': 's',\n '\\u015F': 's',\n '\\u023F': 's',\n '\\uA7A9': 's',\n '\\uA785': 's',\n '\\u1E9B': 's',\n '\\u24E3': 't',\n '\\uFF54': 't',\n '\\u1E6B': 't',\n '\\u1E97': 't',\n '\\u0165': 't',\n '\\u1E6D': 't',\n '\\u021B': 't',\n '\\u0163': 't',\n '\\u1E71': 't',\n '\\u1E6F': 't',\n '\\u0167': 't',\n '\\u01AD': 't',\n '\\u0288': 't',\n '\\u2C66': 't',\n '\\uA787': 't',\n '\\uA729': 'tz',\n '\\u24E4': 'u',\n '\\uFF55': 'u',\n '\\u00F9': 'u',\n '\\u00FA': 'u',\n '\\u00FB': 'u',\n '\\u0169': 'u',\n '\\u1E79': 'u',\n '\\u016B': 'u',\n '\\u1E7B': 'u',\n '\\u016D': 'u',\n '\\u00FC': 'u',\n '\\u01DC': 'u',\n '\\u01D8': 'u',\n '\\u01D6': 'u',\n '\\u01DA': 'u',\n '\\u1EE7': 'u',\n '\\u016F': 'u',\n '\\u0171': 'u',\n '\\u01D4': 'u',\n '\\u0215': 'u',\n '\\u0217': 'u',\n '\\u01B0': 'u',\n '\\u1EEB': 'u',\n '\\u1EE9': 'u',\n '\\u1EEF': 'u',\n '\\u1EED': 'u',\n '\\u1EF1': 'u',\n '\\u1EE5': 'u',\n '\\u1E73': 'u',\n '\\u0173': 'u',\n '\\u1E77': 'u',\n '\\u1E75': 'u',\n '\\u0289': 'u',\n '\\u24E5': 'v',\n '\\uFF56': 'v',\n '\\u1E7D': 'v',\n '\\u1E7F': 'v',\n '\\u028B': 'v',\n '\\uA75F': 'v',\n '\\u028C': 'v',\n '\\uA761': 'vy',\n '\\u24E6': 'w',\n '\\uFF57': 'w',\n '\\u1E81': 'w',\n '\\u1E83': 'w',\n '\\u0175': 'w',\n '\\u1E87': 'w',\n '\\u1E85': 'w',\n '\\u1E98': 'w',\n '\\u1E89': 'w',\n '\\u2C73': 'w',\n '\\u24E7': 'x',\n '\\uFF58': 'x',\n '\\u1E8B': 'x',\n '\\u1E8D': 'x',\n '\\u24E8': 'y',\n '\\uFF59': 'y',\n '\\u1EF3': 'y',\n '\\u00FD': 'y',\n '\\u0177': 'y',\n '\\u1EF9': 'y',\n '\\u0233': 'y',\n '\\u1E8F': 'y',\n '\\u00FF': 'y',\n '\\u1EF7': 'y',\n '\\u1E99': 'y',\n '\\u1EF5': 'y',\n '\\u01B4': 'y',\n '\\u024F': 'y',\n '\\u1EFF': 'y',\n '\\u24E9': 'z',\n '\\uFF5A': 'z',\n '\\u017A': 'z',\n '\\u1E91': 'z',\n '\\u017C': 'z',\n '\\u017E': 'z',\n '\\u1E93': 'z',\n '\\u1E95': 'z',\n '\\u01B6': 'z',\n '\\u0225': 'z',\n '\\u0240': 'z',\n '\\u2C6C': 'z',\n '\\uA763': 'z',\n '\\u0386': '\\u0391',\n '\\u0388': '\\u0395',\n '\\u0389': '\\u0397',\n '\\u038A': '\\u0399',\n '\\u03AA': '\\u0399',\n '\\u038C': '\\u039F',\n '\\u038E': '\\u03A5',\n '\\u03AB': '\\u03A5',\n '\\u038F': '\\u03A9',\n '\\u03AC': '\\u03B1',\n '\\u03AD': '\\u03B5',\n '\\u03AE': '\\u03B7',\n '\\u03AF': '\\u03B9',\n '\\u03CA': '\\u03B9',\n '\\u0390': '\\u03B9',\n '\\u03CC': '\\u03BF',\n '\\u03CD': '\\u03C5',\n '\\u03CB': '\\u03C5',\n '\\u03B0': '\\u03C5',\n '\\u03CE': '\\u03C9',\n '\\u03C2': '\\u03C3',\n '\\u2019': '\\''\n };\n\n return diacritics;\n});\n\nS2.define('select2/data/base',[\n '../utils'\n], function (Utils) {\n function BaseAdapter ($element, options) {\n BaseAdapter.__super__.constructor.call(this);\n }\n\n Utils.Extend(BaseAdapter, Utils.Observable);\n\n BaseAdapter.prototype.current = function (callback) {\n throw new Error('The `current` method must be defined in child classes.');\n };\n\n BaseAdapter.prototype.query = function (params, callback) {\n throw new Error('The `query` method must be defined in child classes.');\n };\n\n BaseAdapter.prototype.bind = function (container, $container) {\n // Can be implemented in subclasses\n };\n\n BaseAdapter.prototype.destroy = function () {\n // Can be implemented in subclasses\n };\n\n BaseAdapter.prototype.generateResultId = function (container, data) {\n var id = container.id + '-result-';\n\n id += Utils.generateChars(4);\n\n if (data.id != null) {\n id += '-' + data.id.toString();\n } else {\n id += '-' + Utils.generateChars(4);\n }\n return id;\n };\n\n return BaseAdapter;\n});\n\nS2.define('select2/data/select',[\n './base',\n '../utils',\n 'jquery'\n], function (BaseAdapter, Utils, $) {\n function SelectAdapter ($element, options) {\n this.$element = $element;\n this.options = options;\n\n SelectAdapter.__super__.constructor.call(this);\n }\n\n Utils.Extend(SelectAdapter, BaseAdapter);\n\n SelectAdapter.prototype.current = function (callback) {\n var self = this;\n\n var data = Array.prototype.map.call(\n this.$element[0].querySelectorAll(':checked'),\n function (selectedElement) {\n return self.item($(selectedElement));\n }\n );\n\n callback(data);\n };\n\n SelectAdapter.prototype.select = function (data) {\n var self = this;\n\n data.selected = true;\n\n // If data.element is a DOM node, use it instead\n if (\n data.element != null && data.element.tagName.toLowerCase() === 'option'\n ) {\n data.element.selected = true;\n\n this.$element.trigger('input').trigger('change');\n\n return;\n }\n\n if (this.$element.prop('multiple')) {\n this.current(function (currentData) {\n var val = [];\n\n data = [data];\n data.push.apply(data, currentData);\n\n for (var d = 0; d < data.length; d++) {\n var id = data[d].id;\n\n if (val.indexOf(id) === -1) {\n val.push(id);\n }\n }\n\n self.$element.val(val);\n self.$element.trigger('input').trigger('change');\n });\n } else {\n var val = data.id;\n\n this.$element.val(val);\n this.$element.trigger('input').trigger('change');\n }\n };\n\n SelectAdapter.prototype.unselect = function (data) {\n var self = this;\n\n if (!this.$element.prop('multiple')) {\n return;\n }\n\n data.selected = false;\n\n if (\n data.element != null &&\n data.element.tagName.toLowerCase() === 'option'\n ) {\n data.element.selected = false;\n\n this.$element.trigger('input').trigger('change');\n\n return;\n }\n\n this.current(function (currentData) {\n var val = [];\n\n for (var d = 0; d < currentData.length; d++) {\n var id = currentData[d].id;\n\n if (id !== data.id && val.indexOf(id) === -1) {\n val.push(id);\n }\n }\n\n self.$element.val(val);\n\n self.$element.trigger('input').trigger('change');\n });\n };\n\n SelectAdapter.prototype.bind = function (container, $container) {\n var self = this;\n\n this.container = container;\n\n container.on('select', function (params) {\n self.select(params.data);\n });\n\n container.on('unselect', function (params) {\n self.unselect(params.data);\n });\n };\n\n SelectAdapter.prototype.destroy = function () {\n // Remove anything added to child elements\n this.$element.find('*').each(function () {\n // Remove any custom data set by Select2\n Utils.RemoveData(this);\n });\n };\n\n SelectAdapter.prototype.query = function (params, callback) {\n var data = [];\n var self = this;\n\n var $options = this.$element.children();\n\n $options.each(function () {\n if (\n this.tagName.toLowerCase() !== 'option' &&\n this.tagName.toLowerCase() !== 'optgroup'\n ) {\n return;\n }\n\n var $option = $(this);\n\n var option = self.item($option);\n\n var matches = self.matches(params, option);\n\n if (matches !== null) {\n data.push(matches);\n }\n });\n\n callback({\n results: data\n });\n };\n\n SelectAdapter.prototype.addOptions = function ($options) {\n this.$element.append($options);\n };\n\n SelectAdapter.prototype.option = function (data) {\n var option;\n\n if (data.children) {\n option = document.createElement('optgroup');\n option.label = data.text;\n } else {\n option = document.createElement('option');\n\n if (option.textContent !== undefined) {\n option.textContent = data.text;\n } else {\n option.innerText = data.text;\n }\n }\n\n if (data.id !== undefined) {\n option.value = data.id;\n }\n\n if (data.disabled) {\n option.disabled = true;\n }\n\n if (data.selected) {\n option.selected = true;\n }\n\n if (data.title) {\n option.title = data.title;\n }\n\n var normalizedData = this._normalizeItem(data);\n normalizedData.element = option;\n\n // Override the option's data with the combined data\n Utils.StoreData(option, 'data', normalizedData);\n\n return $(option);\n };\n\n SelectAdapter.prototype.item = function ($option) {\n var data = {};\n\n data = Utils.GetData($option[0], 'data');\n\n if (data != null) {\n return data;\n }\n\n var option = $option[0];\n\n if (option.tagName.toLowerCase() === 'option') {\n data = {\n id: $option.val(),\n text: $option.text(),\n disabled: $option.prop('disabled'),\n selected: $option.prop('selected'),\n title: $option.prop('title')\n };\n } else if (option.tagName.toLowerCase() === 'optgroup') {\n data = {\n text: $option.prop('label'),\n children: [],\n title: $option.prop('title')\n };\n\n var $children = $option.children('option');\n var children = [];\n\n for (var c = 0; c < $children.length; c++) {\n var $child = $($children[c]);\n\n var child = this.item($child);\n\n children.push(child);\n }\n\n data.children = children;\n }\n\n data = this._normalizeItem(data);\n data.element = $option[0];\n\n Utils.StoreData($option[0], 'data', data);\n\n return data;\n };\n\n SelectAdapter.prototype._normalizeItem = function (item) {\n if (item !== Object(item)) {\n item = {\n id: item,\n text: item\n };\n }\n\n item = $.extend({}, {\n text: ''\n }, item);\n\n var defaults = {\n selected: false,\n disabled: false\n };\n\n if (item.id != null) {\n item.id = item.id.toString();\n }\n\n if (item.text != null) {\n item.text = item.text.toString();\n }\n\n if (item._resultId == null && item.id && this.container != null) {\n item._resultId = this.generateResultId(this.container, item);\n }\n\n return $.extend({}, defaults, item);\n };\n\n SelectAdapter.prototype.matches = function (params, data) {\n var matcher = this.options.get('matcher');\n\n return matcher(params, data);\n };\n\n return SelectAdapter;\n});\n\nS2.define('select2/data/array',[\n './select',\n '../utils',\n 'jquery'\n], function (SelectAdapter, Utils, $) {\n function ArrayAdapter ($element, options) {\n this._dataToConvert = options.get('data') || [];\n\n ArrayAdapter.__super__.constructor.call(this, $element, options);\n }\n\n Utils.Extend(ArrayAdapter, SelectAdapter);\n\n ArrayAdapter.prototype.bind = function (container, $container) {\n ArrayAdapter.__super__.bind.call(this, container, $container);\n\n this.addOptions(this.convertToOptions(this._dataToConvert));\n };\n\n ArrayAdapter.prototype.select = function (data) {\n var $option = this.$element.find('option').filter(function (i, elm) {\n return elm.value == data.id.toString();\n });\n\n if ($option.length === 0) {\n $option = this.option(data);\n\n this.addOptions($option);\n }\n\n ArrayAdapter.__super__.select.call(this, data);\n };\n\n ArrayAdapter.prototype.convertToOptions = function (data) {\n var self = this;\n\n var $existing = this.$element.find('option');\n var existingIds = $existing.map(function () {\n return self.item($(this)).id;\n }).get();\n\n var $options = [];\n\n // Filter out all items except for the one passed in the argument\n function onlyItem (item) {\n return function () {\n return $(this).val() == item.id;\n };\n }\n\n for (var d = 0; d < data.length; d++) {\n var item = this._normalizeItem(data[d]);\n\n // Skip items which were pre-loaded, only merge the data\n if (existingIds.indexOf(item.id) >= 0) {\n var $existingOption = $existing.filter(onlyItem(item));\n\n var existingData = this.item($existingOption);\n var newData = $.extend(true, {}, item, existingData);\n\n var $newOption = this.option(newData);\n\n $existingOption.replaceWith($newOption);\n\n continue;\n }\n\n var $option = this.option(item);\n\n if (item.children) {\n var $children = this.convertToOptions(item.children);\n\n $option.append($children);\n }\n\n $options.push($option);\n }\n\n return $options;\n };\n\n return ArrayAdapter;\n});\n\nS2.define('select2/data/ajax',[\n './array',\n '../utils',\n 'jquery'\n], function (ArrayAdapter, Utils, $) {\n function AjaxAdapter ($element, options) {\n this.ajaxOptions = this._applyDefaults(options.get('ajax'));\n\n if (this.ajaxOptions.processResults != null) {\n this.processResults = this.ajaxOptions.processResults;\n }\n\n AjaxAdapter.__super__.constructor.call(this, $element, options);\n }\n\n Utils.Extend(AjaxAdapter, ArrayAdapter);\n\n AjaxAdapter.prototype._applyDefaults = function (options) {\n var defaults = {\n data: function (params) {\n return $.extend({}, params, {\n q: params.term\n });\n },\n transport: function (params, success, failure) {\n var $request = $.ajax(params);\n\n $request.then(success);\n $request.fail(failure);\n\n return $request;\n }\n };\n\n return $.extend({}, defaults, options, true);\n };\n\n AjaxAdapter.prototype.processResults = function (results) {\n return results;\n };\n\n AjaxAdapter.prototype.query = function (params, callback) {\n var matches = [];\n var self = this;\n\n if (this._request != null) {\n // JSONP requests cannot always be aborted\n if (typeof this._request.abort === 'function') {\n this._request.abort();\n }\n\n this._request = null;\n }\n\n var options = $.extend({\n type: 'GET'\n }, this.ajaxOptions);\n\n if (typeof options.url === 'function') {\n options.url = options.url.call(this.$element, params);\n }\n\n if (typeof options.data === 'function') {\n options.data = options.data.call(this.$element, params);\n }\n\n function request () {\n var $request = options.transport(options, function (data) {\n var results = self.processResults(data, params);\n\n if (self.options.get('debug') && window.console && console.error) {\n // Check to make sure that the response included a `results` key.\n if (!results || !results.results || !Array.isArray(results.results)) {\n console.error(\n 'Select2: The AJAX results did not return an array in the ' +\n '`results` key of the response.'\n );\n }\n }\n\n callback(results);\n }, function () {\n // Attempt to detect if a request was aborted\n // Only works if the transport exposes a status property\n if ('status' in $request &&\n ($request.status === 0 || $request.status === '0')) {\n return;\n }\n\n self.trigger('results:message', {\n message: 'errorLoading'\n });\n });\n\n self._request = $request;\n }\n\n if (this.ajaxOptions.delay && params.term != null) {\n if (this._queryTimeout) {\n window.clearTimeout(this._queryTimeout);\n }\n\n this._queryTimeout = window.setTimeout(request, this.ajaxOptions.delay);\n } else {\n request();\n }\n };\n\n return AjaxAdapter;\n});\n\nS2.define('select2/data/tags',[\n 'jquery'\n], function ($) {\n function Tags (decorated, $element, options) {\n var tags = options.get('tags');\n\n var createTag = options.get('createTag');\n\n if (createTag !== undefined) {\n this.createTag = createTag;\n }\n\n var insertTag = options.get('insertTag');\n\n if (insertTag !== undefined) {\n this.insertTag = insertTag;\n }\n\n decorated.call(this, $element, options);\n\n if (Array.isArray(tags)) {\n for (var t = 0; t < tags.length; t++) {\n var tag = tags[t];\n var item = this._normalizeItem(tag);\n\n var $option = this.option(item);\n\n this.$element.append($option);\n }\n }\n }\n\n Tags.prototype.query = function (decorated, params, callback) {\n var self = this;\n\n this._removeOldTags();\n\n if (params.term == null || params.page != null) {\n decorated.call(this, params, callback);\n return;\n }\n\n function wrapper (obj, child) {\n var data = obj.results;\n\n for (var i = 0; i < data.length; i++) {\n var option = data[i];\n\n var checkChildren = (\n option.children != null &&\n !wrapper({\n results: option.children\n }, true)\n );\n\n var optionText = (option.text || '').toUpperCase();\n var paramsTerm = (params.term || '').toUpperCase();\n\n var checkText = optionText === paramsTerm;\n\n if (checkText || checkChildren) {\n if (child) {\n return false;\n }\n\n obj.data = data;\n callback(obj);\n\n return;\n }\n }\n\n if (child) {\n return true;\n }\n\n var tag = self.createTag(params);\n\n if (tag != null) {\n var $option = self.option(tag);\n $option.attr('data-select2-tag', 'true');\n\n self.addOptions([$option]);\n\n self.insertTag(data, tag);\n }\n\n obj.results = data;\n\n callback(obj);\n }\n\n decorated.call(this, params, wrapper);\n };\n\n Tags.prototype.createTag = function (decorated, params) {\n if (params.term == null) {\n return null;\n }\n\n var term = params.term.trim();\n\n if (term === '') {\n return null;\n }\n\n return {\n id: term,\n text: term\n };\n };\n\n Tags.prototype.insertTag = function (_, data, tag) {\n data.unshift(tag);\n };\n\n Tags.prototype._removeOldTags = function (_) {\n var $options = this.$element.find('option[data-select2-tag]');\n\n $options.each(function () {\n if (this.selected) {\n return;\n }\n\n $(this).remove();\n });\n };\n\n return Tags;\n});\n\nS2.define('select2/data/tokenizer',[\n 'jquery'\n], function ($) {\n function Tokenizer (decorated, $element, options) {\n var tokenizer = options.get('tokenizer');\n\n if (tokenizer !== undefined) {\n this.tokenizer = tokenizer;\n }\n\n decorated.call(this, $element, options);\n }\n\n Tokenizer.prototype.bind = function (decorated, container, $container) {\n decorated.call(this, container, $container);\n\n this.$search = container.dropdown.$search || container.selection.$search ||\n $container.find('.select2-search__field');\n };\n\n Tokenizer.prototype.query = function (decorated, params, callback) {\n var self = this;\n\n function createAndSelect (data) {\n // Normalize the data object so we can use it for checks\n var item = self._normalizeItem(data);\n\n // Check if the data object already exists as a tag\n // Select it if it doesn't\n var $existingOptions = self.$element.find('option').filter(function () {\n return $(this).val() === item.id;\n });\n\n // If an existing option wasn't found for it, create the option\n if (!$existingOptions.length) {\n var $option = self.option(item);\n $option.attr('data-select2-tag', true);\n\n self._removeOldTags();\n self.addOptions([$option]);\n }\n\n // Select the item, now that we know there is an option for it\n select(item);\n }\n\n function select (data) {\n self.trigger('select', {\n data: data\n });\n }\n\n params.term = params.term || '';\n\n var tokenData = this.tokenizer(params, this.options, createAndSelect);\n\n if (tokenData.term !== params.term) {\n // Replace the search term if we have the search box\n if (this.$search.length) {\n this.$search.val(tokenData.term);\n this.$search.trigger('focus');\n }\n\n params.term = tokenData.term;\n }\n\n decorated.call(this, params, callback);\n };\n\n Tokenizer.prototype.tokenizer = function (_, params, options, callback) {\n var separators = options.get('tokenSeparators') || [];\n var term = params.term;\n var i = 0;\n\n var createTag = this.createTag || function (params) {\n return {\n id: params.term,\n text: params.term\n };\n };\n\n while (i < term.length) {\n var termChar = term[i];\n\n if (separators.indexOf(termChar) === -1) {\n i++;\n\n continue;\n }\n\n var part = term.substr(0, i);\n var partParams = $.extend({}, params, {\n term: part\n });\n\n var data = createTag(partParams);\n\n if (data == null) {\n i++;\n continue;\n }\n\n callback(data);\n\n // Reset the term to not include the tokenized portion\n term = term.substr(i + 1) || '';\n i = 0;\n }\n\n return {\n term: term\n };\n };\n\n return Tokenizer;\n});\n\nS2.define('select2/data/minimumInputLength',[\n\n], function () {\n function MinimumInputLength (decorated, $e, options) {\n this.minimumInputLength = options.get('minimumInputLength');\n\n decorated.call(this, $e, options);\n }\n\n MinimumInputLength.prototype.query = function (decorated, params, callback) {\n params.term = params.term || '';\n\n if (params.term.length < this.minimumInputLength) {\n this.trigger('results:message', {\n message: 'inputTooShort',\n args: {\n minimum: this.minimumInputLength,\n input: params.term,\n params: params\n }\n });\n\n return;\n }\n\n decorated.call(this, params, callback);\n };\n\n return MinimumInputLength;\n});\n\nS2.define('select2/data/maximumInputLength',[\n\n], function () {\n function MaximumInputLength (decorated, $e, options) {\n this.maximumInputLength = options.get('maximumInputLength');\n\n decorated.call(this, $e, options);\n }\n\n MaximumInputLength.prototype.query = function (decorated, params, callback) {\n params.term = params.term || '';\n\n if (this.maximumInputLength > 0 &&\n params.term.length > this.maximumInputLength) {\n this.trigger('results:message', {\n message: 'inputTooLong',\n args: {\n maximum: this.maximumInputLength,\n input: params.term,\n params: params\n }\n });\n\n return;\n }\n\n decorated.call(this, params, callback);\n };\n\n return MaximumInputLength;\n});\n\nS2.define('select2/data/maximumSelectionLength',[\n\n], function (){\n function MaximumSelectionLength (decorated, $e, options) {\n this.maximumSelectionLength = options.get('maximumSelectionLength');\n\n decorated.call(this, $e, options);\n }\n\n MaximumSelectionLength.prototype.bind =\n function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('select', function () {\n self._checkIfMaximumSelected();\n });\n };\n\n MaximumSelectionLength.prototype.query =\n function (decorated, params, callback) {\n var self = this;\n\n this._checkIfMaximumSelected(function () {\n decorated.call(self, params, callback);\n });\n };\n\n MaximumSelectionLength.prototype._checkIfMaximumSelected =\n function (_, successCallback) {\n var self = this;\n\n this.current(function (currentData) {\n var count = currentData != null ? currentData.length : 0;\n if (self.maximumSelectionLength > 0 &&\n count >= self.maximumSelectionLength) {\n self.trigger('results:message', {\n message: 'maximumSelected',\n args: {\n maximum: self.maximumSelectionLength\n }\n });\n return;\n }\n\n if (successCallback) {\n successCallback();\n }\n });\n };\n\n return MaximumSelectionLength;\n});\n\nS2.define('select2/dropdown',[\n 'jquery',\n './utils'\n], function ($, Utils) {\n function Dropdown ($element, options) {\n this.$element = $element;\n this.options = options;\n\n Dropdown.__super__.constructor.call(this);\n }\n\n Utils.Extend(Dropdown, Utils.Observable);\n\n Dropdown.prototype.render = function () {\n var $dropdown = $(\n '<span class=\"select2-dropdown\">' +\n '<span class=\"select2-results\"></span>' +\n '</span>'\n );\n\n $dropdown.attr('dir', this.options.get('dir'));\n\n this.$dropdown = $dropdown;\n\n return $dropdown;\n };\n\n Dropdown.prototype.bind = function () {\n // Should be implemented in subclasses\n };\n\n Dropdown.prototype.position = function ($dropdown, $container) {\n // Should be implemented in subclasses\n };\n\n Dropdown.prototype.destroy = function () {\n // Remove the dropdown from the DOM\n this.$dropdown.remove();\n };\n\n return Dropdown;\n});\n\nS2.define('select2/dropdown/search',[\n 'jquery'\n], function ($) {\n function Search () { }\n\n Search.prototype.render = function (decorated) {\n var $rendered = decorated.call(this);\n var searchLabel = this.options.get('translations').get('search');\n\n var $search = $(\n '<span class=\"select2-search select2-search--dropdown\">' +\n '<input class=\"select2-search__field\" type=\"search\" tabindex=\"-1\"' +\n ' autocorrect=\"off\" autocapitalize=\"none\"' +\n ' spellcheck=\"false\" role=\"searchbox\" aria-autocomplete=\"list\" />' +\n '</span>'\n );\n\n this.$searchContainer = $search;\n this.$search = $search.find('input');\n\n this.$search.prop('autocomplete', this.options.get('autocomplete'));\n this.$search.attr('aria-label', searchLabel());\n\n $rendered.prepend($search);\n\n return $rendered;\n };\n\n Search.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n var resultsId = container.id + '-results';\n\n decorated.call(this, container, $container);\n\n this.$search.on('keydown', function (evt) {\n self.trigger('keypress', evt);\n\n self._keyUpPrevented = evt.isDefaultPrevented();\n });\n\n // Workaround for browsers which do not support the `input` event\n // This will prevent double-triggering of events for browsers which support\n // both the `keyup` and `input` events.\n this.$search.on('input', function (evt) {\n // Unbind the duplicated `keyup` event\n $(this).off('keyup');\n });\n\n this.$search.on('keyup input', function (evt) {\n self.handleSearch(evt);\n });\n\n container.on('open', function () {\n self.$search.attr('tabindex', 0);\n self.$search.attr('aria-controls', resultsId);\n\n self.$search.trigger('focus');\n\n window.setTimeout(function () {\n self.$search.trigger('focus');\n }, 0);\n });\n\n container.on('close', function () {\n self.$search.attr('tabindex', -1);\n self.$search.removeAttr('aria-controls');\n self.$search.removeAttr('aria-activedescendant');\n\n self.$search.val('');\n self.$search.trigger('blur');\n });\n\n container.on('focus', function () {\n if (!container.isOpen()) {\n self.$search.trigger('focus');\n }\n });\n\n container.on('results:all', function (params) {\n if (params.query.term == null || params.query.term === '') {\n var showSearch = self.showSearch(params);\n\n if (showSearch) {\n self.$searchContainer[0].classList.remove('select2-search--hide');\n } else {\n self.$searchContainer[0].classList.add('select2-search--hide');\n }\n }\n });\n\n container.on('results:focus', function (params) {\n if (params.data._resultId) {\n self.$search.attr('aria-activedescendant', params.data._resultId);\n } else {\n self.$search.removeAttr('aria-activedescendant');\n }\n });\n };\n\n Search.prototype.handleSearch = function (evt) {\n if (!this._keyUpPrevented) {\n var input = this.$search.val();\n\n this.trigger('query', {\n term: input\n });\n }\n\n this._keyUpPrevented = false;\n };\n\n Search.prototype.showSearch = function (_, params) {\n return true;\n };\n\n return Search;\n});\n\nS2.define('select2/dropdown/hidePlaceholder',[\n\n], function () {\n function HidePlaceholder (decorated, $element, options, dataAdapter) {\n this.placeholder = this.normalizePlaceholder(options.get('placeholder'));\n\n decorated.call(this, $element, options, dataAdapter);\n }\n\n HidePlaceholder.prototype.append = function (decorated, data) {\n data.results = this.removePlaceholder(data.results);\n\n decorated.call(this, data);\n };\n\n HidePlaceholder.prototype.normalizePlaceholder = function (_, placeholder) {\n if (typeof placeholder === 'string') {\n placeholder = {\n id: '',\n text: placeholder\n };\n }\n\n return placeholder;\n };\n\n HidePlaceholder.prototype.removePlaceholder = function (_, data) {\n var modifiedData = data.slice(0);\n\n for (var d = data.length - 1; d >= 0; d--) {\n var item = data[d];\n\n if (this.placeholder.id === item.id) {\n modifiedData.splice(d, 1);\n }\n }\n\n return modifiedData;\n };\n\n return HidePlaceholder;\n});\n\nS2.define('select2/dropdown/infiniteScroll',[\n 'jquery'\n], function ($) {\n function InfiniteScroll (decorated, $element, options, dataAdapter) {\n this.lastParams = {};\n\n decorated.call(this, $element, options, dataAdapter);\n\n this.$loadingMore = this.createLoadingMore();\n this.loading = false;\n }\n\n InfiniteScroll.prototype.append = function (decorated, data) {\n this.$loadingMore.remove();\n this.loading = false;\n\n decorated.call(this, data);\n\n if (this.showLoadingMore(data)) {\n this.$results.append(this.$loadingMore);\n this.loadMoreIfNeeded();\n }\n };\n\n InfiniteScroll.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('query', function (params) {\n self.lastParams = params;\n self.loading = true;\n });\n\n container.on('query:append', function (params) {\n self.lastParams = params;\n self.loading = true;\n });\n\n this.$results.on('scroll', this.loadMoreIfNeeded.bind(this));\n };\n\n InfiniteScroll.prototype.loadMoreIfNeeded = function () {\n var isLoadMoreVisible = $.contains(\n document.documentElement,\n this.$loadingMore[0]\n );\n\n if (this.loading || !isLoadMoreVisible) {\n return;\n }\n\n var currentOffset = this.$results.offset().top +\n this.$results.outerHeight(false);\n var loadingMoreOffset = this.$loadingMore.offset().top +\n this.$loadingMore.outerHeight(false);\n\n if (currentOffset + 50 >= loadingMoreOffset) {\n this.loadMore();\n }\n };\n\n InfiniteScroll.prototype.loadMore = function () {\n this.loading = true;\n\n var params = $.extend({}, {page: 1}, this.lastParams);\n\n params.page++;\n\n this.trigger('query:append', params);\n };\n\n InfiniteScroll.prototype.showLoadingMore = function (_, data) {\n return data.pagination && data.pagination.more;\n };\n\n InfiniteScroll.prototype.createLoadingMore = function () {\n var $option = $(\n '<li ' +\n 'class=\"select2-results__option select2-results__option--load-more\"' +\n 'role=\"option\" aria-disabled=\"true\"></li>'\n );\n\n var message = this.options.get('translations').get('loadingMore');\n\n $option.html(message(this.lastParams));\n\n return $option;\n };\n\n return InfiniteScroll;\n});\n\nS2.define('select2/dropdown/attachBody',[\n 'jquery',\n '../utils'\n], function ($, Utils) {\n function AttachBody (decorated, $element, options) {\n this.$dropdownParent = $(options.get('dropdownParent') || document.body);\n\n decorated.call(this, $element, options);\n }\n\n AttachBody.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('open', function () {\n self._showDropdown();\n self._attachPositioningHandler(container);\n\n // Must bind after the results handlers to ensure correct sizing\n self._bindContainerResultHandlers(container);\n });\n\n container.on('close', function () {\n self._hideDropdown();\n self._detachPositioningHandler(container);\n });\n\n this.$dropdownContainer.on('mousedown', function (evt) {\n evt.stopPropagation();\n });\n };\n\n AttachBody.prototype.destroy = function (decorated) {\n decorated.call(this);\n\n this.$dropdownContainer.remove();\n };\n\n AttachBody.prototype.position = function (decorated, $dropdown, $container) {\n // Clone all of the container classes\n $dropdown.attr('class', $container.attr('class'));\n\n $dropdown[0].classList.remove('select2');\n $dropdown[0].classList.add('select2-container--open');\n\n $dropdown.css({\n position: 'absolute',\n top: -999999\n });\n\n this.$container = $container;\n };\n\n AttachBody.prototype.render = function (decorated) {\n var $container = $('<span></span>');\n\n var $dropdown = decorated.call(this);\n $container.append($dropdown);\n\n this.$dropdownContainer = $container;\n\n return $container;\n };\n\n AttachBody.prototype._hideDropdown = function (decorated) {\n this.$dropdownContainer.detach();\n };\n\n AttachBody.prototype._bindContainerResultHandlers =\n function (decorated, container) {\n\n // These should only be bound once\n if (this._containerResultsHandlersBound) {\n return;\n }\n\n var self = this;\n\n container.on('results:all', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n\n container.on('results:append', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n\n container.on('results:message', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n\n container.on('select', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n\n container.on('unselect', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n\n this._containerResultsHandlersBound = true;\n };\n\n AttachBody.prototype._attachPositioningHandler =\n function (decorated, container) {\n var self = this;\n\n var scrollEvent = 'scroll.select2.' + container.id;\n var resizeEvent = 'resize.select2.' + container.id;\n var orientationEvent = 'orientationchange.select2.' + container.id;\n\n var $watchers = this.$container.parents().filter(Utils.hasScroll);\n $watchers.each(function () {\n Utils.StoreData(this, 'select2-scroll-position', {\n x: $(this).scrollLeft(),\n y: $(this).scrollTop()\n });\n });\n\n $watchers.on(scrollEvent, function (ev) {\n var position = Utils.GetData(this, 'select2-scroll-position');\n $(this).scrollTop(position.y);\n });\n\n $(window).on(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent,\n function (e) {\n self._positionDropdown();\n self._resizeDropdown();\n });\n };\n\n AttachBody.prototype._detachPositioningHandler =\n function (decorated, container) {\n var scrollEvent = 'scroll.select2.' + container.id;\n var resizeEvent = 'resize.select2.' + container.id;\n var orientationEvent = 'orientationchange.select2.' + container.id;\n\n var $watchers = this.$container.parents().filter(Utils.hasScroll);\n $watchers.off(scrollEvent);\n\n $(window).off(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent);\n };\n\n AttachBody.prototype._positionDropdown = function () {\n var $window = $(window);\n\n var isCurrentlyAbove = this.$dropdown[0].classList\n .contains('select2-dropdown--above');\n var isCurrentlyBelow = this.$dropdown[0].classList\n .contains('select2-dropdown--below');\n\n var newDirection = null;\n\n var offset = this.$container.offset();\n\n offset.bottom = offset.top + this.$container.outerHeight(false);\n\n var container = {\n height: this.$container.outerHeight(false)\n };\n\n container.top = offset.top;\n container.bottom = offset.top + container.height;\n\n var dropdown = {\n height: this.$dropdown.outerHeight(false)\n };\n\n var viewport = {\n top: $window.scrollTop(),\n bottom: $window.scrollTop() + $window.height()\n };\n\n var enoughRoomAbove = viewport.top < (offset.top - dropdown.height);\n var enoughRoomBelow = viewport.bottom > (offset.bottom + dropdown.height);\n\n var css = {\n left: offset.left,\n top: container.bottom\n };\n\n // Determine what the parent element is to use for calculating the offset\n var $offsetParent = this.$dropdownParent;\n\n // For statically positioned elements, we need to get the element\n // that is determining the offset\n if ($offsetParent.css('position') === 'static') {\n $offsetParent = $offsetParent.offsetParent();\n }\n\n var parentOffset = {\n top: 0,\n left: 0\n };\n\n if (\n $.contains(document.body, $offsetParent[0]) ||\n $offsetParent[0].isConnected\n ) {\n parentOffset = $offsetParent.offset();\n }\n\n css.top -= parentOffset.top;\n css.left -= parentOffset.left;\n\n if (!isCurrentlyAbove && !isCurrentlyBelow) {\n newDirection = 'below';\n }\n\n if (!enoughRoomBelow && enoughRoomAbove && !isCurrentlyAbove) {\n newDirection = 'above';\n } else if (!enoughRoomAbove && enoughRoomBelow && isCurrentlyAbove) {\n newDirection = 'below';\n }\n\n if (newDirection == 'above' ||\n (isCurrentlyAbove && newDirection !== 'below')) {\n css.top = container.top - parentOffset.top - dropdown.height;\n }\n\n if (newDirection != null) {\n this.$dropdown[0].classList.remove('select2-dropdown--below');\n this.$dropdown[0].classList.remove('select2-dropdown--above');\n this.$dropdown[0].classList.add('select2-dropdown--' + newDirection);\n\n this.$container[0].classList.remove('select2-container--below');\n this.$container[0].classList.remove('select2-container--above');\n this.$container[0].classList.add('select2-container--' + newDirection);\n }\n\n this.$dropdownContainer.css(css);\n };\n\n AttachBody.prototype._resizeDropdown = function () {\n var css = {\n width: this.$container.outerWidth(false) + 'px'\n };\n\n if (this.options.get('dropdownAutoWidth')) {\n css.minWidth = css.width;\n css.position = 'relative';\n css.width = 'auto';\n }\n\n this.$dropdown.css(css);\n };\n\n AttachBody.prototype._showDropdown = function (decorated) {\n this.$dropdownContainer.appendTo(this.$dropdownParent);\n\n this._positionDropdown();\n this._resizeDropdown();\n };\n\n return AttachBody;\n});\n\nS2.define('select2/dropdown/minimumResultsForSearch',[\n\n], function () {\n function countResults (data) {\n var count = 0;\n\n for (var d = 0; d < data.length; d++) {\n var item = data[d];\n\n if (item.children) {\n count += countResults(item.children);\n } else {\n count++;\n }\n }\n\n return count;\n }\n\n function MinimumResultsForSearch (decorated, $element, options, dataAdapter) {\n this.minimumResultsForSearch = options.get('minimumResultsForSearch');\n\n if (this.minimumResultsForSearch < 0) {\n this.minimumResultsForSearch = Infinity;\n }\n\n decorated.call(this, $element, options, dataAdapter);\n }\n\n MinimumResultsForSearch.prototype.showSearch = function (decorated, params) {\n if (countResults(params.data.results) < this.minimumResultsForSearch) {\n return false;\n }\n\n return decorated.call(this, params);\n };\n\n return MinimumResultsForSearch;\n});\n\nS2.define('select2/dropdown/selectOnClose',[\n '../utils'\n], function (Utils) {\n function SelectOnClose () { }\n\n SelectOnClose.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('close', function (params) {\n self._handleSelectOnClose(params);\n });\n };\n\n SelectOnClose.prototype._handleSelectOnClose = function (_, params) {\n if (params && params.originalSelect2Event != null) {\n var event = params.originalSelect2Event;\n\n // Don't select an item if the close event was triggered from a select or\n // unselect event\n if (event._type === 'select' || event._type === 'unselect') {\n return;\n }\n }\n\n var $highlightedResults = this.getHighlightedResults();\n\n // Only select highlighted results\n if ($highlightedResults.length < 1) {\n return;\n }\n\n var data = Utils.GetData($highlightedResults[0], 'data');\n\n // Don't re-select already selected resulte\n if (\n (data.element != null && data.element.selected) ||\n (data.element == null && data.selected)\n ) {\n return;\n }\n\n this.trigger('select', {\n data: data\n });\n };\n\n return SelectOnClose;\n});\n\nS2.define('select2/dropdown/closeOnSelect',[\n\n], function () {\n function CloseOnSelect () { }\n\n CloseOnSelect.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('select', function (evt) {\n self._selectTriggered(evt);\n });\n\n container.on('unselect', function (evt) {\n self._selectTriggered(evt);\n });\n };\n\n CloseOnSelect.prototype._selectTriggered = function (_, evt) {\n var originalEvent = evt.originalEvent;\n\n // Don't close if the control key is being held\n if (originalEvent && (originalEvent.ctrlKey || originalEvent.metaKey)) {\n return;\n }\n\n this.trigger('close', {\n originalEvent: originalEvent,\n originalSelect2Event: evt\n });\n };\n\n return CloseOnSelect;\n});\n\nS2.define('select2/dropdown/dropdownCss',[\n '../utils'\n], function (Utils) {\n function DropdownCSS () { }\n\n DropdownCSS.prototype.render = function (decorated) {\n var $dropdown = decorated.call(this);\n\n var dropdownCssClass = this.options.get('dropdownCssClass') || '';\n\n if (dropdownCssClass.indexOf(':all:') !== -1) {\n dropdownCssClass = dropdownCssClass.replace(':all:', '');\n\n Utils.copyNonInternalCssClasses($dropdown[0], this.$element[0]);\n }\n\n $dropdown.addClass(dropdownCssClass);\n\n return $dropdown;\n };\n\n return DropdownCSS;\n});\n\nS2.define('select2/dropdown/tagsSearchHighlight',[\n '../utils'\n], function (Utils) {\n function TagsSearchHighlight () { }\n\n TagsSearchHighlight.prototype.highlightFirstItem = function (decorated) {\n var $options = this.$results\n .find(\n '.select2-results__option--selectable' +\n ':not(.select2-results__option--selected)'\n );\n\n if ($options.length > 0) {\n var $firstOption = $options.first();\n var data = Utils.GetData($firstOption[0], 'data');\n var firstElement = data.element;\n\n if (firstElement && firstElement.getAttribute) {\n if (firstElement.getAttribute('data-select2-tag') === 'true') {\n $firstOption.trigger('mouseenter');\n\n return;\n }\n }\n }\n\n decorated.call(this);\n };\n\n return TagsSearchHighlight;\n});\n\nS2.define('select2/i18n/en',[],function () {\n // English\n return {\n errorLoading: function () {\n return 'The results could not be loaded.';\n },\n inputTooLong: function (args) {\n var overChars = args.input.length - args.maximum;\n\n var message = 'Please delete ' + overChars + ' character';\n\n if (overChars != 1) {\n message += 's';\n }\n\n return message;\n },\n inputTooShort: function (args) {\n var remainingChars = args.minimum - args.input.length;\n\n var message = 'Please enter ' + remainingChars + ' or more characters';\n\n return message;\n },\n loadingMore: function () {\n return 'Loading more results\u2026';\n },\n maximumSelected: function (args) {\n var message = 'You can only select ' + args.maximum + ' item';\n\n if (args.maximum != 1) {\n message += 's';\n }\n\n return message;\n },\n noResults: function () {\n return 'No results found';\n },\n searching: function () {\n return 'Searching\u2026';\n },\n removeAllItems: function () {\n return 'Remove all items';\n },\n removeItem: function () {\n return 'Remove item';\n },\n search: function() {\n return 'Search';\n }\n };\n});\n\nS2.define('select2/defaults',[\n 'jquery',\n\n './results',\n\n './selection/single',\n './selection/multiple',\n './selection/placeholder',\n './selection/allowClear',\n './selection/search',\n './selection/selectionCss',\n './selection/eventRelay',\n\n './utils',\n './translation',\n './diacritics',\n\n './data/select',\n './data/array',\n './data/ajax',\n './data/tags',\n './data/tokenizer',\n './data/minimumInputLength',\n './data/maximumInputLength',\n './data/maximumSelectionLength',\n\n './dropdown',\n './dropdown/search',\n './dropdown/hidePlaceholder',\n './dropdown/infiniteScroll',\n './dropdown/attachBody',\n './dropdown/minimumResultsForSearch',\n './dropdown/selectOnClose',\n './dropdown/closeOnSelect',\n './dropdown/dropdownCss',\n './dropdown/tagsSearchHighlight',\n\n './i18n/en'\n], function ($,\n\n ResultsList,\n\n SingleSelection, MultipleSelection, Placeholder, AllowClear,\n SelectionSearch, SelectionCSS, EventRelay,\n\n Utils, Translation, DIACRITICS,\n\n SelectData, ArrayData, AjaxData, Tags, Tokenizer,\n MinimumInputLength, MaximumInputLength, MaximumSelectionLength,\n\n Dropdown, DropdownSearch, HidePlaceholder, InfiniteScroll,\n AttachBody, MinimumResultsForSearch, SelectOnClose, CloseOnSelect,\n DropdownCSS, TagsSearchHighlight,\n\n EnglishTranslation) {\n function Defaults () {\n this.reset();\n }\n\n Defaults.prototype.apply = function (options) {\n options = $.extend(true, {}, this.defaults, options);\n\n if (options.dataAdapter == null) {\n if (options.ajax != null) {\n options.dataAdapter = AjaxData;\n } else if (options.data != null) {\n options.dataAdapter = ArrayData;\n } else {\n options.dataAdapter = SelectData;\n }\n\n if (options.minimumInputLength > 0) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n MinimumInputLength\n );\n }\n\n if (options.maximumInputLength > 0) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n MaximumInputLength\n );\n }\n\n if (options.maximumSelectionLength > 0) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n MaximumSelectionLength\n );\n }\n\n if (options.tags) {\n options.dataAdapter = Utils.Decorate(options.dataAdapter, Tags);\n }\n\n if (options.tokenSeparators != null || options.tokenizer != null) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n Tokenizer\n );\n }\n }\n\n if (options.resultsAdapter == null) {\n options.resultsAdapter = ResultsList;\n\n if (options.ajax != null) {\n options.resultsAdapter = Utils.Decorate(\n options.resultsAdapter,\n InfiniteScroll\n );\n }\n\n if (options.placeholder != null) {\n options.resultsAdapter = Utils.Decorate(\n options.resultsAdapter,\n HidePlaceholder\n );\n }\n\n if (options.selectOnClose) {\n options.resultsAdapter = Utils.Decorate(\n options.resultsAdapter,\n SelectOnClose\n );\n }\n\n if (options.tags) {\n options.resultsAdapter = Utils.Decorate(\n options.resultsAdapter,\n TagsSearchHighlight\n );\n }\n }\n\n if (options.dropdownAdapter == null) {\n if (options.multiple) {\n options.dropdownAdapter = Dropdown;\n } else {\n var SearchableDropdown = Utils.Decorate(Dropdown, DropdownSearch);\n\n options.dropdownAdapter = SearchableDropdown;\n }\n\n if (options.minimumResultsForSearch !== 0) {\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n MinimumResultsForSearch\n );\n }\n\n if (options.closeOnSelect) {\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n CloseOnSelect\n );\n }\n\n if (options.dropdownCssClass != null) {\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n DropdownCSS\n );\n }\n\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n AttachBody\n );\n }\n\n if (options.selectionAdapter == null) {\n if (options.multiple) {\n options.selectionAdapter = MultipleSelection;\n } else {\n options.selectionAdapter = SingleSelection;\n }\n\n // Add the placeholder mixin if a placeholder was specified\n if (options.placeholder != null) {\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n Placeholder\n );\n }\n\n if (options.allowClear) {\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n AllowClear\n );\n }\n\n if (options.multiple) {\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n SelectionSearch\n );\n }\n\n if (options.selectionCssClass != null) {\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n SelectionCSS\n );\n }\n\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n EventRelay\n );\n }\n\n // If the defaults were not previously applied from an element, it is\n // possible for the language option to have not been resolved\n options.language = this._resolveLanguage(options.language);\n\n // Always fall back to English since it will always be complete\n options.language.push('en');\n\n var uniqueLanguages = [];\n\n for (var l = 0; l < options.language.length; l++) {\n var language = options.language[l];\n\n if (uniqueLanguages.indexOf(language) === -1) {\n uniqueLanguages.push(language);\n }\n }\n\n options.language = uniqueLanguages;\n\n options.translations = this._processTranslations(\n options.language,\n options.debug\n );\n\n return options;\n };\n\n Defaults.prototype.reset = function () {\n function stripDiacritics (text) {\n // Used 'uni range + named function' from http://jsperf.com/diacritics/18\n function match(a) {\n return DIACRITICS[a] || a;\n }\n\n return text.replace(/[^\\u0000-\\u007E]/g, match);\n }\n\n function matcher (params, data) {\n // Always return the object if there is nothing to compare\n if (params.term == null || params.term.trim() === '') {\n return data;\n }\n\n // Do a recursive check for options with children\n if (data.children && data.children.length > 0) {\n // Clone the data object if there are children\n // This is required as we modify the object to remove any non-matches\n var match = $.extend(true, {}, data);\n\n // Check each child of the option\n for (var c = data.children.length - 1; c >= 0; c--) {\n var child = data.children[c];\n\n var matches = matcher(params, child);\n\n // If there wasn't a match, remove the object in the array\n if (matches == null) {\n match.children.splice(c, 1);\n }\n }\n\n // If any children matched, return the new object\n if (match.children.length > 0) {\n return match;\n }\n\n // If there were no matching children, check just the plain object\n return matcher(params, match);\n }\n\n var original = stripDiacritics(data.text).toUpperCase();\n var term = stripDiacritics(params.term).toUpperCase();\n\n // Check if the text contains the term\n if (original.indexOf(term) > -1) {\n return data;\n }\n\n // If it doesn't contain the term, don't return anything\n return null;\n }\n\n this.defaults = {\n amdLanguageBase: './i18n/',\n autocomplete: 'off',\n closeOnSelect: true,\n debug: false,\n dropdownAutoWidth: false,\n escapeMarkup: Utils.escapeMarkup,\n language: {},\n matcher: matcher,\n minimumInputLength: 0,\n maximumInputLength: 0,\n maximumSelectionLength: 0,\n minimumResultsForSearch: 0,\n selectOnClose: false,\n scrollAfterSelect: false,\n sorter: function (data) {\n return data;\n },\n templateResult: function (result) {\n return result.text;\n },\n templateSelection: function (selection) {\n return selection.text;\n },\n theme: 'default',\n width: 'resolve'\n };\n };\n\n Defaults.prototype.applyFromElement = function (options, $element) {\n var optionLanguage = options.language;\n var defaultLanguage = this.defaults.language;\n var elementLanguage = $element.prop('lang');\n var parentLanguage = $element.closest('[lang]').prop('lang');\n\n var languages = Array.prototype.concat.call(\n this._resolveLanguage(elementLanguage),\n this._resolveLanguage(optionLanguage),\n this._resolveLanguage(defaultLanguage),\n this._resolveLanguage(parentLanguage)\n );\n\n options.language = languages;\n\n return options;\n };\n\n Defaults.prototype._resolveLanguage = function (language) {\n if (!language) {\n return [];\n }\n\n if ($.isEmptyObject(language)) {\n return [];\n }\n\n if ($.isPlainObject(language)) {\n return [language];\n }\n\n var languages;\n\n if (!Array.isArray(language)) {\n languages = [language];\n } else {\n languages = language;\n }\n\n var resolvedLanguages = [];\n\n for (var l = 0; l < languages.length; l++) {\n resolvedLanguages.push(languages[l]);\n\n if (typeof languages[l] === 'string' && languages[l].indexOf('-') > 0) {\n // Extract the region information if it is included\n var languageParts = languages[l].split('-');\n var baseLanguage = languageParts[0];\n\n resolvedLanguages.push(baseLanguage);\n }\n }\n\n return resolvedLanguages;\n };\n\n Defaults.prototype._processTranslations = function (languages, debug) {\n var translations = new Translation();\n\n for (var l = 0; l < languages.length; l++) {\n var languageData = new Translation();\n\n var language = languages[l];\n\n if (typeof language === 'string') {\n try {\n // Try to load it with the original name\n languageData = Translation.loadPath(language);\n } catch (e) {\n try {\n // If we couldn't load it, check if it wasn't the full path\n language = this.defaults.amdLanguageBase + language;\n languageData = Translation.loadPath(language);\n } catch (ex) {\n // The translation could not be loaded at all. Sometimes this is\n // because of a configuration problem, other times this can be\n // because of how Select2 helps load all possible translation files\n if (debug && window.console && console.warn) {\n console.warn(\n 'Select2: The language file for \"' + language + '\" could ' +\n 'not be automatically loaded. A fallback will be used instead.'\n );\n }\n }\n }\n } else if ($.isPlainObject(language)) {\n languageData = new Translation(language);\n } else {\n languageData = language;\n }\n\n translations.extend(languageData);\n }\n\n return translations;\n };\n\n Defaults.prototype.set = function (key, value) {\n var camelKey = $.camelCase(key);\n\n var data = {};\n data[camelKey] = value;\n\n var convertedData = Utils._convertData(data);\n\n $.extend(true, this.defaults, convertedData);\n };\n\n var defaults = new Defaults();\n\n return defaults;\n});\n\nS2.define('select2/options',[\n 'jquery',\n './defaults',\n './utils'\n], function ($, Defaults, Utils) {\n function Options (options, $element) {\n this.options = options;\n\n if ($element != null) {\n this.fromElement($element);\n }\n\n if ($element != null) {\n this.options = Defaults.applyFromElement(this.options, $element);\n }\n\n this.options = Defaults.apply(this.options);\n }\n\n Options.prototype.fromElement = function ($e) {\n var excludedData = ['select2'];\n\n if (this.options.multiple == null) {\n this.options.multiple = $e.prop('multiple');\n }\n\n if (this.options.disabled == null) {\n this.options.disabled = $e.prop('disabled');\n }\n\n if (this.options.autocomplete == null && $e.prop('autocomplete')) {\n this.options.autocomplete = $e.prop('autocomplete');\n }\n\n if (this.options.dir == null) {\n if ($e.prop('dir')) {\n this.options.dir = $e.prop('dir');\n } else if ($e.closest('[dir]').prop('dir')) {\n this.options.dir = $e.closest('[dir]').prop('dir');\n } else {\n this.options.dir = 'ltr';\n }\n }\n\n $e.prop('disabled', this.options.disabled);\n $e.prop('multiple', this.options.multiple);\n\n if (Utils.GetData($e[0], 'select2Tags')) {\n if (this.options.debug && window.console && console.warn) {\n console.warn(\n 'Select2: The `data-select2-tags` attribute has been changed to ' +\n 'use the `data-data` and `data-tags=\"true\"` attributes and will be ' +\n 'removed in future versions of Select2.'\n );\n }\n\n Utils.StoreData($e[0], 'data', Utils.GetData($e[0], 'select2Tags'));\n Utils.StoreData($e[0], 'tags', true);\n }\n\n if (Utils.GetData($e[0], 'ajaxUrl')) {\n if (this.options.debug && window.console && console.warn) {\n console.warn(\n 'Select2: The `data-ajax-url` attribute has been changed to ' +\n '`data-ajax--url` and support for the old attribute will be removed' +\n ' in future versions of Select2.'\n );\n }\n\n $e.attr('ajax--url', Utils.GetData($e[0], 'ajaxUrl'));\n Utils.StoreData($e[0], 'ajax-Url', Utils.GetData($e[0], 'ajaxUrl'));\n }\n\n var dataset = {};\n\n function upperCaseLetter(_, letter) {\n return letter.toUpperCase();\n }\n\n // Pre-load all of the attributes which are prefixed with `data-`\n for (var attr = 0; attr < $e[0].attributes.length; attr++) {\n var attributeName = $e[0].attributes[attr].name;\n var prefix = 'data-';\n\n if (attributeName.substr(0, prefix.length) == prefix) {\n // Get the contents of the attribute after `data-`\n var dataName = attributeName.substring(prefix.length);\n\n // Get the data contents from the consistent source\n // This is more than likely the jQuery data helper\n var dataValue = Utils.GetData($e[0], dataName);\n\n // camelCase the attribute name to match the spec\n var camelDataName = dataName.replace(/-([a-z])/g, upperCaseLetter);\n\n // Store the data attribute contents into the dataset since\n dataset[camelDataName] = dataValue;\n }\n }\n\n // Prefer the element's `dataset` attribute if it exists\n // jQuery 1.x does not correctly handle data attributes with multiple dashes\n if ($.fn.jquery && $.fn.jquery.substr(0, 2) == '1.' && $e[0].dataset) {\n dataset = $.extend(true, {}, $e[0].dataset, dataset);\n }\n\n // Prefer our internal data cache if it exists\n var data = $.extend(true, {}, Utils.GetData($e[0]), dataset);\n\n data = Utils._convertData(data);\n\n for (var key in data) {\n if (excludedData.indexOf(key) > -1) {\n continue;\n }\n\n if ($.isPlainObject(this.options[key])) {\n $.extend(this.options[key], data[key]);\n } else {\n this.options[key] = data[key];\n }\n }\n\n return this;\n };\n\n Options.prototype.get = function (key) {\n return this.options[key];\n };\n\n Options.prototype.set = function (key, val) {\n this.options[key] = val;\n };\n\n return Options;\n});\n\nS2.define('select2/core',[\n 'jquery',\n './options',\n './utils',\n './keys'\n], function ($, Options, Utils, KEYS) {\n var Select2 = function ($element, options) {\n if (Utils.GetData($element[0], 'select2') != null) {\n Utils.GetData($element[0], 'select2').destroy();\n }\n\n this.$element = $element;\n\n this.id = this._generateId($element);\n\n options = options || {};\n\n this.options = new Options(options, $element);\n\n Select2.__super__.constructor.call(this);\n\n // Set up the tabindex\n\n var tabindex = $element.attr('tabindex') || 0;\n Utils.StoreData($element[0], 'old-tabindex', tabindex);\n $element.attr('tabindex', '-1');\n\n // Set up containers and adapters\n\n var DataAdapter = this.options.get('dataAdapter');\n this.dataAdapter = new DataAdapter($element, this.options);\n\n var $container = this.render();\n\n this._placeContainer($container);\n\n var SelectionAdapter = this.options.get('selectionAdapter');\n this.selection = new SelectionAdapter($element, this.options);\n this.$selection = this.selection.render();\n\n this.selection.position(this.$selection, $container);\n\n var DropdownAdapter = this.options.get('dropdownAdapter');\n this.dropdown = new DropdownAdapter($element, this.options);\n this.$dropdown = this.dropdown.render();\n\n this.dropdown.position(this.$dropdown, $container);\n\n var ResultsAdapter = this.options.get('resultsAdapter');\n this.results = new ResultsAdapter($element, this.options, this.dataAdapter);\n this.$results = this.results.render();\n\n this.results.position(this.$results, this.$dropdown);\n\n // Bind events\n\n var self = this;\n\n // Bind the container to all of the adapters\n this._bindAdapters();\n\n // Register any DOM event handlers\n this._registerDomEvents();\n\n // Register any internal event handlers\n this._registerDataEvents();\n this._registerSelectionEvents();\n this._registerDropdownEvents();\n this._registerResultsEvents();\n this._registerEvents();\n\n // Set the initial state\n this.dataAdapter.current(function (initialData) {\n self.trigger('selection:update', {\n data: initialData\n });\n });\n\n // Hide the original select\n $element[0].classList.add('select2-hidden-accessible');\n $element.attr('aria-hidden', 'true');\n\n // Synchronize any monitored attributes\n this._syncAttributes();\n\n Utils.StoreData($element[0], 'select2', this);\n\n // Ensure backwards compatibility with $element.data('select2').\n $element.data('select2', this);\n };\n\n Utils.Extend(Select2, Utils.Observable);\n\n Select2.prototype._generateId = function ($element) {\n var id = '';\n\n if ($element.attr('id') != null) {\n id = $element.attr('id');\n } else if ($element.attr('name') != null) {\n id = $element.attr('name') + '-' + Utils.generateChars(2);\n } else {\n id = Utils.generateChars(4);\n }\n\n id = id.replace(/(:|\\.|\\[|\\]|,)/g, '');\n id = 'select2-' + id;\n\n return id;\n };\n\n Select2.prototype._placeContainer = function ($container) {\n $container.insertAfter(this.$element);\n\n var width = this._resolveWidth(this.$element, this.options.get('width'));\n\n if (width != null) {\n $container.css('width', width);\n }\n };\n\n Select2.prototype._resolveWidth = function ($element, method) {\n var WIDTH = /^width:(([-+]?([0-9]*\\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;\n\n if (method == 'resolve') {\n var styleWidth = this._resolveWidth($element, 'style');\n\n if (styleWidth != null) {\n return styleWidth;\n }\n\n return this._resolveWidth($element, 'element');\n }\n\n if (method == 'element') {\n var elementWidth = $element.outerWidth(false);\n\n if (elementWidth <= 0) {\n return 'auto';\n }\n\n return elementWidth + 'px';\n }\n\n if (method == 'style') {\n var style = $element.attr('style');\n\n if (typeof(style) !== 'string') {\n return null;\n }\n\n var attrs = style.split(';');\n\n for (var i = 0, l = attrs.length; i < l; i = i + 1) {\n var attr = attrs[i].replace(/\\s/g, '');\n var matches = attr.match(WIDTH);\n\n if (matches !== null && matches.length >= 1) {\n return matches[1];\n }\n }\n\n return null;\n }\n\n if (method == 'computedstyle') {\n var computedStyle = window.getComputedStyle($element[0]);\n\n return computedStyle.width;\n }\n\n return method;\n };\n\n Select2.prototype._bindAdapters = function () {\n this.dataAdapter.bind(this, this.$container);\n this.selection.bind(this, this.$container);\n\n this.dropdown.bind(this, this.$container);\n this.results.bind(this, this.$container);\n };\n\n Select2.prototype._registerDomEvents = function () {\n var self = this;\n\n this.$element.on('change.select2', function () {\n self.dataAdapter.current(function (data) {\n self.trigger('selection:update', {\n data: data\n });\n });\n });\n\n this.$element.on('focus.select2', function (evt) {\n self.trigger('focus', evt);\n });\n\n this._syncA = Utils.bind(this._syncAttributes, this);\n this._syncS = Utils.bind(this._syncSubtree, this);\n\n this._observer = new window.MutationObserver(function (mutations) {\n self._syncA();\n self._syncS(mutations);\n });\n this._observer.observe(this.$element[0], {\n attributes: true,\n childList: true,\n subtree: false\n });\n };\n\n Select2.prototype._registerDataEvents = function () {\n var self = this;\n\n this.dataAdapter.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerSelectionEvents = function () {\n var self = this;\n var nonRelayEvents = ['toggle', 'focus'];\n\n this.selection.on('toggle', function () {\n self.toggleDropdown();\n });\n\n this.selection.on('focus', function (params) {\n self.focus(params);\n });\n\n this.selection.on('*', function (name, params) {\n if (nonRelayEvents.indexOf(name) !== -1) {\n return;\n }\n\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerDropdownEvents = function () {\n var self = this;\n\n this.dropdown.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerResultsEvents = function () {\n var self = this;\n\n this.results.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerEvents = function () {\n var self = this;\n\n this.on('open', function () {\n self.$container[0].classList.add('select2-container--open');\n });\n\n this.on('close', function () {\n self.$container[0].classList.remove('select2-container--open');\n });\n\n this.on('enable', function () {\n self.$container[0].classList.remove('select2-container--disabled');\n });\n\n this.on('disable', function () {\n self.$container[0].classList.add('select2-container--disabled');\n });\n\n this.on('blur', function () {\n self.$container[0].classList.remove('select2-container--focus');\n });\n\n this.on('query', function (params) {\n if (!self.isOpen()) {\n self.trigger('open', {});\n }\n\n this.dataAdapter.query(params, function (data) {\n self.trigger('results:all', {\n data: data,\n query: params\n });\n });\n });\n\n this.on('query:append', function (params) {\n this.dataAdapter.query(params, function (data) {\n self.trigger('results:append', {\n data: data,\n query: params\n });\n });\n });\n\n this.on('keypress', function (evt) {\n var key = evt.which;\n\n if (self.isOpen()) {\n if (key === KEYS.ESC || (key === KEYS.UP && evt.altKey)) {\n self.close(evt);\n\n evt.preventDefault();\n } else if (key === KEYS.ENTER || key === KEYS.TAB) {\n self.trigger('results:select', {});\n\n evt.preventDefault();\n } else if ((key === KEYS.SPACE && evt.ctrlKey)) {\n self.trigger('results:toggle', {});\n\n evt.preventDefault();\n } else if (key === KEYS.UP) {\n self.trigger('results:previous', {});\n\n evt.preventDefault();\n } else if (key === KEYS.DOWN) {\n self.trigger('results:next', {});\n\n evt.preventDefault();\n }\n } else {\n if (key === KEYS.ENTER || key === KEYS.SPACE ||\n (key === KEYS.DOWN && evt.altKey)) {\n self.open();\n\n evt.preventDefault();\n }\n }\n });\n };\n\n Select2.prototype._syncAttributes = function () {\n this.options.set('disabled', this.$element.prop('disabled'));\n\n if (this.isDisabled()) {\n if (this.isOpen()) {\n this.close();\n }\n\n this.trigger('disable', {});\n } else {\n this.trigger('enable', {});\n }\n };\n\n Select2.prototype._isChangeMutation = function (mutations) {\n var self = this;\n\n if (mutations.addedNodes && mutations.addedNodes.length > 0) {\n for (var n = 0; n < mutations.addedNodes.length; n++) {\n var node = mutations.addedNodes[n];\n\n if (node.selected) {\n return true;\n }\n }\n } else if (mutations.removedNodes && mutations.removedNodes.length > 0) {\n return true;\n } else if (Array.isArray(mutations)) {\n return mutations.some(function (mutation) {\n return self._isChangeMutation(mutation);\n });\n }\n\n return false;\n };\n\n Select2.prototype._syncSubtree = function (mutations) {\n var changed = this._isChangeMutation(mutations);\n var self = this;\n\n // Only re-pull the data if we think there is a change\n if (changed) {\n this.dataAdapter.current(function (currentData) {\n self.trigger('selection:update', {\n data: currentData\n });\n });\n }\n };\n\n /**\n * Override the trigger method to automatically trigger pre-events when\n * there are events that can be prevented.\n */\n Select2.prototype.trigger = function (name, args) {\n var actualTrigger = Select2.__super__.trigger;\n var preTriggerMap = {\n 'open': 'opening',\n 'close': 'closing',\n 'select': 'selecting',\n 'unselect': 'unselecting',\n 'clear': 'clearing'\n };\n\n if (args === undefined) {\n args = {};\n }\n\n if (name in preTriggerMap) {\n var preTriggerName = preTriggerMap[name];\n var preTriggerArgs = {\n prevented: false,\n name: name,\n args: args\n };\n\n actualTrigger.call(this, preTriggerName, preTriggerArgs);\n\n if (preTriggerArgs.prevented) {\n args.prevented = true;\n\n return;\n }\n }\n\n actualTrigger.call(this, name, args);\n };\n\n Select2.prototype.toggleDropdown = function () {\n if (this.isDisabled()) {\n return;\n }\n\n if (this.isOpen()) {\n this.close();\n } else {\n this.open();\n }\n };\n\n Select2.prototype.open = function () {\n if (this.isOpen()) {\n return;\n }\n\n if (this.isDisabled()) {\n return;\n }\n\n this.trigger('query', {});\n };\n\n Select2.prototype.close = function (evt) {\n if (!this.isOpen()) {\n return;\n }\n\n this.trigger('close', { originalEvent : evt });\n };\n\n /**\n * Helper method to abstract the \"enabled\" (not \"disabled\") state of this\n * object.\n *\n * @return {true} if the instance is not disabled.\n * @return {false} if the instance is disabled.\n */\n Select2.prototype.isEnabled = function () {\n return !this.isDisabled();\n };\n\n /**\n * Helper method to abstract the \"disabled\" state of this object.\n *\n * @return {true} if the disabled option is true.\n * @return {false} if the disabled option is false.\n */\n Select2.prototype.isDisabled = function () {\n return this.options.get('disabled');\n };\n\n Select2.prototype.isOpen = function () {\n return this.$container[0].classList.contains('select2-container--open');\n };\n\n Select2.prototype.hasFocus = function () {\n return this.$container[0].classList.contains('select2-container--focus');\n };\n\n Select2.prototype.focus = function (data) {\n // No need to re-trigger focus events if we are already focused\n if (this.hasFocus()) {\n return;\n }\n\n this.$container[0].classList.add('select2-container--focus');\n this.trigger('focus', {});\n };\n\n Select2.prototype.enable = function (args) {\n if (this.options.get('debug') && window.console && console.warn) {\n console.warn(\n 'Select2: The `select2(\"enable\")` method has been deprecated and will' +\n ' be removed in later Select2 versions. Use $element.prop(\"disabled\")' +\n ' instead.'\n );\n }\n\n if (args == null || args.length === 0) {\n args = [true];\n }\n\n var disabled = !args[0];\n\n this.$element.prop('disabled', disabled);\n };\n\n Select2.prototype.data = function () {\n if (this.options.get('debug') &&\n arguments.length > 0 && window.console && console.warn) {\n console.warn(\n 'Select2: Data can no longer be set using `select2(\"data\")`. You ' +\n 'should consider setting the value instead using `$element.val()`.'\n );\n }\n\n var data = [];\n\n this.dataAdapter.current(function (currentData) {\n data = currentData;\n });\n\n return data;\n };\n\n Select2.prototype.val = function (args) {\n if (this.options.get('debug') && window.console && console.warn) {\n console.warn(\n 'Select2: The `select2(\"val\")` method has been deprecated and will be' +\n ' removed in later Select2 versions. Use $element.val() instead.'\n );\n }\n\n if (args == null || args.length === 0) {\n return this.$element.val();\n }\n\n var newVal = args[0];\n\n if (Array.isArray(newVal)) {\n newVal = newVal.map(function (obj) {\n return obj.toString();\n });\n }\n\n this.$element.val(newVal).trigger('input').trigger('change');\n };\n\n Select2.prototype.destroy = function () {\n Utils.RemoveData(this.$container[0]);\n this.$container.remove();\n\n this._observer.disconnect();\n this._observer = null;\n\n this._syncA = null;\n this._syncS = null;\n\n this.$element.off('.select2');\n this.$element.attr('tabindex',\n Utils.GetData(this.$element[0], 'old-tabindex'));\n\n this.$element[0].classList.remove('select2-hidden-accessible');\n this.$element.attr('aria-hidden', 'false');\n Utils.RemoveData(this.$element[0]);\n this.$element.removeData('select2');\n\n this.dataAdapter.destroy();\n this.selection.destroy();\n this.dropdown.destroy();\n this.results.destroy();\n\n this.dataAdapter = null;\n this.selection = null;\n this.dropdown = null;\n this.results = null;\n };\n\n Select2.prototype.render = function () {\n var $container = $(\n '<span class=\"select2 select2-container\">' +\n '<span class=\"selection\"></span>' +\n '<span class=\"dropdown-wrapper\" aria-hidden=\"true\"></span>' +\n '</span>'\n );\n\n $container.attr('dir', this.options.get('dir'));\n\n this.$container = $container;\n\n this.$container[0].classList\n .add('select2-container--' + this.options.get('theme'));\n\n Utils.StoreData($container[0], 'element', this.$element);\n\n return $container;\n };\n\n return Select2;\n});\n\nS2.define('jquery-mousewheel',[\n 'jquery'\n], function ($) {\n // Used to shim jQuery.mousewheel for non-full builds.\n return $;\n});\n\nS2.define('jquery.select2',[\n 'jquery',\n 'jquery-mousewheel',\n\n './select2/core',\n './select2/defaults',\n './select2/utils'\n], function ($, _, Select2, Defaults, Utils) {\n if ($.fn.select2 == null) {\n // All methods that should return the element\n var thisMethods = ['open', 'close', 'destroy'];\n\n $.fn.select2 = function (options) {\n options = options || {};\n\n if (typeof options === 'object') {\n this.each(function () {\n var instanceOptions = $.extend(true, {}, options);\n\n var instance = new Select2($(this), instanceOptions);\n });\n\n return this;\n } else if (typeof options === 'string') {\n var ret;\n var args = Array.prototype.slice.call(arguments, 1);\n\n this.each(function () {\n var instance = Utils.GetData(this, 'select2');\n\n if (instance == null && window.console && console.error) {\n console.error(\n 'The select2(\\'' + options + '\\') method was called on an ' +\n 'element that is not using Select2.'\n );\n }\n\n ret = instance[options].apply(instance, args);\n });\n\n // Check if we should be returning `this`\n if (thisMethods.indexOf(options) > -1) {\n return this;\n }\n\n return ret;\n } else {\n throw new Error('Invalid arguments for Select2: ' + options);\n }\n };\n }\n\n if ($.fn.select2.defaults == null) {\n $.fn.select2.defaults = Defaults;\n }\n\n return Select2;\n});\n\n // Return the AMD loader configuration so it can be used outside of this file\n return {\n define: S2.define,\n require: S2.require\n };\n}());\n\n // Autoload the jQuery bindings\n // We know that all of the modules exist above this, so we're safe\n var select2 = S2.require('jquery.select2');\n\n // Hold the AMD module references on the jQuery function that was just loaded\n // This allows Select2 to use the internal loader outside of this file, such\n // as in the language files.\n jQuery.fn.select2.amd = S2;\n\n // Return the Select2 instance for anyone who is importing it.\n return select2;\n}));\n", "/*!\n * Bootstrap v5.3.1 (https://getbootstrap.com/)\n * Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.bootstrap = factory());\n})(this, (function () { 'use strict';\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * Constants\n */\n\n const elementMap = new Map();\n const Data = {\n set(element, key, instance) {\n if (!elementMap.has(element)) {\n elementMap.set(element, new Map());\n }\n const instanceMap = elementMap.get(element);\n\n // make it clear we only want one instance per element\n // can be removed later when multiple key/instances are fine to be used\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\n // eslint-disable-next-line no-console\n console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`);\n return;\n }\n instanceMap.set(key, instance);\n },\n get(element, key) {\n if (elementMap.has(element)) {\n return elementMap.get(element).get(key) || null;\n }\n return null;\n },\n remove(element, key) {\n if (!elementMap.has(element)) {\n return;\n }\n const instanceMap = elementMap.get(element);\n instanceMap.delete(key);\n\n // free up element references if there are no instances left for an element\n if (instanceMap.size === 0) {\n elementMap.delete(element);\n }\n }\n };\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n const MAX_UID = 1000000;\n const MILLISECONDS_MULTIPLIER = 1000;\n const TRANSITION_END = 'transitionend';\n\n /**\n * Properly escape IDs selectors to handle weird IDs\n * @param {string} selector\n * @returns {string}\n */\n const parseSelector = selector => {\n if (selector && window.CSS && window.CSS.escape) {\n // document.querySelector needs escaping to handle IDs (html5+) containing for instance /\n selector = selector.replace(/#([^\\s\"#']+)/g, (match, id) => `#${CSS.escape(id)}`);\n }\n return selector;\n };\n\n // Shout-out Angus Croll (https://goo.gl/pxwQGp)\n const toType = object => {\n if (object === null || object === undefined) {\n return `${object}`;\n }\n return Object.prototype.toString.call(object).match(/\\s([a-z]+)/i)[1].toLowerCase();\n };\n\n /**\n * Public Util API\n */\n\n const getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID);\n } while (document.getElementById(prefix));\n return prefix;\n };\n const getTransitionDurationFromElement = element => {\n if (!element) {\n return 0;\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element);\n const floatTransitionDuration = Number.parseFloat(transitionDuration);\n const floatTransitionDelay = Number.parseFloat(transitionDelay);\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0;\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0];\n transitionDelay = transitionDelay.split(',')[0];\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n };\n const triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END));\n };\n const isElement$1 = object => {\n if (!object || typeof object !== 'object') {\n return false;\n }\n if (typeof object.jquery !== 'undefined') {\n object = object[0];\n }\n return typeof object.nodeType !== 'undefined';\n };\n const getElement = object => {\n // it's a jQuery object or a node element\n if (isElement$1(object)) {\n return object.jquery ? object[0] : object;\n }\n if (typeof object === 'string' && object.length > 0) {\n return document.querySelector(parseSelector(object));\n }\n return null;\n };\n const isVisible = element => {\n if (!isElement$1(element) || element.getClientRects().length === 0) {\n return false;\n }\n const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible';\n // Handle `details` element as its content may falsie appear visible when it is closed\n const closedDetails = element.closest('details:not([open])');\n if (!closedDetails) {\n return elementIsVisible;\n }\n if (closedDetails !== element) {\n const summary = element.closest('summary');\n if (summary && summary.parentNode !== closedDetails) {\n return false;\n }\n if (summary === null) {\n return false;\n }\n }\n return elementIsVisible;\n };\n const isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true;\n }\n if (element.classList.contains('disabled')) {\n return true;\n }\n if (typeof element.disabled !== 'undefined') {\n return element.disabled;\n }\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false';\n };\n const findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null;\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode();\n return root instanceof ShadowRoot ? root : null;\n }\n if (element instanceof ShadowRoot) {\n return element;\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null;\n }\n return findShadowRoot(element.parentNode);\n };\n const noop = () => {};\n\n /**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\n const reflow = element => {\n element.offsetHeight; // eslint-disable-line no-unused-expressions\n };\n\n const getjQuery = () => {\n if (window.jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return window.jQuery;\n }\n return null;\n };\n const DOMContentLoadedCallbacks = [];\n const onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n for (const callback of DOMContentLoadedCallbacks) {\n callback();\n }\n });\n }\n DOMContentLoadedCallbacks.push(callback);\n } else {\n callback();\n }\n };\n const isRTL = () => document.documentElement.dir === 'rtl';\n const defineJQueryPlugin = plugin => {\n onDOMContentLoaded(() => {\n const $ = getjQuery();\n /* istanbul ignore if */\n if ($) {\n const name = plugin.NAME;\n const JQUERY_NO_CONFLICT = $.fn[name];\n $.fn[name] = plugin.jQueryInterface;\n $.fn[name].Constructor = plugin;\n $.fn[name].noConflict = () => {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n };\n const execute = (possibleCallback, args = [], defaultValue = possibleCallback) => {\n return typeof possibleCallback === 'function' ? possibleCallback(...args) : defaultValue;\n };\n const executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback);\n return;\n }\n const durationPadding = 5;\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding;\n let called = false;\n const handler = ({\n target\n }) => {\n if (target !== transitionElement) {\n return;\n }\n called = true;\n transitionElement.removeEventListener(TRANSITION_END, handler);\n execute(callback);\n };\n transitionElement.addEventListener(TRANSITION_END, handler);\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement);\n }\n }, emulatedDuration);\n };\n\n /**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\n const getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n const listLength = list.length;\n let index = list.indexOf(activeElement);\n\n // if the element does not exist in the list return an element\n // depending on the direction and if cycle is allowed\n if (index === -1) {\n return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0];\n }\n index += shouldGetNext ? 1 : -1;\n if (isCycleAllowed) {\n index = (index + listLength) % listLength;\n }\n return list[Math.max(0, Math.min(index, listLength - 1))];\n };\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n /**\n * Constants\n */\n\n const namespaceRegex = /[^.]*(?=\\..*)\\.|.*/;\n const stripNameRegex = /\\..*/;\n const stripUidRegex = /::\\d+$/;\n const eventRegistry = {}; // Events storage\n let uidEvent = 1;\n const customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n };\n const nativeEvents = new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']);\n\n /**\n * Private methods\n */\n\n function makeEventUid(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++;\n }\n function getElementEvents(element) {\n const uid = makeEventUid(element);\n element.uidEvent = uid;\n eventRegistry[uid] = eventRegistry[uid] || {};\n return eventRegistry[uid];\n }\n function bootstrapHandler(element, fn) {\n return function handler(event) {\n hydrateObj(event, {\n delegateTarget: element\n });\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn);\n }\n return fn.apply(element, [event]);\n };\n }\n function bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector);\n for (let {\n target\n } = event; target && target !== this; target = target.parentNode) {\n for (const domElement of domElements) {\n if (domElement !== target) {\n continue;\n }\n hydrateObj(event, {\n delegateTarget: target\n });\n if (handler.oneOff) {\n EventHandler.off(element, event.type, selector, fn);\n }\n return fn.apply(target, [event]);\n }\n }\n };\n }\n function findHandler(events, callable, delegationSelector = null) {\n return Object.values(events).find(event => event.callable === callable && event.delegationSelector === delegationSelector);\n }\n function normalizeParameters(originalTypeEvent, handler, delegationFunction) {\n const isDelegated = typeof handler === 'string';\n // TODO: tooltip passes `false` instead of selector, so we need to check\n const callable = isDelegated ? delegationFunction : handler || delegationFunction;\n let typeEvent = getTypeEvent(originalTypeEvent);\n if (!nativeEvents.has(typeEvent)) {\n typeEvent = originalTypeEvent;\n }\n return [isDelegated, callable, typeEvent];\n }\n function addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return;\n }\n let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction);\n\n // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n // this prevents the handler from being dispatched the same way as mouseover or mouseout does\n if (originalTypeEvent in customEvents) {\n const wrapFunction = fn => {\n return function (event) {\n if (!event.relatedTarget || event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget)) {\n return fn.call(this, event);\n }\n };\n };\n callable = wrapFunction(callable);\n }\n const events = getElementEvents(element);\n const handlers = events[typeEvent] || (events[typeEvent] = {});\n const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null);\n if (previousFunction) {\n previousFunction.oneOff = previousFunction.oneOff && oneOff;\n return;\n }\n const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''));\n const fn = isDelegated ? bootstrapDelegationHandler(element, handler, callable) : bootstrapHandler(element, callable);\n fn.delegationSelector = isDelegated ? handler : null;\n fn.callable = callable;\n fn.oneOff = oneOff;\n fn.uidEvent = uid;\n handlers[uid] = fn;\n element.addEventListener(typeEvent, fn, isDelegated);\n }\n function removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector);\n if (!fn) {\n return;\n }\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector));\n delete events[typeEvent][fn.uidEvent];\n }\n function removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {};\n for (const [handlerKey, event] of Object.entries(storeElementEvent)) {\n if (handlerKey.includes(namespace)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);\n }\n }\n }\n function getTypeEvent(event) {\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n event = event.replace(stripNameRegex, '');\n return customEvents[event] || event;\n }\n const EventHandler = {\n on(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, false);\n },\n one(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, true);\n },\n off(element, originalTypeEvent, handler, delegationFunction) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return;\n }\n const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction);\n const inNamespace = typeEvent !== originalTypeEvent;\n const events = getElementEvents(element);\n const storeElementEvent = events[typeEvent] || {};\n const isNamespace = originalTypeEvent.startsWith('.');\n if (typeof callable !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!Object.keys(storeElementEvent).length) {\n return;\n }\n removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null);\n return;\n }\n if (isNamespace) {\n for (const elementEvent of Object.keys(events)) {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1));\n }\n }\n for (const [keyHandlers, event] of Object.entries(storeElementEvent)) {\n const handlerKey = keyHandlers.replace(stripUidRegex, '');\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);\n }\n }\n },\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null;\n }\n const $ = getjQuery();\n const typeEvent = getTypeEvent(event);\n const inNamespace = event !== typeEvent;\n let jQueryEvent = null;\n let bubbles = true;\n let nativeDispatch = true;\n let defaultPrevented = false;\n if (inNamespace && $) {\n jQueryEvent = $.Event(event, args);\n $(element).trigger(jQueryEvent);\n bubbles = !jQueryEvent.isPropagationStopped();\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped();\n defaultPrevented = jQueryEvent.isDefaultPrevented();\n }\n const evt = hydrateObj(new Event(event, {\n bubbles,\n cancelable: true\n }), args);\n if (defaultPrevented) {\n evt.preventDefault();\n }\n if (nativeDispatch) {\n element.dispatchEvent(evt);\n }\n if (evt.defaultPrevented && jQueryEvent) {\n jQueryEvent.preventDefault();\n }\n return evt;\n }\n };\n function hydrateObj(obj, meta = {}) {\n for (const [key, value] of Object.entries(meta)) {\n try {\n obj[key] = value;\n } catch (_unused) {\n Object.defineProperty(obj, key, {\n configurable: true,\n get() {\n return value;\n }\n });\n }\n }\n return obj;\n }\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n function normalizeData(value) {\n if (value === 'true') {\n return true;\n }\n if (value === 'false') {\n return false;\n }\n if (value === Number(value).toString()) {\n return Number(value);\n }\n if (value === '' || value === 'null') {\n return null;\n }\n if (typeof value !== 'string') {\n return value;\n }\n try {\n return JSON.parse(decodeURIComponent(value));\n } catch (_unused) {\n return value;\n }\n }\n function normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`);\n }\n const Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value);\n },\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-bs-${normalizeDataKey(key)}`);\n },\n getDataAttributes(element) {\n if (!element) {\n return {};\n }\n const attributes = {};\n const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig'));\n for (const key of bsKeys) {\n let pureKey = key.replace(/^bs/, '');\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);\n attributes[pureKey] = normalizeData(element.dataset[key]);\n }\n return attributes;\n },\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`));\n }\n };\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap util/config.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n /**\n * Class definition\n */\n\n class Config {\n // Getters\n static get Default() {\n return {};\n }\n static get DefaultType() {\n return {};\n }\n static get NAME() {\n throw new Error('You have to implement the static method \"NAME\", for each component!');\n }\n _getConfig(config) {\n config = this._mergeConfigObj(config);\n config = this._configAfterMerge(config);\n this._typeCheckConfig(config);\n return config;\n }\n _configAfterMerge(config) {\n return config;\n }\n _mergeConfigObj(config, element) {\n const jsonConfig = isElement$1(element) ? Manipulator.getDataAttribute(element, 'config') : {}; // try to parse\n\n return {\n ...this.constructor.Default,\n ...(typeof jsonConfig === 'object' ? jsonConfig : {}),\n ...(isElement$1(element) ? Manipulator.getDataAttributes(element) : {}),\n ...(typeof config === 'object' ? config : {})\n };\n }\n _typeCheckConfig(config, configTypes = this.constructor.DefaultType) {\n for (const [property, expectedTypes] of Object.entries(configTypes)) {\n const value = config[property];\n const valueType = isElement$1(value) ? 'element' : toType(value);\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`);\n }\n }\n }\n }\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n /**\n * Constants\n */\n\n const VERSION = '5.3.1';\n\n /**\n * Class definition\n */\n\n class BaseComponent extends Config {\n constructor(element, config) {\n super();\n element = getElement(element);\n if (!element) {\n return;\n }\n this._element = element;\n this._config = this._getConfig(config);\n Data.set(this._element, this.constructor.DATA_KEY, this);\n }\n\n // Public\n dispose() {\n Data.remove(this._element, this.constructor.DATA_KEY);\n EventHandler.off(this._element, this.constructor.EVENT_KEY);\n for (const propertyName of Object.getOwnPropertyNames(this)) {\n this[propertyName] = null;\n }\n }\n _queueCallback(callback, element, isAnimated = true) {\n executeAfterTransition(callback, element, isAnimated);\n }\n _getConfig(config) {\n config = this._mergeConfigObj(config, this._element);\n config = this._configAfterMerge(config);\n this._typeCheckConfig(config);\n return config;\n }\n\n // Static\n static getInstance(element) {\n return Data.get(getElement(element), this.DATA_KEY);\n }\n static getOrCreateInstance(element, config = {}) {\n return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null);\n }\n static get VERSION() {\n return VERSION;\n }\n static get DATA_KEY() {\n return `bs.${this.NAME}`;\n }\n static get EVENT_KEY() {\n return `.${this.DATA_KEY}`;\n }\n static eventName(name) {\n return `${name}${this.EVENT_KEY}`;\n }\n }\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n const getSelector = element => {\n let selector = element.getAttribute('data-bs-target');\n if (!selector || selector === '#') {\n let hrefAttribute = element.getAttribute('href');\n\n // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n if (!hrefAttribute || !hrefAttribute.includes('#') && !hrefAttribute.startsWith('.')) {\n return null;\n }\n\n // Just in case some CMS puts out a full URL with the anchor appended\n if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) {\n hrefAttribute = `#${hrefAttribute.split('#')[1]}`;\n }\n selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null;\n }\n return parseSelector(selector);\n };\n const SelectorEngine = {\n find(selector, element = document.documentElement) {\n return [].concat(...Element.prototype.querySelectorAll.call(element, selector));\n },\n findOne(selector, element = document.documentElement) {\n return Element.prototype.querySelector.call(element, selector);\n },\n children(element, selector) {\n return [].concat(...element.children).filter(child => child.matches(selector));\n },\n parents(element, selector) {\n const parents = [];\n let ancestor = element.parentNode.closest(selector);\n while (ancestor) {\n parents.push(ancestor);\n ancestor = ancestor.parentNode.closest(selector);\n }\n return parents;\n },\n prev(element, selector) {\n let previous = element.previousElementSibling;\n while (previous) {\n if (previous.matches(selector)) {\n return [previous];\n }\n previous = previous.previousElementSibling;\n }\n return [];\n },\n // TODO: this is now unused; remove later along with prev()\n next(element, selector) {\n let next = element.nextElementSibling;\n while (next) {\n if (next.matches(selector)) {\n return [next];\n }\n next = next.nextElementSibling;\n }\n return [];\n },\n focusableChildren(element) {\n const focusables = ['a', 'button', 'input', 'textarea', 'select', 'details', '[tabindex]', '[contenteditable=\"true\"]'].map(selector => `${selector}:not([tabindex^=\"-\"])`).join(',');\n return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el));\n },\n getSelectorFromElement(element) {\n const selector = getSelector(element);\n if (selector) {\n return SelectorEngine.findOne(selector) ? selector : null;\n }\n return null;\n },\n getElementFromSelector(element) {\n const selector = getSelector(element);\n return selector ? SelectorEngine.findOne(selector) : null;\n },\n getMultipleElementsFromSelector(element) {\n const selector = getSelector(element);\n return selector ? SelectorEngine.find(selector) : [];\n }\n };\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap util/component-functions.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n const enableDismissTrigger = (component, method = 'hide') => {\n const clickEvent = `click.dismiss${component.EVENT_KEY}`;\n const name = component.NAME;\n EventHandler.on(document, clickEvent, `[data-bs-dismiss=\"${name}\"]`, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n if (isDisabled(this)) {\n return;\n }\n const target = SelectorEngine.getElementFromSelector(this) || this.closest(`.${name}`);\n const instance = component.getOrCreateInstance(target);\n\n // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method\n instance[method]();\n });\n };\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n /**\n * Constants\n */\n\n const NAME$f = 'alert';\n const DATA_KEY$a = 'bs.alert';\n const EVENT_KEY$b = `.${DATA_KEY$a}`;\n const EVENT_CLOSE = `close${EVENT_KEY$b}`;\n const EVENT_CLOSED = `closed${EVENT_KEY$b}`;\n const CLASS_NAME_FADE$5 = 'fade';\n const CLASS_NAME_SHOW$8 = 'show';\n\n /**\n * Class definition\n */\n\n class Alert extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME$f;\n }\n\n // Public\n close() {\n const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE);\n if (closeEvent.defaultPrevented) {\n return;\n }\n this._element.classList.remove(CLASS_NAME_SHOW$8);\n const isAnimated = this._element.classList.contains(CLASS_NAME_FADE$5);\n this._queueCallback(() => this._destroyElement(), this._element, isAnimated);\n }\n\n // Private\n _destroyElement() {\n this._element.remove();\n EventHandler.trigger(this._element, EVENT_CLOSED);\n this.dispose();\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Alert.getOrCreateInstance(this);\n if (typeof config !== 'string') {\n return;\n }\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config](this);\n });\n }\n }\n\n /**\n * Data API implementation\n */\n\n enableDismissTrigger(Alert, 'close');\n\n /**\n * jQuery\n */\n\n defineJQueryPlugin(Alert);\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n /**\n * Constants\n */\n\n const NAME$e = 'button';\n const DATA_KEY$9 = 'bs.button';\n const EVENT_KEY$a = `.${DATA_KEY$9}`;\n const DATA_API_KEY$6 = '.data-api';\n const CLASS_NAME_ACTIVE$3 = 'active';\n const SELECTOR_DATA_TOGGLE$5 = '[data-bs-toggle=\"button\"]';\n const EVENT_CLICK_DATA_API$6 = `click${EVENT_KEY$a}${DATA_API_KEY$6}`;\n\n /**\n * Class definition\n */\n\n class Button extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME$e;\n }\n\n // Public\n toggle() {\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE$3));\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Button.getOrCreateInstance(this);\n if (config === 'toggle') {\n data[config]();\n }\n });\n }\n }\n\n /**\n * Data API implementation\n */\n\n EventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$5, event => {\n event.preventDefault();\n const button = event.target.closest(SELECTOR_DATA_TOGGLE$5);\n const data = Button.getOrCreateInstance(button);\n data.toggle();\n });\n\n /**\n * jQuery\n */\n\n defineJQueryPlugin(Button);\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap util/swipe.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n /**\n * Constants\n */\n\n const NAME$d = 'swipe';\n const EVENT_KEY$9 = '.bs.swipe';\n const EVENT_TOUCHSTART = `touchstart${EVENT_KEY$9}`;\n const EVENT_TOUCHMOVE = `touchmove${EVENT_KEY$9}`;\n const EVENT_TOUCHEND = `touchend${EVENT_KEY$9}`;\n const EVENT_POINTERDOWN = `pointerdown${EVENT_KEY$9}`;\n const EVENT_POINTERUP = `pointerup${EVENT_KEY$9}`;\n const POINTER_TYPE_TOUCH = 'touch';\n const POINTER_TYPE_PEN = 'pen';\n const CLASS_NAME_POINTER_EVENT = 'pointer-event';\n const SWIPE_THRESHOLD = 40;\n const Default$c = {\n endCallback: null,\n leftCallback: null,\n rightCallback: null\n };\n const DefaultType$c = {\n endCallback: '(function|null)',\n leftCallback: '(function|null)',\n rightCallback: '(function|null)'\n };\n\n /**\n * Class definition\n */\n\n class Swipe extends Config {\n constructor(element, config) {\n super();\n this._element = element;\n if (!element || !Swipe.isSupported()) {\n return;\n }\n this._config = this._getConfig(config);\n this._deltaX = 0;\n this._supportPointerEvents = Boolean(window.PointerEvent);\n this._initEvents();\n }\n\n // Getters\n static get Default() {\n return Default$c;\n }\n static get DefaultType() {\n return DefaultType$c;\n }\n static get NAME() {\n return NAME$d;\n }\n\n // Public\n dispose() {\n EventHandler.off(this._element, EVENT_KEY$9);\n }\n\n // Private\n _start(event) {\n if (!this._supportPointerEvents) {\n this._deltaX = event.touches[0].clientX;\n return;\n }\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX;\n }\n }\n _end(event) {\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX - this._deltaX;\n }\n this._handleSwipe();\n execute(this._config.endCallback);\n }\n _move(event) {\n this._deltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this._deltaX;\n }\n _handleSwipe() {\n const absDeltaX = Math.abs(this._deltaX);\n if (absDeltaX <= SWIPE_THRESHOLD) {\n return;\n }\n const direction = absDeltaX / this._deltaX;\n this._deltaX = 0;\n if (!direction) {\n return;\n }\n execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback);\n }\n _initEvents() {\n if (this._supportPointerEvents) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event));\n EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event));\n this._element.classList.add(CLASS_NAME_POINTER_EVENT);\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event));\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event));\n EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event));\n }\n }\n _eventIsPointerPenTouch(event) {\n return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH);\n }\n\n // Static\n static isSupported() {\n return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;\n }\n }\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n /**\n * Constants\n */\n\n const NAME$c = 'carousel';\n const DATA_KEY$8 = 'bs.carousel';\n const EVENT_KEY$8 = `.${DATA_KEY$8}`;\n const DATA_API_KEY$5 = '.data-api';\n const ARROW_LEFT_KEY$1 = 'ArrowLeft';\n const ARROW_RIGHT_KEY$1 = 'ArrowRight';\n const TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch\n\n const ORDER_NEXT = 'next';\n const ORDER_PREV = 'prev';\n const DIRECTION_LEFT = 'left';\n const DIRECTION_RIGHT = 'right';\n const EVENT_SLIDE = `slide${EVENT_KEY$8}`;\n const EVENT_SLID = `slid${EVENT_KEY$8}`;\n const EVENT_KEYDOWN$1 = `keydown${EVENT_KEY$8}`;\n const EVENT_MOUSEENTER$1 = `mouseenter${EVENT_KEY$8}`;\n const EVENT_MOUSELEAVE$1 = `mouseleave${EVENT_KEY$8}`;\n const EVENT_DRAG_START = `dragstart${EVENT_KEY$8}`;\n const EVENT_LOAD_DATA_API$3 = `load${EVENT_KEY$8}${DATA_API_KEY$5}`;\n const EVENT_CLICK_DATA_API$5 = `click${EVENT_KEY$8}${DATA_API_KEY$5}`;\n const CLASS_NAME_CAROUSEL = 'carousel';\n const CLASS_NAME_ACTIVE$2 = 'active';\n const CLASS_NAME_SLIDE = 'slide';\n const CLASS_NAME_END = 'carousel-item-end';\n const CLASS_NAME_START = 'carousel-item-start';\n const CLASS_NAME_NEXT = 'carousel-item-next';\n const CLASS_NAME_PREV = 'carousel-item-prev';\n const SELECTOR_ACTIVE = '.active';\n const SELECTOR_ITEM = '.carousel-item';\n const SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM;\n const SELECTOR_ITEM_IMG = '.carousel-item img';\n const SELECTOR_INDICATORS = '.carousel-indicators';\n const SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]';\n const SELECTOR_DATA_RIDE = '[data-bs-ride=\"carousel\"]';\n const KEY_TO_DIRECTION = {\n [ARROW_LEFT_KEY$1]: DIRECTION_RIGHT,\n [ARROW_RIGHT_KEY$1]: DIRECTION_LEFT\n };\n const Default$b = {\n interval: 5000,\n keyboard: true,\n pause: 'hover',\n ride: false,\n touch: true,\n wrap: true\n };\n const DefaultType$b = {\n interval: '(number|boolean)',\n // TODO:v6 remove boolean support\n keyboard: 'boolean',\n pause: '(string|boolean)',\n ride: '(boolean|string)',\n touch: 'boolean',\n wrap: 'boolean'\n };\n\n /**\n * Class definition\n */\n\n class Carousel extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._interval = null;\n this._activeElement = null;\n this._isSliding = false;\n this.touchTimeout = null;\n this._swipeHelper = null;\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element);\n this._addEventListeners();\n if (this._config.ride === CLASS_NAME_CAROUSEL) {\n this.cycle();\n }\n }\n\n // Getters\n static get Default() {\n return Default$b;\n }\n static get DefaultType() {\n return DefaultType$b;\n }\n static get NAME() {\n return NAME$c;\n }\n\n // Public\n next() {\n this._slide(ORDER_NEXT);\n }\n nextWhenVisible() {\n // FIXME TODO use `document.visibilityState`\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next();\n }\n }\n prev() {\n this._slide(ORDER_PREV);\n }\n pause() {\n if (this._isSliding) {\n triggerTransitionEnd(this._element);\n }\n this._clearInterval();\n }\n cycle() {\n this._clearInterval();\n this._updateInterval();\n this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval);\n }\n _maybeEnableCycle() {\n if (!this._config.ride) {\n return;\n }\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.cycle());\n return;\n }\n this.cycle();\n }\n to(index) {\n const items = this._getItems();\n if (index > items.length - 1 || index < 0) {\n return;\n }\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.to(index));\n return;\n }\n const activeIndex = this._getItemIndex(this._getActive());\n if (activeIndex === index) {\n return;\n }\n const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV;\n this._slide(order, items[index]);\n }\n dispose() {\n if (this._swipeHelper) {\n this._swipeHelper.dispose();\n }\n super.dispose();\n }\n\n // Private\n _configAfterMerge(config) {\n config.defaultInterval = config.interval;\n return config;\n }\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler.on(this._element, EVENT_KEYDOWN$1, event => this._keydown(event));\n }\n if (this._config.pause === 'hover') {\n EventHandler.on(this._element, EVENT_MOUSEENTER$1, () => this.pause());\n EventHandler.on(this._element, EVENT_MOUSELEAVE$1, () => this._maybeEnableCycle());\n }\n if (this._config.touch && Swipe.isSupported()) {\n this._addTouchEventListeners();\n }\n }\n _addTouchEventListeners() {\n for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) {\n EventHandler.on(img, EVENT_DRAG_START, event => event.preventDefault());\n }\n const endCallBack = () => {\n if (this._config.pause !== 'hover') {\n return;\n }\n\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause();\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout);\n }\n this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval);\n };\n const swipeConfig = {\n leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)),\n rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)),\n endCallback: endCallBack\n };\n this._swipeHelper = new Swipe(this._element, swipeConfig);\n }\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return;\n }\n const direction = KEY_TO_DIRECTION[event.key];\n if (direction) {\n event.preventDefault();\n this._slide(this._directionToOrder(direction));\n }\n }\n _getItemIndex(element) {\n return this._getItems().indexOf(element);\n }\n _setActiveIndicatorElement(index) {\n if (!this._indicatorsElement) {\n return;\n }\n const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement);\n activeIndicator.classList.remove(CLASS_NAME_ACTIVE$2);\n activeIndicator.removeAttribute('aria-current');\n const newActiveIndicator = SelectorEngine.findOne(`[data-bs-slide-to=\"${index}\"]`, this._indicatorsElement);\n if (newActiveIndicator) {\n newActiveIndicator.classList.add(CLASS_NAME_ACTIVE$2);\n newActiveIndicator.setAttribute('aria-current', 'true');\n }\n }\n _updateInterval() {\n const element = this._activeElement || this._getActive();\n if (!element) {\n return;\n }\n const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10);\n this._config.interval = elementInterval || this._config.defaultInterval;\n }\n _slide(order, element = null) {\n if (this._isSliding) {\n return;\n }\n const activeElement = this._getActive();\n const isNext = order === ORDER_NEXT;\n const nextElement = element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap);\n if (nextElement === activeElement) {\n return;\n }\n const nextElementIndex = this._getItemIndex(nextElement);\n const triggerEvent = eventName => {\n return EventHandler.trigger(this._element, eventName, {\n relatedTarget: nextElement,\n direction: this._orderToDirection(order),\n from: this._getItemIndex(activeElement),\n to: nextElementIndex\n });\n };\n const slideEvent = triggerEvent(EVENT_SLIDE);\n if (slideEvent.defaultPrevented) {\n return;\n }\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n // TODO: change tests that use empty divs to avoid this check\n return;\n }\n const isCycling = Boolean(this._interval);\n this.pause();\n this._isSliding = true;\n this._setActiveIndicatorElement(nextElementIndex);\n this._activeElement = nextElement;\n const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END;\n const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV;\n nextElement.classList.add(orderClassName);\n reflow(nextElement);\n activeElement.classList.add(directionalClassName);\n nextElement.classList.add(directionalClassName);\n const completeCallBack = () => {\n nextElement.classList.remove(directionalClassName, orderClassName);\n nextElement.classList.add(CLASS_NAME_ACTIVE$2);\n activeElement.classList.remove(CLASS_NAME_ACTIVE$2, orderClassName, directionalClassName);\n this._isSliding = false;\n triggerEvent(EVENT_SLID);\n };\n this._queueCallback(completeCallBack, activeElement, this._isAnimated());\n if (isCycling) {\n this.cycle();\n }\n }\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_SLIDE);\n }\n _getActive() {\n return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);\n }\n _getItems() {\n return SelectorEngine.find(SELECTOR_ITEM, this._element);\n }\n _clearInterval() {\n if (this._interval) {\n clearInterval(this._interval);\n this._interval = null;\n }\n }\n _directionToOrder(direction) {\n if (isRTL()) {\n return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT;\n }\n return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV;\n }\n _orderToDirection(order) {\n if (isRTL()) {\n return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT;\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Carousel.getOrCreateInstance(this, config);\n if (typeof config === 'number') {\n data.to(config);\n return;\n }\n if (typeof config === 'string') {\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n }\n });\n }\n }\n\n /**\n * Data API implementation\n */\n\n EventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_SLIDE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this);\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return;\n }\n event.preventDefault();\n const carousel = Carousel.getOrCreateInstance(target);\n const slideIndex = this.getAttribute('data-bs-slide-to');\n if (slideIndex) {\n carousel.to(slideIndex);\n carousel._maybeEnableCycle();\n return;\n }\n if (Manipulator.getDataAttribute(this, 'slide') === 'next') {\n carousel.next();\n carousel._maybeEnableCycle();\n return;\n }\n carousel.prev();\n carousel._maybeEnableCycle();\n });\n EventHandler.on(window, EVENT_LOAD_DATA_API$3, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE);\n for (const carousel of carousels) {\n Carousel.getOrCreateInstance(carousel);\n }\n });\n\n /**\n * jQuery\n */\n\n defineJQueryPlugin(Carousel);\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n /**\n * Constants\n */\n\n const NAME$b = 'collapse';\n const DATA_KEY$7 = 'bs.collapse';\n const EVENT_KEY$7 = `.${DATA_KEY$7}`;\n const DATA_API_KEY$4 = '.data-api';\n const EVENT_SHOW$6 = `show${EVENT_KEY$7}`;\n const EVENT_SHOWN$6 = `shown${EVENT_KEY$7}`;\n const EVENT_HIDE$6 = `hide${EVENT_KEY$7}`;\n const EVENT_HIDDEN$6 = `hidden${EVENT_KEY$7}`;\n const EVENT_CLICK_DATA_API$4 = `click${EVENT_KEY$7}${DATA_API_KEY$4}`;\n const CLASS_NAME_SHOW$7 = 'show';\n const CLASS_NAME_COLLAPSE = 'collapse';\n const CLASS_NAME_COLLAPSING = 'collapsing';\n const CLASS_NAME_COLLAPSED = 'collapsed';\n const CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`;\n const CLASS_NAME_HORIZONTAL = 'collapse-horizontal';\n const WIDTH = 'width';\n const HEIGHT = 'height';\n const SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing';\n const SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle=\"collapse\"]';\n const Default$a = {\n parent: null,\n toggle: true\n };\n const DefaultType$a = {\n parent: '(null|element)',\n toggle: 'boolean'\n };\n\n /**\n * Class definition\n */\n\n class Collapse extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._isTransitioning = false;\n this._triggerArray = [];\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$4);\n for (const elem of toggleList) {\n const selector = SelectorEngine.getSelectorFromElement(elem);\n const filterElement = SelectorEngine.find(selector).filter(foundElement => foundElement === this._element);\n if (selector !== null && filterElement.length) {\n this._triggerArray.push(elem);\n }\n }\n this._initializeChildren();\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._triggerArray, this._isShown());\n }\n if (this._config.toggle) {\n this.toggle();\n }\n }\n\n // Getters\n static get Default() {\n return Default$a;\n }\n static get DefaultType() {\n return DefaultType$a;\n }\n static get NAME() {\n return NAME$b;\n }\n\n // Public\n toggle() {\n if (this._isShown()) {\n this.hide();\n } else {\n this.show();\n }\n }\n show() {\n if (this._isTransitioning || this._isShown()) {\n return;\n }\n let activeChildren = [];\n\n // find active children\n if (this._config.parent) {\n activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES).filter(element => element !== this._element).map(element => Collapse.getOrCreateInstance(element, {\n toggle: false\n }));\n }\n if (activeChildren.length && activeChildren[0]._isTransitioning) {\n return;\n }\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW$6);\n if (startEvent.defaultPrevented) {\n return;\n }\n for (const activeInstance of activeChildren) {\n activeInstance.hide();\n }\n const dimension = this._getDimension();\n this._element.classList.remove(CLASS_NAME_COLLAPSE);\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n this._element.style[dimension] = 0;\n this._addAriaAndCollapsedClass(this._triggerArray, true);\n this._isTransitioning = true;\n const complete = () => {\n this._isTransitioning = false;\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);\n this._element.style[dimension] = '';\n EventHandler.trigger(this._element, EVENT_SHOWN$6);\n };\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n const scrollSize = `scroll${capitalizedDimension}`;\n this._queueCallback(complete, this._element, true);\n this._element.style[dimension] = `${this._element[scrollSize]}px`;\n }\n hide() {\n if (this._isTransitioning || !this._isShown()) {\n return;\n }\n const startEvent = EventHandler.trigger(this._element, EVENT_HIDE$6);\n if (startEvent.defaultPrevented) {\n return;\n }\n const dimension = this._getDimension();\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`;\n reflow(this._element);\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);\n for (const trigger of this._triggerArray) {\n const element = SelectorEngine.getElementFromSelector(trigger);\n if (element && !this._isShown(element)) {\n this._addAriaAndCollapsedClass([trigger], false);\n }\n }\n this._isTransitioning = true;\n const complete = () => {\n this._isTransitioning = false;\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\n this._element.classList.add(CLASS_NAME_COLLAPSE);\n EventHandler.trigger(this._element, EVENT_HIDDEN$6);\n };\n this._element.style[dimension] = '';\n this._queueCallback(complete, this._element, true);\n }\n _isShown(element = this._element) {\n return element.classList.contains(CLASS_NAME_SHOW$7);\n }\n\n // Private\n _configAfterMerge(config) {\n config.toggle = Boolean(config.toggle); // Coerce string values\n config.parent = getElement(config.parent);\n return config;\n }\n _getDimension() {\n return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT;\n }\n _initializeChildren() {\n if (!this._config.parent) {\n return;\n }\n const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE$4);\n for (const element of children) {\n const selected = SelectorEngine.getElementFromSelector(element);\n if (selected) {\n this._addAriaAndCollapsedClass([element], this._isShown(selected));\n }\n }\n }\n _getFirstLevelChildren(selector) {\n const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent);\n // remove children if greater depth\n return SelectorEngine.find(selector, this._config.parent).filter(element => !children.includes(element));\n }\n _addAriaAndCollapsedClass(triggerArray, isOpen) {\n if (!triggerArray.length) {\n return;\n }\n for (const element of triggerArray) {\n element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen);\n element.setAttribute('aria-expanded', isOpen);\n }\n }\n\n // Static\n static jQueryInterface(config) {\n const _config = {};\n if (typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false;\n }\n return this.each(function () {\n const data = Collapse.getOrCreateInstance(this, _config);\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n }\n });\n }\n }\n\n /**\n * Data API implementation\n */\n\n EventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$4, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') {\n event.preventDefault();\n }\n for (const element of SelectorEngine.getMultipleElementsFromSelector(this)) {\n Collapse.getOrCreateInstance(element, {\n toggle: false\n }).toggle();\n }\n });\n\n /**\n * jQuery\n */\n\n defineJQueryPlugin(Collapse);\n\n var top = 'top';\n var bottom = 'bottom';\n var right = 'right';\n var left = 'left';\n var auto = 'auto';\n var basePlacements = [top, bottom, right, left];\n var start = 'start';\n var end = 'end';\n var clippingParents = 'clippingParents';\n var viewport = 'viewport';\n var popper = 'popper';\n var reference = 'reference';\n var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n }, []);\n var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n }, []); // modifiers that need to read the DOM\n\n var beforeRead = 'beforeRead';\n var read = 'read';\n var afterRead = 'afterRead'; // pure-logic modifiers\n\n var beforeMain = 'beforeMain';\n var main = 'main';\n var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\n var beforeWrite = 'beforeWrite';\n var write = 'write';\n var afterWrite = 'afterWrite';\n var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];\n\n function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n }\n\n function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n }\n\n function isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n }\n\n function isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n }\n\n function isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n }\n\n // and applies them to the HTMLElements such as popper and arrow\n\n function applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n }\n\n function effect$2(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n } // eslint-disable-next-line import/no-unused-modules\n\n\n const applyStyles$1 = {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect$2,\n requires: ['computeStyles']\n };\n\n function getBasePlacement(placement) {\n return placement.split('-')[0];\n }\n\n var max = Math.max;\n var min = Math.min;\n var round = Math.round;\n\n function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n }\n\n function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n }\n\n function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n }\n\n // means it doesn't take into account transforms.\n\n function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n }\n\n function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n }\n\n function getComputedStyle$1(element) {\n return getWindow(element).getComputedStyle(element);\n }\n\n function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n }\n\n function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n }\n\n function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n }\n\n function getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle$1(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n } // `.offsetParent` reports `null` for fixed elements, while absolute elements\n // return the containing block\n\n\n function getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle$1(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle$1(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n } // Gets the closest ancestor positioned element. Handles some edge cases,\n // such as table ancestors and cross browser bugs.\n\n\n function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle$1(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle$1(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n }\n\n function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n }\n\n function within(min$1, value, max$1) {\n return max(min$1, min(value, max$1));\n }\n function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n }\n\n function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n }\n\n function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n }\n\n function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n }\n\n var toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n };\n\n function arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n }\n\n function effect$1(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n return;\n }\n\n state.elements.arrow = arrowElement;\n } // eslint-disable-next-line import/no-unused-modules\n\n\n const arrow$1 = {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect$1,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n };\n\n function getVariation(placement) {\n return placement.split('-')[1];\n }\n\n var unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n }; // Round the offsets to the nearest suitable subpixel based on the DPR.\n // Zooming can change the DPR, but it seems to report a value that will\n // cleanly divide the values into the appropriate subpixels.\n\n function roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n }\n\n function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle$1(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, getWindow(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n }\n\n function computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n } // eslint-disable-next-line import/no-unused-modules\n\n\n const computeStyles$1 = {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n };\n\n var passive = {\n passive: true\n };\n\n function effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n } // eslint-disable-next-line import/no-unused-modules\n\n\n const eventListeners = {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n };\n\n var hash$1 = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n };\n function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash$1[matched];\n });\n }\n\n var hash = {\n start: 'end',\n end: 'start'\n };\n function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n }\n\n function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n }\n\n function getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on <html>\n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n }\n\n function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n }\n\n // of the `<html>` and `<body>` rect bounds if horizontally scrollable\n\n function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle$1(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n }\n\n function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle$1(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n }\n\n function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n }\n\n /*\n given a DOM element, return the list of all scroll parents, up the list of ancesors\n until we get to the top window object. This list is what we attach scroll listeners\n to, because if any of these parent elements scroll, we'll need to re-calculate the\n reference element's position.\n */\n\n function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n }\n\n function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n }\n\n function getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n }\n\n function getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n } // A \"clipping parent\" is an overflowable container with the characteristic of\n // clipping (or hiding) overflowing elements with a position different from\n // `initial`\n\n\n function getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle$1(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n } // Gets the maximum area that the element is visible in due to any number of\n // clipping parents\n\n\n function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n }\n\n function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n }\n }\n\n return offsets;\n }\n\n function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n }\n\n function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? placements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements$1 = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements$1.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements$1;\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n }\n\n function getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n }\n\n function flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases \u2013 research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n } // eslint-disable-next-line import/no-unused-modules\n\n\n const flip$1 = {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n };\n\n function getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n }\n\n function isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n }\n\n function hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n } // eslint-disable-next-line import/no-unused-modules\n\n\n const hide$1 = {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n };\n\n function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n }\n\n function offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n } // eslint-disable-next-line import/no-unused-modules\n\n\n const offset$1 = {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n };\n\n function popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n } // eslint-disable-next-line import/no-unused-modules\n\n\n const popperOffsets$1 = {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n };\n\n function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n }\n\n function preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min$1 = offset + overflow[mainSide];\n var max$1 = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? min(min$1, tetherMin) : min$1, offset, tether ? max(max$1, tetherMax) : max$1);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n } // eslint-disable-next-line import/no-unused-modules\n\n\n const preventOverflow$1 = {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n };\n\n function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n\n function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n }\n\n function isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n } // Returns the composite rect of an element relative to its offsetParent.\n // Composite means it takes into account transforms as well as layout.\n\n\n function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n }\n\n function order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n }\n\n function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n }\n\n function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n }\n\n function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n }\n\n var DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n };\n\n function areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n }\n\n function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n });\n runModifierEffects();\n return instance.update();\n },\n // Sync update \u2013 it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update \u2013 it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref) {\n var name = _ref.name,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n effect = _ref.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n }\n var createPopper$2 = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\n var defaultModifiers$1 = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1];\n var createPopper$1 = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers$1\n }); // eslint-disable-next-line import/no-unused-modules\n\n var defaultModifiers = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1, offset$1, flip$1, preventOverflow$1, arrow$1, hide$1];\n var createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n }); // eslint-disable-next-line import/no-unused-modules\n\n const Popper = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({\n __proto__: null,\n afterMain,\n afterRead,\n afterWrite,\n applyStyles: applyStyles$1,\n arrow: arrow$1,\n auto,\n basePlacements,\n beforeMain,\n beforeRead,\n beforeWrite,\n bottom,\n clippingParents,\n computeStyles: computeStyles$1,\n createPopper,\n createPopperBase: createPopper$2,\n createPopperLite: createPopper$1,\n detectOverflow,\n end,\n eventListeners,\n flip: flip$1,\n hide: hide$1,\n left,\n main,\n modifierPhases,\n offset: offset$1,\n placements,\n popper,\n popperGenerator,\n popperOffsets: popperOffsets$1,\n preventOverflow: preventOverflow$1,\n read,\n reference,\n right,\n start,\n top,\n variationPlacements,\n viewport,\n write\n }, Symbol.toStringTag, { value: 'Module' }));\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n /**\n * Constants\n */\n\n const NAME$a = 'dropdown';\n const DATA_KEY$6 = 'bs.dropdown';\n const EVENT_KEY$6 = `.${DATA_KEY$6}`;\n const DATA_API_KEY$3 = '.data-api';\n const ESCAPE_KEY$2 = 'Escape';\n const TAB_KEY$1 = 'Tab';\n const ARROW_UP_KEY$1 = 'ArrowUp';\n const ARROW_DOWN_KEY$1 = 'ArrowDown';\n const RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button\n\n const EVENT_HIDE$5 = `hide${EVENT_KEY$6}`;\n const EVENT_HIDDEN$5 = `hidden${EVENT_KEY$6}`;\n const EVENT_SHOW$5 = `show${EVENT_KEY$6}`;\n const EVENT_SHOWN$5 = `shown${EVENT_KEY$6}`;\n const EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$6}${DATA_API_KEY$3}`;\n const EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$6}${DATA_API_KEY$3}`;\n const EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY$6}${DATA_API_KEY$3}`;\n const CLASS_NAME_SHOW$6 = 'show';\n const CLASS_NAME_DROPUP = 'dropup';\n const CLASS_NAME_DROPEND = 'dropend';\n const CLASS_NAME_DROPSTART = 'dropstart';\n const CLASS_NAME_DROPUP_CENTER = 'dropup-center';\n const CLASS_NAME_DROPDOWN_CENTER = 'dropdown-center';\n const SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle=\"dropdown\"]:not(.disabled):not(:disabled)';\n const SELECTOR_DATA_TOGGLE_SHOWN = `${SELECTOR_DATA_TOGGLE$3}.${CLASS_NAME_SHOW$6}`;\n const SELECTOR_MENU = '.dropdown-menu';\n const SELECTOR_NAVBAR = '.navbar';\n const SELECTOR_NAVBAR_NAV = '.navbar-nav';\n const SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';\n const PLACEMENT_TOP = isRTL() ? 'top-end' : 'top-start';\n const PLACEMENT_TOPEND = isRTL() ? 'top-start' : 'top-end';\n const PLACEMENT_BOTTOM = isRTL() ? 'bottom-end' : 'bottom-start';\n const PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end';\n const PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start';\n const PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start';\n const PLACEMENT_TOPCENTER = 'top';\n const PLACEMENT_BOTTOMCENTER = 'bottom';\n const Default$9 = {\n autoClose: true,\n boundary: 'clippingParents',\n display: 'dynamic',\n offset: [0, 2],\n popperConfig: null,\n reference: 'toggle'\n };\n const DefaultType$9 = {\n autoClose: '(boolean|string)',\n boundary: '(string|element)',\n display: 'string',\n offset: '(array|string|function)',\n popperConfig: '(null|object|function)',\n reference: '(string|element|object)'\n };\n\n /**\n * Class definition\n */\n\n class Dropdown extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._popper = null;\n this._parent = this._element.parentNode; // dropdown wrapper\n // TODO: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/\n this._menu = SelectorEngine.next(this._element, SELECTOR_MENU)[0] || SelectorEngine.prev(this._element, SELECTOR_MENU)[0] || SelectorEngine.findOne(SELECTOR_MENU, this._parent);\n this._inNavbar = this._detectNavbar();\n }\n\n // Getters\n static get Default() {\n return Default$9;\n }\n static get DefaultType() {\n return DefaultType$9;\n }\n static get NAME() {\n return NAME$a;\n }\n\n // Public\n toggle() {\n return this._isShown() ? this.hide() : this.show();\n }\n show() {\n if (isDisabled(this._element) || this._isShown()) {\n return;\n }\n const relatedTarget = {\n relatedTarget: this._element\n };\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$5, relatedTarget);\n if (showEvent.defaultPrevented) {\n return;\n }\n this._createPopper();\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.on(element, 'mouseover', noop);\n }\n }\n this._element.focus();\n this._element.setAttribute('aria-expanded', true);\n this._menu.classList.add(CLASS_NAME_SHOW$6);\n this._element.classList.add(CLASS_NAME_SHOW$6);\n EventHandler.trigger(this._element, EVENT_SHOWN$5, relatedTarget);\n }\n hide() {\n if (isDisabled(this._element) || !this._isShown()) {\n return;\n }\n const relatedTarget = {\n relatedTarget: this._element\n };\n this._completeHide(relatedTarget);\n }\n dispose() {\n if (this._popper) {\n this._popper.destroy();\n }\n super.dispose();\n }\n update() {\n this._inNavbar = this._detectNavbar();\n if (this._popper) {\n this._popper.update();\n }\n }\n\n // Private\n _completeHide(relatedTarget) {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$5, relatedTarget);\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.off(element, 'mouseover', noop);\n }\n }\n if (this._popper) {\n this._popper.destroy();\n }\n this._menu.classList.remove(CLASS_NAME_SHOW$6);\n this._element.classList.remove(CLASS_NAME_SHOW$6);\n this._element.setAttribute('aria-expanded', 'false');\n Manipulator.removeDataAttribute(this._menu, 'popper');\n EventHandler.trigger(this._element, EVENT_HIDDEN$5, relatedTarget);\n }\n _getConfig(config) {\n config = super._getConfig(config);\n if (typeof config.reference === 'object' && !isElement$1(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') {\n // Popper virtual elements require a getBoundingClientRect method\n throw new TypeError(`${NAME$a.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`);\n }\n return config;\n }\n _createPopper() {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)');\n }\n let referenceElement = this._element;\n if (this._config.reference === 'parent') {\n referenceElement = this._parent;\n } else if (isElement$1(this._config.reference)) {\n referenceElement = getElement(this._config.reference);\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference;\n }\n const popperConfig = this._getPopperConfig();\n this._popper = createPopper(referenceElement, this._menu, popperConfig);\n }\n _isShown() {\n return this._menu.classList.contains(CLASS_NAME_SHOW$6);\n }\n _getPlacement() {\n const parentDropdown = this._parent;\n if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {\n return PLACEMENT_RIGHT;\n }\n if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {\n return PLACEMENT_LEFT;\n }\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP_CENTER)) {\n return PLACEMENT_TOPCENTER;\n }\n if (parentDropdown.classList.contains(CLASS_NAME_DROPDOWN_CENTER)) {\n return PLACEMENT_BOTTOMCENTER;\n }\n\n // We need to trim the value because custom properties can also include spaces\n const isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end';\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP;\n }\n return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM;\n }\n _detectNavbar() {\n return this._element.closest(SELECTOR_NAVBAR) !== null;\n }\n _getOffset() {\n const {\n offset\n } = this._config;\n if (typeof offset === 'string') {\n return offset.split(',').map(value => Number.parseInt(value, 10));\n }\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element);\n }\n return offset;\n }\n _getPopperConfig() {\n const defaultBsPopperConfig = {\n placement: this._getPlacement(),\n modifiers: [{\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n }, {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }]\n };\n\n // Disable Popper if we have a static display or Dropdown is in Navbar\n if (this._inNavbar || this._config.display === 'static') {\n Manipulator.setDataAttribute(this._menu, 'popper', 'static'); // TODO: v6 remove\n defaultBsPopperConfig.modifiers = [{\n name: 'applyStyles',\n enabled: false\n }];\n }\n return {\n ...defaultBsPopperConfig,\n ...execute(this._config.popperConfig, [defaultBsPopperConfig])\n };\n }\n _selectMenuItem({\n key,\n target\n }) {\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(element => isVisible(element));\n if (!items.length) {\n return;\n }\n\n // if target isn't included in items (e.g. when expanding the dropdown)\n // allow cycling to get the last item in case key equals ARROW_UP_KEY\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY$1, !items.includes(target)).focus();\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Dropdown.getOrCreateInstance(this, config);\n if (typeof config !== 'string') {\n return;\n }\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n });\n }\n static clearMenus(event) {\n if (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY$1) {\n return;\n }\n const openToggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE_SHOWN);\n for (const toggle of openToggles) {\n const context = Dropdown.getInstance(toggle);\n if (!context || context._config.autoClose === false) {\n continue;\n }\n const composedPath = event.composedPath();\n const isMenuTarget = composedPath.includes(context._menu);\n if (composedPath.includes(context._element) || context._config.autoClose === 'inside' && !isMenuTarget || context._config.autoClose === 'outside' && isMenuTarget) {\n continue;\n }\n\n // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu\n if (context._menu.contains(event.target) && (event.type === 'keyup' && event.key === TAB_KEY$1 || /input|select|option|textarea|form/i.test(event.target.tagName))) {\n continue;\n }\n const relatedTarget = {\n relatedTarget: context._element\n };\n if (event.type === 'click') {\n relatedTarget.clickEvent = event;\n }\n context._completeHide(relatedTarget);\n }\n }\n static dataApiKeydownHandler(event) {\n // If not an UP | DOWN | ESCAPE key => not a dropdown command\n // If input/textarea && if key is other than ESCAPE => not a dropdown command\n\n const isInput = /input|textarea/i.test(event.target.tagName);\n const isEscapeEvent = event.key === ESCAPE_KEY$2;\n const isUpOrDownEvent = [ARROW_UP_KEY$1, ARROW_DOWN_KEY$1].includes(event.key);\n if (!isUpOrDownEvent && !isEscapeEvent) {\n return;\n }\n if (isInput && !isEscapeEvent) {\n return;\n }\n event.preventDefault();\n\n // TODO: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/\n const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.next(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode);\n const instance = Dropdown.getOrCreateInstance(getToggleButton);\n if (isUpOrDownEvent) {\n event.stopPropagation();\n instance.show();\n instance._selectMenuItem(event);\n return;\n }\n if (instance._isShown()) {\n // else is escape and we check if it is shown\n event.stopPropagation();\n instance.hide();\n getToggleButton.focus();\n }\n }\n }\n\n /**\n * Data API implementation\n */\n\n EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$3, Dropdown.dataApiKeydownHandler);\n EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler);\n EventHandler.on(document, EVENT_CLICK_DATA_API$3, Dropdown.clearMenus);\n EventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus);\n EventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, function (event) {\n event.preventDefault();\n Dropdown.getOrCreateInstance(this).toggle();\n });\n\n /**\n * jQuery\n */\n\n defineJQueryPlugin(Dropdown);\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap util/backdrop.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n /**\n * Constants\n */\n\n const NAME$9 = 'backdrop';\n const CLASS_NAME_FADE$4 = 'fade';\n const CLASS_NAME_SHOW$5 = 'show';\n const EVENT_MOUSEDOWN = `mousedown.bs.${NAME$9}`;\n const Default$8 = {\n className: 'modal-backdrop',\n clickCallback: null,\n isAnimated: false,\n isVisible: true,\n // if false, we use the backdrop helper without adding any element to the dom\n rootElement: 'body' // give the choice to place backdrop under different elements\n };\n\n const DefaultType$8 = {\n className: 'string',\n clickCallback: '(function|null)',\n isAnimated: 'boolean',\n isVisible: 'boolean',\n rootElement: '(element|string)'\n };\n\n /**\n * Class definition\n */\n\n class Backdrop extends Config {\n constructor(config) {\n super();\n this._config = this._getConfig(config);\n this._isAppended = false;\n this._element = null;\n }\n\n // Getters\n static get Default() {\n return Default$8;\n }\n static get DefaultType() {\n return DefaultType$8;\n }\n static get NAME() {\n return NAME$9;\n }\n\n // Public\n show(callback) {\n if (!this._config.isVisible) {\n execute(callback);\n return;\n }\n this._append();\n const element = this._getElement();\n if (this._config.isAnimated) {\n reflow(element);\n }\n element.classList.add(CLASS_NAME_SHOW$5);\n this._emulateAnimation(() => {\n execute(callback);\n });\n }\n hide(callback) {\n if (!this._config.isVisible) {\n execute(callback);\n return;\n }\n this._getElement().classList.remove(CLASS_NAME_SHOW$5);\n this._emulateAnimation(() => {\n this.dispose();\n execute(callback);\n });\n }\n dispose() {\n if (!this._isAppended) {\n return;\n }\n EventHandler.off(this._element, EVENT_MOUSEDOWN);\n this._element.remove();\n this._isAppended = false;\n }\n\n // Private\n _getElement() {\n if (!this._element) {\n const backdrop = document.createElement('div');\n backdrop.className = this._config.className;\n if (this._config.isAnimated) {\n backdrop.classList.add(CLASS_NAME_FADE$4);\n }\n this._element = backdrop;\n }\n return this._element;\n }\n _configAfterMerge(config) {\n // use getElement() with the default \"body\" to get a fresh Element on each instantiation\n config.rootElement = getElement(config.rootElement);\n return config;\n }\n _append() {\n if (this._isAppended) {\n return;\n }\n const element = this._getElement();\n this._config.rootElement.append(element);\n EventHandler.on(element, EVENT_MOUSEDOWN, () => {\n execute(this._config.clickCallback);\n });\n this._isAppended = true;\n }\n _emulateAnimation(callback) {\n executeAfterTransition(callback, this._getElement(), this._config.isAnimated);\n }\n }\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap util/focustrap.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n /**\n * Constants\n */\n\n const NAME$8 = 'focustrap';\n const DATA_KEY$5 = 'bs.focustrap';\n const EVENT_KEY$5 = `.${DATA_KEY$5}`;\n const EVENT_FOCUSIN$2 = `focusin${EVENT_KEY$5}`;\n const EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY$5}`;\n const TAB_KEY = 'Tab';\n const TAB_NAV_FORWARD = 'forward';\n const TAB_NAV_BACKWARD = 'backward';\n const Default$7 = {\n autofocus: true,\n trapElement: null // The element to trap focus inside of\n };\n\n const DefaultType$7 = {\n autofocus: 'boolean',\n trapElement: 'element'\n };\n\n /**\n * Class definition\n */\n\n class FocusTrap extends Config {\n constructor(config) {\n super();\n this._config = this._getConfig(config);\n this._isActive = false;\n this._lastTabNavDirection = null;\n }\n\n // Getters\n static get Default() {\n return Default$7;\n }\n static get DefaultType() {\n return DefaultType$7;\n }\n static get NAME() {\n return NAME$8;\n }\n\n // Public\n activate() {\n if (this._isActive) {\n return;\n }\n if (this._config.autofocus) {\n this._config.trapElement.focus();\n }\n EventHandler.off(document, EVENT_KEY$5); // guard against infinite focus loop\n EventHandler.on(document, EVENT_FOCUSIN$2, event => this._handleFocusin(event));\n EventHandler.on(document, EVENT_KEYDOWN_TAB, event => this._handleKeydown(event));\n this._isActive = true;\n }\n deactivate() {\n if (!this._isActive) {\n return;\n }\n this._isActive = false;\n EventHandler.off(document, EVENT_KEY$5);\n }\n\n // Private\n _handleFocusin(event) {\n const {\n trapElement\n } = this._config;\n if (event.target === document || event.target === trapElement || trapElement.contains(event.target)) {\n return;\n }\n const elements = SelectorEngine.focusableChildren(trapElement);\n if (elements.length === 0) {\n trapElement.focus();\n } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) {\n elements[elements.length - 1].focus();\n } else {\n elements[0].focus();\n }\n }\n _handleKeydown(event) {\n if (event.key !== TAB_KEY) {\n return;\n }\n this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD;\n }\n }\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap util/scrollBar.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n /**\n * Constants\n */\n\n const SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';\n const SELECTOR_STICKY_CONTENT = '.sticky-top';\n const PROPERTY_PADDING = 'padding-right';\n const PROPERTY_MARGIN = 'margin-right';\n\n /**\n * Class definition\n */\n\n class ScrollBarHelper {\n constructor() {\n this._element = document.body;\n }\n\n // Public\n getWidth() {\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\n const documentWidth = document.documentElement.clientWidth;\n return Math.abs(window.innerWidth - documentWidth);\n }\n hide() {\n const width = this.getWidth();\n this._disableOverFlow();\n // give padding to element to balance the hidden scrollbar width\n this._setElementAttributes(this._element, PROPERTY_PADDING, calculatedValue => calculatedValue + width);\n // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth\n this._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, calculatedValue => calculatedValue + width);\n this._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, calculatedValue => calculatedValue - width);\n }\n reset() {\n this._resetElementAttributes(this._element, 'overflow');\n this._resetElementAttributes(this._element, PROPERTY_PADDING);\n this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING);\n this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN);\n }\n isOverflowing() {\n return this.getWidth() > 0;\n }\n\n // Private\n _disableOverFlow() {\n this._saveInitialAttribute(this._element, 'overflow');\n this._element.style.overflow = 'hidden';\n }\n _setElementAttributes(selector, styleProperty, callback) {\n const scrollbarWidth = this.getWidth();\n const manipulationCallBack = element => {\n if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {\n return;\n }\n this._saveInitialAttribute(element, styleProperty);\n const calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty);\n element.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`);\n };\n this._applyManipulationCallback(selector, manipulationCallBack);\n }\n _saveInitialAttribute(element, styleProperty) {\n const actualValue = element.style.getPropertyValue(styleProperty);\n if (actualValue) {\n Manipulator.setDataAttribute(element, styleProperty, actualValue);\n }\n }\n _resetElementAttributes(selector, styleProperty) {\n const manipulationCallBack = element => {\n const value = Manipulator.getDataAttribute(element, styleProperty);\n // We only want to remove the property if the value is `null`; the value can also be zero\n if (value === null) {\n element.style.removeProperty(styleProperty);\n return;\n }\n Manipulator.removeDataAttribute(element, styleProperty);\n element.style.setProperty(styleProperty, value);\n };\n this._applyManipulationCallback(selector, manipulationCallBack);\n }\n _applyManipulationCallback(selector, callBack) {\n if (isElement$1(selector)) {\n callBack(selector);\n return;\n }\n for (const sel of SelectorEngine.find(selector, this._element)) {\n callBack(sel);\n }\n }\n }\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n /**\n * Constants\n */\n\n const NAME$7 = 'modal';\n const DATA_KEY$4 = 'bs.modal';\n const EVENT_KEY$4 = `.${DATA_KEY$4}`;\n const DATA_API_KEY$2 = '.data-api';\n const ESCAPE_KEY$1 = 'Escape';\n const EVENT_HIDE$4 = `hide${EVENT_KEY$4}`;\n const EVENT_HIDE_PREVENTED$1 = `hidePrevented${EVENT_KEY$4}`;\n const EVENT_HIDDEN$4 = `hidden${EVENT_KEY$4}`;\n const EVENT_SHOW$4 = `show${EVENT_KEY$4}`;\n const EVENT_SHOWN$4 = `shown${EVENT_KEY$4}`;\n const EVENT_RESIZE$1 = `resize${EVENT_KEY$4}`;\n const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY$4}`;\n const EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$4}`;\n const EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$4}`;\n const EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$4}${DATA_API_KEY$2}`;\n const CLASS_NAME_OPEN = 'modal-open';\n const CLASS_NAME_FADE$3 = 'fade';\n const CLASS_NAME_SHOW$4 = 'show';\n const CLASS_NAME_STATIC = 'modal-static';\n const OPEN_SELECTOR$1 = '.modal.show';\n const SELECTOR_DIALOG = '.modal-dialog';\n const SELECTOR_MODAL_BODY = '.modal-body';\n const SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle=\"modal\"]';\n const Default$6 = {\n backdrop: true,\n focus: true,\n keyboard: true\n };\n const DefaultType$6 = {\n backdrop: '(boolean|string)',\n focus: 'boolean',\n keyboard: 'boolean'\n };\n\n /**\n * Class definition\n */\n\n class Modal extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element);\n this._backdrop = this._initializeBackDrop();\n this._focustrap = this._initializeFocusTrap();\n this._isShown = false;\n this._isTransitioning = false;\n this._scrollBar = new ScrollBarHelper();\n this._addEventListeners();\n }\n\n // Getters\n static get Default() {\n return Default$6;\n }\n static get DefaultType() {\n return DefaultType$6;\n }\n static get NAME() {\n return NAME$7;\n }\n\n // Public\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n }\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return;\n }\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4, {\n relatedTarget\n });\n if (showEvent.defaultPrevented) {\n return;\n }\n this._isShown = true;\n this._isTransitioning = true;\n this._scrollBar.hide();\n document.body.classList.add(CLASS_NAME_OPEN);\n this._adjustDialog();\n this._backdrop.show(() => this._showElement(relatedTarget));\n }\n hide() {\n if (!this._isShown || this._isTransitioning) {\n return;\n }\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4);\n if (hideEvent.defaultPrevented) {\n return;\n }\n this._isShown = false;\n this._isTransitioning = true;\n this._focustrap.deactivate();\n this._element.classList.remove(CLASS_NAME_SHOW$4);\n this._queueCallback(() => this._hideModal(), this._element, this._isAnimated());\n }\n dispose() {\n EventHandler.off(window, EVENT_KEY$4);\n EventHandler.off(this._dialog, EVENT_KEY$4);\n this._backdrop.dispose();\n this._focustrap.deactivate();\n super.dispose();\n }\n handleUpdate() {\n this._adjustDialog();\n }\n\n // Private\n _initializeBackDrop() {\n return new Backdrop({\n isVisible: Boolean(this._config.backdrop),\n // 'static' option will be translated to true, and booleans will keep their value,\n isAnimated: this._isAnimated()\n });\n }\n _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n });\n }\n _showElement(relatedTarget) {\n // try to append dynamic modal\n if (!document.body.contains(this._element)) {\n document.body.append(this._element);\n }\n this._element.style.display = 'block';\n this._element.removeAttribute('aria-hidden');\n this._element.setAttribute('aria-modal', true);\n this._element.setAttribute('role', 'dialog');\n this._element.scrollTop = 0;\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog);\n if (modalBody) {\n modalBody.scrollTop = 0;\n }\n reflow(this._element);\n this._element.classList.add(CLASS_NAME_SHOW$4);\n const transitionComplete = () => {\n if (this._config.focus) {\n this._focustrap.activate();\n }\n this._isTransitioning = false;\n EventHandler.trigger(this._element, EVENT_SHOWN$4, {\n relatedTarget\n });\n };\n this._queueCallback(transitionComplete, this._dialog, this._isAnimated());\n }\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS$1, event => {\n if (event.key !== ESCAPE_KEY$1) {\n return;\n }\n if (this._config.keyboard) {\n this.hide();\n return;\n }\n this._triggerBackdropTransition();\n });\n EventHandler.on(window, EVENT_RESIZE$1, () => {\n if (this._isShown && !this._isTransitioning) {\n this._adjustDialog();\n }\n });\n EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, event => {\n // a bad trick to segregate clicks that may start inside dialog but end outside, and avoid listen to scrollbar clicks\n EventHandler.one(this._element, EVENT_CLICK_DISMISS, event2 => {\n if (this._element !== event.target || this._element !== event2.target) {\n return;\n }\n if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition();\n return;\n }\n if (this._config.backdrop) {\n this.hide();\n }\n });\n });\n }\n _hideModal() {\n this._element.style.display = 'none';\n this._element.setAttribute('aria-hidden', true);\n this._element.removeAttribute('aria-modal');\n this._element.removeAttribute('role');\n this._isTransitioning = false;\n this._backdrop.hide(() => {\n document.body.classList.remove(CLASS_NAME_OPEN);\n this._resetAdjustments();\n this._scrollBar.reset();\n EventHandler.trigger(this._element, EVENT_HIDDEN$4);\n });\n }\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_FADE$3);\n }\n _triggerBackdropTransition() {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED$1);\n if (hideEvent.defaultPrevented) {\n return;\n }\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n const initialOverflowY = this._element.style.overflowY;\n // return if the following background transition hasn't yet completed\n if (initialOverflowY === 'hidden' || this._element.classList.contains(CLASS_NAME_STATIC)) {\n return;\n }\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden';\n }\n this._element.classList.add(CLASS_NAME_STATIC);\n this._queueCallback(() => {\n this._element.classList.remove(CLASS_NAME_STATIC);\n this._queueCallback(() => {\n this._element.style.overflowY = initialOverflowY;\n }, this._dialog);\n }, this._dialog);\n this._element.focus();\n }\n\n /**\n * The following methods are used to handle overflowing modals\n */\n\n _adjustDialog() {\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n const scrollbarWidth = this._scrollBar.getWidth();\n const isBodyOverflowing = scrollbarWidth > 0;\n if (isBodyOverflowing && !isModalOverflowing) {\n const property = isRTL() ? 'paddingLeft' : 'paddingRight';\n this._element.style[property] = `${scrollbarWidth}px`;\n }\n if (!isBodyOverflowing && isModalOverflowing) {\n const property = isRTL() ? 'paddingRight' : 'paddingLeft';\n this._element.style[property] = `${scrollbarWidth}px`;\n }\n }\n _resetAdjustments() {\n this._element.style.paddingLeft = '';\n this._element.style.paddingRight = '';\n }\n\n // Static\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n const data = Modal.getOrCreateInstance(this, config);\n if (typeof config !== 'string') {\n return;\n }\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config](relatedTarget);\n });\n }\n }\n\n /**\n * Data API implementation\n */\n\n EventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function (event) {\n const target = SelectorEngine.getElementFromSelector(this);\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n EventHandler.one(target, EVENT_SHOW$4, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return;\n }\n EventHandler.one(target, EVENT_HIDDEN$4, () => {\n if (isVisible(this)) {\n this.focus();\n }\n });\n });\n\n // avoid conflict when clicking modal toggler while another one is open\n const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR$1);\n if (alreadyOpen) {\n Modal.getInstance(alreadyOpen).hide();\n }\n const data = Modal.getOrCreateInstance(target);\n data.toggle(this);\n });\n enableDismissTrigger(Modal);\n\n /**\n * jQuery\n */\n\n defineJQueryPlugin(Modal);\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap offcanvas.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n /**\n * Constants\n */\n\n const NAME$6 = 'offcanvas';\n const DATA_KEY$3 = 'bs.offcanvas';\n const EVENT_KEY$3 = `.${DATA_KEY$3}`;\n const DATA_API_KEY$1 = '.data-api';\n const EVENT_LOAD_DATA_API$2 = `load${EVENT_KEY$3}${DATA_API_KEY$1}`;\n const ESCAPE_KEY = 'Escape';\n const CLASS_NAME_SHOW$3 = 'show';\n const CLASS_NAME_SHOWING$1 = 'showing';\n const CLASS_NAME_HIDING = 'hiding';\n const CLASS_NAME_BACKDROP = 'offcanvas-backdrop';\n const OPEN_SELECTOR = '.offcanvas.show';\n const EVENT_SHOW$3 = `show${EVENT_KEY$3}`;\n const EVENT_SHOWN$3 = `shown${EVENT_KEY$3}`;\n const EVENT_HIDE$3 = `hide${EVENT_KEY$3}`;\n const EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY$3}`;\n const EVENT_HIDDEN$3 = `hidden${EVENT_KEY$3}`;\n const EVENT_RESIZE = `resize${EVENT_KEY$3}`;\n const EVENT_CLICK_DATA_API$1 = `click${EVENT_KEY$3}${DATA_API_KEY$1}`;\n const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$3}`;\n const SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle=\"offcanvas\"]';\n const Default$5 = {\n backdrop: true,\n keyboard: true,\n scroll: false\n };\n const DefaultType$5 = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n scroll: 'boolean'\n };\n\n /**\n * Class definition\n */\n\n class Offcanvas extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._isShown = false;\n this._backdrop = this._initializeBackDrop();\n this._focustrap = this._initializeFocusTrap();\n this._addEventListeners();\n }\n\n // Getters\n static get Default() {\n return Default$5;\n }\n static get DefaultType() {\n return DefaultType$5;\n }\n static get NAME() {\n return NAME$6;\n }\n\n // Public\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n }\n show(relatedTarget) {\n if (this._isShown) {\n return;\n }\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, {\n relatedTarget\n });\n if (showEvent.defaultPrevented) {\n return;\n }\n this._isShown = true;\n this._backdrop.show();\n if (!this._config.scroll) {\n new ScrollBarHelper().hide();\n }\n this._element.setAttribute('aria-modal', true);\n this._element.setAttribute('role', 'dialog');\n this._element.classList.add(CLASS_NAME_SHOWING$1);\n const completeCallBack = () => {\n if (!this._config.scroll || this._config.backdrop) {\n this._focustrap.activate();\n }\n this._element.classList.add(CLASS_NAME_SHOW$3);\n this._element.classList.remove(CLASS_NAME_SHOWING$1);\n EventHandler.trigger(this._element, EVENT_SHOWN$3, {\n relatedTarget\n });\n };\n this._queueCallback(completeCallBack, this._element, true);\n }\n hide() {\n if (!this._isShown) {\n return;\n }\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$3);\n if (hideEvent.defaultPrevented) {\n return;\n }\n this._focustrap.deactivate();\n this._element.blur();\n this._isShown = false;\n this._element.classList.add(CLASS_NAME_HIDING);\n this._backdrop.hide();\n const completeCallback = () => {\n this._element.classList.remove(CLASS_NAME_SHOW$3, CLASS_NAME_HIDING);\n this._element.removeAttribute('aria-modal');\n this._element.removeAttribute('role');\n if (!this._config.scroll) {\n new ScrollBarHelper().reset();\n }\n EventHandler.trigger(this._element, EVENT_HIDDEN$3);\n };\n this._queueCallback(completeCallback, this._element, true);\n }\n dispose() {\n this._backdrop.dispose();\n this._focustrap.deactivate();\n super.dispose();\n }\n\n // Private\n _initializeBackDrop() {\n const clickCallback = () => {\n if (this._config.backdrop === 'static') {\n EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);\n return;\n }\n this.hide();\n };\n\n // 'static' option will be translated to true, and booleans will keep their value\n const isVisible = Boolean(this._config.backdrop);\n return new Backdrop({\n className: CLASS_NAME_BACKDROP,\n isVisible,\n isAnimated: true,\n rootElement: this._element.parentNode,\n clickCallback: isVisible ? clickCallback : null\n });\n }\n _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n });\n }\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (event.key !== ESCAPE_KEY) {\n return;\n }\n if (this._config.keyboard) {\n this.hide();\n return;\n }\n EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);\n });\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Offcanvas.getOrCreateInstance(this, config);\n if (typeof config !== 'string') {\n return;\n }\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config](this);\n });\n }\n }\n\n /**\n * Data API implementation\n */\n\n EventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, function (event) {\n const target = SelectorEngine.getElementFromSelector(this);\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n if (isDisabled(this)) {\n return;\n }\n EventHandler.one(target, EVENT_HIDDEN$3, () => {\n // focus on trigger when it is closed\n if (isVisible(this)) {\n this.focus();\n }\n });\n\n // avoid conflict when clicking a toggler of an offcanvas, while another is open\n const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR);\n if (alreadyOpen && alreadyOpen !== target) {\n Offcanvas.getInstance(alreadyOpen).hide();\n }\n const data = Offcanvas.getOrCreateInstance(target);\n data.toggle(this);\n });\n EventHandler.on(window, EVENT_LOAD_DATA_API$2, () => {\n for (const selector of SelectorEngine.find(OPEN_SELECTOR)) {\n Offcanvas.getOrCreateInstance(selector).show();\n }\n });\n EventHandler.on(window, EVENT_RESIZE, () => {\n for (const element of SelectorEngine.find('[aria-modal][class*=show][class*=offcanvas-]')) {\n if (getComputedStyle(element).position !== 'fixed') {\n Offcanvas.getOrCreateInstance(element).hide();\n }\n }\n });\n enableDismissTrigger(Offcanvas);\n\n /**\n * jQuery\n */\n\n defineJQueryPlugin(Offcanvas);\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n // js-docs-start allow-list\n const ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i;\n const DefaultAllowlist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n };\n // js-docs-end allow-list\n\n const uriAttributes = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);\n\n /**\n * A pattern that recognizes URLs that are safe wrt. XSS in URL navigation\n * contexts.\n *\n * Shout-out to Angular https://github.com/angular/angular/blob/15.2.8/packages/core/src/sanitization/url_sanitizer.ts#L38\n */\n // eslint-disable-next-line unicorn/better-regex\n const SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i;\n const allowedAttribute = (attribute, allowedAttributeList) => {\n const attributeName = attribute.nodeName.toLowerCase();\n if (allowedAttributeList.includes(attributeName)) {\n if (uriAttributes.has(attributeName)) {\n return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue));\n }\n return true;\n }\n\n // Check if a regular expression validates the attribute.\n return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp).some(regex => regex.test(attributeName));\n };\n function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {\n if (!unsafeHtml.length) {\n return unsafeHtml;\n }\n if (sanitizeFunction && typeof sanitizeFunction === 'function') {\n return sanitizeFunction(unsafeHtml);\n }\n const domParser = new window.DOMParser();\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');\n const elements = [].concat(...createdDocument.body.querySelectorAll('*'));\n for (const element of elements) {\n const elementName = element.nodeName.toLowerCase();\n if (!Object.keys(allowList).includes(elementName)) {\n element.remove();\n continue;\n }\n const attributeList = [].concat(...element.attributes);\n const allowedAttributes = [].concat(allowList['*'] || [], allowList[elementName] || []);\n for (const attribute of attributeList) {\n if (!allowedAttribute(attribute, allowedAttributes)) {\n element.removeAttribute(attribute.nodeName);\n }\n }\n }\n return createdDocument.body.innerHTML;\n }\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap util/template-factory.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n /**\n * Constants\n */\n\n const NAME$5 = 'TemplateFactory';\n const Default$4 = {\n allowList: DefaultAllowlist,\n content: {},\n // { selector : text , selector2 : text2 , }\n extraClass: '',\n html: false,\n sanitize: true,\n sanitizeFn: null,\n template: '<div></div>'\n };\n const DefaultType$4 = {\n allowList: 'object',\n content: 'object',\n extraClass: '(string|function)',\n html: 'boolean',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n template: 'string'\n };\n const DefaultContentType = {\n entry: '(string|element|function|null)',\n selector: '(string|element)'\n };\n\n /**\n * Class definition\n */\n\n class TemplateFactory extends Config {\n constructor(config) {\n super();\n this._config = this._getConfig(config);\n }\n\n // Getters\n static get Default() {\n return Default$4;\n }\n static get DefaultType() {\n return DefaultType$4;\n }\n static get NAME() {\n return NAME$5;\n }\n\n // Public\n getContent() {\n return Object.values(this._config.content).map(config => this._resolvePossibleFunction(config)).filter(Boolean);\n }\n hasContent() {\n return this.getContent().length > 0;\n }\n changeContent(content) {\n this._checkContent(content);\n this._config.content = {\n ...this._config.content,\n ...content\n };\n return this;\n }\n toHtml() {\n const templateWrapper = document.createElement('div');\n templateWrapper.innerHTML = this._maybeSanitize(this._config.template);\n for (const [selector, text] of Object.entries(this._config.content)) {\n this._setContent(templateWrapper, text, selector);\n }\n const template = templateWrapper.children[0];\n const extraClass = this._resolvePossibleFunction(this._config.extraClass);\n if (extraClass) {\n template.classList.add(...extraClass.split(' '));\n }\n return template;\n }\n\n // Private\n _typeCheckConfig(config) {\n super._typeCheckConfig(config);\n this._checkContent(config.content);\n }\n _checkContent(arg) {\n for (const [selector, content] of Object.entries(arg)) {\n super._typeCheckConfig({\n selector,\n entry: content\n }, DefaultContentType);\n }\n }\n _setContent(template, content, selector) {\n const templateElement = SelectorEngine.findOne(selector, template);\n if (!templateElement) {\n return;\n }\n content = this._resolvePossibleFunction(content);\n if (!content) {\n templateElement.remove();\n return;\n }\n if (isElement$1(content)) {\n this._putElementInTemplate(getElement(content), templateElement);\n return;\n }\n if (this._config.html) {\n templateElement.innerHTML = this._maybeSanitize(content);\n return;\n }\n templateElement.textContent = content;\n }\n _maybeSanitize(arg) {\n return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg;\n }\n _resolvePossibleFunction(arg) {\n return execute(arg, [this]);\n }\n _putElementInTemplate(element, templateElement) {\n if (this._config.html) {\n templateElement.innerHTML = '';\n templateElement.append(element);\n return;\n }\n templateElement.textContent = element.textContent;\n }\n }\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n /**\n * Constants\n */\n\n const NAME$4 = 'tooltip';\n const DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']);\n const CLASS_NAME_FADE$2 = 'fade';\n const CLASS_NAME_MODAL = 'modal';\n const CLASS_NAME_SHOW$2 = 'show';\n const SELECTOR_TOOLTIP_INNER = '.tooltip-inner';\n const SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`;\n const EVENT_MODAL_HIDE = 'hide.bs.modal';\n const TRIGGER_HOVER = 'hover';\n const TRIGGER_FOCUS = 'focus';\n const TRIGGER_CLICK = 'click';\n const TRIGGER_MANUAL = 'manual';\n const EVENT_HIDE$2 = 'hide';\n const EVENT_HIDDEN$2 = 'hidden';\n const EVENT_SHOW$2 = 'show';\n const EVENT_SHOWN$2 = 'shown';\n const EVENT_INSERTED = 'inserted';\n const EVENT_CLICK$1 = 'click';\n const EVENT_FOCUSIN$1 = 'focusin';\n const EVENT_FOCUSOUT$1 = 'focusout';\n const EVENT_MOUSEENTER = 'mouseenter';\n const EVENT_MOUSELEAVE = 'mouseleave';\n const AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: isRTL() ? 'left' : 'right',\n BOTTOM: 'bottom',\n LEFT: isRTL() ? 'right' : 'left'\n };\n const Default$3 = {\n allowList: DefaultAllowlist,\n animation: true,\n boundary: 'clippingParents',\n container: false,\n customClass: '',\n delay: 0,\n fallbackPlacements: ['top', 'right', 'bottom', 'left'],\n html: false,\n offset: [0, 6],\n placement: 'top',\n popperConfig: null,\n sanitize: true,\n sanitizeFn: null,\n selector: false,\n template: '<div class=\"tooltip\" role=\"tooltip\">' + '<div class=\"tooltip-arrow\"></div>' + '<div class=\"tooltip-inner\"></div>' + '</div>',\n title: '',\n trigger: 'hover focus'\n };\n const DefaultType$3 = {\n allowList: 'object',\n animation: 'boolean',\n boundary: '(string|element)',\n container: '(string|element|boolean)',\n customClass: '(string|function)',\n delay: '(number|object)',\n fallbackPlacements: 'array',\n html: 'boolean',\n offset: '(array|string|function)',\n placement: '(string|function)',\n popperConfig: '(null|object|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n selector: '(string|boolean)',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string'\n };\n\n /**\n * Class definition\n */\n\n class Tooltip extends BaseComponent {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper (https://popper.js.org)');\n }\n super(element, config);\n\n // Private\n this._isEnabled = true;\n this._timeout = 0;\n this._isHovered = null;\n this._activeTrigger = {};\n this._popper = null;\n this._templateFactory = null;\n this._newContent = null;\n\n // Protected\n this.tip = null;\n this._setListeners();\n if (!this._config.selector) {\n this._fixTitle();\n }\n }\n\n // Getters\n static get Default() {\n return Default$3;\n }\n static get DefaultType() {\n return DefaultType$3;\n }\n static get NAME() {\n return NAME$4;\n }\n\n // Public\n enable() {\n this._isEnabled = true;\n }\n disable() {\n this._isEnabled = false;\n }\n toggleEnabled() {\n this._isEnabled = !this._isEnabled;\n }\n toggle() {\n if (!this._isEnabled) {\n return;\n }\n this._activeTrigger.click = !this._activeTrigger.click;\n if (this._isShown()) {\n this._leave();\n return;\n }\n this._enter();\n }\n dispose() {\n clearTimeout(this._timeout);\n EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);\n if (this._element.getAttribute('data-bs-original-title')) {\n this._element.setAttribute('title', this._element.getAttribute('data-bs-original-title'));\n }\n this._disposePopper();\n super.dispose();\n }\n show() {\n if (this._element.style.display === 'none') {\n throw new Error('Please use show on visible elements');\n }\n if (!(this._isWithContent() && this._isEnabled)) {\n return;\n }\n const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW$2));\n const shadowRoot = findShadowRoot(this._element);\n const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element);\n if (showEvent.defaultPrevented || !isInTheDom) {\n return;\n }\n\n // TODO: v6 remove this or make it optional\n this._disposePopper();\n const tip = this._getTipElement();\n this._element.setAttribute('aria-describedby', tip.getAttribute('id'));\n const {\n container\n } = this._config;\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.append(tip);\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED));\n }\n this._popper = this._createPopper(tip);\n tip.classList.add(CLASS_NAME_SHOW$2);\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.on(element, 'mouseover', noop);\n }\n }\n const complete = () => {\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN$2));\n if (this._isHovered === false) {\n this._leave();\n }\n this._isHovered = false;\n };\n this._queueCallback(complete, this.tip, this._isAnimated());\n }\n hide() {\n if (!this._isShown()) {\n return;\n }\n const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE$2));\n if (hideEvent.defaultPrevented) {\n return;\n }\n const tip = this._getTipElement();\n tip.classList.remove(CLASS_NAME_SHOW$2);\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.off(element, 'mouseover', noop);\n }\n }\n this._activeTrigger[TRIGGER_CLICK] = false;\n this._activeTrigger[TRIGGER_FOCUS] = false;\n this._activeTrigger[TRIGGER_HOVER] = false;\n this._isHovered = null; // it is a trick to support manual triggering\n\n const complete = () => {\n if (this._isWithActiveTrigger()) {\n return;\n }\n if (!this._isHovered) {\n this._disposePopper();\n }\n this._element.removeAttribute('aria-describedby');\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN$2));\n };\n this._queueCallback(complete, this.tip, this._isAnimated());\n }\n update() {\n if (this._popper) {\n this._popper.update();\n }\n }\n\n // Protected\n _isWithContent() {\n return Boolean(this._getTitle());\n }\n _getTipElement() {\n if (!this.tip) {\n this.tip = this._createTipElement(this._newContent || this._getContentForTemplate());\n }\n return this.tip;\n }\n _createTipElement(content) {\n const tip = this._getTemplateFactory(content).toHtml();\n\n // TODO: remove this check in v6\n if (!tip) {\n return null;\n }\n tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2);\n // TODO: v6 the following can be achieved with CSS only\n tip.classList.add(`bs-${this.constructor.NAME}-auto`);\n const tipId = getUID(this.constructor.NAME).toString();\n tip.setAttribute('id', tipId);\n if (this._isAnimated()) {\n tip.classList.add(CLASS_NAME_FADE$2);\n }\n return tip;\n }\n setContent(content) {\n this._newContent = content;\n if (this._isShown()) {\n this._disposePopper();\n this.show();\n }\n }\n _getTemplateFactory(content) {\n if (this._templateFactory) {\n this._templateFactory.changeContent(content);\n } else {\n this._templateFactory = new TemplateFactory({\n ...this._config,\n // the `content` var has to be after `this._config`\n // to override config.content in case of popover\n content,\n extraClass: this._resolvePossibleFunction(this._config.customClass)\n });\n }\n return this._templateFactory;\n }\n _getContentForTemplate() {\n return {\n [SELECTOR_TOOLTIP_INNER]: this._getTitle()\n };\n }\n _getTitle() {\n return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute('data-bs-original-title');\n }\n\n // Private\n _initializeOnDelegatedTarget(event) {\n return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig());\n }\n _isAnimated() {\n return this._config.animation || this.tip && this.tip.classList.contains(CLASS_NAME_FADE$2);\n }\n _isShown() {\n return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW$2);\n }\n _createPopper(tip) {\n const placement = execute(this._config.placement, [this, tip, this._element]);\n const attachment = AttachmentMap[placement.toUpperCase()];\n return createPopper(this._element, tip, this._getPopperConfig(attachment));\n }\n _getOffset() {\n const {\n offset\n } = this._config;\n if (typeof offset === 'string') {\n return offset.split(',').map(value => Number.parseInt(value, 10));\n }\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element);\n }\n return offset;\n }\n _resolvePossibleFunction(arg) {\n return execute(arg, [this._element]);\n }\n _getPopperConfig(attachment) {\n const defaultBsPopperConfig = {\n placement: attachment,\n modifiers: [{\n name: 'flip',\n options: {\n fallbackPlacements: this._config.fallbackPlacements\n }\n }, {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }, {\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n }, {\n name: 'arrow',\n options: {\n element: `.${this.constructor.NAME}-arrow`\n }\n }, {\n name: 'preSetPlacement',\n enabled: true,\n phase: 'beforeMain',\n fn: data => {\n // Pre-set Popper's placement attribute in order to read the arrow sizes properly.\n // Otherwise, Popper mixes up the width and height dimensions since the initial arrow style is for top placement\n this._getTipElement().setAttribute('data-popper-placement', data.state.placement);\n }\n }]\n };\n return {\n ...defaultBsPopperConfig,\n ...execute(this._config.popperConfig, [defaultBsPopperConfig])\n };\n }\n _setListeners() {\n const triggers = this._config.trigger.split(' ');\n for (const trigger of triggers) {\n if (trigger === 'click') {\n EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK$1), this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event);\n context.toggle();\n });\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSEENTER) : this.constructor.eventName(EVENT_FOCUSIN$1);\n const eventOut = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSELEAVE) : this.constructor.eventName(EVENT_FOCUSOUT$1);\n EventHandler.on(this._element, eventIn, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event);\n context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;\n context._enter();\n });\n EventHandler.on(this._element, eventOut, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event);\n context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = context._element.contains(event.relatedTarget);\n context._leave();\n });\n }\n }\n this._hideModalHandler = () => {\n if (this._element) {\n this.hide();\n }\n };\n EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);\n }\n _fixTitle() {\n const title = this._element.getAttribute('title');\n if (!title) {\n return;\n }\n if (!this._element.getAttribute('aria-label') && !this._element.textContent.trim()) {\n this._element.setAttribute('aria-label', title);\n }\n this._element.setAttribute('data-bs-original-title', title); // DO NOT USE IT. Is only for backwards compatibility\n this._element.removeAttribute('title');\n }\n _enter() {\n if (this._isShown() || this._isHovered) {\n this._isHovered = true;\n return;\n }\n this._isHovered = true;\n this._setTimeout(() => {\n if (this._isHovered) {\n this.show();\n }\n }, this._config.delay.show);\n }\n _leave() {\n if (this._isWithActiveTrigger()) {\n return;\n }\n this._isHovered = false;\n this._setTimeout(() => {\n if (!this._isHovered) {\n this.hide();\n }\n }, this._config.delay.hide);\n }\n _setTimeout(handler, timeout) {\n clearTimeout(this._timeout);\n this._timeout = setTimeout(handler, timeout);\n }\n _isWithActiveTrigger() {\n return Object.values(this._activeTrigger).includes(true);\n }\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this._element);\n for (const dataAttribute of Object.keys(dataAttributes)) {\n if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) {\n delete dataAttributes[dataAttribute];\n }\n }\n config = {\n ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n };\n config = this._mergeConfigObj(config);\n config = this._configAfterMerge(config);\n this._typeCheckConfig(config);\n return config;\n }\n _configAfterMerge(config) {\n config.container = config.container === false ? document.body : getElement(config.container);\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n };\n }\n if (typeof config.title === 'number') {\n config.title = config.title.toString();\n }\n if (typeof config.content === 'number') {\n config.content = config.content.toString();\n }\n return config;\n }\n _getDelegateConfig() {\n const config = {};\n for (const [key, value] of Object.entries(this._config)) {\n if (this.constructor.Default[key] !== value) {\n config[key] = value;\n }\n }\n config.selector = false;\n config.trigger = 'manual';\n\n // In the future can be replaced with:\n // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]])\n // `Object.fromEntries(keysWithDifferentValues)`\n return config;\n }\n _disposePopper() {\n if (this._popper) {\n this._popper.destroy();\n this._popper = null;\n }\n if (this.tip) {\n this.tip.remove();\n this.tip = null;\n }\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Tooltip.getOrCreateInstance(this, config);\n if (typeof config !== 'string') {\n return;\n }\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n });\n }\n }\n\n /**\n * jQuery\n */\n\n defineJQueryPlugin(Tooltip);\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n /**\n * Constants\n */\n\n const NAME$3 = 'popover';\n const SELECTOR_TITLE = '.popover-header';\n const SELECTOR_CONTENT = '.popover-body';\n const Default$2 = {\n ...Tooltip.Default,\n content: '',\n offset: [0, 8],\n placement: 'right',\n template: '<div class=\"popover\" role=\"tooltip\">' + '<div class=\"popover-arrow\"></div>' + '<h3 class=\"popover-header\"></h3>' + '<div class=\"popover-body\"></div>' + '</div>',\n trigger: 'click'\n };\n const DefaultType$2 = {\n ...Tooltip.DefaultType,\n content: '(null|string|element|function)'\n };\n\n /**\n * Class definition\n */\n\n class Popover extends Tooltip {\n // Getters\n static get Default() {\n return Default$2;\n }\n static get DefaultType() {\n return DefaultType$2;\n }\n static get NAME() {\n return NAME$3;\n }\n\n // Overrides\n _isWithContent() {\n return this._getTitle() || this._getContent();\n }\n\n // Private\n _getContentForTemplate() {\n return {\n [SELECTOR_TITLE]: this._getTitle(),\n [SELECTOR_CONTENT]: this._getContent()\n };\n }\n _getContent() {\n return this._resolvePossibleFunction(this._config.content);\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Popover.getOrCreateInstance(this, config);\n if (typeof config !== 'string') {\n return;\n }\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n });\n }\n }\n\n /**\n * jQuery\n */\n\n defineJQueryPlugin(Popover);\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n /**\n * Constants\n */\n\n const NAME$2 = 'scrollspy';\n const DATA_KEY$2 = 'bs.scrollspy';\n const EVENT_KEY$2 = `.${DATA_KEY$2}`;\n const DATA_API_KEY = '.data-api';\n const EVENT_ACTIVATE = `activate${EVENT_KEY$2}`;\n const EVENT_CLICK = `click${EVENT_KEY$2}`;\n const EVENT_LOAD_DATA_API$1 = `load${EVENT_KEY$2}${DATA_API_KEY}`;\n const CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';\n const CLASS_NAME_ACTIVE$1 = 'active';\n const SELECTOR_DATA_SPY = '[data-bs-spy=\"scroll\"]';\n const SELECTOR_TARGET_LINKS = '[href]';\n const SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';\n const SELECTOR_NAV_LINKS = '.nav-link';\n const SELECTOR_NAV_ITEMS = '.nav-item';\n const SELECTOR_LIST_ITEMS = '.list-group-item';\n const SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`;\n const SELECTOR_DROPDOWN = '.dropdown';\n const SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle';\n const Default$1 = {\n offset: null,\n // TODO: v6 @deprecated, keep it for backwards compatibility reasons\n rootMargin: '0px 0px -25%',\n smoothScroll: false,\n target: null,\n threshold: [0.1, 0.5, 1]\n };\n const DefaultType$1 = {\n offset: '(number|null)',\n // TODO v6 @deprecated, keep it for backwards compatibility reasons\n rootMargin: 'string',\n smoothScroll: 'boolean',\n target: 'element',\n threshold: 'array'\n };\n\n /**\n * Class definition\n */\n\n class ScrollSpy extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n\n // this._element is the observablesContainer and config.target the menu links wrapper\n this._targetLinks = new Map();\n this._observableSections = new Map();\n this._rootElement = getComputedStyle(this._element).overflowY === 'visible' ? null : this._element;\n this._activeTarget = null;\n this._observer = null;\n this._previousScrollData = {\n visibleEntryTop: 0,\n parentScrollTop: 0\n };\n this.refresh(); // initialize\n }\n\n // Getters\n static get Default() {\n return Default$1;\n }\n static get DefaultType() {\n return DefaultType$1;\n }\n static get NAME() {\n return NAME$2;\n }\n\n // Public\n refresh() {\n this._initializeTargetsAndObservables();\n this._maybeEnableSmoothScroll();\n if (this._observer) {\n this._observer.disconnect();\n } else {\n this._observer = this._getNewObserver();\n }\n for (const section of this._observableSections.values()) {\n this._observer.observe(section);\n }\n }\n dispose() {\n this._observer.disconnect();\n super.dispose();\n }\n\n // Private\n _configAfterMerge(config) {\n // TODO: on v6 target should be given explicitly & remove the {target: 'ss-target'} case\n config.target = getElement(config.target) || document.body;\n\n // TODO: v6 Only for backwards compatibility reasons. Use rootMargin only\n config.rootMargin = config.offset ? `${config.offset}px 0px -30%` : config.rootMargin;\n if (typeof config.threshold === 'string') {\n config.threshold = config.threshold.split(',').map(value => Number.parseFloat(value));\n }\n return config;\n }\n _maybeEnableSmoothScroll() {\n if (!this._config.smoothScroll) {\n return;\n }\n\n // unregister any previous listeners\n EventHandler.off(this._config.target, EVENT_CLICK);\n EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, event => {\n const observableSection = this._observableSections.get(event.target.hash);\n if (observableSection) {\n event.preventDefault();\n const root = this._rootElement || window;\n const height = observableSection.offsetTop - this._element.offsetTop;\n if (root.scrollTo) {\n root.scrollTo({\n top: height,\n behavior: 'smooth'\n });\n return;\n }\n\n // Chrome 60 doesn't support `scrollTo`\n root.scrollTop = height;\n }\n });\n }\n _getNewObserver() {\n const options = {\n root: this._rootElement,\n threshold: this._config.threshold,\n rootMargin: this._config.rootMargin\n };\n return new IntersectionObserver(entries => this._observerCallback(entries), options);\n }\n\n // The logic of selection\n _observerCallback(entries) {\n const targetElement = entry => this._targetLinks.get(`#${entry.target.id}`);\n const activate = entry => {\n this._previousScrollData.visibleEntryTop = entry.target.offsetTop;\n this._process(targetElement(entry));\n };\n const parentScrollTop = (this._rootElement || document.documentElement).scrollTop;\n const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop;\n this._previousScrollData.parentScrollTop = parentScrollTop;\n for (const entry of entries) {\n if (!entry.isIntersecting) {\n this._activeTarget = null;\n this._clearActiveClass(targetElement(entry));\n continue;\n }\n const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop;\n // if we are scrolling down, pick the bigger offsetTop\n if (userScrollsDown && entryIsLowerThanPrevious) {\n activate(entry);\n // if parent isn't scrolled, let's keep the first visible item, breaking the iteration\n if (!parentScrollTop) {\n return;\n }\n continue;\n }\n\n // if we are scrolling up, pick the smallest offsetTop\n if (!userScrollsDown && !entryIsLowerThanPrevious) {\n activate(entry);\n }\n }\n }\n _initializeTargetsAndObservables() {\n this._targetLinks = new Map();\n this._observableSections = new Map();\n const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target);\n for (const anchor of targetLinks) {\n // ensure that the anchor has an id and is not disabled\n if (!anchor.hash || isDisabled(anchor)) {\n continue;\n }\n const observableSection = SelectorEngine.findOne(decodeURI(anchor.hash), this._element);\n\n // ensure that the observableSection exists & is visible\n if (isVisible(observableSection)) {\n this._targetLinks.set(decodeURI(anchor.hash), anchor);\n this._observableSections.set(anchor.hash, observableSection);\n }\n }\n }\n _process(target) {\n if (this._activeTarget === target) {\n return;\n }\n this._clearActiveClass(this._config.target);\n this._activeTarget = target;\n target.classList.add(CLASS_NAME_ACTIVE$1);\n this._activateParents(target);\n EventHandler.trigger(this._element, EVENT_ACTIVATE, {\n relatedTarget: target\n });\n }\n _activateParents(target) {\n // Activate dropdown parents\n if (target.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE$1, target.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$1);\n return;\n }\n for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n for (const item of SelectorEngine.prev(listGroup, SELECTOR_LINK_ITEMS)) {\n item.classList.add(CLASS_NAME_ACTIVE$1);\n }\n }\n }\n _clearActiveClass(parent) {\n parent.classList.remove(CLASS_NAME_ACTIVE$1);\n const activeNodes = SelectorEngine.find(`${SELECTOR_TARGET_LINKS}.${CLASS_NAME_ACTIVE$1}`, parent);\n for (const node of activeNodes) {\n node.classList.remove(CLASS_NAME_ACTIVE$1);\n }\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = ScrollSpy.getOrCreateInstance(this, config);\n if (typeof config !== 'string') {\n return;\n }\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n });\n }\n }\n\n /**\n * Data API implementation\n */\n\n EventHandler.on(window, EVENT_LOAD_DATA_API$1, () => {\n for (const spy of SelectorEngine.find(SELECTOR_DATA_SPY)) {\n ScrollSpy.getOrCreateInstance(spy);\n }\n });\n\n /**\n * jQuery\n */\n\n defineJQueryPlugin(ScrollSpy);\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n /**\n * Constants\n */\n\n const NAME$1 = 'tab';\n const DATA_KEY$1 = 'bs.tab';\n const EVENT_KEY$1 = `.${DATA_KEY$1}`;\n const EVENT_HIDE$1 = `hide${EVENT_KEY$1}`;\n const EVENT_HIDDEN$1 = `hidden${EVENT_KEY$1}`;\n const EVENT_SHOW$1 = `show${EVENT_KEY$1}`;\n const EVENT_SHOWN$1 = `shown${EVENT_KEY$1}`;\n const EVENT_CLICK_DATA_API = `click${EVENT_KEY$1}`;\n const EVENT_KEYDOWN = `keydown${EVENT_KEY$1}`;\n const EVENT_LOAD_DATA_API = `load${EVENT_KEY$1}`;\n const ARROW_LEFT_KEY = 'ArrowLeft';\n const ARROW_RIGHT_KEY = 'ArrowRight';\n const ARROW_UP_KEY = 'ArrowUp';\n const ARROW_DOWN_KEY = 'ArrowDown';\n const HOME_KEY = 'Home';\n const END_KEY = 'End';\n const CLASS_NAME_ACTIVE = 'active';\n const CLASS_NAME_FADE$1 = 'fade';\n const CLASS_NAME_SHOW$1 = 'show';\n const CLASS_DROPDOWN = 'dropdown';\n const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';\n const SELECTOR_DROPDOWN_MENU = '.dropdown-menu';\n const NOT_SELECTOR_DROPDOWN_TOGGLE = ':not(.dropdown-toggle)';\n const SELECTOR_TAB_PANEL = '.list-group, .nav, [role=\"tablist\"]';\n const SELECTOR_OUTER = '.nav-item, .list-group-item';\n const SELECTOR_INNER = `.nav-link${NOT_SELECTOR_DROPDOWN_TOGGLE}, .list-group-item${NOT_SELECTOR_DROPDOWN_TOGGLE}, [role=\"tab\"]${NOT_SELECTOR_DROPDOWN_TOGGLE}`;\n const SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tab\"], [data-bs-toggle=\"pill\"], [data-bs-toggle=\"list\"]'; // TODO: could only be `tab` in v6\n const SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`;\n const SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle=\"tab\"], .${CLASS_NAME_ACTIVE}[data-bs-toggle=\"pill\"], .${CLASS_NAME_ACTIVE}[data-bs-toggle=\"list\"]`;\n\n /**\n * Class definition\n */\n\n class Tab extends BaseComponent {\n constructor(element) {\n super(element);\n this._parent = this._element.closest(SELECTOR_TAB_PANEL);\n if (!this._parent) {\n return;\n // TODO: should throw exception in v6\n // throw new TypeError(`${element.outerHTML} has not a valid parent ${SELECTOR_INNER_ELEM}`)\n }\n\n // Set up initial aria attributes\n this._setInitialAttributes(this._parent, this._getChildren());\n EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event));\n }\n\n // Getters\n static get NAME() {\n return NAME$1;\n }\n\n // Public\n show() {\n // Shows this elem and deactivate the active sibling if exists\n const innerElem = this._element;\n if (this._elemIsActive(innerElem)) {\n return;\n }\n\n // Search for active tab on same parent to deactivate it\n const active = this._getActiveElem();\n const hideEvent = active ? EventHandler.trigger(active, EVENT_HIDE$1, {\n relatedTarget: innerElem\n }) : null;\n const showEvent = EventHandler.trigger(innerElem, EVENT_SHOW$1, {\n relatedTarget: active\n });\n if (showEvent.defaultPrevented || hideEvent && hideEvent.defaultPrevented) {\n return;\n }\n this._deactivate(active, innerElem);\n this._activate(innerElem, active);\n }\n\n // Private\n _activate(element, relatedElem) {\n if (!element) {\n return;\n }\n element.classList.add(CLASS_NAME_ACTIVE);\n this._activate(SelectorEngine.getElementFromSelector(element)); // Search and activate/show the proper section\n\n const complete = () => {\n if (element.getAttribute('role') !== 'tab') {\n element.classList.add(CLASS_NAME_SHOW$1);\n return;\n }\n element.removeAttribute('tabindex');\n element.setAttribute('aria-selected', true);\n this._toggleDropDown(element, true);\n EventHandler.trigger(element, EVENT_SHOWN$1, {\n relatedTarget: relatedElem\n });\n };\n this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1));\n }\n _deactivate(element, relatedElem) {\n if (!element) {\n return;\n }\n element.classList.remove(CLASS_NAME_ACTIVE);\n element.blur();\n this._deactivate(SelectorEngine.getElementFromSelector(element)); // Search and deactivate the shown section too\n\n const complete = () => {\n if (element.getAttribute('role') !== 'tab') {\n element.classList.remove(CLASS_NAME_SHOW$1);\n return;\n }\n element.setAttribute('aria-selected', false);\n element.setAttribute('tabindex', '-1');\n this._toggleDropDown(element, false);\n EventHandler.trigger(element, EVENT_HIDDEN$1, {\n relatedTarget: relatedElem\n });\n };\n this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1));\n }\n _keydown(event) {\n if (![ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY, HOME_KEY, END_KEY].includes(event.key)) {\n return;\n }\n event.stopPropagation(); // stopPropagation/preventDefault both added to support up/down keys without scrolling the page\n event.preventDefault();\n const children = this._getChildren().filter(element => !isDisabled(element));\n let nextActiveElement;\n if ([HOME_KEY, END_KEY].includes(event.key)) {\n nextActiveElement = children[event.key === HOME_KEY ? 0 : children.length - 1];\n } else {\n const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key);\n nextActiveElement = getNextActiveElement(children, event.target, isNext, true);\n }\n if (nextActiveElement) {\n nextActiveElement.focus({\n preventScroll: true\n });\n Tab.getOrCreateInstance(nextActiveElement).show();\n }\n }\n _getChildren() {\n // collection of inner elements\n return SelectorEngine.find(SELECTOR_INNER_ELEM, this._parent);\n }\n _getActiveElem() {\n return this._getChildren().find(child => this._elemIsActive(child)) || null;\n }\n _setInitialAttributes(parent, children) {\n this._setAttributeIfNotExists(parent, 'role', 'tablist');\n for (const child of children) {\n this._setInitialAttributesOnChild(child);\n }\n }\n _setInitialAttributesOnChild(child) {\n child = this._getInnerElement(child);\n const isActive = this._elemIsActive(child);\n const outerElem = this._getOuterElement(child);\n child.setAttribute('aria-selected', isActive);\n if (outerElem !== child) {\n this._setAttributeIfNotExists(outerElem, 'role', 'presentation');\n }\n if (!isActive) {\n child.setAttribute('tabindex', '-1');\n }\n this._setAttributeIfNotExists(child, 'role', 'tab');\n\n // set attributes to the related panel too\n this._setInitialAttributesOnTargetPanel(child);\n }\n _setInitialAttributesOnTargetPanel(child) {\n const target = SelectorEngine.getElementFromSelector(child);\n if (!target) {\n return;\n }\n this._setAttributeIfNotExists(target, 'role', 'tabpanel');\n if (child.id) {\n this._setAttributeIfNotExists(target, 'aria-labelledby', `${child.id}`);\n }\n }\n _toggleDropDown(element, open) {\n const outerElem = this._getOuterElement(element);\n if (!outerElem.classList.contains(CLASS_DROPDOWN)) {\n return;\n }\n const toggle = (selector, className) => {\n const element = SelectorEngine.findOne(selector, outerElem);\n if (element) {\n element.classList.toggle(className, open);\n }\n };\n toggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE);\n toggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW$1);\n outerElem.setAttribute('aria-expanded', open);\n }\n _setAttributeIfNotExists(element, attribute, value) {\n if (!element.hasAttribute(attribute)) {\n element.setAttribute(attribute, value);\n }\n }\n _elemIsActive(elem) {\n return elem.classList.contains(CLASS_NAME_ACTIVE);\n }\n\n // Try to get the inner element (usually the .nav-link)\n _getInnerElement(elem) {\n return elem.matches(SELECTOR_INNER_ELEM) ? elem : SelectorEngine.findOne(SELECTOR_INNER_ELEM, elem);\n }\n\n // Try to get the outer element (usually the .nav-item)\n _getOuterElement(elem) {\n return elem.closest(SELECTOR_OUTER) || elem;\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Tab.getOrCreateInstance(this);\n if (typeof config !== 'string') {\n return;\n }\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n });\n }\n }\n\n /**\n * Data API implementation\n */\n\n EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n if (isDisabled(this)) {\n return;\n }\n Tab.getOrCreateInstance(this).show();\n });\n\n /**\n * Initialize on focus\n */\n EventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const element of SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE)) {\n Tab.getOrCreateInstance(element);\n }\n });\n /**\n * jQuery\n */\n\n defineJQueryPlugin(Tab);\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n /**\n * Constants\n */\n\n const NAME = 'toast';\n const DATA_KEY = 'bs.toast';\n const EVENT_KEY = `.${DATA_KEY}`;\n const EVENT_MOUSEOVER = `mouseover${EVENT_KEY}`;\n const EVENT_MOUSEOUT = `mouseout${EVENT_KEY}`;\n const EVENT_FOCUSIN = `focusin${EVENT_KEY}`;\n const EVENT_FOCUSOUT = `focusout${EVENT_KEY}`;\n const EVENT_HIDE = `hide${EVENT_KEY}`;\n const EVENT_HIDDEN = `hidden${EVENT_KEY}`;\n const EVENT_SHOW = `show${EVENT_KEY}`;\n const EVENT_SHOWN = `shown${EVENT_KEY}`;\n const CLASS_NAME_FADE = 'fade';\n const CLASS_NAME_HIDE = 'hide'; // @deprecated - kept here only for backwards compatibility\n const CLASS_NAME_SHOW = 'show';\n const CLASS_NAME_SHOWING = 'showing';\n const DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n };\n const Default = {\n animation: true,\n autohide: true,\n delay: 5000\n };\n\n /**\n * Class definition\n */\n\n class Toast extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._timeout = null;\n this._hasMouseInteraction = false;\n this._hasKeyboardInteraction = false;\n this._setListeners();\n }\n\n // Getters\n static get Default() {\n return Default;\n }\n static get DefaultType() {\n return DefaultType;\n }\n static get NAME() {\n return NAME;\n }\n\n // Public\n show() {\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW);\n if (showEvent.defaultPrevented) {\n return;\n }\n this._clearTimeout();\n if (this._config.animation) {\n this._element.classList.add(CLASS_NAME_FADE);\n }\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_SHOWING);\n EventHandler.trigger(this._element, EVENT_SHOWN);\n this._maybeScheduleHide();\n };\n this._element.classList.remove(CLASS_NAME_HIDE); // @deprecated\n reflow(this._element);\n this._element.classList.add(CLASS_NAME_SHOW, CLASS_NAME_SHOWING);\n this._queueCallback(complete, this._element, this._config.animation);\n }\n hide() {\n if (!this.isShown()) {\n return;\n }\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE);\n if (hideEvent.defaultPrevented) {\n return;\n }\n const complete = () => {\n this._element.classList.add(CLASS_NAME_HIDE); // @deprecated\n this._element.classList.remove(CLASS_NAME_SHOWING, CLASS_NAME_SHOW);\n EventHandler.trigger(this._element, EVENT_HIDDEN);\n };\n this._element.classList.add(CLASS_NAME_SHOWING);\n this._queueCallback(complete, this._element, this._config.animation);\n }\n dispose() {\n this._clearTimeout();\n if (this.isShown()) {\n this._element.classList.remove(CLASS_NAME_SHOW);\n }\n super.dispose();\n }\n isShown() {\n return this._element.classList.contains(CLASS_NAME_SHOW);\n }\n\n // Private\n\n _maybeScheduleHide() {\n if (!this._config.autohide) {\n return;\n }\n if (this._hasMouseInteraction || this._hasKeyboardInteraction) {\n return;\n }\n this._timeout = setTimeout(() => {\n this.hide();\n }, this._config.delay);\n }\n _onInteraction(event, isInteracting) {\n switch (event.type) {\n case 'mouseover':\n case 'mouseout':\n {\n this._hasMouseInteraction = isInteracting;\n break;\n }\n case 'focusin':\n case 'focusout':\n {\n this._hasKeyboardInteraction = isInteracting;\n break;\n }\n }\n if (isInteracting) {\n this._clearTimeout();\n return;\n }\n const nextElement = event.relatedTarget;\n if (this._element === nextElement || this._element.contains(nextElement)) {\n return;\n }\n this._maybeScheduleHide();\n }\n _setListeners() {\n EventHandler.on(this._element, EVENT_MOUSEOVER, event => this._onInteraction(event, true));\n EventHandler.on(this._element, EVENT_MOUSEOUT, event => this._onInteraction(event, false));\n EventHandler.on(this._element, EVENT_FOCUSIN, event => this._onInteraction(event, true));\n EventHandler.on(this._element, EVENT_FOCUSOUT, event => this._onInteraction(event, false));\n }\n _clearTimeout() {\n clearTimeout(this._timeout);\n this._timeout = null;\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Toast.getOrCreateInstance(this, config);\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config](this);\n }\n });\n }\n }\n\n /**\n * Data API implementation\n */\n\n enableDismissTrigger(Toast);\n\n /**\n * jQuery\n */\n\n defineJQueryPlugin(Toast);\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap index.umd.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n const index_umd = {\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Offcanvas,\n Popover,\n ScrollSpy,\n Tab,\n Toast,\n Tooltip\n };\n\n return index_umd;\n\n}));\n//# sourceMappingURL=bootstrap.bundle.js.map\n", "/*\nTrix 2.0.7\nCopyright \u00A9 2023 37signals, LLC\n */\nvar t=\"2.0.7\";const e=\"[data-trix-attachment]\",i={preview:{presentation:\"gallery\",caption:{name:!0,size:!0}},file:{caption:{size:!0}}},n={default:{tagName:\"div\",parse:!1},quote:{tagName:\"blockquote\",nestable:!0},heading1:{tagName:\"h1\",terminal:!0,breakOnReturn:!0,group:!1},code:{tagName:\"pre\",terminal:!0,text:{plaintext:!0}},bulletList:{tagName:\"ul\",parse:!1},bullet:{tagName:\"li\",listAttribute:\"bulletList\",group:!1,nestable:!0,test(t){return r(t.parentNode)===n[this.listAttribute].tagName}},numberList:{tagName:\"ol\",parse:!1},number:{tagName:\"li\",listAttribute:\"numberList\",group:!1,nestable:!0,test(t){return r(t.parentNode)===n[this.listAttribute].tagName}},attachmentGallery:{tagName:\"div\",exclusive:!0,terminal:!0,parse:!1,group:!1}},r=t=>{var e;return null==t||null===(e=t.tagName)||void 0===e?void 0:e.toLowerCase()},o=navigator.userAgent.match(/android\\s([0-9]+.*Chrome)/i),s=o&&parseInt(o[1]);var a={composesExistingText:/Android.*Chrome/.test(navigator.userAgent),recentAndroid:s&&s>12,samsungAndroid:s&&navigator.userAgent.match(/Android.*SM-/),forcesObjectResizing:/Trident.*rv:11/.test(navigator.userAgent),supportsInputEvents:\"undefined\"!=typeof InputEvent&&[\"data\",\"getTargetRanges\",\"inputType\"].every((t=>t in InputEvent.prototype))},l={attachFiles:\"Attach Files\",bold:\"Bold\",bullets:\"Bullets\",byte:\"Byte\",bytes:\"Bytes\",captionPlaceholder:\"Add a caption\u2026\",code:\"Code\",heading1:\"Heading\",indent:\"Increase Level\",italic:\"Italic\",link:\"Link\",numbers:\"Numbers\",outdent:\"Decrease Level\",quote:\"Quote\",redo:\"Redo\",remove:\"Remove\",strike:\"Strikethrough\",undo:\"Undo\",unlink:\"Unlink\",url:\"URL\",urlPlaceholder:\"Enter a URL\u2026\",GB:\"GB\",KB:\"KB\",MB:\"MB\",PB:\"PB\",TB:\"TB\"};const c=[l.bytes,l.KB,l.MB,l.GB,l.TB,l.PB];var h={prefix:\"IEC\",precision:2,formatter(t){switch(t){case 0:return\"0 \".concat(l.bytes);case 1:return\"1 \".concat(l.byte);default:let e;\"SI\"===this.prefix?e=1e3:\"IEC\"===this.prefix&&(e=1024);const i=Math.floor(Math.log(t)/Math.log(e)),n=(t/Math.pow(e,i)).toFixed(this.precision).replace(/0*$/,\"\").replace(/\\.$/,\"\");return\"\".concat(n,\" \").concat(c[i])}}};const u=\"\\ufeff\",d=\"\u00A0\",g=function(t){for(const e in t){const i=t[e];this[e]=i}return this},m=document.documentElement,p=m.matches,f=function(t){let{onElement:e,matchingSelector:i,withCallback:n,inPhase:r,preventDefault:o,times:s}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const a=e||m,l=i,c=\"capturing\"===r,h=function(t){null!=s&&0==--s&&h.destroy();const e=A(t.target,{matchingSelector:l});null!=e&&(null==n||n.call(e,t,e),o&&t.preventDefault())};return h.destroy=()=>a.removeEventListener(t,h,c),a.addEventListener(t,h,c),h},b=function(t){let{onElement:e,bubbles:i,cancelable:n,attributes:r}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=null!=e?e:m;i=!1!==i,n=!1!==n;const s=document.createEvent(\"Events\");return s.initEvent(t,i,n),null!=r&&g.call(s,r),o.dispatchEvent(s)},v=function(t,e){if(1===(null==t?void 0:t.nodeType))return p.call(t,e)},A=function(t){let{matchingSelector:e,untilNode:i}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};for(;t&&t.nodeType!==Node.ELEMENT_NODE;)t=t.parentNode;if(null!=t){if(null==e)return t;if(t.closest&&null==i)return t.closest(e);for(;t&&t!==i;){if(v(t,e))return t;t=t.parentNode}}},x=t=>document.activeElement!==t&&y(t,document.activeElement),y=function(t,e){if(t&&e)for(;e;){if(e===t)return!0;e=e.parentNode}},C=function(t){var e;if(null===(e=t)||void 0===e||!e.parentNode)return;let i=0;for(t=t.previousSibling;t;)i++,t=t.previousSibling;return i},R=t=>{var e;return null==t||null===(e=t.parentNode)||void 0===e?void 0:e.removeChild(t)},S=function(t){let{onlyNodesOfType:e,usingFilter:i,expandEntityReferences:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r=(()=>{switch(e){case\"element\":return NodeFilter.SHOW_ELEMENT;case\"text\":return NodeFilter.SHOW_TEXT;case\"comment\":return NodeFilter.SHOW_COMMENT;default:return NodeFilter.SHOW_ALL}})();return document.createTreeWalker(t,r,null!=i?i:null,!0===n)},E=t=>{var e;return null==t||null===(e=t.tagName)||void 0===e?void 0:e.toLowerCase()},k=function(t){let e,i,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};\"object\"==typeof t?(n=t,t=n.tagName):n={attributes:n};const r=document.createElement(t);if(null!=n.editable&&(null==n.attributes&&(n.attributes={}),n.attributes.contenteditable=n.editable),n.attributes)for(e in n.attributes)i=n.attributes[e],r.setAttribute(e,i);if(n.style)for(e in n.style)i=n.style[e],r.style[e]=i;if(n.data)for(e in n.data)i=n.data[e],r.dataset[e]=i;return n.className&&n.className.split(\" \").forEach((t=>{r.classList.add(t)})),n.textContent&&(r.textContent=n.textContent),n.childNodes&&[].concat(n.childNodes).forEach((t=>{r.appendChild(t)})),r};let L;const D=function(){if(null!=L)return L;L=[];for(const t in n){const e=n[t];e.tagName&&L.push(e.tagName)}return L},w=t=>B(null==t?void 0:t.firstChild),T=function(t){let{strict:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{strict:!0};return e?B(t):B(t)||!B(t.firstChild)&&function(t){return D().includes(E(t))&&!D().includes(E(t.firstChild))}(t)},B=t=>F(t)&&\"block\"===(null==t?void 0:t.data),F=t=>(null==t?void 0:t.nodeType)===Node.COMMENT_NODE,I=function(t){let{name:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(t)return O(t)?t.data===u?!e||t.parentNode.dataset.trixCursorTarget===e:void 0:I(t.firstChild)},P=t=>v(t,e),N=t=>O(t)&&\"\"===(null==t?void 0:t.data),O=t=>(null==t?void 0:t.nodeType)===Node.TEXT_NODE,M={level2Enabled:!0,getLevel(){return this.level2Enabled&&a.supportsInputEvents?2:0},pickFiles(t){const e=k(\"input\",{type:\"file\",multiple:!0,hidden:!0,id:this.fileInputId});e.addEventListener(\"change\",(()=>{t(e.files),R(e)})),R(document.getElementById(this.fileInputId)),document.body.appendChild(e),e.click()}};var j={removeBlankTableCells:!1,tableCellSeparator:\" | \",tableRowSeparator:\"\\n\"},W={bold:{tagName:\"strong\",inheritable:!0,parser(t){const e=window.getComputedStyle(t);return\"bold\"===e.fontWeight||e.fontWeight>=600}},italic:{tagName:\"em\",inheritable:!0,parser:t=>\"italic\"===window.getComputedStyle(t).fontStyle},href:{groupTagName:\"a\",parser(t){const i=\"a:not(\".concat(e,\")\"),n=t.closest(i);if(n)return n.getAttribute(\"href\")}},strike:{tagName:\"del\",inheritable:!0},frozen:{style:{backgroundColor:\"highlight\"}}},U={getDefaultHTML:()=>'<div class=\"trix-button-row\">\\n <span class=\"trix-button-group trix-button-group--text-tools\" data-trix-button-group=\"text-tools\">\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-bold\" data-trix-attribute=\"bold\" data-trix-key=\"b\" title=\"'.concat(l.bold,'\" tabindex=\"-1\">').concat(l.bold,'</button>\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-italic\" data-trix-attribute=\"italic\" data-trix-key=\"i\" title=\"').concat(l.italic,'\" tabindex=\"-1\">').concat(l.italic,'</button>\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-strike\" data-trix-attribute=\"strike\" title=\"').concat(l.strike,'\" tabindex=\"-1\">').concat(l.strike,'</button>\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-link\" data-trix-attribute=\"href\" data-trix-action=\"link\" data-trix-key=\"k\" title=\"').concat(l.link,'\" tabindex=\"-1\">').concat(l.link,'</button>\\n </span>\\n\\n <span class=\"trix-button-group trix-button-group--block-tools\" data-trix-button-group=\"block-tools\">\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-heading-1\" data-trix-attribute=\"heading1\" title=\"').concat(l.heading1,'\" tabindex=\"-1\">').concat(l.heading1,'</button>\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-quote\" data-trix-attribute=\"quote\" title=\"').concat(l.quote,'\" tabindex=\"-1\">').concat(l.quote,'</button>\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-code\" data-trix-attribute=\"code\" title=\"').concat(l.code,'\" tabindex=\"-1\">').concat(l.code,'</button>\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-bullet-list\" data-trix-attribute=\"bullet\" title=\"').concat(l.bullets,'\" tabindex=\"-1\">').concat(l.bullets,'</button>\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-number-list\" data-trix-attribute=\"number\" title=\"').concat(l.numbers,'\" tabindex=\"-1\">').concat(l.numbers,'</button>\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-decrease-nesting-level\" data-trix-action=\"decreaseNestingLevel\" title=\"').concat(l.outdent,'\" tabindex=\"-1\">').concat(l.outdent,'</button>\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-increase-nesting-level\" data-trix-action=\"increaseNestingLevel\" title=\"').concat(l.indent,'\" tabindex=\"-1\">').concat(l.indent,'</button>\\n </span>\\n\\n <span class=\"trix-button-group trix-button-group--file-tools\" data-trix-button-group=\"file-tools\">\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-attach\" data-trix-action=\"attachFiles\" title=\"').concat(l.attachFiles,'\" tabindex=\"-1\">').concat(l.attachFiles,'</button>\\n </span>\\n\\n <span class=\"trix-button-group-spacer\"></span>\\n\\n <span class=\"trix-button-group trix-button-group--history-tools\" data-trix-button-group=\"history-tools\">\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-undo\" data-trix-action=\"undo\" data-trix-key=\"z\" title=\"').concat(l.undo,'\" tabindex=\"-1\">').concat(l.undo,'</button>\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-redo\" data-trix-action=\"redo\" data-trix-key=\"shift+z\" title=\"').concat(l.redo,'\" tabindex=\"-1\">').concat(l.redo,'</button>\\n </span>\\n </div>\\n\\n <div class=\"trix-dialogs\" data-trix-dialogs>\\n <div class=\"trix-dialog trix-dialog--link\" data-trix-dialog=\"href\" data-trix-dialog-attribute=\"href\">\\n <div class=\"trix-dialog__link-fields\">\\n <input type=\"url\" name=\"href\" class=\"trix-input trix-input--dialog\" placeholder=\"').concat(l.urlPlaceholder,'\" aria-label=\"').concat(l.url,'\" required data-trix-input>\\n <div class=\"trix-button-group\">\\n <input type=\"button\" class=\"trix-button trix-button--dialog\" value=\"').concat(l.link,'\" data-trix-method=\"setAttribute\">\\n <input type=\"button\" class=\"trix-button trix-button--dialog\" value=\"').concat(l.unlink,'\" data-trix-method=\"removeAttribute\">\\n </div>\\n </div>\\n </div>\\n </div>')};const q={interval:5e3};var V=Object.freeze({__proto__:null,attachments:i,blockAttributes:n,browser:a,css:{attachment:\"attachment\",attachmentCaption:\"attachment__caption\",attachmentCaptionEditor:\"attachment__caption-editor\",attachmentMetadata:\"attachment__metadata\",attachmentMetadataContainer:\"attachment__metadata-container\",attachmentName:\"attachment__name\",attachmentProgress:\"attachment__progress\",attachmentSize:\"attachment__size\",attachmentToolbar:\"attachment__toolbar\",attachmentGallery:\"attachment-gallery\"},fileSize:h,input:M,keyNames:{8:\"backspace\",9:\"tab\",13:\"return\",27:\"escape\",37:\"left\",39:\"right\",46:\"delete\",68:\"d\",72:\"h\",79:\"o\"},lang:l,parser:j,textAttributes:W,toolbar:U,undo:q});class z{static proxyMethod(t){const{name:e,toMethod:i,toProperty:n,optional:r}=_(t);this.prototype[e]=function(){let t,o;var s,a;i?o=r?null===(s=this[i])||void 0===s?void 0:s.call(this):this[i]():n&&(o=this[n]);return r?(t=null===(a=o)||void 0===a?void 0:a[e],t?H.call(t,o,arguments):void 0):(t=o[e],H.call(t,o,arguments))}}}const _=function(t){const e=t.match(J);if(!e)throw new Error(\"can't parse @proxyMethod expression: \".concat(t));const i={name:e[4]};return null!=e[2]?i.toMethod=e[1]:i.toProperty=e[1],null!=e[3]&&(i.optional=!0),i},{apply:H}=Function.prototype,J=new RegExp(\"^(.+?)(\\\\(\\\\))?(\\\\?)?\\\\.(.+?)$\");var K,G,$;class X extends z{static box(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\";return t instanceof this?t:this.fromUCS2String(null==t?void 0:t.toString())}static fromUCS2String(t){return new this(t,tt(t))}static fromCodepoints(t){return new this(et(t),t)}constructor(t,e){super(...arguments),this.ucs2String=t,this.codepoints=e,this.length=this.codepoints.length,this.ucs2Length=this.ucs2String.length}offsetToUCS2Offset(t){return et(this.codepoints.slice(0,Math.max(0,t))).length}offsetFromUCS2Offset(t){return tt(this.ucs2String.slice(0,Math.max(0,t))).length}slice(){return this.constructor.fromCodepoints(this.codepoints.slice(...arguments))}charAt(t){return this.slice(t,t+1)}isEqualTo(t){return this.constructor.box(t).ucs2String===this.ucs2String}toJSON(){return this.ucs2String}getCacheKey(){return this.ucs2String}toString(){return this.ucs2String}}const Y=1===(null===(K=Array.from)||void 0===K?void 0:K.call(Array,\"\uD83D\uDC7C\").length),Q=null!=(null===(G=\" \".codePointAt)||void 0===G?void 0:G.call(\" \",0)),Z=\" \uD83D\uDC7C\"===(null===($=String.fromCodePoint)||void 0===$?void 0:$.call(String,32,128124));let tt,et;tt=Y&&Q?t=>Array.from(t).map((t=>t.codePointAt(0))):function(t){const e=[];let i=0;const{length:n}=t;for(;i<n;){let r=t.charCodeAt(i++);if(55296<=r&&r<=56319&&i<n){const e=t.charCodeAt(i++);56320==(64512&e)?r=((1023&r)<<10)+(1023&e)+65536:i--}e.push(r)}return e},et=Z?t=>String.fromCodePoint(...Array.from(t||[])):function(t){return(()=>{const e=[];return Array.from(t).forEach((t=>{let i=\"\";t>65535&&(t-=65536,i+=String.fromCharCode(t>>>10&1023|55296),t=56320|1023&t),e.push(i+String.fromCharCode(t))})),e})().join(\"\")};let it=0;class nt extends z{static fromJSONString(t){return this.fromJSON(JSON.parse(t))}constructor(){super(...arguments),this.id=++it}hasSameConstructorAs(t){return this.constructor===(null==t?void 0:t.constructor)}isEqualTo(t){return this===t}inspect(){const t=[],e=this.contentsForInspection()||{};for(const i in e){const n=e[i];t.push(\"\".concat(i,\"=\").concat(n))}return\"#<\".concat(this.constructor.name,\":\").concat(this.id).concat(t.length?\" \".concat(t.join(\", \")):\"\",\">\")}contentsForInspection(){}toJSONString(){return JSON.stringify(this)}toUTF16String(){return X.box(this)}getCacheKey(){return this.id.toString()}}const rt=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(t.length!==e.length)return!1;for(let i=0;i<t.length;i++){if(t[i]!==e[i])return!1}return!0},ot=function(t){const e=t.slice(0);for(var i=arguments.length,n=new Array(i>1?i-1:0),r=1;r<i;r++)n[r-1]=arguments[r];return e.splice(...n),e},st=/[\\u05BE\\u05C0\\u05C3\\u05D0-\\u05EA\\u05F0-\\u05F4\\u061B\\u061F\\u0621-\\u063A\\u0640-\\u064A\\u066D\\u0671-\\u06B7\\u06BA-\\u06BE\\u06C0-\\u06CE\\u06D0-\\u06D5\\u06E5\\u06E6\\u200F\\u202B\\u202E\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE72\\uFE74\\uFE76-\\uFEFC]/,at=function(){const t=k(\"input\",{dir:\"auto\",name:\"x\",dirName:\"x.dir\"}),e=k(\"textarea\",{dir:\"auto\",name:\"y\",dirName:\"y.dir\"}),i=k(\"form\");i.appendChild(t),i.appendChild(e);const n=function(){try{return new FormData(i).has(e.dirName)}catch(t){return!1}}(),r=function(){try{return t.matches(\":dir(ltr),:dir(rtl)\")}catch(t){return!1}}();return n?function(t){return e.value=t,new FormData(i).get(e.dirName)}:r?function(e){return t.value=e,t.matches(\":dir(rtl)\")?\"rtl\":\"ltr\"}:function(t){const e=t.trim().charAt(0);return st.test(e)?\"rtl\":\"ltr\"}}();let lt=null,ct=null,ht=null,ut=null;const dt=()=>(lt||(lt=ft().concat(mt())),lt),gt=t=>n[t],mt=()=>(ct||(ct=Object.keys(n)),ct),pt=t=>W[t],ft=()=>(ht||(ht=Object.keys(W)),ht),bt=function(t,e){vt(t).textContent=e.replace(/%t/g,t)},vt=function(t){const e=document.createElement(\"style\");e.setAttribute(\"type\",\"text/css\"),e.setAttribute(\"data-tag-name\",t.toLowerCase());const i=At();return i&&e.setAttribute(\"nonce\",i),document.head.insertBefore(e,document.head.firstChild),e},At=function(){const t=xt(\"trix-csp-nonce\")||xt(\"csp-nonce\");if(t)return t.getAttribute(\"content\")},xt=t=>document.head.querySelector(\"meta[name=\".concat(t,\"]\")),yt={\"application/x-trix-feature-detection\":\"test\"},Ct=function(t){const e=t.getData(\"text/plain\"),i=t.getData(\"text/html\");if(!e||!i)return null==e?void 0:e.length;{const{body:t}=(new DOMParser).parseFromString(i,\"text/html\");if(t.textContent===e)return!t.querySelector(\"*\")}},Rt=/Mac|^iP/.test(navigator.platform)?t=>t.metaKey:t=>t.ctrlKey,St=t=>setTimeout(t,1),Et=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const e={};for(const i in t){const n=t[i];e[i]=n}return e},kt=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(Object.keys(t).length!==Object.keys(e).length)return!1;for(const i in t){if(t[i]!==e[i])return!1}return!0},Lt=function(t){if(null!=t)return Array.isArray(t)||(t=[t,t]),[Tt(t[0]),Tt(null!=t[1]?t[1]:t[0])]},Dt=function(t){if(null==t)return;const[e,i]=Lt(t);return Bt(e,i)},wt=function(t,e){if(null==t||null==e)return;const[i,n]=Lt(t),[r,o]=Lt(e);return Bt(i,r)&&Bt(n,o)},Tt=function(t){return\"number\"==typeof t?t:Et(t)},Bt=function(t,e){return\"number\"==typeof t?t===e:kt(t,e)};class Ft extends z{constructor(){super(...arguments),this.update=this.update.bind(this),this.selectionManagers=[]}start(){this.started||(this.started=!0,document.addEventListener(\"selectionchange\",this.update,!0))}stop(){if(this.started)return this.started=!1,document.removeEventListener(\"selectionchange\",this.update,!0)}registerSelectionManager(t){if(!this.selectionManagers.includes(t))return this.selectionManagers.push(t),this.start()}unregisterSelectionManager(t){if(this.selectionManagers=this.selectionManagers.filter((e=>e!==t)),0===this.selectionManagers.length)return this.stop()}notifySelectionManagersOfSelectionChange(){return this.selectionManagers.map((t=>t.selectionDidChange()))}update(){this.notifySelectionManagersOfSelectionChange()}reset(){this.update()}}const It=new Ft,Pt=function(){const t=window.getSelection();if(t.rangeCount>0)return t},Nt=function(){var t;const e=null===(t=Pt())||void 0===t?void 0:t.getRangeAt(0);if(e&&!Mt(e))return e},Ot=function(t){const e=window.getSelection();return e.removeAllRanges(),e.addRange(t),It.update()},Mt=t=>jt(t.startContainer)||jt(t.endContainer),jt=t=>!Object.getPrototypeOf(t),Wt=t=>t.replace(new RegExp(\"\".concat(u),\"g\"),\"\").replace(new RegExp(\"\".concat(d),\"g\"),\" \"),Ut=new RegExp(\"[^\\\\S\".concat(d,\"]\")),qt=t=>t.replace(new RegExp(\"\".concat(Ut.source),\"g\"),\" \").replace(/\\ {2,}/g,\" \"),Vt=function(t,e){if(t.isEqualTo(e))return[\"\",\"\"];const i=zt(t,e),{length:n}=i.utf16String;let r;if(n){const{offset:o}=i,s=t.codepoints.slice(0,o).concat(t.codepoints.slice(o+n));r=zt(e,X.fromCodepoints(s))}else r=zt(e,t);return[i.utf16String.toString(),r.utf16String.toString()]},zt=function(t,e){let i=0,n=t.length,r=e.length;for(;i<n&&t.charAt(i).isEqualTo(e.charAt(i));)i++;for(;n>i+1&&t.charAt(n-1).isEqualTo(e.charAt(r-1));)n--,r--;return{utf16String:t.slice(i,n),offset:i}};class _t extends nt{static fromCommonAttributesOfObjects(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if(!t.length)return new this;let e=Gt(t[0]),i=e.getKeys();return t.slice(1).forEach((t=>{i=e.getKeysCommonToHash(Gt(t)),e=e.slice(i)})),e}static box(t){return Gt(t)}constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};super(...arguments),this.values=Kt(t)}add(t,e){return this.merge(Ht(t,e))}remove(t){return new _t(Kt(this.values,t))}get(t){return this.values[t]}has(t){return t in this.values}merge(t){return new _t(Jt(this.values,$t(t)))}slice(t){const e={};return Array.from(t).forEach((t=>{this.has(t)&&(e[t]=this.values[t])})),new _t(e)}getKeys(){return Object.keys(this.values)}getKeysCommonToHash(t){return t=Gt(t),this.getKeys().filter((e=>this.values[e]===t.values[e]))}isEqualTo(t){return rt(this.toArray(),Gt(t).toArray())}isEmpty(){return 0===this.getKeys().length}toArray(){if(!this.array){const t=[];for(const e in this.values){const i=this.values[e];t.push(t.push(e,i))}this.array=t.slice(0)}return this.array}toObject(){return Kt(this.values)}toJSON(){return this.toObject()}contentsForInspection(){return{values:JSON.stringify(this.values)}}}const Ht=function(t,e){const i={};return i[t]=e,i},Jt=function(t,e){const i=Kt(t);for(const t in e){const n=e[t];i[t]=n}return i},Kt=function(t,e){const i={};return Object.keys(t).sort().forEach((n=>{n!==e&&(i[n]=t[n])})),i},Gt=function(t){return t instanceof _t?t:new _t(t)},$t=function(t){return t instanceof _t?t.values:t};class Xt{static groupObjects(){let t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],{depth:i,asTree:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};n&&null==i&&(i=0);const r=[];return Array.from(e).forEach((e=>{var o;if(t){var s,a,l;if(null!==(s=e.canBeGrouped)&&void 0!==s&&s.call(e,i)&&null!==(a=(l=t[t.length-1]).canBeGroupedWith)&&void 0!==a&&a.call(l,e,i))return void t.push(e);r.push(new this(t,{depth:i,asTree:n})),t=null}null!==(o=e.canBeGrouped)&&void 0!==o&&o.call(e,i)?t=[e]:r.push(e)})),t&&r.push(new this(t,{depth:i,asTree:n})),r}constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],{depth:e,asTree:i}=arguments.length>1?arguments[1]:void 0;this.objects=t,i&&(this.depth=e,this.objects=this.constructor.groupObjects(this.objects,{asTree:i,depth:this.depth+1}))}getObjects(){return this.objects}getDepth(){return this.depth}getCacheKey(){const t=[\"objectGroup\"];return Array.from(this.getObjects()).forEach((e=>{t.push(e.getCacheKey())})),t.join(\"/\")}}class Yt extends z{constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];super(...arguments),this.objects={},Array.from(t).forEach((t=>{const e=JSON.stringify(t);null==this.objects[e]&&(this.objects[e]=t)}))}find(t){const e=JSON.stringify(t);return this.objects[e]}}class Qt{constructor(t){this.reset(t)}add(t){const e=Zt(t);this.elements[e]=t}remove(t){const e=Zt(t),i=this.elements[e];if(i)return delete this.elements[e],i}reset(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.elements={},Array.from(t).forEach((t=>{this.add(t)})),t}}const Zt=t=>t.dataset.trixStoreKey;class te extends z{isPerforming(){return!0===this.performing}hasPerformed(){return!0===this.performed}hasSucceeded(){return this.performed&&this.succeeded}hasFailed(){return this.performed&&!this.succeeded}getPromise(){return this.promise||(this.promise=new Promise(((t,e)=>(this.performing=!0,this.perform(((i,n)=>{this.succeeded=i,this.performing=!1,this.performed=!0,this.succeeded?t(n):e(n)})))))),this.promise}perform(t){return t(!1)}release(){var t,e;null===(t=this.promise)||void 0===t||null===(e=t.cancel)||void 0===e||e.call(t),this.promise=null,this.performing=null,this.performed=null,this.succeeded=null}}te.proxyMethod(\"getPromise().then\"),te.proxyMethod(\"getPromise().catch\");class ee extends z{constructor(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(...arguments),this.object=t,this.options=e,this.childViews=[],this.rootView=this}getNodes(){return this.nodes||(this.nodes=this.createNodes()),this.nodes.map((t=>t.cloneNode(!0)))}invalidate(){var t;return this.nodes=null,this.childViews=[],null===(t=this.parentView)||void 0===t?void 0:t.invalidate()}invalidateViewForObject(t){var e;return null===(e=this.findViewForObject(t))||void 0===e?void 0:e.invalidate()}findOrCreateCachedChildView(t,e,i){let n=this.getCachedViewForObject(e);return n?this.recordChildView(n):(n=this.createChildView(...arguments),this.cacheViewForObject(n,e)),n}createChildView(t,e){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};e instanceof Xt&&(i.viewClass=t,t=ie);const n=new t(e,i);return this.recordChildView(n)}recordChildView(t){return t.parentView=this,t.rootView=this.rootView,this.childViews.push(t),t}getAllChildViews(){let t=[];return this.childViews.forEach((e=>{t.push(e),t=t.concat(e.getAllChildViews())})),t}findElement(){return this.findElementForObject(this.object)}findElementForObject(t){const e=null==t?void 0:t.id;if(e)return this.rootView.element.querySelector(\"[data-trix-id='\".concat(e,\"']\"))}findViewForObject(t){for(const e of this.getAllChildViews())if(e.object===t)return e}getViewCache(){return this.rootView!==this?this.rootView.getViewCache():this.isViewCachingEnabled()?(this.viewCache||(this.viewCache={}),this.viewCache):void 0}isViewCachingEnabled(){return!1!==this.shouldCacheViews}enableViewCaching(){this.shouldCacheViews=!0}disableViewCaching(){this.shouldCacheViews=!1}getCachedViewForObject(t){var e;return null===(e=this.getViewCache())||void 0===e?void 0:e[t.getCacheKey()]}cacheViewForObject(t,e){const i=this.getViewCache();i&&(i[e.getCacheKey()]=t)}garbageCollectCachedViews(){const t=this.getViewCache();if(t){const e=this.getAllChildViews().concat(this).map((t=>t.object.getCacheKey()));for(const i in t)e.includes(i)||delete t[i]}}}class ie extends ee{constructor(){super(...arguments),this.objectGroup=this.object,this.viewClass=this.options.viewClass,delete this.options.viewClass}getChildViews(){return this.childViews.length||Array.from(this.objectGroup.getObjects()).forEach((t=>{this.findOrCreateCachedChildView(this.viewClass,t,this.options)})),this.childViews}createNodes(){const t=this.createContainerElement();return this.getChildViews().forEach((e=>{Array.from(e.getNodes()).forEach((e=>{t.appendChild(e)}))})),[t]}createContainerElement(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.objectGroup.getDepth();return this.getChildViews()[0].createContainerElement(t)}}const{css:ne}=V;class re extends ee{constructor(){super(...arguments),this.attachment=this.object,this.attachment.uploadProgressDelegate=this,this.attachmentPiece=this.options.piece}createContentNodes(){return[]}createNodes(){let t;const e=t=k({tagName:\"figure\",className:this.getClassName(),data:this.getData(),editable:!1}),i=this.getHref();return i&&(t=k({tagName:\"a\",editable:!1,attributes:{href:i,tabindex:-1}}),e.appendChild(t)),this.attachment.hasContent()?t.innerHTML=this.attachment.getContent():this.createContentNodes().forEach((e=>{t.appendChild(e)})),t.appendChild(this.createCaptionElement()),this.attachment.isPending()&&(this.progressElement=k({tagName:\"progress\",attributes:{class:ne.attachmentProgress,value:this.attachment.getUploadProgress(),max:100},data:{trixMutable:!0,trixStoreKey:[\"progressElement\",this.attachment.id].join(\"/\")}}),e.appendChild(this.progressElement)),[oe(\"left\"),e,oe(\"right\")]}createCaptionElement(){const t=k({tagName:\"figcaption\",className:ne.attachmentCaption}),e=this.attachmentPiece.getCaption();if(e)t.classList.add(\"\".concat(ne.attachmentCaption,\"--edited\")),t.textContent=e;else{let e,i;const n=this.getCaptionConfig();if(n.name&&(e=this.attachment.getFilename()),n.size&&(i=this.attachment.getFormattedFilesize()),e){const i=k({tagName:\"span\",className:ne.attachmentName,textContent:e});t.appendChild(i)}if(i){e&&t.appendChild(document.createTextNode(\" \"));const n=k({tagName:\"span\",className:ne.attachmentSize,textContent:i});t.appendChild(n)}}return t}getClassName(){const t=[ne.attachment,\"\".concat(ne.attachment,\"--\").concat(this.attachment.getType())],e=this.attachment.getExtension();return e&&t.push(\"\".concat(ne.attachment,\"--\").concat(e)),t.join(\" \")}getData(){const t={trixAttachment:JSON.stringify(this.attachment),trixContentType:this.attachment.getContentType(),trixId:this.attachment.id},{attributes:e}=this.attachmentPiece;return e.isEmpty()||(t.trixAttributes=JSON.stringify(e)),this.attachment.isPending()&&(t.trixSerialize=!1),t}getHref(){if(!se(this.attachment.getContent(),\"a\"))return this.attachment.getHref()}getCaptionConfig(){var t;const e=this.attachment.getType(),n=Et(null===(t=i[e])||void 0===t?void 0:t.caption);return\"file\"===e&&(n.name=!0),n}findProgressElement(){var t;return null===(t=this.findElement())||void 0===t?void 0:t.querySelector(\"progress\")}attachmentDidChangeUploadProgress(){const t=this.attachment.getUploadProgress(),e=this.findProgressElement();e&&(e.value=t)}}const oe=t=>k({tagName:\"span\",textContent:u,data:{trixCursorTarget:t,trixSerialize:!1}}),se=function(t,e){const i=k(\"div\");return i.innerHTML=t||\"\",i.querySelector(e)};class ae extends re{constructor(){super(...arguments),this.attachment.previewDelegate=this}createContentNodes(){return this.image=k({tagName:\"img\",attributes:{src:\"\"},data:{trixMutable:!0}}),this.refresh(this.image),[this.image]}createCaptionElement(){const t=super.createCaptionElement(...arguments);return t.textContent||t.setAttribute(\"data-trix-placeholder\",l.captionPlaceholder),t}refresh(t){var e;t||(t=null===(e=this.findElement())||void 0===e?void 0:e.querySelector(\"img\"));if(t)return this.updateAttributesForImage(t)}updateAttributesForImage(t){const e=this.attachment.getURL(),i=this.attachment.getPreviewURL();if(t.src=i||e,i===e)t.removeAttribute(\"data-trix-serialized-attributes\");else{const i=JSON.stringify({src:e});t.setAttribute(\"data-trix-serialized-attributes\",i)}const n=this.attachment.getWidth(),r=this.attachment.getHeight();null!=n&&(t.width=n),null!=r&&(t.height=r);const o=[\"imageElement\",this.attachment.id,t.src,t.width,t.height].join(\"/\");t.dataset.trixStoreKey=o}attachmentDidChangeAttributes(){return this.refresh(this.image),this.refresh()}}class le extends ee{constructor(){super(...arguments),this.piece=this.object,this.attributes=this.piece.getAttributes(),this.textConfig=this.options.textConfig,this.context=this.options.context,this.piece.attachment?this.attachment=this.piece.attachment:this.string=this.piece.toString()}createNodes(){let t=this.attachment?this.createAttachmentNodes():this.createStringNodes();const e=this.createElement();if(e){const i=function(t){for(;null!==(e=t)&&void 0!==e&&e.firstElementChild;){var e;t=t.firstElementChild}return t}(e);Array.from(t).forEach((t=>{i.appendChild(t)})),t=[e]}return t}createAttachmentNodes(){const t=this.attachment.isPreviewable()?ae:re;return this.createChildView(t,this.piece.attachment,{piece:this.piece}).getNodes()}createStringNodes(){var t;if(null!==(t=this.textConfig)&&void 0!==t&&t.plaintext)return[document.createTextNode(this.string)];{const t=[],e=this.string.split(\"\\n\");for(let i=0;i<e.length;i++){const n=e[i];if(i>0){const e=k(\"br\");t.push(e)}if(n.length){const e=document.createTextNode(this.preserveSpaces(n));t.push(e)}}return t}}createElement(){let t,e,i;const n={};for(e in this.attributes){i=this.attributes[e];const o=pt(e);if(o){if(o.tagName){var r;const e=k(o.tagName);r?(r.appendChild(e),r=e):t=r=e}if(o.styleProperty&&(n[o.styleProperty]=i),o.style)for(e in o.style)i=o.style[e],n[e]=i}}if(Object.keys(n).length)for(e in t||(t=k(\"span\")),n)i=n[e],t.style[e]=i;return t}createContainerElement(){for(const t in this.attributes){const e=this.attributes[t],i=pt(t);if(i&&i.groupTagName){const n={};return n[t]=e,k(i.groupTagName,n)}}}preserveSpaces(t){return this.context.isLast&&(t=t.replace(/\\ $/,d)),t=t.replace(/(\\S)\\ {3}(\\S)/g,\"$1 \".concat(d,\" $2\")).replace(/\\ {2}/g,\"\".concat(d,\" \")).replace(/\\ {2}/g,\" \".concat(d)),(this.context.isFirst||this.context.followsWhitespace)&&(t=t.replace(/^\\ /,d)),t}}class ce extends ee{constructor(){super(...arguments),this.text=this.object,this.textConfig=this.options.textConfig}createNodes(){const t=[],e=Xt.groupObjects(this.getPieces()),i=e.length-1;for(let r=0;r<e.length;r++){const o=e[r],s={};0===r&&(s.isFirst=!0),r===i&&(s.isLast=!0),he(n)&&(s.followsWhitespace=!0);const a=this.findOrCreateCachedChildView(le,o,{textConfig:this.textConfig,context:s});t.push(...Array.from(a.getNodes()||[]));var n=o}return t}getPieces(){return Array.from(this.text.getPieces()).filter((t=>!t.hasAttribute(\"blockBreak\")))}}const he=t=>/\\s$/.test(null==t?void 0:t.toString()),{css:ue}=V;class de extends ee{constructor(){super(...arguments),this.block=this.object,this.attributes=this.block.getAttributes()}createNodes(){const t=[document.createComment(\"block\")];if(this.block.isEmpty())t.push(k(\"br\"));else{var e;const i=null===(e=gt(this.block.getLastAttribute()))||void 0===e?void 0:e.text,n=this.findOrCreateCachedChildView(ce,this.block.text,{textConfig:i});t.push(...Array.from(n.getNodes()||[])),this.shouldAddExtraNewlineElement()&&t.push(k(\"br\"))}if(this.attributes.length)return t;{let e;const{tagName:i}=n.default;this.block.isRTL()&&(e={dir:\"rtl\"});const r=k({tagName:i,attributes:e});return t.forEach((t=>r.appendChild(t))),[r]}}createContainerElement(t){let e,i;const n=this.attributes[t],{tagName:r}=gt(n);if(0===t&&this.block.isRTL()&&(e={dir:\"rtl\"}),\"attachmentGallery\"===n){const t=this.block.getBlockBreakPosition();i=\"\".concat(ue.attachmentGallery,\" \").concat(ue.attachmentGallery,\"--\").concat(t)}return k({tagName:r,className:i,attributes:e})}shouldAddExtraNewlineElement(){return/\\n\\n$/.test(this.block.toString())}}class ge extends ee{static render(t){const e=k(\"div\"),i=new this(t,{element:e});return i.render(),i.sync(),e}constructor(){super(...arguments),this.element=this.options.element,this.elementStore=new Qt,this.setDocument(this.object)}setDocument(t){t.isEqualTo(this.document)||(this.document=this.object=t)}render(){if(this.childViews=[],this.shadowElement=k(\"div\"),!this.document.isEmpty()){const t=Xt.groupObjects(this.document.getBlocks(),{asTree:!0});Array.from(t).forEach((t=>{const e=this.findOrCreateCachedChildView(de,t);Array.from(e.getNodes()).map((t=>this.shadowElement.appendChild(t)))}))}}isSynced(){return pe(this.shadowElement,this.element)}sync(){const t=this.createDocumentFragmentForSync();for(;this.element.lastChild;)this.element.removeChild(this.element.lastChild);return this.element.appendChild(t),this.didSync()}didSync(){return this.elementStore.reset(me(this.element)),St((()=>this.garbageCollectCachedViews()))}createDocumentFragmentForSync(){const t=document.createDocumentFragment();return Array.from(this.shadowElement.childNodes).forEach((e=>{t.appendChild(e.cloneNode(!0))})),Array.from(me(t)).forEach((t=>{const e=this.elementStore.remove(t);e&&t.parentNode.replaceChild(e,t)})),t}}const me=t=>t.querySelectorAll(\"[data-trix-store-key]\"),pe=(t,e)=>fe(t.innerHTML)===fe(e.innerHTML),fe=t=>t.replace(/ /g,\" \");function be(t){var e,i;function n(e,i){try{var o=t[e](i),s=o.value,a=s instanceof ve;Promise.resolve(a?s.v:s).then((function(i){if(a){var l=\"return\"===e?\"return\":\"next\";if(!s.k||i.done)return n(l,i);i=t[l](i).value}r(o.done?\"return\":\"normal\",i)}),(function(t){n(\"throw\",t)}))}catch(t){r(\"throw\",t)}}function r(t,r){switch(t){case\"return\":e.resolve({value:r,done:!0});break;case\"throw\":e.reject(r);break;default:e.resolve({value:r,done:!1})}(e=e.next)?n(e.key,e.arg):i=null}this._invoke=function(t,r){return new Promise((function(o,s){var a={key:t,arg:r,resolve:o,reject:s,next:null};i?i=i.next=a:(e=i=a,n(t,r))}))},\"function\"!=typeof t.return&&(this.return=void 0)}function ve(t,e){this.v=t,this.k=e}function Ae(t,e,i){return(e=xe(e))in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function xe(t){var e=function(t,e){if(\"object\"!=typeof t||null===t)return t;var i=t[Symbol.toPrimitive];if(void 0!==i){var n=i.call(t,e||\"default\");if(\"object\"!=typeof n)return n;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===e?String:Number)(t)}(t,\"string\");return\"symbol\"==typeof e?e:String(e)}be.prototype[\"function\"==typeof Symbol&&Symbol.asyncIterator||\"@@asyncIterator\"]=function(){return this},be.prototype.next=function(t){return this._invoke(\"next\",t)},be.prototype.throw=function(t){return this._invoke(\"throw\",t)},be.prototype.return=function(t){return this._invoke(\"return\",t)};class ye extends nt{static registerType(t,e){e.type=t,this.types[t]=e}static fromJSON(t){const e=this.types[t.type];if(e)return e.fromJSON(t)}constructor(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(...arguments),this.attributes=_t.box(e)}copyWithAttributes(t){return new this.constructor(this.getValue(),t)}copyWithAdditionalAttributes(t){return this.copyWithAttributes(this.attributes.merge(t))}copyWithoutAttribute(t){return this.copyWithAttributes(this.attributes.remove(t))}copy(){return this.copyWithAttributes(this.attributes)}getAttribute(t){return this.attributes.get(t)}getAttributesHash(){return this.attributes}getAttributes(){return this.attributes.toObject()}hasAttribute(t){return this.attributes.has(t)}hasSameStringValueAsPiece(t){return t&&this.toString()===t.toString()}hasSameAttributesAsPiece(t){return t&&(this.attributes===t.attributes||this.attributes.isEqualTo(t.attributes))}isBlockBreak(){return!1}isEqualTo(t){return super.isEqualTo(...arguments)||this.hasSameConstructorAs(t)&&this.hasSameStringValueAsPiece(t)&&this.hasSameAttributesAsPiece(t)}isEmpty(){return 0===this.length}isSerializable(){return!0}toJSON(){return{type:this.constructor.type,attributes:this.getAttributes()}}contentsForInspection(){return{type:this.constructor.type,attributes:this.attributes.inspect()}}canBeGrouped(){return this.hasAttribute(\"href\")}canBeGroupedWith(t){return this.getAttribute(\"href\")===t.getAttribute(\"href\")}getLength(){return this.length}canBeConsolidatedWith(t){return!1}}Ae(ye,\"types\",{});class Ce extends te{constructor(t){super(...arguments),this.url=t}perform(t){const e=new Image;e.onload=()=>(e.width=this.width=e.naturalWidth,e.height=this.height=e.naturalHeight,t(!0,e)),e.onerror=()=>t(!1),e.src=this.url}}class Re extends nt{static attachmentForFile(t){const e=new this(this.attributesForFile(t));return e.setFile(t),e}static attributesForFile(t){return new _t({filename:t.name,filesize:t.size,contentType:t.type})}static fromJSON(t){return new this(t)}constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};super(t),this.releaseFile=this.releaseFile.bind(this),this.attributes=_t.box(t),this.didChangeAttributes()}getAttribute(t){return this.attributes.get(t)}hasAttribute(t){return this.attributes.has(t)}getAttributes(){return this.attributes.toObject()}setAttributes(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const e=this.attributes.merge(t);var i,n,r,o;if(!this.attributes.isEqualTo(e))return this.attributes=e,this.didChangeAttributes(),null===(i=this.previewDelegate)||void 0===i||null===(n=i.attachmentDidChangeAttributes)||void 0===n||n.call(i,this),null===(r=this.delegate)||void 0===r||null===(o=r.attachmentDidChangeAttributes)||void 0===o?void 0:o.call(r,this)}didChangeAttributes(){if(this.isPreviewable())return this.preloadURL()}isPending(){return null!=this.file&&!(this.getURL()||this.getHref())}isPreviewable(){return this.attributes.has(\"previewable\")?this.attributes.get(\"previewable\"):Re.previewablePattern.test(this.getContentType())}getType(){return this.hasContent()?\"content\":this.isPreviewable()?\"preview\":\"file\"}getURL(){return this.attributes.get(\"url\")}getHref(){return this.attributes.get(\"href\")}getFilename(){return this.attributes.get(\"filename\")||\"\"}getFilesize(){return this.attributes.get(\"filesize\")}getFormattedFilesize(){const t=this.attributes.get(\"filesize\");return\"number\"==typeof t?h.formatter(t):\"\"}getExtension(){var t;return null===(t=this.getFilename().match(/\\.(\\w+)$/))||void 0===t?void 0:t[1].toLowerCase()}getContentType(){return this.attributes.get(\"contentType\")}hasContent(){return this.attributes.has(\"content\")}getContent(){return this.attributes.get(\"content\")}getWidth(){return this.attributes.get(\"width\")}getHeight(){return this.attributes.get(\"height\")}getFile(){return this.file}setFile(t){if(this.file=t,this.isPreviewable())return this.preloadFile()}releaseFile(){this.releasePreloadedFile(),this.file=null}getUploadProgress(){return null!=this.uploadProgress?this.uploadProgress:0}setUploadProgress(t){var e,i;if(this.uploadProgress!==t)return this.uploadProgress=t,null===(e=this.uploadProgressDelegate)||void 0===e||null===(i=e.attachmentDidChangeUploadProgress)||void 0===i?void 0:i.call(e,this)}toJSON(){return this.getAttributes()}getCacheKey(){return[super.getCacheKey(...arguments),this.attributes.getCacheKey(),this.getPreviewURL()].join(\"/\")}getPreviewURL(){return this.previewURL||this.preloadingURL}setPreviewURL(t){var e,i,n,r;if(t!==this.getPreviewURL())return this.previewURL=t,null===(e=this.previewDelegate)||void 0===e||null===(i=e.attachmentDidChangeAttributes)||void 0===i||i.call(e,this),null===(n=this.delegate)||void 0===n||null===(r=n.attachmentDidChangePreviewURL)||void 0===r?void 0:r.call(n,this)}preloadURL(){return this.preload(this.getURL(),this.releaseFile)}preloadFile(){if(this.file)return this.fileObjectURL=URL.createObjectURL(this.file),this.preload(this.fileObjectURL)}releasePreloadedFile(){this.fileObjectURL&&(URL.revokeObjectURL(this.fileObjectURL),this.fileObjectURL=null)}preload(t,e){if(t&&t!==this.getPreviewURL()){this.preloadingURL=t;return new Ce(t).then((i=>{let{width:n,height:r}=i;return this.getWidth()&&this.getHeight()||this.setAttributes({width:n,height:r}),this.preloadingURL=null,this.setPreviewURL(t),null==e?void 0:e()})).catch((()=>(this.preloadingURL=null,null==e?void 0:e())))}}}Ae(Re,\"previewablePattern\",/^image(\\/(gif|png|webp|jpe?g)|$)/);class Se extends ye{static fromJSON(t){return new this(Re.fromJSON(t.attachment),t.attributes)}constructor(t){super(...arguments),this.attachment=t,this.length=1,this.ensureAttachmentExclusivelyHasAttribute(\"href\"),this.attachment.hasContent()||this.removeProhibitedAttributes()}ensureAttachmentExclusivelyHasAttribute(t){this.hasAttribute(t)&&(this.attachment.hasAttribute(t)||this.attachment.setAttributes(this.attributes.slice([t])),this.attributes=this.attributes.remove(t))}removeProhibitedAttributes(){const t=this.attributes.slice(Se.permittedAttributes);t.isEqualTo(this.attributes)||(this.attributes=t)}getValue(){return this.attachment}isSerializable(){return!this.attachment.isPending()}getCaption(){return this.attributes.get(\"caption\")||\"\"}isEqualTo(t){var e;return super.isEqualTo(t)&&this.attachment.id===(null==t||null===(e=t.attachment)||void 0===e?void 0:e.id)}toString(){return\"\uFFFC\"}toJSON(){const t=super.toJSON(...arguments);return t.attachment=this.attachment,t}getCacheKey(){return[super.getCacheKey(...arguments),this.attachment.getCacheKey()].join(\"/\")}toConsole(){return JSON.stringify(this.toString())}}Ae(Se,\"permittedAttributes\",[\"caption\",\"presentation\"]),ye.registerType(\"attachment\",Se);class Ee extends ye{static fromJSON(t){return new this(t.string,t.attributes)}constructor(t){super(...arguments),this.string=(t=>t.replace(/\\r\\n/g,\"\\n\"))(t),this.length=this.string.length}getValue(){return this.string}toString(){return this.string.toString()}isBlockBreak(){return\"\\n\"===this.toString()&&!0===this.getAttribute(\"blockBreak\")}toJSON(){const t=super.toJSON(...arguments);return t.string=this.string,t}canBeConsolidatedWith(t){return t&&this.hasSameConstructorAs(t)&&this.hasSameAttributesAsPiece(t)}consolidateWith(t){return new this.constructor(this.toString()+t.toString(),this.attributes)}splitAtOffset(t){let e,i;return 0===t?(e=null,i=this):t===this.length?(e=this,i=null):(e=new this.constructor(this.string.slice(0,t),this.attributes),i=new this.constructor(this.string.slice(t),this.attributes)),[e,i]}toConsole(){let{string:t}=this;return t.length>15&&(t=t.slice(0,14)+\"\u2026\"),JSON.stringify(t.toString())}}ye.registerType(\"string\",Ee);class ke extends nt{static box(t){return t instanceof this?t:new this(t)}constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];super(...arguments),this.objects=t.slice(0),this.length=this.objects.length}indexOf(t){return this.objects.indexOf(t)}splice(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];return new this.constructor(ot(this.objects,...e))}eachObject(t){return this.objects.map(((e,i)=>t(e,i)))}insertObjectAtIndex(t,e){return this.splice(e,0,t)}insertSplittableListAtIndex(t,e){return this.splice(e,0,...t.objects)}insertSplittableListAtPosition(t,e){const[i,n]=this.splitObjectAtPosition(e);return new this.constructor(i).insertSplittableListAtIndex(t,n)}editObjectAtIndex(t,e){return this.replaceObjectAtIndex(e(this.objects[t]),t)}replaceObjectAtIndex(t,e){return this.splice(e,1,t)}removeObjectAtIndex(t){return this.splice(t,1)}getObjectAtIndex(t){return this.objects[t]}getSplittableListInRange(t){const[e,i,n]=this.splitObjectsAtRange(t);return new this.constructor(e.slice(i,n+1))}selectSplittableList(t){const e=this.objects.filter((e=>t(e)));return new this.constructor(e)}removeObjectsInRange(t){const[e,i,n]=this.splitObjectsAtRange(t);return new this.constructor(e).splice(i,n-i+1)}transformObjectsInRange(t,e){const[i,n,r]=this.splitObjectsAtRange(t),o=i.map(((t,i)=>n<=i&&i<=r?e(t):t));return new this.constructor(o)}splitObjectsAtRange(t){let e,[i,n,r]=this.splitObjectAtPosition(De(t));return[i,e]=new this.constructor(i).splitObjectAtPosition(we(t)+r),[i,n,e-1]}getObjectAtPosition(t){const{index:e}=this.findIndexAndOffsetAtPosition(t);return this.objects[e]}splitObjectAtPosition(t){let e,i;const{index:n,offset:r}=this.findIndexAndOffsetAtPosition(t),o=this.objects.slice(0);if(null!=n)if(0===r)e=n,i=0;else{const t=this.getObjectAtIndex(n),[s,a]=t.splitAtOffset(r);o.splice(n,1,s,a),e=n+1,i=s.getLength()-r}else e=o.length,i=0;return[o,e,i]}consolidate(){const t=[];let e=this.objects[0];return this.objects.slice(1).forEach((i=>{var n,r;null!==(n=(r=e).canBeConsolidatedWith)&&void 0!==n&&n.call(r,i)?e=e.consolidateWith(i):(t.push(e),e=i)})),e&&t.push(e),new this.constructor(t)}consolidateFromIndexToIndex(t,e){const i=this.objects.slice(0).slice(t,e+1),n=new this.constructor(i).consolidate().toArray();return this.splice(t,i.length,...n)}findIndexAndOffsetAtPosition(t){let e,i=0;for(e=0;e<this.objects.length;e++){const n=i+this.objects[e].getLength();if(i<=t&&t<n)return{index:e,offset:t-i};i=n}return{index:null,offset:null}}findPositionAtIndexAndOffset(t,e){let i=0;for(let n=0;n<this.objects.length;n++){const r=this.objects[n];if(n<t)i+=r.getLength();else if(n===t){i+=e;break}}return i}getEndPosition(){return null==this.endPosition&&(this.endPosition=0,this.objects.forEach((t=>this.endPosition+=t.getLength()))),this.endPosition}toString(){return this.objects.join(\"\")}toArray(){return this.objects.slice(0)}toJSON(){return this.toArray()}isEqualTo(t){return super.isEqualTo(...arguments)||Le(this.objects,null==t?void 0:t.objects)}contentsForInspection(){return{objects:\"[\".concat(this.objects.map((t=>t.inspect())).join(\", \"),\"]\")}}}const Le=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(t.length!==e.length)return!1;let i=!0;for(let n=0;n<t.length;n++){const r=t[n];i&&!r.isEqualTo(e[n])&&(i=!1)}return i},De=t=>t[0],we=t=>t[1];class Te extends nt{static textForAttachmentWithAttributes(t,e){return new this([new Se(t,e)])}static textForStringWithAttributes(t,e){return new this([new Ee(t,e)])}static fromJSON(t){return new this(Array.from(t).map((t=>ye.fromJSON(t))))}constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];super(...arguments);const e=t.filter((t=>!t.isEmpty()));this.pieceList=new ke(e)}copy(){return this.copyWithPieceList(this.pieceList)}copyWithPieceList(t){return new this.constructor(t.consolidate().toArray())}copyUsingObjectMap(t){const e=this.getPieces().map((e=>t.find(e)||e));return new this.constructor(e)}appendText(t){return this.insertTextAtPosition(t,this.getLength())}insertTextAtPosition(t,e){return this.copyWithPieceList(this.pieceList.insertSplittableListAtPosition(t.pieceList,e))}removeTextAtRange(t){return this.copyWithPieceList(this.pieceList.removeObjectsInRange(t))}replaceTextAtRange(t,e){return this.removeTextAtRange(e).insertTextAtPosition(t,e[0])}moveTextFromRangeToPosition(t,e){if(t[0]<=e&&e<=t[1])return;const i=this.getTextAtRange(t),n=i.getLength();return t[0]<e&&(e-=n),this.removeTextAtRange(t).insertTextAtPosition(i,e)}addAttributeAtRange(t,e,i){const n={};return n[t]=e,this.addAttributesAtRange(n,i)}addAttributesAtRange(t,e){return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e,(e=>e.copyWithAdditionalAttributes(t))))}removeAttributeAtRange(t,e){return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e,(e=>e.copyWithoutAttribute(t))))}setAttributesAtRange(t,e){return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e,(e=>e.copyWithAttributes(t))))}getAttributesAtPosition(t){var e;return(null===(e=this.pieceList.getObjectAtPosition(t))||void 0===e?void 0:e.getAttributes())||{}}getCommonAttributes(){const t=Array.from(this.pieceList.toArray()).map((t=>t.getAttributes()));return _t.fromCommonAttributesOfObjects(t).toObject()}getCommonAttributesAtRange(t){return this.getTextAtRange(t).getCommonAttributes()||{}}getExpandedRangeForAttributeAtOffset(t,e){let i,n=i=e;const r=this.getLength();for(;n>0&&this.getCommonAttributesAtRange([n-1,i])[t];)n--;for(;i<r&&this.getCommonAttributesAtRange([e,i+1])[t];)i++;return[n,i]}getTextAtRange(t){return this.copyWithPieceList(this.pieceList.getSplittableListInRange(t))}getStringAtRange(t){return this.pieceList.getSplittableListInRange(t).toString()}getStringAtPosition(t){return this.getStringAtRange([t,t+1])}startsWithString(t){return this.getStringAtRange([0,t.length])===t}endsWithString(t){const e=this.getLength();return this.getStringAtRange([e-t.length,e])===t}getAttachmentPieces(){return this.pieceList.toArray().filter((t=>!!t.attachment))}getAttachments(){return this.getAttachmentPieces().map((t=>t.attachment))}getAttachmentAndPositionById(t){let e=0;for(const n of this.pieceList.toArray()){var i;if((null===(i=n.attachment)||void 0===i?void 0:i.id)===t)return{attachment:n.attachment,position:e};e+=n.length}return{attachment:null,position:null}}getAttachmentById(t){const{attachment:e}=this.getAttachmentAndPositionById(t);return e}getRangeOfAttachment(t){const e=this.getAttachmentAndPositionById(t.id),i=e.position;if(t=e.attachment)return[i,i+1]}updateAttributesForAttachment(t,e){const i=this.getRangeOfAttachment(e);return i?this.addAttributesAtRange(t,i):this}getLength(){return this.pieceList.getEndPosition()}isEmpty(){return 0===this.getLength()}isEqualTo(t){var e;return super.isEqualTo(t)||(null==t||null===(e=t.pieceList)||void 0===e?void 0:e.isEqualTo(this.pieceList))}isBlockBreak(){return 1===this.getLength()&&this.pieceList.getObjectAtIndex(0).isBlockBreak()}eachPiece(t){return this.pieceList.eachObject(t)}getPieces(){return this.pieceList.toArray()}getPieceAtPosition(t){return this.pieceList.getObjectAtPosition(t)}contentsForInspection(){return{pieceList:this.pieceList.inspect()}}toSerializableText(){const t=this.pieceList.selectSplittableList((t=>t.isSerializable()));return this.copyWithPieceList(t)}toString(){return this.pieceList.toString()}toJSON(){return this.pieceList.toJSON()}toConsole(){return JSON.stringify(this.pieceList.toArray().map((t=>JSON.parse(t.toConsole()))))}getDirection(){return at(this.toString())}isRTL(){return\"rtl\"===this.getDirection()}}class Be extends nt{static fromJSON(t){return new this(Te.fromJSON(t.text),t.attributes)}constructor(t,e){super(...arguments),this.text=Fe(t||new Te),this.attributes=e||[]}isEmpty(){return this.text.isBlockBreak()}isEqualTo(t){return!!super.isEqualTo(t)||this.text.isEqualTo(null==t?void 0:t.text)&&rt(this.attributes,null==t?void 0:t.attributes)}copyWithText(t){return new Be(t,this.attributes)}copyWithoutText(){return this.copyWithText(null)}copyWithAttributes(t){return new Be(this.text,t)}copyWithoutAttributes(){return this.copyWithAttributes(null)}copyUsingObjectMap(t){const e=t.find(this.text);return e?this.copyWithText(e):this.copyWithText(this.text.copyUsingObjectMap(t))}addAttribute(t){const e=this.attributes.concat(je(t));return this.copyWithAttributes(e)}removeAttribute(t){const{listAttribute:e}=gt(t),i=Ue(Ue(this.attributes,t),e);return this.copyWithAttributes(i)}removeLastAttribute(){return this.removeAttribute(this.getLastAttribute())}getLastAttribute(){return We(this.attributes)}getAttributes(){return this.attributes.slice(0)}getAttributeLevel(){return this.attributes.length}getAttributeAtLevel(t){return this.attributes[t-1]}hasAttribute(t){return this.attributes.includes(t)}hasAttributes(){return this.getAttributeLevel()>0}getLastNestableAttribute(){return We(this.getNestableAttributes())}getNestableAttributes(){return this.attributes.filter((t=>gt(t).nestable))}getNestingLevel(){return this.getNestableAttributes().length}decreaseNestingLevel(){const t=this.getLastNestableAttribute();return t?this.removeAttribute(t):this}increaseNestingLevel(){const t=this.getLastNestableAttribute();if(t){const e=this.attributes.lastIndexOf(t),i=ot(this.attributes,e+1,0,...je(t));return this.copyWithAttributes(i)}return this}getListItemAttributes(){return this.attributes.filter((t=>gt(t).listAttribute))}isListItem(){var t;return null===(t=gt(this.getLastAttribute()))||void 0===t?void 0:t.listAttribute}isTerminalBlock(){var t;return null===(t=gt(this.getLastAttribute()))||void 0===t?void 0:t.terminal}breaksOnReturn(){var t;return null===(t=gt(this.getLastAttribute()))||void 0===t?void 0:t.breakOnReturn}findLineBreakInDirectionFromPosition(t,e){const i=this.toString();let n;switch(t){case\"forward\":n=i.indexOf(\"\\n\",e);break;case\"backward\":n=i.slice(0,e).lastIndexOf(\"\\n\")}if(-1!==n)return n}contentsForInspection(){return{text:this.text.inspect(),attributes:this.attributes}}toString(){return this.text.toString()}toJSON(){return{text:this.text,attributes:this.attributes}}getDirection(){return this.text.getDirection()}isRTL(){return this.text.isRTL()}getLength(){return this.text.getLength()}canBeConsolidatedWith(t){return!this.hasAttributes()&&!t.hasAttributes()&&this.getDirection()===t.getDirection()}consolidateWith(t){const e=Te.textForStringWithAttributes(\"\\n\"),i=this.getTextWithoutBlockBreak().appendText(e);return this.copyWithText(i.appendText(t.text))}splitAtOffset(t){let e,i;return 0===t?(e=null,i=this):t===this.getLength()?(e=this,i=null):(e=this.copyWithText(this.text.getTextAtRange([0,t])),i=this.copyWithText(this.text.getTextAtRange([t,this.getLength()]))),[e,i]}getBlockBreakPosition(){return this.text.getLength()-1}getTextWithoutBlockBreak(){return Oe(this.text)?this.text.getTextAtRange([0,this.getBlockBreakPosition()]):this.text.copy()}canBeGrouped(t){return this.attributes[t]}canBeGroupedWith(t,e){const i=t.getAttributes(),r=i[e],o=this.attributes[e];return o===r&&!(!1===gt(o).group&&!(()=>{if(!ut){ut=[];for(const t in n){const{listAttribute:e}=n[t];null!=e&&ut.push(e)}}return ut})().includes(i[e+1]))&&(this.getDirection()===t.getDirection()||t.isEmpty())}}const Fe=function(t){return t=Ie(t),t=Ne(t)},Ie=function(t){let e=!1;const i=t.getPieces();let n=i.slice(0,i.length-1);const r=i[i.length-1];return r?(n=n.map((t=>t.isBlockBreak()?(e=!0,Me(t)):t)),e?new Te([...n,r]):t):t},Pe=Te.textForStringWithAttributes(\"\\n\",{blockBreak:!0}),Ne=function(t){return Oe(t)?t:t.appendText(Pe)},Oe=function(t){const e=t.getLength();if(0===e)return!1;return t.getTextAtRange([e-1,e]).isBlockBreak()},Me=t=>t.copyWithoutAttribute(\"blockBreak\"),je=function(t){const{listAttribute:e}=gt(t);return e?[e,t]:[t]},We=t=>t.slice(-1)[0],Ue=function(t,e){const i=t.lastIndexOf(e);return-1===i?t:ot(t,i,1)};class qe extends nt{static fromJSON(t){return new this(Array.from(t).map((t=>Be.fromJSON(t))))}static fromString(t,e){const i=Te.textForStringWithAttributes(t,e);return new this([new Be(i)])}constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];super(...arguments),0===t.length&&(t=[new Be]),this.blockList=ke.box(t)}isEmpty(){const t=this.getBlockAtIndex(0);return 1===this.blockList.length&&t.isEmpty()&&!t.hasAttributes()}copy(){const t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).consolidateBlocks?this.blockList.consolidate().toArray():this.blockList.toArray();return new this.constructor(t)}copyUsingObjectsFromDocument(t){const e=new Yt(t.getObjects());return this.copyUsingObjectMap(e)}copyUsingObjectMap(t){const e=this.getBlocks().map((e=>t.find(e)||e.copyUsingObjectMap(t)));return new this.constructor(e)}copyWithBaseBlockAttributes(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const e=this.getBlocks().map((e=>{const i=t.concat(e.getAttributes());return e.copyWithAttributes(i)}));return new this.constructor(e)}replaceBlock(t,e){const i=this.blockList.indexOf(t);return-1===i?this:new this.constructor(this.blockList.replaceObjectAtIndex(e,i))}insertDocumentAtRange(t,e){const{blockList:i}=t;e=Lt(e);let[n]=e;const{index:r,offset:o}=this.locationFromPosition(n);let s=this;const a=this.getBlockAtPosition(n);return Dt(e)&&a.isEmpty()&&!a.hasAttributes()?s=new this.constructor(s.blockList.removeObjectAtIndex(r)):a.getBlockBreakPosition()===o&&n++,s=s.removeTextAtRange(e),new this.constructor(s.blockList.insertSplittableListAtPosition(i,n))}mergeDocumentAtRange(t,e){let i,n;e=Lt(e);const[r]=e,o=this.locationFromPosition(r),s=this.getBlockAtIndex(o.index).getAttributes(),a=t.getBaseBlockAttributes(),l=s.slice(-a.length);if(rt(a,l)){const e=s.slice(0,-a.length);i=t.copyWithBaseBlockAttributes(e)}else i=t.copy({consolidateBlocks:!0}).copyWithBaseBlockAttributes(s);const c=i.getBlockCount(),h=i.getBlockAtIndex(0);if(rt(s,h.getAttributes())){const t=h.getTextWithoutBlockBreak();if(n=this.insertTextAtRange(t,e),c>1){i=new this.constructor(i.getBlocks().slice(1));const e=r+t.getLength();n=n.insertDocumentAtRange(i,e)}}else n=this.insertDocumentAtRange(i,e);return n}insertTextAtRange(t,e){e=Lt(e);const[i]=e,{index:n,offset:r}=this.locationFromPosition(i),o=this.removeTextAtRange(e);return new this.constructor(o.blockList.editObjectAtIndex(n,(e=>e.copyWithText(e.text.insertTextAtPosition(t,r)))))}removeTextAtRange(t){let e;t=Lt(t);const[i,n]=t;if(Dt(t))return this;const[r,o]=Array.from(this.locationRangeFromRange(t)),s=r.index,a=r.offset,l=this.getBlockAtIndex(s),c=o.index,h=o.offset,u=this.getBlockAtIndex(c);if(n-i==1&&l.getBlockBreakPosition()===a&&u.getBlockBreakPosition()!==h&&\"\\n\"===u.text.getStringAtPosition(h))e=this.blockList.editObjectAtIndex(c,(t=>t.copyWithText(t.text.removeTextAtRange([h,h+1]))));else{let t;const i=l.text.getTextAtRange([0,a]),n=u.text.getTextAtRange([h,u.getLength()]),r=i.appendText(n);t=s!==c&&0===a&&l.getAttributeLevel()>=u.getAttributeLevel()?u.copyWithText(r):l.copyWithText(r);const o=c+1-s;e=this.blockList.splice(s,o,t)}return new this.constructor(e)}moveTextFromRangeToPosition(t,e){let i;t=Lt(t);const[n,r]=t;if(n<=e&&e<=r)return this;let o=this.getDocumentAtRange(t),s=this.removeTextAtRange(t);const a=n<e;a&&(e-=o.getLength());const[l,...c]=o.getBlocks();return 0===c.length?(i=l.getTextWithoutBlockBreak(),a&&(e+=1)):i=l.text,s=s.insertTextAtRange(i,e),0===c.length?s:(o=new this.constructor(c),e+=i.getLength(),s.insertDocumentAtRange(o,e))}addAttributeAtRange(t,e,i){let{blockList:n}=this;return this.eachBlockAtRange(i,((i,r,o)=>n=n.editObjectAtIndex(o,(function(){return gt(t)?i.addAttribute(t,e):r[0]===r[1]?i:i.copyWithText(i.text.addAttributeAtRange(t,e,r))})))),new this.constructor(n)}addAttribute(t,e){let{blockList:i}=this;return this.eachBlock(((n,r)=>i=i.editObjectAtIndex(r,(()=>n.addAttribute(t,e))))),new this.constructor(i)}removeAttributeAtRange(t,e){let{blockList:i}=this;return this.eachBlockAtRange(e,(function(e,n,r){gt(t)?i=i.editObjectAtIndex(r,(()=>e.removeAttribute(t))):n[0]!==n[1]&&(i=i.editObjectAtIndex(r,(()=>e.copyWithText(e.text.removeAttributeAtRange(t,n)))))})),new this.constructor(i)}updateAttributesForAttachment(t,e){const i=this.getRangeOfAttachment(e),[n]=Array.from(i),{index:r}=this.locationFromPosition(n),o=this.getTextAtIndex(r);return new this.constructor(this.blockList.editObjectAtIndex(r,(i=>i.copyWithText(o.updateAttributesForAttachment(t,e)))))}removeAttributeForAttachment(t,e){const i=this.getRangeOfAttachment(e);return this.removeAttributeAtRange(t,i)}insertBlockBreakAtRange(t){let e;t=Lt(t);const[i]=t,{offset:n}=this.locationFromPosition(i),r=this.removeTextAtRange(t);return 0===n&&(e=[new Be]),new this.constructor(r.blockList.insertSplittableListAtPosition(new ke(e),i))}applyBlockAttributeAtRange(t,e,i){const n=this.expandRangeToLineBreaksAndSplitBlocks(i);let r=n.document;i=n.range;const o=gt(t);if(o.listAttribute){r=r.removeLastListAttributeAtRange(i,{exceptAttributeName:t});const e=r.convertLineBreaksToBlockBreaksInRange(i);r=e.document,i=e.range}else r=o.exclusive?r.removeBlockAttributesAtRange(i):o.terminal?r.removeLastTerminalAttributeAtRange(i):r.consolidateBlocksAtRange(i);return r.addAttributeAtRange(t,e,i)}removeLastListAttributeAtRange(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{blockList:i}=this;return this.eachBlockAtRange(t,(function(t,n,r){const o=t.getLastAttribute();o&>(o).listAttribute&&o!==e.exceptAttributeName&&(i=i.editObjectAtIndex(r,(()=>t.removeAttribute(o))))})),new this.constructor(i)}removeLastTerminalAttributeAtRange(t){let{blockList:e}=this;return this.eachBlockAtRange(t,(function(t,i,n){const r=t.getLastAttribute();r&>(r).terminal&&(e=e.editObjectAtIndex(n,(()=>t.removeAttribute(r))))})),new this.constructor(e)}removeBlockAttributesAtRange(t){let{blockList:e}=this;return this.eachBlockAtRange(t,(function(t,i,n){t.hasAttributes()&&(e=e.editObjectAtIndex(n,(()=>t.copyWithoutAttributes())))})),new this.constructor(e)}expandRangeToLineBreaksAndSplitBlocks(t){let e;t=Lt(t);let[i,n]=t;const r=this.locationFromPosition(i),o=this.locationFromPosition(n);let s=this;const a=s.getBlockAtIndex(r.index);if(r.offset=a.findLineBreakInDirectionFromPosition(\"backward\",r.offset),null!=r.offset&&(e=s.positionFromLocation(r),s=s.insertBlockBreakAtRange([e,e+1]),o.index+=1,o.offset-=s.getBlockAtIndex(r.index).getLength(),r.index+=1),r.offset=0,0===o.offset&&o.index>r.index)o.index-=1,o.offset=s.getBlockAtIndex(o.index).getBlockBreakPosition();else{const t=s.getBlockAtIndex(o.index);\"\\n\"===t.text.getStringAtRange([o.offset-1,o.offset])?o.offset-=1:o.offset=t.findLineBreakInDirectionFromPosition(\"forward\",o.offset),o.offset!==t.getBlockBreakPosition()&&(e=s.positionFromLocation(o),s=s.insertBlockBreakAtRange([e,e+1]))}return i=s.positionFromLocation(r),n=s.positionFromLocation(o),{document:s,range:t=Lt([i,n])}}convertLineBreaksToBlockBreaksInRange(t){t=Lt(t);let[e]=t;const i=this.getStringAtRange(t).slice(0,-1);let n=this;return i.replace(/.*?\\n/g,(function(t){e+=t.length,n=n.insertBlockBreakAtRange([e-1,e])})),{document:n,range:t}}consolidateBlocksAtRange(t){t=Lt(t);const[e,i]=t,n=this.locationFromPosition(e).index,r=this.locationFromPosition(i).index;return new this.constructor(this.blockList.consolidateFromIndexToIndex(n,r))}getDocumentAtRange(t){t=Lt(t);const e=this.blockList.getSplittableListInRange(t).toArray();return new this.constructor(e)}getStringAtRange(t){let e;const i=t=Lt(t);return i[i.length-1]!==this.getLength()&&(e=-1),this.getDocumentAtRange(t).toString().slice(0,e)}getBlockAtIndex(t){return this.blockList.getObjectAtIndex(t)}getBlockAtPosition(t){const{index:e}=this.locationFromPosition(t);return this.getBlockAtIndex(e)}getTextAtIndex(t){var e;return null===(e=this.getBlockAtIndex(t))||void 0===e?void 0:e.text}getTextAtPosition(t){const{index:e}=this.locationFromPosition(t);return this.getTextAtIndex(e)}getPieceAtPosition(t){const{index:e,offset:i}=this.locationFromPosition(t);return this.getTextAtIndex(e).getPieceAtPosition(i)}getCharacterAtPosition(t){const{index:e,offset:i}=this.locationFromPosition(t);return this.getTextAtIndex(e).getStringAtRange([i,i+1])}getLength(){return this.blockList.getEndPosition()}getBlocks(){return this.blockList.toArray()}getBlockCount(){return this.blockList.length}getEditCount(){return this.editCount}eachBlock(t){return this.blockList.eachObject(t)}eachBlockAtRange(t,e){let i,n;t=Lt(t);const[r,o]=t,s=this.locationFromPosition(r),a=this.locationFromPosition(o);if(s.index===a.index)return i=this.getBlockAtIndex(s.index),n=[s.offset,a.offset],e(i,n,s.index);for(let t=s.index;t<=a.index;t++)if(i=this.getBlockAtIndex(t),i){switch(t){case s.index:n=[s.offset,i.text.getLength()];break;case a.index:n=[0,a.offset];break;default:n=[0,i.text.getLength()]}e(i,n,t)}}getCommonAttributesAtRange(t){t=Lt(t);const[e]=t;if(Dt(t))return this.getCommonAttributesAtPosition(e);{const e=[],i=[];return this.eachBlockAtRange(t,(function(t,n){if(n[0]!==n[1])return e.push(t.text.getCommonAttributesAtRange(n)),i.push(Ve(t))})),_t.fromCommonAttributesOfObjects(e).merge(_t.fromCommonAttributesOfObjects(i)).toObject()}}getCommonAttributesAtPosition(t){let e,i;const{index:n,offset:r}=this.locationFromPosition(t),o=this.getBlockAtIndex(n);if(!o)return{};const s=Ve(o),a=o.text.getAttributesAtPosition(r),l=o.text.getAttributesAtPosition(r-1),c=Object.keys(W).filter((t=>W[t].inheritable));for(e in l)i=l[e],(i===a[e]||c.includes(e))&&(s[e]=i);return s}getRangeOfCommonAttributeAtPosition(t,e){const{index:i,offset:n}=this.locationFromPosition(e),r=this.getTextAtIndex(i),[o,s]=Array.from(r.getExpandedRangeForAttributeAtOffset(t,n)),a=this.positionFromLocation({index:i,offset:o}),l=this.positionFromLocation({index:i,offset:s});return Lt([a,l])}getBaseBlockAttributes(){let t=this.getBlockAtIndex(0).getAttributes();for(let e=1;e<this.getBlockCount();e++){const i=this.getBlockAtIndex(e).getAttributes(),n=Math.min(t.length,i.length);t=(()=>{const e=[];for(let r=0;r<n&&i[r]===t[r];r++)e.push(i[r]);return e})()}return t}getAttachmentById(t){for(const e of this.getAttachments())if(e.id===t)return e}getAttachmentPieces(){let t=[];return this.blockList.eachObject((e=>{let{text:i}=e;return t=t.concat(i.getAttachmentPieces())})),t}getAttachments(){return this.getAttachmentPieces().map((t=>t.attachment))}getRangeOfAttachment(t){let e=0;const i=this.blockList.toArray();for(let n=0;n<i.length;n++){const{text:r}=i[n],o=r.getRangeOfAttachment(t);if(o)return Lt([e+o[0],e+o[1]]);e+=r.getLength()}}getLocationRangeOfAttachment(t){const e=this.getRangeOfAttachment(t);return this.locationRangeFromRange(e)}getAttachmentPieceForAttachment(t){for(const e of this.getAttachmentPieces())if(e.attachment===t)return e}findRangesForBlockAttribute(t){let e=0;const i=[];return this.getBlocks().forEach((n=>{const r=n.getLength();n.hasAttribute(t)&&i.push([e,e+r]),e+=r})),i}findRangesForTextAttribute(t){let{withValue:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=0,n=[];const r=[];return this.getPieces().forEach((o=>{const s=o.getLength();(function(i){return e?i.getAttribute(t)===e:i.hasAttribute(t)})(o)&&(n[1]===i?n[1]=i+s:r.push(n=[i,i+s])),i+=s})),r}locationFromPosition(t){const e=this.blockList.findIndexAndOffsetAtPosition(Math.max(0,t));if(null!=e.index)return e;{const t=this.getBlocks();return{index:t.length-1,offset:t[t.length-1].getLength()}}}positionFromLocation(t){return this.blockList.findPositionAtIndexAndOffset(t.index,t.offset)}locationRangeFromPosition(t){return Lt(this.locationFromPosition(t))}locationRangeFromRange(t){if(!(t=Lt(t)))return;const[e,i]=Array.from(t),n=this.locationFromPosition(e),r=this.locationFromPosition(i);return Lt([n,r])}rangeFromLocationRange(t){let e;t=Lt(t);const i=this.positionFromLocation(t[0]);return Dt(t)||(e=this.positionFromLocation(t[1])),Lt([i,e])}isEqualTo(t){return this.blockList.isEqualTo(null==t?void 0:t.blockList)}getTexts(){return this.getBlocks().map((t=>t.text))}getPieces(){const t=[];return Array.from(this.getTexts()).forEach((e=>{t.push(...Array.from(e.getPieces()||[]))})),t}getObjects(){return this.getBlocks().concat(this.getTexts()).concat(this.getPieces())}toSerializableDocument(){const t=[];return this.blockList.eachObject((e=>t.push(e.copyWithText(e.text.toSerializableText())))),new this.constructor(t)}toString(){return this.blockList.toString()}toJSON(){return this.blockList.toJSON()}toConsole(){return JSON.stringify(this.blockList.toArray().map((t=>JSON.parse(t.text.toConsole()))))}}const Ve=function(t){const e={},i=t.getLastAttribute();return i&&(e[i]=!0),e},ze=\"style href src width height class\".split(\" \"),_e=\"javascript:\".split(\" \"),He=\"script iframe form\".split(\" \");class Je extends z{static sanitize(t,e){const i=new this(t,e);return i.sanitize(),i}constructor(t){let{allowedAttributes:e,forbiddenProtocols:i,forbiddenElements:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(...arguments),this.allowedAttributes=e||ze,this.forbiddenProtocols=i||_e,this.forbiddenElements=n||He,this.body=Ke(t)}sanitize(){return this.sanitizeElements(),this.normalizeListElementNesting()}getHTML(){return this.body.innerHTML}getBody(){return this.body}sanitizeElements(){const t=S(this.body),e=[];for(;t.nextNode();){const i=t.currentNode;switch(i.nodeType){case Node.ELEMENT_NODE:this.elementIsRemovable(i)?e.push(i):this.sanitizeElement(i);break;case Node.COMMENT_NODE:e.push(i)}}return e.forEach((t=>R(t))),this.body}sanitizeElement(t){return t.hasAttribute(\"href\")&&this.forbiddenProtocols.includes(t.protocol)&&t.removeAttribute(\"href\"),Array.from(t.attributes).forEach((e=>{let{name:i}=e;this.allowedAttributes.includes(i)||0===i.indexOf(\"data-trix\")||t.removeAttribute(i)})),t}normalizeListElementNesting(){return Array.from(this.body.querySelectorAll(\"ul,ol\")).forEach((t=>{const e=t.previousElementSibling;e&&\"li\"===E(e)&&e.appendChild(t)})),this.body}elementIsRemovable(t){if((null==t?void 0:t.nodeType)===Node.ELEMENT_NODE)return this.elementIsForbidden(t)||this.elementIsntSerializable(t)}elementIsForbidden(t){return this.forbiddenElements.includes(E(t))}elementIsntSerializable(t){return\"false\"===t.getAttribute(\"data-trix-serialize\")&&!P(t)}}const Ke=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\";t=t.replace(/<\\/html[^>]*>[^]*$/i,\"</html>\");const e=document.implementation.createHTMLDocument(\"\");return e.documentElement.innerHTML=t,Array.from(e.head.querySelectorAll(\"style\")).forEach((t=>{e.body.appendChild(t)})),e.body},Ge=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{string:t=Wt(t),attributes:e,type:\"string\"}},$e=(t,e)=>{try{return JSON.parse(t.getAttribute(\"data-trix-\".concat(e)))}catch(t){return{}}};class Xe extends z{static parse(t,e){const i=new this(t,e);return i.parse(),i}constructor(t){let{referenceElement:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(...arguments),this.html=t,this.referenceElement=e,this.blocks=[],this.blockElements=[],this.processedElements=[]}getDocument(){return qe.fromJSON(this.blocks)}parse(){try{this.createHiddenContainer();const t=Je.sanitize(this.html).getHTML();this.containerElement.innerHTML=t;const e=S(this.containerElement,{usingFilter:ti});for(;e.nextNode();)this.processNode(e.currentNode);return this.translateBlockElementMarginsToNewlines()}finally{this.removeHiddenContainer()}}createHiddenContainer(){return this.referenceElement?(this.containerElement=this.referenceElement.cloneNode(!1),this.containerElement.removeAttribute(\"id\"),this.containerElement.setAttribute(\"data-trix-internal\",\"\"),this.containerElement.style.display=\"none\",this.referenceElement.parentNode.insertBefore(this.containerElement,this.referenceElement.nextSibling)):(this.containerElement=k({tagName:\"div\",style:{display:\"none\"}}),document.body.appendChild(this.containerElement))}removeHiddenContainer(){return R(this.containerElement)}processNode(t){switch(t.nodeType){case Node.TEXT_NODE:if(!this.isInsignificantTextNode(t))return this.appendBlockForTextNode(t),this.processTextNode(t);break;case Node.ELEMENT_NODE:return this.appendBlockForElement(t),this.processElement(t)}}appendBlockForTextNode(t){const e=t.parentNode;if(e===this.currentBlockElement&&this.isBlockElement(t.previousSibling))return this.appendStringWithAttributes(\"\\n\");if(e===this.containerElement||this.isBlockElement(e)){var i;const t=this.getBlockAttributes(e);rt(t,null===(i=this.currentBlock)||void 0===i?void 0:i.attributes)||(this.currentBlock=this.appendBlockForAttributesWithElement(t,e),this.currentBlockElement=e)}}appendBlockForElement(t){const e=this.isBlockElement(t),i=y(this.currentBlockElement,t);if(e&&!this.isBlockElement(t.firstChild)){if(!this.isInsignificantTextNode(t.firstChild)||!this.isBlockElement(t.firstElementChild)){const e=this.getBlockAttributes(t);if(t.firstChild){if(i&&rt(e,this.currentBlock.attributes))return this.appendStringWithAttributes(\"\\n\");this.currentBlock=this.appendBlockForAttributesWithElement(e,t),this.currentBlockElement=t}}}else if(this.currentBlockElement&&!i&&!e){const e=this.findParentBlockElement(t);if(e)return this.appendBlockForElement(e);this.currentBlock=this.appendEmptyBlock(),this.currentBlockElement=null}}findParentBlockElement(t){let{parentElement:e}=t;for(;e&&e!==this.containerElement;){if(this.isBlockElement(e)&&this.blockElements.includes(e))return e;e=e.parentElement}return null}processTextNode(t){let e=t.data;var i;Ye(t.parentNode)||(e=qt(e),ni(null===(i=t.previousSibling)||void 0===i?void 0:i.textContent)&&(e=ei(e)));return this.appendStringWithAttributes(e,this.getTextAttributes(t.parentNode))}processElement(t){let e;if(P(t)){if(e=$e(t,\"attachment\"),Object.keys(e).length){const i=this.getTextAttributes(t);this.appendAttachmentWithAttributes(e,i),t.innerHTML=\"\"}return this.processedElements.push(t)}switch(E(t)){case\"br\":return this.isExtraBR(t)||this.isBlockElement(t.nextSibling)||this.appendStringWithAttributes(\"\\n\",this.getTextAttributes(t)),this.processedElements.push(t);case\"img\":e={url:t.getAttribute(\"src\"),contentType:\"image\"};const i=(t=>{const e=t.getAttribute(\"width\"),i=t.getAttribute(\"height\"),n={};return e&&(n.width=parseInt(e,10)),i&&(n.height=parseInt(i,10)),n})(t);for(const t in i){const n=i[t];e[t]=n}return this.appendAttachmentWithAttributes(e,this.getTextAttributes(t)),this.processedElements.push(t);case\"tr\":if(this.needsTableSeparator(t))return this.appendStringWithAttributes(j.tableRowSeparator);break;case\"td\":if(this.needsTableSeparator(t))return this.appendStringWithAttributes(j.tableCellSeparator)}}appendBlockForAttributesWithElement(t,e){this.blockElements.push(e);const i=function(){return{text:[],attributes:arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}}}(t);return this.blocks.push(i),i}appendEmptyBlock(){return this.appendBlockForAttributesWithElement([],null)}appendStringWithAttributes(t,e){return this.appendPiece(Ge(t,e))}appendAttachmentWithAttributes(t,e){return this.appendPiece(function(t){return{attachment:t,attributes:arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},type:\"attachment\"}}(t,e))}appendPiece(t){return 0===this.blocks.length&&this.appendEmptyBlock(),this.blocks[this.blocks.length-1].text.push(t)}appendStringToTextAtIndex(t,e){const{text:i}=this.blocks[e],n=i[i.length-1];if(\"string\"!==(null==n?void 0:n.type))return i.push(Ge(t));n.string+=t}prependStringToTextAtIndex(t,e){const{text:i}=this.blocks[e],n=i[0];if(\"string\"!==(null==n?void 0:n.type))return i.unshift(Ge(t));n.string=t+n.string}getTextAttributes(t){let e;const i={};for(const n in W){const r=W[n];if(r.tagName&&A(t,{matchingSelector:r.tagName,untilNode:this.containerElement}))i[n]=!0;else if(r.parser){if(e=r.parser(t),e){let o=!1;for(const i of this.findBlockElementAncestors(t))if(r.parser(i)===e){o=!0;break}o||(i[n]=e)}}else r.styleProperty&&(e=t.style[r.styleProperty],e&&(i[n]=e))}if(P(t)){const n=$e(t,\"attributes\");for(const t in n)e=n[t],i[t]=e}return i}getBlockAttributes(t){const e=[];for(;t&&t!==this.containerElement;){for(const r in n){const o=n[r];var i;if(!1!==o.parse)if(E(t)===o.tagName)(null!==(i=o.test)&&void 0!==i&&i.call(o,t)||!o.test)&&(e.push(r),o.listAttribute&&e.push(o.listAttribute))}t=t.parentNode}return e.reverse()}findBlockElementAncestors(t){const e=[];for(;t&&t!==this.containerElement;){const i=E(t);D().includes(i)&&e.push(t),t=t.parentNode}return e}isBlockElement(t){if((null==t?void 0:t.nodeType)===Node.ELEMENT_NODE&&!P(t)&&!A(t,{matchingSelector:\"td\",untilNode:this.containerElement}))return D().includes(E(t))||\"block\"===window.getComputedStyle(t).display}isInsignificantTextNode(t){if((null==t?void 0:t.nodeType)!==Node.TEXT_NODE)return;if(!ii(t.data))return;const{parentNode:e,previousSibling:i,nextSibling:n}=t;return Qe(e.previousSibling)&&!this.isBlockElement(e.previousSibling)||Ye(e)?void 0:!i||this.isBlockElement(i)||!n||this.isBlockElement(n)}isExtraBR(t){return\"br\"===E(t)&&this.isBlockElement(t.parentNode)&&t.parentNode.lastChild===t}needsTableSeparator(t){if(j.removeBlankTableCells){var e;const i=null===(e=t.previousSibling)||void 0===e?void 0:e.textContent;return i&&/\\S/.test(i)}return t.previousSibling}translateBlockElementMarginsToNewlines(){const t=this.getMarginOfDefaultBlockElement();for(let e=0;e<this.blocks.length;e++){const i=this.getMarginOfBlockElementAtIndex(e);i&&(i.top>2*t.top&&this.prependStringToTextAtIndex(\"\\n\",e),i.bottom>2*t.bottom&&this.appendStringToTextAtIndex(\"\\n\",e))}}getMarginOfBlockElementAtIndex(t){const e=this.blockElements[t];if(e&&e.textContent&&!D().includes(E(e))&&!this.processedElements.includes(e))return Ze(e)}getMarginOfDefaultBlockElement(){const t=k(n.default.tagName);return this.containerElement.appendChild(t),Ze(t)}}const Ye=function(t){const{whiteSpace:e}=window.getComputedStyle(t);return[\"pre\",\"pre-wrap\",\"pre-line\"].includes(e)},Qe=t=>t&&!ni(t.textContent),Ze=function(t){const e=window.getComputedStyle(t);if(\"block\"===e.display)return{top:parseInt(e.marginTop),bottom:parseInt(e.marginBottom)}},ti=function(t){return\"style\"===E(t)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},ei=t=>t.replace(new RegExp(\"^\".concat(Ut.source,\"+\")),\"\"),ii=t=>new RegExp(\"^\".concat(Ut.source,\"*$\")).test(t),ni=t=>/\\s$/.test(t),ri=[\"contenteditable\",\"data-trix-id\",\"data-trix-store-key\",\"data-trix-mutable\",\"data-trix-placeholder\",\"tabindex\"],oi=\"data-trix-serialized-attributes\",si=\"[\".concat(oi,\"]\"),ai=new RegExp(\"\\x3c!--block--\\x3e\",\"g\"),li={\"application/json\":function(t){let e;if(t instanceof qe)e=t;else{if(!(t instanceof HTMLElement))throw new Error(\"unserializable object\");e=Xe.parse(t.innerHTML).getDocument()}return e.toSerializableDocument().toJSONString()},\"text/html\":function(t){let e;if(t instanceof qe)e=ge.render(t);else{if(!(t instanceof HTMLElement))throw new Error(\"unserializable object\");e=t.cloneNode(!0)}return Array.from(e.querySelectorAll(\"[data-trix-serialize=false]\")).forEach((t=>{R(t)})),ri.forEach((t=>{Array.from(e.querySelectorAll(\"[\".concat(t,\"]\"))).forEach((e=>{e.removeAttribute(t)}))})),Array.from(e.querySelectorAll(si)).forEach((t=>{try{const e=JSON.parse(t.getAttribute(oi));t.removeAttribute(oi);for(const i in e){const n=e[i];t.setAttribute(i,n)}}catch(t){}})),e.innerHTML.replace(ai,\"\")}};var ci=Object.freeze({__proto__:null});class hi extends z{constructor(t,e){super(...arguments),this.attachmentManager=t,this.attachment=e,this.id=this.attachment.id,this.file=this.attachment.file}remove(){return this.attachmentManager.requestRemovalOfAttachment(this.attachment)}}hi.proxyMethod(\"attachment.getAttribute\"),hi.proxyMethod(\"attachment.hasAttribute\"),hi.proxyMethod(\"attachment.setAttribute\"),hi.proxyMethod(\"attachment.getAttributes\"),hi.proxyMethod(\"attachment.setAttributes\"),hi.proxyMethod(\"attachment.isPending\"),hi.proxyMethod(\"attachment.isPreviewable\"),hi.proxyMethod(\"attachment.getURL\"),hi.proxyMethod(\"attachment.getHref\"),hi.proxyMethod(\"attachment.getFilename\"),hi.proxyMethod(\"attachment.getFilesize\"),hi.proxyMethod(\"attachment.getFormattedFilesize\"),hi.proxyMethod(\"attachment.getExtension\"),hi.proxyMethod(\"attachment.getContentType\"),hi.proxyMethod(\"attachment.getFile\"),hi.proxyMethod(\"attachment.setFile\"),hi.proxyMethod(\"attachment.releaseFile\"),hi.proxyMethod(\"attachment.getUploadProgress\"),hi.proxyMethod(\"attachment.setUploadProgress\");class ui extends z{constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];super(...arguments),this.managedAttachments={},Array.from(t).forEach((t=>{this.manageAttachment(t)}))}getAttachments(){const t=[];for(const e in this.managedAttachments){const i=this.managedAttachments[e];t.push(i)}return t}manageAttachment(t){return this.managedAttachments[t.id]||(this.managedAttachments[t.id]=new hi(this,t)),this.managedAttachments[t.id]}attachmentIsManaged(t){return t.id in this.managedAttachments}requestRemovalOfAttachment(t){var e,i;if(this.attachmentIsManaged(t))return null===(e=this.delegate)||void 0===e||null===(i=e.attachmentManagerDidRequestRemovalOfAttachment)||void 0===i?void 0:i.call(e,t)}unmanageAttachment(t){const e=this.managedAttachments[t.id];return delete this.managedAttachments[t.id],e}}class di{constructor(t){this.composition=t,this.document=this.composition.document;const e=this.composition.getSelectedRange();this.startPosition=e[0],this.endPosition=e[1],this.startLocation=this.document.locationFromPosition(this.startPosition),this.endLocation=this.document.locationFromPosition(this.endPosition),this.block=this.document.getBlockAtIndex(this.endLocation.index),this.breaksOnReturn=this.block.breaksOnReturn(),this.previousCharacter=this.block.text.getStringAtPosition(this.endLocation.offset-1),this.nextCharacter=this.block.text.getStringAtPosition(this.endLocation.offset)}shouldInsertBlockBreak(){return this.block.hasAttributes()&&this.block.isListItem()&&!this.block.isEmpty()?0!==this.startLocation.offset:this.breaksOnReturn&&\"\\n\"!==this.nextCharacter}shouldBreakFormattedBlock(){return this.block.hasAttributes()&&!this.block.isListItem()&&(this.breaksOnReturn&&\"\\n\"===this.nextCharacter||\"\\n\"===this.previousCharacter)}shouldDecreaseListLevel(){return this.block.hasAttributes()&&this.block.isListItem()&&this.block.isEmpty()}shouldPrependListItem(){return this.block.isListItem()&&0===this.startLocation.offset&&!this.block.isEmpty()}shouldRemoveLastBlockAttribute(){return this.block.hasAttributes()&&!this.block.isListItem()&&this.block.isEmpty()}}class gi extends z{constructor(){super(...arguments),this.document=new qe,this.attachments=[],this.currentAttributes={},this.revision=0}setDocument(t){var e,i;if(!t.isEqualTo(this.document))return this.document=t,this.refreshAttachments(),this.revision++,null===(e=this.delegate)||void 0===e||null===(i=e.compositionDidChangeDocument)||void 0===i?void 0:i.call(e,t)}getSnapshot(){return{document:this.document,selectedRange:this.getSelectedRange()}}loadSnapshot(t){var e,i,n,r;let{document:o,selectedRange:s}=t;return null===(e=this.delegate)||void 0===e||null===(i=e.compositionWillLoadSnapshot)||void 0===i||i.call(e),this.setDocument(null!=o?o:new qe),this.setSelection(null!=s?s:[0,0]),null===(n=this.delegate)||void 0===n||null===(r=n.compositionDidLoadSnapshot)||void 0===r?void 0:r.call(n)}insertText(t){let{updatePosition:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{updatePosition:!0};const i=this.getSelectedRange();this.setDocument(this.document.insertTextAtRange(t,i));const n=i[0],r=n+t.getLength();return e&&this.setSelection(r),this.notifyDelegateOfInsertionAtRange([n,r])}insertBlock(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Be;const e=new qe([t]);return this.insertDocument(e)}insertDocument(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new qe;const e=this.getSelectedRange();this.setDocument(this.document.insertDocumentAtRange(t,e));const i=e[0],n=i+t.getLength();return this.setSelection(n),this.notifyDelegateOfInsertionAtRange([i,n])}insertString(t,e){const i=this.getCurrentTextAttributes(),n=Te.textForStringWithAttributes(t,i);return this.insertText(n,e)}insertBlockBreak(){const t=this.getSelectedRange();this.setDocument(this.document.insertBlockBreakAtRange(t));const e=t[0],i=e+1;return this.setSelection(i),this.notifyDelegateOfInsertionAtRange([e,i])}insertLineBreak(){const t=new di(this);if(t.shouldDecreaseListLevel())return this.decreaseListLevel(),this.setSelection(t.startPosition);if(t.shouldPrependListItem()){const e=new qe([t.block.copyWithoutText()]);return this.insertDocument(e)}return t.shouldInsertBlockBreak()?this.insertBlockBreak():t.shouldRemoveLastBlockAttribute()?this.removeLastBlockAttribute():t.shouldBreakFormattedBlock()?this.breakFormattedBlock(t):this.insertString(\"\\n\")}insertHTML(t){const e=Xe.parse(t).getDocument(),i=this.getSelectedRange();this.setDocument(this.document.mergeDocumentAtRange(e,i));const n=i[0],r=n+e.getLength()-1;return this.setSelection(r),this.notifyDelegateOfInsertionAtRange([n,r])}replaceHTML(t){const e=Xe.parse(t).getDocument().copyUsingObjectsFromDocument(this.document),i=this.getLocationRange({strict:!1}),n=this.document.rangeFromLocationRange(i);return this.setDocument(e),this.setSelection(n)}insertFile(t){return this.insertFiles([t])}insertFiles(t){const e=[];return Array.from(t).forEach((t=>{var i;if(null!==(i=this.delegate)&&void 0!==i&&i.compositionShouldAcceptFile(t)){const i=Re.attachmentForFile(t);e.push(i)}})),this.insertAttachments(e)}insertAttachment(t){return this.insertAttachments([t])}insertAttachments(t){let e=new Te;return Array.from(t).forEach((t=>{var n;const r=t.getType(),o=null===(n=i[r])||void 0===n?void 0:n.presentation,s=this.getCurrentTextAttributes();o&&(s.presentation=o);const a=Te.textForAttachmentWithAttributes(t,s);e=e.appendText(a)})),this.insertText(e)}shouldManageDeletingInDirection(t){const e=this.getLocationRange();if(Dt(e)){if(\"backward\"===t&&0===e[0].offset)return!0;if(this.shouldManageMovingCursorInDirection(t))return!0}else if(e[0].index!==e[1].index)return!0;return!1}deleteInDirection(t){let e,i,n,{length:r}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=this.getLocationRange();let s=this.getSelectedRange();const a=Dt(s);if(a?i=\"backward\"===t&&0===o[0].offset:n=o[0].index!==o[1].index,i&&this.canDecreaseBlockAttributeLevel()){const t=this.getBlock();if(t.isListItem()?this.decreaseListLevel():this.decreaseBlockAttributeLevel(),this.setSelection(s[0]),t.isEmpty())return!1}return a&&(s=this.getExpandedRangeInDirection(t,{length:r}),\"backward\"===t&&(e=this.getAttachmentAtRange(s))),e?(this.editAttachment(e),!1):(this.setDocument(this.document.removeTextAtRange(s)),this.setSelection(s[0]),!i&&!n&&void 0)}moveTextFromRange(t){const[e]=Array.from(this.getSelectedRange());return this.setDocument(this.document.moveTextFromRangeToPosition(t,e)),this.setSelection(e)}removeAttachment(t){const e=this.document.getRangeOfAttachment(t);if(e)return this.stopEditingAttachment(),this.setDocument(this.document.removeTextAtRange(e)),this.setSelection(e[0])}removeLastBlockAttribute(){const[t,e]=Array.from(this.getSelectedRange()),i=this.document.getBlockAtPosition(e);return this.removeCurrentAttribute(i.getLastAttribute()),this.setSelection(t)}insertPlaceholder(){return this.placeholderPosition=this.getPosition(),this.insertString(\" \")}selectPlaceholder(){if(null!=this.placeholderPosition)return this.setSelectedRange([this.placeholderPosition,this.placeholderPosition+1]),this.getSelectedRange()}forgetPlaceholder(){this.placeholderPosition=null}hasCurrentAttribute(t){const e=this.currentAttributes[t];return null!=e&&!1!==e}toggleCurrentAttribute(t){const e=!this.currentAttributes[t];return e?this.setCurrentAttribute(t,e):this.removeCurrentAttribute(t)}canSetCurrentAttribute(t){return gt(t)?this.canSetCurrentBlockAttribute(t):this.canSetCurrentTextAttribute(t)}canSetCurrentTextAttribute(t){const e=this.getSelectedDocument();if(e){for(const t of Array.from(e.getAttachments()))if(!t.hasContent())return!1;return!0}}canSetCurrentBlockAttribute(t){const e=this.getBlock();if(e)return!e.isTerminalBlock()}setCurrentAttribute(t,e){return gt(t)?this.setBlockAttribute(t,e):(this.setTextAttribute(t,e),this.currentAttributes[t]=e,this.notifyDelegateOfCurrentAttributesChange())}setTextAttribute(t,e){const i=this.getSelectedRange();if(!i)return;const[n,r]=Array.from(i);if(n!==r)return this.setDocument(this.document.addAttributeAtRange(t,e,i));if(\"href\"===t){const t=Te.textForStringWithAttributes(e,{href:e});return this.insertText(t)}}setBlockAttribute(t,e){const i=this.getSelectedRange();if(this.canSetCurrentAttribute(t))return this.setDocument(this.document.applyBlockAttributeAtRange(t,e,i)),this.setSelection(i)}removeCurrentAttribute(t){return gt(t)?(this.removeBlockAttribute(t),this.updateCurrentAttributes()):(this.removeTextAttribute(t),delete this.currentAttributes[t],this.notifyDelegateOfCurrentAttributesChange())}removeTextAttribute(t){const e=this.getSelectedRange();if(e)return this.setDocument(this.document.removeAttributeAtRange(t,e))}removeBlockAttribute(t){const e=this.getSelectedRange();if(e)return this.setDocument(this.document.removeAttributeAtRange(t,e))}canDecreaseNestingLevel(){var t;return(null===(t=this.getBlock())||void 0===t?void 0:t.getNestingLevel())>0}canIncreaseNestingLevel(){var t;const e=this.getBlock();if(e){if(null===(t=gt(e.getLastNestableAttribute()))||void 0===t||!t.listAttribute)return e.getNestingLevel()>0;{const t=this.getPreviousBlock();if(t)return function(){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return rt((arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).slice(0,t.length),t)}(t.getListItemAttributes(),e.getListItemAttributes())}}}decreaseNestingLevel(){const t=this.getBlock();if(t)return this.setDocument(this.document.replaceBlock(t,t.decreaseNestingLevel()))}increaseNestingLevel(){const t=this.getBlock();if(t)return this.setDocument(this.document.replaceBlock(t,t.increaseNestingLevel()))}canDecreaseBlockAttributeLevel(){var t;return(null===(t=this.getBlock())||void 0===t?void 0:t.getAttributeLevel())>0}decreaseBlockAttributeLevel(){var t;const e=null===(t=this.getBlock())||void 0===t?void 0:t.getLastAttribute();if(e)return this.removeCurrentAttribute(e)}decreaseListLevel(){let[t]=Array.from(this.getSelectedRange());const{index:e}=this.document.locationFromPosition(t);let i=e;const n=this.getBlock().getAttributeLevel();let r=this.document.getBlockAtIndex(i+1);for(;r&&r.isListItem()&&!(r.getAttributeLevel()<=n);)i++,r=this.document.getBlockAtIndex(i+1);t=this.document.positionFromLocation({index:e,offset:0});const o=this.document.positionFromLocation({index:i,offset:0});return this.setDocument(this.document.removeLastListAttributeAtRange([t,o]))}updateCurrentAttributes(){const t=this.getSelectedRange({ignoreLock:!0});if(t){const e=this.document.getCommonAttributesAtRange(t);if(Array.from(dt()).forEach((t=>{e[t]||this.canSetCurrentAttribute(t)||(e[t]=!1)})),!kt(e,this.currentAttributes))return this.currentAttributes=e,this.notifyDelegateOfCurrentAttributesChange()}}getCurrentAttributes(){return g.call({},this.currentAttributes)}getCurrentTextAttributes(){const t={};for(const e in this.currentAttributes){const i=this.currentAttributes[e];!1!==i&&pt(e)&&(t[e]=i)}return t}freezeSelection(){return this.setCurrentAttribute(\"frozen\",!0)}thawSelection(){return this.removeCurrentAttribute(\"frozen\")}hasFrozenSelection(){return this.hasCurrentAttribute(\"frozen\")}setSelection(t){var e;const i=this.document.locationRangeFromRange(t);return null===(e=this.delegate)||void 0===e?void 0:e.compositionDidRequestChangingSelectionToLocationRange(i)}getSelectedRange(){const t=this.getLocationRange();if(t)return this.document.rangeFromLocationRange(t)}setSelectedRange(t){const e=this.document.locationRangeFromRange(t);return this.getSelectionManager().setLocationRange(e)}getPosition(){const t=this.getLocationRange();if(t)return this.document.positionFromLocation(t[0])}getLocationRange(t){return this.targetLocationRange?this.targetLocationRange:this.getSelectionManager().getLocationRange(t)||Lt({index:0,offset:0})}withTargetLocationRange(t,e){let i;this.targetLocationRange=t;try{i=e()}finally{this.targetLocationRange=null}return i}withTargetRange(t,e){const i=this.document.locationRangeFromRange(t);return this.withTargetLocationRange(i,e)}withTargetDOMRange(t,e){const i=this.createLocationRangeFromDOMRange(t,{strict:!1});return this.withTargetLocationRange(i,e)}getExpandedRangeInDirection(t){let{length:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},[i,n]=Array.from(this.getSelectedRange());return\"backward\"===t?e?i-=e:i=this.translateUTF16PositionFromOffset(i,-1):e?n+=e:n=this.translateUTF16PositionFromOffset(n,1),Lt([i,n])}shouldManageMovingCursorInDirection(t){if(this.editingAttachment)return!0;const e=this.getExpandedRangeInDirection(t);return null!=this.getAttachmentAtRange(e)}moveCursorInDirection(t){let e,i;if(this.editingAttachment)i=this.document.getRangeOfAttachment(this.editingAttachment);else{const n=this.getSelectedRange();i=this.getExpandedRangeInDirection(t),e=!wt(n,i)}if(\"backward\"===t?this.setSelectedRange(i[0]):this.setSelectedRange(i[1]),e){const t=this.getAttachmentAtRange(i);if(t)return this.editAttachment(t)}}expandSelectionInDirection(t){let{length:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i=this.getExpandedRangeInDirection(t,{length:e});return this.setSelectedRange(i)}expandSelectionForEditing(){if(this.hasCurrentAttribute(\"href\"))return this.expandSelectionAroundCommonAttribute(\"href\")}expandSelectionAroundCommonAttribute(t){const e=this.getPosition(),i=this.document.getRangeOfCommonAttributeAtPosition(t,e);return this.setSelectedRange(i)}selectionContainsAttachments(){var t;return(null===(t=this.getSelectedAttachments())||void 0===t?void 0:t.length)>0}selectionIsInCursorTarget(){return this.editingAttachment||this.positionIsCursorTarget(this.getPosition())}positionIsCursorTarget(t){const e=this.document.locationFromPosition(t);if(e)return this.locationIsCursorTarget(e)}positionIsBlockBreak(t){var e;return null===(e=this.document.getPieceAtPosition(t))||void 0===e?void 0:e.isBlockBreak()}getSelectedDocument(){const t=this.getSelectedRange();if(t)return this.document.getDocumentAtRange(t)}getSelectedAttachments(){var t;return null===(t=this.getSelectedDocument())||void 0===t?void 0:t.getAttachments()}getAttachments(){return this.attachments.slice(0)}refreshAttachments(){const t=this.document.getAttachments(),{added:e,removed:i}=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];const i=[],n=[],r=new Set;t.forEach((t=>{r.add(t)}));const o=new Set;return e.forEach((t=>{o.add(t),r.has(t)||i.push(t)})),t.forEach((t=>{o.has(t)||n.push(t)})),{added:i,removed:n}}(this.attachments,t);return this.attachments=t,Array.from(i).forEach((t=>{var e,i;t.delegate=null,null===(e=this.delegate)||void 0===e||null===(i=e.compositionDidRemoveAttachment)||void 0===i||i.call(e,t)})),(()=>{const t=[];return Array.from(e).forEach((e=>{var i,n;e.delegate=this,t.push(null===(i=this.delegate)||void 0===i||null===(n=i.compositionDidAddAttachment)||void 0===n?void 0:n.call(i,e))})),t})()}attachmentDidChangeAttributes(t){var e,i;return this.revision++,null===(e=this.delegate)||void 0===e||null===(i=e.compositionDidEditAttachment)||void 0===i?void 0:i.call(e,t)}attachmentDidChangePreviewURL(t){var e,i;return this.revision++,null===(e=this.delegate)||void 0===e||null===(i=e.compositionDidChangeAttachmentPreviewURL)||void 0===i?void 0:i.call(e,t)}editAttachment(t,e){var i,n;if(t!==this.editingAttachment)return this.stopEditingAttachment(),this.editingAttachment=t,null===(i=this.delegate)||void 0===i||null===(n=i.compositionDidStartEditingAttachment)||void 0===n?void 0:n.call(i,this.editingAttachment,e)}stopEditingAttachment(){var t,e;this.editingAttachment&&(null===(t=this.delegate)||void 0===t||null===(e=t.compositionDidStopEditingAttachment)||void 0===e||e.call(t,this.editingAttachment),this.editingAttachment=null)}updateAttributesForAttachment(t,e){return this.setDocument(this.document.updateAttributesForAttachment(t,e))}removeAttributeForAttachment(t,e){return this.setDocument(this.document.removeAttributeForAttachment(t,e))}breakFormattedBlock(t){let{document:e}=t;const{block:i}=t;let n=t.startPosition,r=[n-1,n];i.getBlockBreakPosition()===t.startLocation.offset?(i.breaksOnReturn()&&\"\\n\"===t.nextCharacter?n+=1:e=e.removeTextAtRange(r),r=[n,n]):\"\\n\"===t.nextCharacter?\"\\n\"===t.previousCharacter?r=[n-1,n+1]:(r=[n,n+1],n+=1):t.startLocation.offset-1!=0&&(n+=1);const o=new qe([i.removeLastAttribute().copyWithoutText()]);return this.setDocument(e.insertDocumentAtRange(o,r)),this.setSelection(n)}getPreviousBlock(){const t=this.getLocationRange();if(t){const{index:e}=t[0];if(e>0)return this.document.getBlockAtIndex(e-1)}}getBlock(){const t=this.getLocationRange();if(t)return this.document.getBlockAtIndex(t[0].index)}getAttachmentAtRange(t){const e=this.document.getDocumentAtRange(t);if(e.toString()===\"\".concat(\"\uFFFC\",\"\\n\"))return e.getAttachments()[0]}notifyDelegateOfCurrentAttributesChange(){var t,e;return null===(t=this.delegate)||void 0===t||null===(e=t.compositionDidChangeCurrentAttributes)||void 0===e?void 0:e.call(t,this.currentAttributes)}notifyDelegateOfInsertionAtRange(t){var e,i;return null===(e=this.delegate)||void 0===e||null===(i=e.compositionDidPerformInsertionAtRange)||void 0===i?void 0:i.call(e,t)}translateUTF16PositionFromOffset(t,e){const i=this.document.toUTF16String(),n=i.offsetFromUCS2Offset(t);return i.offsetToUCS2Offset(n+e)}}gi.proxyMethod(\"getSelectionManager().getPointRange\"),gi.proxyMethod(\"getSelectionManager().setLocationRangeFromPointRange\"),gi.proxyMethod(\"getSelectionManager().createLocationRangeFromDOMRange\"),gi.proxyMethod(\"getSelectionManager().locationIsCursorTarget\"),gi.proxyMethod(\"getSelectionManager().selectionIsExpanded\"),gi.proxyMethod(\"delegate?.getSelectionManager\");class mi extends z{constructor(t){super(...arguments),this.composition=t,this.undoEntries=[],this.redoEntries=[]}recordUndoEntry(t){let{context:e,consolidatable:i}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=this.undoEntries.slice(-1)[0];if(!i||!pi(n,t,e)){const i=this.createEntry({description:t,context:e});this.undoEntries.push(i),this.redoEntries=[]}}undo(){const t=this.undoEntries.pop();if(t){const e=this.createEntry(t);return this.redoEntries.push(e),this.composition.loadSnapshot(t.snapshot)}}redo(){const t=this.redoEntries.pop();if(t){const e=this.createEntry(t);return this.undoEntries.push(e),this.composition.loadSnapshot(t.snapshot)}}canUndo(){return this.undoEntries.length>0}canRedo(){return this.redoEntries.length>0}createEntry(){let{description:t,context:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{description:null==t?void 0:t.toString(),context:JSON.stringify(e),snapshot:this.composition.getSnapshot()}}}const pi=(t,e,i)=>(null==t?void 0:t.description)===(null==e?void 0:e.toString())&&(null==t?void 0:t.context)===JSON.stringify(i),fi=\"attachmentGallery\";class bi{constructor(t){this.document=t.document,this.selectedRange=t.selectedRange}perform(){return this.removeBlockAttribute(),this.applyBlockAttribute()}getSnapshot(){return{document:this.document,selectedRange:this.selectedRange}}removeBlockAttribute(){return this.findRangesOfBlocks().map((t=>this.document=this.document.removeAttributeAtRange(fi,t)))}applyBlockAttribute(){let t=0;this.findRangesOfPieces().forEach((e=>{e[1]-e[0]>1&&(e[0]+=t,e[1]+=t,\"\\n\"!==this.document.getCharacterAtPosition(e[1])&&(this.document=this.document.insertBlockBreakAtRange(e[1]),e[1]<this.selectedRange[1]&&this.moveSelectedRangeForward(),e[1]++,t++),0!==e[0]&&\"\\n\"!==this.document.getCharacterAtPosition(e[0]-1)&&(this.document=this.document.insertBlockBreakAtRange(e[0]),e[0]<this.selectedRange[0]&&this.moveSelectedRangeForward(),e[0]++,t++),this.document=this.document.applyBlockAttributeAtRange(fi,!0,e))}))}findRangesOfBlocks(){return this.document.findRangesForBlockAttribute(fi)}findRangesOfPieces(){return this.document.findRangesForTextAttribute(\"presentation\",{withValue:\"gallery\"})}moveSelectedRangeForward(){this.selectedRange[0]+=1,this.selectedRange[1]+=1}}const vi=function(t){const e=new bi(t);return e.perform(),e.getSnapshot()},Ai=[vi];class xi{constructor(t,e,i){this.insertFiles=this.insertFiles.bind(this),this.composition=t,this.selectionManager=e,this.element=i,this.undoManager=new mi(this.composition),this.filters=Ai.slice(0)}loadDocument(t){return this.loadSnapshot({document:t,selectedRange:[0,0]})}loadHTML(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\";const e=Xe.parse(t,{referenceElement:this.element}).getDocument();return this.loadDocument(e)}loadJSON(t){let{document:e,selectedRange:i}=t;return e=qe.fromJSON(e),this.loadSnapshot({document:e,selectedRange:i})}loadSnapshot(t){return this.undoManager=new mi(this.composition),this.composition.loadSnapshot(t)}getDocument(){return this.composition.document}getSelectedDocument(){return this.composition.getSelectedDocument()}getSnapshot(){return this.composition.getSnapshot()}toJSON(){return this.getSnapshot()}deleteInDirection(t){return this.composition.deleteInDirection(t)}insertAttachment(t){return this.composition.insertAttachment(t)}insertAttachments(t){return this.composition.insertAttachments(t)}insertDocument(t){return this.composition.insertDocument(t)}insertFile(t){return this.composition.insertFile(t)}insertFiles(t){return this.composition.insertFiles(t)}insertHTML(t){return this.composition.insertHTML(t)}insertString(t){return this.composition.insertString(t)}insertText(t){return this.composition.insertText(t)}insertLineBreak(){return this.composition.insertLineBreak()}getSelectedRange(){return this.composition.getSelectedRange()}getPosition(){return this.composition.getPosition()}getClientRectAtPosition(t){const e=this.getDocument().locationRangeFromRange([t,t+1]);return this.selectionManager.getClientRectAtLocationRange(e)}expandSelectionInDirection(t){return this.composition.expandSelectionInDirection(t)}moveCursorInDirection(t){return this.composition.moveCursorInDirection(t)}setSelectedRange(t){return this.composition.setSelectedRange(t)}activateAttribute(t){let e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return this.composition.setCurrentAttribute(t,e)}attributeIsActive(t){return this.composition.hasCurrentAttribute(t)}canActivateAttribute(t){return this.composition.canSetCurrentAttribute(t)}deactivateAttribute(t){return this.composition.removeCurrentAttribute(t)}canDecreaseNestingLevel(){return this.composition.canDecreaseNestingLevel()}canIncreaseNestingLevel(){return this.composition.canIncreaseNestingLevel()}decreaseNestingLevel(){if(this.canDecreaseNestingLevel())return this.composition.decreaseNestingLevel()}increaseNestingLevel(){if(this.canIncreaseNestingLevel())return this.composition.increaseNestingLevel()}canRedo(){return this.undoManager.canRedo()}canUndo(){return this.undoManager.canUndo()}recordUndoEntry(t){let{context:e,consolidatable:i}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.undoManager.recordUndoEntry(t,{context:e,consolidatable:i})}redo(){if(this.canRedo())return this.undoManager.redo()}undo(){if(this.canUndo())return this.undoManager.undo()}}class yi{constructor(t){this.element=t}findLocationFromContainerAndOffset(t,e){let{strict:i}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{strict:!0},n=0,r=!1;const o={index:0,offset:0},s=this.findAttachmentElementParentForNode(t);s&&(t=s.parentNode,e=C(s));const a=S(this.element,{usingFilter:Ei});for(;a.nextNode();){const s=a.currentNode;if(s===t&&O(t)){I(s)||(o.offset+=e);break}if(s.parentNode===t){if(n++===e)break}else if(!y(t,s)&&n>0)break;T(s,{strict:i})?(r&&o.index++,o.offset=0,r=!0):o.offset+=Ci(s)}return o}findContainerAndOffsetFromLocation(t){let e,i;if(0===t.index&&0===t.offset){for(e=this.element,i=0;e.firstChild;)if(e=e.firstChild,w(e)){i=1;break}return[e,i]}let[n,r]=this.findNodeAndOffsetFromLocation(t);if(n){if(O(n))0===Ci(n)?(e=n.parentNode.parentNode,i=C(n.parentNode),I(n,{name:\"right\"})&&i++):(e=n,i=t.offset-r);else{if(e=n.parentNode,!T(n.previousSibling)&&!w(e))for(;n===e.lastChild&&(n=e,e=e.parentNode,!w(e)););i=C(n),0!==t.offset&&i++}return[e,i]}}findNodeAndOffsetFromLocation(t){let e,i,n=0;for(const r of this.getSignificantNodesForIndex(t.index)){const o=Ci(r);if(t.offset<=n+o)if(O(r)){if(e=r,i=n,t.offset===i&&I(e))break}else e||(e=r,i=n);if(n+=o,n>t.offset)break}return[e,i]}findAttachmentElementParentForNode(t){for(;t&&t!==this.element;){if(P(t))return t;t=t.parentNode}}getSignificantNodesForIndex(t){const e=[],i=S(this.element,{usingFilter:Ri});let n=!1;for(;i.nextNode();){const o=i.currentNode;var r;if(B(o)){if(null!=r?r++:r=0,r===t)n=!0;else if(n)break}else n&&e.push(o)}return e}}const Ci=function(t){if(t.nodeType===Node.TEXT_NODE){if(I(t))return 0;return t.textContent.length}return\"br\"===E(t)||P(t)?1:0},Ri=function(t){return Si(t)===NodeFilter.FILTER_ACCEPT?Ei(t):NodeFilter.FILTER_REJECT},Si=function(t){return N(t)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},Ei=function(t){return P(t.parentNode)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT};class ki{createDOMRangeFromPoint(t){let e,{x:i,y:n}=t;if(document.caretPositionFromPoint){const{offsetNode:t,offset:r}=document.caretPositionFromPoint(i,n);return e=document.createRange(),e.setStart(t,r),e}if(document.caretRangeFromPoint)return document.caretRangeFromPoint(i,n);if(document.body.createTextRange){const t=Nt();try{const t=document.body.createTextRange();t.moveToPoint(i,n),t.select()}catch(t){}return e=Nt(),Ot(t),e}}getClientRectsForDOMRange(t){const e=Array.from(t.getClientRects());return[e[0],e[e.length-1]]}}class Li extends z{constructor(t){super(...arguments),this.didMouseDown=this.didMouseDown.bind(this),this.selectionDidChange=this.selectionDidChange.bind(this),this.element=t,this.locationMapper=new yi(this.element),this.pointMapper=new ki,this.lockCount=0,f(\"mousedown\",{onElement:this.element,withCallback:this.didMouseDown})}getLocationRange(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return!1===t.strict?this.createLocationRangeFromDOMRange(Nt()):t.ignoreLock?this.currentLocationRange:this.lockedLocationRange?this.lockedLocationRange:this.currentLocationRange}setLocationRange(t){if(this.lockedLocationRange)return;t=Lt(t);const e=this.createDOMRangeFromLocationRange(t);e&&(Ot(e),this.updateCurrentLocationRange(t))}setLocationRangeFromPointRange(t){t=Lt(t);const e=this.getLocationAtPoint(t[0]),i=this.getLocationAtPoint(t[1]);this.setLocationRange([e,i])}getClientRectAtLocationRange(t){const e=this.createDOMRangeFromLocationRange(t);if(e)return this.getClientRectsForDOMRange(e)[1]}locationIsCursorTarget(t){const e=Array.from(this.findNodeAndOffsetFromLocation(t))[0];return I(e)}lock(){0==this.lockCount++&&(this.updateCurrentLocationRange(),this.lockedLocationRange=this.getLocationRange())}unlock(){if(0==--this.lockCount){const{lockedLocationRange:t}=this;if(this.lockedLocationRange=null,null!=t)return this.setLocationRange(t)}}clearSelection(){var t;return null===(t=Pt())||void 0===t?void 0:t.removeAllRanges()}selectionIsCollapsed(){var t;return!0===(null===(t=Nt())||void 0===t?void 0:t.collapsed)}selectionIsExpanded(){return!this.selectionIsCollapsed()}createLocationRangeFromDOMRange(t,e){if(null==t||!this.domRangeWithinElement(t))return;const i=this.findLocationFromContainerAndOffset(t.startContainer,t.startOffset,e);if(!i)return;const n=t.collapsed?void 0:this.findLocationFromContainerAndOffset(t.endContainer,t.endOffset,e);return Lt([i,n])}didMouseDown(){return this.pauseTemporarily()}pauseTemporarily(){let t;this.paused=!0;const e=()=>{if(this.paused=!1,clearTimeout(i),Array.from(t).forEach((t=>{t.destroy()})),y(document,this.element))return this.selectionDidChange()},i=setTimeout(e,200);t=[\"mousemove\",\"keydown\"].map((t=>f(t,{onElement:document,withCallback:e})))}selectionDidChange(){if(!this.paused&&!x(this.element))return this.updateCurrentLocationRange()}updateCurrentLocationRange(t){var e,i;if((null!=t?t:t=this.createLocationRangeFromDOMRange(Nt()))&&!wt(t,this.currentLocationRange))return this.currentLocationRange=t,null===(e=this.delegate)||void 0===e||null===(i=e.locationRangeDidChange)||void 0===i?void 0:i.call(e,this.currentLocationRange.slice(0))}createDOMRangeFromLocationRange(t){const e=this.findContainerAndOffsetFromLocation(t[0]),i=Dt(t)?e:this.findContainerAndOffsetFromLocation(t[1])||e;if(null!=e&&null!=i){const t=document.createRange();return t.setStart(...Array.from(e||[])),t.setEnd(...Array.from(i||[])),t}}getLocationAtPoint(t){const e=this.createDOMRangeFromPoint(t);var i;if(e)return null===(i=this.createLocationRangeFromDOMRange(e))||void 0===i?void 0:i[0]}domRangeWithinElement(t){return t.collapsed?y(this.element,t.startContainer):y(this.element,t.startContainer)&&y(this.element,t.endContainer)}}Li.proxyMethod(\"locationMapper.findLocationFromContainerAndOffset\"),Li.proxyMethod(\"locationMapper.findContainerAndOffsetFromLocation\"),Li.proxyMethod(\"locationMapper.findNodeAndOffsetFromLocation\"),Li.proxyMethod(\"pointMapper.createDOMRangeFromPoint\"),Li.proxyMethod(\"pointMapper.getClientRectsForDOMRange\");var Di=Object.freeze({__proto__:null,Attachment:Re,AttachmentManager:ui,AttachmentPiece:Se,Block:Be,Composition:gi,Document:qe,Editor:xi,HTMLParser:Xe,HTMLSanitizer:Je,LineBreakInsertion:di,LocationMapper:yi,ManagedAttachment:hi,Piece:ye,PointMapper:ki,SelectionManager:Li,SplittableList:ke,StringPiece:Ee,Text:Te,UndoManager:mi}),wi=Object.freeze({__proto__:null,ObjectView:ee,AttachmentView:re,BlockView:de,DocumentView:ge,PieceView:le,PreviewableAttachmentView:ae,TextView:ce});const{lang:Ti,css:Bi,keyNames:Fi}=V,Ii=function(t){return function(){const e=t.apply(this,arguments);e.do(),this.undos||(this.undos=[]),this.undos.push(e.undo)}};class Pi extends z{constructor(t,e,i){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};super(...arguments),Ae(this,\"makeElementMutable\",Ii((()=>({do:()=>{this.element.dataset.trixMutable=!0},undo:()=>delete this.element.dataset.trixMutable})))),Ae(this,\"addToolbar\",Ii((()=>{const t=k({tagName:\"div\",className:Bi.attachmentToolbar,data:{trixMutable:!0},childNodes:k({tagName:\"div\",className:\"trix-button-row\",childNodes:k({tagName:\"span\",className:\"trix-button-group trix-button-group--actions\",childNodes:k({tagName:\"button\",className:\"trix-button trix-button--remove\",textContent:Ti.remove,attributes:{title:Ti.remove},data:{trixAction:\"remove\"}})})})});return this.attachment.isPreviewable()&&t.appendChild(k({tagName:\"div\",className:Bi.attachmentMetadataContainer,childNodes:k({tagName:\"span\",className:Bi.attachmentMetadata,childNodes:[k({tagName:\"span\",className:Bi.attachmentName,textContent:this.attachment.getFilename(),attributes:{title:this.attachment.getFilename()}}),k({tagName:\"span\",className:Bi.attachmentSize,textContent:this.attachment.getFormattedFilesize()})]})})),f(\"click\",{onElement:t,withCallback:this.didClickToolbar}),f(\"click\",{onElement:t,matchingSelector:\"[data-trix-action]\",withCallback:this.didClickActionButton}),b(\"trix-attachment-before-toolbar\",{onElement:this.element,attributes:{toolbar:t,attachment:this.attachment}}),{do:()=>this.element.appendChild(t),undo:()=>R(t)}}))),Ae(this,\"installCaptionEditor\",Ii((()=>{const t=k({tagName:\"textarea\",className:Bi.attachmentCaptionEditor,attributes:{placeholder:Ti.captionPlaceholder},data:{trixMutable:!0}});t.value=this.attachmentPiece.getCaption();const e=t.cloneNode();e.classList.add(\"trix-autoresize-clone\"),e.tabIndex=-1;const i=function(){e.value=t.value,t.style.height=e.scrollHeight+\"px\"};f(\"input\",{onElement:t,withCallback:i}),f(\"input\",{onElement:t,withCallback:this.didInputCaption}),f(\"keydown\",{onElement:t,withCallback:this.didKeyDownCaption}),f(\"change\",{onElement:t,withCallback:this.didChangeCaption}),f(\"blur\",{onElement:t,withCallback:this.didBlurCaption});const n=this.element.querySelector(\"figcaption\"),r=n.cloneNode();return{do:()=>{if(n.style.display=\"none\",r.appendChild(t),r.appendChild(e),r.classList.add(\"\".concat(Bi.attachmentCaption,\"--editing\")),n.parentElement.insertBefore(r,n),i(),this.options.editCaption)return St((()=>t.focus()))},undo(){R(r),n.style.display=null}}}))),this.didClickToolbar=this.didClickToolbar.bind(this),this.didClickActionButton=this.didClickActionButton.bind(this),this.didKeyDownCaption=this.didKeyDownCaption.bind(this),this.didInputCaption=this.didInputCaption.bind(this),this.didChangeCaption=this.didChangeCaption.bind(this),this.didBlurCaption=this.didBlurCaption.bind(this),this.attachmentPiece=t,this.element=e,this.container=i,this.options=n,this.attachment=this.attachmentPiece.attachment,\"a\"===E(this.element)&&(this.element=this.element.firstChild),this.install()}install(){this.makeElementMutable(),this.addToolbar(),this.attachment.isPreviewable()&&this.installCaptionEditor()}uninstall(){var t;let e=this.undos.pop();for(this.savePendingCaption();e;)e(),e=this.undos.pop();null===(t=this.delegate)||void 0===t||t.didUninstallAttachmentEditor(this)}savePendingCaption(){if(null!=this.pendingCaption){const r=this.pendingCaption;var t,e,i,n;if(this.pendingCaption=null,r)null===(t=this.delegate)||void 0===t||null===(e=t.attachmentEditorDidRequestUpdatingAttributesForAttachment)||void 0===e||e.call(t,{caption:r},this.attachment);else null===(i=this.delegate)||void 0===i||null===(n=i.attachmentEditorDidRequestRemovingAttributeForAttachment)||void 0===n||n.call(i,\"caption\",this.attachment)}}didClickToolbar(t){return t.preventDefault(),t.stopPropagation()}didClickActionButton(t){var e;if(\"remove\"===t.target.getAttribute(\"data-trix-action\"))return null===(e=this.delegate)||void 0===e?void 0:e.attachmentEditorDidRequestRemovalOfAttachment(this.attachment)}didKeyDownCaption(t){var e,i;if(\"return\"===Fi[t.keyCode])return t.preventDefault(),this.savePendingCaption(),null===(e=this.delegate)||void 0===e||null===(i=e.attachmentEditorDidRequestDeselectingAttachment)||void 0===i?void 0:i.call(e,this.attachment)}didInputCaption(t){this.pendingCaption=t.target.value.replace(/\\s/g,\" \").trim()}didChangeCaption(t){return this.savePendingCaption()}didBlurCaption(t){return this.savePendingCaption()}}class Ni extends z{constructor(t,i){super(...arguments),this.didFocus=this.didFocus.bind(this),this.didBlur=this.didBlur.bind(this),this.didClickAttachment=this.didClickAttachment.bind(this),this.element=t,this.composition=i,this.documentView=new ge(this.composition.document,{element:this.element}),f(\"focus\",{onElement:this.element,withCallback:this.didFocus}),f(\"blur\",{onElement:this.element,withCallback:this.didBlur}),f(\"click\",{onElement:this.element,matchingSelector:\"a[contenteditable=false]\",preventDefault:!0}),f(\"mousedown\",{onElement:this.element,matchingSelector:e,withCallback:this.didClickAttachment}),f(\"click\",{onElement:this.element,matchingSelector:\"a\".concat(e),preventDefault:!0})}didFocus(t){var e;const i=()=>{var t,e;if(!this.focused)return this.focused=!0,null===(t=this.delegate)||void 0===t||null===(e=t.compositionControllerDidFocus)||void 0===e?void 0:e.call(t)};return(null===(e=this.blurPromise)||void 0===e?void 0:e.then(i))||i()}didBlur(t){this.blurPromise=new Promise((t=>St((()=>{var e,i;x(this.element)||(this.focused=null,null===(e=this.delegate)||void 0===e||null===(i=e.compositionControllerDidBlur)||void 0===i||i.call(e));return this.blurPromise=null,t()}))))}didClickAttachment(t,e){var i,n;const r=this.findAttachmentForElement(e),o=!!A(t.target,{matchingSelector:\"figcaption\"});return null===(i=this.delegate)||void 0===i||null===(n=i.compositionControllerDidSelectAttachment)||void 0===n?void 0:n.call(i,r,{editCaption:o})}getSerializableElement(){return this.isEditingAttachment()?this.documentView.shadowElement:this.element}render(){var t,e,i,n,r,o;(this.revision!==this.composition.revision&&(this.documentView.setDocument(this.composition.document),this.documentView.render(),this.revision=this.composition.revision),this.canSyncDocumentView()&&!this.documentView.isSynced())&&(null===(i=this.delegate)||void 0===i||null===(n=i.compositionControllerWillSyncDocumentView)||void 0===n||n.call(i),this.documentView.sync(),null===(r=this.delegate)||void 0===r||null===(o=r.compositionControllerDidSyncDocumentView)||void 0===o||o.call(r));return null===(t=this.delegate)||void 0===t||null===(e=t.compositionControllerDidRender)||void 0===e?void 0:e.call(t)}rerenderViewForObject(t){return this.invalidateViewForObject(t),this.render()}invalidateViewForObject(t){return this.documentView.invalidateViewForObject(t)}isViewCachingEnabled(){return this.documentView.isViewCachingEnabled()}enableViewCaching(){return this.documentView.enableViewCaching()}disableViewCaching(){return this.documentView.disableViewCaching()}refreshViewCache(){return this.documentView.garbageCollectCachedViews()}isEditingAttachment(){return!!this.attachmentEditor}installAttachmentEditorForAttachment(t,e){var i;if((null===(i=this.attachmentEditor)||void 0===i?void 0:i.attachment)===t)return;const n=this.documentView.findElementForObject(t);if(!n)return;this.uninstallAttachmentEditor();const r=this.composition.document.getAttachmentPieceForAttachment(t);this.attachmentEditor=new Pi(r,n,this.element,e),this.attachmentEditor.delegate=this}uninstallAttachmentEditor(){var t;return null===(t=this.attachmentEditor)||void 0===t?void 0:t.uninstall()}didUninstallAttachmentEditor(){return this.attachmentEditor=null,this.render()}attachmentEditorDidRequestUpdatingAttributesForAttachment(t,e){var i,n;return null===(i=this.delegate)||void 0===i||null===(n=i.compositionControllerWillUpdateAttachment)||void 0===n||n.call(i,e),this.composition.updateAttributesForAttachment(t,e)}attachmentEditorDidRequestRemovingAttributeForAttachment(t,e){var i,n;return null===(i=this.delegate)||void 0===i||null===(n=i.compositionControllerWillUpdateAttachment)||void 0===n||n.call(i,e),this.composition.removeAttributeForAttachment(t,e)}attachmentEditorDidRequestRemovalOfAttachment(t){var e,i;return null===(e=this.delegate)||void 0===e||null===(i=e.compositionControllerDidRequestRemovalOfAttachment)||void 0===i?void 0:i.call(e,t)}attachmentEditorDidRequestDeselectingAttachment(t){var e,i;return null===(e=this.delegate)||void 0===e||null===(i=e.compositionControllerDidRequestDeselectingAttachment)||void 0===i?void 0:i.call(e,t)}canSyncDocumentView(){return!this.isEditingAttachment()}findAttachmentForElement(t){return this.composition.document.getAttachmentById(parseInt(t.dataset.trixId,10))}}class Oi extends z{}const Mi=\"data-trix-mutable\",ji=\"[\".concat(Mi,\"]\"),Wi={attributes:!0,childList:!0,characterData:!0,characterDataOldValue:!0,subtree:!0};class Ui extends z{constructor(t){super(t),this.didMutate=this.didMutate.bind(this),this.element=t,this.observer=new window.MutationObserver(this.didMutate),this.start()}start(){return this.reset(),this.observer.observe(this.element,Wi)}stop(){return this.observer.disconnect()}didMutate(t){var e,i;if(this.mutations.push(...Array.from(this.findSignificantMutations(t)||[])),this.mutations.length)return null===(e=this.delegate)||void 0===e||null===(i=e.elementDidMutate)||void 0===i||i.call(e,this.getMutationSummary()),this.reset()}reset(){this.mutations=[]}findSignificantMutations(t){return t.filter((t=>this.mutationIsSignificant(t)))}mutationIsSignificant(t){if(this.nodeIsMutable(t.target))return!1;for(const e of Array.from(this.nodesModifiedByMutation(t)))if(this.nodeIsSignificant(e))return!0;return!1}nodeIsSignificant(t){return t!==this.element&&!this.nodeIsMutable(t)&&!N(t)}nodeIsMutable(t){return A(t,{matchingSelector:ji})}nodesModifiedByMutation(t){const e=[];switch(t.type){case\"attributes\":t.attributeName!==Mi&&e.push(t.target);break;case\"characterData\":e.push(t.target.parentNode),e.push(t.target);break;case\"childList\":e.push(...Array.from(t.addedNodes||[])),e.push(...Array.from(t.removedNodes||[]))}return e}getMutationSummary(){return this.getTextMutationSummary()}getTextMutationSummary(){const{additions:t,deletions:e}=this.getTextChangesFromCharacterData(),i=this.getTextChangesFromChildList();Array.from(i.additions).forEach((e=>{Array.from(t).includes(e)||t.push(e)})),e.push(...Array.from(i.deletions||[]));const n={},r=t.join(\"\");r&&(n.textAdded=r);const o=e.join(\"\");return o&&(n.textDeleted=o),n}getMutationsByType(t){return Array.from(this.mutations).filter((e=>e.type===t))}getTextChangesFromChildList(){let t,e;const i=[],n=[];Array.from(this.getMutationsByType(\"childList\")).forEach((t=>{i.push(...Array.from(t.addedNodes||[])),n.push(...Array.from(t.removedNodes||[]))}));0===i.length&&1===n.length&&B(n[0])?(t=[],e=[\"\\n\"]):(t=qi(i),e=qi(n));return{additions:t.filter(((t,i)=>t!==e[i])).map(Wt),deletions:e.filter(((e,i)=>e!==t[i])).map(Wt)}}getTextChangesFromCharacterData(){let t,e;const i=this.getMutationsByType(\"characterData\");if(i.length){const n=i[0],r=i[i.length-1],o=function(t,e){let i,n;return t=X.box(t),(e=X.box(e)).length<t.length?[n,i]=Vt(t,e):[i,n]=Vt(e,t),{added:i,removed:n}}(Wt(n.oldValue),Wt(r.target.data));t=o.added,e=o.removed}return{additions:t?[t]:[],deletions:e?[e]:[]}}}const qi=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const e=[];for(const i of Array.from(t))switch(i.nodeType){case Node.TEXT_NODE:e.push(i.data);break;case Node.ELEMENT_NODE:\"br\"===E(i)?e.push(\"\\n\"):e.push(...Array.from(qi(i.childNodes)||[]))}return e};class Vi extends te{constructor(t){super(...arguments),this.file=t}perform(t){const e=new FileReader;return e.onerror=()=>t(!1),e.onload=()=>{e.onerror=null;try{e.abort()}catch(t){}return t(!0,this.file)},e.readAsArrayBuffer(this.file)}}class zi{constructor(t){this.element=t}shouldIgnore(t){return!!a.samsungAndroid&&(this.previousEvent=this.event,this.event=t,this.checkSamsungKeyboardBuggyModeStart(),this.checkSamsungKeyboardBuggyModeEnd(),this.buggyMode)}checkSamsungKeyboardBuggyModeStart(){this.insertingLongTextAfterUnidentifiedChar()&&_i(this.element.innerText,this.event.data)&&(this.buggyMode=!0,this.event.preventDefault())}checkSamsungKeyboardBuggyModeEnd(){this.buggyMode&&\"insertText\"!==this.event.inputType&&(this.buggyMode=!1)}insertingLongTextAfterUnidentifiedChar(){var t;return this.isBeforeInputInsertText()&&this.previousEventWasUnidentifiedKeydown()&&(null===(t=this.event.data)||void 0===t?void 0:t.length)>50}isBeforeInputInsertText(){return\"beforeinput\"===this.event.type&&\"insertText\"===this.event.inputType}previousEventWasUnidentifiedKeydown(){var t,e;return\"keydown\"===(null===(t=this.previousEvent)||void 0===t?void 0:t.type)&&\"Unidentified\"===(null===(e=this.previousEvent)||void 0===e?void 0:e.key)}}const _i=(t,e)=>Ji(t)===Ji(e),Hi=new RegExp(\"(\".concat(\"\uFFFC\",\"|\").concat(u,\"|\").concat(d,\"|\\\\s)+\"),\"g\"),Ji=t=>t.replace(Hi,\" \").trim();class Ki extends z{constructor(t){super(...arguments),this.element=t,this.mutationObserver=new Ui(this.element),this.mutationObserver.delegate=this,this.flakyKeyboardDetector=new zi(this.element);for(const t in this.constructor.events)f(t,{onElement:this.element,withCallback:this.handlerFor(t)})}elementDidMutate(t){}editorWillSyncDocumentView(){return this.mutationObserver.stop()}editorDidSyncDocumentView(){return this.mutationObserver.start()}requestRender(){var t,e;return null===(t=this.delegate)||void 0===t||null===(e=t.inputControllerDidRequestRender)||void 0===e?void 0:e.call(t)}requestReparse(){var t,e;return null===(t=this.delegate)||void 0===t||null===(e=t.inputControllerDidRequestReparse)||void 0===e||e.call(t),this.requestRender()}attachFiles(t){const e=Array.from(t).map((t=>new Vi(t)));return Promise.all(e).then((t=>{this.handleInput((function(){var e,i;return null===(e=this.delegate)||void 0===e||e.inputControllerWillAttachFiles(),null===(i=this.responder)||void 0===i||i.insertFiles(t),this.requestRender()}))}))}handlerFor(t){return e=>{e.defaultPrevented||this.handleInput((()=>{if(!x(this.element)){if(this.flakyKeyboardDetector.shouldIgnore(e))return;this.eventName=t,this.constructor.events[t].call(this,e)}}))}}handleInput(t){try{var e;null===(e=this.delegate)||void 0===e||e.inputControllerWillHandleInput(),t.call(this)}finally{var i;null===(i=this.delegate)||void 0===i||i.inputControllerDidHandleInput()}}createLinkHTML(t,e){const i=document.createElement(\"a\");return i.href=t,i.textContent=e||t,i.outerHTML}}var Gi;Ae(Ki,\"events\",{});const{browser:$i,keyNames:Xi}=V;let Yi=0;class Qi extends Ki{constructor(){super(...arguments),this.resetInputSummary()}setInputSummary(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.inputSummary.eventName=this.eventName;for(const e in t){const i=t[e];this.inputSummary[e]=i}return this.inputSummary}resetInputSummary(){this.inputSummary={}}reset(){return this.resetInputSummary(),It.reset()}elementDidMutate(t){var e,i;return this.isComposing()?null===(e=this.delegate)||void 0===e||null===(i=e.inputControllerDidAllowUnhandledInput)||void 0===i?void 0:i.call(e):this.handleInput((function(){return this.mutationIsSignificant(t)&&(this.mutationIsExpected(t)?this.requestRender():this.requestReparse()),this.reset()}))}mutationIsExpected(t){let{textAdded:e,textDeleted:i}=t;if(this.inputSummary.preferDocument)return!0;const n=null!=e?e===this.inputSummary.textAdded:!this.inputSummary.textAdded,r=null!=i?this.inputSummary.didDelete:!this.inputSummary.didDelete,o=[\"\\n\",\" \\n\"].includes(e)&&!n,s=\"\\n\"===i&&!r;if(o&&!s||s&&!o){const t=this.getSelectedRange();if(t){var a;const i=o?e.replace(/\\n$/,\"\").length||-1:(null==e?void 0:e.length)||1;if(null!==(a=this.responder)&&void 0!==a&&a.positionIsBlockBreak(t[1]+i))return!0}}return n&&r}mutationIsSignificant(t){var e;const i=Object.keys(t).length>0,n=\"\"===(null===(e=this.compositionInput)||void 0===e?void 0:e.getEndData());return i||!n}getCompositionInput(){if(this.isComposing())return this.compositionInput;this.compositionInput=new rn(this)}isComposing(){return this.compositionInput&&!this.compositionInput.isEnded()}deleteInDirection(t,e){var i;return!1!==(null===(i=this.responder)||void 0===i?void 0:i.deleteInDirection(t))?this.setInputSummary({didDelete:!0}):e?(e.preventDefault(),this.requestRender()):void 0}serializeSelectionToDataTransfer(t){var e;if(!function(t){if(null==t||!t.setData)return!1;for(const e in yt){const i=yt[e];try{if(t.setData(e,i),!t.getData(e)===i)return!1}catch(t){return!1}}return!0}(t))return;const i=null===(e=this.responder)||void 0===e?void 0:e.getSelectedDocument().toSerializableDocument();return t.setData(\"application/x-trix-document\",JSON.stringify(i)),t.setData(\"text/html\",ge.render(i).innerHTML),t.setData(\"text/plain\",i.toString().replace(/\\n$/,\"\")),!0}canAcceptDataTransfer(t){const e={};return Array.from((null==t?void 0:t.types)||[]).forEach((t=>{e[t]=!0})),e.Files||e[\"application/x-trix-document\"]||e[\"text/html\"]||e[\"text/plain\"]}getPastedHTMLUsingHiddenElement(t){const e=this.getSelectedRange(),i={position:\"absolute\",left:\"\".concat(window.pageXOffset,\"px\"),top:\"\".concat(window.pageYOffset,\"px\"),opacity:0},n=k({style:i,tagName:\"div\",editable:!0});return document.body.appendChild(n),n.focus(),requestAnimationFrame((()=>{const i=n.innerHTML;return R(n),this.setSelectedRange(e),t(i)}))}}Ae(Qi,\"events\",{keydown(t){this.isComposing()||this.resetInputSummary(),this.inputSummary.didInput=!0;const e=Xi[t.keyCode];if(e){var i;let n=this.keys;[\"ctrl\",\"alt\",\"shift\",\"meta\"].forEach((e=>{var i;t[\"\".concat(e,\"Key\")]&&(\"ctrl\"===e&&(e=\"control\"),n=null===(i=n)||void 0===i?void 0:i[e])})),null!=(null===(i=n)||void 0===i?void 0:i[e])&&(this.setInputSummary({keyName:e}),It.reset(),n[e].call(this,t))}if(Rt(t)){const e=String.fromCharCode(t.keyCode).toLowerCase();if(e){var n;const i=[\"alt\",\"shift\"].map((e=>{if(t[\"\".concat(e,\"Key\")])return e})).filter((t=>t));i.push(e),null!==(n=this.delegate)&&void 0!==n&&n.inputControllerDidReceiveKeyboardCommand(i)&&t.preventDefault()}}},keypress(t){if(null!=this.inputSummary.eventName)return;if(t.metaKey)return;if(t.ctrlKey&&!t.altKey)return;const e=en(t);var i,n;return e?(null===(i=this.delegate)||void 0===i||i.inputControllerWillPerformTyping(),null===(n=this.responder)||void 0===n||n.insertString(e),this.setInputSummary({textAdded:e,didDelete:this.selectionIsExpanded()})):void 0},textInput(t){const{data:e}=t,{textAdded:i}=this.inputSummary;if(i&&i!==e&&i.toUpperCase()===e){var n;const t=this.getSelectedRange();return this.setSelectedRange([t[0],t[1]+i.length]),null===(n=this.responder)||void 0===n||n.insertString(e),this.setInputSummary({textAdded:e}),this.setSelectedRange(t)}},dragenter(t){t.preventDefault()},dragstart(t){var e,i;return this.serializeSelectionToDataTransfer(t.dataTransfer),this.draggedRange=this.getSelectedRange(),null===(e=this.delegate)||void 0===e||null===(i=e.inputControllerDidStartDrag)||void 0===i?void 0:i.call(e)},dragover(t){if(this.draggedRange||this.canAcceptDataTransfer(t.dataTransfer)){t.preventDefault();const n={x:t.clientX,y:t.clientY};var e,i;if(!kt(n,this.draggingPoint))return this.draggingPoint=n,null===(e=this.delegate)||void 0===e||null===(i=e.inputControllerDidReceiveDragOverPoint)||void 0===i?void 0:i.call(e,this.draggingPoint)}},dragend(t){var e,i;null===(e=this.delegate)||void 0===e||null===(i=e.inputControllerDidCancelDrag)||void 0===i||i.call(e),this.draggedRange=null,this.draggingPoint=null},drop(t){var e,i;t.preventDefault();const n=null===(e=t.dataTransfer)||void 0===e?void 0:e.files,r=t.dataTransfer.getData(\"application/x-trix-document\"),o={x:t.clientX,y:t.clientY};if(null===(i=this.responder)||void 0===i||i.setLocationRangeFromPointRange(o),null!=n&&n.length)this.attachFiles(n);else if(this.draggedRange){var s,a;null===(s=this.delegate)||void 0===s||s.inputControllerWillMoveText(),null===(a=this.responder)||void 0===a||a.moveTextFromRange(this.draggedRange),this.draggedRange=null,this.requestRender()}else if(r){var l;const t=qe.fromJSONString(r);null===(l=this.responder)||void 0===l||l.insertDocument(t),this.requestRender()}this.draggedRange=null,this.draggingPoint=null},cut(t){var e,i;if(null!==(e=this.responder)&&void 0!==e&&e.selectionIsExpanded()&&(this.serializeSelectionToDataTransfer(t.clipboardData)&&t.preventDefault(),null===(i=this.delegate)||void 0===i||i.inputControllerWillCutText(),this.deleteInDirection(\"backward\"),t.defaultPrevented))return this.requestRender()},copy(t){var e;null!==(e=this.responder)&&void 0!==e&&e.selectionIsExpanded()&&this.serializeSelectionToDataTransfer(t.clipboardData)&&t.preventDefault()},paste(t){const e=t.clipboardData||t.testClipboardData,i={clipboard:e};if(!e||nn(t))return void this.getPastedHTMLUsingHiddenElement((t=>{var e,n,r;return i.type=\"text/html\",i.html=t,null===(e=this.delegate)||void 0===e||e.inputControllerWillPaste(i),null===(n=this.responder)||void 0===n||n.insertHTML(i.html),this.requestRender(),null===(r=this.delegate)||void 0===r?void 0:r.inputControllerDidPaste(i)}));const n=e.getData(\"URL\"),r=e.getData(\"text/html\"),o=e.getData(\"public.url-name\");if(n){var s,a,l;let t;i.type=\"text/html\",t=o?qt(o).trim():n,i.html=this.createLinkHTML(n,t),null===(s=this.delegate)||void 0===s||s.inputControllerWillPaste(i),this.setInputSummary({textAdded:t,didDelete:this.selectionIsExpanded()}),null===(a=this.responder)||void 0===a||a.insertHTML(i.html),this.requestRender(),null===(l=this.delegate)||void 0===l||l.inputControllerDidPaste(i)}else if(Ct(e)){var c,h,u;i.type=\"text/plain\",i.string=e.getData(\"text/plain\"),null===(c=this.delegate)||void 0===c||c.inputControllerWillPaste(i),this.setInputSummary({textAdded:i.string,didDelete:this.selectionIsExpanded()}),null===(h=this.responder)||void 0===h||h.insertString(i.string),this.requestRender(),null===(u=this.delegate)||void 0===u||u.inputControllerDidPaste(i)}else if(r){var d,g,m;i.type=\"text/html\",i.html=r,null===(d=this.delegate)||void 0===d||d.inputControllerWillPaste(i),null===(g=this.responder)||void 0===g||g.insertHTML(i.html),this.requestRender(),null===(m=this.delegate)||void 0===m||m.inputControllerDidPaste(i)}else if(Array.from(e.types).includes(\"Files\")){var p,f;const t=null===(p=e.items)||void 0===p||null===(p=p[0])||void 0===p||null===(f=p.getAsFile)||void 0===f?void 0:f.call(p);if(t){var b,v,A;const e=Zi(t);!t.name&&e&&(t.name=\"pasted-file-\".concat(++Yi,\".\").concat(e)),i.type=\"File\",i.file=t,null===(b=this.delegate)||void 0===b||b.inputControllerWillAttachFiles(),null===(v=this.responder)||void 0===v||v.insertFile(i.file),this.requestRender(),null===(A=this.delegate)||void 0===A||A.inputControllerDidPaste(i)}}t.preventDefault()},compositionstart(t){return this.getCompositionInput().start(t.data)},compositionupdate(t){return this.getCompositionInput().update(t.data)},compositionend(t){return this.getCompositionInput().end(t.data)},beforeinput(t){this.inputSummary.didInput=!0},input(t){return this.inputSummary.didInput=!0,t.stopPropagation()}}),Ae(Qi,\"keys\",{backspace(t){var e;return null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),this.deleteInDirection(\"backward\",t)},delete(t){var e;return null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),this.deleteInDirection(\"forward\",t)},return(t){var e,i;return this.setInputSummary({preferDocument:!0}),null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),null===(i=this.responder)||void 0===i?void 0:i.insertLineBreak()},tab(t){var e,i;null!==(e=this.responder)&&void 0!==e&&e.canIncreaseNestingLevel()&&(null===(i=this.responder)||void 0===i||i.increaseNestingLevel(),this.requestRender(),t.preventDefault())},left(t){var e;if(this.selectionIsInCursorTarget())return t.preventDefault(),null===(e=this.responder)||void 0===e?void 0:e.moveCursorInDirection(\"backward\")},right(t){var e;if(this.selectionIsInCursorTarget())return t.preventDefault(),null===(e=this.responder)||void 0===e?void 0:e.moveCursorInDirection(\"forward\")},control:{d(t){var e;return null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),this.deleteInDirection(\"forward\",t)},h(t){var e;return null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),this.deleteInDirection(\"backward\",t)},o(t){var e,i;return t.preventDefault(),null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),null===(i=this.responder)||void 0===i||i.insertString(\"\\n\",{updatePosition:!1}),this.requestRender()}},shift:{return(t){var e,i;null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),null===(i=this.responder)||void 0===i||i.insertString(\"\\n\"),this.requestRender(),t.preventDefault()},tab(t){var e,i;null!==(e=this.responder)&&void 0!==e&&e.canDecreaseNestingLevel()&&(null===(i=this.responder)||void 0===i||i.decreaseNestingLevel(),this.requestRender(),t.preventDefault())},left(t){if(this.selectionIsInCursorTarget())return t.preventDefault(),this.expandSelectionInDirection(\"backward\")},right(t){if(this.selectionIsInCursorTarget())return t.preventDefault(),this.expandSelectionInDirection(\"forward\")}},alt:{backspace(t){var e;return this.setInputSummary({preferDocument:!1}),null===(e=this.delegate)||void 0===e?void 0:e.inputControllerWillPerformTyping()}},meta:{backspace(t){var e;return this.setInputSummary({preferDocument:!1}),null===(e=this.delegate)||void 0===e?void 0:e.inputControllerWillPerformTyping()}}}),Qi.proxyMethod(\"responder?.getSelectedRange\"),Qi.proxyMethod(\"responder?.setSelectedRange\"),Qi.proxyMethod(\"responder?.expandSelectionInDirection\"),Qi.proxyMethod(\"responder?.selectionIsInCursorTarget\"),Qi.proxyMethod(\"responder?.selectionIsExpanded\");const Zi=t=>{var e;return null===(e=t.type)||void 0===e||null===(e=e.match(/\\/(\\w+)$/))||void 0===e?void 0:e[1]},tn=!(null===(Gi=\" \".codePointAt)||void 0===Gi||!Gi.call(\" \",0)),en=function(t){if(t.key&&tn&&t.key.codePointAt(0)===t.keyCode)return t.key;{let e;if(null===t.which?e=t.keyCode:0!==t.which&&0!==t.charCode&&(e=t.charCode),null!=e&&\"escape\"!==Xi[e])return X.fromCodepoints([e]).toString()}},nn=function(t){const e=t.clipboardData;if(e){if(e.types.includes(\"text/html\")){for(const t of e.types){const i=/^CorePasteboardFlavorType/.test(t),n=/^dyn\\./.test(t)&&e.getData(t);if(i||n)return!0}return!1}{const t=e.types.includes(\"com.apple.webarchive\"),i=e.types.includes(\"com.apple.flat-rtfd\");return t||i}}};class rn extends z{constructor(t){super(...arguments),this.inputController=t,this.responder=this.inputController.responder,this.delegate=this.inputController.delegate,this.inputSummary=this.inputController.inputSummary,this.data={}}start(t){if(this.data.start=t,this.isSignificant()){var e,i;if(\"keypress\"===this.inputSummary.eventName&&this.inputSummary.textAdded)null===(i=this.responder)||void 0===i||i.deleteInDirection(\"left\");this.selectionIsExpanded()||(this.insertPlaceholder(),this.requestRender()),this.range=null===(e=this.responder)||void 0===e?void 0:e.getSelectedRange()}}update(t){if(this.data.update=t,this.isSignificant()){const t=this.selectPlaceholder();t&&(this.forgetPlaceholder(),this.range=t)}}end(t){return this.data.end=t,this.isSignificant()?(this.forgetPlaceholder(),this.canApplyToDocument()?(this.setInputSummary({preferDocument:!0,didInput:!1}),null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),null===(i=this.responder)||void 0===i||i.setSelectedRange(this.range),null===(n=this.responder)||void 0===n||n.insertString(this.data.end),null===(r=this.responder)||void 0===r?void 0:r.setSelectedRange(this.range[0]+this.data.end.length)):null!=this.data.start||null!=this.data.update?(this.requestReparse(),this.inputController.reset()):void 0):this.inputController.reset();var e,i,n,r}getEndData(){return this.data.end}isEnded(){return null!=this.getEndData()}isSignificant(){return!$i.composesExistingText||this.inputSummary.didInput}canApplyToDocument(){var t,e;return 0===(null===(t=this.data.start)||void 0===t?void 0:t.length)&&(null===(e=this.data.end)||void 0===e?void 0:e.length)>0&&this.range}}rn.proxyMethod(\"inputController.setInputSummary\"),rn.proxyMethod(\"inputController.requestRender\"),rn.proxyMethod(\"inputController.requestReparse\"),rn.proxyMethod(\"responder?.selectionIsExpanded\"),rn.proxyMethod(\"responder?.insertPlaceholder\"),rn.proxyMethod(\"responder?.selectPlaceholder\"),rn.proxyMethod(\"responder?.forgetPlaceholder\");class on extends Ki{constructor(){super(...arguments),this.render=this.render.bind(this)}elementDidMutate(){return this.scheduledRender?this.composing?null===(t=this.delegate)||void 0===t||null===(e=t.inputControllerDidAllowUnhandledInput)||void 0===e?void 0:e.call(t):void 0:this.reparse();var t,e}scheduleRender(){return this.scheduledRender?this.scheduledRender:this.scheduledRender=requestAnimationFrame(this.render)}render(){var t,e;(cancelAnimationFrame(this.scheduledRender),this.scheduledRender=null,this.composing)||(null===(e=this.delegate)||void 0===e||e.render());null===(t=this.afterRender)||void 0===t||t.call(this),this.afterRender=null}reparse(){var t;return null===(t=this.delegate)||void 0===t?void 0:t.reparse()}insertString(){var t;let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\",i=arguments.length>1?arguments[1]:void 0;return null===(t=this.delegate)||void 0===t||t.inputControllerWillPerformTyping(),this.withTargetDOMRange((function(){var t;return null===(t=this.responder)||void 0===t?void 0:t.insertString(e,i)}))}toggleAttributeIfSupported(t){var e;if(dt().includes(t))return null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformFormatting(t),this.withTargetDOMRange((function(){var e;return null===(e=this.responder)||void 0===e?void 0:e.toggleCurrentAttribute(t)}))}activateAttributeIfSupported(t,e){var i;if(dt().includes(t))return null===(i=this.delegate)||void 0===i||i.inputControllerWillPerformFormatting(t),this.withTargetDOMRange((function(){var i;return null===(i=this.responder)||void 0===i?void 0:i.setCurrentAttribute(t,e)}))}deleteInDirection(t){let{recordUndoEntry:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{recordUndoEntry:!0};var i;e&&(null===(i=this.delegate)||void 0===i||i.inputControllerWillPerformTyping());const n=()=>{var e;return null===(e=this.responder)||void 0===e?void 0:e.deleteInDirection(t)},r=this.getTargetDOMRange({minLength:2});return r?this.withTargetDOMRange(r,n):n()}withTargetDOMRange(t,e){var i;return\"function\"==typeof t&&(e=t,t=this.getTargetDOMRange()),t?null===(i=this.responder)||void 0===i?void 0:i.withTargetDOMRange(t,e.bind(this)):(It.reset(),e.call(this))}getTargetDOMRange(){var t,e;let{minLength:i}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{minLength:0};const n=null===(t=(e=this.event).getTargetRanges)||void 0===t?void 0:t.call(e);if(n&&n.length){const t=sn(n[0]);if(0===i||t.toString().length>=i)return t}}withEvent(t,e){let i;this.event=t;try{i=e.call(this)}finally{this.event=null}return i}}Ae(on,\"events\",{keydown(t){if(Rt(t)){var e;const i=hn(t);null!==(e=this.delegate)&&void 0!==e&&e.inputControllerDidReceiveKeyboardCommand(i)&&t.preventDefault()}else{let e=t.key;t.altKey&&(e+=\"+Alt\"),t.shiftKey&&(e+=\"+Shift\");const i=this.constructor.keys[e];if(i)return this.withEvent(t,i)}},paste(t){var e;let i;const n=null===(e=t.clipboardData)||void 0===e?void 0:e.getData(\"URL\");return ln(t)?(t.preventDefault(),this.attachFiles(t.clipboardData.files)):cn(t)?(t.preventDefault(),i={type:\"text/plain\",string:t.clipboardData.getData(\"text/plain\")},null===(r=this.delegate)||void 0===r||r.inputControllerWillPaste(i),null===(o=this.responder)||void 0===o||o.insertString(i.string),this.render(),null===(s=this.delegate)||void 0===s?void 0:s.inputControllerDidPaste(i)):n?(t.preventDefault(),i={type:\"text/html\",html:this.createLinkHTML(n)},null===(a=this.delegate)||void 0===a||a.inputControllerWillPaste(i),null===(l=this.responder)||void 0===l||l.insertHTML(i.html),this.render(),null===(c=this.delegate)||void 0===c?void 0:c.inputControllerDidPaste(i)):void 0;var r,o,s,a,l,c},beforeinput(t){const e=this.constructor.inputTypes[t.inputType];e&&(this.withEvent(t,e),this.scheduleRender())},input(t){It.reset()},dragstart(t){var e,i;null!==(e=this.responder)&&void 0!==e&&e.selectionContainsAttachments()&&(t.dataTransfer.setData(\"application/x-trix-dragging\",!0),this.dragging={range:null===(i=this.responder)||void 0===i?void 0:i.getSelectedRange(),point:un(t)})},dragenter(t){an(t)&&t.preventDefault()},dragover(t){if(this.dragging){t.preventDefault();const i=un(t);var e;if(!kt(i,this.dragging.point))return this.dragging.point=i,null===(e=this.responder)||void 0===e?void 0:e.setLocationRangeFromPointRange(i)}else an(t)&&t.preventDefault()},drop(t){var e,i;if(this.dragging)return t.preventDefault(),null===(e=this.delegate)||void 0===e||e.inputControllerWillMoveText(),null===(i=this.responder)||void 0===i||i.moveTextFromRange(this.dragging.range),this.dragging=null,this.scheduleRender();if(an(t)){var n;t.preventDefault();const e=un(t);return null===(n=this.responder)||void 0===n||n.setLocationRangeFromPointRange(e),this.attachFiles(t.dataTransfer.files)}},dragend(){var t;this.dragging&&(null===(t=this.responder)||void 0===t||t.setSelectedRange(this.dragging.range),this.dragging=null)},compositionend(t){this.composing&&(this.composing=!1,a.recentAndroid||this.scheduleRender())}}),Ae(on,\"keys\",{ArrowLeft(){var t,e;if(null!==(t=this.responder)&&void 0!==t&&t.shouldManageMovingCursorInDirection(\"backward\"))return this.event.preventDefault(),null===(e=this.responder)||void 0===e?void 0:e.moveCursorInDirection(\"backward\")},ArrowRight(){var t,e;if(null!==(t=this.responder)&&void 0!==t&&t.shouldManageMovingCursorInDirection(\"forward\"))return this.event.preventDefault(),null===(e=this.responder)||void 0===e?void 0:e.moveCursorInDirection(\"forward\")},Backspace(){var t,e,i;if(null!==(t=this.responder)&&void 0!==t&&t.shouldManageDeletingInDirection(\"backward\"))return this.event.preventDefault(),null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),null===(i=this.responder)||void 0===i||i.deleteInDirection(\"backward\"),this.render()},Tab(){var t,e;if(null!==(t=this.responder)&&void 0!==t&&t.canIncreaseNestingLevel())return this.event.preventDefault(),null===(e=this.responder)||void 0===e||e.increaseNestingLevel(),this.render()},\"Tab+Shift\"(){var t,e;if(null!==(t=this.responder)&&void 0!==t&&t.canDecreaseNestingLevel())return this.event.preventDefault(),null===(e=this.responder)||void 0===e||e.decreaseNestingLevel(),this.render()}}),Ae(on,\"inputTypes\",{deleteByComposition(){return this.deleteInDirection(\"backward\",{recordUndoEntry:!1})},deleteByCut(){return this.deleteInDirection(\"backward\")},deleteByDrag(){return this.event.preventDefault(),this.withTargetDOMRange((function(){var t;this.deleteByDragRange=null===(t=this.responder)||void 0===t?void 0:t.getSelectedRange()}))},deleteCompositionText(){return this.deleteInDirection(\"backward\",{recordUndoEntry:!1})},deleteContent(){return this.deleteInDirection(\"backward\")},deleteContentBackward(){return this.deleteInDirection(\"backward\")},deleteContentForward(){return this.deleteInDirection(\"forward\")},deleteEntireSoftLine(){return this.deleteInDirection(\"forward\")},deleteHardLineBackward(){return this.deleteInDirection(\"backward\")},deleteHardLineForward(){return this.deleteInDirection(\"forward\")},deleteSoftLineBackward(){return this.deleteInDirection(\"backward\")},deleteSoftLineForward(){return this.deleteInDirection(\"forward\")},deleteWordBackward(){return this.deleteInDirection(\"backward\")},deleteWordForward(){return this.deleteInDirection(\"forward\")},formatBackColor(){return this.activateAttributeIfSupported(\"backgroundColor\",this.event.data)},formatBold(){return this.toggleAttributeIfSupported(\"bold\")},formatFontColor(){return this.activateAttributeIfSupported(\"color\",this.event.data)},formatFontName(){return this.activateAttributeIfSupported(\"font\",this.event.data)},formatIndent(){var t;if(null!==(t=this.responder)&&void 0!==t&&t.canIncreaseNestingLevel())return this.withTargetDOMRange((function(){var t;return null===(t=this.responder)||void 0===t?void 0:t.increaseNestingLevel()}))},formatItalic(){return this.toggleAttributeIfSupported(\"italic\")},formatJustifyCenter(){return this.toggleAttributeIfSupported(\"justifyCenter\")},formatJustifyFull(){return this.toggleAttributeIfSupported(\"justifyFull\")},formatJustifyLeft(){return this.toggleAttributeIfSupported(\"justifyLeft\")},formatJustifyRight(){return this.toggleAttributeIfSupported(\"justifyRight\")},formatOutdent(){var t;if(null!==(t=this.responder)&&void 0!==t&&t.canDecreaseNestingLevel())return this.withTargetDOMRange((function(){var t;return null===(t=this.responder)||void 0===t?void 0:t.decreaseNestingLevel()}))},formatRemove(){this.withTargetDOMRange((function(){for(const i in null===(t=this.responder)||void 0===t?void 0:t.getCurrentAttributes()){var t,e;null===(e=this.responder)||void 0===e||e.removeCurrentAttribute(i)}}))},formatSetBlockTextDirection(){return this.activateAttributeIfSupported(\"blockDir\",this.event.data)},formatSetInlineTextDirection(){return this.activateAttributeIfSupported(\"textDir\",this.event.data)},formatStrikeThrough(){return this.toggleAttributeIfSupported(\"strike\")},formatSubscript(){return this.toggleAttributeIfSupported(\"sub\")},formatSuperscript(){return this.toggleAttributeIfSupported(\"sup\")},formatUnderline(){return this.toggleAttributeIfSupported(\"underline\")},historyRedo(){var t;return null===(t=this.delegate)||void 0===t?void 0:t.inputControllerWillPerformRedo()},historyUndo(){var t;return null===(t=this.delegate)||void 0===t?void 0:t.inputControllerWillPerformUndo()},insertCompositionText(){return this.composing=!0,this.insertString(this.event.data)},insertFromComposition(){return this.composing=!1,this.insertString(this.event.data)},insertFromDrop(){const t=this.deleteByDragRange;var e;if(t)return this.deleteByDragRange=null,null===(e=this.delegate)||void 0===e||e.inputControllerWillMoveText(),this.withTargetDOMRange((function(){var e;return null===(e=this.responder)||void 0===e?void 0:e.moveTextFromRange(t)}))},insertFromPaste(){var t;const{dataTransfer:e}=this.event,i={dataTransfer:e},n=e.getData(\"URL\"),r=e.getData(\"text/html\");if(n){var o;let t;this.event.preventDefault(),i.type=\"text/html\";const r=e.getData(\"public.url-name\");t=r?qt(r).trim():n,i.html=this.createLinkHTML(n,t),null===(o=this.delegate)||void 0===o||o.inputControllerWillPaste(i),this.withTargetDOMRange((function(){var t;return null===(t=this.responder)||void 0===t?void 0:t.insertHTML(i.html)})),this.afterRender=()=>{var t;return null===(t=this.delegate)||void 0===t?void 0:t.inputControllerDidPaste(i)}}else if(Ct(e)){var s;i.type=\"text/plain\",i.string=e.getData(\"text/plain\"),null===(s=this.delegate)||void 0===s||s.inputControllerWillPaste(i),this.withTargetDOMRange((function(){var t;return null===(t=this.responder)||void 0===t?void 0:t.insertString(i.string)})),this.afterRender=()=>{var t;return null===(t=this.delegate)||void 0===t?void 0:t.inputControllerDidPaste(i)}}else if(r){var a;this.event.preventDefault(),i.type=\"text/html\",i.html=r,null===(a=this.delegate)||void 0===a||a.inputControllerWillPaste(i),this.withTargetDOMRange((function(){var t;return null===(t=this.responder)||void 0===t?void 0:t.insertHTML(i.html)})),this.afterRender=()=>{var t;return null===(t=this.delegate)||void 0===t?void 0:t.inputControllerDidPaste(i)}}else if(null!==(t=e.files)&&void 0!==t&&t.length){var l;i.type=\"File\",i.file=e.files[0],null===(l=this.delegate)||void 0===l||l.inputControllerWillPaste(i),this.withTargetDOMRange((function(){var t;return null===(t=this.responder)||void 0===t?void 0:t.insertFile(i.file)})),this.afterRender=()=>{var t;return null===(t=this.delegate)||void 0===t?void 0:t.inputControllerDidPaste(i)}}},insertFromYank(){return this.insertString(this.event.data)},insertLineBreak(){return this.insertString(\"\\n\")},insertLink(){return this.activateAttributeIfSupported(\"href\",this.event.data)},insertOrderedList(){return this.toggleAttributeIfSupported(\"number\")},insertParagraph(){var t;return null===(t=this.delegate)||void 0===t||t.inputControllerWillPerformTyping(),this.withTargetDOMRange((function(){var t;return null===(t=this.responder)||void 0===t?void 0:t.insertLineBreak()}))},insertReplacementText(){return this.insertString(this.event.dataTransfer.getData(\"text/plain\"),{updatePosition:!1})},insertText(){var t;return this.insertString(this.event.data||(null===(t=this.event.dataTransfer)||void 0===t?void 0:t.getData(\"text/plain\")))},insertTranspose(){return this.insertString(this.event.data)},insertUnorderedList(){return this.toggleAttributeIfSupported(\"bullet\")}});const sn=function(t){const e=document.createRange();return e.setStart(t.startContainer,t.startOffset),e.setEnd(t.endContainer,t.endOffset),e},an=t=>{var e;return Array.from((null===(e=t.dataTransfer)||void 0===e?void 0:e.types)||[]).includes(\"Files\")},ln=function(t){const e=t.clipboardData;if(e)return e.types.includes(\"Files\")&&1===e.types.length&&e.files.length>=1},cn=function(t){const e=t.clipboardData;if(e)return e.types.includes(\"text/plain\")&&1===e.types.length},hn=function(t){const e=[];return t.altKey&&e.push(\"alt\"),t.shiftKey&&e.push(\"shift\"),e.push(t.key),e},un=t=>({x:t.clientX,y:t.clientY}),dn=\"[data-trix-attribute]\",gn=\"[data-trix-action]\",mn=\"\".concat(dn,\", \").concat(gn),pn=\"[data-trix-dialog]\",fn=\"\".concat(pn,\"[data-trix-active]\"),bn=\"\".concat(pn,\" [data-trix-method]\"),vn=\"\".concat(pn,\" [data-trix-input]\"),An=(t,e)=>(e||(e=yn(t)),t.querySelector(\"[data-trix-input][name='\".concat(e,\"']\"))),xn=t=>t.getAttribute(\"data-trix-action\"),yn=t=>t.getAttribute(\"data-trix-attribute\")||t.getAttribute(\"data-trix-dialog-attribute\");class Cn extends z{constructor(t){super(t),this.didClickActionButton=this.didClickActionButton.bind(this),this.didClickAttributeButton=this.didClickAttributeButton.bind(this),this.didClickDialogButton=this.didClickDialogButton.bind(this),this.didKeyDownDialogInput=this.didKeyDownDialogInput.bind(this),this.element=t,this.attributes={},this.actions={},this.resetDialogInputs(),f(\"mousedown\",{onElement:this.element,matchingSelector:gn,withCallback:this.didClickActionButton}),f(\"mousedown\",{onElement:this.element,matchingSelector:dn,withCallback:this.didClickAttributeButton}),f(\"click\",{onElement:this.element,matchingSelector:mn,preventDefault:!0}),f(\"click\",{onElement:this.element,matchingSelector:bn,withCallback:this.didClickDialogButton}),f(\"keydown\",{onElement:this.element,matchingSelector:vn,withCallback:this.didKeyDownDialogInput})}didClickActionButton(t,e){var i;null===(i=this.delegate)||void 0===i||i.toolbarDidClickButton(),t.preventDefault();const n=xn(e);return this.getDialog(n)?this.toggleDialog(n):null===(r=this.delegate)||void 0===r?void 0:r.toolbarDidInvokeAction(n);var r}didClickAttributeButton(t,e){var i;null===(i=this.delegate)||void 0===i||i.toolbarDidClickButton(),t.preventDefault();const n=yn(e);var r;this.getDialog(n)?this.toggleDialog(n):null===(r=this.delegate)||void 0===r||r.toolbarDidToggleAttribute(n);return this.refreshAttributeButtons()}didClickDialogButton(t,e){const i=A(e,{matchingSelector:pn});return this[e.getAttribute(\"data-trix-method\")].call(this,i)}didKeyDownDialogInput(t,e){if(13===t.keyCode){t.preventDefault();const i=e.getAttribute(\"name\"),n=this.getDialog(i);this.setAttribute(n)}if(27===t.keyCode)return t.preventDefault(),this.hideDialog()}updateActions(t){return this.actions=t,this.refreshActionButtons()}refreshActionButtons(){return this.eachActionButton(((t,e)=>{t.disabled=!1===this.actions[e]}))}eachActionButton(t){return Array.from(this.element.querySelectorAll(gn)).map((e=>t(e,xn(e))))}updateAttributes(t){return this.attributes=t,this.refreshAttributeButtons()}refreshAttributeButtons(){return this.eachAttributeButton(((t,e)=>(t.disabled=!1===this.attributes[e],this.attributes[e]||this.dialogIsVisible(e)?(t.setAttribute(\"data-trix-active\",\"\"),t.classList.add(\"trix-active\")):(t.removeAttribute(\"data-trix-active\"),t.classList.remove(\"trix-active\")))))}eachAttributeButton(t){return Array.from(this.element.querySelectorAll(dn)).map((e=>t(e,yn(e))))}applyKeyboardCommand(t){const e=JSON.stringify(t.sort());for(const t of Array.from(this.element.querySelectorAll(\"[data-trix-key]\"))){const i=t.getAttribute(\"data-trix-key\").split(\"+\");if(JSON.stringify(i.sort())===e)return b(\"mousedown\",{onElement:t}),!0}return!1}dialogIsVisible(t){const e=this.getDialog(t);if(e)return e.hasAttribute(\"data-trix-active\")}toggleDialog(t){return this.dialogIsVisible(t)?this.hideDialog():this.showDialog(t)}showDialog(t){var e,i;this.hideDialog(),null===(e=this.delegate)||void 0===e||e.toolbarWillShowDialog();const n=this.getDialog(t);n.setAttribute(\"data-trix-active\",\"\"),n.classList.add(\"trix-active\"),Array.from(n.querySelectorAll(\"input[disabled]\")).forEach((t=>{t.removeAttribute(\"disabled\")}));const r=yn(n);if(r){const e=An(n,t);e&&(e.value=this.attributes[r]||\"\",e.select())}return null===(i=this.delegate)||void 0===i?void 0:i.toolbarDidShowDialog(t)}setAttribute(t){const e=yn(t),i=An(t,e);return i.willValidate&&!i.checkValidity()?(i.setAttribute(\"data-trix-validate\",\"\"),i.classList.add(\"trix-validate\"),i.focus()):(null===(n=this.delegate)||void 0===n||n.toolbarDidUpdateAttribute(e,i.value),this.hideDialog());var n}removeAttribute(t){var e;const i=yn(t);return null===(e=this.delegate)||void 0===e||e.toolbarDidRemoveAttribute(i),this.hideDialog()}hideDialog(){const t=this.element.querySelector(fn);var e;if(t)return t.removeAttribute(\"data-trix-active\"),t.classList.remove(\"trix-active\"),this.resetDialogInputs(),null===(e=this.delegate)||void 0===e?void 0:e.toolbarDidHideDialog((t=>t.getAttribute(\"data-trix-dialog\"))(t))}resetDialogInputs(){Array.from(this.element.querySelectorAll(vn)).forEach((t=>{t.setAttribute(\"disabled\",\"disabled\"),t.removeAttribute(\"data-trix-validate\"),t.classList.remove(\"trix-validate\")}))}getDialog(t){return this.element.querySelector(\"[data-trix-dialog=\".concat(t,\"]\"))}}class Rn extends Oi{constructor(t){let{editorElement:e,document:i,html:n}=t;super(...arguments),this.editorElement=e,this.selectionManager=new Li(this.editorElement),this.selectionManager.delegate=this,this.composition=new gi,this.composition.delegate=this,this.attachmentManager=new ui(this.composition.getAttachments()),this.attachmentManager.delegate=this,this.inputController=2===M.getLevel()?new on(this.editorElement):new Qi(this.editorElement),this.inputController.delegate=this,this.inputController.responder=this.composition,this.compositionController=new Ni(this.editorElement,this.composition),this.compositionController.delegate=this,this.toolbarController=new Cn(this.editorElement.toolbarElement),this.toolbarController.delegate=this,this.editor=new xi(this.composition,this.selectionManager,this.editorElement),i?this.editor.loadDocument(i):this.editor.loadHTML(n)}registerSelectionManager(){return It.registerSelectionManager(this.selectionManager)}unregisterSelectionManager(){return It.unregisterSelectionManager(this.selectionManager)}render(){return this.compositionController.render()}reparse(){return this.composition.replaceHTML(this.editorElement.innerHTML)}compositionDidChangeDocument(t){if(this.notifyEditorElement(\"document-change\"),!this.handlingInput)return this.render()}compositionDidChangeCurrentAttributes(t){return this.currentAttributes=t,this.toolbarController.updateAttributes(this.currentAttributes),this.updateCurrentActions(),this.notifyEditorElement(\"attributes-change\",{attributes:this.currentAttributes})}compositionDidPerformInsertionAtRange(t){this.pasting&&(this.pastedRange=t)}compositionShouldAcceptFile(t){return this.notifyEditorElement(\"file-accept\",{file:t})}compositionDidAddAttachment(t){const e=this.attachmentManager.manageAttachment(t);return this.notifyEditorElement(\"attachment-add\",{attachment:e})}compositionDidEditAttachment(t){this.compositionController.rerenderViewForObject(t);const e=this.attachmentManager.manageAttachment(t);return this.notifyEditorElement(\"attachment-edit\",{attachment:e}),this.notifyEditorElement(\"change\")}compositionDidChangeAttachmentPreviewURL(t){return this.compositionController.invalidateViewForObject(t),this.notifyEditorElement(\"change\")}compositionDidRemoveAttachment(t){const e=this.attachmentManager.unmanageAttachment(t);return this.notifyEditorElement(\"attachment-remove\",{attachment:e})}compositionDidStartEditingAttachment(t,e){return this.attachmentLocationRange=this.composition.document.getLocationRangeOfAttachment(t),this.compositionController.installAttachmentEditorForAttachment(t,e),this.selectionManager.setLocationRange(this.attachmentLocationRange)}compositionDidStopEditingAttachment(t){this.compositionController.uninstallAttachmentEditor(),this.attachmentLocationRange=null}compositionDidRequestChangingSelectionToLocationRange(t){if(!this.loadingSnapshot||this.isFocused())return this.requestedLocationRange=t,this.compositionRevisionWhenLocationRangeRequested=this.composition.revision,this.handlingInput?void 0:this.render()}compositionWillLoadSnapshot(){this.loadingSnapshot=!0}compositionDidLoadSnapshot(){this.compositionController.refreshViewCache(),this.render(),this.loadingSnapshot=!1}getSelectionManager(){return this.selectionManager}attachmentManagerDidRequestRemovalOfAttachment(t){return this.removeAttachment(t)}compositionControllerWillSyncDocumentView(){return this.inputController.editorWillSyncDocumentView(),this.selectionManager.lock(),this.selectionManager.clearSelection()}compositionControllerDidSyncDocumentView(){return this.inputController.editorDidSyncDocumentView(),this.selectionManager.unlock(),this.updateCurrentActions(),this.notifyEditorElement(\"sync\")}compositionControllerDidRender(){this.requestedLocationRange&&(this.compositionRevisionWhenLocationRangeRequested===this.composition.revision&&this.selectionManager.setLocationRange(this.requestedLocationRange),this.requestedLocationRange=null,this.compositionRevisionWhenLocationRangeRequested=null),this.renderedCompositionRevision!==this.composition.revision&&(this.runEditorFilters(),this.composition.updateCurrentAttributes(),this.notifyEditorElement(\"render\")),this.renderedCompositionRevision=this.composition.revision}compositionControllerDidFocus(){return this.isFocusedInvisibly()&&this.setLocationRange({index:0,offset:0}),this.toolbarController.hideDialog(),this.notifyEditorElement(\"focus\")}compositionControllerDidBlur(){return this.notifyEditorElement(\"blur\")}compositionControllerDidSelectAttachment(t,e){return this.toolbarController.hideDialog(),this.composition.editAttachment(t,e)}compositionControllerDidRequestDeselectingAttachment(t){const e=this.attachmentLocationRange||this.composition.document.getLocationRangeOfAttachment(t);return this.selectionManager.setLocationRange(e[1])}compositionControllerWillUpdateAttachment(t){return this.editor.recordUndoEntry(\"Edit Attachment\",{context:t.id,consolidatable:!0})}compositionControllerDidRequestRemovalOfAttachment(t){return this.removeAttachment(t)}inputControllerWillHandleInput(){this.handlingInput=!0,this.requestedRender=!1}inputControllerDidRequestRender(){this.requestedRender=!0}inputControllerDidHandleInput(){if(this.handlingInput=!1,this.requestedRender)return this.requestedRender=!1,this.render()}inputControllerDidAllowUnhandledInput(){return this.notifyEditorElement(\"change\")}inputControllerDidRequestReparse(){return this.reparse()}inputControllerWillPerformTyping(){return this.recordTypingUndoEntry()}inputControllerWillPerformFormatting(t){return this.recordFormattingUndoEntry(t)}inputControllerWillCutText(){return this.editor.recordUndoEntry(\"Cut\")}inputControllerWillPaste(t){return this.editor.recordUndoEntry(\"Paste\"),this.pasting=!0,this.notifyEditorElement(\"before-paste\",{paste:t})}inputControllerDidPaste(t){return t.range=this.pastedRange,this.pastedRange=null,this.pasting=null,this.notifyEditorElement(\"paste\",{paste:t})}inputControllerWillMoveText(){return this.editor.recordUndoEntry(\"Move\")}inputControllerWillAttachFiles(){return this.editor.recordUndoEntry(\"Drop Files\")}inputControllerWillPerformUndo(){return this.editor.undo()}inputControllerWillPerformRedo(){return this.editor.redo()}inputControllerDidReceiveKeyboardCommand(t){return this.toolbarController.applyKeyboardCommand(t)}inputControllerDidStartDrag(){this.locationRangeBeforeDrag=this.selectionManager.getLocationRange()}inputControllerDidReceiveDragOverPoint(t){return this.selectionManager.setLocationRangeFromPointRange(t)}inputControllerDidCancelDrag(){this.selectionManager.setLocationRange(this.locationRangeBeforeDrag),this.locationRangeBeforeDrag=null}locationRangeDidChange(t){return this.composition.updateCurrentAttributes(),this.updateCurrentActions(),this.attachmentLocationRange&&!wt(this.attachmentLocationRange,t)&&this.composition.stopEditingAttachment(),this.notifyEditorElement(\"selection-change\")}toolbarDidClickButton(){if(!this.getLocationRange())return this.setLocationRange({index:0,offset:0})}toolbarDidInvokeAction(t){return this.invokeAction(t)}toolbarDidToggleAttribute(t){if(this.recordFormattingUndoEntry(t),this.composition.toggleCurrentAttribute(t),this.render(),!this.selectionFrozen)return this.editorElement.focus()}toolbarDidUpdateAttribute(t,e){if(this.recordFormattingUndoEntry(t),this.composition.setCurrentAttribute(t,e),this.render(),!this.selectionFrozen)return this.editorElement.focus()}toolbarDidRemoveAttribute(t){if(this.recordFormattingUndoEntry(t),this.composition.removeCurrentAttribute(t),this.render(),!this.selectionFrozen)return this.editorElement.focus()}toolbarWillShowDialog(t){return this.composition.expandSelectionForEditing(),this.freezeSelection()}toolbarDidShowDialog(t){return this.notifyEditorElement(\"toolbar-dialog-show\",{dialogName:t})}toolbarDidHideDialog(t){return this.thawSelection(),this.editorElement.focus(),this.notifyEditorElement(\"toolbar-dialog-hide\",{dialogName:t})}freezeSelection(){if(!this.selectionFrozen)return this.selectionManager.lock(),this.composition.freezeSelection(),this.selectionFrozen=!0,this.render()}thawSelection(){if(this.selectionFrozen)return this.composition.thawSelection(),this.selectionManager.unlock(),this.selectionFrozen=!1,this.render()}canInvokeAction(t){return!!this.actionIsExternal(t)||!(null===(e=this.actions[t])||void 0===e||null===(e=e.test)||void 0===e||!e.call(this));var e}invokeAction(t){return this.actionIsExternal(t)?this.notifyEditorElement(\"action-invoke\",{actionName:t}):null===(e=this.actions[t])||void 0===e||null===(e=e.perform)||void 0===e?void 0:e.call(this);var e}actionIsExternal(t){return/^x-./.test(t)}getCurrentActions(){const t={};for(const e in this.actions)t[e]=this.canInvokeAction(e);return t}updateCurrentActions(){const t=this.getCurrentActions();if(!kt(t,this.currentActions))return this.currentActions=t,this.toolbarController.updateActions(this.currentActions),this.notifyEditorElement(\"actions-change\",{actions:this.currentActions})}runEditorFilters(){let t=this.composition.getSnapshot();if(Array.from(this.editor.filters).forEach((e=>{const{document:i,selectedRange:n}=t;t=e.call(this.editor,t)||{},t.document||(t.document=i),t.selectedRange||(t.selectedRange=n)})),e=t,i=this.composition.getSnapshot(),!wt(e.selectedRange,i.selectedRange)||!e.document.isEqualTo(i.document))return this.composition.loadSnapshot(t);var e,i}updateInputElement(){const t=function(t,e){const i=li[e];if(i)return i(t);throw new Error(\"unknown content type: \".concat(e))}(this.compositionController.getSerializableElement(),\"text/html\");return this.editorElement.setInputElementValue(t)}notifyEditorElement(t,e){switch(t){case\"document-change\":this.documentChangedSinceLastRender=!0;break;case\"render\":this.documentChangedSinceLastRender&&(this.documentChangedSinceLastRender=!1,this.notifyEditorElement(\"change\"));break;case\"change\":case\"attachment-add\":case\"attachment-edit\":case\"attachment-remove\":this.updateInputElement()}return this.editorElement.notify(t,e)}removeAttachment(t){return this.editor.recordUndoEntry(\"Delete Attachment\"),this.composition.removeAttachment(t),this.render()}recordFormattingUndoEntry(t){const e=gt(t),i=this.selectionManager.getLocationRange();if(e||!Dt(i))return this.editor.recordUndoEntry(\"Formatting\",{context:this.getUndoContext(),consolidatable:!0})}recordTypingUndoEntry(){return this.editor.recordUndoEntry(\"Typing\",{context:this.getUndoContext(this.currentAttributes),consolidatable:!0})}getUndoContext(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];return[this.getLocationContext(),this.getTimeContext(),...Array.from(e)]}getLocationContext(){const t=this.selectionManager.getLocationRange();return Dt(t)?t[0].index:t}getTimeContext(){return q.interval>0?Math.floor((new Date).getTime()/q.interval):0}isFocused(){var t;return this.editorElement===(null===(t=this.editorElement.ownerDocument)||void 0===t?void 0:t.activeElement)}isFocusedInvisibly(){return this.isFocused()&&!this.getLocationRange()}get actions(){return this.constructor.actions}}Ae(Rn,\"actions\",{undo:{test(){return this.editor.canUndo()},perform(){return this.editor.undo()}},redo:{test(){return this.editor.canRedo()},perform(){return this.editor.redo()}},link:{test(){return this.editor.canActivateAttribute(\"href\")}},increaseNestingLevel:{test(){return this.editor.canIncreaseNestingLevel()},perform(){return this.editor.increaseNestingLevel()&&this.render()}},decreaseNestingLevel:{test(){return this.editor.canDecreaseNestingLevel()},perform(){return this.editor.decreaseNestingLevel()&&this.render()}},attachFiles:{test:()=>!0,perform(){return M.pickFiles(this.editor.insertFiles)}}}),Rn.proxyMethod(\"getSelectionManager().setLocationRange\"),Rn.proxyMethod(\"getSelectionManager().getLocationRange\");var Sn=Object.freeze({__proto__:null,AttachmentEditorController:Pi,CompositionController:Ni,Controller:Oi,EditorController:Rn,InputController:Ki,Level0InputController:Qi,Level2InputController:on,ToolbarController:Cn}),En=Object.freeze({__proto__:null,MutationObserver:Ui,SelectionChangeObserver:Ft}),kn=Object.freeze({__proto__:null,FileVerificationOperation:Vi,ImagePreloadOperation:Ce});bt(\"trix-toolbar\",\"%t {\\n display: block;\\n}\\n\\n%t {\\n white-space: nowrap;\\n}\\n\\n%t [data-trix-dialog] {\\n display: none;\\n}\\n\\n%t [data-trix-dialog][data-trix-active] {\\n display: block;\\n}\\n\\n%t [data-trix-dialog] [data-trix-validate]:invalid {\\n background-color: #ffdddd;\\n}\");class Ln extends HTMLElement{connectedCallback(){\"\"===this.innerHTML&&(this.innerHTML=U.getDefaultHTML())}}let Dn=0;const wn=function(t){if(!t.hasAttribute(\"contenteditable\"))return t.setAttribute(\"contenteditable\",\"\"),function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.times=1,f(t,e)}(\"focus\",{onElement:t,withCallback:()=>Tn(t)})},Tn=function(t){return Bn(t),Fn(t)},Bn=function(t){var e,i;if(null!==(e=(i=document).queryCommandSupported)&&void 0!==e&&e.call(i,\"enableObjectResizing\"))return document.execCommand(\"enableObjectResizing\",!1,!1),f(\"mscontrolselect\",{onElement:t,preventDefault:!0})},Fn=function(t){var e,i;if(null!==(e=(i=document).queryCommandSupported)&&void 0!==e&&e.call(i,\"DefaultParagraphSeparator\")){const{tagName:t}=n.default;if([\"div\",\"p\"].includes(t))return document.execCommand(\"DefaultParagraphSeparator\",!1,t)}},In=a.forcesObjectResizing?{display:\"inline\",width:\"auto\"}:{display:\"inline-block\",width:\"1px\"};bt(\"trix-editor\",\"%t {\\n display: block;\\n}\\n\\n%t:empty:not(:focus)::before {\\n content: attr(placeholder);\\n color: graytext;\\n cursor: text;\\n pointer-events: none;\\n white-space: pre-line;\\n}\\n\\n%t a[contenteditable=false] {\\n cursor: text;\\n}\\n\\n%t img {\\n max-width: 100%;\\n height: auto;\\n}\\n\\n%t \".concat(e,\" figcaption textarea {\\n resize: none;\\n}\\n\\n%t \").concat(e,\" figcaption textarea.trix-autoresize-clone {\\n position: absolute;\\n left: -9999px;\\n max-height: 0px;\\n}\\n\\n%t \").concat(e,\" figcaption[data-trix-placeholder]:empty::before {\\n content: attr(data-trix-placeholder);\\n color: graytext;\\n}\\n\\n%t [data-trix-cursor-target] {\\n display: \").concat(In.display,\" !important;\\n width: \").concat(In.width,\" !important;\\n padding: 0 !important;\\n margin: 0 !important;\\n border: none !important;\\n}\\n\\n%t [data-trix-cursor-target=left] {\\n vertical-align: top !important;\\n margin-left: -1px !important;\\n}\\n\\n%t [data-trix-cursor-target=right] {\\n vertical-align: bottom !important;\\n margin-right: -1px !important;\\n}\"));class Pn extends HTMLElement{get trixId(){return this.hasAttribute(\"trix-id\")?this.getAttribute(\"trix-id\"):(this.setAttribute(\"trix-id\",++Dn),this.trixId)}get labels(){const t=[];this.id&&this.ownerDocument&&t.push(...Array.from(this.ownerDocument.querySelectorAll(\"label[for='\".concat(this.id,\"']\"))||[]));const e=A(this,{matchingSelector:\"label\"});return e&&[this,null].includes(e.control)&&t.push(e),t}get toolbarElement(){var t;if(this.hasAttribute(\"toolbar\"))return null===(t=this.ownerDocument)||void 0===t?void 0:t.getElementById(this.getAttribute(\"toolbar\"));if(this.parentNode){const t=\"trix-toolbar-\".concat(this.trixId);this.setAttribute(\"toolbar\",t);const e=k(\"trix-toolbar\",{id:t});return this.parentNode.insertBefore(e,this),e}}get form(){var t;return null===(t=this.inputElement)||void 0===t?void 0:t.form}get inputElement(){var t;if(this.hasAttribute(\"input\"))return null===(t=this.ownerDocument)||void 0===t?void 0:t.getElementById(this.getAttribute(\"input\"));if(this.parentNode){const t=\"trix-input-\".concat(this.trixId);this.setAttribute(\"input\",t);const e=k(\"input\",{type:\"hidden\",id:t});return this.parentNode.insertBefore(e,this.nextElementSibling),e}}get editor(){var t;return null===(t=this.editorController)||void 0===t?void 0:t.editor}get name(){var t;return null===(t=this.inputElement)||void 0===t?void 0:t.name}get value(){var t;return null===(t=this.inputElement)||void 0===t?void 0:t.value}set value(t){var e;this.defaultValue=t,null===(e=this.editor)||void 0===e||e.loadHTML(this.defaultValue)}notify(t,e){if(this.editorController)return b(\"trix-\".concat(t),{onElement:this,attributes:e})}setInputElementValue(t){this.inputElement&&(this.inputElement.value=t)}connectedCallback(){this.hasAttribute(\"data-trix-internal\")||(wn(this),function(t){if(!t.hasAttribute(\"role\"))t.setAttribute(\"role\",\"textbox\")}(this),function(t){if(t.hasAttribute(\"aria-label\")||t.hasAttribute(\"aria-labelledby\"))return;const e=function(){const e=Array.from(t.labels).map((e=>{if(!e.contains(t))return e.textContent})).filter((t=>t)),i=e.join(\" \");return i?t.setAttribute(\"aria-label\",i):t.removeAttribute(\"aria-label\")};e(),f(\"focus\",{onElement:t,withCallback:e})}(this),this.editorController||(b(\"trix-before-initialize\",{onElement:this}),this.editorController=new Rn({editorElement:this,html:this.defaultValue=this.value}),requestAnimationFrame((()=>b(\"trix-initialize\",{onElement:this})))),this.editorController.registerSelectionManager(),this.registerResetListener(),this.registerClickListener(),function(t){if(!document.querySelector(\":focus\")&&t.hasAttribute(\"autofocus\")&&document.querySelector(\"[autofocus]\")===t)t.focus()}(this))}disconnectedCallback(){var t;return null===(t=this.editorController)||void 0===t||t.unregisterSelectionManager(),this.unregisterResetListener(),this.unregisterClickListener()}registerResetListener(){return this.resetListener=this.resetBubbled.bind(this),window.addEventListener(\"reset\",this.resetListener,!1)}unregisterResetListener(){return window.removeEventListener(\"reset\",this.resetListener,!1)}registerClickListener(){return this.clickListener=this.clickBubbled.bind(this),window.addEventListener(\"click\",this.clickListener,!1)}unregisterClickListener(){return window.removeEventListener(\"click\",this.clickListener,!1)}resetBubbled(t){if(!t.defaultPrevented&&t.target===this.form)return this.reset()}clickBubbled(t){if(t.defaultPrevented)return;if(this.contains(t.target))return;const e=A(t.target,{matchingSelector:\"label\"});return e&&Array.from(this.labels).includes(e)?this.focus():void 0}reset(){this.value=this.defaultValue}}const Nn={VERSION:t,config:V,core:ci,models:Di,views:wi,controllers:Sn,observers:En,operations:kn,elements:Object.freeze({__proto__:null,TrixEditorElement:Pn,TrixToolbarElement:Ln}),filters:Object.freeze({__proto__:null,Filter:bi,attachmentGalleryFilter:vi})};Object.assign(Nn,Di),window.Trix=Nn,setTimeout((function(){customElements.get(\"trix-toolbar\")||customElements.define(\"trix-toolbar\",Ln),customElements.get(\"trix-editor\")||customElements.define(\"trix-editor\",Pn)}),0);export{Nn as default};\n//# sourceMappingURL=trix.esm.min.js.map\n", "var sparkMd5 = {\n exports: {}\n};\n\n(function(module, exports) {\n (function(factory) {\n {\n module.exports = factory();\n }\n })((function(undefined$1) {\n var hex_chr = [ \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\" ];\n function md5cycle(x, k) {\n var a = x[0], b = x[1], c = x[2], d = x[3];\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n function md5blk(s) {\n var md5blks = [], i;\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n return md5blks;\n }\n function md5blk_array(a) {\n var md5blks = [], i;\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n return md5blks;\n }\n function md51(s) {\n var n = s.length, state = [ 1732584193, -271733879, -1732584194, 271733878 ], i, length, tail, tmp, lo, hi;\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n s = s.substring(i - 64);\n length = s.length;\n tail = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n }\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n function md51_array(a) {\n var n = a.length, state = [ 1732584193, -271733879, -1732584194, 271733878 ], i, length, tail, tmp, lo, hi;\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);\n length = a.length;\n tail = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << (i % 4 << 3);\n }\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n function rhex(n) {\n var s = \"\", j;\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];\n }\n return s;\n }\n function hex(x) {\n var i;\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n return x.join(\"\");\n }\n if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n (function() {\n function clamp(val, length) {\n val = val | 0 || 0;\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n return Math.min(val, length);\n }\n ArrayBuffer.prototype.slice = function(from, to) {\n var length = this.byteLength, begin = clamp(from, length), end = length, num, target, targetArray, sourceArray;\n if (to !== undefined$1) {\n end = clamp(to, length);\n }\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n return target;\n };\n })();\n }\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n return str;\n }\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length, buff = new ArrayBuffer(length), arr = new Uint8Array(buff), i;\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n return returnUInt8Array ? arr : buff;\n }\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n return returnUInt8Array ? result : result.buffer;\n }\n function hexToBinaryString(hex) {\n var bytes = [], length = hex.length, x;\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n return String.fromCharCode.apply(String, bytes);\n }\n function SparkMD5() {\n this.reset();\n }\n SparkMD5.prototype.append = function(str) {\n this.appendBinary(toUtf8(str));\n return this;\n };\n SparkMD5.prototype.appendBinary = function(contents) {\n this._buff += contents;\n this._length += contents.length;\n var length = this._buff.length, i;\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n this._buff = this._buff.substring(i - 64);\n return this;\n };\n SparkMD5.prototype.end = function(raw) {\n var buff = this._buff, length = buff.length, i, tail = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], ret;\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n }\n this._finish(tail, length);\n ret = hex(this._hash);\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n this.reset();\n return ret;\n };\n SparkMD5.prototype.reset = function() {\n this._buff = \"\";\n this._length = 0;\n this._hash = [ 1732584193, -271733879, -1732584194, 271733878 ];\n return this;\n };\n SparkMD5.prototype.getState = function() {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash.slice()\n };\n };\n SparkMD5.prototype.setState = function(state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n return this;\n };\n SparkMD5.prototype.destroy = function() {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n SparkMD5.prototype._finish = function(tail, length) {\n var i = length, tmp, lo, hi;\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(this._hash, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n SparkMD5.hash = function(str, raw) {\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n SparkMD5.hashBinary = function(content, raw) {\n var hash = md51(content), ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n SparkMD5.ArrayBuffer = function() {\n this.reset();\n };\n SparkMD5.ArrayBuffer.prototype.append = function(arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true), length = buff.length, i;\n this._length += arr.byteLength;\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n return this;\n };\n SparkMD5.ArrayBuffer.prototype.end = function(raw) {\n var buff = this._buff, length = buff.length, tail = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], i, ret;\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << (i % 4 << 3);\n }\n this._finish(tail, length);\n ret = hex(this._hash);\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n this.reset();\n return ret;\n };\n SparkMD5.ArrayBuffer.prototype.reset = function() {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [ 1732584193, -271733879, -1732584194, 271733878 ];\n return this;\n };\n SparkMD5.ArrayBuffer.prototype.getState = function() {\n var state = SparkMD5.prototype.getState.call(this);\n state.buff = arrayBuffer2Utf8Str(state.buff);\n return state;\n };\n SparkMD5.ArrayBuffer.prototype.setState = function(state) {\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n return SparkMD5.prototype.setState.call(this, state);\n };\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n SparkMD5.ArrayBuffer.hash = function(arr, raw) {\n var hash = md51_array(new Uint8Array(arr)), ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n return SparkMD5;\n }));\n})(sparkMd5);\n\nvar SparkMD5 = sparkMd5.exports;\n\nconst fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n\nclass FileChecksum {\n static create(file, callback) {\n const instance = new FileChecksum(file);\n instance.create(callback);\n }\n constructor(file) {\n this.file = file;\n this.chunkSize = 2097152;\n this.chunkCount = Math.ceil(this.file.size / this.chunkSize);\n this.chunkIndex = 0;\n }\n create(callback) {\n this.callback = callback;\n this.md5Buffer = new SparkMD5.ArrayBuffer;\n this.fileReader = new FileReader;\n this.fileReader.addEventListener(\"load\", (event => this.fileReaderDidLoad(event)));\n this.fileReader.addEventListener(\"error\", (event => this.fileReaderDidError(event)));\n this.readNextChunk();\n }\n fileReaderDidLoad(event) {\n this.md5Buffer.append(event.target.result);\n if (!this.readNextChunk()) {\n const binaryDigest = this.md5Buffer.end(true);\n const base64digest = btoa(binaryDigest);\n this.callback(null, base64digest);\n }\n }\n fileReaderDidError(event) {\n this.callback(`Error reading ${this.file.name}`);\n }\n readNextChunk() {\n if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {\n const start = this.chunkIndex * this.chunkSize;\n const end = Math.min(start + this.chunkSize, this.file.size);\n const bytes = fileSlice.call(this.file, start, end);\n this.fileReader.readAsArrayBuffer(bytes);\n this.chunkIndex++;\n return true;\n } else {\n return false;\n }\n }\n}\n\nfunction getMetaValue(name) {\n const element = findElement(document.head, `meta[name=\"${name}\"]`);\n if (element) {\n return element.getAttribute(\"content\");\n }\n}\n\nfunction findElements(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n const elements = root.querySelectorAll(selector);\n return toArray(elements);\n}\n\nfunction findElement(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n return root.querySelector(selector);\n}\n\nfunction dispatchEvent(element, type, eventInit = {}) {\n const {disabled: disabled} = element;\n const {bubbles: bubbles, cancelable: cancelable, detail: detail} = eventInit;\n const event = document.createEvent(\"Event\");\n event.initEvent(type, bubbles || true, cancelable || true);\n event.detail = detail || {};\n try {\n element.disabled = false;\n element.dispatchEvent(event);\n } finally {\n element.disabled = disabled;\n }\n return event;\n}\n\nfunction toArray(value) {\n if (Array.isArray(value)) {\n return value;\n } else if (Array.from) {\n return Array.from(value);\n } else {\n return [].slice.call(value);\n }\n}\n\nclass BlobRecord {\n constructor(file, checksum, url, customHeaders = {}) {\n this.file = file;\n this.attributes = {\n filename: file.name,\n content_type: file.type || \"application/octet-stream\",\n byte_size: file.size,\n checksum: checksum\n };\n this.xhr = new XMLHttpRequest;\n this.xhr.open(\"POST\", url, true);\n this.xhr.responseType = \"json\";\n this.xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n this.xhr.setRequestHeader(\"Accept\", \"application/json\");\n this.xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n Object.keys(customHeaders).forEach((headerKey => {\n this.xhr.setRequestHeader(headerKey, customHeaders[headerKey]);\n }));\n const csrfToken = getMetaValue(\"csrf-token\");\n if (csrfToken != undefined) {\n this.xhr.setRequestHeader(\"X-CSRF-Token\", csrfToken);\n }\n this.xhr.addEventListener(\"load\", (event => this.requestDidLoad(event)));\n this.xhr.addEventListener(\"error\", (event => this.requestDidError(event)));\n }\n get status() {\n return this.xhr.status;\n }\n get response() {\n const {responseType: responseType, response: response} = this.xhr;\n if (responseType == \"json\") {\n return response;\n } else {\n return JSON.parse(response);\n }\n }\n create(callback) {\n this.callback = callback;\n this.xhr.send(JSON.stringify({\n blob: this.attributes\n }));\n }\n requestDidLoad(event) {\n if (this.status >= 200 && this.status < 300) {\n const {response: response} = this;\n const {direct_upload: direct_upload} = response;\n delete response.direct_upload;\n this.attributes = response;\n this.directUploadData = direct_upload;\n this.callback(null, this.toJSON());\n } else {\n this.requestDidError(event);\n }\n }\n requestDidError(event) {\n this.callback(`Error creating Blob for \"${this.file.name}\". Status: ${this.status}`);\n }\n toJSON() {\n const result = {};\n for (const key in this.attributes) {\n result[key] = this.attributes[key];\n }\n return result;\n }\n}\n\nclass BlobUpload {\n constructor(blob) {\n this.blob = blob;\n this.file = blob.file;\n const {url: url, headers: headers} = blob.directUploadData;\n this.xhr = new XMLHttpRequest;\n this.xhr.open(\"PUT\", url, true);\n this.xhr.responseType = \"text\";\n for (const key in headers) {\n this.xhr.setRequestHeader(key, headers[key]);\n }\n this.xhr.addEventListener(\"load\", (event => this.requestDidLoad(event)));\n this.xhr.addEventListener(\"error\", (event => this.requestDidError(event)));\n }\n create(callback) {\n this.callback = callback;\n this.xhr.send(this.file.slice());\n }\n requestDidLoad(event) {\n const {status: status, response: response} = this.xhr;\n if (status >= 200 && status < 300) {\n this.callback(null, response);\n } else {\n this.requestDidError(event);\n }\n }\n requestDidError(event) {\n this.callback(`Error storing \"${this.file.name}\". Status: ${this.xhr.status}`);\n }\n}\n\nlet id = 0;\n\nclass DirectUpload {\n constructor(file, url, delegate, customHeaders = {}) {\n this.id = ++id;\n this.file = file;\n this.url = url;\n this.delegate = delegate;\n this.customHeaders = customHeaders;\n }\n create(callback) {\n FileChecksum.create(this.file, ((error, checksum) => {\n if (error) {\n callback(error);\n return;\n }\n const blob = new BlobRecord(this.file, checksum, this.url, this.customHeaders);\n notify(this.delegate, \"directUploadWillCreateBlobWithXHR\", blob.xhr);\n blob.create((error => {\n if (error) {\n callback(error);\n } else {\n const upload = new BlobUpload(blob);\n notify(this.delegate, \"directUploadWillStoreFileWithXHR\", upload.xhr);\n upload.create((error => {\n if (error) {\n callback(error);\n } else {\n callback(null, blob.toJSON());\n }\n }));\n }\n }));\n }));\n }\n}\n\nfunction notify(object, methodName, ...messages) {\n if (object && typeof object[methodName] == \"function\") {\n return object[methodName](...messages);\n }\n}\n\nclass DirectUploadController {\n constructor(input, file) {\n this.input = input;\n this.file = file;\n this.directUpload = new DirectUpload(this.file, this.url, this);\n this.dispatch(\"initialize\");\n }\n start(callback) {\n const hiddenInput = document.createElement(\"input\");\n hiddenInput.type = \"hidden\";\n hiddenInput.name = this.input.name;\n this.input.insertAdjacentElement(\"beforebegin\", hiddenInput);\n this.dispatch(\"start\");\n this.directUpload.create(((error, attributes) => {\n if (error) {\n hiddenInput.parentNode.removeChild(hiddenInput);\n this.dispatchError(error);\n } else {\n hiddenInput.value = attributes.signed_id;\n }\n this.dispatch(\"end\");\n callback(error);\n }));\n }\n uploadRequestDidProgress(event) {\n const progress = event.loaded / event.total * 100;\n if (progress) {\n this.dispatch(\"progress\", {\n progress: progress\n });\n }\n }\n get url() {\n return this.input.getAttribute(\"data-direct-upload-url\");\n }\n dispatch(name, detail = {}) {\n detail.file = this.file;\n detail.id = this.directUpload.id;\n return dispatchEvent(this.input, `direct-upload:${name}`, {\n detail: detail\n });\n }\n dispatchError(error) {\n const event = this.dispatch(\"error\", {\n error: error\n });\n if (!event.defaultPrevented) {\n alert(error);\n }\n }\n directUploadWillCreateBlobWithXHR(xhr) {\n this.dispatch(\"before-blob-request\", {\n xhr: xhr\n });\n }\n directUploadWillStoreFileWithXHR(xhr) {\n this.dispatch(\"before-storage-request\", {\n xhr: xhr\n });\n xhr.upload.addEventListener(\"progress\", (event => this.uploadRequestDidProgress(event)));\n }\n}\n\nconst inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n\nclass DirectUploadsController {\n constructor(form) {\n this.form = form;\n this.inputs = findElements(form, inputSelector).filter((input => input.files.length));\n }\n start(callback) {\n const controllers = this.createDirectUploadControllers();\n const startNextController = () => {\n const controller = controllers.shift();\n if (controller) {\n controller.start((error => {\n if (error) {\n callback(error);\n this.dispatch(\"end\");\n } else {\n startNextController();\n }\n }));\n } else {\n callback();\n this.dispatch(\"end\");\n }\n };\n this.dispatch(\"start\");\n startNextController();\n }\n createDirectUploadControllers() {\n const controllers = [];\n this.inputs.forEach((input => {\n toArray(input.files).forEach((file => {\n const controller = new DirectUploadController(input, file);\n controllers.push(controller);\n }));\n }));\n return controllers;\n }\n dispatch(name, detail = {}) {\n return dispatchEvent(this.form, `direct-uploads:${name}`, {\n detail: detail\n });\n }\n}\n\nconst processingAttribute = \"data-direct-uploads-processing\";\n\nconst submitButtonsByForm = new WeakMap;\n\nlet started = false;\n\nfunction start() {\n if (!started) {\n started = true;\n document.addEventListener(\"click\", didClick, true);\n document.addEventListener(\"submit\", didSubmitForm, true);\n document.addEventListener(\"ajax:before\", didSubmitRemoteElement);\n }\n}\n\nfunction didClick(event) {\n const button = event.target.closest(\"button, input\");\n if (button && button.type === \"submit\" && button.form) {\n submitButtonsByForm.set(button.form, button);\n }\n}\n\nfunction didSubmitForm(event) {\n handleFormSubmissionEvent(event);\n}\n\nfunction didSubmitRemoteElement(event) {\n if (event.target.tagName == \"FORM\") {\n handleFormSubmissionEvent(event);\n }\n}\n\nfunction handleFormSubmissionEvent(event) {\n const form = event.target;\n if (form.hasAttribute(processingAttribute)) {\n event.preventDefault();\n return;\n }\n const controller = new DirectUploadsController(form);\n const {inputs: inputs} = controller;\n if (inputs.length) {\n event.preventDefault();\n form.setAttribute(processingAttribute, \"\");\n inputs.forEach(disable);\n controller.start((error => {\n form.removeAttribute(processingAttribute);\n if (error) {\n inputs.forEach(enable);\n } else {\n submitForm(form);\n }\n }));\n }\n}\n\nfunction submitForm(form) {\n let button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n if (button) {\n const {disabled: disabled} = button;\n button.disabled = false;\n button.focus();\n button.click();\n button.disabled = disabled;\n } else {\n button = document.createElement(\"input\");\n button.type = \"submit\";\n button.style.display = \"none\";\n form.appendChild(button);\n button.click();\n form.removeChild(button);\n }\n submitButtonsByForm.delete(form);\n}\n\nfunction disable(input) {\n input.disabled = true;\n}\n\nfunction enable(input) {\n input.disabled = false;\n}\n\nfunction autostart() {\n if (window.ActiveStorage) {\n start();\n }\n}\n\nsetTimeout(autostart, 1);\n\nclass AttachmentUpload {\n constructor(attachment, element) {\n this.attachment = attachment;\n this.element = element;\n this.directUpload = new DirectUpload(attachment.file, this.directUploadUrl, this);\n }\n start() {\n this.directUpload.create(this.directUploadDidComplete.bind(this));\n }\n directUploadWillStoreFileWithXHR(xhr) {\n xhr.upload.addEventListener(\"progress\", (event => {\n const progress = event.loaded / event.total * 100;\n this.attachment.setUploadProgress(progress);\n }));\n }\n directUploadDidComplete(error, attributes) {\n if (error) {\n throw new Error(`Direct upload failed: ${error}`);\n }\n this.attachment.setAttributes({\n sgid: attributes.attachable_sgid,\n url: this.createBlobUrl(attributes.signed_id, attributes.filename)\n });\n }\n createBlobUrl(signedId, filename) {\n return this.blobUrlTemplate.replace(\":signed_id\", signedId).replace(\":filename\", encodeURIComponent(filename));\n }\n get directUploadUrl() {\n return this.element.dataset.directUploadUrl;\n }\n get blobUrlTemplate() {\n return this.element.dataset.blobUrlTemplate;\n }\n}\n\naddEventListener(\"trix-attachment-add\", (event => {\n const {attachment: attachment, target: target} = event;\n if (attachment.file) {\n const upload = new AttachmentUpload(attachment, target);\n upload.start();\n }\n}));\n", "/*\nTurbo 7.3.0\nCopyright \u00A9 2023 37signals LLC\n */\n(function () {\n if (window.Reflect === undefined ||\n window.customElements === undefined ||\n window.customElements.polyfillWrapFlushCallback) {\n return;\n }\n const BuiltInHTMLElement = HTMLElement;\n const wrapperForTheName = {\n HTMLElement: function HTMLElement() {\n return Reflect.construct(BuiltInHTMLElement, [], this.constructor);\n },\n };\n window.HTMLElement = wrapperForTheName[\"HTMLElement\"];\n HTMLElement.prototype = BuiltInHTMLElement.prototype;\n HTMLElement.prototype.constructor = HTMLElement;\n Object.setPrototypeOf(HTMLElement, BuiltInHTMLElement);\n})();\n\n/**\n * The MIT License (MIT)\n * \n * Copyright (c) 2019 Javan Makhmali\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\n(function(prototype) {\n if (typeof prototype.requestSubmit == \"function\") return\n\n prototype.requestSubmit = function(submitter) {\n if (submitter) {\n validateSubmitter(submitter, this);\n submitter.click();\n } else {\n submitter = document.createElement(\"input\");\n submitter.type = \"submit\";\n submitter.hidden = true;\n this.appendChild(submitter);\n submitter.click();\n this.removeChild(submitter);\n }\n };\n\n function validateSubmitter(submitter, form) {\n submitter instanceof HTMLElement || raise(TypeError, \"parameter 1 is not of type 'HTMLElement'\");\n submitter.type == \"submit\" || raise(TypeError, \"The specified element is not a submit button\");\n submitter.form == form || raise(DOMException, \"The specified element is not owned by this form element\", \"NotFoundError\");\n }\n\n function raise(errorConstructor, message, name) {\n throw new errorConstructor(\"Failed to execute 'requestSubmit' on 'HTMLFormElement': \" + message + \".\", name)\n }\n})(HTMLFormElement.prototype);\n\nconst submittersByForm = new WeakMap();\nfunction findSubmitterFromClickTarget(target) {\n const element = target instanceof Element ? target : target instanceof Node ? target.parentElement : null;\n const candidate = element ? element.closest(\"input, button\") : null;\n return (candidate === null || candidate === void 0 ? void 0 : candidate.type) == \"submit\" ? candidate : null;\n}\nfunction clickCaptured(event) {\n const submitter = findSubmitterFromClickTarget(event.target);\n if (submitter && submitter.form) {\n submittersByForm.set(submitter.form, submitter);\n }\n}\n(function () {\n if (\"submitter\" in Event.prototype)\n return;\n let prototype = window.Event.prototype;\n if (\"SubmitEvent\" in window && /Apple Computer/.test(navigator.vendor)) {\n prototype = window.SubmitEvent.prototype;\n }\n else if (\"SubmitEvent\" in window) {\n return;\n }\n addEventListener(\"click\", clickCaptured, true);\n Object.defineProperty(prototype, \"submitter\", {\n get() {\n if (this.type == \"submit\" && this.target instanceof HTMLFormElement) {\n return submittersByForm.get(this.target);\n }\n },\n });\n})();\n\nvar FrameLoadingStyle;\n(function (FrameLoadingStyle) {\n FrameLoadingStyle[\"eager\"] = \"eager\";\n FrameLoadingStyle[\"lazy\"] = \"lazy\";\n})(FrameLoadingStyle || (FrameLoadingStyle = {}));\nclass FrameElement extends HTMLElement {\n static get observedAttributes() {\n return [\"disabled\", \"complete\", \"loading\", \"src\"];\n }\n constructor() {\n super();\n this.loaded = Promise.resolve();\n this.delegate = new FrameElement.delegateConstructor(this);\n }\n connectedCallback() {\n this.delegate.connect();\n }\n disconnectedCallback() {\n this.delegate.disconnect();\n }\n reload() {\n return this.delegate.sourceURLReloaded();\n }\n attributeChangedCallback(name) {\n if (name == \"loading\") {\n this.delegate.loadingStyleChanged();\n }\n else if (name == \"complete\") {\n this.delegate.completeChanged();\n }\n else if (name == \"src\") {\n this.delegate.sourceURLChanged();\n }\n else {\n this.delegate.disabledChanged();\n }\n }\n get src() {\n return this.getAttribute(\"src\");\n }\n set src(value) {\n if (value) {\n this.setAttribute(\"src\", value);\n }\n else {\n this.removeAttribute(\"src\");\n }\n }\n get loading() {\n return frameLoadingStyleFromString(this.getAttribute(\"loading\") || \"\");\n }\n set loading(value) {\n if (value) {\n this.setAttribute(\"loading\", value);\n }\n else {\n this.removeAttribute(\"loading\");\n }\n }\n get disabled() {\n return this.hasAttribute(\"disabled\");\n }\n set disabled(value) {\n if (value) {\n this.setAttribute(\"disabled\", \"\");\n }\n else {\n this.removeAttribute(\"disabled\");\n }\n }\n get autoscroll() {\n return this.hasAttribute(\"autoscroll\");\n }\n set autoscroll(value) {\n if (value) {\n this.setAttribute(\"autoscroll\", \"\");\n }\n else {\n this.removeAttribute(\"autoscroll\");\n }\n }\n get complete() {\n return !this.delegate.isLoading;\n }\n get isActive() {\n return this.ownerDocument === document && !this.isPreview;\n }\n get isPreview() {\n var _a, _b;\n return (_b = (_a = this.ownerDocument) === null || _a === void 0 ? void 0 : _a.documentElement) === null || _b === void 0 ? void 0 : _b.hasAttribute(\"data-turbo-preview\");\n }\n}\nfunction frameLoadingStyleFromString(style) {\n switch (style.toLowerCase()) {\n case \"lazy\":\n return FrameLoadingStyle.lazy;\n default:\n return FrameLoadingStyle.eager;\n }\n}\n\nfunction expandURL(locatable) {\n return new URL(locatable.toString(), document.baseURI);\n}\nfunction getAnchor(url) {\n let anchorMatch;\n if (url.hash) {\n return url.hash.slice(1);\n }\n else if ((anchorMatch = url.href.match(/#(.*)$/))) {\n return anchorMatch[1];\n }\n}\nfunction getAction(form, submitter) {\n const action = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"formaction\")) || form.getAttribute(\"action\") || form.action;\n return expandURL(action);\n}\nfunction getExtension(url) {\n return (getLastPathComponent(url).match(/\\.[^.]*$/) || [])[0] || \"\";\n}\nfunction isHTML(url) {\n return !!getExtension(url).match(/^(?:|\\.(?:htm|html|xhtml|php))$/);\n}\nfunction isPrefixedBy(baseURL, url) {\n const prefix = getPrefix(url);\n return baseURL.href === expandURL(prefix).href || baseURL.href.startsWith(prefix);\n}\nfunction locationIsVisitable(location, rootLocation) {\n return isPrefixedBy(location, rootLocation) && isHTML(location);\n}\nfunction getRequestURL(url) {\n const anchor = getAnchor(url);\n return anchor != null ? url.href.slice(0, -(anchor.length + 1)) : url.href;\n}\nfunction toCacheKey(url) {\n return getRequestURL(url);\n}\nfunction urlsAreEqual(left, right) {\n return expandURL(left).href == expandURL(right).href;\n}\nfunction getPathComponents(url) {\n return url.pathname.split(\"/\").slice(1);\n}\nfunction getLastPathComponent(url) {\n return getPathComponents(url).slice(-1)[0];\n}\nfunction getPrefix(url) {\n return addTrailingSlash(url.origin + url.pathname);\n}\nfunction addTrailingSlash(value) {\n return value.endsWith(\"/\") ? value : value + \"/\";\n}\n\nclass FetchResponse {\n constructor(response) {\n this.response = response;\n }\n get succeeded() {\n return this.response.ok;\n }\n get failed() {\n return !this.succeeded;\n }\n get clientError() {\n return this.statusCode >= 400 && this.statusCode <= 499;\n }\n get serverError() {\n return this.statusCode >= 500 && this.statusCode <= 599;\n }\n get redirected() {\n return this.response.redirected;\n }\n get location() {\n return expandURL(this.response.url);\n }\n get isHTML() {\n return this.contentType && this.contentType.match(/^(?:text\\/([^\\s;,]+\\b)?html|application\\/xhtml\\+xml)\\b/);\n }\n get statusCode() {\n return this.response.status;\n }\n get contentType() {\n return this.header(\"Content-Type\");\n }\n get responseText() {\n return this.response.clone().text();\n }\n get responseHTML() {\n if (this.isHTML) {\n return this.response.clone().text();\n }\n else {\n return Promise.resolve(undefined);\n }\n }\n header(name) {\n return this.response.headers.get(name);\n }\n}\n\nfunction activateScriptElement(element) {\n if (element.getAttribute(\"data-turbo-eval\") == \"false\") {\n return element;\n }\n else {\n const createdScriptElement = document.createElement(\"script\");\n const cspNonce = getMetaContent(\"csp-nonce\");\n if (cspNonce) {\n createdScriptElement.nonce = cspNonce;\n }\n createdScriptElement.textContent = element.textContent;\n createdScriptElement.async = false;\n copyElementAttributes(createdScriptElement, element);\n return createdScriptElement;\n }\n}\nfunction copyElementAttributes(destinationElement, sourceElement) {\n for (const { name, value } of sourceElement.attributes) {\n destinationElement.setAttribute(name, value);\n }\n}\nfunction createDocumentFragment(html) {\n const template = document.createElement(\"template\");\n template.innerHTML = html;\n return template.content;\n}\nfunction dispatch(eventName, { target, cancelable, detail } = {}) {\n const event = new CustomEvent(eventName, {\n cancelable,\n bubbles: true,\n composed: true,\n detail,\n });\n if (target && target.isConnected) {\n target.dispatchEvent(event);\n }\n else {\n document.documentElement.dispatchEvent(event);\n }\n return event;\n}\nfunction nextAnimationFrame() {\n return new Promise((resolve) => requestAnimationFrame(() => resolve()));\n}\nfunction nextEventLoopTick() {\n return new Promise((resolve) => setTimeout(() => resolve(), 0));\n}\nfunction nextMicrotask() {\n return Promise.resolve();\n}\nfunction parseHTMLDocument(html = \"\") {\n return new DOMParser().parseFromString(html, \"text/html\");\n}\nfunction unindent(strings, ...values) {\n const lines = interpolate(strings, values).replace(/^\\n/, \"\").split(\"\\n\");\n const match = lines[0].match(/^\\s+/);\n const indent = match ? match[0].length : 0;\n return lines.map((line) => line.slice(indent)).join(\"\\n\");\n}\nfunction interpolate(strings, values) {\n return strings.reduce((result, string, i) => {\n const value = values[i] == undefined ? \"\" : values[i];\n return result + string + value;\n }, \"\");\n}\nfunction uuid() {\n return Array.from({ length: 36 })\n .map((_, i) => {\n if (i == 8 || i == 13 || i == 18 || i == 23) {\n return \"-\";\n }\n else if (i == 14) {\n return \"4\";\n }\n else if (i == 19) {\n return (Math.floor(Math.random() * 4) + 8).toString(16);\n }\n else {\n return Math.floor(Math.random() * 15).toString(16);\n }\n })\n .join(\"\");\n}\nfunction getAttribute(attributeName, ...elements) {\n for (const value of elements.map((element) => element === null || element === void 0 ? void 0 : element.getAttribute(attributeName))) {\n if (typeof value == \"string\")\n return value;\n }\n return null;\n}\nfunction hasAttribute(attributeName, ...elements) {\n return elements.some((element) => element && element.hasAttribute(attributeName));\n}\nfunction markAsBusy(...elements) {\n for (const element of elements) {\n if (element.localName == \"turbo-frame\") {\n element.setAttribute(\"busy\", \"\");\n }\n element.setAttribute(\"aria-busy\", \"true\");\n }\n}\nfunction clearBusyState(...elements) {\n for (const element of elements) {\n if (element.localName == \"turbo-frame\") {\n element.removeAttribute(\"busy\");\n }\n element.removeAttribute(\"aria-busy\");\n }\n}\nfunction waitForLoad(element, timeoutInMilliseconds = 2000) {\n return new Promise((resolve) => {\n const onComplete = () => {\n element.removeEventListener(\"error\", onComplete);\n element.removeEventListener(\"load\", onComplete);\n resolve();\n };\n element.addEventListener(\"load\", onComplete, { once: true });\n element.addEventListener(\"error\", onComplete, { once: true });\n setTimeout(resolve, timeoutInMilliseconds);\n });\n}\nfunction getHistoryMethodForAction(action) {\n switch (action) {\n case \"replace\":\n return history.replaceState;\n case \"advance\":\n case \"restore\":\n return history.pushState;\n }\n}\nfunction isAction(action) {\n return action == \"advance\" || action == \"replace\" || action == \"restore\";\n}\nfunction getVisitAction(...elements) {\n const action = getAttribute(\"data-turbo-action\", ...elements);\n return isAction(action) ? action : null;\n}\nfunction getMetaElement(name) {\n return document.querySelector(`meta[name=\"${name}\"]`);\n}\nfunction getMetaContent(name) {\n const element = getMetaElement(name);\n return element && element.content;\n}\nfunction setMetaContent(name, content) {\n let element = getMetaElement(name);\n if (!element) {\n element = document.createElement(\"meta\");\n element.setAttribute(\"name\", name);\n document.head.appendChild(element);\n }\n element.setAttribute(\"content\", content);\n return element;\n}\nfunction findClosestRecursively(element, selector) {\n var _a;\n if (element instanceof Element) {\n return (element.closest(selector) ||\n findClosestRecursively(element.assignedSlot || ((_a = element.getRootNode()) === null || _a === void 0 ? void 0 : _a.host), selector));\n }\n}\n\nvar FetchMethod;\n(function (FetchMethod) {\n FetchMethod[FetchMethod[\"get\"] = 0] = \"get\";\n FetchMethod[FetchMethod[\"post\"] = 1] = \"post\";\n FetchMethod[FetchMethod[\"put\"] = 2] = \"put\";\n FetchMethod[FetchMethod[\"patch\"] = 3] = \"patch\";\n FetchMethod[FetchMethod[\"delete\"] = 4] = \"delete\";\n})(FetchMethod || (FetchMethod = {}));\nfunction fetchMethodFromString(method) {\n switch (method.toLowerCase()) {\n case \"get\":\n return FetchMethod.get;\n case \"post\":\n return FetchMethod.post;\n case \"put\":\n return FetchMethod.put;\n case \"patch\":\n return FetchMethod.patch;\n case \"delete\":\n return FetchMethod.delete;\n }\n}\nclass FetchRequest {\n constructor(delegate, method, location, body = new URLSearchParams(), target = null) {\n this.abortController = new AbortController();\n this.resolveRequestPromise = (_value) => { };\n this.delegate = delegate;\n this.method = method;\n this.headers = this.defaultHeaders;\n this.body = body;\n this.url = location;\n this.target = target;\n }\n get location() {\n return this.url;\n }\n get params() {\n return this.url.searchParams;\n }\n get entries() {\n return this.body ? Array.from(this.body.entries()) : [];\n }\n cancel() {\n this.abortController.abort();\n }\n async perform() {\n const { fetchOptions } = this;\n this.delegate.prepareRequest(this);\n await this.allowRequestToBeIntercepted(fetchOptions);\n try {\n this.delegate.requestStarted(this);\n const response = await fetch(this.url.href, fetchOptions);\n return await this.receive(response);\n }\n catch (error) {\n if (error.name !== \"AbortError\") {\n if (this.willDelegateErrorHandling(error)) {\n this.delegate.requestErrored(this, error);\n }\n throw error;\n }\n }\n finally {\n this.delegate.requestFinished(this);\n }\n }\n async receive(response) {\n const fetchResponse = new FetchResponse(response);\n const event = dispatch(\"turbo:before-fetch-response\", {\n cancelable: true,\n detail: { fetchResponse },\n target: this.target,\n });\n if (event.defaultPrevented) {\n this.delegate.requestPreventedHandlingResponse(this, fetchResponse);\n }\n else if (fetchResponse.succeeded) {\n this.delegate.requestSucceededWithResponse(this, fetchResponse);\n }\n else {\n this.delegate.requestFailedWithResponse(this, fetchResponse);\n }\n return fetchResponse;\n }\n get fetchOptions() {\n var _a;\n return {\n method: FetchMethod[this.method].toUpperCase(),\n credentials: \"same-origin\",\n headers: this.headers,\n redirect: \"follow\",\n body: this.isSafe ? null : this.body,\n signal: this.abortSignal,\n referrer: (_a = this.delegate.referrer) === null || _a === void 0 ? void 0 : _a.href,\n };\n }\n get defaultHeaders() {\n return {\n Accept: \"text/html, application/xhtml+xml\",\n };\n }\n get isSafe() {\n return this.method === FetchMethod.get;\n }\n get abortSignal() {\n return this.abortController.signal;\n }\n acceptResponseType(mimeType) {\n this.headers[\"Accept\"] = [mimeType, this.headers[\"Accept\"]].join(\", \");\n }\n async allowRequestToBeIntercepted(fetchOptions) {\n const requestInterception = new Promise((resolve) => (this.resolveRequestPromise = resolve));\n const event = dispatch(\"turbo:before-fetch-request\", {\n cancelable: true,\n detail: {\n fetchOptions,\n url: this.url,\n resume: this.resolveRequestPromise,\n },\n target: this.target,\n });\n if (event.defaultPrevented)\n await requestInterception;\n }\n willDelegateErrorHandling(error) {\n const event = dispatch(\"turbo:fetch-request-error\", {\n target: this.target,\n cancelable: true,\n detail: { request: this, error: error },\n });\n return !event.defaultPrevented;\n }\n}\n\nclass AppearanceObserver {\n constructor(delegate, element) {\n this.started = false;\n this.intersect = (entries) => {\n const lastEntry = entries.slice(-1)[0];\n if (lastEntry === null || lastEntry === void 0 ? void 0 : lastEntry.isIntersecting) {\n this.delegate.elementAppearedInViewport(this.element);\n }\n };\n this.delegate = delegate;\n this.element = element;\n this.intersectionObserver = new IntersectionObserver(this.intersect);\n }\n start() {\n if (!this.started) {\n this.started = true;\n this.intersectionObserver.observe(this.element);\n }\n }\n stop() {\n if (this.started) {\n this.started = false;\n this.intersectionObserver.unobserve(this.element);\n }\n }\n}\n\nclass StreamMessage {\n static wrap(message) {\n if (typeof message == \"string\") {\n return new this(createDocumentFragment(message));\n }\n else {\n return message;\n }\n }\n constructor(fragment) {\n this.fragment = importStreamElements(fragment);\n }\n}\nStreamMessage.contentType = \"text/vnd.turbo-stream.html\";\nfunction importStreamElements(fragment) {\n for (const element of fragment.querySelectorAll(\"turbo-stream\")) {\n const streamElement = document.importNode(element, true);\n for (const inertScriptElement of streamElement.templateElement.content.querySelectorAll(\"script\")) {\n inertScriptElement.replaceWith(activateScriptElement(inertScriptElement));\n }\n element.replaceWith(streamElement);\n }\n return fragment;\n}\n\nvar FormSubmissionState;\n(function (FormSubmissionState) {\n FormSubmissionState[FormSubmissionState[\"initialized\"] = 0] = \"initialized\";\n FormSubmissionState[FormSubmissionState[\"requesting\"] = 1] = \"requesting\";\n FormSubmissionState[FormSubmissionState[\"waiting\"] = 2] = \"waiting\";\n FormSubmissionState[FormSubmissionState[\"receiving\"] = 3] = \"receiving\";\n FormSubmissionState[FormSubmissionState[\"stopping\"] = 4] = \"stopping\";\n FormSubmissionState[FormSubmissionState[\"stopped\"] = 5] = \"stopped\";\n})(FormSubmissionState || (FormSubmissionState = {}));\nvar FormEnctype;\n(function (FormEnctype) {\n FormEnctype[\"urlEncoded\"] = \"application/x-www-form-urlencoded\";\n FormEnctype[\"multipart\"] = \"multipart/form-data\";\n FormEnctype[\"plain\"] = \"text/plain\";\n})(FormEnctype || (FormEnctype = {}));\nfunction formEnctypeFromString(encoding) {\n switch (encoding.toLowerCase()) {\n case FormEnctype.multipart:\n return FormEnctype.multipart;\n case FormEnctype.plain:\n return FormEnctype.plain;\n default:\n return FormEnctype.urlEncoded;\n }\n}\nclass FormSubmission {\n static confirmMethod(message, _element, _submitter) {\n return Promise.resolve(confirm(message));\n }\n constructor(delegate, formElement, submitter, mustRedirect = false) {\n this.state = FormSubmissionState.initialized;\n this.delegate = delegate;\n this.formElement = formElement;\n this.submitter = submitter;\n this.formData = buildFormData(formElement, submitter);\n this.location = expandURL(this.action);\n if (this.method == FetchMethod.get) {\n mergeFormDataEntries(this.location, [...this.body.entries()]);\n }\n this.fetchRequest = new FetchRequest(this, this.method, this.location, this.body, this.formElement);\n this.mustRedirect = mustRedirect;\n }\n get method() {\n var _a;\n const method = ((_a = this.submitter) === null || _a === void 0 ? void 0 : _a.getAttribute(\"formmethod\")) || this.formElement.getAttribute(\"method\") || \"\";\n return fetchMethodFromString(method.toLowerCase()) || FetchMethod.get;\n }\n get action() {\n var _a;\n const formElementAction = typeof this.formElement.action === \"string\" ? this.formElement.action : null;\n if ((_a = this.submitter) === null || _a === void 0 ? void 0 : _a.hasAttribute(\"formaction\")) {\n return this.submitter.getAttribute(\"formaction\") || \"\";\n }\n else {\n return this.formElement.getAttribute(\"action\") || formElementAction || \"\";\n }\n }\n get body() {\n if (this.enctype == FormEnctype.urlEncoded || this.method == FetchMethod.get) {\n return new URLSearchParams(this.stringFormData);\n }\n else {\n return this.formData;\n }\n }\n get enctype() {\n var _a;\n return formEnctypeFromString(((_a = this.submitter) === null || _a === void 0 ? void 0 : _a.getAttribute(\"formenctype\")) || this.formElement.enctype);\n }\n get isSafe() {\n return this.fetchRequest.isSafe;\n }\n get stringFormData() {\n return [...this.formData].reduce((entries, [name, value]) => {\n return entries.concat(typeof value == \"string\" ? [[name, value]] : []);\n }, []);\n }\n async start() {\n const { initialized, requesting } = FormSubmissionState;\n const confirmationMessage = getAttribute(\"data-turbo-confirm\", this.submitter, this.formElement);\n if (typeof confirmationMessage === \"string\") {\n const answer = await FormSubmission.confirmMethod(confirmationMessage, this.formElement, this.submitter);\n if (!answer) {\n return;\n }\n }\n if (this.state == initialized) {\n this.state = requesting;\n return this.fetchRequest.perform();\n }\n }\n stop() {\n const { stopping, stopped } = FormSubmissionState;\n if (this.state != stopping && this.state != stopped) {\n this.state = stopping;\n this.fetchRequest.cancel();\n return true;\n }\n }\n prepareRequest(request) {\n if (!request.isSafe) {\n const token = getCookieValue(getMetaContent(\"csrf-param\")) || getMetaContent(\"csrf-token\");\n if (token) {\n request.headers[\"X-CSRF-Token\"] = token;\n }\n }\n if (this.requestAcceptsTurboStreamResponse(request)) {\n request.acceptResponseType(StreamMessage.contentType);\n }\n }\n requestStarted(_request) {\n var _a;\n this.state = FormSubmissionState.waiting;\n (_a = this.submitter) === null || _a === void 0 ? void 0 : _a.setAttribute(\"disabled\", \"\");\n this.setSubmitsWith();\n dispatch(\"turbo:submit-start\", {\n target: this.formElement,\n detail: { formSubmission: this },\n });\n this.delegate.formSubmissionStarted(this);\n }\n requestPreventedHandlingResponse(request, response) {\n this.result = { success: response.succeeded, fetchResponse: response };\n }\n requestSucceededWithResponse(request, response) {\n if (response.clientError || response.serverError) {\n this.delegate.formSubmissionFailedWithResponse(this, response);\n }\n else if (this.requestMustRedirect(request) && responseSucceededWithoutRedirect(response)) {\n const error = new Error(\"Form responses must redirect to another location\");\n this.delegate.formSubmissionErrored(this, error);\n }\n else {\n this.state = FormSubmissionState.receiving;\n this.result = { success: true, fetchResponse: response };\n this.delegate.formSubmissionSucceededWithResponse(this, response);\n }\n }\n requestFailedWithResponse(request, response) {\n this.result = { success: false, fetchResponse: response };\n this.delegate.formSubmissionFailedWithResponse(this, response);\n }\n requestErrored(request, error) {\n this.result = { success: false, error };\n this.delegate.formSubmissionErrored(this, error);\n }\n requestFinished(_request) {\n var _a;\n this.state = FormSubmissionState.stopped;\n (_a = this.submitter) === null || _a === void 0 ? void 0 : _a.removeAttribute(\"disabled\");\n this.resetSubmitterText();\n dispatch(\"turbo:submit-end\", {\n target: this.formElement,\n detail: Object.assign({ formSubmission: this }, this.result),\n });\n this.delegate.formSubmissionFinished(this);\n }\n setSubmitsWith() {\n if (!this.submitter || !this.submitsWith)\n return;\n if (this.submitter.matches(\"button\")) {\n this.originalSubmitText = this.submitter.innerHTML;\n this.submitter.innerHTML = this.submitsWith;\n }\n else if (this.submitter.matches(\"input\")) {\n const input = this.submitter;\n this.originalSubmitText = input.value;\n input.value = this.submitsWith;\n }\n }\n resetSubmitterText() {\n if (!this.submitter || !this.originalSubmitText)\n return;\n if (this.submitter.matches(\"button\")) {\n this.submitter.innerHTML = this.originalSubmitText;\n }\n else if (this.submitter.matches(\"input\")) {\n const input = this.submitter;\n input.value = this.originalSubmitText;\n }\n }\n requestMustRedirect(request) {\n return !request.isSafe && this.mustRedirect;\n }\n requestAcceptsTurboStreamResponse(request) {\n return !request.isSafe || hasAttribute(\"data-turbo-stream\", this.submitter, this.formElement);\n }\n get submitsWith() {\n var _a;\n return (_a = this.submitter) === null || _a === void 0 ? void 0 : _a.getAttribute(\"data-turbo-submits-with\");\n }\n}\nfunction buildFormData(formElement, submitter) {\n const formData = new FormData(formElement);\n const name = submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"name\");\n const value = submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"value\");\n if (name) {\n formData.append(name, value || \"\");\n }\n return formData;\n}\nfunction getCookieValue(cookieName) {\n if (cookieName != null) {\n const cookies = document.cookie ? document.cookie.split(\"; \") : [];\n const cookie = cookies.find((cookie) => cookie.startsWith(cookieName));\n if (cookie) {\n const value = cookie.split(\"=\").slice(1).join(\"=\");\n return value ? decodeURIComponent(value) : undefined;\n }\n }\n}\nfunction responseSucceededWithoutRedirect(response) {\n return response.statusCode == 200 && !response.redirected;\n}\nfunction mergeFormDataEntries(url, entries) {\n const searchParams = new URLSearchParams();\n for (const [name, value] of entries) {\n if (value instanceof File)\n continue;\n searchParams.append(name, value);\n }\n url.search = searchParams.toString();\n return url;\n}\n\nclass Snapshot {\n constructor(element) {\n this.element = element;\n }\n get activeElement() {\n return this.element.ownerDocument.activeElement;\n }\n get children() {\n return [...this.element.children];\n }\n hasAnchor(anchor) {\n return this.getElementForAnchor(anchor) != null;\n }\n getElementForAnchor(anchor) {\n return anchor ? this.element.querySelector(`[id='${anchor}'], a[name='${anchor}']`) : null;\n }\n get isConnected() {\n return this.element.isConnected;\n }\n get firstAutofocusableElement() {\n const inertDisabledOrHidden = \"[inert], :disabled, [hidden], details:not([open]), dialog:not([open])\";\n for (const element of this.element.querySelectorAll(\"[autofocus]\")) {\n if (element.closest(inertDisabledOrHidden) == null)\n return element;\n else\n continue;\n }\n return null;\n }\n get permanentElements() {\n return queryPermanentElementsAll(this.element);\n }\n getPermanentElementById(id) {\n return getPermanentElementById(this.element, id);\n }\n getPermanentElementMapForSnapshot(snapshot) {\n const permanentElementMap = {};\n for (const currentPermanentElement of this.permanentElements) {\n const { id } = currentPermanentElement;\n const newPermanentElement = snapshot.getPermanentElementById(id);\n if (newPermanentElement) {\n permanentElementMap[id] = [currentPermanentElement, newPermanentElement];\n }\n }\n return permanentElementMap;\n }\n}\nfunction getPermanentElementById(node, id) {\n return node.querySelector(`#${id}[data-turbo-permanent]`);\n}\nfunction queryPermanentElementsAll(node) {\n return node.querySelectorAll(\"[id][data-turbo-permanent]\");\n}\n\nclass FormSubmitObserver {\n constructor(delegate, eventTarget) {\n this.started = false;\n this.submitCaptured = () => {\n this.eventTarget.removeEventListener(\"submit\", this.submitBubbled, false);\n this.eventTarget.addEventListener(\"submit\", this.submitBubbled, false);\n };\n this.submitBubbled = ((event) => {\n if (!event.defaultPrevented) {\n const form = event.target instanceof HTMLFormElement ? event.target : undefined;\n const submitter = event.submitter || undefined;\n if (form &&\n submissionDoesNotDismissDialog(form, submitter) &&\n submissionDoesNotTargetIFrame(form, submitter) &&\n this.delegate.willSubmitForm(form, submitter)) {\n event.preventDefault();\n event.stopImmediatePropagation();\n this.delegate.formSubmitted(form, submitter);\n }\n }\n });\n this.delegate = delegate;\n this.eventTarget = eventTarget;\n }\n start() {\n if (!this.started) {\n this.eventTarget.addEventListener(\"submit\", this.submitCaptured, true);\n this.started = true;\n }\n }\n stop() {\n if (this.started) {\n this.eventTarget.removeEventListener(\"submit\", this.submitCaptured, true);\n this.started = false;\n }\n }\n}\nfunction submissionDoesNotDismissDialog(form, submitter) {\n const method = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"formmethod\")) || form.getAttribute(\"method\");\n return method != \"dialog\";\n}\nfunction submissionDoesNotTargetIFrame(form, submitter) {\n if ((submitter === null || submitter === void 0 ? void 0 : submitter.hasAttribute(\"formtarget\")) || form.hasAttribute(\"target\")) {\n const target = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"formtarget\")) || form.target;\n for (const element of document.getElementsByName(target)) {\n if (element instanceof HTMLIFrameElement)\n return false;\n }\n return true;\n }\n else {\n return true;\n }\n}\n\nclass View {\n constructor(delegate, element) {\n this.resolveRenderPromise = (_value) => { };\n this.resolveInterceptionPromise = (_value) => { };\n this.delegate = delegate;\n this.element = element;\n }\n scrollToAnchor(anchor) {\n const element = this.snapshot.getElementForAnchor(anchor);\n if (element) {\n this.scrollToElement(element);\n this.focusElement(element);\n }\n else {\n this.scrollToPosition({ x: 0, y: 0 });\n }\n }\n scrollToAnchorFromLocation(location) {\n this.scrollToAnchor(getAnchor(location));\n }\n scrollToElement(element) {\n element.scrollIntoView();\n }\n focusElement(element) {\n if (element instanceof HTMLElement) {\n if (element.hasAttribute(\"tabindex\")) {\n element.focus();\n }\n else {\n element.setAttribute(\"tabindex\", \"-1\");\n element.focus();\n element.removeAttribute(\"tabindex\");\n }\n }\n }\n scrollToPosition({ x, y }) {\n this.scrollRoot.scrollTo(x, y);\n }\n scrollToTop() {\n this.scrollToPosition({ x: 0, y: 0 });\n }\n get scrollRoot() {\n return window;\n }\n async render(renderer) {\n const { isPreview, shouldRender, newSnapshot: snapshot } = renderer;\n if (shouldRender) {\n try {\n this.renderPromise = new Promise((resolve) => (this.resolveRenderPromise = resolve));\n this.renderer = renderer;\n await this.prepareToRenderSnapshot(renderer);\n const renderInterception = new Promise((resolve) => (this.resolveInterceptionPromise = resolve));\n const options = { resume: this.resolveInterceptionPromise, render: this.renderer.renderElement };\n const immediateRender = this.delegate.allowsImmediateRender(snapshot, options);\n if (!immediateRender)\n await renderInterception;\n await this.renderSnapshot(renderer);\n this.delegate.viewRenderedSnapshot(snapshot, isPreview);\n this.delegate.preloadOnLoadLinksForView(this.element);\n this.finishRenderingSnapshot(renderer);\n }\n finally {\n delete this.renderer;\n this.resolveRenderPromise(undefined);\n delete this.renderPromise;\n }\n }\n else {\n this.invalidate(renderer.reloadReason);\n }\n }\n invalidate(reason) {\n this.delegate.viewInvalidated(reason);\n }\n async prepareToRenderSnapshot(renderer) {\n this.markAsPreview(renderer.isPreview);\n await renderer.prepareToRender();\n }\n markAsPreview(isPreview) {\n if (isPreview) {\n this.element.setAttribute(\"data-turbo-preview\", \"\");\n }\n else {\n this.element.removeAttribute(\"data-turbo-preview\");\n }\n }\n async renderSnapshot(renderer) {\n await renderer.render();\n }\n finishRenderingSnapshot(renderer) {\n renderer.finishRendering();\n }\n}\n\nclass FrameView extends View {\n missing() {\n this.element.innerHTML = `<strong class=\"turbo-frame-error\">Content missing</strong>`;\n }\n get snapshot() {\n return new Snapshot(this.element);\n }\n}\n\nclass LinkInterceptor {\n constructor(delegate, element) {\n this.clickBubbled = (event) => {\n if (this.respondsToEventTarget(event.target)) {\n this.clickEvent = event;\n }\n else {\n delete this.clickEvent;\n }\n };\n this.linkClicked = ((event) => {\n if (this.clickEvent && this.respondsToEventTarget(event.target) && event.target instanceof Element) {\n if (this.delegate.shouldInterceptLinkClick(event.target, event.detail.url, event.detail.originalEvent)) {\n this.clickEvent.preventDefault();\n event.preventDefault();\n this.delegate.linkClickIntercepted(event.target, event.detail.url, event.detail.originalEvent);\n }\n }\n delete this.clickEvent;\n });\n this.willVisit = ((_event) => {\n delete this.clickEvent;\n });\n this.delegate = delegate;\n this.element = element;\n }\n start() {\n this.element.addEventListener(\"click\", this.clickBubbled);\n document.addEventListener(\"turbo:click\", this.linkClicked);\n document.addEventListener(\"turbo:before-visit\", this.willVisit);\n }\n stop() {\n this.element.removeEventListener(\"click\", this.clickBubbled);\n document.removeEventListener(\"turbo:click\", this.linkClicked);\n document.removeEventListener(\"turbo:before-visit\", this.willVisit);\n }\n respondsToEventTarget(target) {\n const element = target instanceof Element ? target : target instanceof Node ? target.parentElement : null;\n return element && element.closest(\"turbo-frame, html\") == this.element;\n }\n}\n\nclass LinkClickObserver {\n constructor(delegate, eventTarget) {\n this.started = false;\n this.clickCaptured = () => {\n this.eventTarget.removeEventListener(\"click\", this.clickBubbled, false);\n this.eventTarget.addEventListener(\"click\", this.clickBubbled, false);\n };\n this.clickBubbled = (event) => {\n if (event instanceof MouseEvent && this.clickEventIsSignificant(event)) {\n const target = (event.composedPath && event.composedPath()[0]) || event.target;\n const link = this.findLinkFromClickTarget(target);\n if (link && doesNotTargetIFrame(link)) {\n const location = this.getLocationForLink(link);\n if (this.delegate.willFollowLinkToLocation(link, location, event)) {\n event.preventDefault();\n this.delegate.followedLinkToLocation(link, location);\n }\n }\n }\n };\n this.delegate = delegate;\n this.eventTarget = eventTarget;\n }\n start() {\n if (!this.started) {\n this.eventTarget.addEventListener(\"click\", this.clickCaptured, true);\n this.started = true;\n }\n }\n stop() {\n if (this.started) {\n this.eventTarget.removeEventListener(\"click\", this.clickCaptured, true);\n this.started = false;\n }\n }\n clickEventIsSignificant(event) {\n return !((event.target && event.target.isContentEditable) ||\n event.defaultPrevented ||\n event.which > 1 ||\n event.altKey ||\n event.ctrlKey ||\n event.metaKey ||\n event.shiftKey);\n }\n findLinkFromClickTarget(target) {\n return findClosestRecursively(target, \"a[href]:not([target^=_]):not([download])\");\n }\n getLocationForLink(link) {\n return expandURL(link.getAttribute(\"href\") || \"\");\n }\n}\nfunction doesNotTargetIFrame(anchor) {\n if (anchor.hasAttribute(\"target\")) {\n for (const element of document.getElementsByName(anchor.target)) {\n if (element instanceof HTMLIFrameElement)\n return false;\n }\n return true;\n }\n else {\n return true;\n }\n}\n\nclass FormLinkClickObserver {\n constructor(delegate, element) {\n this.delegate = delegate;\n this.linkInterceptor = new LinkClickObserver(this, element);\n }\n start() {\n this.linkInterceptor.start();\n }\n stop() {\n this.linkInterceptor.stop();\n }\n willFollowLinkToLocation(link, location, originalEvent) {\n return (this.delegate.willSubmitFormLinkToLocation(link, location, originalEvent) &&\n link.hasAttribute(\"data-turbo-method\"));\n }\n followedLinkToLocation(link, location) {\n const form = document.createElement(\"form\");\n const type = \"hidden\";\n for (const [name, value] of location.searchParams) {\n form.append(Object.assign(document.createElement(\"input\"), { type, name, value }));\n }\n const action = Object.assign(location, { search: \"\" });\n form.setAttribute(\"data-turbo\", \"true\");\n form.setAttribute(\"action\", action.href);\n form.setAttribute(\"hidden\", \"\");\n const method = link.getAttribute(\"data-turbo-method\");\n if (method)\n form.setAttribute(\"method\", method);\n const turboFrame = link.getAttribute(\"data-turbo-frame\");\n if (turboFrame)\n form.setAttribute(\"data-turbo-frame\", turboFrame);\n const turboAction = getVisitAction(link);\n if (turboAction)\n form.setAttribute(\"data-turbo-action\", turboAction);\n const turboConfirm = link.getAttribute(\"data-turbo-confirm\");\n if (turboConfirm)\n form.setAttribute(\"data-turbo-confirm\", turboConfirm);\n const turboStream = link.hasAttribute(\"data-turbo-stream\");\n if (turboStream)\n form.setAttribute(\"data-turbo-stream\", \"\");\n this.delegate.submittedFormLinkToLocation(link, location, form);\n document.body.appendChild(form);\n form.addEventListener(\"turbo:submit-end\", () => form.remove(), { once: true });\n requestAnimationFrame(() => form.requestSubmit());\n }\n}\n\nclass Bardo {\n static async preservingPermanentElements(delegate, permanentElementMap, callback) {\n const bardo = new this(delegate, permanentElementMap);\n bardo.enter();\n await callback();\n bardo.leave();\n }\n constructor(delegate, permanentElementMap) {\n this.delegate = delegate;\n this.permanentElementMap = permanentElementMap;\n }\n enter() {\n for (const id in this.permanentElementMap) {\n const [currentPermanentElement, newPermanentElement] = this.permanentElementMap[id];\n this.delegate.enteringBardo(currentPermanentElement, newPermanentElement);\n this.replaceNewPermanentElementWithPlaceholder(newPermanentElement);\n }\n }\n leave() {\n for (const id in this.permanentElementMap) {\n const [currentPermanentElement] = this.permanentElementMap[id];\n this.replaceCurrentPermanentElementWithClone(currentPermanentElement);\n this.replacePlaceholderWithPermanentElement(currentPermanentElement);\n this.delegate.leavingBardo(currentPermanentElement);\n }\n }\n replaceNewPermanentElementWithPlaceholder(permanentElement) {\n const placeholder = createPlaceholderForPermanentElement(permanentElement);\n permanentElement.replaceWith(placeholder);\n }\n replaceCurrentPermanentElementWithClone(permanentElement) {\n const clone = permanentElement.cloneNode(true);\n permanentElement.replaceWith(clone);\n }\n replacePlaceholderWithPermanentElement(permanentElement) {\n const placeholder = this.getPlaceholderById(permanentElement.id);\n placeholder === null || placeholder === void 0 ? void 0 : placeholder.replaceWith(permanentElement);\n }\n getPlaceholderById(id) {\n return this.placeholders.find((element) => element.content == id);\n }\n get placeholders() {\n return [...document.querySelectorAll(\"meta[name=turbo-permanent-placeholder][content]\")];\n }\n}\nfunction createPlaceholderForPermanentElement(permanentElement) {\n const element = document.createElement(\"meta\");\n element.setAttribute(\"name\", \"turbo-permanent-placeholder\");\n element.setAttribute(\"content\", permanentElement.id);\n return element;\n}\n\nclass Renderer {\n constructor(currentSnapshot, newSnapshot, renderElement, isPreview, willRender = true) {\n this.activeElement = null;\n this.currentSnapshot = currentSnapshot;\n this.newSnapshot = newSnapshot;\n this.isPreview = isPreview;\n this.willRender = willRender;\n this.renderElement = renderElement;\n this.promise = new Promise((resolve, reject) => (this.resolvingFunctions = { resolve, reject }));\n }\n get shouldRender() {\n return true;\n }\n get reloadReason() {\n return;\n }\n prepareToRender() {\n return;\n }\n finishRendering() {\n if (this.resolvingFunctions) {\n this.resolvingFunctions.resolve();\n delete this.resolvingFunctions;\n }\n }\n async preservingPermanentElements(callback) {\n await Bardo.preservingPermanentElements(this, this.permanentElementMap, callback);\n }\n focusFirstAutofocusableElement() {\n const element = this.connectedSnapshot.firstAutofocusableElement;\n if (elementIsFocusable(element)) {\n element.focus();\n }\n }\n enteringBardo(currentPermanentElement) {\n if (this.activeElement)\n return;\n if (currentPermanentElement.contains(this.currentSnapshot.activeElement)) {\n this.activeElement = this.currentSnapshot.activeElement;\n }\n }\n leavingBardo(currentPermanentElement) {\n if (currentPermanentElement.contains(this.activeElement) && this.activeElement instanceof HTMLElement) {\n this.activeElement.focus();\n this.activeElement = null;\n }\n }\n get connectedSnapshot() {\n return this.newSnapshot.isConnected ? this.newSnapshot : this.currentSnapshot;\n }\n get currentElement() {\n return this.currentSnapshot.element;\n }\n get newElement() {\n return this.newSnapshot.element;\n }\n get permanentElementMap() {\n return this.currentSnapshot.getPermanentElementMapForSnapshot(this.newSnapshot);\n }\n}\nfunction elementIsFocusable(element) {\n return element && typeof element.focus == \"function\";\n}\n\nclass FrameRenderer extends Renderer {\n static renderElement(currentElement, newElement) {\n var _a;\n const destinationRange = document.createRange();\n destinationRange.selectNodeContents(currentElement);\n destinationRange.deleteContents();\n const frameElement = newElement;\n const sourceRange = (_a = frameElement.ownerDocument) === null || _a === void 0 ? void 0 : _a.createRange();\n if (sourceRange) {\n sourceRange.selectNodeContents(frameElement);\n currentElement.appendChild(sourceRange.extractContents());\n }\n }\n constructor(delegate, currentSnapshot, newSnapshot, renderElement, isPreview, willRender = true) {\n super(currentSnapshot, newSnapshot, renderElement, isPreview, willRender);\n this.delegate = delegate;\n }\n get shouldRender() {\n return true;\n }\n async render() {\n await nextAnimationFrame();\n this.preservingPermanentElements(() => {\n this.loadFrameElement();\n });\n this.scrollFrameIntoView();\n await nextAnimationFrame();\n this.focusFirstAutofocusableElement();\n await nextAnimationFrame();\n this.activateScriptElements();\n }\n loadFrameElement() {\n this.delegate.willRenderFrame(this.currentElement, this.newElement);\n this.renderElement(this.currentElement, this.newElement);\n }\n scrollFrameIntoView() {\n if (this.currentElement.autoscroll || this.newElement.autoscroll) {\n const element = this.currentElement.firstElementChild;\n const block = readScrollLogicalPosition(this.currentElement.getAttribute(\"data-autoscroll-block\"), \"end\");\n const behavior = readScrollBehavior(this.currentElement.getAttribute(\"data-autoscroll-behavior\"), \"auto\");\n if (element) {\n element.scrollIntoView({ block, behavior });\n return true;\n }\n }\n return false;\n }\n activateScriptElements() {\n for (const inertScriptElement of this.newScriptElements) {\n const activatedScriptElement = activateScriptElement(inertScriptElement);\n inertScriptElement.replaceWith(activatedScriptElement);\n }\n }\n get newScriptElements() {\n return this.currentElement.querySelectorAll(\"script\");\n }\n}\nfunction readScrollLogicalPosition(value, defaultValue) {\n if (value == \"end\" || value == \"start\" || value == \"center\" || value == \"nearest\") {\n return value;\n }\n else {\n return defaultValue;\n }\n}\nfunction readScrollBehavior(value, defaultValue) {\n if (value == \"auto\" || value == \"smooth\") {\n return value;\n }\n else {\n return defaultValue;\n }\n}\n\nclass ProgressBar {\n static get defaultCSS() {\n return unindent `\n .turbo-progress-bar {\n position: fixed;\n display: block;\n top: 0;\n left: 0;\n height: 3px;\n background: #0076ff;\n z-index: 2147483647;\n transition:\n width ${ProgressBar.animationDuration}ms ease-out,\n opacity ${ProgressBar.animationDuration / 2}ms ${ProgressBar.animationDuration / 2}ms ease-in;\n transform: translate3d(0, 0, 0);\n }\n `;\n }\n constructor() {\n this.hiding = false;\n this.value = 0;\n this.visible = false;\n this.trickle = () => {\n this.setValue(this.value + Math.random() / 100);\n };\n this.stylesheetElement = this.createStylesheetElement();\n this.progressElement = this.createProgressElement();\n this.installStylesheetElement();\n this.setValue(0);\n }\n show() {\n if (!this.visible) {\n this.visible = true;\n this.installProgressElement();\n this.startTrickling();\n }\n }\n hide() {\n if (this.visible && !this.hiding) {\n this.hiding = true;\n this.fadeProgressElement(() => {\n this.uninstallProgressElement();\n this.stopTrickling();\n this.visible = false;\n this.hiding = false;\n });\n }\n }\n setValue(value) {\n this.value = value;\n this.refresh();\n }\n installStylesheetElement() {\n document.head.insertBefore(this.stylesheetElement, document.head.firstChild);\n }\n installProgressElement() {\n this.progressElement.style.width = \"0\";\n this.progressElement.style.opacity = \"1\";\n document.documentElement.insertBefore(this.progressElement, document.body);\n this.refresh();\n }\n fadeProgressElement(callback) {\n this.progressElement.style.opacity = \"0\";\n setTimeout(callback, ProgressBar.animationDuration * 1.5);\n }\n uninstallProgressElement() {\n if (this.progressElement.parentNode) {\n document.documentElement.removeChild(this.progressElement);\n }\n }\n startTrickling() {\n if (!this.trickleInterval) {\n this.trickleInterval = window.setInterval(this.trickle, ProgressBar.animationDuration);\n }\n }\n stopTrickling() {\n window.clearInterval(this.trickleInterval);\n delete this.trickleInterval;\n }\n refresh() {\n requestAnimationFrame(() => {\n this.progressElement.style.width = `${10 + this.value * 90}%`;\n });\n }\n createStylesheetElement() {\n const element = document.createElement(\"style\");\n element.type = \"text/css\";\n element.textContent = ProgressBar.defaultCSS;\n if (this.cspNonce) {\n element.nonce = this.cspNonce;\n }\n return element;\n }\n createProgressElement() {\n const element = document.createElement(\"div\");\n element.className = \"turbo-progress-bar\";\n return element;\n }\n get cspNonce() {\n return getMetaContent(\"csp-nonce\");\n }\n}\nProgressBar.animationDuration = 300;\n\nclass HeadSnapshot extends Snapshot {\n constructor() {\n super(...arguments);\n this.detailsByOuterHTML = this.children\n .filter((element) => !elementIsNoscript(element))\n .map((element) => elementWithoutNonce(element))\n .reduce((result, element) => {\n const { outerHTML } = element;\n const details = outerHTML in result\n ? result[outerHTML]\n : {\n type: elementType(element),\n tracked: elementIsTracked(element),\n elements: [],\n };\n return Object.assign(Object.assign({}, result), { [outerHTML]: Object.assign(Object.assign({}, details), { elements: [...details.elements, element] }) });\n }, {});\n }\n get trackedElementSignature() {\n return Object.keys(this.detailsByOuterHTML)\n .filter((outerHTML) => this.detailsByOuterHTML[outerHTML].tracked)\n .join(\"\");\n }\n getScriptElementsNotInSnapshot(snapshot) {\n return this.getElementsMatchingTypeNotInSnapshot(\"script\", snapshot);\n }\n getStylesheetElementsNotInSnapshot(snapshot) {\n return this.getElementsMatchingTypeNotInSnapshot(\"stylesheet\", snapshot);\n }\n getElementsMatchingTypeNotInSnapshot(matchedType, snapshot) {\n return Object.keys(this.detailsByOuterHTML)\n .filter((outerHTML) => !(outerHTML in snapshot.detailsByOuterHTML))\n .map((outerHTML) => this.detailsByOuterHTML[outerHTML])\n .filter(({ type }) => type == matchedType)\n .map(({ elements: [element] }) => element);\n }\n get provisionalElements() {\n return Object.keys(this.detailsByOuterHTML).reduce((result, outerHTML) => {\n const { type, tracked, elements } = this.detailsByOuterHTML[outerHTML];\n if (type == null && !tracked) {\n return [...result, ...elements];\n }\n else if (elements.length > 1) {\n return [...result, ...elements.slice(1)];\n }\n else {\n return result;\n }\n }, []);\n }\n getMetaValue(name) {\n const element = this.findMetaElementByName(name);\n return element ? element.getAttribute(\"content\") : null;\n }\n findMetaElementByName(name) {\n return Object.keys(this.detailsByOuterHTML).reduce((result, outerHTML) => {\n const { elements: [element], } = this.detailsByOuterHTML[outerHTML];\n return elementIsMetaElementWithName(element, name) ? element : result;\n }, undefined);\n }\n}\nfunction elementType(element) {\n if (elementIsScript(element)) {\n return \"script\";\n }\n else if (elementIsStylesheet(element)) {\n return \"stylesheet\";\n }\n}\nfunction elementIsTracked(element) {\n return element.getAttribute(\"data-turbo-track\") == \"reload\";\n}\nfunction elementIsScript(element) {\n const tagName = element.localName;\n return tagName == \"script\";\n}\nfunction elementIsNoscript(element) {\n const tagName = element.localName;\n return tagName == \"noscript\";\n}\nfunction elementIsStylesheet(element) {\n const tagName = element.localName;\n return tagName == \"style\" || (tagName == \"link\" && element.getAttribute(\"rel\") == \"stylesheet\");\n}\nfunction elementIsMetaElementWithName(element, name) {\n const tagName = element.localName;\n return tagName == \"meta\" && element.getAttribute(\"name\") == name;\n}\nfunction elementWithoutNonce(element) {\n if (element.hasAttribute(\"nonce\")) {\n element.setAttribute(\"nonce\", \"\");\n }\n return element;\n}\n\nclass PageSnapshot extends Snapshot {\n static fromHTMLString(html = \"\") {\n return this.fromDocument(parseHTMLDocument(html));\n }\n static fromElement(element) {\n return this.fromDocument(element.ownerDocument);\n }\n static fromDocument({ head, body }) {\n return new this(body, new HeadSnapshot(head));\n }\n constructor(element, headSnapshot) {\n super(element);\n this.headSnapshot = headSnapshot;\n }\n clone() {\n const clonedElement = this.element.cloneNode(true);\n const selectElements = this.element.querySelectorAll(\"select\");\n const clonedSelectElements = clonedElement.querySelectorAll(\"select\");\n for (const [index, source] of selectElements.entries()) {\n const clone = clonedSelectElements[index];\n for (const option of clone.selectedOptions)\n option.selected = false;\n for (const option of source.selectedOptions)\n clone.options[option.index].selected = true;\n }\n for (const clonedPasswordInput of clonedElement.querySelectorAll('input[type=\"password\"]')) {\n clonedPasswordInput.value = \"\";\n }\n return new PageSnapshot(clonedElement, this.headSnapshot);\n }\n get headElement() {\n return this.headSnapshot.element;\n }\n get rootLocation() {\n var _a;\n const root = (_a = this.getSetting(\"root\")) !== null && _a !== void 0 ? _a : \"/\";\n return expandURL(root);\n }\n get cacheControlValue() {\n return this.getSetting(\"cache-control\");\n }\n get isPreviewable() {\n return this.cacheControlValue != \"no-preview\";\n }\n get isCacheable() {\n return this.cacheControlValue != \"no-cache\";\n }\n get isVisitable() {\n return this.getSetting(\"visit-control\") != \"reload\";\n }\n getSetting(name) {\n return this.headSnapshot.getMetaValue(`turbo-${name}`);\n }\n}\n\nvar TimingMetric;\n(function (TimingMetric) {\n TimingMetric[\"visitStart\"] = \"visitStart\";\n TimingMetric[\"requestStart\"] = \"requestStart\";\n TimingMetric[\"requestEnd\"] = \"requestEnd\";\n TimingMetric[\"visitEnd\"] = \"visitEnd\";\n})(TimingMetric || (TimingMetric = {}));\nvar VisitState;\n(function (VisitState) {\n VisitState[\"initialized\"] = \"initialized\";\n VisitState[\"started\"] = \"started\";\n VisitState[\"canceled\"] = \"canceled\";\n VisitState[\"failed\"] = \"failed\";\n VisitState[\"completed\"] = \"completed\";\n})(VisitState || (VisitState = {}));\nconst defaultOptions = {\n action: \"advance\",\n historyChanged: false,\n visitCachedSnapshot: () => { },\n willRender: true,\n updateHistory: true,\n shouldCacheSnapshot: true,\n acceptsStreamResponse: false,\n};\nvar SystemStatusCode;\n(function (SystemStatusCode) {\n SystemStatusCode[SystemStatusCode[\"networkFailure\"] = 0] = \"networkFailure\";\n SystemStatusCode[SystemStatusCode[\"timeoutFailure\"] = -1] = \"timeoutFailure\";\n SystemStatusCode[SystemStatusCode[\"contentTypeMismatch\"] = -2] = \"contentTypeMismatch\";\n})(SystemStatusCode || (SystemStatusCode = {}));\nclass Visit {\n constructor(delegate, location, restorationIdentifier, options = {}) {\n this.identifier = uuid();\n this.timingMetrics = {};\n this.followedRedirect = false;\n this.historyChanged = false;\n this.scrolled = false;\n this.shouldCacheSnapshot = true;\n this.acceptsStreamResponse = false;\n this.snapshotCached = false;\n this.state = VisitState.initialized;\n this.delegate = delegate;\n this.location = location;\n this.restorationIdentifier = restorationIdentifier || uuid();\n const { action, historyChanged, referrer, snapshot, snapshotHTML, response, visitCachedSnapshot, willRender, updateHistory, shouldCacheSnapshot, acceptsStreamResponse, } = Object.assign(Object.assign({}, defaultOptions), options);\n this.action = action;\n this.historyChanged = historyChanged;\n this.referrer = referrer;\n this.snapshot = snapshot;\n this.snapshotHTML = snapshotHTML;\n this.response = response;\n this.isSamePage = this.delegate.locationWithActionIsSamePage(this.location, this.action);\n this.visitCachedSnapshot = visitCachedSnapshot;\n this.willRender = willRender;\n this.updateHistory = updateHistory;\n this.scrolled = !willRender;\n this.shouldCacheSnapshot = shouldCacheSnapshot;\n this.acceptsStreamResponse = acceptsStreamResponse;\n }\n get adapter() {\n return this.delegate.adapter;\n }\n get view() {\n return this.delegate.view;\n }\n get history() {\n return this.delegate.history;\n }\n get restorationData() {\n return this.history.getRestorationDataForIdentifier(this.restorationIdentifier);\n }\n get silent() {\n return this.isSamePage;\n }\n start() {\n if (this.state == VisitState.initialized) {\n this.recordTimingMetric(TimingMetric.visitStart);\n this.state = VisitState.started;\n this.adapter.visitStarted(this);\n this.delegate.visitStarted(this);\n }\n }\n cancel() {\n if (this.state == VisitState.started) {\n if (this.request) {\n this.request.cancel();\n }\n this.cancelRender();\n this.state = VisitState.canceled;\n }\n }\n complete() {\n if (this.state == VisitState.started) {\n this.recordTimingMetric(TimingMetric.visitEnd);\n this.state = VisitState.completed;\n this.followRedirect();\n if (!this.followedRedirect) {\n this.adapter.visitCompleted(this);\n this.delegate.visitCompleted(this);\n }\n }\n }\n fail() {\n if (this.state == VisitState.started) {\n this.state = VisitState.failed;\n this.adapter.visitFailed(this);\n }\n }\n changeHistory() {\n var _a;\n if (!this.historyChanged && this.updateHistory) {\n const actionForHistory = this.location.href === ((_a = this.referrer) === null || _a === void 0 ? void 0 : _a.href) ? \"replace\" : this.action;\n const method = getHistoryMethodForAction(actionForHistory);\n this.history.update(method, this.location, this.restorationIdentifier);\n this.historyChanged = true;\n }\n }\n issueRequest() {\n if (this.hasPreloadedResponse()) {\n this.simulateRequest();\n }\n else if (this.shouldIssueRequest() && !this.request) {\n this.request = new FetchRequest(this, FetchMethod.get, this.location);\n this.request.perform();\n }\n }\n simulateRequest() {\n if (this.response) {\n this.startRequest();\n this.recordResponse();\n this.finishRequest();\n }\n }\n startRequest() {\n this.recordTimingMetric(TimingMetric.requestStart);\n this.adapter.visitRequestStarted(this);\n }\n recordResponse(response = this.response) {\n this.response = response;\n if (response) {\n const { statusCode } = response;\n if (isSuccessful(statusCode)) {\n this.adapter.visitRequestCompleted(this);\n }\n else {\n this.adapter.visitRequestFailedWithStatusCode(this, statusCode);\n }\n }\n }\n finishRequest() {\n this.recordTimingMetric(TimingMetric.requestEnd);\n this.adapter.visitRequestFinished(this);\n }\n loadResponse() {\n if (this.response) {\n const { statusCode, responseHTML } = this.response;\n this.render(async () => {\n if (this.shouldCacheSnapshot)\n this.cacheSnapshot();\n if (this.view.renderPromise)\n await this.view.renderPromise;\n if (isSuccessful(statusCode) && responseHTML != null) {\n await this.view.renderPage(PageSnapshot.fromHTMLString(responseHTML), false, this.willRender, this);\n this.performScroll();\n this.adapter.visitRendered(this);\n this.complete();\n }\n else {\n await this.view.renderError(PageSnapshot.fromHTMLString(responseHTML), this);\n this.adapter.visitRendered(this);\n this.fail();\n }\n });\n }\n }\n getCachedSnapshot() {\n const snapshot = this.view.getCachedSnapshotForLocation(this.location) || this.getPreloadedSnapshot();\n if (snapshot && (!getAnchor(this.location) || snapshot.hasAnchor(getAnchor(this.location)))) {\n if (this.action == \"restore\" || snapshot.isPreviewable) {\n return snapshot;\n }\n }\n }\n getPreloadedSnapshot() {\n if (this.snapshotHTML) {\n return PageSnapshot.fromHTMLString(this.snapshotHTML);\n }\n }\n hasCachedSnapshot() {\n return this.getCachedSnapshot() != null;\n }\n loadCachedSnapshot() {\n const snapshot = this.getCachedSnapshot();\n if (snapshot) {\n const isPreview = this.shouldIssueRequest();\n this.render(async () => {\n this.cacheSnapshot();\n if (this.isSamePage) {\n this.adapter.visitRendered(this);\n }\n else {\n if (this.view.renderPromise)\n await this.view.renderPromise;\n await this.view.renderPage(snapshot, isPreview, this.willRender, this);\n this.performScroll();\n this.adapter.visitRendered(this);\n if (!isPreview) {\n this.complete();\n }\n }\n });\n }\n }\n followRedirect() {\n var _a;\n if (this.redirectedToLocation && !this.followedRedirect && ((_a = this.response) === null || _a === void 0 ? void 0 : _a.redirected)) {\n this.adapter.visitProposedToLocation(this.redirectedToLocation, {\n action: \"replace\",\n response: this.response,\n shouldCacheSnapshot: false,\n willRender: false,\n });\n this.followedRedirect = true;\n }\n }\n goToSamePageAnchor() {\n if (this.isSamePage) {\n this.render(async () => {\n this.cacheSnapshot();\n this.performScroll();\n this.changeHistory();\n this.adapter.visitRendered(this);\n });\n }\n }\n prepareRequest(request) {\n if (this.acceptsStreamResponse) {\n request.acceptResponseType(StreamMessage.contentType);\n }\n }\n requestStarted() {\n this.startRequest();\n }\n requestPreventedHandlingResponse(_request, _response) { }\n async requestSucceededWithResponse(request, response) {\n const responseHTML = await response.responseHTML;\n const { redirected, statusCode } = response;\n if (responseHTML == undefined) {\n this.recordResponse({\n statusCode: SystemStatusCode.contentTypeMismatch,\n redirected,\n });\n }\n else {\n this.redirectedToLocation = response.redirected ? response.location : undefined;\n this.recordResponse({ statusCode: statusCode, responseHTML, redirected });\n }\n }\n async requestFailedWithResponse(request, response) {\n const responseHTML = await response.responseHTML;\n const { redirected, statusCode } = response;\n if (responseHTML == undefined) {\n this.recordResponse({\n statusCode: SystemStatusCode.contentTypeMismatch,\n redirected,\n });\n }\n else {\n this.recordResponse({ statusCode: statusCode, responseHTML, redirected });\n }\n }\n requestErrored(_request, _error) {\n this.recordResponse({\n statusCode: SystemStatusCode.networkFailure,\n redirected: false,\n });\n }\n requestFinished() {\n this.finishRequest();\n }\n performScroll() {\n if (!this.scrolled && !this.view.forceReloaded) {\n if (this.action == \"restore\") {\n this.scrollToRestoredPosition() || this.scrollToAnchor() || this.view.scrollToTop();\n }\n else {\n this.scrollToAnchor() || this.view.scrollToTop();\n }\n if (this.isSamePage) {\n this.delegate.visitScrolledToSamePageLocation(this.view.lastRenderedLocation, this.location);\n }\n this.scrolled = true;\n }\n }\n scrollToRestoredPosition() {\n const { scrollPosition } = this.restorationData;\n if (scrollPosition) {\n this.view.scrollToPosition(scrollPosition);\n return true;\n }\n }\n scrollToAnchor() {\n const anchor = getAnchor(this.location);\n if (anchor != null) {\n this.view.scrollToAnchor(anchor);\n return true;\n }\n }\n recordTimingMetric(metric) {\n this.timingMetrics[metric] = new Date().getTime();\n }\n getTimingMetrics() {\n return Object.assign({}, this.timingMetrics);\n }\n getHistoryMethodForAction(action) {\n switch (action) {\n case \"replace\":\n return history.replaceState;\n case \"advance\":\n case \"restore\":\n return history.pushState;\n }\n }\n hasPreloadedResponse() {\n return typeof this.response == \"object\";\n }\n shouldIssueRequest() {\n if (this.isSamePage) {\n return false;\n }\n else if (this.action == \"restore\") {\n return !this.hasCachedSnapshot();\n }\n else {\n return this.willRender;\n }\n }\n cacheSnapshot() {\n if (!this.snapshotCached) {\n this.view.cacheSnapshot(this.snapshot).then((snapshot) => snapshot && this.visitCachedSnapshot(snapshot));\n this.snapshotCached = true;\n }\n }\n async render(callback) {\n this.cancelRender();\n await new Promise((resolve) => {\n this.frame = requestAnimationFrame(() => resolve());\n });\n await callback();\n delete this.frame;\n }\n cancelRender() {\n if (this.frame) {\n cancelAnimationFrame(this.frame);\n delete this.frame;\n }\n }\n}\nfunction isSuccessful(statusCode) {\n return statusCode >= 200 && statusCode < 300;\n}\n\nclass BrowserAdapter {\n constructor(session) {\n this.progressBar = new ProgressBar();\n this.showProgressBar = () => {\n this.progressBar.show();\n };\n this.session = session;\n }\n visitProposedToLocation(location, options) {\n this.navigator.startVisit(location, (options === null || options === void 0 ? void 0 : options.restorationIdentifier) || uuid(), options);\n }\n visitStarted(visit) {\n this.location = visit.location;\n visit.loadCachedSnapshot();\n visit.issueRequest();\n visit.goToSamePageAnchor();\n }\n visitRequestStarted(visit) {\n this.progressBar.setValue(0);\n if (visit.hasCachedSnapshot() || visit.action != \"restore\") {\n this.showVisitProgressBarAfterDelay();\n }\n else {\n this.showProgressBar();\n }\n }\n visitRequestCompleted(visit) {\n visit.loadResponse();\n }\n visitRequestFailedWithStatusCode(visit, statusCode) {\n switch (statusCode) {\n case SystemStatusCode.networkFailure:\n case SystemStatusCode.timeoutFailure:\n case SystemStatusCode.contentTypeMismatch:\n return this.reload({\n reason: \"request_failed\",\n context: {\n statusCode,\n },\n });\n default:\n return visit.loadResponse();\n }\n }\n visitRequestFinished(_visit) {\n this.progressBar.setValue(1);\n this.hideVisitProgressBar();\n }\n visitCompleted(_visit) { }\n pageInvalidated(reason) {\n this.reload(reason);\n }\n visitFailed(_visit) { }\n visitRendered(_visit) { }\n formSubmissionStarted(_formSubmission) {\n this.progressBar.setValue(0);\n this.showFormProgressBarAfterDelay();\n }\n formSubmissionFinished(_formSubmission) {\n this.progressBar.setValue(1);\n this.hideFormProgressBar();\n }\n showVisitProgressBarAfterDelay() {\n this.visitProgressBarTimeout = window.setTimeout(this.showProgressBar, this.session.progressBarDelay);\n }\n hideVisitProgressBar() {\n this.progressBar.hide();\n if (this.visitProgressBarTimeout != null) {\n window.clearTimeout(this.visitProgressBarTimeout);\n delete this.visitProgressBarTimeout;\n }\n }\n showFormProgressBarAfterDelay() {\n if (this.formProgressBarTimeout == null) {\n this.formProgressBarTimeout = window.setTimeout(this.showProgressBar, this.session.progressBarDelay);\n }\n }\n hideFormProgressBar() {\n this.progressBar.hide();\n if (this.formProgressBarTimeout != null) {\n window.clearTimeout(this.formProgressBarTimeout);\n delete this.formProgressBarTimeout;\n }\n }\n reload(reason) {\n var _a;\n dispatch(\"turbo:reload\", { detail: reason });\n window.location.href = ((_a = this.location) === null || _a === void 0 ? void 0 : _a.toString()) || window.location.href;\n }\n get navigator() {\n return this.session.navigator;\n }\n}\n\nclass CacheObserver {\n constructor() {\n this.selector = \"[data-turbo-temporary]\";\n this.deprecatedSelector = \"[data-turbo-cache=false]\";\n this.started = false;\n this.removeTemporaryElements = ((_event) => {\n for (const element of this.temporaryElements) {\n element.remove();\n }\n });\n }\n start() {\n if (!this.started) {\n this.started = true;\n addEventListener(\"turbo:before-cache\", this.removeTemporaryElements, false);\n }\n }\n stop() {\n if (this.started) {\n this.started = false;\n removeEventListener(\"turbo:before-cache\", this.removeTemporaryElements, false);\n }\n }\n get temporaryElements() {\n return [...document.querySelectorAll(this.selector), ...this.temporaryElementsWithDeprecation];\n }\n get temporaryElementsWithDeprecation() {\n const elements = document.querySelectorAll(this.deprecatedSelector);\n if (elements.length) {\n console.warn(`The ${this.deprecatedSelector} selector is deprecated and will be removed in a future version. Use ${this.selector} instead.`);\n }\n return [...elements];\n }\n}\n\nclass FrameRedirector {\n constructor(session, element) {\n this.session = session;\n this.element = element;\n this.linkInterceptor = new LinkInterceptor(this, element);\n this.formSubmitObserver = new FormSubmitObserver(this, element);\n }\n start() {\n this.linkInterceptor.start();\n this.formSubmitObserver.start();\n }\n stop() {\n this.linkInterceptor.stop();\n this.formSubmitObserver.stop();\n }\n shouldInterceptLinkClick(element, _location, _event) {\n return this.shouldRedirect(element);\n }\n linkClickIntercepted(element, url, event) {\n const frame = this.findFrameElement(element);\n if (frame) {\n frame.delegate.linkClickIntercepted(element, url, event);\n }\n }\n willSubmitForm(element, submitter) {\n return (element.closest(\"turbo-frame\") == null &&\n this.shouldSubmit(element, submitter) &&\n this.shouldRedirect(element, submitter));\n }\n formSubmitted(element, submitter) {\n const frame = this.findFrameElement(element, submitter);\n if (frame) {\n frame.delegate.formSubmitted(element, submitter);\n }\n }\n shouldSubmit(form, submitter) {\n var _a;\n const action = getAction(form, submitter);\n const meta = this.element.ownerDocument.querySelector(`meta[name=\"turbo-root\"]`);\n const rootLocation = expandURL((_a = meta === null || meta === void 0 ? void 0 : meta.content) !== null && _a !== void 0 ? _a : \"/\");\n return this.shouldRedirect(form, submitter) && locationIsVisitable(action, rootLocation);\n }\n shouldRedirect(element, submitter) {\n const isNavigatable = element instanceof HTMLFormElement\n ? this.session.submissionIsNavigatable(element, submitter)\n : this.session.elementIsNavigatable(element);\n if (isNavigatable) {\n const frame = this.findFrameElement(element, submitter);\n return frame ? frame != element.closest(\"turbo-frame\") : false;\n }\n else {\n return false;\n }\n }\n findFrameElement(element, submitter) {\n const id = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"data-turbo-frame\")) || element.getAttribute(\"data-turbo-frame\");\n if (id && id != \"_top\") {\n const frame = this.element.querySelector(`#${id}:not([disabled])`);\n if (frame instanceof FrameElement) {\n return frame;\n }\n }\n }\n}\n\nclass History {\n constructor(delegate) {\n this.restorationIdentifier = uuid();\n this.restorationData = {};\n this.started = false;\n this.pageLoaded = false;\n this.onPopState = (event) => {\n if (this.shouldHandlePopState()) {\n const { turbo } = event.state || {};\n if (turbo) {\n this.location = new URL(window.location.href);\n const { restorationIdentifier } = turbo;\n this.restorationIdentifier = restorationIdentifier;\n this.delegate.historyPoppedToLocationWithRestorationIdentifier(this.location, restorationIdentifier);\n }\n }\n };\n this.onPageLoad = async (_event) => {\n await nextMicrotask();\n this.pageLoaded = true;\n };\n this.delegate = delegate;\n }\n start() {\n if (!this.started) {\n addEventListener(\"popstate\", this.onPopState, false);\n addEventListener(\"load\", this.onPageLoad, false);\n this.started = true;\n this.replace(new URL(window.location.href));\n }\n }\n stop() {\n if (this.started) {\n removeEventListener(\"popstate\", this.onPopState, false);\n removeEventListener(\"load\", this.onPageLoad, false);\n this.started = false;\n }\n }\n push(location, restorationIdentifier) {\n this.update(history.pushState, location, restorationIdentifier);\n }\n replace(location, restorationIdentifier) {\n this.update(history.replaceState, location, restorationIdentifier);\n }\n update(method, location, restorationIdentifier = uuid()) {\n const state = { turbo: { restorationIdentifier } };\n method.call(history, state, \"\", location.href);\n this.location = location;\n this.restorationIdentifier = restorationIdentifier;\n }\n getRestorationDataForIdentifier(restorationIdentifier) {\n return this.restorationData[restorationIdentifier] || {};\n }\n updateRestorationData(additionalData) {\n const { restorationIdentifier } = this;\n const restorationData = this.restorationData[restorationIdentifier];\n this.restorationData[restorationIdentifier] = Object.assign(Object.assign({}, restorationData), additionalData);\n }\n assumeControlOfScrollRestoration() {\n var _a;\n if (!this.previousScrollRestoration) {\n this.previousScrollRestoration = (_a = history.scrollRestoration) !== null && _a !== void 0 ? _a : \"auto\";\n history.scrollRestoration = \"manual\";\n }\n }\n relinquishControlOfScrollRestoration() {\n if (this.previousScrollRestoration) {\n history.scrollRestoration = this.previousScrollRestoration;\n delete this.previousScrollRestoration;\n }\n }\n shouldHandlePopState() {\n return this.pageIsLoaded();\n }\n pageIsLoaded() {\n return this.pageLoaded || document.readyState == \"complete\";\n }\n}\n\nclass Navigator {\n constructor(delegate) {\n this.delegate = delegate;\n }\n proposeVisit(location, options = {}) {\n if (this.delegate.allowsVisitingLocationWithAction(location, options.action)) {\n if (locationIsVisitable(location, this.view.snapshot.rootLocation)) {\n this.delegate.visitProposedToLocation(location, options);\n }\n else {\n window.location.href = location.toString();\n }\n }\n }\n startVisit(locatable, restorationIdentifier, options = {}) {\n this.stop();\n this.currentVisit = new Visit(this, expandURL(locatable), restorationIdentifier, Object.assign({ referrer: this.location }, options));\n this.currentVisit.start();\n }\n submitForm(form, submitter) {\n this.stop();\n this.formSubmission = new FormSubmission(this, form, submitter, true);\n this.formSubmission.start();\n }\n stop() {\n if (this.formSubmission) {\n this.formSubmission.stop();\n delete this.formSubmission;\n }\n if (this.currentVisit) {\n this.currentVisit.cancel();\n delete this.currentVisit;\n }\n }\n get adapter() {\n return this.delegate.adapter;\n }\n get view() {\n return this.delegate.view;\n }\n get history() {\n return this.delegate.history;\n }\n formSubmissionStarted(formSubmission) {\n if (typeof this.adapter.formSubmissionStarted === \"function\") {\n this.adapter.formSubmissionStarted(formSubmission);\n }\n }\n async formSubmissionSucceededWithResponse(formSubmission, fetchResponse) {\n if (formSubmission == this.formSubmission) {\n const responseHTML = await fetchResponse.responseHTML;\n if (responseHTML) {\n const shouldCacheSnapshot = formSubmission.isSafe;\n if (!shouldCacheSnapshot) {\n this.view.clearSnapshotCache();\n }\n const { statusCode, redirected } = fetchResponse;\n const action = this.getActionForFormSubmission(formSubmission);\n const visitOptions = {\n action,\n shouldCacheSnapshot,\n response: { statusCode, responseHTML, redirected },\n };\n this.proposeVisit(fetchResponse.location, visitOptions);\n }\n }\n }\n async formSubmissionFailedWithResponse(formSubmission, fetchResponse) {\n const responseHTML = await fetchResponse.responseHTML;\n if (responseHTML) {\n const snapshot = PageSnapshot.fromHTMLString(responseHTML);\n if (fetchResponse.serverError) {\n await this.view.renderError(snapshot, this.currentVisit);\n }\n else {\n await this.view.renderPage(snapshot, false, true, this.currentVisit);\n }\n this.view.scrollToTop();\n this.view.clearSnapshotCache();\n }\n }\n formSubmissionErrored(formSubmission, error) {\n console.error(error);\n }\n formSubmissionFinished(formSubmission) {\n if (typeof this.adapter.formSubmissionFinished === \"function\") {\n this.adapter.formSubmissionFinished(formSubmission);\n }\n }\n visitStarted(visit) {\n this.delegate.visitStarted(visit);\n }\n visitCompleted(visit) {\n this.delegate.visitCompleted(visit);\n }\n locationWithActionIsSamePage(location, action) {\n const anchor = getAnchor(location);\n const currentAnchor = getAnchor(this.view.lastRenderedLocation);\n const isRestorationToTop = action === \"restore\" && typeof anchor === \"undefined\";\n return (action !== \"replace\" &&\n getRequestURL(location) === getRequestURL(this.view.lastRenderedLocation) &&\n (isRestorationToTop || (anchor != null && anchor !== currentAnchor)));\n }\n visitScrolledToSamePageLocation(oldURL, newURL) {\n this.delegate.visitScrolledToSamePageLocation(oldURL, newURL);\n }\n get location() {\n return this.history.location;\n }\n get restorationIdentifier() {\n return this.history.restorationIdentifier;\n }\n getActionForFormSubmission({ submitter, formElement }) {\n return getVisitAction(submitter, formElement) || \"advance\";\n }\n}\n\nvar PageStage;\n(function (PageStage) {\n PageStage[PageStage[\"initial\"] = 0] = \"initial\";\n PageStage[PageStage[\"loading\"] = 1] = \"loading\";\n PageStage[PageStage[\"interactive\"] = 2] = \"interactive\";\n PageStage[PageStage[\"complete\"] = 3] = \"complete\";\n})(PageStage || (PageStage = {}));\nclass PageObserver {\n constructor(delegate) {\n this.stage = PageStage.initial;\n this.started = false;\n this.interpretReadyState = () => {\n const { readyState } = this;\n if (readyState == \"interactive\") {\n this.pageIsInteractive();\n }\n else if (readyState == \"complete\") {\n this.pageIsComplete();\n }\n };\n this.pageWillUnload = () => {\n this.delegate.pageWillUnload();\n };\n this.delegate = delegate;\n }\n start() {\n if (!this.started) {\n if (this.stage == PageStage.initial) {\n this.stage = PageStage.loading;\n }\n document.addEventListener(\"readystatechange\", this.interpretReadyState, false);\n addEventListener(\"pagehide\", this.pageWillUnload, false);\n this.started = true;\n }\n }\n stop() {\n if (this.started) {\n document.removeEventListener(\"readystatechange\", this.interpretReadyState, false);\n removeEventListener(\"pagehide\", this.pageWillUnload, false);\n this.started = false;\n }\n }\n pageIsInteractive() {\n if (this.stage == PageStage.loading) {\n this.stage = PageStage.interactive;\n this.delegate.pageBecameInteractive();\n }\n }\n pageIsComplete() {\n this.pageIsInteractive();\n if (this.stage == PageStage.interactive) {\n this.stage = PageStage.complete;\n this.delegate.pageLoaded();\n }\n }\n get readyState() {\n return document.readyState;\n }\n}\n\nclass ScrollObserver {\n constructor(delegate) {\n this.started = false;\n this.onScroll = () => {\n this.updatePosition({ x: window.pageXOffset, y: window.pageYOffset });\n };\n this.delegate = delegate;\n }\n start() {\n if (!this.started) {\n addEventListener(\"scroll\", this.onScroll, false);\n this.onScroll();\n this.started = true;\n }\n }\n stop() {\n if (this.started) {\n removeEventListener(\"scroll\", this.onScroll, false);\n this.started = false;\n }\n }\n updatePosition(position) {\n this.delegate.scrollPositionChanged(position);\n }\n}\n\nclass StreamMessageRenderer {\n render({ fragment }) {\n Bardo.preservingPermanentElements(this, getPermanentElementMapForFragment(fragment), () => document.documentElement.appendChild(fragment));\n }\n enteringBardo(currentPermanentElement, newPermanentElement) {\n newPermanentElement.replaceWith(currentPermanentElement.cloneNode(true));\n }\n leavingBardo() { }\n}\nfunction getPermanentElementMapForFragment(fragment) {\n const permanentElementsInDocument = queryPermanentElementsAll(document.documentElement);\n const permanentElementMap = {};\n for (const permanentElementInDocument of permanentElementsInDocument) {\n const { id } = permanentElementInDocument;\n for (const streamElement of fragment.querySelectorAll(\"turbo-stream\")) {\n const elementInStream = getPermanentElementById(streamElement.templateElement.content, id);\n if (elementInStream) {\n permanentElementMap[id] = [permanentElementInDocument, elementInStream];\n }\n }\n }\n return permanentElementMap;\n}\n\nclass StreamObserver {\n constructor(delegate) {\n this.sources = new Set();\n this.started = false;\n this.inspectFetchResponse = ((event) => {\n const response = fetchResponseFromEvent(event);\n if (response && fetchResponseIsStream(response)) {\n event.preventDefault();\n this.receiveMessageResponse(response);\n }\n });\n this.receiveMessageEvent = (event) => {\n if (this.started && typeof event.data == \"string\") {\n this.receiveMessageHTML(event.data);\n }\n };\n this.delegate = delegate;\n }\n start() {\n if (!this.started) {\n this.started = true;\n addEventListener(\"turbo:before-fetch-response\", this.inspectFetchResponse, false);\n }\n }\n stop() {\n if (this.started) {\n this.started = false;\n removeEventListener(\"turbo:before-fetch-response\", this.inspectFetchResponse, false);\n }\n }\n connectStreamSource(source) {\n if (!this.streamSourceIsConnected(source)) {\n this.sources.add(source);\n source.addEventListener(\"message\", this.receiveMessageEvent, false);\n }\n }\n disconnectStreamSource(source) {\n if (this.streamSourceIsConnected(source)) {\n this.sources.delete(source);\n source.removeEventListener(\"message\", this.receiveMessageEvent, false);\n }\n }\n streamSourceIsConnected(source) {\n return this.sources.has(source);\n }\n async receiveMessageResponse(response) {\n const html = await response.responseHTML;\n if (html) {\n this.receiveMessageHTML(html);\n }\n }\n receiveMessageHTML(html) {\n this.delegate.receivedMessageFromStream(StreamMessage.wrap(html));\n }\n}\nfunction fetchResponseFromEvent(event) {\n var _a;\n const fetchResponse = (_a = event.detail) === null || _a === void 0 ? void 0 : _a.fetchResponse;\n if (fetchResponse instanceof FetchResponse) {\n return fetchResponse;\n }\n}\nfunction fetchResponseIsStream(response) {\n var _a;\n const contentType = (_a = response.contentType) !== null && _a !== void 0 ? _a : \"\";\n return contentType.startsWith(StreamMessage.contentType);\n}\n\nclass ErrorRenderer extends Renderer {\n static renderElement(currentElement, newElement) {\n const { documentElement, body } = document;\n documentElement.replaceChild(newElement, body);\n }\n async render() {\n this.replaceHeadAndBody();\n this.activateScriptElements();\n }\n replaceHeadAndBody() {\n const { documentElement, head } = document;\n documentElement.replaceChild(this.newHead, head);\n this.renderElement(this.currentElement, this.newElement);\n }\n activateScriptElements() {\n for (const replaceableElement of this.scriptElements) {\n const parentNode = replaceableElement.parentNode;\n if (parentNode) {\n const element = activateScriptElement(replaceableElement);\n parentNode.replaceChild(element, replaceableElement);\n }\n }\n }\n get newHead() {\n return this.newSnapshot.headSnapshot.element;\n }\n get scriptElements() {\n return document.documentElement.querySelectorAll(\"script\");\n }\n}\n\nclass PageRenderer extends Renderer {\n static renderElement(currentElement, newElement) {\n if (document.body && newElement instanceof HTMLBodyElement) {\n document.body.replaceWith(newElement);\n }\n else {\n document.documentElement.appendChild(newElement);\n }\n }\n get shouldRender() {\n return this.newSnapshot.isVisitable && this.trackedElementsAreIdentical;\n }\n get reloadReason() {\n if (!this.newSnapshot.isVisitable) {\n return {\n reason: \"turbo_visit_control_is_reload\",\n };\n }\n if (!this.trackedElementsAreIdentical) {\n return {\n reason: \"tracked_element_mismatch\",\n };\n }\n }\n async prepareToRender() {\n await this.mergeHead();\n }\n async render() {\n if (this.willRender) {\n await this.replaceBody();\n }\n }\n finishRendering() {\n super.finishRendering();\n if (!this.isPreview) {\n this.focusFirstAutofocusableElement();\n }\n }\n get currentHeadSnapshot() {\n return this.currentSnapshot.headSnapshot;\n }\n get newHeadSnapshot() {\n return this.newSnapshot.headSnapshot;\n }\n get newElement() {\n return this.newSnapshot.element;\n }\n async mergeHead() {\n const mergedHeadElements = this.mergeProvisionalElements();\n const newStylesheetElements = this.copyNewHeadStylesheetElements();\n this.copyNewHeadScriptElements();\n await mergedHeadElements;\n await newStylesheetElements;\n }\n async replaceBody() {\n await this.preservingPermanentElements(async () => {\n this.activateNewBody();\n await this.assignNewBody();\n });\n }\n get trackedElementsAreIdentical() {\n return this.currentHeadSnapshot.trackedElementSignature == this.newHeadSnapshot.trackedElementSignature;\n }\n async copyNewHeadStylesheetElements() {\n const loadingElements = [];\n for (const element of this.newHeadStylesheetElements) {\n loadingElements.push(waitForLoad(element));\n document.head.appendChild(element);\n }\n await Promise.all(loadingElements);\n }\n copyNewHeadScriptElements() {\n for (const element of this.newHeadScriptElements) {\n document.head.appendChild(activateScriptElement(element));\n }\n }\n async mergeProvisionalElements() {\n const newHeadElements = [...this.newHeadProvisionalElements];\n for (const element of this.currentHeadProvisionalElements) {\n if (!this.isCurrentElementInElementList(element, newHeadElements)) {\n document.head.removeChild(element);\n }\n }\n for (const element of newHeadElements) {\n document.head.appendChild(element);\n }\n }\n isCurrentElementInElementList(element, elementList) {\n for (const [index, newElement] of elementList.entries()) {\n if (element.tagName == \"TITLE\") {\n if (newElement.tagName != \"TITLE\") {\n continue;\n }\n if (element.innerHTML == newElement.innerHTML) {\n elementList.splice(index, 1);\n return true;\n }\n }\n if (newElement.isEqualNode(element)) {\n elementList.splice(index, 1);\n return true;\n }\n }\n return false;\n }\n removeCurrentHeadProvisionalElements() {\n for (const element of this.currentHeadProvisionalElements) {\n document.head.removeChild(element);\n }\n }\n copyNewHeadProvisionalElements() {\n for (const element of this.newHeadProvisionalElements) {\n document.head.appendChild(element);\n }\n }\n activateNewBody() {\n document.adoptNode(this.newElement);\n this.activateNewBodyScriptElements();\n }\n activateNewBodyScriptElements() {\n for (const inertScriptElement of this.newBodyScriptElements) {\n const activatedScriptElement = activateScriptElement(inertScriptElement);\n inertScriptElement.replaceWith(activatedScriptElement);\n }\n }\n async assignNewBody() {\n await this.renderElement(this.currentElement, this.newElement);\n }\n get newHeadStylesheetElements() {\n return this.newHeadSnapshot.getStylesheetElementsNotInSnapshot(this.currentHeadSnapshot);\n }\n get newHeadScriptElements() {\n return this.newHeadSnapshot.getScriptElementsNotInSnapshot(this.currentHeadSnapshot);\n }\n get currentHeadProvisionalElements() {\n return this.currentHeadSnapshot.provisionalElements;\n }\n get newHeadProvisionalElements() {\n return this.newHeadSnapshot.provisionalElements;\n }\n get newBodyScriptElements() {\n return this.newElement.querySelectorAll(\"script\");\n }\n}\n\nclass SnapshotCache {\n constructor(size) {\n this.keys = [];\n this.snapshots = {};\n this.size = size;\n }\n has(location) {\n return toCacheKey(location) in this.snapshots;\n }\n get(location) {\n if (this.has(location)) {\n const snapshot = this.read(location);\n this.touch(location);\n return snapshot;\n }\n }\n put(location, snapshot) {\n this.write(location, snapshot);\n this.touch(location);\n return snapshot;\n }\n clear() {\n this.snapshots = {};\n }\n read(location) {\n return this.snapshots[toCacheKey(location)];\n }\n write(location, snapshot) {\n this.snapshots[toCacheKey(location)] = snapshot;\n }\n touch(location) {\n const key = toCacheKey(location);\n const index = this.keys.indexOf(key);\n if (index > -1)\n this.keys.splice(index, 1);\n this.keys.unshift(key);\n this.trim();\n }\n trim() {\n for (const key of this.keys.splice(this.size)) {\n delete this.snapshots[key];\n }\n }\n}\n\nclass PageView extends View {\n constructor() {\n super(...arguments);\n this.snapshotCache = new SnapshotCache(10);\n this.lastRenderedLocation = new URL(location.href);\n this.forceReloaded = false;\n }\n renderPage(snapshot, isPreview = false, willRender = true, visit) {\n const renderer = new PageRenderer(this.snapshot, snapshot, PageRenderer.renderElement, isPreview, willRender);\n if (!renderer.shouldRender) {\n this.forceReloaded = true;\n }\n else {\n visit === null || visit === void 0 ? void 0 : visit.changeHistory();\n }\n return this.render(renderer);\n }\n renderError(snapshot, visit) {\n visit === null || visit === void 0 ? void 0 : visit.changeHistory();\n const renderer = new ErrorRenderer(this.snapshot, snapshot, ErrorRenderer.renderElement, false);\n return this.render(renderer);\n }\n clearSnapshotCache() {\n this.snapshotCache.clear();\n }\n async cacheSnapshot(snapshot = this.snapshot) {\n if (snapshot.isCacheable) {\n this.delegate.viewWillCacheSnapshot();\n const { lastRenderedLocation: location } = this;\n await nextEventLoopTick();\n const cachedSnapshot = snapshot.clone();\n this.snapshotCache.put(location, cachedSnapshot);\n return cachedSnapshot;\n }\n }\n getCachedSnapshotForLocation(location) {\n return this.snapshotCache.get(location);\n }\n get snapshot() {\n return PageSnapshot.fromElement(this.element);\n }\n}\n\nclass Preloader {\n constructor(delegate) {\n this.selector = \"a[data-turbo-preload]\";\n this.delegate = delegate;\n }\n get snapshotCache() {\n return this.delegate.navigator.view.snapshotCache;\n }\n start() {\n if (document.readyState === \"loading\") {\n return document.addEventListener(\"DOMContentLoaded\", () => {\n this.preloadOnLoadLinksForView(document.body);\n });\n }\n else {\n this.preloadOnLoadLinksForView(document.body);\n }\n }\n preloadOnLoadLinksForView(element) {\n for (const link of element.querySelectorAll(this.selector)) {\n this.preloadURL(link);\n }\n }\n async preloadURL(link) {\n const location = new URL(link.href);\n if (this.snapshotCache.has(location)) {\n return;\n }\n try {\n const response = await fetch(location.toString(), { headers: { \"VND.PREFETCH\": \"true\", Accept: \"text/html\" } });\n const responseText = await response.text();\n const snapshot = PageSnapshot.fromHTMLString(responseText);\n this.snapshotCache.put(location, snapshot);\n }\n catch (_) {\n }\n }\n}\n\nclass Session {\n constructor() {\n this.navigator = new Navigator(this);\n this.history = new History(this);\n this.preloader = new Preloader(this);\n this.view = new PageView(this, document.documentElement);\n this.adapter = new BrowserAdapter(this);\n this.pageObserver = new PageObserver(this);\n this.cacheObserver = new CacheObserver();\n this.linkClickObserver = new LinkClickObserver(this, window);\n this.formSubmitObserver = new FormSubmitObserver(this, document);\n this.scrollObserver = new ScrollObserver(this);\n this.streamObserver = new StreamObserver(this);\n this.formLinkClickObserver = new FormLinkClickObserver(this, document.documentElement);\n this.frameRedirector = new FrameRedirector(this, document.documentElement);\n this.streamMessageRenderer = new StreamMessageRenderer();\n this.drive = true;\n this.enabled = true;\n this.progressBarDelay = 500;\n this.started = false;\n this.formMode = \"on\";\n }\n start() {\n if (!this.started) {\n this.pageObserver.start();\n this.cacheObserver.start();\n this.formLinkClickObserver.start();\n this.linkClickObserver.start();\n this.formSubmitObserver.start();\n this.scrollObserver.start();\n this.streamObserver.start();\n this.frameRedirector.start();\n this.history.start();\n this.preloader.start();\n this.started = true;\n this.enabled = true;\n }\n }\n disable() {\n this.enabled = false;\n }\n stop() {\n if (this.started) {\n this.pageObserver.stop();\n this.cacheObserver.stop();\n this.formLinkClickObserver.stop();\n this.linkClickObserver.stop();\n this.formSubmitObserver.stop();\n this.scrollObserver.stop();\n this.streamObserver.stop();\n this.frameRedirector.stop();\n this.history.stop();\n this.started = false;\n }\n }\n registerAdapter(adapter) {\n this.adapter = adapter;\n }\n visit(location, options = {}) {\n const frameElement = options.frame ? document.getElementById(options.frame) : null;\n if (frameElement instanceof FrameElement) {\n frameElement.src = location.toString();\n frameElement.loaded;\n }\n else {\n this.navigator.proposeVisit(expandURL(location), options);\n }\n }\n connectStreamSource(source) {\n this.streamObserver.connectStreamSource(source);\n }\n disconnectStreamSource(source) {\n this.streamObserver.disconnectStreamSource(source);\n }\n renderStreamMessage(message) {\n this.streamMessageRenderer.render(StreamMessage.wrap(message));\n }\n clearCache() {\n this.view.clearSnapshotCache();\n }\n setProgressBarDelay(delay) {\n this.progressBarDelay = delay;\n }\n setFormMode(mode) {\n this.formMode = mode;\n }\n get location() {\n return this.history.location;\n }\n get restorationIdentifier() {\n return this.history.restorationIdentifier;\n }\n historyPoppedToLocationWithRestorationIdentifier(location, restorationIdentifier) {\n if (this.enabled) {\n this.navigator.startVisit(location, restorationIdentifier, {\n action: \"restore\",\n historyChanged: true,\n });\n }\n else {\n this.adapter.pageInvalidated({\n reason: \"turbo_disabled\",\n });\n }\n }\n scrollPositionChanged(position) {\n this.history.updateRestorationData({ scrollPosition: position });\n }\n willSubmitFormLinkToLocation(link, location) {\n return this.elementIsNavigatable(link) && locationIsVisitable(location, this.snapshot.rootLocation);\n }\n submittedFormLinkToLocation() { }\n willFollowLinkToLocation(link, location, event) {\n return (this.elementIsNavigatable(link) &&\n locationIsVisitable(location, this.snapshot.rootLocation) &&\n this.applicationAllowsFollowingLinkToLocation(link, location, event));\n }\n followedLinkToLocation(link, location) {\n const action = this.getActionForLink(link);\n const acceptsStreamResponse = link.hasAttribute(\"data-turbo-stream\");\n this.visit(location.href, { action, acceptsStreamResponse });\n }\n allowsVisitingLocationWithAction(location, action) {\n return this.locationWithActionIsSamePage(location, action) || this.applicationAllowsVisitingLocation(location);\n }\n visitProposedToLocation(location, options) {\n extendURLWithDeprecatedProperties(location);\n this.adapter.visitProposedToLocation(location, options);\n }\n visitStarted(visit) {\n if (!visit.acceptsStreamResponse) {\n markAsBusy(document.documentElement);\n }\n extendURLWithDeprecatedProperties(visit.location);\n if (!visit.silent) {\n this.notifyApplicationAfterVisitingLocation(visit.location, visit.action);\n }\n }\n visitCompleted(visit) {\n clearBusyState(document.documentElement);\n this.notifyApplicationAfterPageLoad(visit.getTimingMetrics());\n }\n locationWithActionIsSamePage(location, action) {\n return this.navigator.locationWithActionIsSamePage(location, action);\n }\n visitScrolledToSamePageLocation(oldURL, newURL) {\n this.notifyApplicationAfterVisitingSamePageLocation(oldURL, newURL);\n }\n willSubmitForm(form, submitter) {\n const action = getAction(form, submitter);\n return (this.submissionIsNavigatable(form, submitter) &&\n locationIsVisitable(expandURL(action), this.snapshot.rootLocation));\n }\n formSubmitted(form, submitter) {\n this.navigator.submitForm(form, submitter);\n }\n pageBecameInteractive() {\n this.view.lastRenderedLocation = this.location;\n this.notifyApplicationAfterPageLoad();\n }\n pageLoaded() {\n this.history.assumeControlOfScrollRestoration();\n }\n pageWillUnload() {\n this.history.relinquishControlOfScrollRestoration();\n }\n receivedMessageFromStream(message) {\n this.renderStreamMessage(message);\n }\n viewWillCacheSnapshot() {\n var _a;\n if (!((_a = this.navigator.currentVisit) === null || _a === void 0 ? void 0 : _a.silent)) {\n this.notifyApplicationBeforeCachingSnapshot();\n }\n }\n allowsImmediateRender({ element }, options) {\n const event = this.notifyApplicationBeforeRender(element, options);\n const { defaultPrevented, detail: { render }, } = event;\n if (this.view.renderer && render) {\n this.view.renderer.renderElement = render;\n }\n return !defaultPrevented;\n }\n viewRenderedSnapshot(_snapshot, _isPreview) {\n this.view.lastRenderedLocation = this.history.location;\n this.notifyApplicationAfterRender();\n }\n preloadOnLoadLinksForView(element) {\n this.preloader.preloadOnLoadLinksForView(element);\n }\n viewInvalidated(reason) {\n this.adapter.pageInvalidated(reason);\n }\n frameLoaded(frame) {\n this.notifyApplicationAfterFrameLoad(frame);\n }\n frameRendered(fetchResponse, frame) {\n this.notifyApplicationAfterFrameRender(fetchResponse, frame);\n }\n applicationAllowsFollowingLinkToLocation(link, location, ev) {\n const event = this.notifyApplicationAfterClickingLinkToLocation(link, location, ev);\n return !event.defaultPrevented;\n }\n applicationAllowsVisitingLocation(location) {\n const event = this.notifyApplicationBeforeVisitingLocation(location);\n return !event.defaultPrevented;\n }\n notifyApplicationAfterClickingLinkToLocation(link, location, event) {\n return dispatch(\"turbo:click\", {\n target: link,\n detail: { url: location.href, originalEvent: event },\n cancelable: true,\n });\n }\n notifyApplicationBeforeVisitingLocation(location) {\n return dispatch(\"turbo:before-visit\", {\n detail: { url: location.href },\n cancelable: true,\n });\n }\n notifyApplicationAfterVisitingLocation(location, action) {\n return dispatch(\"turbo:visit\", { detail: { url: location.href, action } });\n }\n notifyApplicationBeforeCachingSnapshot() {\n return dispatch(\"turbo:before-cache\");\n }\n notifyApplicationBeforeRender(newBody, options) {\n return dispatch(\"turbo:before-render\", {\n detail: Object.assign({ newBody }, options),\n cancelable: true,\n });\n }\n notifyApplicationAfterRender() {\n return dispatch(\"turbo:render\");\n }\n notifyApplicationAfterPageLoad(timing = {}) {\n return dispatch(\"turbo:load\", {\n detail: { url: this.location.href, timing },\n });\n }\n notifyApplicationAfterVisitingSamePageLocation(oldURL, newURL) {\n dispatchEvent(new HashChangeEvent(\"hashchange\", {\n oldURL: oldURL.toString(),\n newURL: newURL.toString(),\n }));\n }\n notifyApplicationAfterFrameLoad(frame) {\n return dispatch(\"turbo:frame-load\", { target: frame });\n }\n notifyApplicationAfterFrameRender(fetchResponse, frame) {\n return dispatch(\"turbo:frame-render\", {\n detail: { fetchResponse },\n target: frame,\n cancelable: true,\n });\n }\n submissionIsNavigatable(form, submitter) {\n if (this.formMode == \"off\") {\n return false;\n }\n else {\n const submitterIsNavigatable = submitter ? this.elementIsNavigatable(submitter) : true;\n if (this.formMode == \"optin\") {\n return submitterIsNavigatable && form.closest('[data-turbo=\"true\"]') != null;\n }\n else {\n return submitterIsNavigatable && this.elementIsNavigatable(form);\n }\n }\n }\n elementIsNavigatable(element) {\n const container = findClosestRecursively(element, \"[data-turbo]\");\n const withinFrame = findClosestRecursively(element, \"turbo-frame\");\n if (this.drive || withinFrame) {\n if (container) {\n return container.getAttribute(\"data-turbo\") != \"false\";\n }\n else {\n return true;\n }\n }\n else {\n if (container) {\n return container.getAttribute(\"data-turbo\") == \"true\";\n }\n else {\n return false;\n }\n }\n }\n getActionForLink(link) {\n return getVisitAction(link) || \"advance\";\n }\n get snapshot() {\n return this.view.snapshot;\n }\n}\nfunction extendURLWithDeprecatedProperties(url) {\n Object.defineProperties(url, deprecatedLocationPropertyDescriptors);\n}\nconst deprecatedLocationPropertyDescriptors = {\n absoluteURL: {\n get() {\n return this.toString();\n },\n },\n};\n\nclass Cache {\n constructor(session) {\n this.session = session;\n }\n clear() {\n this.session.clearCache();\n }\n resetCacheControl() {\n this.setCacheControl(\"\");\n }\n exemptPageFromCache() {\n this.setCacheControl(\"no-cache\");\n }\n exemptPageFromPreview() {\n this.setCacheControl(\"no-preview\");\n }\n setCacheControl(value) {\n setMetaContent(\"turbo-cache-control\", value);\n }\n}\n\nconst StreamActions = {\n after() {\n this.targetElements.forEach((e) => { var _a; return (_a = e.parentElement) === null || _a === void 0 ? void 0 : _a.insertBefore(this.templateContent, e.nextSibling); });\n },\n append() {\n this.removeDuplicateTargetChildren();\n this.targetElements.forEach((e) => e.append(this.templateContent));\n },\n before() {\n this.targetElements.forEach((e) => { var _a; return (_a = e.parentElement) === null || _a === void 0 ? void 0 : _a.insertBefore(this.templateContent, e); });\n },\n prepend() {\n this.removeDuplicateTargetChildren();\n this.targetElements.forEach((e) => e.prepend(this.templateContent));\n },\n remove() {\n this.targetElements.forEach((e) => e.remove());\n },\n replace() {\n this.targetElements.forEach((e) => e.replaceWith(this.templateContent));\n },\n update() {\n this.targetElements.forEach((targetElement) => {\n targetElement.innerHTML = \"\";\n targetElement.append(this.templateContent);\n });\n },\n};\n\nconst session = new Session();\nconst cache = new Cache(session);\nconst { navigator: navigator$1 } = session;\nfunction start() {\n session.start();\n}\nfunction registerAdapter(adapter) {\n session.registerAdapter(adapter);\n}\nfunction visit(location, options) {\n session.visit(location, options);\n}\nfunction connectStreamSource(source) {\n session.connectStreamSource(source);\n}\nfunction disconnectStreamSource(source) {\n session.disconnectStreamSource(source);\n}\nfunction renderStreamMessage(message) {\n session.renderStreamMessage(message);\n}\nfunction clearCache() {\n console.warn(\"Please replace `Turbo.clearCache()` with `Turbo.cache.clear()`. The top-level function is deprecated and will be removed in a future version of Turbo.`\");\n session.clearCache();\n}\nfunction setProgressBarDelay(delay) {\n session.setProgressBarDelay(delay);\n}\nfunction setConfirmMethod(confirmMethod) {\n FormSubmission.confirmMethod = confirmMethod;\n}\nfunction setFormMode(mode) {\n session.setFormMode(mode);\n}\n\nvar Turbo = /*#__PURE__*/Object.freeze({\n __proto__: null,\n navigator: navigator$1,\n session: session,\n cache: cache,\n PageRenderer: PageRenderer,\n PageSnapshot: PageSnapshot,\n FrameRenderer: FrameRenderer,\n start: start,\n registerAdapter: registerAdapter,\n visit: visit,\n connectStreamSource: connectStreamSource,\n disconnectStreamSource: disconnectStreamSource,\n renderStreamMessage: renderStreamMessage,\n clearCache: clearCache,\n setProgressBarDelay: setProgressBarDelay,\n setConfirmMethod: setConfirmMethod,\n setFormMode: setFormMode,\n StreamActions: StreamActions\n});\n\nclass TurboFrameMissingError extends Error {\n}\n\nclass FrameController {\n constructor(element) {\n this.fetchResponseLoaded = (_fetchResponse) => { };\n this.currentFetchRequest = null;\n this.resolveVisitPromise = () => { };\n this.connected = false;\n this.hasBeenLoaded = false;\n this.ignoredAttributes = new Set();\n this.action = null;\n this.visitCachedSnapshot = ({ element }) => {\n const frame = element.querySelector(\"#\" + this.element.id);\n if (frame && this.previousFrameElement) {\n frame.replaceChildren(...this.previousFrameElement.children);\n }\n delete this.previousFrameElement;\n };\n this.element = element;\n this.view = new FrameView(this, this.element);\n this.appearanceObserver = new AppearanceObserver(this, this.element);\n this.formLinkClickObserver = new FormLinkClickObserver(this, this.element);\n this.linkInterceptor = new LinkInterceptor(this, this.element);\n this.restorationIdentifier = uuid();\n this.formSubmitObserver = new FormSubmitObserver(this, this.element);\n }\n connect() {\n if (!this.connected) {\n this.connected = true;\n if (this.loadingStyle == FrameLoadingStyle.lazy) {\n this.appearanceObserver.start();\n }\n else {\n this.loadSourceURL();\n }\n this.formLinkClickObserver.start();\n this.linkInterceptor.start();\n this.formSubmitObserver.start();\n }\n }\n disconnect() {\n if (this.connected) {\n this.connected = false;\n this.appearanceObserver.stop();\n this.formLinkClickObserver.stop();\n this.linkInterceptor.stop();\n this.formSubmitObserver.stop();\n }\n }\n disabledChanged() {\n if (this.loadingStyle == FrameLoadingStyle.eager) {\n this.loadSourceURL();\n }\n }\n sourceURLChanged() {\n if (this.isIgnoringChangesTo(\"src\"))\n return;\n if (this.element.isConnected) {\n this.complete = false;\n }\n if (this.loadingStyle == FrameLoadingStyle.eager || this.hasBeenLoaded) {\n this.loadSourceURL();\n }\n }\n sourceURLReloaded() {\n const { src } = this.element;\n this.ignoringChangesToAttribute(\"complete\", () => {\n this.element.removeAttribute(\"complete\");\n });\n this.element.src = null;\n this.element.src = src;\n return this.element.loaded;\n }\n completeChanged() {\n if (this.isIgnoringChangesTo(\"complete\"))\n return;\n this.loadSourceURL();\n }\n loadingStyleChanged() {\n if (this.loadingStyle == FrameLoadingStyle.lazy) {\n this.appearanceObserver.start();\n }\n else {\n this.appearanceObserver.stop();\n this.loadSourceURL();\n }\n }\n async loadSourceURL() {\n if (this.enabled && this.isActive && !this.complete && this.sourceURL) {\n this.element.loaded = this.visit(expandURL(this.sourceURL));\n this.appearanceObserver.stop();\n await this.element.loaded;\n this.hasBeenLoaded = true;\n }\n }\n async loadResponse(fetchResponse) {\n if (fetchResponse.redirected || (fetchResponse.succeeded && fetchResponse.isHTML)) {\n this.sourceURL = fetchResponse.response.url;\n }\n try {\n const html = await fetchResponse.responseHTML;\n if (html) {\n const document = parseHTMLDocument(html);\n const pageSnapshot = PageSnapshot.fromDocument(document);\n if (pageSnapshot.isVisitable) {\n await this.loadFrameResponse(fetchResponse, document);\n }\n else {\n await this.handleUnvisitableFrameResponse(fetchResponse);\n }\n }\n }\n finally {\n this.fetchResponseLoaded = () => { };\n }\n }\n elementAppearedInViewport(element) {\n this.proposeVisitIfNavigatedWithAction(element, element);\n this.loadSourceURL();\n }\n willSubmitFormLinkToLocation(link) {\n return this.shouldInterceptNavigation(link);\n }\n submittedFormLinkToLocation(link, _location, form) {\n const frame = this.findFrameElement(link);\n if (frame)\n form.setAttribute(\"data-turbo-frame\", frame.id);\n }\n shouldInterceptLinkClick(element, _location, _event) {\n return this.shouldInterceptNavigation(element);\n }\n linkClickIntercepted(element, location) {\n this.navigateFrame(element, location);\n }\n willSubmitForm(element, submitter) {\n return element.closest(\"turbo-frame\") == this.element && this.shouldInterceptNavigation(element, submitter);\n }\n formSubmitted(element, submitter) {\n if (this.formSubmission) {\n this.formSubmission.stop();\n }\n this.formSubmission = new FormSubmission(this, element, submitter);\n const { fetchRequest } = this.formSubmission;\n this.prepareRequest(fetchRequest);\n this.formSubmission.start();\n }\n prepareRequest(request) {\n var _a;\n request.headers[\"Turbo-Frame\"] = this.id;\n if ((_a = this.currentNavigationElement) === null || _a === void 0 ? void 0 : _a.hasAttribute(\"data-turbo-stream\")) {\n request.acceptResponseType(StreamMessage.contentType);\n }\n }\n requestStarted(_request) {\n markAsBusy(this.element);\n }\n requestPreventedHandlingResponse(_request, _response) {\n this.resolveVisitPromise();\n }\n async requestSucceededWithResponse(request, response) {\n await this.loadResponse(response);\n this.resolveVisitPromise();\n }\n async requestFailedWithResponse(request, response) {\n await this.loadResponse(response);\n this.resolveVisitPromise();\n }\n requestErrored(request, error) {\n console.error(error);\n this.resolveVisitPromise();\n }\n requestFinished(_request) {\n clearBusyState(this.element);\n }\n formSubmissionStarted({ formElement }) {\n markAsBusy(formElement, this.findFrameElement(formElement));\n }\n formSubmissionSucceededWithResponse(formSubmission, response) {\n const frame = this.findFrameElement(formSubmission.formElement, formSubmission.submitter);\n frame.delegate.proposeVisitIfNavigatedWithAction(frame, formSubmission.formElement, formSubmission.submitter);\n frame.delegate.loadResponse(response);\n if (!formSubmission.isSafe) {\n session.clearCache();\n }\n }\n formSubmissionFailedWithResponse(formSubmission, fetchResponse) {\n this.element.delegate.loadResponse(fetchResponse);\n session.clearCache();\n }\n formSubmissionErrored(formSubmission, error) {\n console.error(error);\n }\n formSubmissionFinished({ formElement }) {\n clearBusyState(formElement, this.findFrameElement(formElement));\n }\n allowsImmediateRender({ element: newFrame }, options) {\n const event = dispatch(\"turbo:before-frame-render\", {\n target: this.element,\n detail: Object.assign({ newFrame }, options),\n cancelable: true,\n });\n const { defaultPrevented, detail: { render }, } = event;\n if (this.view.renderer && render) {\n this.view.renderer.renderElement = render;\n }\n return !defaultPrevented;\n }\n viewRenderedSnapshot(_snapshot, _isPreview) { }\n preloadOnLoadLinksForView(element) {\n session.preloadOnLoadLinksForView(element);\n }\n viewInvalidated() { }\n willRenderFrame(currentElement, _newElement) {\n this.previousFrameElement = currentElement.cloneNode(true);\n }\n async loadFrameResponse(fetchResponse, document) {\n const newFrameElement = await this.extractForeignFrameElement(document.body);\n if (newFrameElement) {\n const snapshot = new Snapshot(newFrameElement);\n const renderer = new FrameRenderer(this, this.view.snapshot, snapshot, FrameRenderer.renderElement, false, false);\n if (this.view.renderPromise)\n await this.view.renderPromise;\n this.changeHistory();\n await this.view.render(renderer);\n this.complete = true;\n session.frameRendered(fetchResponse, this.element);\n session.frameLoaded(this.element);\n this.fetchResponseLoaded(fetchResponse);\n }\n else if (this.willHandleFrameMissingFromResponse(fetchResponse)) {\n this.handleFrameMissingFromResponse(fetchResponse);\n }\n }\n async visit(url) {\n var _a;\n const request = new FetchRequest(this, FetchMethod.get, url, new URLSearchParams(), this.element);\n (_a = this.currentFetchRequest) === null || _a === void 0 ? void 0 : _a.cancel();\n this.currentFetchRequest = request;\n return new Promise((resolve) => {\n this.resolveVisitPromise = () => {\n this.resolveVisitPromise = () => { };\n this.currentFetchRequest = null;\n resolve();\n };\n request.perform();\n });\n }\n navigateFrame(element, url, submitter) {\n const frame = this.findFrameElement(element, submitter);\n frame.delegate.proposeVisitIfNavigatedWithAction(frame, element, submitter);\n this.withCurrentNavigationElement(element, () => {\n frame.src = url;\n });\n }\n proposeVisitIfNavigatedWithAction(frame, element, submitter) {\n this.action = getVisitAction(submitter, element, frame);\n if (this.action) {\n const pageSnapshot = PageSnapshot.fromElement(frame).clone();\n const { visitCachedSnapshot } = frame.delegate;\n frame.delegate.fetchResponseLoaded = (fetchResponse) => {\n if (frame.src) {\n const { statusCode, redirected } = fetchResponse;\n const responseHTML = frame.ownerDocument.documentElement.outerHTML;\n const response = { statusCode, redirected, responseHTML };\n const options = {\n response,\n visitCachedSnapshot,\n willRender: false,\n updateHistory: false,\n restorationIdentifier: this.restorationIdentifier,\n snapshot: pageSnapshot,\n };\n if (this.action)\n options.action = this.action;\n session.visit(frame.src, options);\n }\n };\n }\n }\n changeHistory() {\n if (this.action) {\n const method = getHistoryMethodForAction(this.action);\n session.history.update(method, expandURL(this.element.src || \"\"), this.restorationIdentifier);\n }\n }\n async handleUnvisitableFrameResponse(fetchResponse) {\n console.warn(`The response (${fetchResponse.statusCode}) from <turbo-frame id=\"${this.element.id}\"> is performing a full page visit due to turbo-visit-control.`);\n await this.visitResponse(fetchResponse.response);\n }\n willHandleFrameMissingFromResponse(fetchResponse) {\n this.element.setAttribute(\"complete\", \"\");\n const response = fetchResponse.response;\n const visit = async (url, options = {}) => {\n if (url instanceof Response) {\n this.visitResponse(url);\n }\n else {\n session.visit(url, options);\n }\n };\n const event = dispatch(\"turbo:frame-missing\", {\n target: this.element,\n detail: { response, visit },\n cancelable: true,\n });\n return !event.defaultPrevented;\n }\n handleFrameMissingFromResponse(fetchResponse) {\n this.view.missing();\n this.throwFrameMissingError(fetchResponse);\n }\n throwFrameMissingError(fetchResponse) {\n const message = `The response (${fetchResponse.statusCode}) did not contain the expected <turbo-frame id=\"${this.element.id}\"> and will be ignored. To perform a full page visit instead, set turbo-visit-control to reload.`;\n throw new TurboFrameMissingError(message);\n }\n async visitResponse(response) {\n const wrapped = new FetchResponse(response);\n const responseHTML = await wrapped.responseHTML;\n const { location, redirected, statusCode } = wrapped;\n return session.visit(location, { response: { redirected, statusCode, responseHTML } });\n }\n findFrameElement(element, submitter) {\n var _a;\n const id = getAttribute(\"data-turbo-frame\", submitter, element) || this.element.getAttribute(\"target\");\n return (_a = getFrameElementById(id)) !== null && _a !== void 0 ? _a : this.element;\n }\n async extractForeignFrameElement(container) {\n let element;\n const id = CSS.escape(this.id);\n try {\n element = activateElement(container.querySelector(`turbo-frame#${id}`), this.sourceURL);\n if (element) {\n return element;\n }\n element = activateElement(container.querySelector(`turbo-frame[src][recurse~=${id}]`), this.sourceURL);\n if (element) {\n await element.loaded;\n return await this.extractForeignFrameElement(element);\n }\n }\n catch (error) {\n console.error(error);\n return new FrameElement();\n }\n return null;\n }\n formActionIsVisitable(form, submitter) {\n const action = getAction(form, submitter);\n return locationIsVisitable(expandURL(action), this.rootLocation);\n }\n shouldInterceptNavigation(element, submitter) {\n const id = getAttribute(\"data-turbo-frame\", submitter, element) || this.element.getAttribute(\"target\");\n if (element instanceof HTMLFormElement && !this.formActionIsVisitable(element, submitter)) {\n return false;\n }\n if (!this.enabled || id == \"_top\") {\n return false;\n }\n if (id) {\n const frameElement = getFrameElementById(id);\n if (frameElement) {\n return !frameElement.disabled;\n }\n }\n if (!session.elementIsNavigatable(element)) {\n return false;\n }\n if (submitter && !session.elementIsNavigatable(submitter)) {\n return false;\n }\n return true;\n }\n get id() {\n return this.element.id;\n }\n get enabled() {\n return !this.element.disabled;\n }\n get sourceURL() {\n if (this.element.src) {\n return this.element.src;\n }\n }\n set sourceURL(sourceURL) {\n this.ignoringChangesToAttribute(\"src\", () => {\n this.element.src = sourceURL !== null && sourceURL !== void 0 ? sourceURL : null;\n });\n }\n get loadingStyle() {\n return this.element.loading;\n }\n get isLoading() {\n return this.formSubmission !== undefined || this.resolveVisitPromise() !== undefined;\n }\n get complete() {\n return this.element.hasAttribute(\"complete\");\n }\n set complete(value) {\n this.ignoringChangesToAttribute(\"complete\", () => {\n if (value) {\n this.element.setAttribute(\"complete\", \"\");\n }\n else {\n this.element.removeAttribute(\"complete\");\n }\n });\n }\n get isActive() {\n return this.element.isActive && this.connected;\n }\n get rootLocation() {\n var _a;\n const meta = this.element.ownerDocument.querySelector(`meta[name=\"turbo-root\"]`);\n const root = (_a = meta === null || meta === void 0 ? void 0 : meta.content) !== null && _a !== void 0 ? _a : \"/\";\n return expandURL(root);\n }\n isIgnoringChangesTo(attributeName) {\n return this.ignoredAttributes.has(attributeName);\n }\n ignoringChangesToAttribute(attributeName, callback) {\n this.ignoredAttributes.add(attributeName);\n callback();\n this.ignoredAttributes.delete(attributeName);\n }\n withCurrentNavigationElement(element, callback) {\n this.currentNavigationElement = element;\n callback();\n delete this.currentNavigationElement;\n }\n}\nfunction getFrameElementById(id) {\n if (id != null) {\n const element = document.getElementById(id);\n if (element instanceof FrameElement) {\n return element;\n }\n }\n}\nfunction activateElement(element, currentURL) {\n if (element) {\n const src = element.getAttribute(\"src\");\n if (src != null && currentURL != null && urlsAreEqual(src, currentURL)) {\n throw new Error(`Matching <turbo-frame id=\"${element.id}\"> element has a source URL which references itself`);\n }\n if (element.ownerDocument !== document) {\n element = document.importNode(element, true);\n }\n if (element instanceof FrameElement) {\n element.connectedCallback();\n element.disconnectedCallback();\n return element;\n }\n }\n}\n\nclass StreamElement extends HTMLElement {\n static async renderElement(newElement) {\n await newElement.performAction();\n }\n async connectedCallback() {\n try {\n await this.render();\n }\n catch (error) {\n console.error(error);\n }\n finally {\n this.disconnect();\n }\n }\n async render() {\n var _a;\n return ((_a = this.renderPromise) !== null && _a !== void 0 ? _a : (this.renderPromise = (async () => {\n const event = this.beforeRenderEvent;\n if (this.dispatchEvent(event)) {\n await nextAnimationFrame();\n await event.detail.render(this);\n }\n })()));\n }\n disconnect() {\n try {\n this.remove();\n }\n catch (_a) { }\n }\n removeDuplicateTargetChildren() {\n this.duplicateChildren.forEach((c) => c.remove());\n }\n get duplicateChildren() {\n var _a;\n const existingChildren = this.targetElements.flatMap((e) => [...e.children]).filter((c) => !!c.id);\n const newChildrenIds = [...(((_a = this.templateContent) === null || _a === void 0 ? void 0 : _a.children) || [])].filter((c) => !!c.id).map((c) => c.id);\n return existingChildren.filter((c) => newChildrenIds.includes(c.id));\n }\n get performAction() {\n if (this.action) {\n const actionFunction = StreamActions[this.action];\n if (actionFunction) {\n return actionFunction;\n }\n this.raise(\"unknown action\");\n }\n this.raise(\"action attribute is missing\");\n }\n get targetElements() {\n if (this.target) {\n return this.targetElementsById;\n }\n else if (this.targets) {\n return this.targetElementsByQuery;\n }\n else {\n this.raise(\"target or targets attribute is missing\");\n }\n }\n get templateContent() {\n return this.templateElement.content.cloneNode(true);\n }\n get templateElement() {\n if (this.firstElementChild === null) {\n const template = this.ownerDocument.createElement(\"template\");\n this.appendChild(template);\n return template;\n }\n else if (this.firstElementChild instanceof HTMLTemplateElement) {\n return this.firstElementChild;\n }\n this.raise(\"first child element must be a <template> element\");\n }\n get action() {\n return this.getAttribute(\"action\");\n }\n get target() {\n return this.getAttribute(\"target\");\n }\n get targets() {\n return this.getAttribute(\"targets\");\n }\n raise(message) {\n throw new Error(`${this.description}: ${message}`);\n }\n get description() {\n var _a, _b;\n return (_b = ((_a = this.outerHTML.match(/<[^>]+>/)) !== null && _a !== void 0 ? _a : [])[0]) !== null && _b !== void 0 ? _b : \"<turbo-stream>\";\n }\n get beforeRenderEvent() {\n return new CustomEvent(\"turbo:before-stream-render\", {\n bubbles: true,\n cancelable: true,\n detail: { newStream: this, render: StreamElement.renderElement },\n });\n }\n get targetElementsById() {\n var _a;\n const element = (_a = this.ownerDocument) === null || _a === void 0 ? void 0 : _a.getElementById(this.target);\n if (element !== null) {\n return [element];\n }\n else {\n return [];\n }\n }\n get targetElementsByQuery() {\n var _a;\n const elements = (_a = this.ownerDocument) === null || _a === void 0 ? void 0 : _a.querySelectorAll(this.targets);\n if (elements.length !== 0) {\n return Array.prototype.slice.call(elements);\n }\n else {\n return [];\n }\n }\n}\n\nclass StreamSourceElement extends HTMLElement {\n constructor() {\n super(...arguments);\n this.streamSource = null;\n }\n connectedCallback() {\n this.streamSource = this.src.match(/^ws{1,2}:/) ? new WebSocket(this.src) : new EventSource(this.src);\n connectStreamSource(this.streamSource);\n }\n disconnectedCallback() {\n if (this.streamSource) {\n disconnectStreamSource(this.streamSource);\n }\n }\n get src() {\n return this.getAttribute(\"src\") || \"\";\n }\n}\n\nFrameElement.delegateConstructor = FrameController;\nif (customElements.get(\"turbo-frame\") === undefined) {\n customElements.define(\"turbo-frame\", FrameElement);\n}\nif (customElements.get(\"turbo-stream\") === undefined) {\n customElements.define(\"turbo-stream\", StreamElement);\n}\nif (customElements.get(\"turbo-stream-source\") === undefined) {\n customElements.define(\"turbo-stream-source\", StreamSourceElement);\n}\n\n(() => {\n let element = document.currentScript;\n if (!element)\n return;\n if (element.hasAttribute(\"data-turbo-suppress-warning\"))\n return;\n element = element.parentElement;\n while (element) {\n if (element == document.body) {\n return console.warn(unindent `\n You are loading Turbo from a <script> element inside the <body> element. This is probably not what you meant to do!\n\n Load your application\u2019s JavaScript bundle inside the <head> element instead. <script> elements in <body> are evaluated with each page change.\n\n For more information, see: https://turbo.hotwired.dev/handbook/building#working-with-script-elements\n\n \u2014\u2014\n Suppress this warning by adding a \"data-turbo-suppress-warning\" attribute to: %s\n `, element.outerHTML);\n }\n element = element.parentElement;\n }\n})();\n\nwindow.Turbo = Turbo;\nstart();\n\nexport { FrameElement, FrameLoadingStyle, FrameRenderer, PageRenderer, PageSnapshot, StreamActions, StreamElement, StreamSourceElement, cache, clearCache, connectStreamSource, disconnectStreamSource, navigator$1 as navigator, registerAdapter, renderStreamMessage, session, setConfirmMethod, setFormMode, setProgressBarDelay, start, visit };\n", "let consumer\n\nexport async function getConsumer() {\n return consumer || setConsumer(createConsumer().then(setConsumer))\n}\n\nexport function setConsumer(newConsumer) {\n return consumer = newConsumer\n}\n\nexport async function createConsumer() {\n const { createConsumer } = await import(/* webpackChunkName: \"actioncable\" */ \"@rails/actioncable/src\")\n return createConsumer()\n}\n\nexport async function subscribeTo(channel, mixin) {\n const { subscriptions } = await getConsumer()\n return subscriptions.create(channel, mixin)\n}\n", "// Based on https://github.com/nathan7/snakeize\n//\n// This software is released under the MIT license:\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\nexport default function walk (obj) {\n if (!obj || typeof obj !== 'object') return obj;\n if (obj instanceof Date || obj instanceof RegExp) return obj;\n if (Array.isArray(obj)) return obj.map(walk);\n return Object.keys(obj).reduce(function (acc, key) {\n var camel = key[0].toLowerCase() + key.slice(1).replace(/([A-Z]+)/g, function (m, x) {\n return '_' + x.toLowerCase();\n });\n acc[camel] = walk(obj[key]);\n return acc;\n }, {});\n};", "import { connectStreamSource, disconnectStreamSource } from \"@hotwired/turbo\"\nimport { subscribeTo } from \"./cable\"\nimport snakeize from \"./snakeize\"\n\nclass TurboCableStreamSourceElement extends HTMLElement {\n async connectedCallback() {\n connectStreamSource(this)\n this.subscription = await subscribeTo(this.channel, {\n received: this.dispatchMessageEvent.bind(this),\n connected: this.subscriptionConnected.bind(this),\n disconnected: this.subscriptionDisconnected.bind(this)\n })\n }\n\n disconnectedCallback() {\n disconnectStreamSource(this)\n if (this.subscription) this.subscription.unsubscribe()\n }\n\n dispatchMessageEvent(data) {\n const event = new MessageEvent(\"message\", { data })\n return this.dispatchEvent(event)\n }\n\n subscriptionConnected() {\n this.setAttribute(\"connected\", \"\")\n }\n\n subscriptionDisconnected() {\n this.removeAttribute(\"connected\")\n }\n\n get channel() {\n const channel = this.getAttribute(\"channel\")\n const signed_stream_name = this.getAttribute(\"signed-stream-name\")\n return { channel, signed_stream_name, ...snakeize({ ...this.dataset }) }\n }\n}\n\n\nif (customElements.get(\"turbo-cable-stream-source\") === undefined) {\n customElements.define(\"turbo-cable-stream-source\", TurboCableStreamSourceElement)\n}\n", "export function encodeMethodIntoRequestBody(event) {\n if (event.target instanceof HTMLFormElement) {\n const { target: form, detail: { fetchOptions } } = event\n\n form.addEventListener(\"turbo:submit-start\", ({ detail: { formSubmission: { submitter } } }) => {\n const body = isBodyInit(fetchOptions.body) ? fetchOptions.body : new URLSearchParams()\n const method = determineFetchMethod(submitter, body, form)\n\n if (!/get/i.test(method)) {\n if (/post/i.test(method)) {\n body.delete(\"_method\")\n } else {\n body.set(\"_method\", method)\n }\n\n fetchOptions.method = \"post\"\n }\n }, { once: true })\n }\n}\n\nfunction determineFetchMethod(submitter, body, form) {\n const formMethod = determineFormMethod(submitter)\n const overrideMethod = body.get(\"_method\")\n const method = form.getAttribute(\"method\") || \"get\"\n\n if (typeof formMethod == \"string\") {\n return formMethod\n } else if (typeof overrideMethod == \"string\") {\n return overrideMethod\n } else {\n return method\n }\n}\n\nfunction determineFormMethod(submitter) {\n if (submitter instanceof HTMLButtonElement || submitter instanceof HTMLInputElement) {\n if (submitter.hasAttribute(\"formmethod\")) {\n return submitter.formMethod\n } else {\n return null\n }\n } else {\n return null\n }\n}\n\nfunction isBodyInit(body) {\n return body instanceof FormData || body instanceof URLSearchParams\n}\n", "import \"./cable_stream_source_element\"\n\nimport * as Turbo from \"@hotwired/turbo\"\nexport { Turbo }\n\nimport * as cable from \"./cable\"\nexport { cable }\n\nimport { encodeMethodIntoRequestBody } from \"./fetch_requests\"\n\naddEventListener(\"turbo:before-fetch-request\", encodeMethodIntoRequestBody)\n", "/*\nStimulus 3.2.1\nCopyright \u00A9 2023 Basecamp, LLC\n */\nclass EventListener {\n constructor(eventTarget, eventName, eventOptions) {\n this.eventTarget = eventTarget;\n this.eventName = eventName;\n this.eventOptions = eventOptions;\n this.unorderedBindings = new Set();\n }\n connect() {\n this.eventTarget.addEventListener(this.eventName, this, this.eventOptions);\n }\n disconnect() {\n this.eventTarget.removeEventListener(this.eventName, this, this.eventOptions);\n }\n bindingConnected(binding) {\n this.unorderedBindings.add(binding);\n }\n bindingDisconnected(binding) {\n this.unorderedBindings.delete(binding);\n }\n handleEvent(event) {\n const extendedEvent = extendEvent(event);\n for (const binding of this.bindings) {\n if (extendedEvent.immediatePropagationStopped) {\n break;\n }\n else {\n binding.handleEvent(extendedEvent);\n }\n }\n }\n hasBindings() {\n return this.unorderedBindings.size > 0;\n }\n get bindings() {\n return Array.from(this.unorderedBindings).sort((left, right) => {\n const leftIndex = left.index, rightIndex = right.index;\n return leftIndex < rightIndex ? -1 : leftIndex > rightIndex ? 1 : 0;\n });\n }\n}\nfunction extendEvent(event) {\n if (\"immediatePropagationStopped\" in event) {\n return event;\n }\n else {\n const { stopImmediatePropagation } = event;\n return Object.assign(event, {\n immediatePropagationStopped: false,\n stopImmediatePropagation() {\n this.immediatePropagationStopped = true;\n stopImmediatePropagation.call(this);\n },\n });\n }\n}\n\nclass Dispatcher {\n constructor(application) {\n this.application = application;\n this.eventListenerMaps = new Map();\n this.started = false;\n }\n start() {\n if (!this.started) {\n this.started = true;\n this.eventListeners.forEach((eventListener) => eventListener.connect());\n }\n }\n stop() {\n if (this.started) {\n this.started = false;\n this.eventListeners.forEach((eventListener) => eventListener.disconnect());\n }\n }\n get eventListeners() {\n return Array.from(this.eventListenerMaps.values()).reduce((listeners, map) => listeners.concat(Array.from(map.values())), []);\n }\n bindingConnected(binding) {\n this.fetchEventListenerForBinding(binding).bindingConnected(binding);\n }\n bindingDisconnected(binding, clearEventListeners = false) {\n this.fetchEventListenerForBinding(binding).bindingDisconnected(binding);\n if (clearEventListeners)\n this.clearEventListenersForBinding(binding);\n }\n handleError(error, message, detail = {}) {\n this.application.handleError(error, `Error ${message}`, detail);\n }\n clearEventListenersForBinding(binding) {\n const eventListener = this.fetchEventListenerForBinding(binding);\n if (!eventListener.hasBindings()) {\n eventListener.disconnect();\n this.removeMappedEventListenerFor(binding);\n }\n }\n removeMappedEventListenerFor(binding) {\n const { eventTarget, eventName, eventOptions } = binding;\n const eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n const cacheKey = this.cacheKey(eventName, eventOptions);\n eventListenerMap.delete(cacheKey);\n if (eventListenerMap.size == 0)\n this.eventListenerMaps.delete(eventTarget);\n }\n fetchEventListenerForBinding(binding) {\n const { eventTarget, eventName, eventOptions } = binding;\n return this.fetchEventListener(eventTarget, eventName, eventOptions);\n }\n fetchEventListener(eventTarget, eventName, eventOptions) {\n const eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n const cacheKey = this.cacheKey(eventName, eventOptions);\n let eventListener = eventListenerMap.get(cacheKey);\n if (!eventListener) {\n eventListener = this.createEventListener(eventTarget, eventName, eventOptions);\n eventListenerMap.set(cacheKey, eventListener);\n }\n return eventListener;\n }\n createEventListener(eventTarget, eventName, eventOptions) {\n const eventListener = new EventListener(eventTarget, eventName, eventOptions);\n if (this.started) {\n eventListener.connect();\n }\n return eventListener;\n }\n fetchEventListenerMapForEventTarget(eventTarget) {\n let eventListenerMap = this.eventListenerMaps.get(eventTarget);\n if (!eventListenerMap) {\n eventListenerMap = new Map();\n this.eventListenerMaps.set(eventTarget, eventListenerMap);\n }\n return eventListenerMap;\n }\n cacheKey(eventName, eventOptions) {\n const parts = [eventName];\n Object.keys(eventOptions)\n .sort()\n .forEach((key) => {\n parts.push(`${eventOptions[key] ? \"\" : \"!\"}${key}`);\n });\n return parts.join(\":\");\n }\n}\n\nconst defaultActionDescriptorFilters = {\n stop({ event, value }) {\n if (value)\n event.stopPropagation();\n return true;\n },\n prevent({ event, value }) {\n if (value)\n event.preventDefault();\n return true;\n },\n self({ event, value, element }) {\n if (value) {\n return element === event.target;\n }\n else {\n return true;\n }\n },\n};\nconst descriptorPattern = /^(?:(?:([^.]+?)\\+)?(.+?)(?:\\.(.+?))?(?:@(window|document))?->)?(.+?)(?:#([^:]+?))(?::(.+))?$/;\nfunction parseActionDescriptorString(descriptorString) {\n const source = descriptorString.trim();\n const matches = source.match(descriptorPattern) || [];\n let eventName = matches[2];\n let keyFilter = matches[3];\n if (keyFilter && ![\"keydown\", \"keyup\", \"keypress\"].includes(eventName)) {\n eventName += `.${keyFilter}`;\n keyFilter = \"\";\n }\n return {\n eventTarget: parseEventTarget(matches[4]),\n eventName,\n eventOptions: matches[7] ? parseEventOptions(matches[7]) : {},\n identifier: matches[5],\n methodName: matches[6],\n keyFilter: matches[1] || keyFilter,\n };\n}\nfunction parseEventTarget(eventTargetName) {\n if (eventTargetName == \"window\") {\n return window;\n }\n else if (eventTargetName == \"document\") {\n return document;\n }\n}\nfunction parseEventOptions(eventOptions) {\n return eventOptions\n .split(\":\")\n .reduce((options, token) => Object.assign(options, { [token.replace(/^!/, \"\")]: !/^!/.test(token) }), {});\n}\nfunction stringifyEventTarget(eventTarget) {\n if (eventTarget == window) {\n return \"window\";\n }\n else if (eventTarget == document) {\n return \"document\";\n }\n}\n\nfunction camelize(value) {\n return value.replace(/(?:[_-])([a-z0-9])/g, (_, char) => char.toUpperCase());\n}\nfunction namespaceCamelize(value) {\n return camelize(value.replace(/--/g, \"-\").replace(/__/g, \"_\"));\n}\nfunction capitalize(value) {\n return value.charAt(0).toUpperCase() + value.slice(1);\n}\nfunction dasherize(value) {\n return value.replace(/([A-Z])/g, (_, char) => `-${char.toLowerCase()}`);\n}\nfunction tokenize(value) {\n return value.match(/[^\\s]+/g) || [];\n}\n\nfunction isSomething(object) {\n return object !== null && object !== undefined;\n}\nfunction hasProperty(object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n}\n\nconst allModifiers = [\"meta\", \"ctrl\", \"alt\", \"shift\"];\nclass Action {\n constructor(element, index, descriptor, schema) {\n this.element = element;\n this.index = index;\n this.eventTarget = descriptor.eventTarget || element;\n this.eventName = descriptor.eventName || getDefaultEventNameForElement(element) || error(\"missing event name\");\n this.eventOptions = descriptor.eventOptions || {};\n this.identifier = descriptor.identifier || error(\"missing identifier\");\n this.methodName = descriptor.methodName || error(\"missing method name\");\n this.keyFilter = descriptor.keyFilter || \"\";\n this.schema = schema;\n }\n static forToken(token, schema) {\n return new this(token.element, token.index, parseActionDescriptorString(token.content), schema);\n }\n toString() {\n const eventFilter = this.keyFilter ? `.${this.keyFilter}` : \"\";\n const eventTarget = this.eventTargetName ? `@${this.eventTargetName}` : \"\";\n return `${this.eventName}${eventFilter}${eventTarget}->${this.identifier}#${this.methodName}`;\n }\n shouldIgnoreKeyboardEvent(event) {\n if (!this.keyFilter) {\n return false;\n }\n const filters = this.keyFilter.split(\"+\");\n if (this.keyFilterDissatisfied(event, filters)) {\n return true;\n }\n const standardFilter = filters.filter((key) => !allModifiers.includes(key))[0];\n if (!standardFilter) {\n return false;\n }\n if (!hasProperty(this.keyMappings, standardFilter)) {\n error(`contains unknown key filter: ${this.keyFilter}`);\n }\n return this.keyMappings[standardFilter].toLowerCase() !== event.key.toLowerCase();\n }\n shouldIgnoreMouseEvent(event) {\n if (!this.keyFilter) {\n return false;\n }\n const filters = [this.keyFilter];\n if (this.keyFilterDissatisfied(event, filters)) {\n return true;\n }\n return false;\n }\n get params() {\n const params = {};\n const pattern = new RegExp(`^data-${this.identifier}-(.+)-param$`, \"i\");\n for (const { name, value } of Array.from(this.element.attributes)) {\n const match = name.match(pattern);\n const key = match && match[1];\n if (key) {\n params[camelize(key)] = typecast(value);\n }\n }\n return params;\n }\n get eventTargetName() {\n return stringifyEventTarget(this.eventTarget);\n }\n get keyMappings() {\n return this.schema.keyMappings;\n }\n keyFilterDissatisfied(event, filters) {\n const [meta, ctrl, alt, shift] = allModifiers.map((modifier) => filters.includes(modifier));\n return event.metaKey !== meta || event.ctrlKey !== ctrl || event.altKey !== alt || event.shiftKey !== shift;\n }\n}\nconst defaultEventNames = {\n a: () => \"click\",\n button: () => \"click\",\n form: () => \"submit\",\n details: () => \"toggle\",\n input: (e) => (e.getAttribute(\"type\") == \"submit\" ? \"click\" : \"input\"),\n select: () => \"change\",\n textarea: () => \"input\",\n};\nfunction getDefaultEventNameForElement(element) {\n const tagName = element.tagName.toLowerCase();\n if (tagName in defaultEventNames) {\n return defaultEventNames[tagName](element);\n }\n}\nfunction error(message) {\n throw new Error(message);\n}\nfunction typecast(value) {\n try {\n return JSON.parse(value);\n }\n catch (o_O) {\n return value;\n }\n}\n\nclass Binding {\n constructor(context, action) {\n this.context = context;\n this.action = action;\n }\n get index() {\n return this.action.index;\n }\n get eventTarget() {\n return this.action.eventTarget;\n }\n get eventOptions() {\n return this.action.eventOptions;\n }\n get identifier() {\n return this.context.identifier;\n }\n handleEvent(event) {\n const actionEvent = this.prepareActionEvent(event);\n if (this.willBeInvokedByEvent(event) && this.applyEventModifiers(actionEvent)) {\n this.invokeWithEvent(actionEvent);\n }\n }\n get eventName() {\n return this.action.eventName;\n }\n get method() {\n const method = this.controller[this.methodName];\n if (typeof method == \"function\") {\n return method;\n }\n throw new Error(`Action \"${this.action}\" references undefined method \"${this.methodName}\"`);\n }\n applyEventModifiers(event) {\n const { element } = this.action;\n const { actionDescriptorFilters } = this.context.application;\n const { controller } = this.context;\n let passes = true;\n for (const [name, value] of Object.entries(this.eventOptions)) {\n if (name in actionDescriptorFilters) {\n const filter = actionDescriptorFilters[name];\n passes = passes && filter({ name, value, event, element, controller });\n }\n else {\n continue;\n }\n }\n return passes;\n }\n prepareActionEvent(event) {\n return Object.assign(event, { params: this.action.params });\n }\n invokeWithEvent(event) {\n const { target, currentTarget } = event;\n try {\n this.method.call(this.controller, event);\n this.context.logDebugActivity(this.methodName, { event, target, currentTarget, action: this.methodName });\n }\n catch (error) {\n const { identifier, controller, element, index } = this;\n const detail = { identifier, controller, element, index, event };\n this.context.handleError(error, `invoking action \"${this.action}\"`, detail);\n }\n }\n willBeInvokedByEvent(event) {\n const eventTarget = event.target;\n if (event instanceof KeyboardEvent && this.action.shouldIgnoreKeyboardEvent(event)) {\n return false;\n }\n if (event instanceof MouseEvent && this.action.shouldIgnoreMouseEvent(event)) {\n return false;\n }\n if (this.element === eventTarget) {\n return true;\n }\n else if (eventTarget instanceof Element && this.element.contains(eventTarget)) {\n return this.scope.containsElement(eventTarget);\n }\n else {\n return this.scope.containsElement(this.action.element);\n }\n }\n get controller() {\n return this.context.controller;\n }\n get methodName() {\n return this.action.methodName;\n }\n get element() {\n return this.scope.element;\n }\n get scope() {\n return this.context.scope;\n }\n}\n\nclass ElementObserver {\n constructor(element, delegate) {\n this.mutationObserverInit = { attributes: true, childList: true, subtree: true };\n this.element = element;\n this.started = false;\n this.delegate = delegate;\n this.elements = new Set();\n this.mutationObserver = new MutationObserver((mutations) => this.processMutations(mutations));\n }\n start() {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, this.mutationObserverInit);\n this.refresh();\n }\n }\n pause(callback) {\n if (this.started) {\n this.mutationObserver.disconnect();\n this.started = false;\n }\n callback();\n if (!this.started) {\n this.mutationObserver.observe(this.element, this.mutationObserverInit);\n this.started = true;\n }\n }\n stop() {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n }\n refresh() {\n if (this.started) {\n const matches = new Set(this.matchElementsInTree());\n for (const element of Array.from(this.elements)) {\n if (!matches.has(element)) {\n this.removeElement(element);\n }\n }\n for (const element of Array.from(matches)) {\n this.addElement(element);\n }\n }\n }\n processMutations(mutations) {\n if (this.started) {\n for (const mutation of mutations) {\n this.processMutation(mutation);\n }\n }\n }\n processMutation(mutation) {\n if (mutation.type == \"attributes\") {\n this.processAttributeChange(mutation.target, mutation.attributeName);\n }\n else if (mutation.type == \"childList\") {\n this.processRemovedNodes(mutation.removedNodes);\n this.processAddedNodes(mutation.addedNodes);\n }\n }\n processAttributeChange(element, attributeName) {\n if (this.elements.has(element)) {\n if (this.delegate.elementAttributeChanged && this.matchElement(element)) {\n this.delegate.elementAttributeChanged(element, attributeName);\n }\n else {\n this.removeElement(element);\n }\n }\n else if (this.matchElement(element)) {\n this.addElement(element);\n }\n }\n processRemovedNodes(nodes) {\n for (const node of Array.from(nodes)) {\n const element = this.elementFromNode(node);\n if (element) {\n this.processTree(element, this.removeElement);\n }\n }\n }\n processAddedNodes(nodes) {\n for (const node of Array.from(nodes)) {\n const element = this.elementFromNode(node);\n if (element && this.elementIsActive(element)) {\n this.processTree(element, this.addElement);\n }\n }\n }\n matchElement(element) {\n return this.delegate.matchElement(element);\n }\n matchElementsInTree(tree = this.element) {\n return this.delegate.matchElementsInTree(tree);\n }\n processTree(tree, processor) {\n for (const element of this.matchElementsInTree(tree)) {\n processor.call(this, element);\n }\n }\n elementFromNode(node) {\n if (node.nodeType == Node.ELEMENT_NODE) {\n return node;\n }\n }\n elementIsActive(element) {\n if (element.isConnected != this.element.isConnected) {\n return false;\n }\n else {\n return this.element.contains(element);\n }\n }\n addElement(element) {\n if (!this.elements.has(element)) {\n if (this.elementIsActive(element)) {\n this.elements.add(element);\n if (this.delegate.elementMatched) {\n this.delegate.elementMatched(element);\n }\n }\n }\n }\n removeElement(element) {\n if (this.elements.has(element)) {\n this.elements.delete(element);\n if (this.delegate.elementUnmatched) {\n this.delegate.elementUnmatched(element);\n }\n }\n }\n}\n\nclass AttributeObserver {\n constructor(element, attributeName, delegate) {\n this.attributeName = attributeName;\n this.delegate = delegate;\n this.elementObserver = new ElementObserver(element, this);\n }\n get element() {\n return this.elementObserver.element;\n }\n get selector() {\n return `[${this.attributeName}]`;\n }\n start() {\n this.elementObserver.start();\n }\n pause(callback) {\n this.elementObserver.pause(callback);\n }\n stop() {\n this.elementObserver.stop();\n }\n refresh() {\n this.elementObserver.refresh();\n }\n get started() {\n return this.elementObserver.started;\n }\n matchElement(element) {\n return element.hasAttribute(this.attributeName);\n }\n matchElementsInTree(tree) {\n const match = this.matchElement(tree) ? [tree] : [];\n const matches = Array.from(tree.querySelectorAll(this.selector));\n return match.concat(matches);\n }\n elementMatched(element) {\n if (this.delegate.elementMatchedAttribute) {\n this.delegate.elementMatchedAttribute(element, this.attributeName);\n }\n }\n elementUnmatched(element) {\n if (this.delegate.elementUnmatchedAttribute) {\n this.delegate.elementUnmatchedAttribute(element, this.attributeName);\n }\n }\n elementAttributeChanged(element, attributeName) {\n if (this.delegate.elementAttributeValueChanged && this.attributeName == attributeName) {\n this.delegate.elementAttributeValueChanged(element, attributeName);\n }\n }\n}\n\nfunction add(map, key, value) {\n fetch(map, key).add(value);\n}\nfunction del(map, key, value) {\n fetch(map, key).delete(value);\n prune(map, key);\n}\nfunction fetch(map, key) {\n let values = map.get(key);\n if (!values) {\n values = new Set();\n map.set(key, values);\n }\n return values;\n}\nfunction prune(map, key) {\n const values = map.get(key);\n if (values != null && values.size == 0) {\n map.delete(key);\n }\n}\n\nclass Multimap {\n constructor() {\n this.valuesByKey = new Map();\n }\n get keys() {\n return Array.from(this.valuesByKey.keys());\n }\n get values() {\n const sets = Array.from(this.valuesByKey.values());\n return sets.reduce((values, set) => values.concat(Array.from(set)), []);\n }\n get size() {\n const sets = Array.from(this.valuesByKey.values());\n return sets.reduce((size, set) => size + set.size, 0);\n }\n add(key, value) {\n add(this.valuesByKey, key, value);\n }\n delete(key, value) {\n del(this.valuesByKey, key, value);\n }\n has(key, value) {\n const values = this.valuesByKey.get(key);\n return values != null && values.has(value);\n }\n hasKey(key) {\n return this.valuesByKey.has(key);\n }\n hasValue(value) {\n const sets = Array.from(this.valuesByKey.values());\n return sets.some((set) => set.has(value));\n }\n getValuesForKey(key) {\n const values = this.valuesByKey.get(key);\n return values ? Array.from(values) : [];\n }\n getKeysForValue(value) {\n return Array.from(this.valuesByKey)\n .filter(([_key, values]) => values.has(value))\n .map(([key, _values]) => key);\n }\n}\n\nclass IndexedMultimap extends Multimap {\n constructor() {\n super();\n this.keysByValue = new Map();\n }\n get values() {\n return Array.from(this.keysByValue.keys());\n }\n add(key, value) {\n super.add(key, value);\n add(this.keysByValue, value, key);\n }\n delete(key, value) {\n super.delete(key, value);\n del(this.keysByValue, value, key);\n }\n hasValue(value) {\n return this.keysByValue.has(value);\n }\n getKeysForValue(value) {\n const set = this.keysByValue.get(value);\n return set ? Array.from(set) : [];\n }\n}\n\nclass SelectorObserver {\n constructor(element, selector, delegate, details) {\n this._selector = selector;\n this.details = details;\n this.elementObserver = new ElementObserver(element, this);\n this.delegate = delegate;\n this.matchesByElement = new Multimap();\n }\n get started() {\n return this.elementObserver.started;\n }\n get selector() {\n return this._selector;\n }\n set selector(selector) {\n this._selector = selector;\n this.refresh();\n }\n start() {\n this.elementObserver.start();\n }\n pause(callback) {\n this.elementObserver.pause(callback);\n }\n stop() {\n this.elementObserver.stop();\n }\n refresh() {\n this.elementObserver.refresh();\n }\n get element() {\n return this.elementObserver.element;\n }\n matchElement(element) {\n const { selector } = this;\n if (selector) {\n const matches = element.matches(selector);\n if (this.delegate.selectorMatchElement) {\n return matches && this.delegate.selectorMatchElement(element, this.details);\n }\n return matches;\n }\n else {\n return false;\n }\n }\n matchElementsInTree(tree) {\n const { selector } = this;\n if (selector) {\n const match = this.matchElement(tree) ? [tree] : [];\n const matches = Array.from(tree.querySelectorAll(selector)).filter((match) => this.matchElement(match));\n return match.concat(matches);\n }\n else {\n return [];\n }\n }\n elementMatched(element) {\n const { selector } = this;\n if (selector) {\n this.selectorMatched(element, selector);\n }\n }\n elementUnmatched(element) {\n const selectors = this.matchesByElement.getKeysForValue(element);\n for (const selector of selectors) {\n this.selectorUnmatched(element, selector);\n }\n }\n elementAttributeChanged(element, _attributeName) {\n const { selector } = this;\n if (selector) {\n const matches = this.matchElement(element);\n const matchedBefore = this.matchesByElement.has(selector, element);\n if (matches && !matchedBefore) {\n this.selectorMatched(element, selector);\n }\n else if (!matches && matchedBefore) {\n this.selectorUnmatched(element, selector);\n }\n }\n }\n selectorMatched(element, selector) {\n this.delegate.selectorMatched(element, selector, this.details);\n this.matchesByElement.add(selector, element);\n }\n selectorUnmatched(element, selector) {\n this.delegate.selectorUnmatched(element, selector, this.details);\n this.matchesByElement.delete(selector, element);\n }\n}\n\nclass StringMapObserver {\n constructor(element, delegate) {\n this.element = element;\n this.delegate = delegate;\n this.started = false;\n this.stringMap = new Map();\n this.mutationObserver = new MutationObserver((mutations) => this.processMutations(mutations));\n }\n start() {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, { attributes: true, attributeOldValue: true });\n this.refresh();\n }\n }\n stop() {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n }\n refresh() {\n if (this.started) {\n for (const attributeName of this.knownAttributeNames) {\n this.refreshAttribute(attributeName, null);\n }\n }\n }\n processMutations(mutations) {\n if (this.started) {\n for (const mutation of mutations) {\n this.processMutation(mutation);\n }\n }\n }\n processMutation(mutation) {\n const attributeName = mutation.attributeName;\n if (attributeName) {\n this.refreshAttribute(attributeName, mutation.oldValue);\n }\n }\n refreshAttribute(attributeName, oldValue) {\n const key = this.delegate.getStringMapKeyForAttribute(attributeName);\n if (key != null) {\n if (!this.stringMap.has(attributeName)) {\n this.stringMapKeyAdded(key, attributeName);\n }\n const value = this.element.getAttribute(attributeName);\n if (this.stringMap.get(attributeName) != value) {\n this.stringMapValueChanged(value, key, oldValue);\n }\n if (value == null) {\n const oldValue = this.stringMap.get(attributeName);\n this.stringMap.delete(attributeName);\n if (oldValue)\n this.stringMapKeyRemoved(key, attributeName, oldValue);\n }\n else {\n this.stringMap.set(attributeName, value);\n }\n }\n }\n stringMapKeyAdded(key, attributeName) {\n if (this.delegate.stringMapKeyAdded) {\n this.delegate.stringMapKeyAdded(key, attributeName);\n }\n }\n stringMapValueChanged(value, key, oldValue) {\n if (this.delegate.stringMapValueChanged) {\n this.delegate.stringMapValueChanged(value, key, oldValue);\n }\n }\n stringMapKeyRemoved(key, attributeName, oldValue) {\n if (this.delegate.stringMapKeyRemoved) {\n this.delegate.stringMapKeyRemoved(key, attributeName, oldValue);\n }\n }\n get knownAttributeNames() {\n return Array.from(new Set(this.currentAttributeNames.concat(this.recordedAttributeNames)));\n }\n get currentAttributeNames() {\n return Array.from(this.element.attributes).map((attribute) => attribute.name);\n }\n get recordedAttributeNames() {\n return Array.from(this.stringMap.keys());\n }\n}\n\nclass TokenListObserver {\n constructor(element, attributeName, delegate) {\n this.attributeObserver = new AttributeObserver(element, attributeName, this);\n this.delegate = delegate;\n this.tokensByElement = new Multimap();\n }\n get started() {\n return this.attributeObserver.started;\n }\n start() {\n this.attributeObserver.start();\n }\n pause(callback) {\n this.attributeObserver.pause(callback);\n }\n stop() {\n this.attributeObserver.stop();\n }\n refresh() {\n this.attributeObserver.refresh();\n }\n get element() {\n return this.attributeObserver.element;\n }\n get attributeName() {\n return this.attributeObserver.attributeName;\n }\n elementMatchedAttribute(element) {\n this.tokensMatched(this.readTokensForElement(element));\n }\n elementAttributeValueChanged(element) {\n const [unmatchedTokens, matchedTokens] = this.refreshTokensForElement(element);\n this.tokensUnmatched(unmatchedTokens);\n this.tokensMatched(matchedTokens);\n }\n elementUnmatchedAttribute(element) {\n this.tokensUnmatched(this.tokensByElement.getValuesForKey(element));\n }\n tokensMatched(tokens) {\n tokens.forEach((token) => this.tokenMatched(token));\n }\n tokensUnmatched(tokens) {\n tokens.forEach((token) => this.tokenUnmatched(token));\n }\n tokenMatched(token) {\n this.delegate.tokenMatched(token);\n this.tokensByElement.add(token.element, token);\n }\n tokenUnmatched(token) {\n this.delegate.tokenUnmatched(token);\n this.tokensByElement.delete(token.element, token);\n }\n refreshTokensForElement(element) {\n const previousTokens = this.tokensByElement.getValuesForKey(element);\n const currentTokens = this.readTokensForElement(element);\n const firstDifferingIndex = zip(previousTokens, currentTokens).findIndex(([previousToken, currentToken]) => !tokensAreEqual(previousToken, currentToken));\n if (firstDifferingIndex == -1) {\n return [[], []];\n }\n else {\n return [previousTokens.slice(firstDifferingIndex), currentTokens.slice(firstDifferingIndex)];\n }\n }\n readTokensForElement(element) {\n const attributeName = this.attributeName;\n const tokenString = element.getAttribute(attributeName) || \"\";\n return parseTokenString(tokenString, element, attributeName);\n }\n}\nfunction parseTokenString(tokenString, element, attributeName) {\n return tokenString\n .trim()\n .split(/\\s+/)\n .filter((content) => content.length)\n .map((content, index) => ({ element, attributeName, content, index }));\n}\nfunction zip(left, right) {\n const length = Math.max(left.length, right.length);\n return Array.from({ length }, (_, index) => [left[index], right[index]]);\n}\nfunction tokensAreEqual(left, right) {\n return left && right && left.index == right.index && left.content == right.content;\n}\n\nclass ValueListObserver {\n constructor(element, attributeName, delegate) {\n this.tokenListObserver = new TokenListObserver(element, attributeName, this);\n this.delegate = delegate;\n this.parseResultsByToken = new WeakMap();\n this.valuesByTokenByElement = new WeakMap();\n }\n get started() {\n return this.tokenListObserver.started;\n }\n start() {\n this.tokenListObserver.start();\n }\n stop() {\n this.tokenListObserver.stop();\n }\n refresh() {\n this.tokenListObserver.refresh();\n }\n get element() {\n return this.tokenListObserver.element;\n }\n get attributeName() {\n return this.tokenListObserver.attributeName;\n }\n tokenMatched(token) {\n const { element } = token;\n const { value } = this.fetchParseResultForToken(token);\n if (value) {\n this.fetchValuesByTokenForElement(element).set(token, value);\n this.delegate.elementMatchedValue(element, value);\n }\n }\n tokenUnmatched(token) {\n const { element } = token;\n const { value } = this.fetchParseResultForToken(token);\n if (value) {\n this.fetchValuesByTokenForElement(element).delete(token);\n this.delegate.elementUnmatchedValue(element, value);\n }\n }\n fetchParseResultForToken(token) {\n let parseResult = this.parseResultsByToken.get(token);\n if (!parseResult) {\n parseResult = this.parseToken(token);\n this.parseResultsByToken.set(token, parseResult);\n }\n return parseResult;\n }\n fetchValuesByTokenForElement(element) {\n let valuesByToken = this.valuesByTokenByElement.get(element);\n if (!valuesByToken) {\n valuesByToken = new Map();\n this.valuesByTokenByElement.set(element, valuesByToken);\n }\n return valuesByToken;\n }\n parseToken(token) {\n try {\n const value = this.delegate.parseValueForToken(token);\n return { value };\n }\n catch (error) {\n return { error };\n }\n }\n}\n\nclass BindingObserver {\n constructor(context, delegate) {\n this.context = context;\n this.delegate = delegate;\n this.bindingsByAction = new Map();\n }\n start() {\n if (!this.valueListObserver) {\n this.valueListObserver = new ValueListObserver(this.element, this.actionAttribute, this);\n this.valueListObserver.start();\n }\n }\n stop() {\n if (this.valueListObserver) {\n this.valueListObserver.stop();\n delete this.valueListObserver;\n this.disconnectAllActions();\n }\n }\n get element() {\n return this.context.element;\n }\n get identifier() {\n return this.context.identifier;\n }\n get actionAttribute() {\n return this.schema.actionAttribute;\n }\n get schema() {\n return this.context.schema;\n }\n get bindings() {\n return Array.from(this.bindingsByAction.values());\n }\n connectAction(action) {\n const binding = new Binding(this.context, action);\n this.bindingsByAction.set(action, binding);\n this.delegate.bindingConnected(binding);\n }\n disconnectAction(action) {\n const binding = this.bindingsByAction.get(action);\n if (binding) {\n this.bindingsByAction.delete(action);\n this.delegate.bindingDisconnected(binding);\n }\n }\n disconnectAllActions() {\n this.bindings.forEach((binding) => this.delegate.bindingDisconnected(binding, true));\n this.bindingsByAction.clear();\n }\n parseValueForToken(token) {\n const action = Action.forToken(token, this.schema);\n if (action.identifier == this.identifier) {\n return action;\n }\n }\n elementMatchedValue(element, action) {\n this.connectAction(action);\n }\n elementUnmatchedValue(element, action) {\n this.disconnectAction(action);\n }\n}\n\nclass ValueObserver {\n constructor(context, receiver) {\n this.context = context;\n this.receiver = receiver;\n this.stringMapObserver = new StringMapObserver(this.element, this);\n this.valueDescriptorMap = this.controller.valueDescriptorMap;\n }\n start() {\n this.stringMapObserver.start();\n this.invokeChangedCallbacksForDefaultValues();\n }\n stop() {\n this.stringMapObserver.stop();\n }\n get element() {\n return this.context.element;\n }\n get controller() {\n return this.context.controller;\n }\n getStringMapKeyForAttribute(attributeName) {\n if (attributeName in this.valueDescriptorMap) {\n return this.valueDescriptorMap[attributeName].name;\n }\n }\n stringMapKeyAdded(key, attributeName) {\n const descriptor = this.valueDescriptorMap[attributeName];\n if (!this.hasValue(key)) {\n this.invokeChangedCallback(key, descriptor.writer(this.receiver[key]), descriptor.writer(descriptor.defaultValue));\n }\n }\n stringMapValueChanged(value, name, oldValue) {\n const descriptor = this.valueDescriptorNameMap[name];\n if (value === null)\n return;\n if (oldValue === null) {\n oldValue = descriptor.writer(descriptor.defaultValue);\n }\n this.invokeChangedCallback(name, value, oldValue);\n }\n stringMapKeyRemoved(key, attributeName, oldValue) {\n const descriptor = this.valueDescriptorNameMap[key];\n if (this.hasValue(key)) {\n this.invokeChangedCallback(key, descriptor.writer(this.receiver[key]), oldValue);\n }\n else {\n this.invokeChangedCallback(key, descriptor.writer(descriptor.defaultValue), oldValue);\n }\n }\n invokeChangedCallbacksForDefaultValues() {\n for (const { key, name, defaultValue, writer } of this.valueDescriptors) {\n if (defaultValue != undefined && !this.controller.data.has(key)) {\n this.invokeChangedCallback(name, writer(defaultValue), undefined);\n }\n }\n }\n invokeChangedCallback(name, rawValue, rawOldValue) {\n const changedMethodName = `${name}Changed`;\n const changedMethod = this.receiver[changedMethodName];\n if (typeof changedMethod == \"function\") {\n const descriptor = this.valueDescriptorNameMap[name];\n try {\n const value = descriptor.reader(rawValue);\n let oldValue = rawOldValue;\n if (rawOldValue) {\n oldValue = descriptor.reader(rawOldValue);\n }\n changedMethod.call(this.receiver, value, oldValue);\n }\n catch (error) {\n if (error instanceof TypeError) {\n error.message = `Stimulus Value \"${this.context.identifier}.${descriptor.name}\" - ${error.message}`;\n }\n throw error;\n }\n }\n }\n get valueDescriptors() {\n const { valueDescriptorMap } = this;\n return Object.keys(valueDescriptorMap).map((key) => valueDescriptorMap[key]);\n }\n get valueDescriptorNameMap() {\n const descriptors = {};\n Object.keys(this.valueDescriptorMap).forEach((key) => {\n const descriptor = this.valueDescriptorMap[key];\n descriptors[descriptor.name] = descriptor;\n });\n return descriptors;\n }\n hasValue(attributeName) {\n const descriptor = this.valueDescriptorNameMap[attributeName];\n const hasMethodName = `has${capitalize(descriptor.name)}`;\n return this.receiver[hasMethodName];\n }\n}\n\nclass TargetObserver {\n constructor(context, delegate) {\n this.context = context;\n this.delegate = delegate;\n this.targetsByName = new Multimap();\n }\n start() {\n if (!this.tokenListObserver) {\n this.tokenListObserver = new TokenListObserver(this.element, this.attributeName, this);\n this.tokenListObserver.start();\n }\n }\n stop() {\n if (this.tokenListObserver) {\n this.disconnectAllTargets();\n this.tokenListObserver.stop();\n delete this.tokenListObserver;\n }\n }\n tokenMatched({ element, content: name }) {\n if (this.scope.containsElement(element)) {\n this.connectTarget(element, name);\n }\n }\n tokenUnmatched({ element, content: name }) {\n this.disconnectTarget(element, name);\n }\n connectTarget(element, name) {\n var _a;\n if (!this.targetsByName.has(name, element)) {\n this.targetsByName.add(name, element);\n (_a = this.tokenListObserver) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.targetConnected(element, name));\n }\n }\n disconnectTarget(element, name) {\n var _a;\n if (this.targetsByName.has(name, element)) {\n this.targetsByName.delete(name, element);\n (_a = this.tokenListObserver) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.targetDisconnected(element, name));\n }\n }\n disconnectAllTargets() {\n for (const name of this.targetsByName.keys) {\n for (const element of this.targetsByName.getValuesForKey(name)) {\n this.disconnectTarget(element, name);\n }\n }\n }\n get attributeName() {\n return `data-${this.context.identifier}-target`;\n }\n get element() {\n return this.context.element;\n }\n get scope() {\n return this.context.scope;\n }\n}\n\nfunction readInheritableStaticArrayValues(constructor, propertyName) {\n const ancestors = getAncestorsForConstructor(constructor);\n return Array.from(ancestors.reduce((values, constructor) => {\n getOwnStaticArrayValues(constructor, propertyName).forEach((name) => values.add(name));\n return values;\n }, new Set()));\n}\nfunction readInheritableStaticObjectPairs(constructor, propertyName) {\n const ancestors = getAncestorsForConstructor(constructor);\n return ancestors.reduce((pairs, constructor) => {\n pairs.push(...getOwnStaticObjectPairs(constructor, propertyName));\n return pairs;\n }, []);\n}\nfunction getAncestorsForConstructor(constructor) {\n const ancestors = [];\n while (constructor) {\n ancestors.push(constructor);\n constructor = Object.getPrototypeOf(constructor);\n }\n return ancestors.reverse();\n}\nfunction getOwnStaticArrayValues(constructor, propertyName) {\n const definition = constructor[propertyName];\n return Array.isArray(definition) ? definition : [];\n}\nfunction getOwnStaticObjectPairs(constructor, propertyName) {\n const definition = constructor[propertyName];\n return definition ? Object.keys(definition).map((key) => [key, definition[key]]) : [];\n}\n\nclass OutletObserver {\n constructor(context, delegate) {\n this.started = false;\n this.context = context;\n this.delegate = delegate;\n this.outletsByName = new Multimap();\n this.outletElementsByName = new Multimap();\n this.selectorObserverMap = new Map();\n this.attributeObserverMap = new Map();\n }\n start() {\n if (!this.started) {\n this.outletDefinitions.forEach((outletName) => {\n this.setupSelectorObserverForOutlet(outletName);\n this.setupAttributeObserverForOutlet(outletName);\n });\n this.started = true;\n this.dependentContexts.forEach((context) => context.refresh());\n }\n }\n refresh() {\n this.selectorObserverMap.forEach((observer) => observer.refresh());\n this.attributeObserverMap.forEach((observer) => observer.refresh());\n }\n stop() {\n if (this.started) {\n this.started = false;\n this.disconnectAllOutlets();\n this.stopSelectorObservers();\n this.stopAttributeObservers();\n }\n }\n stopSelectorObservers() {\n if (this.selectorObserverMap.size > 0) {\n this.selectorObserverMap.forEach((observer) => observer.stop());\n this.selectorObserverMap.clear();\n }\n }\n stopAttributeObservers() {\n if (this.attributeObserverMap.size > 0) {\n this.attributeObserverMap.forEach((observer) => observer.stop());\n this.attributeObserverMap.clear();\n }\n }\n selectorMatched(element, _selector, { outletName }) {\n const outlet = this.getOutlet(element, outletName);\n if (outlet) {\n this.connectOutlet(outlet, element, outletName);\n }\n }\n selectorUnmatched(element, _selector, { outletName }) {\n const outlet = this.getOutletFromMap(element, outletName);\n if (outlet) {\n this.disconnectOutlet(outlet, element, outletName);\n }\n }\n selectorMatchElement(element, { outletName }) {\n const selector = this.selector(outletName);\n const hasOutlet = this.hasOutlet(element, outletName);\n const hasOutletController = element.matches(`[${this.schema.controllerAttribute}~=${outletName}]`);\n if (selector) {\n return hasOutlet && hasOutletController && element.matches(selector);\n }\n else {\n return false;\n }\n }\n elementMatchedAttribute(_element, attributeName) {\n const outletName = this.getOutletNameFromOutletAttributeName(attributeName);\n if (outletName) {\n this.updateSelectorObserverForOutlet(outletName);\n }\n }\n elementAttributeValueChanged(_element, attributeName) {\n const outletName = this.getOutletNameFromOutletAttributeName(attributeName);\n if (outletName) {\n this.updateSelectorObserverForOutlet(outletName);\n }\n }\n elementUnmatchedAttribute(_element, attributeName) {\n const outletName = this.getOutletNameFromOutletAttributeName(attributeName);\n if (outletName) {\n this.updateSelectorObserverForOutlet(outletName);\n }\n }\n connectOutlet(outlet, element, outletName) {\n var _a;\n if (!this.outletElementsByName.has(outletName, element)) {\n this.outletsByName.add(outletName, outlet);\n this.outletElementsByName.add(outletName, element);\n (_a = this.selectorObserverMap.get(outletName)) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.outletConnected(outlet, element, outletName));\n }\n }\n disconnectOutlet(outlet, element, outletName) {\n var _a;\n if (this.outletElementsByName.has(outletName, element)) {\n this.outletsByName.delete(outletName, outlet);\n this.outletElementsByName.delete(outletName, element);\n (_a = this.selectorObserverMap\n .get(outletName)) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.outletDisconnected(outlet, element, outletName));\n }\n }\n disconnectAllOutlets() {\n for (const outletName of this.outletElementsByName.keys) {\n for (const element of this.outletElementsByName.getValuesForKey(outletName)) {\n for (const outlet of this.outletsByName.getValuesForKey(outletName)) {\n this.disconnectOutlet(outlet, element, outletName);\n }\n }\n }\n }\n updateSelectorObserverForOutlet(outletName) {\n const observer = this.selectorObserverMap.get(outletName);\n if (observer) {\n observer.selector = this.selector(outletName);\n }\n }\n setupSelectorObserverForOutlet(outletName) {\n const selector = this.selector(outletName);\n const selectorObserver = new SelectorObserver(document.body, selector, this, { outletName });\n this.selectorObserverMap.set(outletName, selectorObserver);\n selectorObserver.start();\n }\n setupAttributeObserverForOutlet(outletName) {\n const attributeName = this.attributeNameForOutletName(outletName);\n const attributeObserver = new AttributeObserver(this.scope.element, attributeName, this);\n this.attributeObserverMap.set(outletName, attributeObserver);\n attributeObserver.start();\n }\n selector(outletName) {\n return this.scope.outlets.getSelectorForOutletName(outletName);\n }\n attributeNameForOutletName(outletName) {\n return this.scope.schema.outletAttributeForScope(this.identifier, outletName);\n }\n getOutletNameFromOutletAttributeName(attributeName) {\n return this.outletDefinitions.find((outletName) => this.attributeNameForOutletName(outletName) === attributeName);\n }\n get outletDependencies() {\n const dependencies = new Multimap();\n this.router.modules.forEach((module) => {\n const constructor = module.definition.controllerConstructor;\n const outlets = readInheritableStaticArrayValues(constructor, \"outlets\");\n outlets.forEach((outlet) => dependencies.add(outlet, module.identifier));\n });\n return dependencies;\n }\n get outletDefinitions() {\n return this.outletDependencies.getKeysForValue(this.identifier);\n }\n get dependentControllerIdentifiers() {\n return this.outletDependencies.getValuesForKey(this.identifier);\n }\n get dependentContexts() {\n const identifiers = this.dependentControllerIdentifiers;\n return this.router.contexts.filter((context) => identifiers.includes(context.identifier));\n }\n hasOutlet(element, outletName) {\n return !!this.getOutlet(element, outletName) || !!this.getOutletFromMap(element, outletName);\n }\n getOutlet(element, outletName) {\n return this.application.getControllerForElementAndIdentifier(element, outletName);\n }\n getOutletFromMap(element, outletName) {\n return this.outletsByName.getValuesForKey(outletName).find((outlet) => outlet.element === element);\n }\n get scope() {\n return this.context.scope;\n }\n get schema() {\n return this.context.schema;\n }\n get identifier() {\n return this.context.identifier;\n }\n get application() {\n return this.context.application;\n }\n get router() {\n return this.application.router;\n }\n}\n\nclass Context {\n constructor(module, scope) {\n this.logDebugActivity = (functionName, detail = {}) => {\n const { identifier, controller, element } = this;\n detail = Object.assign({ identifier, controller, element }, detail);\n this.application.logDebugActivity(this.identifier, functionName, detail);\n };\n this.module = module;\n this.scope = scope;\n this.controller = new module.controllerConstructor(this);\n this.bindingObserver = new BindingObserver(this, this.dispatcher);\n this.valueObserver = new ValueObserver(this, this.controller);\n this.targetObserver = new TargetObserver(this, this);\n this.outletObserver = new OutletObserver(this, this);\n try {\n this.controller.initialize();\n this.logDebugActivity(\"initialize\");\n }\n catch (error) {\n this.handleError(error, \"initializing controller\");\n }\n }\n connect() {\n this.bindingObserver.start();\n this.valueObserver.start();\n this.targetObserver.start();\n this.outletObserver.start();\n try {\n this.controller.connect();\n this.logDebugActivity(\"connect\");\n }\n catch (error) {\n this.handleError(error, \"connecting controller\");\n }\n }\n refresh() {\n this.outletObserver.refresh();\n }\n disconnect() {\n try {\n this.controller.disconnect();\n this.logDebugActivity(\"disconnect\");\n }\n catch (error) {\n this.handleError(error, \"disconnecting controller\");\n }\n this.outletObserver.stop();\n this.targetObserver.stop();\n this.valueObserver.stop();\n this.bindingObserver.stop();\n }\n get application() {\n return this.module.application;\n }\n get identifier() {\n return this.module.identifier;\n }\n get schema() {\n return this.application.schema;\n }\n get dispatcher() {\n return this.application.dispatcher;\n }\n get element() {\n return this.scope.element;\n }\n get parentElement() {\n return this.element.parentElement;\n }\n handleError(error, message, detail = {}) {\n const { identifier, controller, element } = this;\n detail = Object.assign({ identifier, controller, element }, detail);\n this.application.handleError(error, `Error ${message}`, detail);\n }\n targetConnected(element, name) {\n this.invokeControllerMethod(`${name}TargetConnected`, element);\n }\n targetDisconnected(element, name) {\n this.invokeControllerMethod(`${name}TargetDisconnected`, element);\n }\n outletConnected(outlet, element, name) {\n this.invokeControllerMethod(`${namespaceCamelize(name)}OutletConnected`, outlet, element);\n }\n outletDisconnected(outlet, element, name) {\n this.invokeControllerMethod(`${namespaceCamelize(name)}OutletDisconnected`, outlet, element);\n }\n invokeControllerMethod(methodName, ...args) {\n const controller = this.controller;\n if (typeof controller[methodName] == \"function\") {\n controller[methodName](...args);\n }\n }\n}\n\nfunction bless(constructor) {\n return shadow(constructor, getBlessedProperties(constructor));\n}\nfunction shadow(constructor, properties) {\n const shadowConstructor = extend(constructor);\n const shadowProperties = getShadowProperties(constructor.prototype, properties);\n Object.defineProperties(shadowConstructor.prototype, shadowProperties);\n return shadowConstructor;\n}\nfunction getBlessedProperties(constructor) {\n const blessings = readInheritableStaticArrayValues(constructor, \"blessings\");\n return blessings.reduce((blessedProperties, blessing) => {\n const properties = blessing(constructor);\n for (const key in properties) {\n const descriptor = blessedProperties[key] || {};\n blessedProperties[key] = Object.assign(descriptor, properties[key]);\n }\n return blessedProperties;\n }, {});\n}\nfunction getShadowProperties(prototype, properties) {\n return getOwnKeys(properties).reduce((shadowProperties, key) => {\n const descriptor = getShadowedDescriptor(prototype, properties, key);\n if (descriptor) {\n Object.assign(shadowProperties, { [key]: descriptor });\n }\n return shadowProperties;\n }, {});\n}\nfunction getShadowedDescriptor(prototype, properties, key) {\n const shadowingDescriptor = Object.getOwnPropertyDescriptor(prototype, key);\n const shadowedByValue = shadowingDescriptor && \"value\" in shadowingDescriptor;\n if (!shadowedByValue) {\n const descriptor = Object.getOwnPropertyDescriptor(properties, key).value;\n if (shadowingDescriptor) {\n descriptor.get = shadowingDescriptor.get || descriptor.get;\n descriptor.set = shadowingDescriptor.set || descriptor.set;\n }\n return descriptor;\n }\n}\nconst getOwnKeys = (() => {\n if (typeof Object.getOwnPropertySymbols == \"function\") {\n return (object) => [...Object.getOwnPropertyNames(object), ...Object.getOwnPropertySymbols(object)];\n }\n else {\n return Object.getOwnPropertyNames;\n }\n})();\nconst extend = (() => {\n function extendWithReflect(constructor) {\n function extended() {\n return Reflect.construct(constructor, arguments, new.target);\n }\n extended.prototype = Object.create(constructor.prototype, {\n constructor: { value: extended },\n });\n Reflect.setPrototypeOf(extended, constructor);\n return extended;\n }\n function testReflectExtension() {\n const a = function () {\n this.a.call(this);\n };\n const b = extendWithReflect(a);\n b.prototype.a = function () { };\n return new b();\n }\n try {\n testReflectExtension();\n return extendWithReflect;\n }\n catch (error) {\n return (constructor) => class extended extends constructor {\n };\n }\n})();\n\nfunction blessDefinition(definition) {\n return {\n identifier: definition.identifier,\n controllerConstructor: bless(definition.controllerConstructor),\n };\n}\n\nclass Module {\n constructor(application, definition) {\n this.application = application;\n this.definition = blessDefinition(definition);\n this.contextsByScope = new WeakMap();\n this.connectedContexts = new Set();\n }\n get identifier() {\n return this.definition.identifier;\n }\n get controllerConstructor() {\n return this.definition.controllerConstructor;\n }\n get contexts() {\n return Array.from(this.connectedContexts);\n }\n connectContextForScope(scope) {\n const context = this.fetchContextForScope(scope);\n this.connectedContexts.add(context);\n context.connect();\n }\n disconnectContextForScope(scope) {\n const context = this.contextsByScope.get(scope);\n if (context) {\n this.connectedContexts.delete(context);\n context.disconnect();\n }\n }\n fetchContextForScope(scope) {\n let context = this.contextsByScope.get(scope);\n if (!context) {\n context = new Context(this, scope);\n this.contextsByScope.set(scope, context);\n }\n return context;\n }\n}\n\nclass ClassMap {\n constructor(scope) {\n this.scope = scope;\n }\n has(name) {\n return this.data.has(this.getDataKey(name));\n }\n get(name) {\n return this.getAll(name)[0];\n }\n getAll(name) {\n const tokenString = this.data.get(this.getDataKey(name)) || \"\";\n return tokenize(tokenString);\n }\n getAttributeName(name) {\n return this.data.getAttributeNameForKey(this.getDataKey(name));\n }\n getDataKey(name) {\n return `${name}-class`;\n }\n get data() {\n return this.scope.data;\n }\n}\n\nclass DataMap {\n constructor(scope) {\n this.scope = scope;\n }\n get element() {\n return this.scope.element;\n }\n get identifier() {\n return this.scope.identifier;\n }\n get(key) {\n const name = this.getAttributeNameForKey(key);\n return this.element.getAttribute(name);\n }\n set(key, value) {\n const name = this.getAttributeNameForKey(key);\n this.element.setAttribute(name, value);\n return this.get(key);\n }\n has(key) {\n const name = this.getAttributeNameForKey(key);\n return this.element.hasAttribute(name);\n }\n delete(key) {\n if (this.has(key)) {\n const name = this.getAttributeNameForKey(key);\n this.element.removeAttribute(name);\n return true;\n }\n else {\n return false;\n }\n }\n getAttributeNameForKey(key) {\n return `data-${this.identifier}-${dasherize(key)}`;\n }\n}\n\nclass Guide {\n constructor(logger) {\n this.warnedKeysByObject = new WeakMap();\n this.logger = logger;\n }\n warn(object, key, message) {\n let warnedKeys = this.warnedKeysByObject.get(object);\n if (!warnedKeys) {\n warnedKeys = new Set();\n this.warnedKeysByObject.set(object, warnedKeys);\n }\n if (!warnedKeys.has(key)) {\n warnedKeys.add(key);\n this.logger.warn(message, object);\n }\n }\n}\n\nfunction attributeValueContainsToken(attributeName, token) {\n return `[${attributeName}~=\"${token}\"]`;\n}\n\nclass TargetSet {\n constructor(scope) {\n this.scope = scope;\n }\n get element() {\n return this.scope.element;\n }\n get identifier() {\n return this.scope.identifier;\n }\n get schema() {\n return this.scope.schema;\n }\n has(targetName) {\n return this.find(targetName) != null;\n }\n find(...targetNames) {\n return targetNames.reduce((target, targetName) => target || this.findTarget(targetName) || this.findLegacyTarget(targetName), undefined);\n }\n findAll(...targetNames) {\n return targetNames.reduce((targets, targetName) => [\n ...targets,\n ...this.findAllTargets(targetName),\n ...this.findAllLegacyTargets(targetName),\n ], []);\n }\n findTarget(targetName) {\n const selector = this.getSelectorForTargetName(targetName);\n return this.scope.findElement(selector);\n }\n findAllTargets(targetName) {\n const selector = this.getSelectorForTargetName(targetName);\n return this.scope.findAllElements(selector);\n }\n getSelectorForTargetName(targetName) {\n const attributeName = this.schema.targetAttributeForScope(this.identifier);\n return attributeValueContainsToken(attributeName, targetName);\n }\n findLegacyTarget(targetName) {\n const selector = this.getLegacySelectorForTargetName(targetName);\n return this.deprecate(this.scope.findElement(selector), targetName);\n }\n findAllLegacyTargets(targetName) {\n const selector = this.getLegacySelectorForTargetName(targetName);\n return this.scope.findAllElements(selector).map((element) => this.deprecate(element, targetName));\n }\n getLegacySelectorForTargetName(targetName) {\n const targetDescriptor = `${this.identifier}.${targetName}`;\n return attributeValueContainsToken(this.schema.targetAttribute, targetDescriptor);\n }\n deprecate(element, targetName) {\n if (element) {\n const { identifier } = this;\n const attributeName = this.schema.targetAttribute;\n const revisedAttributeName = this.schema.targetAttributeForScope(identifier);\n this.guide.warn(element, `target:${targetName}`, `Please replace ${attributeName}=\"${identifier}.${targetName}\" with ${revisedAttributeName}=\"${targetName}\". ` +\n `The ${attributeName} attribute is deprecated and will be removed in a future version of Stimulus.`);\n }\n return element;\n }\n get guide() {\n return this.scope.guide;\n }\n}\n\nclass OutletSet {\n constructor(scope, controllerElement) {\n this.scope = scope;\n this.controllerElement = controllerElement;\n }\n get element() {\n return this.scope.element;\n }\n get identifier() {\n return this.scope.identifier;\n }\n get schema() {\n return this.scope.schema;\n }\n has(outletName) {\n return this.find(outletName) != null;\n }\n find(...outletNames) {\n return outletNames.reduce((outlet, outletName) => outlet || this.findOutlet(outletName), undefined);\n }\n findAll(...outletNames) {\n return outletNames.reduce((outlets, outletName) => [...outlets, ...this.findAllOutlets(outletName)], []);\n }\n getSelectorForOutletName(outletName) {\n const attributeName = this.schema.outletAttributeForScope(this.identifier, outletName);\n return this.controllerElement.getAttribute(attributeName);\n }\n findOutlet(outletName) {\n const selector = this.getSelectorForOutletName(outletName);\n if (selector)\n return this.findElement(selector, outletName);\n }\n findAllOutlets(outletName) {\n const selector = this.getSelectorForOutletName(outletName);\n return selector ? this.findAllElements(selector, outletName) : [];\n }\n findElement(selector, outletName) {\n const elements = this.scope.queryElements(selector);\n return elements.filter((element) => this.matchesElement(element, selector, outletName))[0];\n }\n findAllElements(selector, outletName) {\n const elements = this.scope.queryElements(selector);\n return elements.filter((element) => this.matchesElement(element, selector, outletName));\n }\n matchesElement(element, selector, outletName) {\n const controllerAttribute = element.getAttribute(this.scope.schema.controllerAttribute) || \"\";\n return element.matches(selector) && controllerAttribute.split(\" \").includes(outletName);\n }\n}\n\nclass Scope {\n constructor(schema, element, identifier, logger) {\n this.targets = new TargetSet(this);\n this.classes = new ClassMap(this);\n this.data = new DataMap(this);\n this.containsElement = (element) => {\n return element.closest(this.controllerSelector) === this.element;\n };\n this.schema = schema;\n this.element = element;\n this.identifier = identifier;\n this.guide = new Guide(logger);\n this.outlets = new OutletSet(this.documentScope, element);\n }\n findElement(selector) {\n return this.element.matches(selector) ? this.element : this.queryElements(selector).find(this.containsElement);\n }\n findAllElements(selector) {\n return [\n ...(this.element.matches(selector) ? [this.element] : []),\n ...this.queryElements(selector).filter(this.containsElement),\n ];\n }\n queryElements(selector) {\n return Array.from(this.element.querySelectorAll(selector));\n }\n get controllerSelector() {\n return attributeValueContainsToken(this.schema.controllerAttribute, this.identifier);\n }\n get isDocumentScope() {\n return this.element === document.documentElement;\n }\n get documentScope() {\n return this.isDocumentScope\n ? this\n : new Scope(this.schema, document.documentElement, this.identifier, this.guide.logger);\n }\n}\n\nclass ScopeObserver {\n constructor(element, schema, delegate) {\n this.element = element;\n this.schema = schema;\n this.delegate = delegate;\n this.valueListObserver = new ValueListObserver(this.element, this.controllerAttribute, this);\n this.scopesByIdentifierByElement = new WeakMap();\n this.scopeReferenceCounts = new WeakMap();\n }\n start() {\n this.valueListObserver.start();\n }\n stop() {\n this.valueListObserver.stop();\n }\n get controllerAttribute() {\n return this.schema.controllerAttribute;\n }\n parseValueForToken(token) {\n const { element, content: identifier } = token;\n return this.parseValueForElementAndIdentifier(element, identifier);\n }\n parseValueForElementAndIdentifier(element, identifier) {\n const scopesByIdentifier = this.fetchScopesByIdentifierForElement(element);\n let scope = scopesByIdentifier.get(identifier);\n if (!scope) {\n scope = this.delegate.createScopeForElementAndIdentifier(element, identifier);\n scopesByIdentifier.set(identifier, scope);\n }\n return scope;\n }\n elementMatchedValue(element, value) {\n const referenceCount = (this.scopeReferenceCounts.get(value) || 0) + 1;\n this.scopeReferenceCounts.set(value, referenceCount);\n if (referenceCount == 1) {\n this.delegate.scopeConnected(value);\n }\n }\n elementUnmatchedValue(element, value) {\n const referenceCount = this.scopeReferenceCounts.get(value);\n if (referenceCount) {\n this.scopeReferenceCounts.set(value, referenceCount - 1);\n if (referenceCount == 1) {\n this.delegate.scopeDisconnected(value);\n }\n }\n }\n fetchScopesByIdentifierForElement(element) {\n let scopesByIdentifier = this.scopesByIdentifierByElement.get(element);\n if (!scopesByIdentifier) {\n scopesByIdentifier = new Map();\n this.scopesByIdentifierByElement.set(element, scopesByIdentifier);\n }\n return scopesByIdentifier;\n }\n}\n\nclass Router {\n constructor(application) {\n this.application = application;\n this.scopeObserver = new ScopeObserver(this.element, this.schema, this);\n this.scopesByIdentifier = new Multimap();\n this.modulesByIdentifier = new Map();\n }\n get element() {\n return this.application.element;\n }\n get schema() {\n return this.application.schema;\n }\n get logger() {\n return this.application.logger;\n }\n get controllerAttribute() {\n return this.schema.controllerAttribute;\n }\n get modules() {\n return Array.from(this.modulesByIdentifier.values());\n }\n get contexts() {\n return this.modules.reduce((contexts, module) => contexts.concat(module.contexts), []);\n }\n start() {\n this.scopeObserver.start();\n }\n stop() {\n this.scopeObserver.stop();\n }\n loadDefinition(definition) {\n this.unloadIdentifier(definition.identifier);\n const module = new Module(this.application, definition);\n this.connectModule(module);\n const afterLoad = definition.controllerConstructor.afterLoad;\n if (afterLoad) {\n afterLoad.call(definition.controllerConstructor, definition.identifier, this.application);\n }\n }\n unloadIdentifier(identifier) {\n const module = this.modulesByIdentifier.get(identifier);\n if (module) {\n this.disconnectModule(module);\n }\n }\n getContextForElementAndIdentifier(element, identifier) {\n const module = this.modulesByIdentifier.get(identifier);\n if (module) {\n return module.contexts.find((context) => context.element == element);\n }\n }\n proposeToConnectScopeForElementAndIdentifier(element, identifier) {\n const scope = this.scopeObserver.parseValueForElementAndIdentifier(element, identifier);\n if (scope) {\n this.scopeObserver.elementMatchedValue(scope.element, scope);\n }\n else {\n console.error(`Couldn't find or create scope for identifier: \"${identifier}\" and element:`, element);\n }\n }\n handleError(error, message, detail) {\n this.application.handleError(error, message, detail);\n }\n createScopeForElementAndIdentifier(element, identifier) {\n return new Scope(this.schema, element, identifier, this.logger);\n }\n scopeConnected(scope) {\n this.scopesByIdentifier.add(scope.identifier, scope);\n const module = this.modulesByIdentifier.get(scope.identifier);\n if (module) {\n module.connectContextForScope(scope);\n }\n }\n scopeDisconnected(scope) {\n this.scopesByIdentifier.delete(scope.identifier, scope);\n const module = this.modulesByIdentifier.get(scope.identifier);\n if (module) {\n module.disconnectContextForScope(scope);\n }\n }\n connectModule(module) {\n this.modulesByIdentifier.set(module.identifier, module);\n const scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach((scope) => module.connectContextForScope(scope));\n }\n disconnectModule(module) {\n this.modulesByIdentifier.delete(module.identifier);\n const scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach((scope) => module.disconnectContextForScope(scope));\n }\n}\n\nconst defaultSchema = {\n controllerAttribute: \"data-controller\",\n actionAttribute: \"data-action\",\n targetAttribute: \"data-target\",\n targetAttributeForScope: (identifier) => `data-${identifier}-target`,\n outletAttributeForScope: (identifier, outlet) => `data-${identifier}-${outlet}-outlet`,\n keyMappings: Object.assign(Object.assign({ enter: \"Enter\", tab: \"Tab\", esc: \"Escape\", space: \" \", up: \"ArrowUp\", down: \"ArrowDown\", left: \"ArrowLeft\", right: \"ArrowRight\", home: \"Home\", end: \"End\", page_up: \"PageUp\", page_down: \"PageDown\" }, objectFromEntries(\"abcdefghijklmnopqrstuvwxyz\".split(\"\").map((c) => [c, c]))), objectFromEntries(\"0123456789\".split(\"\").map((n) => [n, n]))),\n};\nfunction objectFromEntries(array) {\n return array.reduce((memo, [k, v]) => (Object.assign(Object.assign({}, memo), { [k]: v })), {});\n}\n\nclass Application {\n constructor(element = document.documentElement, schema = defaultSchema) {\n this.logger = console;\n this.debug = false;\n this.logDebugActivity = (identifier, functionName, detail = {}) => {\n if (this.debug) {\n this.logFormattedMessage(identifier, functionName, detail);\n }\n };\n this.element = element;\n this.schema = schema;\n this.dispatcher = new Dispatcher(this);\n this.router = new Router(this);\n this.actionDescriptorFilters = Object.assign({}, defaultActionDescriptorFilters);\n }\n static start(element, schema) {\n const application = new this(element, schema);\n application.start();\n return application;\n }\n async start() {\n await domReady();\n this.logDebugActivity(\"application\", \"starting\");\n this.dispatcher.start();\n this.router.start();\n this.logDebugActivity(\"application\", \"start\");\n }\n stop() {\n this.logDebugActivity(\"application\", \"stopping\");\n this.dispatcher.stop();\n this.router.stop();\n this.logDebugActivity(\"application\", \"stop\");\n }\n register(identifier, controllerConstructor) {\n this.load({ identifier, controllerConstructor });\n }\n registerActionOption(name, filter) {\n this.actionDescriptorFilters[name] = filter;\n }\n load(head, ...rest) {\n const definitions = Array.isArray(head) ? head : [head, ...rest];\n definitions.forEach((definition) => {\n if (definition.controllerConstructor.shouldLoad) {\n this.router.loadDefinition(definition);\n }\n });\n }\n unload(head, ...rest) {\n const identifiers = Array.isArray(head) ? head : [head, ...rest];\n identifiers.forEach((identifier) => this.router.unloadIdentifier(identifier));\n }\n get controllers() {\n return this.router.contexts.map((context) => context.controller);\n }\n getControllerForElementAndIdentifier(element, identifier) {\n const context = this.router.getContextForElementAndIdentifier(element, identifier);\n return context ? context.controller : null;\n }\n handleError(error, message, detail) {\n var _a;\n this.logger.error(`%s\\n\\n%o\\n\\n%o`, message, error, detail);\n (_a = window.onerror) === null || _a === void 0 ? void 0 : _a.call(window, message, \"\", 0, 0, error);\n }\n logFormattedMessage(identifier, functionName, detail = {}) {\n detail = Object.assign({ application: this }, detail);\n this.logger.groupCollapsed(`${identifier} #${functionName}`);\n this.logger.log(\"details:\", Object.assign({}, detail));\n this.logger.groupEnd();\n }\n}\nfunction domReady() {\n return new Promise((resolve) => {\n if (document.readyState == \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", () => resolve());\n }\n else {\n resolve();\n }\n });\n}\n\nfunction ClassPropertiesBlessing(constructor) {\n const classes = readInheritableStaticArrayValues(constructor, \"classes\");\n return classes.reduce((properties, classDefinition) => {\n return Object.assign(properties, propertiesForClassDefinition(classDefinition));\n }, {});\n}\nfunction propertiesForClassDefinition(key) {\n return {\n [`${key}Class`]: {\n get() {\n const { classes } = this;\n if (classes.has(key)) {\n return classes.get(key);\n }\n else {\n const attribute = classes.getAttributeName(key);\n throw new Error(`Missing attribute \"${attribute}\"`);\n }\n },\n },\n [`${key}Classes`]: {\n get() {\n return this.classes.getAll(key);\n },\n },\n [`has${capitalize(key)}Class`]: {\n get() {\n return this.classes.has(key);\n },\n },\n };\n}\n\nfunction OutletPropertiesBlessing(constructor) {\n const outlets = readInheritableStaticArrayValues(constructor, \"outlets\");\n return outlets.reduce((properties, outletDefinition) => {\n return Object.assign(properties, propertiesForOutletDefinition(outletDefinition));\n }, {});\n}\nfunction getOutletController(controller, element, identifier) {\n return controller.application.getControllerForElementAndIdentifier(element, identifier);\n}\nfunction getControllerAndEnsureConnectedScope(controller, element, outletName) {\n let outletController = getOutletController(controller, element, outletName);\n if (outletController)\n return outletController;\n controller.application.router.proposeToConnectScopeForElementAndIdentifier(element, outletName);\n outletController = getOutletController(controller, element, outletName);\n if (outletController)\n return outletController;\n}\nfunction propertiesForOutletDefinition(name) {\n const camelizedName = namespaceCamelize(name);\n return {\n [`${camelizedName}Outlet`]: {\n get() {\n const outletElement = this.outlets.find(name);\n const selector = this.outlets.getSelectorForOutletName(name);\n if (outletElement) {\n const outletController = getControllerAndEnsureConnectedScope(this, outletElement, name);\n if (outletController)\n return outletController;\n throw new Error(`The provided outlet element is missing an outlet controller \"${name}\" instance for host controller \"${this.identifier}\"`);\n }\n throw new Error(`Missing outlet element \"${name}\" for host controller \"${this.identifier}\". Stimulus couldn't find a matching outlet element using selector \"${selector}\".`);\n },\n },\n [`${camelizedName}Outlets`]: {\n get() {\n const outlets = this.outlets.findAll(name);\n if (outlets.length > 0) {\n return outlets\n .map((outletElement) => {\n const outletController = getControllerAndEnsureConnectedScope(this, outletElement, name);\n if (outletController)\n return outletController;\n console.warn(`The provided outlet element is missing an outlet controller \"${name}\" instance for host controller \"${this.identifier}\"`, outletElement);\n })\n .filter((controller) => controller);\n }\n return [];\n },\n },\n [`${camelizedName}OutletElement`]: {\n get() {\n const outletElement = this.outlets.find(name);\n const selector = this.outlets.getSelectorForOutletName(name);\n if (outletElement) {\n return outletElement;\n }\n else {\n throw new Error(`Missing outlet element \"${name}\" for host controller \"${this.identifier}\". Stimulus couldn't find a matching outlet element using selector \"${selector}\".`);\n }\n },\n },\n [`${camelizedName}OutletElements`]: {\n get() {\n return this.outlets.findAll(name);\n },\n },\n [`has${capitalize(camelizedName)}Outlet`]: {\n get() {\n return this.outlets.has(name);\n },\n },\n };\n}\n\nfunction TargetPropertiesBlessing(constructor) {\n const targets = readInheritableStaticArrayValues(constructor, \"targets\");\n return targets.reduce((properties, targetDefinition) => {\n return Object.assign(properties, propertiesForTargetDefinition(targetDefinition));\n }, {});\n}\nfunction propertiesForTargetDefinition(name) {\n return {\n [`${name}Target`]: {\n get() {\n const target = this.targets.find(name);\n if (target) {\n return target;\n }\n else {\n throw new Error(`Missing target element \"${name}\" for \"${this.identifier}\" controller`);\n }\n },\n },\n [`${name}Targets`]: {\n get() {\n return this.targets.findAll(name);\n },\n },\n [`has${capitalize(name)}Target`]: {\n get() {\n return this.targets.has(name);\n },\n },\n };\n}\n\nfunction ValuePropertiesBlessing(constructor) {\n const valueDefinitionPairs = readInheritableStaticObjectPairs(constructor, \"values\");\n const propertyDescriptorMap = {\n valueDescriptorMap: {\n get() {\n return valueDefinitionPairs.reduce((result, valueDefinitionPair) => {\n const valueDescriptor = parseValueDefinitionPair(valueDefinitionPair, this.identifier);\n const attributeName = this.data.getAttributeNameForKey(valueDescriptor.key);\n return Object.assign(result, { [attributeName]: valueDescriptor });\n }, {});\n },\n },\n };\n return valueDefinitionPairs.reduce((properties, valueDefinitionPair) => {\n return Object.assign(properties, propertiesForValueDefinitionPair(valueDefinitionPair));\n }, propertyDescriptorMap);\n}\nfunction propertiesForValueDefinitionPair(valueDefinitionPair, controller) {\n const definition = parseValueDefinitionPair(valueDefinitionPair, controller);\n const { key, name, reader: read, writer: write } = definition;\n return {\n [name]: {\n get() {\n const value = this.data.get(key);\n if (value !== null) {\n return read(value);\n }\n else {\n return definition.defaultValue;\n }\n },\n set(value) {\n if (value === undefined) {\n this.data.delete(key);\n }\n else {\n this.data.set(key, write(value));\n }\n },\n },\n [`has${capitalize(name)}`]: {\n get() {\n return this.data.has(key) || definition.hasCustomDefaultValue;\n },\n },\n };\n}\nfunction parseValueDefinitionPair([token, typeDefinition], controller) {\n return valueDescriptorForTokenAndTypeDefinition({\n controller,\n token,\n typeDefinition,\n });\n}\nfunction parseValueTypeConstant(constant) {\n switch (constant) {\n case Array:\n return \"array\";\n case Boolean:\n return \"boolean\";\n case Number:\n return \"number\";\n case Object:\n return \"object\";\n case String:\n return \"string\";\n }\n}\nfunction parseValueTypeDefault(defaultValue) {\n switch (typeof defaultValue) {\n case \"boolean\":\n return \"boolean\";\n case \"number\":\n return \"number\";\n case \"string\":\n return \"string\";\n }\n if (Array.isArray(defaultValue))\n return \"array\";\n if (Object.prototype.toString.call(defaultValue) === \"[object Object]\")\n return \"object\";\n}\nfunction parseValueTypeObject(payload) {\n const { controller, token, typeObject } = payload;\n const hasType = isSomething(typeObject.type);\n const hasDefault = isSomething(typeObject.default);\n const fullObject = hasType && hasDefault;\n const onlyType = hasType && !hasDefault;\n const onlyDefault = !hasType && hasDefault;\n const typeFromObject = parseValueTypeConstant(typeObject.type);\n const typeFromDefaultValue = parseValueTypeDefault(payload.typeObject.default);\n if (onlyType)\n return typeFromObject;\n if (onlyDefault)\n return typeFromDefaultValue;\n if (typeFromObject !== typeFromDefaultValue) {\n const propertyPath = controller ? `${controller}.${token}` : token;\n throw new Error(`The specified default value for the Stimulus Value \"${propertyPath}\" must match the defined type \"${typeFromObject}\". The provided default value of \"${typeObject.default}\" is of type \"${typeFromDefaultValue}\".`);\n }\n if (fullObject)\n return typeFromObject;\n}\nfunction parseValueTypeDefinition(payload) {\n const { controller, token, typeDefinition } = payload;\n const typeObject = { controller, token, typeObject: typeDefinition };\n const typeFromObject = parseValueTypeObject(typeObject);\n const typeFromDefaultValue = parseValueTypeDefault(typeDefinition);\n const typeFromConstant = parseValueTypeConstant(typeDefinition);\n const type = typeFromObject || typeFromDefaultValue || typeFromConstant;\n if (type)\n return type;\n const propertyPath = controller ? `${controller}.${typeDefinition}` : token;\n throw new Error(`Unknown value type \"${propertyPath}\" for \"${token}\" value`);\n}\nfunction defaultValueForDefinition(typeDefinition) {\n const constant = parseValueTypeConstant(typeDefinition);\n if (constant)\n return defaultValuesByType[constant];\n const hasDefault = hasProperty(typeDefinition, \"default\");\n const hasType = hasProperty(typeDefinition, \"type\");\n const typeObject = typeDefinition;\n if (hasDefault)\n return typeObject.default;\n if (hasType) {\n const { type } = typeObject;\n const constantFromType = parseValueTypeConstant(type);\n if (constantFromType)\n return defaultValuesByType[constantFromType];\n }\n return typeDefinition;\n}\nfunction valueDescriptorForTokenAndTypeDefinition(payload) {\n const { token, typeDefinition } = payload;\n const key = `${dasherize(token)}-value`;\n const type = parseValueTypeDefinition(payload);\n return {\n type,\n key,\n name: camelize(key),\n get defaultValue() {\n return defaultValueForDefinition(typeDefinition);\n },\n get hasCustomDefaultValue() {\n return parseValueTypeDefault(typeDefinition) !== undefined;\n },\n reader: readers[type],\n writer: writers[type] || writers.default,\n };\n}\nconst defaultValuesByType = {\n get array() {\n return [];\n },\n boolean: false,\n number: 0,\n get object() {\n return {};\n },\n string: \"\",\n};\nconst readers = {\n array(value) {\n const array = JSON.parse(value);\n if (!Array.isArray(array)) {\n throw new TypeError(`expected value of type \"array\" but instead got value \"${value}\" of type \"${parseValueTypeDefault(array)}\"`);\n }\n return array;\n },\n boolean(value) {\n return !(value == \"0\" || String(value).toLowerCase() == \"false\");\n },\n number(value) {\n return Number(value.replace(/_/g, \"\"));\n },\n object(value) {\n const object = JSON.parse(value);\n if (object === null || typeof object != \"object\" || Array.isArray(object)) {\n throw new TypeError(`expected value of type \"object\" but instead got value \"${value}\" of type \"${parseValueTypeDefault(object)}\"`);\n }\n return object;\n },\n string(value) {\n return value;\n },\n};\nconst writers = {\n default: writeString,\n array: writeJSON,\n object: writeJSON,\n};\nfunction writeJSON(value) {\n return JSON.stringify(value);\n}\nfunction writeString(value) {\n return `${value}`;\n}\n\nclass Controller {\n constructor(context) {\n this.context = context;\n }\n static get shouldLoad() {\n return true;\n }\n static afterLoad(_identifier, _application) {\n return;\n }\n get application() {\n return this.context.application;\n }\n get scope() {\n return this.context.scope;\n }\n get element() {\n return this.scope.element;\n }\n get identifier() {\n return this.scope.identifier;\n }\n get targets() {\n return this.scope.targets;\n }\n get outlets() {\n return this.scope.outlets;\n }\n get classes() {\n return this.scope.classes;\n }\n get data() {\n return this.scope.data;\n }\n initialize() {\n }\n connect() {\n }\n disconnect() {\n }\n dispatch(eventName, { target = this.element, detail = {}, prefix = this.identifier, bubbles = true, cancelable = true, } = {}) {\n const type = prefix ? `${prefix}:${eventName}` : eventName;\n const event = new CustomEvent(type, { detail, bubbles, cancelable });\n target.dispatchEvent(event);\n return event;\n }\n}\nController.blessings = [\n ClassPropertiesBlessing,\n TargetPropertiesBlessing,\n ValuePropertiesBlessing,\n OutletPropertiesBlessing,\n];\nController.targets = [];\nController.outlets = [];\nController.values = {};\n\nexport { Application, AttributeObserver, Context, Controller, ElementObserver, IndexedMultimap, Multimap, SelectorObserver, StringMapObserver, TokenListObserver, ValueListObserver, add, defaultSchema, del, fetch, prune };\n", "import { Application } from \"@hotwired/stimulus\"\n\nconst application = Application.start()\n\n// Configure Stimulus development experience\napplication.warnings = true\napplication.debug = false\nwindow.Stimulus = application\n\nexport { application }\n", "import { Controller } from \"@hotwired/stimulus\"\n\n// Connects to data-controller=\"auto-hide\"\nexport default class extends Controller {\n\n static targets = [ \"hideable\", \"select\" ]\n\n connect() {\n this.selectTargets.forEach((select) => {\n this.showHide({target: select});\n });\n }\n\n showHide(e) {\n var searchBase = e.target.dataset.autoHideName + \"-\";\n var searchQuery = searchBase + e.target.value;\n\n \n this.hideableTargets.forEach((hideable) => {\n\n if (typeof(hideable.dataset.autoHideName) != \"undefined\" && hideable.dataset.autoHideName.indexOf(searchBase) === 0) {\n if (hideable.dataset.autoHideName !== searchQuery) {\n hideable.classList.remove(\"auto-hidden\");\n }\n else \n {\n hideable.classList.add(\"auto-hidden\");\n }\n }\n\n });\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\n// Connects to data-controller=\"basket\"\nexport default class extends Controller {\n static targets = [ \"form\" ]\n connect() {\n \n }\n\n selectChange(event) {\n this.formTarget.submit();\n }\n\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\n// Connects to data-controller=\"countdown\"\nexport default class extends Controller {\n static values = {\n secondsUntilFinish: Number,\n days: String, \n day: String,\n }\n static targets = [ \"countdown\" ]\n\n connect() {\n this.lastCountdownExecute = Math.floor(Date.now() / 1000);\n console.log(this.secondsUntilFinishValue);\n\n this.countdownInterval = setInterval(() => {\n this.countdown();\n });\n }\n\n disconnect() {\n this.stopCountdown();\n }\n\n stopCountdown() {\n clearInterval(this.countdownInterval);\n }\n\n countdown() {\n \n const timeDiff = Math.floor(Date.now() / 1000) - this.lastCountdownExecute;\n\n this.secondsUntilFinishValue = this.secondsUntilFinishValue - timeDiff;\n\n if (this.secondsUntilFinishValue <= 0) {\n this.secondsUntilFinishValue = 0;\n this.stopCountdown();\n }\n\n const days = Math.floor(this.secondsUntilFinishValue / 86400);\n const hours = Math.floor((this.secondsUntilFinishValue % 86400) / 3600);\n const minutes = Math.floor(((this.secondsUntilFinishValue % 86400) % 3600) / 60);\n const seconds = Math.floor(((this.secondsUntilFinishValue % 86400) % 3600) % 60);\n\n var dayString = this.daysValue;\n\n if (days == 1) {\n dayString = this.dayValue;\n }\n\n\n\n this.countdownTarget.innerHTML = `${days} ${dayString} ${this.prependZero(hours)}:${this.prependZero(minutes)}:${this.prependZero(seconds)}`;\n\n \n this.lastCountdownExecute = Math.floor(Date.now() / 1000);\n }\n\n prependZero(number) {\n if (number <= 9)\n return \"0\" + number;\n else\n return number;\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"days\", \"hours\", \"minutes\", \"seconds\", \"title\"];\n static values = {\n startDate: String,\n endDate: String,\n startTitle: String,\n endTitle: String\n };\n\n connect() {\n this.lastUpdate = Date.now();\n this.remainingStartSeconds = this.startDateValue;\n this.remainingEndSeconds = this.endDateValue;\n\n this.startCountdown();\n }\n\n startCountdown() {\n this.calculateCountdown();\n this.interval = setInterval(() => this.calculateCountdown(), 1000);\n }\n\n calculateCountdown() {\n const now = Date.now();\n const elapsed = now - this.lastUpdate;\n this.lastUpdate = now;\n\n // Update remaining seconds\n this.remainingStartSeconds -= elapsed / 1000;\n this.remainingEndSeconds -= elapsed / 1000;\n\n // Update countdown based on remaining seconds\n if (this.remainingStartSeconds > 0) {\n // First countdown\n this.titleTarget.textContent = this.startTitleValue;\n this.updateCountdown(Math.max(0, this.remainingStartSeconds * 1000));\n } else if (this.remainingEndSeconds > 0) {\n // Second countdown\n this.titleTarget.textContent = this.endTitleValue;\n this.updateCountdown(Math.max(0, this.remainingEndSeconds * 1000));\n } else {\n // End countdown\n this.titleTarget.textContent = this.endTitleValue;\n clearInterval(this.interval);\n this.updateCountdown(0);\n }\n }\n\n // Update UI\n updateCountdown(distance) {\n const days = Math.floor(distance / (1000 * 60 * 60 * 24));\n const hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));\n const minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));\n const seconds = Math.floor((distance % (1000 * 60)) / 1000);\n\n this.daysTarget.textContent = this.formatNumber(days);\n this.hoursTarget.textContent = this.formatNumber(hours);\n this.minutesTarget.textContent = this.formatNumber(minutes);\n this.secondsTarget.textContent = this.formatNumber(seconds);\n }\n\n formatNumber(number) {\n return number < 10 ? `0${number}` : number;\n }\n\n disconnect() {\n if (this.interval) {\n clearInterval(this.interval);\n }\n }\n}", "import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = [\"checkbox\", \"dateFields\"];\n\n toggle() {\n if (this.checkboxTarget.checked) {\n this.dateFieldsTarget.classList.remove(\"d-none\");\n } else {\n this.dateFieldsTarget.classList.add(\"d-none\");\n }\n }\n}", "import { Controller } from \"@hotwired/stimulus\"\n\n// Connects to data-controller=\"direcktdruck\"\nexport default class extends Controller {\n static targets = [ \"barcodeInput\", \"printButton\", \"resetButton\", \"printFrame\", \"printFrameEnd\" ]\n connect() {\n console.log(\"DirecktdruckController connected\")\n console.log(this.printButtonTargets.length);\n console.log(this.resetButtonTargets.length);\n console.log(this.barcodeInputTargets.length);\n }\n\n\n\n printFrameEndTargetConnected() {\n console.log(\"printFrameEnd connected\");\n\n if (this.printButtonTargets.length <= this.resetButtonTargets.length)\n {\n this.barcodeInputTarget.focus();\n }\n }\n\n\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\n// Connects to data-controller=\"field-copy\"\nexport default class extends Controller {\n static targets = [\"destination\"]\n\n\n copy(event) {\n \n \n this.destinationTargets.forEach((destinationTarget) => {\n if (event.target.dataset.copyIdentifier === destinationTarget.dataset.copyIdentifier) {\n destinationTarget.value = event.target.value;\n }\n });\n }\n\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\n// Connects to data-controller=\"focus\"\nexport default class extends Controller {\n\n static targets = [ \"input\" ]\n\n connect() {\n this.inputTarget.focus()\n }\n}\n", "// hello_controller.js\nimport { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [ \"name\", \"output\" ]\n\n greet() {\n this.outputTarget.textContent =\n `Hello A, ${this.nameTarget.value}!`\n }\n}", "import { Controller } from \"@hotwired/stimulus\"\n\n// Connects to data-controller=\"image-modal\"\nexport default class extends Controller {\n static targets = [\"image\", \"modal\", \"title\"]\n\n\n\n connect() {\n }\n\n show(event) {\n event.preventDefault()\n const myModal = new bootstrap.Modal(this.modalTarget, {})\n \n this.imageTarget.src = event.target.src;\n this.titleTarget.innerHTML = event.currentTarget.dataset.title;\n \n myModal.show();\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\n// Connects to data-controller=\"kleinunternehmer-modal\"\nexport default class extends Controller {\n\n static targets = [ \"modal\" ]\n\n connect() {\n }\n\n open(event) {\n \n if (event.currentTarget.checked) \n {\n const myModal = new bootstrap.Modal(this.modalTarget, {})\n myModal.show();\n }\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\n// Connects to data-controller=\"motiv-collection\"\nexport default class extends Controller {\n static targets = [ \"selectbox\" ]\n static values = { url: String }\n connect() {\n console.log(this.selectboxTarget.id);\n console.log(this.urlValue);\n $(\"#\" + this.selectboxTarget.id).select2({\n width: '100%',\n ajax: {\n url: this.urlValue,\n dataType: 'json',\n \n // Additional AJAX parameters go here; see the end of this chapter for the full code of this example\n }\n });\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\n// Connects to data-controller=\"motiv-own-price\"\nexport default class extends Controller {\n\n static targets = [ \"price\", \"provision\" ]\n\n connect() {\n this.updatePrice();\n }\n\n updatePrice()\n {\n this.priceTargets.forEach((price) => {\n\n var show_price = parseFloat(price.dataset.price);\n\n if (this.hasProvisionTarget) {\n\n var provisionTarget = parseFloat(this.provisionTarget.value);\n\n if (isNaN(provisionTarget)) {\n provisionTarget = 0;\n }\n\n if (provisionTarget < 0) {\n provisionTarget = 0;\n }\n\n if (provisionTarget > 30) {\n provisionTarget = 30;\n this.provisionTarget.value = 30;\n }\n\n show_price = show_price + provisionTarget;\n }\n\n \n show_price = show_price.toFixed(2);\n \n price.innerHTML = new Intl.NumberFormat().format(show_price) + \" \" + price.dataset.currency;\n });\n }\n\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\n// Connects to data-controller=\"motiv-position-copy\"\nexport default class extends Controller {\n\n static targets = [ \"master\", \"slave\" ]\n\n connect() {\n this.slaveTarget.value = this.masterTarget.value;\n }\n\n copyData(event) {\n if (event.target == this.masterTarget) {\n this.slaveTarget.value = this.masterTarget.value\n }\n\n if (event.target == this.slaveTarget) {\n this.masterTarget.value = this.slaveTarget.value\n }\n }\n}\n", "\nimport { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [ \"imageTarget\", \"selectable\", \"link\"]\n\tstatic values = { preselected: String }\n\tconnect() {\n\n\t\tvar clicked = false;\n\t\tif (this.preselectedValue) \n\t\t{\n\t\t\tthis.selectableTargets.forEach(element => {\n\t\t\t\tconsole.log(element.dataset.idForSelector, this.preselectedValue);\n\t\t\t\tif (element.dataset.idForSelector == this.preselectedValue) {\n\t\t\t\t\telement.click();\n\t\t\t\t\tclicked = true;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tif (!clicked) \n\t\t{\n\t\t\tthis.selectableTarget.click();\n\t\t};\n\t}\n\n selectImage(event) {\n\t\t\n \n\t\tthis.imageTargetTarget.src = event.target.getAttribute('src');\n\t\tthis.linkTarget.href = event.target.dataset.link;\n\n\t\tthis.selectableTargets.forEach(element => {\n\t\t\telement.classList.remove(\"border-primary\")\t\n\t\t});\n\t\t\n\t\tevent.target.classList.add(\"border-primary\");\n\t\t\n\n\t\tconsole.log(\"selectImage\");\n }\n}", "import { Controller } from \"@hotwired/stimulus\"\n\n// Connects to data-controller=\"password\"\nexport default class extends Controller {\n\n static targets = [ \"password\", \"toggle\" ]\n\n connect() {\n }\n\n toggle() {\n if (this.passwordTarget.type === \"password\") {\n this.passwordTarget.type = \"text\"\n } else {\n this.passwordTarget.type = \"password\"\n }\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\n// Connects to data-controller=\"predefined-position\"\nexport default class extends Controller {\n static targets = [ \"image\", \"printablePosition\", \"selectedPosition\", \"scale\", \"offsetLeft\", \"offsetTop\", \"calculatedSize\"];\n\n\n connect() {\n this.updatePosition();\n }\n\n updatePosition() {\n \n if (!this.hasImageTarget || !this.hasPrintablePositionTarget)\n {\n return;\n }\n\n\n var image = this.imageTarget;\n var printable_position = this.printablePositionTarget;\n \n\n\n\n printable_position.style.width = image.dataset.percentWidth + \"%\";\n \n\n var printable_position_calucalation_height = 0;\n var offset_print_position_top_pixel = 0;\n \n if (image.dataset.useAbsoluteHeight == \"1\")\n {\n \n printable_position_calucalation_height = Math.round(printable_position.offsetWidth * image.dataset.direktdruckScaleFactor);\n offset_print_position_top_pixel = Math.round(printable_position_calucalation_height * (printable_position.dataset.direktdruckNotUseSpaceFromTopPercent / 100.0));\n\n printable_position.style.height = Math.round(printable_position.offsetWidth * image.dataset.direktdruckScaleFactor * (printable_position.dataset.direktdruckOnlyUsePercentOfTop / 100.0) - offset_print_position_top_pixel ) + \"px\";\n \n }\n else\n {\n\n printable_position.style.height = image.dataset.percentHeight + \"%\";\n printable_position_calucalation_height = printable_position.offsetHeight;\n }\n \n \n var top = image.offsetHeight * (image.dataset.percentOffsetTop / 100);\n top = top - (printable_position_calucalation_height / 2) + offset_print_position_top_pixel;\n\n if (top < 0 )\n {\n top = 0;\n }\n printable_position.style.top = top + \"px\";\n\n\n var left = image.offsetWidth * (image.dataset.percentOffsetLeft / 100);\n left = left - (printable_position.offsetWidth / 2);\n\n if (left < 0 )\n {\n left = 0;\n }\n printable_position.style.left = left + \"px\";\n\n\n var motiv_width = (printable_position.offsetWidth * (this.scaleTarget.value / 100));\n var motiv_height = motiv_width;\n\n\n if (motiv_height > printable_position.offsetHeight)\n {\n motiv_height = printable_position.offsetHeight;\n }\n\n\n this.selectedPositionTarget.style.width = motiv_width + \"px\";\n this.selectedPositionTarget.style.height = motiv_height + \"px\";\n \n\n \n\n var max_height = printable_position.offsetHeight - motiv_height;\n var motiv_top = max_height * (this.offsetTopTarget.value / 100);\n this.selectedPositionTarget.style.top = motiv_top + \"px\";\n\n var max_width = printable_position.offsetWidth - motiv_width;\n var motiv_left = max_width * (this.offsetLeftTarget.value / 100);\n this.selectedPositionTarget.style.left = motiv_left + \"px\";\n\n\n\n var cm_width = this.imageTarget.dataset.cmWidth;\n var cm_height = this.imageTarget.dataset.cmHeight;\n\n var motiv_width_cm = cm_width * motiv_width / printable_position.offsetWidth;\n var motiv_height_cm = cm_height * motiv_height / printable_position.offsetHeight;\n\n var motiv_offset_left_cm = cm_width * (motiv_left / printable_position.offsetWidth);\n var motiv_offset_right_cm = cm_width * ((max_width - motiv_left) / printable_position.offsetWidth);\n\n var motiv_offset_top_cm = cm_height * (motiv_top / printable_position.offsetHeight);\n var motiv_offset_bottom_cm = cm_height * ((max_height - motiv_top) / printable_position.offsetHeight);\n \n \n motiv_width_cm = Math.round(motiv_width_cm * 100 ) / 100;\n motiv_height_cm = Math.round(motiv_height_cm * 100 ) / 100;\n\n motiv_offset_left_cm = Math.round(motiv_offset_left_cm * 100 ) / 100;\n motiv_offset_right_cm = Math.round(motiv_offset_right_cm * 100 ) / 100;\n motiv_offset_bottom_cm = Math.round(motiv_offset_bottom_cm * 100 ) / 100;\n motiv_offset_top_cm = Math.round(motiv_offset_top_cm * 100 ) / 100;\n\n\n if (isNaN(motiv_height_cm))\n {\n motiv_height_cm = 0;\n }\n\n this.calculatedSizeTarget.innerHTML = \"Gr\u00F6\u00DFe: <b>\" + motiv_width_cm + \"</b> x <b>\" + motiv_height_cm + \"</b> cm <br> Abstand O, U: \" + motiv_offset_top_cm + \", \" + motiv_offset_bottom_cm + \" cm<br> Abstand: L, R: \" + motiv_offset_left_cm + \", \" + motiv_offset_right_cm + \" cm\";\n\n\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\n// Connects to data-controller=\"search-auto\"\nexport default class extends Controller {\n static targets = [ \"form\" ]\n connect() {\n }\n\n search()\n {\n clearTimeout(this.timeout);\n this.timeout = setTimeout(() => {\n this.formTarget.requestSubmit();\n }, 400);\n\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\n// Connects to data-controller=\"select-full-with\"\nexport default class extends Controller {\n static targets = [ \"selectbox\" ]\n static values = { url: String }\n\n connect() {\n console.log(this.selectboxTarget.id);\n console.log(this.urlValue);\n $(\"#\" + this.selectboxTarget.id).select2({\n width: '100%'\n });\n }\n}\n", "\nimport { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n\tstatic values = {\n\t\tdata: Array,\n\t\tlabel: String\n\t}\n\tstatic targets = [\"canvas\"]\n\t\n\tconnect() {\n\t\t\n\t\tconst ctx = this.canvasTarget.getContext(\"2d\");\n\t\t\n\t\t\n\t\tconst myChart = new Chart(ctx, {\n\t\t\t\ttype: 'line',\n\t\t\t\tdata: {\n\t\t\t\t\t\tdatasets: [{\n\t\t\t\t\t\t\tlabel: this.labelValue,\n\t\t\t\t\t\t\tdata: this.dataValue,\n\t\t\t\t\t\t\tborderColor: '#0d6efd',\n\t\t\t\t\t\t\tcubicInterpolationMode: 'monotone',\n\t\t\t\t\t\t}]\n\t\t\t\t\t\t\n\t\t\t\t},\n\t\t\t\toptions: {\n\t\t\t\t\t\tscales: {\n\t\t\t\t\t\t\t\ty: {\n\t\t\t\t\t\t\t\t\t\tbeginAtZero: true\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmaintainAspectRatio: false,\n\t\t\t\t}\n\t\t});\n\n\t\t\n\t}\n\n \n}", "import { Controller } from \"@hotwired/stimulus\"\n\n// Connects to data-controller=\"stock-item-amount-manual\"\nexport default class extends Controller {\n static targets = [ \"selectbox\", \"id\", \"infoField\" ]\n static ignore_change = false;\n\n\n connect() {\n $(this.selectboxTarget).on('select2:select', function () {\n let event = new Event('change', { bubbles: true }) // fire a native event\n this.dispatchEvent(event);\n })\n\n this.show_hide_info_fields();\n \n this.idTarget.focus();\n }\n \n id_changed() {\n console.log(this.idTarget.value);\n \n \n this.selectboxTarget.value = this.idTarget.value;\n this.selectboxTarget.dispatchEvent(new Event(\"change\")); \n \n \n this.show_hide_info_fields();\n \n }\n\n selectbox_changed() \n {\n console.log(\"selectbox changed\");\n if (this.selectboxTarget.value != \"\")\n {\n console.log(\"set value\");\n this.idTarget.value = this.selectboxTarget.value;\n }\n\n this.show_hide_info_fields();\n }\n\n\n show_hide_info_fields() {\n\n var id = this.idTarget.value;\n\n this.infoFieldTargets.forEach((infoField) => {\n if (infoField.dataset.stockItemId == id) {\n infoField.classList.remove(\"d-none\");\n }\n else\n {\n infoField.classList.add(\"d-none\");\n }\n });\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"stockItemSelect\", \"motivSelect\", \"amountField\", \"priceField\"]\n static values = { url: String, orderId: Number }\n\n connect() {\n console.log('Storno Price Update Controller active');\n\n // On stock item change, update price\n $(this.stockItemSelectTarget).on('select2:select', this.updatePrice.bind(this));\n }\n\n updatePrice() {\n const selectedStockItemId = this.stockItemSelectTarget.value;\n const selectedMotivId = this.motivSelectTarget.value;\n const selectedAmount = this.amountFieldTarget.value;\n\n if (!selectedMotivId || !selectedStockItemId || !selectedAmount || !this.urlValue || !this.orderIdValue) {\n console.error('Missing required values');\n return;\n }\n\n // Build url to fetch new price\n const url = `${this.urlValue}?stock_item_id=${selectedStockItemId}`\n + `&motiv_id=${selectedMotivId}`\n + `&amount=${selectedAmount}`\n + `&order_id=${this.orderIdValue}`;\n\n fetch(url, {\n headers: {\n \"Accept\": \"application/json\"\n }\n })\n .then(response => response.json())\n .then(data => {\n if (data.price !== undefined && data.price !== null) {\n this.priceFieldTarget.value = data.price;\n }\n })\n }\n}", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"select\", \"countdownFields\", \"localeTimezone\", \"startDate\", \"endDate\", \"utcStartDate\", \"utcEndDate\"];\n static values = {\n countdown: Number\n }\n\n connect() {\n this.toggleCountdownFields();\n this.updateUTCHints();\n }\n\n updateUTCHints() {\n // Get the timezone and offset of the user\n const timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n const offset = new Date().getTimezoneOffset() / -60;\n\n // Update the timezone info text\n this.localeTimezoneTarget.textContent = `${timeZone} (UTC${offset >= 0 ? '+' : ''}${offset})`;\n\n // Date format options\n const dateFormatOptions = {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n hour12: false,\n timeZone: 'UTC'\n };\n \n // Update UTC start date\n if (this.startDateTarget.value) {\n const utcDate = new Date(this.startDateTarget.value);\n this.utcStartDateTarget.textContent = utcDate.toLocaleString(undefined, dateFormatOptions);\n } else {\n this.utcStartDateTarget.textContent = '-';\n }\n \n // Update UTC end date\n if (this.endDateTarget.value) {\n const utcDate = new Date(this.endDateTarget.value);\n this.utcEndDateTarget.textContent = utcDate.toLocaleString(undefined, dateFormatOptions);\n } else {\n this.utcEndDateTarget.textContent = '-';\n }\n }\n\n toggleCountdownFields() {\n const isCountdown = this.selectTarget.value == this.countdownValue;\n this.countdownFieldsTarget.classList.toggle('d-none', !isCountdown);\n\n // Reset inputs if tile type is not countdown\n if (!isCountdown) {\n this.countdownFieldsTarget.querySelectorAll('input').forEach(input => input.value = '');\n }\n }\n}", "// This file is auto-generated by ./bin/rails stimulus:manifest:update\n// Run that command whenever you add a new controller or create them with\n// ./bin/rails generate stimulus controllerName\n\nimport { application } from \"./application\"\n\nimport AutoHideController from \"./auto_hide_controller\"\napplication.register(\"auto-hide\", AutoHideController)\n\nimport BasketController from \"./basket_controller\"\napplication.register(\"basket\", BasketController)\n\nimport CountdownController from \"./countdown_controller\"\napplication.register(\"countdown\", CountdownController)\n\nimport CountdownTileController from \"./countdown_tile_controller\"\napplication.register(\"countdown-tile\", CountdownTileController)\n\nimport CouponCodesFormController from \"./coupon_codes_form_controller\"\napplication.register(\"coupon-codes-form\", CouponCodesFormController)\n\nimport DirecktdruckController from \"./direcktdruck_controller\"\napplication.register(\"direcktdruck\", DirecktdruckController)\n\nimport FieldCopyController from \"./field_copy_controller\"\napplication.register(\"field-copy\", FieldCopyController)\n\nimport FocusController from \"./focus_controller\"\napplication.register(\"focus\", FocusController)\n\nimport HelloController from \"./hello_controller\"\napplication.register(\"hello\", HelloController)\n\nimport ImageModalController from \"./image_modal_controller\"\napplication.register(\"image-modal\", ImageModalController)\n\nimport KleinunternehmerModalController from \"./kleinunternehmer_modal_controller\"\napplication.register(\"kleinunternehmer-modal\", KleinunternehmerModalController)\n\nimport MotivCollectionController from \"./motiv_collection_controller\"\napplication.register(\"motiv-collection\", MotivCollectionController)\n\nimport MotivOwnPriceController from \"./motiv_own_price_controller\"\napplication.register(\"motiv-own-price\", MotivOwnPriceController)\n\nimport MotivPositionCopyController from \"./motiv_position_copy_controller\"\napplication.register(\"motiv-position-copy\", MotivPositionCopyController)\n\nimport MotivShowController from \"./motiv_show_controller\"\napplication.register(\"motiv-show\", MotivShowController)\n\nimport PasswordController from \"./password_controller\"\napplication.register(\"password\", PasswordController)\n\nimport PredefinedPositionController from \"./predefined_position_controller\"\napplication.register(\"predefined-position\", PredefinedPositionController)\n\nimport SearchAutoController from \"./search_auto_controller\"\napplication.register(\"search-auto\", SearchAutoController)\n\nimport SelectFullWithController from \"./select_full_with_controller\"\napplication.register(\"select-full-with\", SelectFullWithController)\n\nimport StatsDataController from \"./stats_data_controller\"\napplication.register(\"stats-data\", StatsDataController)\n\nimport StockItemAmountManualController from \"./stock_item_amount_manual_controller\"\napplication.register(\"stock-item-amount-manual\", StockItemAmountManualController)\n\nimport StornoPriceUpdateController from \"./storno_price_update_controller\"\napplication.register(\"storno-price-update\", StornoPriceUpdateController)\n\nimport TileTypeController from \"./tile_type_controller\"\napplication.register(\"tile-type\", TileTypeController)", "import \"trix\"\nimport \"@rails/actiontext\"\nimport \"@hotwired/turbo-rails\"\nimport \"./controllers\"\nimport \"jquery/dist/jquery.min\"\nimport \"./chart.min.js\"\n\n\n\n\nimport Rails from '@rails/ujs';\n//Rails.start();\n\nimport jquery from \"jquery\";\nwindow.$ = jquery\nwindow.jQuery = jquery\n\nimport select2 from 'select2';\n\n//Hook up select2 to jQuery\nselect2($);\n\n\n\nimport bootstrap from \"./bootstrap.bundle.js\"\n//import bootstrap from \"bootstrap/dist/js/bootstrap.bundle\"\nwindow.bootstrap = bootstrap\n\n\n$(document).on('select2:open', () => {\n\tlet allFound = document.querySelectorAll('.select2-container--open .select2-search__field');\n\tallFound[allFound.length - 1].focus();\n});\n\ndocument.addEventListener(\"turbo:load\", function() {\n\t$('.select2-simple').select2({\n\t\ttheme: \"classic\", \n\t\tselectionCssClass: \"form-select\"\n\t});\n});", "/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/main/actionview/app/javascript\nReleased under the MIT license\n */\nconst linkClickSelector = \"a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]\";\n\nconst buttonClickSelector = {\n selector: \"button[data-remote]:not([form]), button[data-confirm]:not([form])\",\n exclude: \"form button\"\n};\n\nconst inputChangeSelector = \"select[data-remote], input[data-remote], textarea[data-remote]\";\n\nconst formSubmitSelector = \"form:not([data-turbo=true])\";\n\nconst formInputClickSelector = \"form:not([data-turbo=true]) input[type=submit], form:not([data-turbo=true]) input[type=image], form:not([data-turbo=true]) button[type=submit], form:not([data-turbo=true]) button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])\";\n\nconst formDisableSelector = \"input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled\";\n\nconst formEnableSelector = \"input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled\";\n\nconst fileInputSelector = \"input[name][type=file]:not([disabled])\";\n\nconst linkDisableSelector = \"a[data-disable-with], a[data-disable]\";\n\nconst buttonDisableSelector = \"button[data-remote][data-disable-with], button[data-remote][data-disable]\";\n\nlet nonce = null;\n\nconst loadCSPNonce = () => {\n const metaTag = document.querySelector(\"meta[name=csp-nonce]\");\n return nonce = metaTag && metaTag.content;\n};\n\nconst cspNonce = () => nonce || loadCSPNonce();\n\nconst m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n\nconst matches = function(element, selector) {\n if (selector.exclude) {\n return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n } else {\n return m.call(element, selector);\n }\n};\n\nconst EXPANDO = \"_ujsData\";\n\nconst getData = (element, key) => element[EXPANDO] ? element[EXPANDO][key] : undefined;\n\nconst setData = function(element, key, value) {\n if (!element[EXPANDO]) {\n element[EXPANDO] = {};\n }\n return element[EXPANDO][key] = value;\n};\n\nconst $ = selector => Array.prototype.slice.call(document.querySelectorAll(selector));\n\nconst isContentEditable = function(element) {\n var isEditable = false;\n do {\n if (element.isContentEditable) {\n isEditable = true;\n break;\n }\n element = element.parentElement;\n } while (element);\n return isEditable;\n};\n\nconst csrfToken = () => {\n const meta = document.querySelector(\"meta[name=csrf-token]\");\n return meta && meta.content;\n};\n\nconst csrfParam = () => {\n const meta = document.querySelector(\"meta[name=csrf-param]\");\n return meta && meta.content;\n};\n\nconst CSRFProtection = xhr => {\n const token = csrfToken();\n if (token) {\n return xhr.setRequestHeader(\"X-CSRF-Token\", token);\n }\n};\n\nconst refreshCSRFTokens = () => {\n const token = csrfToken();\n const param = csrfParam();\n if (token && param) {\n return $('form input[name=\"' + param + '\"]').forEach((input => input.value = token));\n }\n};\n\nconst AcceptHeaders = {\n \"*\": \"*/*\",\n text: \"text/plain\",\n html: \"text/html\",\n xml: \"application/xml, text/xml\",\n json: \"application/json, text/javascript\",\n script: \"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript\"\n};\n\nconst ajax = options => {\n options = prepareOptions(options);\n var xhr = createXHR(options, (function() {\n const response = processResponse(xhr.response != null ? xhr.response : xhr.responseText, xhr.getResponseHeader(\"Content-Type\"));\n if (Math.floor(xhr.status / 100) === 2) {\n if (typeof options.success === \"function\") {\n options.success(response, xhr.statusText, xhr);\n }\n } else {\n if (typeof options.error === \"function\") {\n options.error(response, xhr.statusText, xhr);\n }\n }\n return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : undefined;\n }));\n if (options.beforeSend && !options.beforeSend(xhr, options)) {\n return false;\n }\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n};\n\nvar prepareOptions = function(options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\n if (options.type === \"GET\" && options.data) {\n if (options.url.indexOf(\"?\") < 0) {\n options.url += \"?\" + options.data;\n } else {\n options.url += \"&\" + options.data;\n }\n }\n if (!(options.dataType in AcceptHeaders)) {\n options.dataType = \"*\";\n }\n options.accept = AcceptHeaders[options.dataType];\n if (options.dataType !== \"*\") {\n options.accept += \", */*; q=0.01\";\n }\n return options;\n};\n\nvar createXHR = function(options, done) {\n const xhr = new XMLHttpRequest;\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader(\"Accept\", options.accept);\n if (typeof options.data === \"string\") {\n xhr.setRequestHeader(\"Content-Type\", \"application/x-www-form-urlencoded; charset=UTF-8\");\n }\n if (!options.crossDomain) {\n xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n CSRFProtection(xhr);\n }\n xhr.withCredentials = !!options.withCredentials;\n xhr.onreadystatechange = function() {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n return xhr;\n};\n\nvar processResponse = function(response, type) {\n if (typeof response === \"string\" && typeof type === \"string\") {\n if (type.match(/\\bjson\\b/)) {\n try {\n response = JSON.parse(response);\n } catch (error) {}\n } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n const script = document.createElement(\"script\");\n script.setAttribute(\"nonce\", cspNonce());\n script.text = response;\n document.head.appendChild(script).parentNode.removeChild(script);\n } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n const parser = new DOMParser;\n type = type.replace(/;.+/, \"\");\n try {\n response = parser.parseFromString(response, type);\n } catch (error1) {}\n }\n }\n return response;\n};\n\nconst href = element => element.href;\n\nconst isCrossDomain = function(url) {\n const originAnchor = document.createElement(\"a\");\n originAnchor.href = location.href;\n const urlAnchor = document.createElement(\"a\");\n try {\n urlAnchor.href = url;\n return !((!urlAnchor.protocol || urlAnchor.protocol === \":\") && !urlAnchor.host || originAnchor.protocol + \"//\" + originAnchor.host === urlAnchor.protocol + \"//\" + urlAnchor.host);\n } catch (e) {\n return true;\n }\n};\n\nlet preventDefault;\n\nlet {CustomEvent: CustomEvent} = window;\n\nif (typeof CustomEvent !== \"function\") {\n CustomEvent = function(event, params) {\n const evt = document.createEvent(\"CustomEvent\");\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n CustomEvent.prototype = window.Event.prototype;\n ({preventDefault: preventDefault} = CustomEvent.prototype);\n CustomEvent.prototype.preventDefault = function() {\n const result = preventDefault.call(this);\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, \"defaultPrevented\", {\n get() {\n return true;\n }\n });\n }\n return result;\n };\n}\n\nconst fire = (obj, name, data) => {\n const event = new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: data\n });\n obj.dispatchEvent(event);\n return !event.defaultPrevented;\n};\n\nconst stopEverything = e => {\n fire(e.target, \"ujs:everythingStopped\");\n e.preventDefault();\n e.stopPropagation();\n e.stopImmediatePropagation();\n};\n\nconst delegate = (element, selector, eventType, handler) => element.addEventListener(eventType, (function(e) {\n let {target: target} = e;\n while (!!(target instanceof Element) && !matches(target, selector)) {\n target = target.parentNode;\n }\n if (target instanceof Element && handler.call(target, e) === false) {\n e.preventDefault();\n e.stopPropagation();\n }\n}));\n\nconst toArray = e => Array.prototype.slice.call(e);\n\nconst serializeElement = (element, additionalParam) => {\n let inputs = [ element ];\n if (matches(element, \"form\")) {\n inputs = toArray(element.elements);\n }\n const params = [];\n inputs.forEach((function(input) {\n if (!input.name || input.disabled) {\n return;\n }\n if (matches(input, \"fieldset[disabled] *\")) {\n return;\n }\n if (matches(input, \"select\")) {\n toArray(input.options).forEach((function(option) {\n if (option.selected) {\n params.push({\n name: input.name,\n value: option.value\n });\n }\n }));\n } else if (input.checked || [ \"radio\", \"checkbox\", \"submit\" ].indexOf(input.type) === -1) {\n params.push({\n name: input.name,\n value: input.value\n });\n }\n }));\n if (additionalParam) {\n params.push(additionalParam);\n }\n return params.map((function(param) {\n if (param.name) {\n return `${encodeURIComponent(param.name)}=${encodeURIComponent(param.value)}`;\n } else {\n return param;\n }\n })).join(\"&\");\n};\n\nconst formElements = (form, selector) => {\n if (matches(form, \"form\")) {\n return toArray(form.elements).filter((el => matches(el, selector)));\n } else {\n return toArray(form.querySelectorAll(selector));\n }\n};\n\nconst handleConfirmWithRails = rails => function(e) {\n if (!allowAction(this, rails)) {\n stopEverything(e);\n }\n};\n\nconst confirm = (message, element) => window.confirm(message);\n\nvar allowAction = function(element, rails) {\n let callback;\n const message = element.getAttribute(\"data-confirm\");\n if (!message) {\n return true;\n }\n let answer = false;\n if (fire(element, \"confirm\")) {\n try {\n answer = rails.confirm(message, element);\n } catch (error) {}\n callback = fire(element, \"confirm:complete\", [ answer ]);\n }\n return answer && callback;\n};\n\nconst handleDisabledElement = function(e) {\n const element = this;\n if (element.disabled) {\n stopEverything(e);\n }\n};\n\nconst enableElement = e => {\n let element;\n if (e instanceof Event) {\n if (isXhrRedirect(e)) {\n return;\n }\n element = e.target;\n } else {\n element = e;\n }\n if (isContentEditable(element)) {\n return;\n }\n if (matches(element, linkDisableSelector)) {\n return enableLinkElement(element);\n } else if (matches(element, buttonDisableSelector) || matches(element, formEnableSelector)) {\n return enableFormElement(element);\n } else if (matches(element, formSubmitSelector)) {\n return enableFormElements(element);\n }\n};\n\nconst disableElement = e => {\n const element = e instanceof Event ? e.target : e;\n if (isContentEditable(element)) {\n return;\n }\n if (matches(element, linkDisableSelector)) {\n return disableLinkElement(element);\n } else if (matches(element, buttonDisableSelector) || matches(element, formDisableSelector)) {\n return disableFormElement(element);\n } else if (matches(element, formSubmitSelector)) {\n return disableFormElements(element);\n }\n};\n\nvar disableLinkElement = function(element) {\n if (getData(element, \"ujs:disabled\")) {\n return;\n }\n const replacement = element.getAttribute(\"data-disable-with\");\n if (replacement != null) {\n setData(element, \"ujs:enable-with\", element.innerHTML);\n element.innerHTML = replacement;\n }\n element.addEventListener(\"click\", stopEverything);\n return setData(element, \"ujs:disabled\", true);\n};\n\nvar enableLinkElement = function(element) {\n const originalText = getData(element, \"ujs:enable-with\");\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, \"ujs:enable-with\", null);\n }\n element.removeEventListener(\"click\", stopEverything);\n return setData(element, \"ujs:disabled\", null);\n};\n\nvar disableFormElements = form => formElements(form, formDisableSelector).forEach(disableFormElement);\n\nvar disableFormElement = function(element) {\n if (getData(element, \"ujs:disabled\")) {\n return;\n }\n const replacement = element.getAttribute(\"data-disable-with\");\n if (replacement != null) {\n if (matches(element, \"button\")) {\n setData(element, \"ujs:enable-with\", element.innerHTML);\n element.innerHTML = replacement;\n } else {\n setData(element, \"ujs:enable-with\", element.value);\n element.value = replacement;\n }\n }\n element.disabled = true;\n return setData(element, \"ujs:disabled\", true);\n};\n\nvar enableFormElements = form => formElements(form, formEnableSelector).forEach((element => enableFormElement(element)));\n\nvar enableFormElement = function(element) {\n const originalText = getData(element, \"ujs:enable-with\");\n if (originalText != null) {\n if (matches(element, \"button\")) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n setData(element, \"ujs:enable-with\", null);\n }\n element.disabled = false;\n return setData(element, \"ujs:disabled\", null);\n};\n\nvar isXhrRedirect = function(event) {\n const xhr = event.detail ? event.detail[0] : undefined;\n return xhr && xhr.getResponseHeader(\"X-Xhr-Redirect\");\n};\n\nconst handleMethodWithRails = rails => function(e) {\n const link = this;\n const method = link.getAttribute(\"data-method\");\n if (!method) {\n return;\n }\n if (isContentEditable(this)) {\n return;\n }\n const href = rails.href(link);\n const csrfToken$1 = csrfToken();\n const csrfParam$1 = csrfParam();\n const form = document.createElement(\"form\");\n let formContent = `<input name='_method' value='${method}' type='hidden' />`;\n if (csrfParam$1 && csrfToken$1 && !isCrossDomain(href)) {\n formContent += `<input name='${csrfParam$1}' value='${csrfToken$1}' type='hidden' />`;\n }\n formContent += '<input type=\"submit\" />';\n form.method = \"post\";\n form.action = href;\n form.target = link.target;\n form.innerHTML = formContent;\n form.style.display = \"none\";\n document.body.appendChild(form);\n form.querySelector('[type=\"submit\"]').click();\n stopEverything(e);\n};\n\nconst isRemote = function(element) {\n const value = element.getAttribute(\"data-remote\");\n return value != null && value !== \"false\";\n};\n\nconst handleRemoteWithRails = rails => function(e) {\n let data, method, url;\n const element = this;\n if (!isRemote(element)) {\n return true;\n }\n if (!fire(element, \"ajax:before\")) {\n fire(element, \"ajax:stopped\");\n return false;\n }\n if (isContentEditable(element)) {\n fire(element, \"ajax:stopped\");\n return false;\n }\n const withCredentials = element.getAttribute(\"data-with-credentials\");\n const dataType = element.getAttribute(\"data-type\") || \"script\";\n if (matches(element, formSubmitSelector)) {\n const button = getData(element, \"ujs:submit-button\");\n method = getData(element, \"ujs:submit-button-formmethod\") || element.getAttribute(\"method\") || \"get\";\n url = getData(element, \"ujs:submit-button-formaction\") || element.getAttribute(\"action\") || location.href;\n if (method.toUpperCase() === \"GET\") {\n url = url.replace(/\\?.*$/, \"\");\n }\n if (element.enctype === \"multipart/form-data\") {\n data = new FormData(element);\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\n }\n setData(element, \"ujs:submit-button\", null);\n setData(element, \"ujs:submit-button-formmethod\", null);\n setData(element, \"ujs:submit-button-formaction\", null);\n } else if (matches(element, buttonClickSelector) || matches(element, inputChangeSelector)) {\n method = element.getAttribute(\"data-method\");\n url = element.getAttribute(\"data-url\");\n data = serializeElement(element, element.getAttribute(\"data-params\"));\n } else {\n method = element.getAttribute(\"data-method\");\n url = rails.href(element);\n data = element.getAttribute(\"data-params\");\n }\n ajax({\n type: method || \"GET\",\n url: url,\n data: data,\n dataType: dataType,\n beforeSend(xhr, options) {\n if (fire(element, \"ajax:beforeSend\", [ xhr, options ])) {\n return fire(element, \"ajax:send\", [ xhr ]);\n } else {\n fire(element, \"ajax:stopped\");\n return false;\n }\n },\n success(...args) {\n return fire(element, \"ajax:success\", args);\n },\n error(...args) {\n return fire(element, \"ajax:error\", args);\n },\n complete(...args) {\n return fire(element, \"ajax:complete\", args);\n },\n crossDomain: isCrossDomain(url),\n withCredentials: withCredentials != null && withCredentials !== \"false\"\n });\n stopEverything(e);\n};\n\nconst formSubmitButtonClick = function(e) {\n const button = this;\n const {form: form} = button;\n if (!form) {\n return;\n }\n if (button.name) {\n setData(form, \"ujs:submit-button\", {\n name: button.name,\n value: button.value\n });\n }\n setData(form, \"ujs:formnovalidate-button\", button.formNoValidate);\n setData(form, \"ujs:submit-button-formaction\", button.getAttribute(\"formaction\"));\n return setData(form, \"ujs:submit-button-formmethod\", button.getAttribute(\"formmethod\"));\n};\n\nconst preventInsignificantClick = function(e) {\n const link = this;\n const method = (link.getAttribute(\"data-method\") || \"GET\").toUpperCase();\n const data = link.getAttribute(\"data-params\");\n const metaClick = e.metaKey || e.ctrlKey;\n const insignificantMetaClick = metaClick && method === \"GET\" && !data;\n const nonPrimaryMouseClick = e.button != null && e.button !== 0;\n if (nonPrimaryMouseClick || insignificantMetaClick) {\n e.stopImmediatePropagation();\n }\n};\n\nconst Rails = {\n $: $,\n ajax: ajax,\n buttonClickSelector: buttonClickSelector,\n buttonDisableSelector: buttonDisableSelector,\n confirm: confirm,\n cspNonce: cspNonce,\n csrfToken: csrfToken,\n csrfParam: csrfParam,\n CSRFProtection: CSRFProtection,\n delegate: delegate,\n disableElement: disableElement,\n enableElement: enableElement,\n fileInputSelector: fileInputSelector,\n fire: fire,\n formElements: formElements,\n formEnableSelector: formEnableSelector,\n formDisableSelector: formDisableSelector,\n formInputClickSelector: formInputClickSelector,\n formSubmitButtonClick: formSubmitButtonClick,\n formSubmitSelector: formSubmitSelector,\n getData: getData,\n handleDisabledElement: handleDisabledElement,\n href: href,\n inputChangeSelector: inputChangeSelector,\n isCrossDomain: isCrossDomain,\n linkClickSelector: linkClickSelector,\n linkDisableSelector: linkDisableSelector,\n loadCSPNonce: loadCSPNonce,\n matches: matches,\n preventInsignificantClick: preventInsignificantClick,\n refreshCSRFTokens: refreshCSRFTokens,\n serializeElement: serializeElement,\n setData: setData,\n stopEverything: stopEverything\n};\n\nconst handleConfirm = handleConfirmWithRails(Rails);\n\nRails.handleConfirm = handleConfirm;\n\nconst handleMethod = handleMethodWithRails(Rails);\n\nRails.handleMethod = handleMethod;\n\nconst handleRemote = handleRemoteWithRails(Rails);\n\nRails.handleRemote = handleRemote;\n\nconst start = function() {\n if (window._rails_loaded) {\n throw new Error(\"rails-ujs has already been loaded!\");\n }\n window.addEventListener(\"pageshow\", (function() {\n $(formEnableSelector).forEach((function(el) {\n if (getData(el, \"ujs:disabled\")) {\n enableElement(el);\n }\n }));\n $(linkDisableSelector).forEach((function(el) {\n if (getData(el, \"ujs:disabled\")) {\n enableElement(el);\n }\n }));\n }));\n delegate(document, linkDisableSelector, \"ajax:complete\", enableElement);\n delegate(document, linkDisableSelector, \"ajax:stopped\", enableElement);\n delegate(document, buttonDisableSelector, \"ajax:complete\", enableElement);\n delegate(document, buttonDisableSelector, \"ajax:stopped\", enableElement);\n delegate(document, linkClickSelector, \"click\", preventInsignificantClick);\n delegate(document, linkClickSelector, \"click\", handleDisabledElement);\n delegate(document, linkClickSelector, \"click\", handleConfirm);\n delegate(document, linkClickSelector, \"click\", disableElement);\n delegate(document, linkClickSelector, \"click\", handleRemote);\n delegate(document, linkClickSelector, \"click\", handleMethod);\n delegate(document, buttonClickSelector, \"click\", preventInsignificantClick);\n delegate(document, buttonClickSelector, \"click\", handleDisabledElement);\n delegate(document, buttonClickSelector, \"click\", handleConfirm);\n delegate(document, buttonClickSelector, \"click\", disableElement);\n delegate(document, buttonClickSelector, \"click\", handleRemote);\n delegate(document, inputChangeSelector, \"change\", handleDisabledElement);\n delegate(document, inputChangeSelector, \"change\", handleConfirm);\n delegate(document, inputChangeSelector, \"change\", handleRemote);\n delegate(document, formSubmitSelector, \"submit\", handleDisabledElement);\n delegate(document, formSubmitSelector, \"submit\", handleConfirm);\n delegate(document, formSubmitSelector, \"submit\", handleRemote);\n delegate(document, formSubmitSelector, \"submit\", (e => setTimeout((() => disableElement(e)), 13)));\n delegate(document, formSubmitSelector, \"ajax:send\", disableElement);\n delegate(document, formSubmitSelector, \"ajax:complete\", enableElement);\n delegate(document, formInputClickSelector, \"click\", preventInsignificantClick);\n delegate(document, formInputClickSelector, \"click\", handleDisabledElement);\n delegate(document, formInputClickSelector, \"click\", handleConfirm);\n delegate(document, formInputClickSelector, \"click\", formSubmitButtonClick);\n document.addEventListener(\"DOMContentLoaded\", refreshCSRFTokens);\n document.addEventListener(\"DOMContentLoaded\", loadCSPNonce);\n return window._rails_loaded = true;\n};\n\nRails.start = start;\n\nif (typeof jQuery !== \"undefined\" && jQuery && jQuery.ajax) {\n if (jQuery.rails) {\n throw new Error(\"If you load both jquery_ujs and rails-ujs, use rails-ujs only.\");\n }\n jQuery.rails = Rails;\n jQuery.ajaxPrefilter((function(options, originalOptions, xhr) {\n if (!options.crossDomain) {\n return CSRFProtection(xhr);\n }\n }));\n}\n\nexport { Rails as default };\n"], "mappings": "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AAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,QAAU;AAAA,cACV,QAAU;AAAA,cACV,QAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,QAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,QAAU;AAAA,cACV,QAAU;AAAA,cACV,QAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,QAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,QAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,QAAU;AAAA,cACV,QAAU;AAAA,cACV,QAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,QAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,QAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,QAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,QAAU;AAAA,cACV,QAAU;AAAA,cACV,QAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,QAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,QAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,QAAU;AAAA,cACV,QAAU;AAAA,cACV,QAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,QAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,QAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,QAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,QAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,QAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,QAAU;AAAA,cACV,QAAU;AAAA,cACV,QAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,QAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,QAAU;AAAA,cACV,QAAU;AAAA,cACV,QAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,QAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,QAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,QAAU;AAAA,cACV,QAAU;AAAA,cACV,QAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,QAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,QAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,QAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,QAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,QAAU;AAAA,cACV,QAAU;AAAA,cACV,QAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,QAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU;AAAA,cACV,U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", "names": ["consumer", "error", "consumer", "s", "consumer", "s", "subscription", "a", "e", "t", "ie", "oe", "r", "ae", "g", "s", "se", "n", "i", "ue", "o", "a", "le", "v", "y", "C", "u", "m", "x", "l", "ce", "c", "fe", "pe", "de", "he", "ge", "ve", "f", "p", "ye", "me", "b", "w", "T", "d", "k", "S", "E", "W", "h", "j", "A", "D", "N", "q", "L", "H", "O", "P", "M", "V", "R", "J", "I", "U", "Y", "Q", "re", "F", "$", "B", "_", "z", "X", "ne", "G", "K", "Z", "ee", "te", "xe", "be", "we", "Te", "Ce", "ke", "Se", "Ee", "je", "Ae", "De", "Ne", "qe", "Le", "He", "Oe", "Pe", "Me", "Re", "Ie", "We", "Fe", "$e", "Be", "_e", "ze", "Xe", "Ue", "Ve", "Ge", "Ye", "Qe", "Je", "Ke", "Ze", "et", "tt", "nt", "rt", "it", "ot", "at", "st", "ut", "lt", "ct", "ft", "pt", "dt", "ht", "gt", "vt", "yt", "mt", "xt", "bt", "wt", "Tt", "Ct", "kt", "St", "Et", "jt", "At", "Dt", "Nt", "qt", "Lt", "Ht", "Ot", "Pt", "Mt", "Rt", "It", "Wt", "Ft", "$t", "Bt", "_t", "zt", "Xt", "Ut", "Vt", "Gt", "Yt", "Qt", "Jt", "Kt", "Zt", "en", "tn", "nn", "t", "e", "i", "s", "n", "o", "a", "r", "l", "h", "c", "d", "u", "f", "g", "p", "m", "x", "b", "_", "y", "v", "w", "M", "k", "S", "P", "D", "C", "O", "A", "T", "L", "R", "E", "I", "z", "F", "B", "V", "W", "N", "H", "j", "$", "Y", "U", "X", "q", "K", "G", "Z", "J", "Q", "tt", "et", "it", "st", "nt", "ot", "at", "rt", "lt", "ht", "ct", "dt", "ut", "ft", "gt", "pt", "mt", "xt", "bt", "_t", "yt", "vt", "wt", "Mt", "kt", "St", "Pt", "Dt", "Ct", "Ot", "Lt", "At", "Tt", "Rt", "Et", "It", "zt", "Ft", "Bt", "Vt", "Wt", "Nt", "Ht", "jt", "$t", "Yt", "Ut", "Xt", "qt", "Kt", "Gt", "Zt", "Jt", "Qt", "te", "ee", "ie", "se", "ne", "oe", "ae", "re", "le", "he", "ce", "de", "ue", "fe", "ge", "pe", "me", "xe", "be", "_e", "ye", "ve", "we", "Me", "ke", "Se", "Pe", "De", "Ce", "Oe", "Ae", "Te", "Le", "Re", "Ee", "Ie", "ze", "Fe", "Be", "Ve", "We", "Ne", "He", "je", "$e", "Ye", "Ue", "Xe", "qe", "Ke", "Ge", "Ze", "Je", "Qe", "ti", "ei", "ii", "si", "ni", "oi", "mi", "ci", "li", "hi", "gi", "xi", "ai", "ri", "di", "ui", "fi", "pi", "bi", "_i", "yi", "vi", "wi", "Mi", "ki", "Si", "Pi", "Di", "Ci", "Oi", "Ai", "Ti", "Li", "Ri", "Ei", "Ii", "zi", "Fi", "Bi", "Vi", "Wi", "Ni", "Hi", "ji", "$i", "Yi", "Ui", "Xi", "qi", "Ki", "Gi", "Zi", "Ji", "Qi", "tn", "en", "sn", "nn", "on", "an", "rn", "ln", "hn", "cn", "dn", "un", "fn", "gn", "pn", "mn", "xn", "bn", "yn", "vn", "wn", "kn", "Sn", "Pn", "Dn", "Cn", "An", "Tn", "Ln", "Rn", "En", "In", "Fn", "Bn", "Nn", "w", "window", "indexOf", "isFunction", "isWindow", "document", "i", "jQuery", "j", "arr", "matches", "_i", "a", "b", "push", "documentElement", "rquickExpr", "e", "m", "tokenize", "cache", "fn", "id", "node", "start", "dir", "find", "n", "elem", "self", "l", "_", "fire", "add", "v", "value", "deferred", "error", "getData", "data", "nodeName", "on", "t", "name", "p", "index", "length", "location", "nonce", "s", "val", "ct", "completed", "method", "type", "jQuery", "S2", "require", "define", "i", "j", "e", "$", "m", "decoratedMethod", "d", "k", "id", "self", "s", "matches", "c", "_", "val", "item", "t", "params", "$e", "l", "a", "n", "select2", "id", "callback", "$", "fn", "order", "start", "name", "style", "x", "y", "window", "min", "max", "v", "toPaddingObject", "popperOffsets", "offset", "popper", "clippingParents", "reference", "placement", "a", "b", "placements", "i", "_loop", "_i", "checks", "merged", "defaultModifiers", "defaultOptions", "createPopper", "options", "m", "state", "effect", "noopFn", "isVisible", "element", "t", "e", "i", "n", "r", "o", "s", "a", "l", "c", "h", "$", "u", "d", "g", "m", "p", "f", "b", "v", "A", "x", "k", "a", "b", "c", "d", "s", "i", "n", "hi", "j", "hex", "SparkMD5", "start", "dispatchEvent", "csrfToken", "delegate", "error", "HTMLElement", "FrameLoadingStyle", "location", "cspNonce", "i", "_", "FetchMethod", "delegate", "error", "FormSubmissionState", "FormEnctype", "cookie", "id", "x", "y", "TimingMetric", "VisitState", "SystemStatusCode", "session", "visit", "PageStage", "e", "start", "element", "document", "c", "createConsumer", "m", "x", "application", "error", "matches", "_", "e", "delegate", "fetch", "delegate", "matches", "match", "oldValue", "_", "error", "constructor", "extend", "a", "b", "application", "element", "c", "n", "k", "v", "e", "now", "id", "m", "$", "error", "e", "CustomEvent", "toArray", "confirm", "href", "start", "import_jquery", "jquery", "select2", "bootstrap"] }