{"version":3,"file":"/app.js","mappings":"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","sources":["webpack:///./node_modules/@fancyapps/fancybox/dist/jquery.fancybox.js","webpack:///./src/js/articles/index.js","webpack:///./node_modules/ssr-window/ssr-window.esm.js","webpack:///./node_modules/dom7/dom7.esm.js","webpack:///./node_modules/swiper/shared/dom.js","webpack:///./node_modules/swiper/shared/utils.js","webpack:///./node_modules/swiper/shared/get-support.js","webpack:///./node_modules/swiper/shared/get-device.js","webpack:///./node_modules/swiper/shared/get-browser.js","webpack:///./node_modules/swiper/core/events-emitter.js","webpack:///./node_modules/swiper/core/update/index.js","webpack:///./node_modules/swiper/core/update/updateSize.js","webpack:///./node_modules/swiper/core/update/updateSlides.js","webpack:///./node_modules/swiper/core/update/updateAutoHeight.js","webpack:///./node_modules/swiper/core/update/updateSlidesOffset.js","webpack:///./node_modules/swiper/core/update/updateSlidesProgress.js","webpack:///./node_modules/swiper/core/update/updateProgress.js","webpack:///./node_modules/swiper/core/update/updateSlidesClasses.js","webpack:///./node_modules/swiper/core/update/updateActiveIndex.js","webpack:///./node_modules/swiper/core/update/updateClickedSlide.js","webpack:///./node_modules/swiper/core/translate/index.js","webpack:///./node_modules/swiper/core/translate/getTranslate.js","webpack:///./node_modules/swiper/core/translate/setTranslate.js","webpack:///./node_modules/swiper/core/translate/minTranslate.js","webpack:///./node_modules/swiper/core/translate/maxTranslate.js","webpack:///./node_modules/swiper/core/translate/translateTo.js","webpack:///./node_modules/swiper/core/transition/transitionEmit.js","webpack:///./node_modules/swiper/core/slide/index.js","webpack:///./node_modules/swiper/core/slide/slideTo.js","webpack:///./node_modules/swiper/core/slide/slideToLoop.js","webpack:///./node_modules/swiper/core/slide/slideNext.js","webpack:///./node_modules/swiper/core/slide/slidePrev.js","webpack:///./node_modules/swiper/core/slide/slideReset.js","webpack:///./node_modules/swiper/core/slide/slideToClosest.js","webpack:///./node_modules/swiper/core/slide/slideToClickedSlide.js","webpack:///./node_modules/swiper/core/loop/index.js","webpack:///./node_modules/swiper/core/loop/loopCreate.js","webpack:///./node_modules/swiper/core/loop/loopFix.js","webpack:///./node_modules/swiper/core/loop/loopDestroy.js","webpack:///./node_modules/swiper/core/events/onTouchStart.js","webpack:///./node_modules/swiper/core/events/onTouchMove.js","webpack:///./node_modules/swiper/core/events/onTouchEnd.js","webpack:///./node_modules/swiper/core/events/onResize.js","webpack:///./node_modules/swiper/core/events/onClick.js","webpack:///./node_modules/swiper/core/events/onScroll.js","webpack:///./node_modules/swiper/core/events/index.js","webpack:///./node_modules/swiper/core/breakpoints/setBreakpoint.js","webpack:///./node_modules/swiper/core/breakpoints/index.js","webpack:///./node_modules/swiper/core/breakpoints/getBreakpoint.js","webpack:///./node_modules/swiper/core/classes/index.js","webpack:///./node_modules/swiper/core/classes/addClasses.js","webpack:///./node_modules/swiper/core/classes/removeClasses.js","webpack:///./node_modules/swiper/core/check-overflow/index.js","webpack:///./node_modules/swiper/core/defaults.js","webpack:///./node_modules/swiper/core/moduleExtendParams.js","webpack:///./node_modules/swiper/core/core.js","webpack:///./node_modules/swiper/core/transition/index.js","webpack:///./node_modules/swiper/core/transition/setTransition.js","webpack:///./node_modules/swiper/core/transition/transitionStart.js","webpack:///./node_modules/swiper/core/transition/transitionEnd.js","webpack:///./node_modules/swiper/core/grab-cursor/index.js","webpack:///./node_modules/swiper/core/grab-cursor/setGrabCursor.js","webpack:///./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","webpack:///./node_modules/swiper/core/images/index.js","webpack:///./node_modules/swiper/core/images/loadImage.js","webpack:///./node_modules/swiper/core/images/preloadImages.js","webpack:///./node_modules/swiper/core/modules/resize/resize.js","webpack:///./node_modules/swiper/core/modules/observer/observer.js","webpack:///./node_modules/swiper/shared/create-element-if-not-defined.js","webpack:///./node_modules/swiper/modules/navigation/navigation.js","webpack:///./node_modules/swiper/shared/classes-to-selector.js","webpack:///./node_modules/swiper/modules/pagination/pagination.js","webpack:///./src/js/home-hero-animation/index.js","webpack:///./src/js/image-gallery/index.js","webpack:///./src/js/select/index.js","webpack:///./src/js/app.js","webpack:///./src/js/header/index.js","webpack:///./src/js/labs-map/index.js","webpack:///./src/js/informational-icons/index.js","webpack:///./node_modules/headroom.js/dist/headroom.js","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///./node_modules/lottie-web/build/player/lottie.js","webpack:///./node_modules/macy/dist/macy.js","webpack:///./node_modules/rellax/rellax.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/chunk loaded","webpack:///webpack/runtime/amd options","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/global","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/jsonp chunk loading","webpack:///webpack/startup"],"sourcesContent":["// ==================================================\n// fancyBox v3.5.7\n//\n// Licensed GPLv3 for open source use\n// or fancyBox Commercial License for commercial use\n//\n// http://fancyapps.com/fancybox/\n// Copyright 2019 fancyApps\n//\n// ==================================================\n(function (window, document, $, undefined) {\r\n \"use strict\";\r\n\r\n window.console = window.console || {\r\n info: function (stuff) {}\r\n };\r\n\r\n // If there's no jQuery, fancyBox can't work\r\n // =========================================\r\n\r\n if (!$) {\r\n return;\r\n }\r\n\r\n // Check if fancyBox is already initialized\r\n // ========================================\r\n\r\n if ($.fn.fancybox) {\r\n console.info(\"fancyBox already initialized\");\r\n\r\n return;\r\n }\r\n\r\n // Private default settings\r\n // ========================\r\n\r\n var defaults = {\r\n // Close existing modals\r\n // Set this to false if you do not need to stack multiple instances\r\n closeExisting: false,\r\n\r\n // Enable infinite gallery navigation\r\n loop: false,\r\n\r\n // Horizontal space between slides\r\n gutter: 50,\r\n\r\n // Enable keyboard navigation\r\n keyboard: true,\r\n\r\n // Should allow caption to overlap the content\r\n preventCaptionOverlap: true,\r\n\r\n // Should display navigation arrows at the screen edges\r\n arrows: true,\r\n\r\n // Should display counter at the top left corner\r\n infobar: true,\r\n\r\n // Should display close button (using `btnTpl.smallBtn` template) over the content\r\n // Can be true, false, \"auto\"\r\n // If \"auto\" - will be automatically enabled for \"html\", \"inline\" or \"ajax\" items\r\n smallBtn: \"auto\",\r\n\r\n // Should display toolbar (buttons at the top)\r\n // Can be true, false, \"auto\"\r\n // If \"auto\" - will be automatically hidden if \"smallBtn\" is enabled\r\n toolbar: \"auto\",\r\n\r\n // What buttons should appear in the top right corner.\r\n // Buttons will be created using templates from `btnTpl` option\r\n // and they will be placed into toolbar (class=\"fancybox-toolbar\"` element)\r\n buttons: [\r\n \"zoom\",\r\n //\"share\",\r\n \"slideShow\",\r\n //\"fullScreen\",\r\n //\"download\",\r\n \"thumbs\",\r\n \"close\"\r\n ],\r\n\r\n // Detect \"idle\" time in seconds\r\n idleTime: 3,\r\n\r\n // Disable right-click and use simple image protection for images\r\n protect: false,\r\n\r\n // Shortcut to make content \"modal\" - disable keyboard navigtion, hide buttons, etc\r\n modal: false,\r\n\r\n image: {\r\n // Wait for images to load before displaying\r\n // true - wait for image to load and then display;\r\n // false - display thumbnail and load the full-sized image over top,\r\n // requires predefined image dimensions (`data-width` and `data-height` attributes)\r\n preload: false\r\n },\r\n\r\n ajax: {\r\n // Object containing settings for ajax request\r\n settings: {\r\n // This helps to indicate that request comes from the modal\r\n // Feel free to change naming\r\n data: {\r\n fancybox: true\r\n }\r\n }\r\n },\r\n\r\n iframe: {\r\n // Iframe template\r\n tpl: '',\r\n\r\n // Preload iframe before displaying it\r\n // This allows to calculate iframe content width and height\r\n // (note: Due to \"Same Origin Policy\", you can't get cross domain data).\r\n preload: true,\r\n\r\n // Custom CSS styling for iframe wrapping element\r\n // You can use this to set custom iframe dimensions\r\n css: {},\r\n\r\n // Iframe tag attributes\r\n attr: {\r\n scrolling: \"auto\"\r\n }\r\n },\r\n\r\n // For HTML5 video only\r\n video: {\r\n tpl: '\",\r\n format: \"\", // custom video format\r\n autoStart: true\r\n },\r\n\r\n // Default content type if cannot be detected automatically\r\n defaultType: \"image\",\r\n\r\n // Open/close animation type\r\n // Possible values:\r\n // false - disable\r\n // \"zoom\" - zoom images from/to thumbnail\r\n // \"fade\"\r\n // \"zoom-in-out\"\r\n //\r\n animationEffect: \"zoom\",\r\n\r\n // Duration in ms for open/close animation\r\n animationDuration: 366,\r\n\r\n // Should image change opacity while zooming\r\n // If opacity is \"auto\", then opacity will be changed if image and thumbnail have different aspect ratios\r\n zoomOpacity: \"auto\",\r\n\r\n // Transition effect between slides\r\n //\r\n // Possible values:\r\n // false - disable\r\n // \"fade'\r\n // \"slide'\r\n // \"circular'\r\n // \"tube'\r\n // \"zoom-in-out'\r\n // \"rotate'\r\n //\r\n transitionEffect: \"fade\",\r\n\r\n // Duration in ms for transition animation\r\n transitionDuration: 366,\r\n\r\n // Custom CSS class for slide element\r\n slideClass: \"\",\r\n\r\n // Custom CSS class for layout\r\n baseClass: \"\",\r\n\r\n // Base template for layout\r\n baseTpl: '
' +\r\n '
' +\r\n '
' +\r\n '
 / 
' +\r\n '
{{buttons}}
' +\r\n '
{{arrows}}
' +\r\n '
' +\r\n '
' +\r\n \"
\" +\r\n \"
\",\r\n\r\n // Loading indicator template\r\n spinnerTpl: '
',\r\n\r\n // Error message template\r\n errorTpl: '

{{ERROR}}

',\r\n\r\n btnTpl: {\r\n download: '' +\r\n '' +\r\n \"\",\r\n\r\n zoom: '\",\r\n\r\n close: '\",\r\n\r\n // Arrows\r\n arrowLeft: '\",\r\n\r\n arrowRight: '\",\r\n\r\n // This small close button will be appended to your html/inline/ajax content by default,\r\n // if \"smallBtn\" option is not set to false\r\n smallBtn: '\"\r\n },\r\n\r\n // Container is injected into this element\r\n parentEl: \"body\",\r\n\r\n // Hide browser vertical scrollbars; use at your own risk\r\n hideScrollbar: true,\r\n\r\n // Focus handling\r\n // ==============\r\n\r\n // Try to focus on the first focusable element after opening\r\n autoFocus: true,\r\n\r\n // Put focus back to active element after closing\r\n backFocus: true,\r\n\r\n // Do not let user to focus on element outside modal content\r\n trapFocus: true,\r\n\r\n // Module specific options\r\n // =======================\r\n\r\n fullScreen: {\r\n autoStart: false\r\n },\r\n\r\n // Set `touch: false` to disable panning/swiping\r\n touch: {\r\n vertical: true, // Allow to drag content vertically\r\n momentum: true // Continue movement after releasing mouse/touch when panning\r\n },\r\n\r\n // Hash value when initializing manually,\r\n // set `false` to disable hash change\r\n hash: null,\r\n\r\n // Customize or add new media types\r\n // Example:\r\n /*\r\n media : {\r\n youtube : {\r\n params : {\r\n autoplay : 0\r\n }\r\n }\r\n }\r\n */\r\n media: {},\r\n\r\n slideShow: {\r\n autoStart: false,\r\n speed: 3000\r\n },\r\n\r\n thumbs: {\r\n autoStart: false, // Display thumbnails on opening\r\n hideOnClose: true, // Hide thumbnail grid when closing animation starts\r\n parentEl: \".fancybox-container\", // Container is injected into this element\r\n axis: \"y\" // Vertical (y) or horizontal (x) scrolling\r\n },\r\n\r\n // Use mousewheel to navigate gallery\r\n // If 'auto' - enabled for images only\r\n wheel: \"auto\",\r\n\r\n // Callbacks\r\n //==========\r\n\r\n // See Documentation/API/Events for more information\r\n // Example:\r\n /*\r\n afterShow: function( instance, current ) {\r\n console.info( 'Clicked element:' );\r\n console.info( current.opts.$orig );\r\n }\r\n */\r\n\r\n onInit: $.noop, // When instance has been initialized\r\n\r\n beforeLoad: $.noop, // Before the content of a slide is being loaded\r\n afterLoad: $.noop, // When the content of a slide is done loading\r\n\r\n beforeShow: $.noop, // Before open animation starts\r\n afterShow: $.noop, // When content is done loading and animating\r\n\r\n beforeClose: $.noop, // Before the instance attempts to close. Return false to cancel the close.\r\n afterClose: $.noop, // After instance has been closed\r\n\r\n onActivate: $.noop, // When instance is brought to front\r\n onDeactivate: $.noop, // When other instance has been activated\r\n\r\n // Interaction\r\n // ===========\r\n\r\n // Use options below to customize taken action when user clicks or double clicks on the fancyBox area,\r\n // each option can be string or method that returns value.\r\n //\r\n // Possible values:\r\n // \"close\" - close instance\r\n // \"next\" - move to next gallery item\r\n // \"nextOrClose\" - move to next gallery item or close if gallery has only one item\r\n // \"toggleControls\" - show/hide controls\r\n // \"zoom\" - zoom image (if loaded)\r\n // false - do nothing\r\n\r\n // Clicked on the content\r\n clickContent: function (current, event) {\r\n return current.type === \"image\" ? \"zoom\" : false;\r\n },\r\n\r\n // Clicked on the slide\r\n clickSlide: \"close\",\r\n\r\n // Clicked on the background (backdrop) element;\r\n // if you have not changed the layout, then most likely you need to use `clickSlide` option\r\n clickOutside: \"close\",\r\n\r\n // Same as previous two, but for double click\r\n dblclickContent: false,\r\n dblclickSlide: false,\r\n dblclickOutside: false,\r\n\r\n // Custom options when mobile device is detected\r\n // =============================================\r\n\r\n mobile: {\r\n preventCaptionOverlap: false,\r\n idleTime: false,\r\n clickContent: function (current, event) {\r\n return current.type === \"image\" ? \"toggleControls\" : false;\r\n },\r\n clickSlide: function (current, event) {\r\n return current.type === \"image\" ? \"toggleControls\" : \"close\";\r\n },\r\n dblclickContent: function (current, event) {\r\n return current.type === \"image\" ? \"zoom\" : false;\r\n },\r\n dblclickSlide: function (current, event) {\r\n return current.type === \"image\" ? \"zoom\" : false;\r\n }\r\n },\r\n\r\n // Internationalization\r\n // ====================\r\n\r\n lang: \"en\",\r\n i18n: {\r\n en: {\r\n CLOSE: \"Close\",\r\n NEXT: \"Next\",\r\n PREV: \"Previous\",\r\n ERROR: \"The requested content cannot be loaded.
Please try again later.\",\r\n PLAY_START: \"Start slideshow\",\r\n PLAY_STOP: \"Pause slideshow\",\r\n FULL_SCREEN: \"Full screen\",\r\n THUMBS: \"Thumbnails\",\r\n DOWNLOAD: \"Download\",\r\n SHARE: \"Share\",\r\n ZOOM: \"Zoom\"\r\n },\r\n de: {\r\n CLOSE: \"Schließen\",\r\n NEXT: \"Weiter\",\r\n PREV: \"Zurück\",\r\n ERROR: \"Die angeforderten Daten konnten nicht geladen werden.
Bitte versuchen Sie es später nochmal.\",\r\n PLAY_START: \"Diaschau starten\",\r\n PLAY_STOP: \"Diaschau beenden\",\r\n FULL_SCREEN: \"Vollbild\",\r\n THUMBS: \"Vorschaubilder\",\r\n DOWNLOAD: \"Herunterladen\",\r\n SHARE: \"Teilen\",\r\n ZOOM: \"Vergrößern\"\r\n }\r\n }\r\n };\r\n\r\n // Few useful variables and methods\r\n // ================================\r\n\r\n var $W = $(window);\r\n var $D = $(document);\r\n\r\n var called = 0;\r\n\r\n // Check if an object is a jQuery object and not a native JavaScript object\r\n // ========================================================================\r\n var isQuery = function (obj) {\r\n return obj && obj.hasOwnProperty && obj instanceof $;\r\n };\r\n\r\n // Handle multiple browsers for \"requestAnimationFrame\" and \"cancelAnimationFrame\"\r\n // ===============================================================================\r\n var requestAFrame = (function () {\r\n return (\r\n window.requestAnimationFrame ||\r\n window.webkitRequestAnimationFrame ||\r\n window.mozRequestAnimationFrame ||\r\n window.oRequestAnimationFrame ||\r\n // if all else fails, use setTimeout\r\n function (callback) {\r\n return window.setTimeout(callback, 1000 / 60);\r\n }\r\n );\r\n })();\r\n\r\n var cancelAFrame = (function () {\r\n return (\r\n window.cancelAnimationFrame ||\r\n window.webkitCancelAnimationFrame ||\r\n window.mozCancelAnimationFrame ||\r\n window.oCancelAnimationFrame ||\r\n function (id) {\r\n window.clearTimeout(id);\r\n }\r\n );\r\n })();\r\n\r\n // Detect the supported transition-end event property name\r\n // =======================================================\r\n var transitionEnd = (function () {\r\n var el = document.createElement(\"fakeelement\"),\r\n t;\r\n\r\n var transitions = {\r\n transition: \"transitionend\",\r\n OTransition: \"oTransitionEnd\",\r\n MozTransition: \"transitionend\",\r\n WebkitTransition: \"webkitTransitionEnd\"\r\n };\r\n\r\n for (t in transitions) {\r\n if (el.style[t] !== undefined) {\r\n return transitions[t];\r\n }\r\n }\r\n\r\n return \"transitionend\";\r\n })();\r\n\r\n // Force redraw on an element.\r\n // This helps in cases where the browser doesn't redraw an updated element properly\r\n // ================================================================================\r\n var forceRedraw = function ($el) {\r\n return $el && $el.length && $el[0].offsetHeight;\r\n };\r\n\r\n // Exclude array (`buttons`) options from deep merging\r\n // ===================================================\r\n var mergeOpts = function (opts1, opts2) {\r\n var rez = $.extend(true, {}, opts1, opts2);\r\n\r\n $.each(opts2, function (key, value) {\r\n if ($.isArray(value)) {\r\n rez[key] = value;\r\n }\r\n });\r\n\r\n return rez;\r\n };\r\n\r\n // How much of an element is visible in viewport\r\n // =============================================\r\n\r\n var inViewport = function (elem) {\r\n var elemCenter, rez;\r\n\r\n if (!elem || elem.ownerDocument !== document) {\r\n return false;\r\n }\r\n\r\n $(\".fancybox-container\").css(\"pointer-events\", \"none\");\r\n\r\n elemCenter = {\r\n x: elem.getBoundingClientRect().left + elem.offsetWidth / 2,\r\n y: elem.getBoundingClientRect().top + elem.offsetHeight / 2\r\n };\r\n\r\n rez = document.elementFromPoint(elemCenter.x, elemCenter.y) === elem;\r\n\r\n $(\".fancybox-container\").css(\"pointer-events\", \"\");\r\n\r\n return rez;\r\n };\r\n\r\n // Class definition\r\n // ================\r\n\r\n var FancyBox = function (content, opts, index) {\r\n var self = this;\r\n\r\n self.opts = mergeOpts({\r\n index: index\r\n }, $.fancybox.defaults);\r\n\r\n if ($.isPlainObject(opts)) {\r\n self.opts = mergeOpts(self.opts, opts);\r\n }\r\n\r\n if ($.fancybox.isMobile) {\r\n self.opts = mergeOpts(self.opts, self.opts.mobile);\r\n }\r\n\r\n self.id = self.opts.id || ++called;\r\n\r\n self.currIndex = parseInt(self.opts.index, 10) || 0;\r\n self.prevIndex = null;\r\n\r\n self.prevPos = null;\r\n self.currPos = 0;\r\n\r\n self.firstRun = true;\r\n\r\n // All group items\r\n self.group = [];\r\n\r\n // Existing slides (for current, next and previous gallery items)\r\n self.slides = {};\r\n\r\n // Create group elements\r\n self.addContent(content);\r\n\r\n if (!self.group.length) {\r\n return;\r\n }\r\n\r\n self.init();\r\n };\r\n\r\n $.extend(FancyBox.prototype, {\r\n // Create DOM structure\r\n // ====================\r\n\r\n init: function () {\r\n var self = this,\r\n firstItem = self.group[self.currIndex],\r\n firstItemOpts = firstItem.opts,\r\n $container,\r\n buttonStr;\r\n\r\n if (firstItemOpts.closeExisting) {\r\n $.fancybox.close(true);\r\n }\r\n\r\n // Hide scrollbars\r\n // ===============\r\n\r\n $(\"body\").addClass(\"fancybox-active\");\r\n\r\n if (\r\n !$.fancybox.getInstance() &&\r\n firstItemOpts.hideScrollbar !== false &&\r\n !$.fancybox.isMobile &&\r\n document.body.scrollHeight > window.innerHeight\r\n ) {\r\n $(\"head\").append(\r\n '\"\r\n );\r\n\r\n $(\"body\").addClass(\"compensate-for-scrollbar\");\r\n }\r\n\r\n // Build html markup and set references\r\n // ====================================\r\n\r\n // Build html code for buttons and insert into main template\r\n buttonStr = \"\";\r\n\r\n $.each(firstItemOpts.buttons, function (index, value) {\r\n buttonStr += firstItemOpts.btnTpl[value] || \"\";\r\n });\r\n\r\n // Create markup from base template, it will be initially hidden to\r\n // avoid unnecessary work like painting while initializing is not complete\r\n $container = $(\r\n self.translate(\r\n self,\r\n firstItemOpts.baseTpl\r\n .replace(\"{{buttons}}\", buttonStr)\r\n .replace(\"{{arrows}}\", firstItemOpts.btnTpl.arrowLeft + firstItemOpts.btnTpl.arrowRight)\r\n )\r\n )\r\n .attr(\"id\", \"fancybox-container-\" + self.id)\r\n .addClass(firstItemOpts.baseClass)\r\n .data(\"FancyBox\", self)\r\n .appendTo(firstItemOpts.parentEl);\r\n\r\n // Create object holding references to jQuery wrapped nodes\r\n self.$refs = {\r\n container: $container\r\n };\r\n\r\n [\"bg\", \"inner\", \"infobar\", \"toolbar\", \"stage\", \"caption\", \"navigation\"].forEach(function (item) {\r\n self.$refs[item] = $container.find(\".fancybox-\" + item);\r\n });\r\n\r\n self.trigger(\"onInit\");\r\n\r\n // Enable events, deactive previous instances\r\n self.activate();\r\n\r\n // Build slides, load and reveal content\r\n self.jumpTo(self.currIndex);\r\n },\r\n\r\n // Simple i18n support - replaces object keys found in template\r\n // with corresponding values\r\n // ============================================================\r\n\r\n translate: function (obj, str) {\r\n var arr = obj.opts.i18n[obj.opts.lang] || obj.opts.i18n.en;\r\n\r\n return str.replace(/\\{\\{(\\w+)\\}\\}/g, function (match, n) {\r\n return arr[n] === undefined ? match : arr[n];\r\n });\r\n },\r\n\r\n // Populate current group with fresh content\r\n // Check if each object has valid type and content\r\n // ===============================================\r\n\r\n addContent: function (content) {\r\n var self = this,\r\n items = $.makeArray(content),\r\n thumbs;\r\n\r\n $.each(items, function (i, item) {\r\n var obj = {},\r\n opts = {},\r\n $item,\r\n type,\r\n found,\r\n src,\r\n srcParts;\r\n\r\n // Step 1 - Make sure we have an object\r\n // ====================================\r\n\r\n if ($.isPlainObject(item)) {\r\n // We probably have manual usage here, something like\r\n // $.fancybox.open( [ { src : \"image.jpg\", type : \"image\" } ] )\r\n\r\n obj = item;\r\n opts = item.opts || item;\r\n } else if ($.type(item) === \"object\" && $(item).length) {\r\n // Here we probably have jQuery collection returned by some selector\r\n $item = $(item);\r\n\r\n // Support attributes like `data-options='{\"touch\" : false}'` and `data-touch='false'`\r\n opts = $item.data() || {};\r\n opts = $.extend(true, {}, opts, opts.options);\r\n\r\n // Here we store clicked element\r\n opts.$orig = $item;\r\n\r\n obj.src = self.opts.src || opts.src || $item.attr(\"href\");\r\n\r\n // Assume that simple syntax is used, for example:\r\n // `$.fancybox.open( $(\"#test\"), {} );`\r\n if (!obj.type && !obj.src) {\r\n obj.type = \"inline\";\r\n obj.src = item;\r\n }\r\n } else {\r\n // Assume we have a simple html code, for example:\r\n // $.fancybox.open( '

Hi!

' );\r\n obj = {\r\n type: \"html\",\r\n src: item + \"\"\r\n };\r\n }\r\n\r\n // Each gallery object has full collection of options\r\n obj.opts = $.extend(true, {}, self.opts, opts);\r\n\r\n // Do not merge buttons array\r\n if ($.isArray(opts.buttons)) {\r\n obj.opts.buttons = opts.buttons;\r\n }\r\n\r\n if ($.fancybox.isMobile && obj.opts.mobile) {\r\n obj.opts = mergeOpts(obj.opts, obj.opts.mobile);\r\n }\r\n\r\n // Step 2 - Make sure we have content type, if not - try to guess\r\n // ==============================================================\r\n\r\n type = obj.type || obj.opts.type;\r\n src = obj.src || \"\";\r\n\r\n if (!type && src) {\r\n if ((found = src.match(/\\.(mp4|mov|ogv|webm)((\\?|#).*)?$/i))) {\r\n type = \"video\";\r\n\r\n if (!obj.opts.video.format) {\r\n obj.opts.video.format = \"video/\" + (found[1] === \"ogv\" ? \"ogg\" : found[1]);\r\n }\r\n } else if (src.match(/(^data:image\\/[a-z0-9+\\/=]*,)|(\\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\\?|#).*)?$)/i)) {\r\n type = \"image\";\r\n } else if (src.match(/\\.(pdf)((\\?|#).*)?$/i)) {\r\n type = \"iframe\";\r\n obj = $.extend(true, obj, {\r\n contentType: \"pdf\",\r\n opts: {\r\n iframe: {\r\n preload: false\r\n }\r\n }\r\n });\r\n } else if (src.charAt(0) === \"#\") {\r\n type = \"inline\";\r\n }\r\n }\r\n\r\n if (type) {\r\n obj.type = type;\r\n } else {\r\n self.trigger(\"objectNeedsType\", obj);\r\n }\r\n\r\n if (!obj.contentType) {\r\n obj.contentType = $.inArray(obj.type, [\"html\", \"inline\", \"ajax\"]) > -1 ? \"html\" : obj.type;\r\n }\r\n\r\n // Step 3 - Some adjustments\r\n // =========================\r\n\r\n obj.index = self.group.length;\r\n\r\n if (obj.opts.smallBtn == \"auto\") {\r\n obj.opts.smallBtn = $.inArray(obj.type, [\"html\", \"inline\", \"ajax\"]) > -1;\r\n }\r\n\r\n if (obj.opts.toolbar === \"auto\") {\r\n obj.opts.toolbar = !obj.opts.smallBtn;\r\n }\r\n\r\n // Find thumbnail image, check if exists and if is in the viewport\r\n obj.$thumb = obj.opts.$thumb || null;\r\n\r\n if (obj.opts.$trigger && obj.index === self.opts.index) {\r\n obj.$thumb = obj.opts.$trigger.find(\"img:first\");\r\n\r\n if (obj.$thumb.length) {\r\n obj.opts.$orig = obj.opts.$trigger;\r\n }\r\n }\r\n\r\n if (!(obj.$thumb && obj.$thumb.length) && obj.opts.$orig) {\r\n obj.$thumb = obj.opts.$orig.find(\"img:first\");\r\n }\r\n\r\n if (obj.$thumb && !obj.$thumb.length) {\r\n obj.$thumb = null;\r\n }\r\n\r\n obj.thumb = obj.opts.thumb || (obj.$thumb ? obj.$thumb[0].src : null);\r\n\r\n // \"caption\" is a \"special\" option, it can be used to customize caption per gallery item\r\n if ($.type(obj.opts.caption) === \"function\") {\r\n obj.opts.caption = obj.opts.caption.apply(item, [self, obj]);\r\n }\r\n\r\n if ($.type(self.opts.caption) === \"function\") {\r\n obj.opts.caption = self.opts.caption.apply(item, [self, obj]);\r\n }\r\n\r\n // Make sure we have caption as a string or jQuery object\r\n if (!(obj.opts.caption instanceof $)) {\r\n obj.opts.caption = obj.opts.caption === undefined ? \"\" : obj.opts.caption + \"\";\r\n }\r\n\r\n // Check if url contains \"filter\" used to filter the content\r\n // Example: \"ajax.html #something\"\r\n if (obj.type === \"ajax\") {\r\n srcParts = src.split(/\\s+/, 2);\r\n\r\n if (srcParts.length > 1) {\r\n obj.src = srcParts.shift();\r\n\r\n obj.opts.filter = srcParts.shift();\r\n }\r\n }\r\n\r\n // Hide all buttons and disable interactivity for modal items\r\n if (obj.opts.modal) {\r\n obj.opts = $.extend(true, obj.opts, {\r\n trapFocus: true,\r\n // Remove buttons\r\n infobar: 0,\r\n toolbar: 0,\r\n\r\n smallBtn: 0,\r\n\r\n // Disable keyboard navigation\r\n keyboard: 0,\r\n\r\n // Disable some modules\r\n slideShow: 0,\r\n fullScreen: 0,\r\n thumbs: 0,\r\n touch: 0,\r\n\r\n // Disable click event handlers\r\n clickContent: false,\r\n clickSlide: false,\r\n clickOutside: false,\r\n dblclickContent: false,\r\n dblclickSlide: false,\r\n dblclickOutside: false\r\n });\r\n }\r\n\r\n // Step 4 - Add processed object to group\r\n // ======================================\r\n\r\n self.group.push(obj);\r\n });\r\n\r\n // Update controls if gallery is already opened\r\n if (Object.keys(self.slides).length) {\r\n self.updateControls();\r\n\r\n // Update thumbnails, if needed\r\n thumbs = self.Thumbs;\r\n\r\n if (thumbs && thumbs.isActive) {\r\n thumbs.create();\r\n\r\n thumbs.focus();\r\n }\r\n }\r\n },\r\n\r\n // Attach an event handler functions for:\r\n // - navigation buttons\r\n // - browser scrolling, resizing;\r\n // - focusing\r\n // - keyboard\r\n // - detecting inactivity\r\n // ======================================\r\n\r\n addEvents: function () {\r\n var self = this;\r\n\r\n self.removeEvents();\r\n\r\n // Make navigation elements clickable\r\n // ==================================\r\n\r\n self.$refs.container\r\n .on(\"click.fb-close\", \"[data-fancybox-close]\", function (e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n self.close(e);\r\n })\r\n .on(\"touchstart.fb-prev click.fb-prev\", \"[data-fancybox-prev]\", function (e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n self.previous();\r\n })\r\n .on(\"touchstart.fb-next click.fb-next\", \"[data-fancybox-next]\", function (e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n self.next();\r\n })\r\n .on(\"click.fb\", \"[data-fancybox-zoom]\", function (e) {\r\n // Click handler for zoom button\r\n self[self.isScaledDown() ? \"scaleToActual\" : \"scaleToFit\"]();\r\n });\r\n\r\n // Handle page scrolling and browser resizing\r\n // ==========================================\r\n\r\n $W.on(\"orientationchange.fb resize.fb\", function (e) {\r\n if (e && e.originalEvent && e.originalEvent.type === \"resize\") {\r\n if (self.requestId) {\r\n cancelAFrame(self.requestId);\r\n }\r\n\r\n self.requestId = requestAFrame(function () {\r\n self.update(e);\r\n });\r\n } else {\r\n if (self.current && self.current.type === \"iframe\") {\r\n self.$refs.stage.hide();\r\n }\r\n\r\n setTimeout(\r\n function () {\r\n self.$refs.stage.show();\r\n\r\n self.update(e);\r\n },\r\n $.fancybox.isMobile ? 600 : 250\r\n );\r\n }\r\n });\r\n\r\n $D.on(\"keydown.fb\", function (e) {\r\n var instance = $.fancybox ? $.fancybox.getInstance() : null,\r\n current = instance.current,\r\n keycode = e.keyCode || e.which;\r\n\r\n // Trap keyboard focus inside of the modal\r\n // =======================================\r\n\r\n if (keycode == 9) {\r\n if (current.opts.trapFocus) {\r\n self.focus(e);\r\n }\r\n\r\n return;\r\n }\r\n\r\n // Enable keyboard navigation\r\n // ==========================\r\n\r\n if (!current.opts.keyboard || e.ctrlKey || e.altKey || e.shiftKey || $(e.target).is(\"input,textarea,video,audio,select\")) {\r\n return;\r\n }\r\n\r\n // Backspace and Esc keys\r\n if (keycode === 8 || keycode === 27) {\r\n e.preventDefault();\r\n\r\n self.close(e);\r\n\r\n return;\r\n }\r\n\r\n // Left arrow and Up arrow\r\n if (keycode === 37 || keycode === 38) {\r\n e.preventDefault();\r\n\r\n self.previous();\r\n\r\n return;\r\n }\r\n\r\n // Righ arrow and Down arrow\r\n if (keycode === 39 || keycode === 40) {\r\n e.preventDefault();\r\n\r\n self.next();\r\n\r\n return;\r\n }\r\n\r\n self.trigger(\"afterKeydown\", e, keycode);\r\n });\r\n\r\n // Hide controls after some inactivity period\r\n if (self.group[self.currIndex].opts.idleTime) {\r\n self.idleSecondsCounter = 0;\r\n\r\n $D.on(\r\n \"mousemove.fb-idle mouseleave.fb-idle mousedown.fb-idle touchstart.fb-idle touchmove.fb-idle scroll.fb-idle keydown.fb-idle\",\r\n function (e) {\r\n self.idleSecondsCounter = 0;\r\n\r\n if (self.isIdle) {\r\n self.showControls();\r\n }\r\n\r\n self.isIdle = false;\r\n }\r\n );\r\n\r\n self.idleInterval = window.setInterval(function () {\r\n self.idleSecondsCounter++;\r\n\r\n if (self.idleSecondsCounter >= self.group[self.currIndex].opts.idleTime && !self.isDragging) {\r\n self.isIdle = true;\r\n self.idleSecondsCounter = 0;\r\n\r\n self.hideControls();\r\n }\r\n }, 1000);\r\n }\r\n },\r\n\r\n // Remove events added by the core\r\n // ===============================\r\n\r\n removeEvents: function () {\r\n var self = this;\r\n\r\n $W.off(\"orientationchange.fb resize.fb\");\r\n $D.off(\"keydown.fb .fb-idle\");\r\n\r\n this.$refs.container.off(\".fb-close .fb-prev .fb-next\");\r\n\r\n if (self.idleInterval) {\r\n window.clearInterval(self.idleInterval);\r\n\r\n self.idleInterval = null;\r\n }\r\n },\r\n\r\n // Change to previous gallery item\r\n // ===============================\r\n\r\n previous: function (duration) {\r\n return this.jumpTo(this.currPos - 1, duration);\r\n },\r\n\r\n // Change to next gallery item\r\n // ===========================\r\n\r\n next: function (duration) {\r\n return this.jumpTo(this.currPos + 1, duration);\r\n },\r\n\r\n // Switch to selected gallery item\r\n // ===============================\r\n\r\n jumpTo: function (pos, duration) {\r\n var self = this,\r\n groupLen = self.group.length,\r\n firstRun,\r\n isMoved,\r\n loop,\r\n current,\r\n previous,\r\n slidePos,\r\n stagePos,\r\n prop,\r\n diff;\r\n\r\n if (self.isDragging || self.isClosing || (self.isAnimating && self.firstRun)) {\r\n return;\r\n }\r\n\r\n // Should loop?\r\n pos = parseInt(pos, 10);\r\n loop = self.current ? self.current.opts.loop : self.opts.loop;\r\n\r\n if (!loop && (pos < 0 || pos >= groupLen)) {\r\n return false;\r\n }\r\n\r\n // Check if opening for the first time; this helps to speed things up\r\n firstRun = self.firstRun = !Object.keys(self.slides).length;\r\n\r\n // Create slides\r\n previous = self.current;\r\n\r\n self.prevIndex = self.currIndex;\r\n self.prevPos = self.currPos;\r\n\r\n current = self.createSlide(pos);\r\n\r\n if (groupLen > 1) {\r\n if (loop || current.index < groupLen - 1) {\r\n self.createSlide(pos + 1);\r\n }\r\n\r\n if (loop || current.index > 0) {\r\n self.createSlide(pos - 1);\r\n }\r\n }\r\n\r\n self.current = current;\r\n self.currIndex = current.index;\r\n self.currPos = current.pos;\r\n\r\n self.trigger(\"beforeShow\", firstRun);\r\n\r\n self.updateControls();\r\n\r\n // Validate duration length\r\n current.forcedDuration = undefined;\r\n\r\n if ($.isNumeric(duration)) {\r\n current.forcedDuration = duration;\r\n } else {\r\n duration = current.opts[firstRun ? \"animationDuration\" : \"transitionDuration\"];\r\n }\r\n\r\n duration = parseInt(duration, 10);\r\n\r\n // Check if user has swiped the slides or if still animating\r\n isMoved = self.isMoved(current);\r\n\r\n // Make sure current slide is visible\r\n current.$slide.addClass(\"fancybox-slide--current\");\r\n\r\n // Fresh start - reveal container, current slide and start loading content\r\n if (firstRun) {\r\n if (current.opts.animationEffect && duration) {\r\n self.$refs.container.css(\"transition-duration\", duration + \"ms\");\r\n }\r\n\r\n self.$refs.container.addClass(\"fancybox-is-open\").trigger(\"focus\");\r\n\r\n // Attempt to load content into slide\r\n // This will later call `afterLoad` -> `revealContent`\r\n self.loadSlide(current);\r\n\r\n self.preload(\"image\");\r\n\r\n return;\r\n }\r\n\r\n // Get actual slide/stage positions (before cleaning up)\r\n slidePos = $.fancybox.getTranslate(previous.$slide);\r\n stagePos = $.fancybox.getTranslate(self.$refs.stage);\r\n\r\n // Clean up all slides\r\n $.each(self.slides, function (index, slide) {\r\n $.fancybox.stop(slide.$slide, true);\r\n });\r\n\r\n if (previous.pos !== current.pos) {\r\n previous.isComplete = false;\r\n }\r\n\r\n previous.$slide.removeClass(\"fancybox-slide--complete fancybox-slide--current\");\r\n\r\n // If slides are out of place, then animate them to correct position\r\n if (isMoved) {\r\n // Calculate horizontal swipe distance\r\n diff = slidePos.left - (previous.pos * slidePos.width + previous.pos * previous.opts.gutter);\r\n\r\n $.each(self.slides, function (index, slide) {\r\n slide.$slide.removeClass(\"fancybox-animated\").removeClass(function (index, className) {\r\n return (className.match(/(^|\\s)fancybox-fx-\\S+/g) || []).join(\" \");\r\n });\r\n\r\n // Make sure that each slide is in equal distance\r\n // This is mostly needed for freshly added slides, because they are not yet positioned\r\n var leftPos = slide.pos * slidePos.width + slide.pos * slide.opts.gutter;\r\n\r\n $.fancybox.setTranslate(slide.$slide, {\r\n top: 0,\r\n left: leftPos - stagePos.left + diff\r\n });\r\n\r\n if (slide.pos !== current.pos) {\r\n slide.$slide.addClass(\"fancybox-slide--\" + (slide.pos > current.pos ? \"next\" : \"previous\"));\r\n }\r\n\r\n // Redraw to make sure that transition will start\r\n forceRedraw(slide.$slide);\r\n\r\n // Animate the slide\r\n $.fancybox.animate(\r\n slide.$slide, {\r\n top: 0,\r\n left: (slide.pos - current.pos) * slidePos.width + (slide.pos - current.pos) * slide.opts.gutter\r\n },\r\n duration,\r\n function () {\r\n slide.$slide\r\n .css({\r\n transform: \"\",\r\n opacity: \"\"\r\n })\r\n .removeClass(\"fancybox-slide--next fancybox-slide--previous\");\r\n\r\n if (slide.pos === self.currPos) {\r\n self.complete();\r\n }\r\n }\r\n );\r\n });\r\n } else if (duration && current.opts.transitionEffect) {\r\n // Set transition effect for previously active slide\r\n prop = \"fancybox-animated fancybox-fx-\" + current.opts.transitionEffect;\r\n\r\n previous.$slide.addClass(\"fancybox-slide--\" + (previous.pos > current.pos ? \"next\" : \"previous\"));\r\n\r\n $.fancybox.animate(\r\n previous.$slide,\r\n prop,\r\n duration,\r\n function () {\r\n previous.$slide.removeClass(prop).removeClass(\"fancybox-slide--next fancybox-slide--previous\");\r\n },\r\n false\r\n );\r\n }\r\n\r\n if (current.isLoaded) {\r\n self.revealContent(current);\r\n } else {\r\n self.loadSlide(current);\r\n }\r\n\r\n self.preload(\"image\");\r\n },\r\n\r\n // Create new \"slide\" element\r\n // These are gallery items that are actually added to DOM\r\n // =======================================================\r\n\r\n createSlide: function (pos) {\r\n var self = this,\r\n $slide,\r\n index;\r\n\r\n index = pos % self.group.length;\r\n index = index < 0 ? self.group.length + index : index;\r\n\r\n if (!self.slides[pos] && self.group[index]) {\r\n $slide = $('
').appendTo(self.$refs.stage);\r\n\r\n self.slides[pos] = $.extend(true, {}, self.group[index], {\r\n pos: pos,\r\n $slide: $slide,\r\n isLoaded: false\r\n });\r\n\r\n self.updateSlide(self.slides[pos]);\r\n }\r\n\r\n return self.slides[pos];\r\n },\r\n\r\n // Scale image to the actual size of the image;\r\n // x and y values should be relative to the slide\r\n // ==============================================\r\n\r\n scaleToActual: function (x, y, duration) {\r\n var self = this,\r\n current = self.current,\r\n $content = current.$content,\r\n canvasWidth = $.fancybox.getTranslate(current.$slide).width,\r\n canvasHeight = $.fancybox.getTranslate(current.$slide).height,\r\n newImgWidth = current.width,\r\n newImgHeight = current.height,\r\n imgPos,\r\n posX,\r\n posY,\r\n scaleX,\r\n scaleY;\r\n\r\n if (self.isAnimating || self.isMoved() || !$content || !(current.type == \"image\" && current.isLoaded && !current.hasError)) {\r\n return;\r\n }\r\n\r\n self.isAnimating = true;\r\n\r\n $.fancybox.stop($content);\r\n\r\n x = x === undefined ? canvasWidth * 0.5 : x;\r\n y = y === undefined ? canvasHeight * 0.5 : y;\r\n\r\n imgPos = $.fancybox.getTranslate($content);\r\n\r\n imgPos.top -= $.fancybox.getTranslate(current.$slide).top;\r\n imgPos.left -= $.fancybox.getTranslate(current.$slide).left;\r\n\r\n scaleX = newImgWidth / imgPos.width;\r\n scaleY = newImgHeight / imgPos.height;\r\n\r\n // Get center position for original image\r\n posX = canvasWidth * 0.5 - newImgWidth * 0.5;\r\n posY = canvasHeight * 0.5 - newImgHeight * 0.5;\r\n\r\n // Make sure image does not move away from edges\r\n if (newImgWidth > canvasWidth) {\r\n posX = imgPos.left * scaleX - (x * scaleX - x);\r\n\r\n if (posX > 0) {\r\n posX = 0;\r\n }\r\n\r\n if (posX < canvasWidth - newImgWidth) {\r\n posX = canvasWidth - newImgWidth;\r\n }\r\n }\r\n\r\n if (newImgHeight > canvasHeight) {\r\n posY = imgPos.top * scaleY - (y * scaleY - y);\r\n\r\n if (posY > 0) {\r\n posY = 0;\r\n }\r\n\r\n if (posY < canvasHeight - newImgHeight) {\r\n posY = canvasHeight - newImgHeight;\r\n }\r\n }\r\n\r\n self.updateCursor(newImgWidth, newImgHeight);\r\n\r\n $.fancybox.animate(\r\n $content, {\r\n top: posY,\r\n left: posX,\r\n scaleX: scaleX,\r\n scaleY: scaleY\r\n },\r\n duration || 366,\r\n function () {\r\n self.isAnimating = false;\r\n }\r\n );\r\n\r\n // Stop slideshow\r\n if (self.SlideShow && self.SlideShow.isActive) {\r\n self.SlideShow.stop();\r\n }\r\n },\r\n\r\n // Scale image to fit inside parent element\r\n // ========================================\r\n\r\n scaleToFit: function (duration) {\r\n var self = this,\r\n current = self.current,\r\n $content = current.$content,\r\n end;\r\n\r\n if (self.isAnimating || self.isMoved() || !$content || !(current.type == \"image\" && current.isLoaded && !current.hasError)) {\r\n return;\r\n }\r\n\r\n self.isAnimating = true;\r\n\r\n $.fancybox.stop($content);\r\n\r\n end = self.getFitPos(current);\r\n\r\n self.updateCursor(end.width, end.height);\r\n\r\n $.fancybox.animate(\r\n $content, {\r\n top: end.top,\r\n left: end.left,\r\n scaleX: end.width / $content.width(),\r\n scaleY: end.height / $content.height()\r\n },\r\n duration || 366,\r\n function () {\r\n self.isAnimating = false;\r\n }\r\n );\r\n },\r\n\r\n // Calculate image size to fit inside viewport\r\n // ===========================================\r\n\r\n getFitPos: function (slide) {\r\n var self = this,\r\n $content = slide.$content,\r\n $slide = slide.$slide,\r\n width = slide.width || slide.opts.width,\r\n height = slide.height || slide.opts.height,\r\n maxWidth,\r\n maxHeight,\r\n minRatio,\r\n aspectRatio,\r\n rez = {};\r\n\r\n if (!slide.isLoaded || !$content || !$content.length) {\r\n return false;\r\n }\r\n\r\n maxWidth = $.fancybox.getTranslate(self.$refs.stage).width;\r\n maxHeight = $.fancybox.getTranslate(self.$refs.stage).height;\r\n\r\n maxWidth -=\r\n parseFloat($slide.css(\"paddingLeft\")) +\r\n parseFloat($slide.css(\"paddingRight\")) +\r\n parseFloat($content.css(\"marginLeft\")) +\r\n parseFloat($content.css(\"marginRight\"));\r\n\r\n maxHeight -=\r\n parseFloat($slide.css(\"paddingTop\")) +\r\n parseFloat($slide.css(\"paddingBottom\")) +\r\n parseFloat($content.css(\"marginTop\")) +\r\n parseFloat($content.css(\"marginBottom\"));\r\n\r\n if (!width || !height) {\r\n width = maxWidth;\r\n height = maxHeight;\r\n }\r\n\r\n minRatio = Math.min(1, maxWidth / width, maxHeight / height);\r\n\r\n width = minRatio * width;\r\n height = minRatio * height;\r\n\r\n // Adjust width/height to precisely fit into container\r\n if (width > maxWidth - 0.5) {\r\n width = maxWidth;\r\n }\r\n\r\n if (height > maxHeight - 0.5) {\r\n height = maxHeight;\r\n }\r\n\r\n if (slide.type === \"image\") {\r\n rez.top = Math.floor((maxHeight - height) * 0.5) + parseFloat($slide.css(\"paddingTop\"));\r\n rez.left = Math.floor((maxWidth - width) * 0.5) + parseFloat($slide.css(\"paddingLeft\"));\r\n } else if (slide.contentType === \"video\") {\r\n // Force aspect ratio for the video\r\n // \"I say the whole world must learn of our peaceful ways… by force!\"\r\n aspectRatio = slide.opts.width && slide.opts.height ? width / height : slide.opts.ratio || 16 / 9;\r\n\r\n if (height > width / aspectRatio) {\r\n height = width / aspectRatio;\r\n } else if (width > height * aspectRatio) {\r\n width = height * aspectRatio;\r\n }\r\n }\r\n\r\n rez.width = width;\r\n rez.height = height;\r\n\r\n return rez;\r\n },\r\n\r\n // Update content size and position for all slides\r\n // ==============================================\r\n\r\n update: function (e) {\r\n var self = this;\r\n\r\n $.each(self.slides, function (key, slide) {\r\n self.updateSlide(slide, e);\r\n });\r\n },\r\n\r\n // Update slide content position and size\r\n // ======================================\r\n\r\n updateSlide: function (slide, e) {\r\n var self = this,\r\n $content = slide && slide.$content,\r\n width = slide.width || slide.opts.width,\r\n height = slide.height || slide.opts.height,\r\n $slide = slide.$slide;\r\n\r\n // First, prevent caption overlap, if needed\r\n self.adjustCaption(slide);\r\n\r\n // Then resize content to fit inside the slide\r\n if ($content && (width || height || slide.contentType === \"video\") && !slide.hasError) {\r\n $.fancybox.stop($content);\r\n\r\n $.fancybox.setTranslate($content, self.getFitPos(slide));\r\n\r\n if (slide.pos === self.currPos) {\r\n self.isAnimating = false;\r\n\r\n self.updateCursor();\r\n }\r\n }\r\n\r\n // Then some adjustments\r\n self.adjustLayout(slide);\r\n\r\n if ($slide.length) {\r\n $slide.trigger(\"refresh\");\r\n\r\n if (slide.pos === self.currPos) {\r\n self.$refs.toolbar\r\n .add(self.$refs.navigation.find(\".fancybox-button--arrow_right\"))\r\n .toggleClass(\"compensate-for-scrollbar\", $slide.get(0).scrollHeight > $slide.get(0).clientHeight);\r\n }\r\n }\r\n\r\n self.trigger(\"onUpdate\", slide, e);\r\n },\r\n\r\n // Horizontally center slide\r\n // =========================\r\n\r\n centerSlide: function (duration) {\r\n var self = this,\r\n current = self.current,\r\n $slide = current.$slide;\r\n\r\n if (self.isClosing || !current) {\r\n return;\r\n }\r\n\r\n $slide.siblings().css({\r\n transform: \"\",\r\n opacity: \"\"\r\n });\r\n\r\n $slide\r\n .parent()\r\n .children()\r\n .removeClass(\"fancybox-slide--previous fancybox-slide--next\");\r\n\r\n $.fancybox.animate(\r\n $slide, {\r\n top: 0,\r\n left: 0,\r\n opacity: 1\r\n },\r\n duration === undefined ? 0 : duration,\r\n function () {\r\n // Clean up\r\n $slide.css({\r\n transform: \"\",\r\n opacity: \"\"\r\n });\r\n\r\n if (!current.isComplete) {\r\n self.complete();\r\n }\r\n },\r\n false\r\n );\r\n },\r\n\r\n // Check if current slide is moved (swiped)\r\n // ========================================\r\n\r\n isMoved: function (slide) {\r\n var current = slide || this.current,\r\n slidePos,\r\n stagePos;\r\n\r\n if (!current) {\r\n return false;\r\n }\r\n\r\n stagePos = $.fancybox.getTranslate(this.$refs.stage);\r\n slidePos = $.fancybox.getTranslate(current.$slide);\r\n\r\n return (\r\n !current.$slide.hasClass(\"fancybox-animated\") &&\r\n (Math.abs(slidePos.top - stagePos.top) > 0.5 || Math.abs(slidePos.left - stagePos.left) > 0.5)\r\n );\r\n },\r\n\r\n // Update cursor style depending if content can be zoomed\r\n // ======================================================\r\n\r\n updateCursor: function (nextWidth, nextHeight) {\r\n var self = this,\r\n current = self.current,\r\n $container = self.$refs.container,\r\n canPan,\r\n isZoomable;\r\n\r\n if (!current || self.isClosing || !self.Guestures) {\r\n return;\r\n }\r\n\r\n $container.removeClass(\"fancybox-is-zoomable fancybox-can-zoomIn fancybox-can-zoomOut fancybox-can-swipe fancybox-can-pan\");\r\n\r\n canPan = self.canPan(nextWidth, nextHeight);\r\n\r\n isZoomable = canPan ? true : self.isZoomable();\r\n\r\n $container.toggleClass(\"fancybox-is-zoomable\", isZoomable);\r\n\r\n $(\"[data-fancybox-zoom]\").prop(\"disabled\", !isZoomable);\r\n\r\n if (canPan) {\r\n $container.addClass(\"fancybox-can-pan\");\r\n } else if (\r\n isZoomable &&\r\n (current.opts.clickContent === \"zoom\" || ($.isFunction(current.opts.clickContent) && current.opts.clickContent(current) == \"zoom\"))\r\n ) {\r\n $container.addClass(\"fancybox-can-zoomIn\");\r\n } else if (current.opts.touch && (current.opts.touch.vertical || self.group.length > 1) && current.contentType !== \"video\") {\r\n $container.addClass(\"fancybox-can-swipe\");\r\n }\r\n },\r\n\r\n // Check if current slide is zoomable\r\n // ==================================\r\n\r\n isZoomable: function () {\r\n var self = this,\r\n current = self.current,\r\n fitPos;\r\n\r\n // Assume that slide is zoomable if:\r\n // - image is still loading\r\n // - actual size of the image is smaller than available area\r\n if (current && !self.isClosing && current.type === \"image\" && !current.hasError) {\r\n if (!current.isLoaded) {\r\n return true;\r\n }\r\n\r\n fitPos = self.getFitPos(current);\r\n\r\n if (fitPos && (current.width > fitPos.width || current.height > fitPos.height)) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n },\r\n\r\n // Check if current image dimensions are smaller than actual\r\n // =========================================================\r\n\r\n isScaledDown: function (nextWidth, nextHeight) {\r\n var self = this,\r\n rez = false,\r\n current = self.current,\r\n $content = current.$content;\r\n\r\n if (nextWidth !== undefined && nextHeight !== undefined) {\r\n rez = nextWidth < current.width && nextHeight < current.height;\r\n } else if ($content) {\r\n rez = $.fancybox.getTranslate($content);\r\n rez = rez.width < current.width && rez.height < current.height;\r\n }\r\n\r\n return rez;\r\n },\r\n\r\n // Check if image dimensions exceed parent element\r\n // ===============================================\r\n\r\n canPan: function (nextWidth, nextHeight) {\r\n var self = this,\r\n current = self.current,\r\n pos = null,\r\n rez = false;\r\n\r\n if (current.type === \"image\" && (current.isComplete || (nextWidth && nextHeight)) && !current.hasError) {\r\n rez = self.getFitPos(current);\r\n\r\n if (nextWidth !== undefined && nextHeight !== undefined) {\r\n pos = {\r\n width: nextWidth,\r\n height: nextHeight\r\n };\r\n } else if (current.isComplete) {\r\n pos = $.fancybox.getTranslate(current.$content);\r\n }\r\n\r\n if (pos && rez) {\r\n rez = Math.abs(pos.width - rez.width) > 1.5 || Math.abs(pos.height - rez.height) > 1.5;\r\n }\r\n }\r\n\r\n return rez;\r\n },\r\n\r\n // Load content into the slide\r\n // ===========================\r\n\r\n loadSlide: function (slide) {\r\n var self = this,\r\n type,\r\n $slide,\r\n ajaxLoad;\r\n\r\n if (slide.isLoading || slide.isLoaded) {\r\n return;\r\n }\r\n\r\n slide.isLoading = true;\r\n\r\n if (self.trigger(\"beforeLoad\", slide) === false) {\r\n slide.isLoading = false;\r\n\r\n return false;\r\n }\r\n\r\n type = slide.type;\r\n $slide = slide.$slide;\r\n\r\n $slide\r\n .off(\"refresh\")\r\n .trigger(\"onReset\")\r\n .addClass(slide.opts.slideClass);\r\n\r\n // Create content depending on the type\r\n switch (type) {\r\n case \"image\":\r\n self.setImage(slide);\r\n\r\n break;\r\n\r\n case \"iframe\":\r\n self.setIframe(slide);\r\n\r\n break;\r\n\r\n case \"html\":\r\n self.setContent(slide, slide.src || slide.content);\r\n\r\n break;\r\n\r\n case \"video\":\r\n self.setContent(\r\n slide,\r\n slide.opts.video.tpl\r\n .replace(/\\{\\{src\\}\\}/gi, slide.src)\r\n .replace(\"{{format}}\", slide.opts.videoFormat || slide.opts.video.format || \"\")\r\n .replace(\"{{poster}}\", slide.thumb || \"\")\r\n );\r\n\r\n break;\r\n\r\n case \"inline\":\r\n if ($(slide.src).length) {\r\n self.setContent(slide, $(slide.src));\r\n } else {\r\n self.setError(slide);\r\n }\r\n\r\n break;\r\n\r\n case \"ajax\":\r\n self.showLoading(slide);\r\n\r\n ajaxLoad = $.ajax(\r\n $.extend({}, slide.opts.ajax.settings, {\r\n url: slide.src,\r\n success: function (data, textStatus) {\r\n if (textStatus === \"success\") {\r\n self.setContent(slide, data);\r\n }\r\n },\r\n error: function (jqXHR, textStatus) {\r\n if (jqXHR && textStatus !== \"abort\") {\r\n self.setError(slide);\r\n }\r\n }\r\n })\r\n );\r\n\r\n $slide.one(\"onReset\", function () {\r\n ajaxLoad.abort();\r\n });\r\n\r\n break;\r\n\r\n default:\r\n self.setError(slide);\r\n\r\n break;\r\n }\r\n\r\n return true;\r\n },\r\n\r\n // Use thumbnail image, if possible\r\n // ================================\r\n\r\n setImage: function (slide) {\r\n var self = this,\r\n ghost;\r\n\r\n // Check if need to show loading icon\r\n setTimeout(function () {\r\n var $img = slide.$image;\r\n\r\n if (!self.isClosing && slide.isLoading && (!$img || !$img.length || !$img[0].complete) && !slide.hasError) {\r\n self.showLoading(slide);\r\n }\r\n }, 50);\r\n\r\n //Check if image has srcset\r\n self.checkSrcset(slide);\r\n\r\n // This will be wrapper containing both ghost and actual image\r\n slide.$content = $('
')\r\n .addClass(\"fancybox-is-hidden\")\r\n .appendTo(slide.$slide.addClass(\"fancybox-slide--image\"));\r\n\r\n // If we have a thumbnail, we can display it while actual image is loading\r\n // Users will not stare at black screen and actual image will appear gradually\r\n if (slide.opts.preload !== false && slide.opts.width && slide.opts.height && slide.thumb) {\r\n slide.width = slide.opts.width;\r\n slide.height = slide.opts.height;\r\n\r\n ghost = document.createElement(\"img\");\r\n\r\n ghost.onerror = function () {\r\n $(this).remove();\r\n\r\n slide.$ghost = null;\r\n };\r\n\r\n ghost.onload = function () {\r\n self.afterLoad(slide);\r\n };\r\n\r\n slide.$ghost = $(ghost)\r\n .addClass(\"fancybox-image\")\r\n .appendTo(slide.$content)\r\n .attr(\"src\", slide.thumb);\r\n }\r\n\r\n // Start loading actual image\r\n self.setBigImage(slide);\r\n },\r\n\r\n // Check if image has srcset and get the source\r\n // ============================================\r\n checkSrcset: function (slide) {\r\n var srcset = slide.opts.srcset || slide.opts.image.srcset,\r\n found,\r\n temp,\r\n pxRatio,\r\n windowWidth;\r\n\r\n // If we have \"srcset\", then we need to find first matching \"src\" value.\r\n // This is necessary, because when you set an src attribute, the browser will preload the image\r\n // before any javascript or even CSS is applied.\r\n if (srcset) {\r\n pxRatio = window.devicePixelRatio || 1;\r\n windowWidth = window.innerWidth * pxRatio;\r\n\r\n temp = srcset.split(\",\").map(function (el) {\r\n var ret = {};\r\n\r\n el.trim()\r\n .split(/\\s+/)\r\n .forEach(function (el, i) {\r\n var value = parseInt(el.substring(0, el.length - 1), 10);\r\n\r\n if (i === 0) {\r\n return (ret.url = el);\r\n }\r\n\r\n if (value) {\r\n ret.value = value;\r\n ret.postfix = el[el.length - 1];\r\n }\r\n });\r\n\r\n return ret;\r\n });\r\n\r\n // Sort by value\r\n temp.sort(function (a, b) {\r\n return a.value - b.value;\r\n });\r\n\r\n // Ok, now we have an array of all srcset values\r\n for (var j = 0; j < temp.length; j++) {\r\n var el = temp[j];\r\n\r\n if ((el.postfix === \"w\" && el.value >= windowWidth) || (el.postfix === \"x\" && el.value >= pxRatio)) {\r\n found = el;\r\n break;\r\n }\r\n }\r\n\r\n // If not found, take the last one\r\n if (!found && temp.length) {\r\n found = temp[temp.length - 1];\r\n }\r\n\r\n if (found) {\r\n slide.src = found.url;\r\n\r\n // If we have default width/height values, we can calculate height for matching source\r\n if (slide.width && slide.height && found.postfix == \"w\") {\r\n slide.height = (slide.width / slide.height) * found.value;\r\n slide.width = found.value;\r\n }\r\n\r\n slide.opts.srcset = srcset;\r\n }\r\n }\r\n },\r\n\r\n // Create full-size image\r\n // ======================\r\n\r\n setBigImage: function (slide) {\r\n var self = this,\r\n img = document.createElement(\"img\"),\r\n $img = $(img);\r\n\r\n slide.$image = $img\r\n .one(\"error\", function () {\r\n self.setError(slide);\r\n })\r\n .one(\"load\", function () {\r\n var sizes;\r\n\r\n if (!slide.$ghost) {\r\n self.resolveImageSlideSize(slide, this.naturalWidth, this.naturalHeight);\r\n\r\n self.afterLoad(slide);\r\n }\r\n\r\n if (self.isClosing) {\r\n return;\r\n }\r\n\r\n if (slide.opts.srcset) {\r\n sizes = slide.opts.sizes;\r\n\r\n if (!sizes || sizes === \"auto\") {\r\n sizes =\r\n (slide.width / slide.height > 1 && $W.width() / $W.height() > 1 ? \"100\" : Math.round((slide.width / slide.height) * 100)) +\r\n \"vw\";\r\n }\r\n\r\n $img.attr(\"sizes\", sizes).attr(\"srcset\", slide.opts.srcset);\r\n }\r\n\r\n // Hide temporary image after some delay\r\n if (slide.$ghost) {\r\n setTimeout(function () {\r\n if (slide.$ghost && !self.isClosing) {\r\n slide.$ghost.hide();\r\n }\r\n }, Math.min(300, Math.max(1000, slide.height / 1600)));\r\n }\r\n\r\n self.hideLoading(slide);\r\n })\r\n .addClass(\"fancybox-image\")\r\n .attr(\"src\", slide.src)\r\n .appendTo(slide.$content);\r\n\r\n if ((img.complete || img.readyState == \"complete\") && $img.naturalWidth && $img.naturalHeight) {\r\n $img.trigger(\"load\");\r\n } else if (img.error) {\r\n $img.trigger(\"error\");\r\n }\r\n },\r\n\r\n // Computes the slide size from image size and maxWidth/maxHeight\r\n // ==============================================================\r\n\r\n resolveImageSlideSize: function (slide, imgWidth, imgHeight) {\r\n var maxWidth = parseInt(slide.opts.width, 10),\r\n maxHeight = parseInt(slide.opts.height, 10);\r\n\r\n // Sets the default values from the image\r\n slide.width = imgWidth;\r\n slide.height = imgHeight;\r\n\r\n if (maxWidth > 0) {\r\n slide.width = maxWidth;\r\n slide.height = Math.floor((maxWidth * imgHeight) / imgWidth);\r\n }\r\n\r\n if (maxHeight > 0) {\r\n slide.width = Math.floor((maxHeight * imgWidth) / imgHeight);\r\n slide.height = maxHeight;\r\n }\r\n },\r\n\r\n // Create iframe wrapper, iframe and bindings\r\n // ==========================================\r\n\r\n setIframe: function (slide) {\r\n var self = this,\r\n opts = slide.opts.iframe,\r\n $slide = slide.$slide,\r\n $iframe;\r\n\r\n slide.$content = $('
')\r\n .css(opts.css)\r\n .appendTo($slide);\r\n\r\n $slide.addClass(\"fancybox-slide--\" + slide.contentType);\r\n\r\n slide.$iframe = $iframe = $(opts.tpl.replace(/\\{rnd\\}/g, new Date().getTime()))\r\n .attr(opts.attr)\r\n .appendTo(slide.$content);\r\n\r\n if (opts.preload) {\r\n self.showLoading(slide);\r\n\r\n // Unfortunately, it is not always possible to determine if iframe is successfully loaded\r\n // (due to browser security policy)\r\n\r\n $iframe.on(\"load.fb error.fb\", function (e) {\r\n this.isReady = 1;\r\n\r\n slide.$slide.trigger(\"refresh\");\r\n\r\n self.afterLoad(slide);\r\n });\r\n\r\n // Recalculate iframe content size\r\n // ===============================\r\n\r\n $slide.on(\"refresh.fb\", function () {\r\n var $content = slide.$content,\r\n frameWidth = opts.css.width,\r\n frameHeight = opts.css.height,\r\n $contents,\r\n $body;\r\n\r\n if ($iframe[0].isReady !== 1) {\r\n return;\r\n }\r\n\r\n try {\r\n $contents = $iframe.contents();\r\n $body = $contents.find(\"body\");\r\n } catch (ignore) {}\r\n\r\n // Calculate content dimensions, if it is accessible\r\n if ($body && $body.length && $body.children().length) {\r\n // Avoid scrolling to top (if multiple instances)\r\n $slide.css(\"overflow\", \"visible\");\r\n\r\n $content.css({\r\n width: \"100%\",\r\n \"max-width\": \"100%\",\r\n height: \"9999px\"\r\n });\r\n\r\n if (frameWidth === undefined) {\r\n frameWidth = Math.ceil(Math.max($body[0].clientWidth, $body.outerWidth(true)));\r\n }\r\n\r\n $content.css(\"width\", frameWidth ? frameWidth : \"\").css(\"max-width\", \"\");\r\n\r\n if (frameHeight === undefined) {\r\n frameHeight = Math.ceil(Math.max($body[0].clientHeight, $body.outerHeight(true)));\r\n }\r\n\r\n $content.css(\"height\", frameHeight ? frameHeight : \"\");\r\n\r\n $slide.css(\"overflow\", \"auto\");\r\n }\r\n\r\n $content.removeClass(\"fancybox-is-hidden\");\r\n });\r\n } else {\r\n self.afterLoad(slide);\r\n }\r\n\r\n $iframe.attr(\"src\", slide.src);\r\n\r\n // Remove iframe if closing or changing gallery item\r\n $slide.one(\"onReset\", function () {\r\n // This helps IE not to throw errors when closing\r\n try {\r\n $(this)\r\n .find(\"iframe\")\r\n .hide()\r\n .unbind()\r\n .attr(\"src\", \"//about:blank\");\r\n } catch (ignore) {}\r\n\r\n $(this)\r\n .off(\"refresh.fb\")\r\n .empty();\r\n\r\n slide.isLoaded = false;\r\n slide.isRevealed = false;\r\n });\r\n },\r\n\r\n // Wrap and append content to the slide\r\n // ======================================\r\n\r\n setContent: function (slide, content) {\r\n var self = this;\r\n\r\n if (self.isClosing) {\r\n return;\r\n }\r\n\r\n self.hideLoading(slide);\r\n\r\n if (slide.$content) {\r\n $.fancybox.stop(slide.$content);\r\n }\r\n\r\n slide.$slide.empty();\r\n\r\n // If content is a jQuery object, then it will be moved to the slide.\r\n // The placeholder is created so we will know where to put it back.\r\n if (isQuery(content) && content.parent().length) {\r\n // Make sure content is not already moved to fancyBox\r\n if (content.hasClass(\"fancybox-content\") || content.parent().hasClass(\"fancybox-content\")) {\r\n content.parents(\".fancybox-slide\").trigger(\"onReset\");\r\n }\r\n\r\n // Create temporary element marking original place of the content\r\n slide.$placeholder = $(\"
\")\r\n .hide()\r\n .insertAfter(content);\r\n\r\n // Make sure content is visible\r\n content.css(\"display\", \"inline-block\");\r\n } else if (!slide.hasError) {\r\n // If content is just a plain text, try to convert it to html\r\n if ($.type(content) === \"string\") {\r\n content = $(\"
\")\r\n .append($.trim(content))\r\n .contents();\r\n }\r\n\r\n // If \"filter\" option is provided, then filter content\r\n if (slide.opts.filter) {\r\n content = $(\"
\")\r\n .html(content)\r\n .find(slide.opts.filter);\r\n }\r\n }\r\n\r\n slide.$slide.one(\"onReset\", function () {\r\n // Pause all html5 video/audio\r\n $(this)\r\n .find(\"video,audio\")\r\n .trigger(\"pause\");\r\n\r\n // Put content back\r\n if (slide.$placeholder) {\r\n slide.$placeholder.after(content.removeClass(\"fancybox-content\").hide()).remove();\r\n\r\n slide.$placeholder = null;\r\n }\r\n\r\n // Remove custom close button\r\n if (slide.$smallBtn) {\r\n slide.$smallBtn.remove();\r\n\r\n slide.$smallBtn = null;\r\n }\r\n\r\n // Remove content and mark slide as not loaded\r\n if (!slide.hasError) {\r\n $(this).empty();\r\n\r\n slide.isLoaded = false;\r\n slide.isRevealed = false;\r\n }\r\n });\r\n\r\n $(content).appendTo(slide.$slide);\r\n\r\n if ($(content).is(\"video,audio\")) {\r\n $(content).addClass(\"fancybox-video\");\r\n\r\n $(content).wrap(\"
\");\r\n\r\n slide.contentType = \"video\";\r\n\r\n slide.opts.width = slide.opts.width || $(content).attr(\"width\");\r\n slide.opts.height = slide.opts.height || $(content).attr(\"height\");\r\n }\r\n\r\n slide.$content = slide.$slide\r\n .children()\r\n .filter(\"div,form,main,video,audio,article,.fancybox-content\")\r\n .first();\r\n\r\n slide.$content.siblings().hide();\r\n\r\n // Re-check if there is a valid content\r\n // (in some cases, ajax response can contain various elements or plain text)\r\n if (!slide.$content.length) {\r\n slide.$content = slide.$slide\r\n .wrapInner(\"
\")\r\n .children()\r\n .first();\r\n }\r\n\r\n slide.$content.addClass(\"fancybox-content\");\r\n\r\n slide.$slide.addClass(\"fancybox-slide--\" + slide.contentType);\r\n\r\n self.afterLoad(slide);\r\n },\r\n\r\n // Display error message\r\n // =====================\r\n\r\n setError: function (slide) {\r\n slide.hasError = true;\r\n\r\n slide.$slide\r\n .trigger(\"onReset\")\r\n .removeClass(\"fancybox-slide--\" + slide.contentType)\r\n .addClass(\"fancybox-slide--error\");\r\n\r\n slide.contentType = \"html\";\r\n\r\n this.setContent(slide, this.translate(slide, slide.opts.errorTpl));\r\n\r\n if (slide.pos === this.currPos) {\r\n this.isAnimating = false;\r\n }\r\n },\r\n\r\n // Show loading icon inside the slide\r\n // ==================================\r\n\r\n showLoading: function (slide) {\r\n var self = this;\r\n\r\n slide = slide || self.current;\r\n\r\n if (slide && !slide.$spinner) {\r\n slide.$spinner = $(self.translate(self, self.opts.spinnerTpl))\r\n .appendTo(slide.$slide)\r\n .hide()\r\n .fadeIn(\"fast\");\r\n }\r\n },\r\n\r\n // Remove loading icon from the slide\r\n // ==================================\r\n\r\n hideLoading: function (slide) {\r\n var self = this;\r\n\r\n slide = slide || self.current;\r\n\r\n if (slide && slide.$spinner) {\r\n slide.$spinner.stop().remove();\r\n\r\n delete slide.$spinner;\r\n }\r\n },\r\n\r\n // Adjustments after slide content has been loaded\r\n // ===============================================\r\n\r\n afterLoad: function (slide) {\r\n var self = this;\r\n\r\n if (self.isClosing) {\r\n return;\r\n }\r\n\r\n slide.isLoading = false;\r\n slide.isLoaded = true;\r\n\r\n self.trigger(\"afterLoad\", slide);\r\n\r\n self.hideLoading(slide);\r\n\r\n // Add small close button\r\n if (slide.opts.smallBtn && (!slide.$smallBtn || !slide.$smallBtn.length)) {\r\n slide.$smallBtn = $(self.translate(slide, slide.opts.btnTpl.smallBtn)).appendTo(slide.$content);\r\n }\r\n\r\n // Disable right click\r\n if (slide.opts.protect && slide.$content && !slide.hasError) {\r\n slide.$content.on(\"contextmenu.fb\", function (e) {\r\n if (e.button == 2) {\r\n e.preventDefault();\r\n }\r\n\r\n return true;\r\n });\r\n\r\n // Add fake element on top of the image\r\n // This makes a bit harder for user to select image\r\n if (slide.type === \"image\") {\r\n $('
').appendTo(slide.$content);\r\n }\r\n }\r\n\r\n self.adjustCaption(slide);\r\n\r\n self.adjustLayout(slide);\r\n\r\n if (slide.pos === self.currPos) {\r\n self.updateCursor();\r\n }\r\n\r\n self.revealContent(slide);\r\n },\r\n\r\n // Prevent caption overlap,\r\n // fix css inconsistency across browsers\r\n // =====================================\r\n\r\n adjustCaption: function (slide) {\r\n var self = this,\r\n current = slide || self.current,\r\n caption = current.opts.caption,\r\n preventOverlap = current.opts.preventCaptionOverlap,\r\n $caption = self.$refs.caption,\r\n $clone,\r\n captionH = false;\r\n\r\n $caption.toggleClass(\"fancybox-caption--separate\", preventOverlap);\r\n\r\n if (preventOverlap && caption && caption.length) {\r\n if (current.pos !== self.currPos) {\r\n $clone = $caption.clone().appendTo($caption.parent());\r\n\r\n $clone\r\n .children()\r\n .eq(0)\r\n .empty()\r\n .html(caption);\r\n\r\n captionH = $clone.outerHeight(true);\r\n\r\n $clone.empty().remove();\r\n } else if (self.$caption) {\r\n captionH = self.$caption.outerHeight(true);\r\n }\r\n\r\n current.$slide.css(\"padding-bottom\", captionH || \"\");\r\n }\r\n },\r\n\r\n // Simple hack to fix inconsistency across browsers, described here (affects Edge, too):\r\n // https://bugzilla.mozilla.org/show_bug.cgi?id=748518\r\n // ====================================================================================\r\n\r\n adjustLayout: function (slide) {\r\n var self = this,\r\n current = slide || self.current,\r\n scrollHeight,\r\n marginBottom,\r\n inlinePadding,\r\n actualPadding;\r\n\r\n if (current.isLoaded && current.opts.disableLayoutFix !== true) {\r\n current.$content.css(\"margin-bottom\", \"\");\r\n\r\n // If we would always set margin-bottom for the content,\r\n // then it would potentially break vertical align\r\n if (current.$content.outerHeight() > current.$slide.height() + 0.5) {\r\n inlinePadding = current.$slide[0].style[\"padding-bottom\"];\r\n actualPadding = current.$slide.css(\"padding-bottom\");\r\n\r\n if (parseFloat(actualPadding) > 0) {\r\n scrollHeight = current.$slide[0].scrollHeight;\r\n\r\n current.$slide.css(\"padding-bottom\", 0);\r\n\r\n if (Math.abs(scrollHeight - current.$slide[0].scrollHeight) < 1) {\r\n marginBottom = actualPadding;\r\n }\r\n\r\n current.$slide.css(\"padding-bottom\", inlinePadding);\r\n }\r\n }\r\n\r\n current.$content.css(\"margin-bottom\", marginBottom);\r\n }\r\n },\r\n\r\n // Make content visible\r\n // This method is called right after content has been loaded or\r\n // user navigates gallery and transition should start\r\n // ============================================================\r\n\r\n revealContent: function (slide) {\r\n var self = this,\r\n $slide = slide.$slide,\r\n end = false,\r\n start = false,\r\n isMoved = self.isMoved(slide),\r\n isRevealed = slide.isRevealed,\r\n effect,\r\n effectClassName,\r\n duration,\r\n opacity;\r\n\r\n slide.isRevealed = true;\r\n\r\n effect = slide.opts[self.firstRun ? \"animationEffect\" : \"transitionEffect\"];\r\n duration = slide.opts[self.firstRun ? \"animationDuration\" : \"transitionDuration\"];\r\n\r\n duration = parseInt(slide.forcedDuration === undefined ? duration : slide.forcedDuration, 10);\r\n\r\n if (isMoved || slide.pos !== self.currPos || !duration) {\r\n effect = false;\r\n }\r\n\r\n // Check if can zoom\r\n if (effect === \"zoom\") {\r\n if (slide.pos === self.currPos && duration && slide.type === \"image\" && !slide.hasError && (start = self.getThumbPos(slide))) {\r\n end = self.getFitPos(slide);\r\n } else {\r\n effect = \"fade\";\r\n }\r\n }\r\n\r\n // Zoom animation\r\n // ==============\r\n if (effect === \"zoom\") {\r\n self.isAnimating = true;\r\n\r\n end.scaleX = end.width / start.width;\r\n end.scaleY = end.height / start.height;\r\n\r\n // Check if we need to animate opacity\r\n opacity = slide.opts.zoomOpacity;\r\n\r\n if (opacity == \"auto\") {\r\n opacity = Math.abs(slide.width / slide.height - start.width / start.height) > 0.1;\r\n }\r\n\r\n if (opacity) {\r\n start.opacity = 0.1;\r\n end.opacity = 1;\r\n }\r\n\r\n // Draw image at start position\r\n $.fancybox.setTranslate(slide.$content.removeClass(\"fancybox-is-hidden\"), start);\r\n\r\n forceRedraw(slide.$content);\r\n\r\n // Start animation\r\n $.fancybox.animate(slide.$content, end, duration, function () {\r\n self.isAnimating = false;\r\n\r\n self.complete();\r\n });\r\n\r\n return;\r\n }\r\n\r\n self.updateSlide(slide);\r\n\r\n // Simply show content if no effect\r\n // ================================\r\n if (!effect) {\r\n slide.$content.removeClass(\"fancybox-is-hidden\");\r\n\r\n if (!isRevealed && isMoved && slide.type === \"image\" && !slide.hasError) {\r\n slide.$content.hide().fadeIn(\"fast\");\r\n }\r\n\r\n if (slide.pos === self.currPos) {\r\n self.complete();\r\n }\r\n\r\n return;\r\n }\r\n\r\n // Prepare for CSS transiton\r\n // =========================\r\n $.fancybox.stop($slide);\r\n\r\n //effectClassName = \"fancybox-animated fancybox-slide--\" + (slide.pos >= self.prevPos ? \"next\" : \"previous\") + \" fancybox-fx-\" + effect;\r\n effectClassName = \"fancybox-slide--\" + (slide.pos >= self.prevPos ? \"next\" : \"previous\") + \" fancybox-animated fancybox-fx-\" + effect;\r\n\r\n $slide.addClass(effectClassName).removeClass(\"fancybox-slide--current\"); //.addClass(effectClassName);\r\n\r\n slide.$content.removeClass(\"fancybox-is-hidden\");\r\n\r\n // Force reflow\r\n forceRedraw($slide);\r\n\r\n if (slide.type !== \"image\") {\r\n slide.$content.hide().show(0);\r\n }\r\n\r\n $.fancybox.animate(\r\n $slide,\r\n \"fancybox-slide--current\",\r\n duration,\r\n function () {\r\n $slide.removeClass(effectClassName).css({\r\n transform: \"\",\r\n opacity: \"\"\r\n });\r\n\r\n if (slide.pos === self.currPos) {\r\n self.complete();\r\n }\r\n },\r\n true\r\n );\r\n },\r\n\r\n // Check if we can and have to zoom from thumbnail\r\n //================================================\r\n\r\n getThumbPos: function (slide) {\r\n var rez = false,\r\n $thumb = slide.$thumb,\r\n thumbPos,\r\n btw,\r\n brw,\r\n bbw,\r\n blw;\r\n\r\n if (!$thumb || !inViewport($thumb[0])) {\r\n return false;\r\n }\r\n\r\n thumbPos = $.fancybox.getTranslate($thumb);\r\n\r\n btw = parseFloat($thumb.css(\"border-top-width\") || 0);\r\n brw = parseFloat($thumb.css(\"border-right-width\") || 0);\r\n bbw = parseFloat($thumb.css(\"border-bottom-width\") || 0);\r\n blw = parseFloat($thumb.css(\"border-left-width\") || 0);\r\n\r\n rez = {\r\n top: thumbPos.top + btw,\r\n left: thumbPos.left + blw,\r\n width: thumbPos.width - brw - blw,\r\n height: thumbPos.height - btw - bbw,\r\n scaleX: 1,\r\n scaleY: 1\r\n };\r\n\r\n return thumbPos.width > 0 && thumbPos.height > 0 ? rez : false;\r\n },\r\n\r\n // Final adjustments after current gallery item is moved to position\r\n // and it`s content is loaded\r\n // ==================================================================\r\n\r\n complete: function () {\r\n var self = this,\r\n current = self.current,\r\n slides = {},\r\n $el;\r\n\r\n if (self.isMoved() || !current.isLoaded) {\r\n return;\r\n }\r\n\r\n if (!current.isComplete) {\r\n current.isComplete = true;\r\n\r\n current.$slide.siblings().trigger(\"onReset\");\r\n\r\n self.preload(\"inline\");\r\n\r\n // Trigger any CSS transiton inside the slide\r\n forceRedraw(current.$slide);\r\n\r\n current.$slide.addClass(\"fancybox-slide--complete\");\r\n\r\n // Remove unnecessary slides\r\n $.each(self.slides, function (key, slide) {\r\n if (slide.pos >= self.currPos - 1 && slide.pos <= self.currPos + 1) {\r\n slides[slide.pos] = slide;\r\n } else if (slide) {\r\n $.fancybox.stop(slide.$slide);\r\n\r\n slide.$slide.off().remove();\r\n }\r\n });\r\n\r\n self.slides = slides;\r\n }\r\n\r\n self.isAnimating = false;\r\n\r\n self.updateCursor();\r\n\r\n self.trigger(\"afterShow\");\r\n\r\n // Autoplay first html5 video/audio\r\n if (!!current.opts.video.autoStart) {\r\n current.$slide\r\n .find(\"video,audio\")\r\n .filter(\":visible:first\")\r\n .trigger(\"play\")\r\n .one(\"ended\", function () {\r\n if (Document.exitFullscreen) {\r\n Document.exitFullscreen();\r\n } else if (this.webkitExitFullscreen) {\r\n this.webkitExitFullscreen();\r\n }\r\n\r\n self.next();\r\n });\r\n }\r\n\r\n // Try to focus on the first focusable element\r\n if (current.opts.autoFocus && current.contentType === \"html\") {\r\n // Look for the first input with autofocus attribute\r\n $el = current.$content.find(\"input[autofocus]:enabled:visible:first\");\r\n\r\n if ($el.length) {\r\n $el.trigger(\"focus\");\r\n } else {\r\n self.focus(null, true);\r\n }\r\n }\r\n\r\n // Avoid jumping\r\n current.$slide.scrollTop(0).scrollLeft(0);\r\n },\r\n\r\n // Preload next and previous slides\r\n // ================================\r\n\r\n preload: function (type) {\r\n var self = this,\r\n prev,\r\n next;\r\n\r\n if (self.group.length < 2) {\r\n return;\r\n }\r\n\r\n next = self.slides[self.currPos + 1];\r\n prev = self.slides[self.currPos - 1];\r\n\r\n if (prev && prev.type === type) {\r\n self.loadSlide(prev);\r\n }\r\n\r\n if (next && next.type === type) {\r\n self.loadSlide(next);\r\n }\r\n },\r\n\r\n // Try to find and focus on the first focusable element\r\n // ====================================================\r\n\r\n focus: function (e, firstRun) {\r\n var self = this,\r\n focusableStr = [\r\n \"a[href]\",\r\n \"area[href]\",\r\n 'input:not([disabled]):not([type=\"hidden\"]):not([aria-hidden])',\r\n \"select:not([disabled]):not([aria-hidden])\",\r\n \"textarea:not([disabled]):not([aria-hidden])\",\r\n \"button:not([disabled]):not([aria-hidden])\",\r\n \"iframe\",\r\n \"object\",\r\n \"embed\",\r\n \"video\",\r\n \"audio\",\r\n \"[contenteditable]\",\r\n '[tabindex]:not([tabindex^=\"-\"])'\r\n ].join(\",\"),\r\n focusableItems,\r\n focusedItemIndex;\r\n\r\n if (self.isClosing) {\r\n return;\r\n }\r\n\r\n if (e || !self.current || !self.current.isComplete) {\r\n // Focus on any element inside fancybox\r\n focusableItems = self.$refs.container.find(\"*:visible\");\r\n } else {\r\n // Focus inside current slide\r\n focusableItems = self.current.$slide.find(\"*:visible\" + (firstRun ? \":not(.fancybox-close-small)\" : \"\"));\r\n }\r\n\r\n focusableItems = focusableItems.filter(focusableStr).filter(function () {\r\n return $(this).css(\"visibility\") !== \"hidden\" && !$(this).hasClass(\"disabled\");\r\n });\r\n\r\n if (focusableItems.length) {\r\n focusedItemIndex = focusableItems.index(document.activeElement);\r\n\r\n if (e && e.shiftKey) {\r\n // Back tab\r\n if (focusedItemIndex < 0 || focusedItemIndex == 0) {\r\n e.preventDefault();\r\n\r\n focusableItems.eq(focusableItems.length - 1).trigger(\"focus\");\r\n }\r\n } else {\r\n // Outside or Forward tab\r\n if (focusedItemIndex < 0 || focusedItemIndex == focusableItems.length - 1) {\r\n if (e) {\r\n e.preventDefault();\r\n }\r\n\r\n focusableItems.eq(0).trigger(\"focus\");\r\n }\r\n }\r\n } else {\r\n self.$refs.container.trigger(\"focus\");\r\n }\r\n },\r\n\r\n // Activates current instance - brings container to the front and enables keyboard,\r\n // notifies other instances about deactivating\r\n // =================================================================================\r\n\r\n activate: function () {\r\n var self = this;\r\n\r\n // Deactivate all instances\r\n $(\".fancybox-container\").each(function () {\r\n var instance = $(this).data(\"FancyBox\");\r\n\r\n // Skip self and closing instances\r\n if (instance && instance.id !== self.id && !instance.isClosing) {\r\n instance.trigger(\"onDeactivate\");\r\n\r\n instance.removeEvents();\r\n\r\n instance.isVisible = false;\r\n }\r\n });\r\n\r\n self.isVisible = true;\r\n\r\n if (self.current || self.isIdle) {\r\n self.update();\r\n\r\n self.updateControls();\r\n }\r\n\r\n self.trigger(\"onActivate\");\r\n\r\n self.addEvents();\r\n },\r\n\r\n // Start closing procedure\r\n // This will start \"zoom-out\" animation if needed and clean everything up afterwards\r\n // =================================================================================\r\n\r\n close: function (e, d) {\r\n var self = this,\r\n current = self.current,\r\n effect,\r\n duration,\r\n $content,\r\n domRect,\r\n opacity,\r\n start,\r\n end;\r\n\r\n var done = function () {\r\n self.cleanUp(e);\r\n };\r\n\r\n if (self.isClosing) {\r\n return false;\r\n }\r\n\r\n self.isClosing = true;\r\n\r\n // If beforeClose callback prevents closing, make sure content is centered\r\n if (self.trigger(\"beforeClose\", e) === false) {\r\n self.isClosing = false;\r\n\r\n requestAFrame(function () {\r\n self.update();\r\n });\r\n\r\n return false;\r\n }\r\n\r\n // Remove all events\r\n // If there are multiple instances, they will be set again by \"activate\" method\r\n self.removeEvents();\r\n\r\n $content = current.$content;\r\n effect = current.opts.animationEffect;\r\n duration = $.isNumeric(d) ? d : effect ? current.opts.animationDuration : 0;\r\n\r\n current.$slide.removeClass(\"fancybox-slide--complete fancybox-slide--next fancybox-slide--previous fancybox-animated\");\r\n\r\n if (e !== true) {\r\n $.fancybox.stop(current.$slide);\r\n } else {\r\n effect = false;\r\n }\r\n\r\n // Remove other slides\r\n current.$slide\r\n .siblings()\r\n .trigger(\"onReset\")\r\n .remove();\r\n\r\n // Trigger animations\r\n if (duration) {\r\n self.$refs.container\r\n .removeClass(\"fancybox-is-open\")\r\n .addClass(\"fancybox-is-closing\")\r\n .css(\"transition-duration\", duration + \"ms\");\r\n }\r\n\r\n // Clean up\r\n self.hideLoading(current);\r\n\r\n self.hideControls(true);\r\n\r\n self.updateCursor();\r\n\r\n // Check if possible to zoom-out\r\n if (\r\n effect === \"zoom\" &&\r\n !($content && duration && current.type === \"image\" && !self.isMoved() && !current.hasError && (end = self.getThumbPos(current)))\r\n ) {\r\n effect = \"fade\";\r\n }\r\n\r\n if (effect === \"zoom\") {\r\n $.fancybox.stop($content);\r\n\r\n domRect = $.fancybox.getTranslate($content);\r\n\r\n start = {\r\n top: domRect.top,\r\n left: domRect.left,\r\n scaleX: domRect.width / end.width,\r\n scaleY: domRect.height / end.height,\r\n width: end.width,\r\n height: end.height\r\n };\r\n\r\n // Check if we need to animate opacity\r\n opacity = current.opts.zoomOpacity;\r\n\r\n if (opacity == \"auto\") {\r\n opacity = Math.abs(current.width / current.height - end.width / end.height) > 0.1;\r\n }\r\n\r\n if (opacity) {\r\n end.opacity = 0;\r\n }\r\n\r\n $.fancybox.setTranslate($content, start);\r\n\r\n forceRedraw($content);\r\n\r\n $.fancybox.animate($content, end, duration, done);\r\n\r\n return true;\r\n }\r\n\r\n if (effect && duration) {\r\n $.fancybox.animate(\r\n current.$slide.addClass(\"fancybox-slide--previous\").removeClass(\"fancybox-slide--current\"),\r\n \"fancybox-animated fancybox-fx-\" + effect,\r\n duration,\r\n done\r\n );\r\n } else {\r\n // If skip animation\r\n if (e === true) {\r\n setTimeout(done, duration);\r\n } else {\r\n done();\r\n }\r\n }\r\n\r\n return true;\r\n },\r\n\r\n // Final adjustments after removing the instance\r\n // =============================================\r\n\r\n cleanUp: function (e) {\r\n var self = this,\r\n instance,\r\n $focus = self.current.opts.$orig,\r\n x,\r\n y;\r\n\r\n self.current.$slide.trigger(\"onReset\");\r\n\r\n self.$refs.container.empty().remove();\r\n\r\n self.trigger(\"afterClose\", e);\r\n\r\n // Place back focus\r\n if (!!self.current.opts.backFocus) {\r\n if (!$focus || !$focus.length || !$focus.is(\":visible\")) {\r\n $focus = self.$trigger;\r\n }\r\n\r\n if ($focus && $focus.length) {\r\n x = window.scrollX;\r\n y = window.scrollY;\r\n\r\n $focus.trigger(\"focus\");\r\n\r\n $(\"html, body\")\r\n .scrollTop(y)\r\n .scrollLeft(x);\r\n }\r\n }\r\n\r\n self.current = null;\r\n\r\n // Check if there are other instances\r\n instance = $.fancybox.getInstance();\r\n\r\n if (instance) {\r\n instance.activate();\r\n } else {\r\n $(\"body\").removeClass(\"fancybox-active compensate-for-scrollbar\");\r\n\r\n $(\"#fancybox-style-noscroll\").remove();\r\n }\r\n },\r\n\r\n // Call callback and trigger an event\r\n // ==================================\r\n\r\n trigger: function (name, slide) {\r\n var args = Array.prototype.slice.call(arguments, 1),\r\n self = this,\r\n obj = slide && slide.opts ? slide : self.current,\r\n rez;\r\n\r\n if (obj) {\r\n args.unshift(obj);\r\n } else {\r\n obj = self;\r\n }\r\n\r\n args.unshift(self);\r\n\r\n if ($.isFunction(obj.opts[name])) {\r\n rez = obj.opts[name].apply(obj, args);\r\n }\r\n\r\n if (rez === false) {\r\n return rez;\r\n }\r\n\r\n if (name === \"afterClose\" || !self.$refs) {\r\n $D.trigger(name + \".fb\", args);\r\n } else {\r\n self.$refs.container.trigger(name + \".fb\", args);\r\n }\r\n },\r\n\r\n // Update infobar values, navigation button states and reveal caption\r\n // ==================================================================\r\n\r\n updateControls: function () {\r\n var self = this,\r\n current = self.current,\r\n index = current.index,\r\n $container = self.$refs.container,\r\n $caption = self.$refs.caption,\r\n caption = current.opts.caption;\r\n\r\n // Recalculate content dimensions\r\n current.$slide.trigger(\"refresh\");\r\n\r\n // Set caption\r\n if (caption && caption.length) {\r\n self.$caption = $caption;\r\n\r\n $caption\r\n .children()\r\n .eq(0)\r\n .html(caption);\r\n } else {\r\n self.$caption = null;\r\n }\r\n\r\n if (!self.hasHiddenControls && !self.isIdle) {\r\n self.showControls();\r\n }\r\n\r\n // Update info and navigation elements\r\n $container.find(\"[data-fancybox-count]\").html(self.group.length);\r\n $container.find(\"[data-fancybox-index]\").html(index + 1);\r\n\r\n $container.find(\"[data-fancybox-prev]\").prop(\"disabled\", !current.opts.loop && index <= 0);\r\n $container.find(\"[data-fancybox-next]\").prop(\"disabled\", !current.opts.loop && index >= self.group.length - 1);\r\n\r\n if (current.type === \"image\") {\r\n // Re-enable buttons; update download button source\r\n $container\r\n .find(\"[data-fancybox-zoom]\")\r\n .show()\r\n .end()\r\n .find(\"[data-fancybox-download]\")\r\n .attr(\"href\", current.opts.image.src || current.src)\r\n .show();\r\n } else if (current.opts.toolbar) {\r\n $container.find(\"[data-fancybox-download],[data-fancybox-zoom]\").hide();\r\n }\r\n\r\n // Make sure focus is not on disabled button/element\r\n if ($(document.activeElement).is(\":hidden,[disabled]\")) {\r\n self.$refs.container.trigger(\"focus\");\r\n }\r\n },\r\n\r\n // Hide toolbar and caption\r\n // ========================\r\n\r\n hideControls: function (andCaption) {\r\n var self = this,\r\n arr = [\"infobar\", \"toolbar\", \"nav\"];\r\n\r\n if (andCaption || !self.current.opts.preventCaptionOverlap) {\r\n arr.push(\"caption\");\r\n }\r\n\r\n this.$refs.container.removeClass(\r\n arr\r\n .map(function (i) {\r\n return \"fancybox-show-\" + i;\r\n })\r\n .join(\" \")\r\n );\r\n\r\n this.hasHiddenControls = true;\r\n },\r\n\r\n showControls: function () {\r\n var self = this,\r\n opts = self.current ? self.current.opts : self.opts,\r\n $container = self.$refs.container;\r\n\r\n self.hasHiddenControls = false;\r\n self.idleSecondsCounter = 0;\r\n\r\n $container\r\n .toggleClass(\"fancybox-show-toolbar\", !!(opts.toolbar && opts.buttons))\r\n .toggleClass(\"fancybox-show-infobar\", !!(opts.infobar && self.group.length > 1))\r\n .toggleClass(\"fancybox-show-caption\", !!self.$caption)\r\n .toggleClass(\"fancybox-show-nav\", !!(opts.arrows && self.group.length > 1))\r\n .toggleClass(\"fancybox-is-modal\", !!opts.modal);\r\n },\r\n\r\n // Toggle toolbar and caption\r\n // ==========================\r\n\r\n toggleControls: function () {\r\n if (this.hasHiddenControls) {\r\n this.showControls();\r\n } else {\r\n this.hideControls();\r\n }\r\n }\r\n });\r\n\r\n $.fancybox = {\r\n version: \"3.5.7\",\r\n defaults: defaults,\r\n\r\n // Get current instance and execute a command.\r\n //\r\n // Examples of usage:\r\n //\r\n // $instance = $.fancybox.getInstance();\r\n // $.fancybox.getInstance().jumpTo( 1 );\r\n // $.fancybox.getInstance( 'jumpTo', 1 );\r\n // $.fancybox.getInstance( function() {\r\n // console.info( this.currIndex );\r\n // });\r\n // ======================================================\r\n\r\n getInstance: function (command) {\r\n var instance = $('.fancybox-container:not(\".fancybox-is-closing\"):last').data(\"FancyBox\"),\r\n args = Array.prototype.slice.call(arguments, 1);\r\n\r\n if (instance instanceof FancyBox) {\r\n if ($.type(command) === \"string\") {\r\n instance[command].apply(instance, args);\r\n } else if ($.type(command) === \"function\") {\r\n command.apply(instance, args);\r\n }\r\n\r\n return instance;\r\n }\r\n\r\n return false;\r\n },\r\n\r\n // Create new instance\r\n // ===================\r\n\r\n open: function (items, opts, index) {\r\n return new FancyBox(items, opts, index);\r\n },\r\n\r\n // Close current or all instances\r\n // ==============================\r\n\r\n close: function (all) {\r\n var instance = this.getInstance();\r\n\r\n if (instance) {\r\n instance.close();\r\n\r\n // Try to find and close next instance\r\n if (all === true) {\r\n this.close(all);\r\n }\r\n }\r\n },\r\n\r\n // Close all instances and unbind all events\r\n // =========================================\r\n\r\n destroy: function () {\r\n this.close(true);\r\n\r\n $D.add(\"body\").off(\"click.fb-start\", \"**\");\r\n },\r\n\r\n // Try to detect mobile devices\r\n // ============================\r\n\r\n isMobile: /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),\r\n\r\n // Detect if 'translate3d' support is available\r\n // ============================================\r\n\r\n use3d: (function () {\r\n var div = document.createElement(\"div\");\r\n\r\n return (\r\n window.getComputedStyle &&\r\n window.getComputedStyle(div) &&\r\n window.getComputedStyle(div).getPropertyValue(\"transform\") &&\r\n !(document.documentMode && document.documentMode < 11)\r\n );\r\n })(),\r\n\r\n // Helper function to get current visual state of an element\r\n // returns array[ top, left, horizontal-scale, vertical-scale, opacity ]\r\n // =====================================================================\r\n\r\n getTranslate: function ($el) {\r\n var domRect;\r\n\r\n if (!$el || !$el.length) {\r\n return false;\r\n }\r\n\r\n domRect = $el[0].getBoundingClientRect();\r\n\r\n return {\r\n top: domRect.top || 0,\r\n left: domRect.left || 0,\r\n width: domRect.width,\r\n height: domRect.height,\r\n opacity: parseFloat($el.css(\"opacity\"))\r\n };\r\n },\r\n\r\n // Shortcut for setting \"translate3d\" properties for element\r\n // Can set be used to set opacity, too\r\n // ========================================================\r\n\r\n setTranslate: function ($el, props) {\r\n var str = \"\",\r\n css = {};\r\n\r\n if (!$el || !props) {\r\n return;\r\n }\r\n\r\n if (props.left !== undefined || props.top !== undefined) {\r\n str =\r\n (props.left === undefined ? $el.position().left : props.left) +\r\n \"px, \" +\r\n (props.top === undefined ? $el.position().top : props.top) +\r\n \"px\";\r\n\r\n if (this.use3d) {\r\n str = \"translate3d(\" + str + \", 0px)\";\r\n } else {\r\n str = \"translate(\" + str + \")\";\r\n }\r\n }\r\n\r\n if (props.scaleX !== undefined && props.scaleY !== undefined) {\r\n str += \" scale(\" + props.scaleX + \", \" + props.scaleY + \")\";\r\n } else if (props.scaleX !== undefined) {\r\n str += \" scaleX(\" + props.scaleX + \")\";\r\n }\r\n\r\n if (str.length) {\r\n css.transform = str;\r\n }\r\n\r\n if (props.opacity !== undefined) {\r\n css.opacity = props.opacity;\r\n }\r\n\r\n if (props.width !== undefined) {\r\n css.width = props.width;\r\n }\r\n\r\n if (props.height !== undefined) {\r\n css.height = props.height;\r\n }\r\n\r\n return $el.css(css);\r\n },\r\n\r\n // Simple CSS transition handler\r\n // =============================\r\n\r\n animate: function ($el, to, duration, callback, leaveAnimationName) {\r\n var self = this,\r\n from;\r\n\r\n if ($.isFunction(duration)) {\r\n callback = duration;\r\n duration = null;\r\n }\r\n\r\n self.stop($el);\r\n\r\n from = self.getTranslate($el);\r\n\r\n $el.on(transitionEnd, function (e) {\r\n // Skip events from child elements and z-index change\r\n if (e && e.originalEvent && (!$el.is(e.originalEvent.target) || e.originalEvent.propertyName == \"z-index\")) {\r\n return;\r\n }\r\n\r\n self.stop($el);\r\n\r\n if ($.isNumeric(duration)) {\r\n $el.css(\"transition-duration\", \"\");\r\n }\r\n\r\n if ($.isPlainObject(to)) {\r\n if (to.scaleX !== undefined && to.scaleY !== undefined) {\r\n self.setTranslate($el, {\r\n top: to.top,\r\n left: to.left,\r\n width: from.width * to.scaleX,\r\n height: from.height * to.scaleY,\r\n scaleX: 1,\r\n scaleY: 1\r\n });\r\n }\r\n } else if (leaveAnimationName !== true) {\r\n $el.removeClass(to);\r\n }\r\n\r\n if ($.isFunction(callback)) {\r\n callback(e);\r\n }\r\n });\r\n\r\n if ($.isNumeric(duration)) {\r\n $el.css(\"transition-duration\", duration + \"ms\");\r\n }\r\n\r\n // Start animation by changing CSS properties or class name\r\n if ($.isPlainObject(to)) {\r\n if (to.scaleX !== undefined && to.scaleY !== undefined) {\r\n delete to.width;\r\n delete to.height;\r\n\r\n if ($el.parent().hasClass(\"fancybox-slide--image\")) {\r\n $el.parent().addClass(\"fancybox-is-scaling\");\r\n }\r\n }\r\n\r\n $.fancybox.setTranslate($el, to);\r\n } else {\r\n $el.addClass(to);\r\n }\r\n\r\n // Make sure that `transitionend` callback gets fired\r\n $el.data(\r\n \"timer\",\r\n setTimeout(function () {\r\n $el.trigger(transitionEnd);\r\n }, duration + 33)\r\n );\r\n },\r\n\r\n stop: function ($el, callCallback) {\r\n if ($el && $el.length) {\r\n clearTimeout($el.data(\"timer\"));\r\n\r\n if (callCallback) {\r\n $el.trigger(transitionEnd);\r\n }\r\n\r\n $el.off(transitionEnd).css(\"transition-duration\", \"\");\r\n\r\n $el.parent().removeClass(\"fancybox-is-scaling\");\r\n }\r\n }\r\n };\r\n\r\n // Default click handler for \"fancyboxed\" links\r\n // ============================================\r\n\r\n function _run(e, opts) {\r\n var items = [],\r\n index = 0,\r\n $target,\r\n value,\r\n instance;\r\n\r\n // Avoid opening multiple times\r\n if (e && e.isDefaultPrevented()) {\r\n return;\r\n }\r\n\r\n e.preventDefault();\r\n\r\n opts = opts || {};\r\n\r\n if (e && e.data) {\r\n opts = mergeOpts(e.data.options, opts);\r\n }\r\n\r\n $target = opts.$target || $(e.currentTarget).trigger(\"blur\");\r\n instance = $.fancybox.getInstance();\r\n\r\n if (instance && instance.$trigger && instance.$trigger.is($target)) {\r\n return;\r\n }\r\n\r\n if (opts.selector) {\r\n items = $(opts.selector);\r\n } else {\r\n // Get all related items and find index for clicked one\r\n value = $target.attr(\"data-fancybox\") || \"\";\r\n\r\n if (value) {\r\n items = e.data ? e.data.items : [];\r\n items = items.length ? items.filter('[data-fancybox=\"' + value + '\"]') : $('[data-fancybox=\"' + value + '\"]');\r\n } else {\r\n items = [$target];\r\n }\r\n }\r\n\r\n index = $(items).index($target);\r\n\r\n // Sometimes current item can not be found\r\n if (index < 0) {\r\n index = 0;\r\n }\r\n\r\n instance = $.fancybox.open(items, opts, index);\r\n\r\n // Save last active element\r\n instance.$trigger = $target;\r\n }\r\n\r\n // Create a jQuery plugin\r\n // ======================\r\n\r\n $.fn.fancybox = function (options) {\r\n var selector;\r\n\r\n options = options || {};\r\n selector = options.selector || false;\r\n\r\n if (selector) {\r\n // Use body element instead of document so it executes first\r\n $(\"body\")\r\n .off(\"click.fb-start\", selector)\r\n .on(\"click.fb-start\", selector, {\r\n options: options\r\n }, _run);\r\n } else {\r\n this.off(\"click.fb-start\").on(\r\n \"click.fb-start\", {\r\n items: this,\r\n options: options\r\n },\r\n _run\r\n );\r\n }\r\n\r\n return this;\r\n };\r\n\r\n // Self initializing plugin for all elements having `data-fancybox` attribute\r\n // ==========================================================================\r\n\r\n $D.on(\"click.fb-start\", \"[data-fancybox]\", _run);\r\n\r\n // Enable \"trigger elements\"\r\n // =========================\r\n\r\n $D.on(\"click.fb-start\", \"[data-fancybox-trigger]\", function (e) {\r\n $('[data-fancybox=\"' + $(this).attr(\"data-fancybox-trigger\") + '\"]')\r\n .eq($(this).attr(\"data-fancybox-index\") || 0)\r\n .trigger(\"click.fb-start\", {\r\n $trigger: $(this)\r\n });\r\n });\r\n\r\n // Track focus event for better accessibility styling\r\n // ==================================================\r\n (function () {\r\n var buttonStr = \".fancybox-button\",\r\n focusStr = \"fancybox-focus\",\r\n $pressed = null;\r\n\r\n $D.on(\"mousedown mouseup focus blur\", buttonStr, function (e) {\r\n switch (e.type) {\r\n case \"mousedown\":\r\n $pressed = $(this);\r\n break;\r\n case \"mouseup\":\r\n $pressed = null;\r\n break;\r\n case \"focusin\":\r\n $(buttonStr).removeClass(focusStr);\r\n\r\n if (!$(this).is($pressed) && !$(this).is(\"[disabled]\")) {\r\n $(this).addClass(focusStr);\r\n }\r\n break;\r\n case \"focusout\":\r\n $(buttonStr).removeClass(focusStr);\r\n break;\r\n }\r\n });\r\n })();\r\n})(window, document, jQuery);\n// ==========================================================================\r\n//\r\n// Media\r\n// Adds additional media type support\r\n//\r\n// ==========================================================================\r\n(function ($) {\r\n \"use strict\";\r\n\r\n // Object containing properties for each media type\r\n var defaults = {\r\n youtube: {\r\n matcher: /(youtube\\.com|youtu\\.be|youtube\\-nocookie\\.com)\\/(watch\\?(.*&)?v=|v\\/|u\\/|embed\\/?)?(videoseries\\?list=(.*)|[\\w-]{11}|\\?listType=(.*)&list=(.*))(.*)/i,\r\n params: {\r\n autoplay: 1,\r\n autohide: 1,\r\n fs: 1,\r\n rel: 0,\r\n hd: 1,\r\n wmode: \"transparent\",\r\n enablejsapi: 1,\r\n html5: 1\r\n },\r\n paramPlace: 8,\r\n type: \"iframe\",\r\n url: \"https://www.youtube-nocookie.com/embed/$4\",\r\n thumb: \"https://img.youtube.com/vi/$4/hqdefault.jpg\"\r\n },\r\n\r\n vimeo: {\r\n matcher: /^.+vimeo.com\\/(.*\\/)?([\\d]+)(.*)?/,\r\n params: {\r\n autoplay: 1,\r\n hd: 1,\r\n show_title: 1,\r\n show_byline: 1,\r\n show_portrait: 0,\r\n fullscreen: 1\r\n },\r\n paramPlace: 3,\r\n type: \"iframe\",\r\n url: \"//player.vimeo.com/video/$2\"\r\n },\r\n\r\n instagram: {\r\n matcher: /(instagr\\.am|instagram\\.com)\\/p\\/([a-zA-Z0-9_\\-]+)\\/?/i,\r\n type: \"image\",\r\n url: \"//$1/p/$2/media/?size=l\"\r\n },\r\n\r\n // Examples:\r\n // http://maps.google.com/?ll=48.857995,2.294297&spn=0.007666,0.021136&t=m&z=16\r\n // https://www.google.com/maps/@37.7852006,-122.4146355,14.65z\r\n // https://www.google.com/maps/@52.2111123,2.9237542,6.61z?hl=en\r\n // https://www.google.com/maps/place/Googleplex/@37.4220041,-122.0833494,17z/data=!4m5!3m4!1s0x0:0x6c296c66619367e0!8m2!3d37.4219998!4d-122.0840572\r\n gmap_place: {\r\n matcher: /(maps\\.)?google\\.([a-z]{2,3}(\\.[a-z]{2})?)\\/(((maps\\/(place\\/(.*)\\/)?\\@(.*),(\\d+.?\\d+?)z))|(\\?ll=))(.*)?/i,\r\n type: \"iframe\",\r\n url: function (rez) {\r\n return (\r\n \"//maps.google.\" +\r\n rez[2] +\r\n \"/?ll=\" +\r\n (rez[9] ? rez[9] + \"&z=\" + Math.floor(rez[10]) + (rez[12] ? rez[12].replace(/^\\//, \"&\") : \"\") : rez[12] + \"\").replace(/\\?/, \"&\") +\r\n \"&output=\" +\r\n (rez[12] && rez[12].indexOf(\"layer=c\") > 0 ? \"svembed\" : \"embed\")\r\n );\r\n }\r\n },\r\n\r\n // Examples:\r\n // https://www.google.com/maps/search/Empire+State+Building/\r\n // https://www.google.com/maps/search/?api=1&query=centurylink+field\r\n // https://www.google.com/maps/search/?api=1&query=47.5951518,-122.3316393\r\n gmap_search: {\r\n matcher: /(maps\\.)?google\\.([a-z]{2,3}(\\.[a-z]{2})?)\\/(maps\\/search\\/)(.*)/i,\r\n type: \"iframe\",\r\n url: function (rez) {\r\n return \"//maps.google.\" + rez[2] + \"/maps?q=\" + rez[5].replace(\"query=\", \"q=\").replace(\"api=1\", \"\") + \"&output=embed\";\r\n }\r\n }\r\n };\r\n\r\n // Formats matching url to final form\r\n var format = function (url, rez, params) {\r\n if (!url) {\r\n return;\r\n }\r\n\r\n params = params || \"\";\r\n\r\n if ($.type(params) === \"object\") {\r\n params = $.param(params, true);\r\n }\r\n\r\n $.each(rez, function (key, value) {\r\n url = url.replace(\"$\" + key, value || \"\");\r\n });\r\n\r\n if (params.length) {\r\n url += (url.indexOf(\"?\") > 0 ? \"&\" : \"?\") + params;\r\n }\r\n\r\n return url;\r\n };\r\n\r\n $(document).on(\"objectNeedsType.fb\", function (e, instance, item) {\r\n var url = item.src || \"\",\r\n type = false,\r\n media,\r\n thumb,\r\n rez,\r\n params,\r\n urlParams,\r\n paramObj,\r\n provider;\r\n\r\n media = $.extend(true, {}, defaults, item.opts.media);\r\n\r\n // Look for any matching media type\r\n $.each(media, function (providerName, providerOpts) {\r\n rez = url.match(providerOpts.matcher);\r\n\r\n if (!rez) {\r\n return;\r\n }\r\n\r\n type = providerOpts.type;\r\n provider = providerName;\r\n paramObj = {};\r\n\r\n if (providerOpts.paramPlace && rez[providerOpts.paramPlace]) {\r\n urlParams = rez[providerOpts.paramPlace];\r\n\r\n if (urlParams[0] == \"?\") {\r\n urlParams = urlParams.substring(1);\r\n }\r\n\r\n urlParams = urlParams.split(\"&\");\r\n\r\n for (var m = 0; m < urlParams.length; ++m) {\r\n var p = urlParams[m].split(\"=\", 2);\r\n\r\n if (p.length == 2) {\r\n paramObj[p[0]] = decodeURIComponent(p[1].replace(/\\+/g, \" \"));\r\n }\r\n }\r\n }\r\n\r\n params = $.extend(true, {}, providerOpts.params, item.opts[providerName], paramObj);\r\n\r\n url =\r\n $.type(providerOpts.url) === \"function\" ? providerOpts.url.call(this, rez, params, item) : format(providerOpts.url, rez, params);\r\n\r\n thumb =\r\n $.type(providerOpts.thumb) === \"function\" ? providerOpts.thumb.call(this, rez, params, item) : format(providerOpts.thumb, rez);\r\n\r\n if (providerName === \"youtube\") {\r\n url = url.replace(/&t=((\\d+)m)?(\\d+)s/, function (match, p1, m, s) {\r\n return \"&start=\" + ((m ? parseInt(m, 10) * 60 : 0) + parseInt(s, 10));\r\n });\r\n } else if (providerName === \"vimeo\") {\r\n url = url.replace(\"&%23\", \"#\");\r\n }\r\n\r\n return false;\r\n });\r\n\r\n // If it is found, then change content type and update the url\r\n\r\n if (type) {\r\n if (!item.opts.thumb && !(item.opts.$thumb && item.opts.$thumb.length)) {\r\n item.opts.thumb = thumb;\r\n }\r\n\r\n if (type === \"iframe\") {\r\n item.opts = $.extend(true, item.opts, {\r\n iframe: {\r\n preload: false,\r\n attr: {\r\n scrolling: \"no\"\r\n }\r\n }\r\n });\r\n }\r\n\r\n $.extend(item, {\r\n type: type,\r\n src: url,\r\n origSrc: item.src,\r\n contentSource: provider,\r\n contentType: type === \"image\" ? \"image\" : provider == \"gmap_place\" || provider == \"gmap_search\" ? \"map\" : \"video\"\r\n });\r\n } else if (url) {\r\n item.type = item.opts.defaultType;\r\n }\r\n });\r\n\r\n // Load YouTube/Video API on request to detect when video finished playing\r\n var VideoAPILoader = {\r\n youtube: {\r\n src: \"https://www.youtube.com/iframe_api\",\r\n class: \"YT\",\r\n loading: false,\r\n loaded: false\r\n },\r\n\r\n vimeo: {\r\n src: \"https://player.vimeo.com/api/player.js\",\r\n class: \"Vimeo\",\r\n loading: false,\r\n loaded: false\r\n },\r\n\r\n load: function (vendor) {\r\n var _this = this,\r\n script;\r\n\r\n if (this[vendor].loaded) {\r\n setTimeout(function () {\r\n _this.done(vendor);\r\n });\r\n return;\r\n }\r\n\r\n if (this[vendor].loading) {\r\n return;\r\n }\r\n\r\n this[vendor].loading = true;\r\n\r\n script = document.createElement(\"script\");\r\n script.type = \"text/javascript\";\r\n script.src = this[vendor].src;\r\n\r\n if (vendor === \"youtube\") {\r\n window.onYouTubeIframeAPIReady = function () {\r\n _this[vendor].loaded = true;\r\n _this.done(vendor);\r\n };\r\n } else {\r\n script.onload = function () {\r\n _this[vendor].loaded = true;\r\n _this.done(vendor);\r\n };\r\n }\r\n\r\n document.body.appendChild(script);\r\n },\r\n done: function (vendor) {\r\n var instance, $el, player;\r\n\r\n if (vendor === \"youtube\") {\r\n delete window.onYouTubeIframeAPIReady;\r\n }\r\n\r\n instance = $.fancybox.getInstance();\r\n\r\n if (instance) {\r\n $el = instance.current.$content.find(\"iframe\");\r\n\r\n if (vendor === \"youtube\" && YT !== undefined && YT) {\r\n player = new YT.Player($el.attr(\"id\"), {\r\n events: {\r\n onStateChange: function (e) {\r\n if (e.data == 0) {\r\n instance.next();\r\n }\r\n }\r\n }\r\n });\r\n } else if (vendor === \"vimeo\" && Vimeo !== undefined && Vimeo) {\r\n player = new Vimeo.Player($el);\r\n\r\n player.on(\"ended\", function () {\r\n instance.next();\r\n });\r\n }\r\n }\r\n }\r\n };\r\n\r\n $(document).on({\r\n \"afterShow.fb\": function (e, instance, current) {\r\n if (instance.group.length > 1 && (current.contentSource === \"youtube\" || current.contentSource === \"vimeo\")) {\r\n VideoAPILoader.load(current.contentSource);\r\n }\r\n }\r\n });\r\n})(jQuery);\n// ==========================================================================\r\n//\r\n// Guestures\r\n// Adds touch guestures, handles click and tap events\r\n//\r\n// ==========================================================================\r\n(function (window, document, $) {\r\n \"use strict\";\r\n\r\n var requestAFrame = (function () {\r\n return (\r\n window.requestAnimationFrame ||\r\n window.webkitRequestAnimationFrame ||\r\n window.mozRequestAnimationFrame ||\r\n window.oRequestAnimationFrame ||\r\n // if all else fails, use setTimeout\r\n function (callback) {\r\n return window.setTimeout(callback, 1000 / 60);\r\n }\r\n );\r\n })();\r\n\r\n var cancelAFrame = (function () {\r\n return (\r\n window.cancelAnimationFrame ||\r\n window.webkitCancelAnimationFrame ||\r\n window.mozCancelAnimationFrame ||\r\n window.oCancelAnimationFrame ||\r\n function (id) {\r\n window.clearTimeout(id);\r\n }\r\n );\r\n })();\r\n\r\n var getPointerXY = function (e) {\r\n var result = [];\r\n\r\n e = e.originalEvent || e || window.e;\r\n e = e.touches && e.touches.length ? e.touches : e.changedTouches && e.changedTouches.length ? e.changedTouches : [e];\r\n\r\n for (var key in e) {\r\n if (e[key].pageX) {\r\n result.push({\r\n x: e[key].pageX,\r\n y: e[key].pageY\r\n });\r\n } else if (e[key].clientX) {\r\n result.push({\r\n x: e[key].clientX,\r\n y: e[key].clientY\r\n });\r\n }\r\n }\r\n\r\n return result;\r\n };\r\n\r\n var distance = function (point2, point1, what) {\r\n if (!point1 || !point2) {\r\n return 0;\r\n }\r\n\r\n if (what === \"x\") {\r\n return point2.x - point1.x;\r\n } else if (what === \"y\") {\r\n return point2.y - point1.y;\r\n }\r\n\r\n return Math.sqrt(Math.pow(point2.x - point1.x, 2) + Math.pow(point2.y - point1.y, 2));\r\n };\r\n\r\n var isClickable = function ($el) {\r\n if (\r\n $el.is('a,area,button,[role=\"button\"],input,label,select,summary,textarea,video,audio,iframe') ||\r\n $.isFunction($el.get(0).onclick) ||\r\n $el.data(\"selectable\")\r\n ) {\r\n return true;\r\n }\r\n\r\n // Check for attributes like data-fancybox-next or data-fancybox-close\r\n for (var i = 0, atts = $el[0].attributes, n = atts.length; i < n; i++) {\r\n if (atts[i].nodeName.substr(0, 14) === \"data-fancybox-\") {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n };\r\n\r\n var hasScrollbars = function (el) {\r\n var overflowY = window.getComputedStyle(el)[\"overflow-y\"],\r\n overflowX = window.getComputedStyle(el)[\"overflow-x\"],\r\n vertical = (overflowY === \"scroll\" || overflowY === \"auto\") && el.scrollHeight > el.clientHeight,\r\n horizontal = (overflowX === \"scroll\" || overflowX === \"auto\") && el.scrollWidth > el.clientWidth;\r\n\r\n return vertical || horizontal;\r\n };\r\n\r\n var isScrollable = function ($el) {\r\n var rez = false;\r\n\r\n while (true) {\r\n rez = hasScrollbars($el.get(0));\r\n\r\n if (rez) {\r\n break;\r\n }\r\n\r\n $el = $el.parent();\r\n\r\n if (!$el.length || $el.hasClass(\"fancybox-stage\") || $el.is(\"body\")) {\r\n break;\r\n }\r\n }\r\n\r\n return rez;\r\n };\r\n\r\n var Guestures = function (instance) {\r\n var self = this;\r\n\r\n self.instance = instance;\r\n\r\n self.$bg = instance.$refs.bg;\r\n self.$stage = instance.$refs.stage;\r\n self.$container = instance.$refs.container;\r\n\r\n self.destroy();\r\n\r\n self.$container.on(\"touchstart.fb.touch mousedown.fb.touch\", $.proxy(self, \"ontouchstart\"));\r\n };\r\n\r\n Guestures.prototype.destroy = function () {\r\n var self = this;\r\n\r\n self.$container.off(\".fb.touch\");\r\n\r\n $(document).off(\".fb.touch\");\r\n\r\n if (self.requestId) {\r\n cancelAFrame(self.requestId);\r\n self.requestId = null;\r\n }\r\n\r\n if (self.tapped) {\r\n clearTimeout(self.tapped);\r\n self.tapped = null;\r\n }\r\n };\r\n\r\n Guestures.prototype.ontouchstart = function (e) {\r\n var self = this,\r\n $target = $(e.target),\r\n instance = self.instance,\r\n current = instance.current,\r\n $slide = current.$slide,\r\n $content = current.$content,\r\n isTouchDevice = e.type == \"touchstart\";\r\n\r\n // Do not respond to both (touch and mouse) events\r\n if (isTouchDevice) {\r\n self.$container.off(\"mousedown.fb.touch\");\r\n }\r\n\r\n // Ignore right click\r\n if (e.originalEvent && e.originalEvent.button == 2) {\r\n return;\r\n }\r\n\r\n // Ignore taping on links, buttons, input elements\r\n if (!$slide.length || !$target.length || isClickable($target) || isClickable($target.parent())) {\r\n return;\r\n }\r\n // Ignore clicks on the scrollbar\r\n if (!$target.is(\"img\") && e.originalEvent.clientX > $target[0].clientWidth + $target.offset().left) {\r\n return;\r\n }\r\n\r\n // Ignore clicks while zooming or closing\r\n if (!current || instance.isAnimating || current.$slide.hasClass(\"fancybox-animated\")) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n return;\r\n }\r\n\r\n self.realPoints = self.startPoints = getPointerXY(e);\r\n\r\n if (!self.startPoints.length) {\r\n return;\r\n }\r\n\r\n // Allow other scripts to catch touch event if \"touch\" is set to false\r\n if (current.touch) {\r\n e.stopPropagation();\r\n }\r\n\r\n self.startEvent = e;\r\n\r\n self.canTap = true;\r\n self.$target = $target;\r\n self.$content = $content;\r\n self.opts = current.opts.touch;\r\n\r\n self.isPanning = false;\r\n self.isSwiping = false;\r\n self.isZooming = false;\r\n self.isScrolling = false;\r\n self.canPan = instance.canPan();\r\n\r\n self.startTime = new Date().getTime();\r\n self.distanceX = self.distanceY = self.distance = 0;\r\n\r\n self.canvasWidth = Math.round($slide[0].clientWidth);\r\n self.canvasHeight = Math.round($slide[0].clientHeight);\r\n\r\n self.contentLastPos = null;\r\n self.contentStartPos = $.fancybox.getTranslate(self.$content) || {\r\n top: 0,\r\n left: 0\r\n };\r\n self.sliderStartPos = $.fancybox.getTranslate($slide);\r\n\r\n // Since position will be absolute, but we need to make it relative to the stage\r\n self.stagePos = $.fancybox.getTranslate(instance.$refs.stage);\r\n\r\n self.sliderStartPos.top -= self.stagePos.top;\r\n self.sliderStartPos.left -= self.stagePos.left;\r\n\r\n self.contentStartPos.top -= self.stagePos.top;\r\n self.contentStartPos.left -= self.stagePos.left;\r\n\r\n $(document)\r\n .off(\".fb.touch\")\r\n .on(isTouchDevice ? \"touchend.fb.touch touchcancel.fb.touch\" : \"mouseup.fb.touch mouseleave.fb.touch\", $.proxy(self, \"ontouchend\"))\r\n .on(isTouchDevice ? \"touchmove.fb.touch\" : \"mousemove.fb.touch\", $.proxy(self, \"ontouchmove\"));\r\n\r\n if ($.fancybox.isMobile) {\r\n document.addEventListener(\"scroll\", self.onscroll, true);\r\n }\r\n\r\n // Skip if clicked outside the sliding area\r\n if (!(self.opts || self.canPan) || !($target.is(self.$stage) || self.$stage.find($target).length)) {\r\n if ($target.is(\".fancybox-image\")) {\r\n e.preventDefault();\r\n }\r\n\r\n if (!($.fancybox.isMobile && $target.parents(\".fancybox-caption\").length)) {\r\n return;\r\n }\r\n }\r\n\r\n self.isScrollable = isScrollable($target) || isScrollable($target.parent());\r\n\r\n // Check if element is scrollable and try to prevent default behavior (scrolling)\r\n if (!($.fancybox.isMobile && self.isScrollable)) {\r\n e.preventDefault();\r\n }\r\n\r\n // One finger or mouse click - swipe or pan an image\r\n if (self.startPoints.length === 1 || current.hasError) {\r\n if (self.canPan) {\r\n $.fancybox.stop(self.$content);\r\n\r\n self.isPanning = true;\r\n } else {\r\n self.isSwiping = true;\r\n }\r\n\r\n self.$container.addClass(\"fancybox-is-grabbing\");\r\n }\r\n\r\n // Two fingers - zoom image\r\n if (self.startPoints.length === 2 && current.type === \"image\" && (current.isLoaded || current.$ghost)) {\r\n self.canTap = false;\r\n self.isSwiping = false;\r\n self.isPanning = false;\r\n\r\n self.isZooming = true;\r\n\r\n $.fancybox.stop(self.$content);\r\n\r\n self.centerPointStartX = (self.startPoints[0].x + self.startPoints[1].x) * 0.5 - $(window).scrollLeft();\r\n self.centerPointStartY = (self.startPoints[0].y + self.startPoints[1].y) * 0.5 - $(window).scrollTop();\r\n\r\n self.percentageOfImageAtPinchPointX = (self.centerPointStartX - self.contentStartPos.left) / self.contentStartPos.width;\r\n self.percentageOfImageAtPinchPointY = (self.centerPointStartY - self.contentStartPos.top) / self.contentStartPos.height;\r\n\r\n self.startDistanceBetweenFingers = distance(self.startPoints[0], self.startPoints[1]);\r\n }\r\n };\r\n\r\n Guestures.prototype.onscroll = function (e) {\r\n var self = this;\r\n\r\n self.isScrolling = true;\r\n\r\n document.removeEventListener(\"scroll\", self.onscroll, true);\r\n };\r\n\r\n Guestures.prototype.ontouchmove = function (e) {\r\n var self = this;\r\n\r\n // Make sure user has not released over iframe or disabled element\r\n if (e.originalEvent.buttons !== undefined && e.originalEvent.buttons === 0) {\r\n self.ontouchend(e);\r\n return;\r\n }\r\n\r\n if (self.isScrolling) {\r\n self.canTap = false;\r\n return;\r\n }\r\n\r\n self.newPoints = getPointerXY(e);\r\n\r\n if (!(self.opts || self.canPan) || !self.newPoints.length || !self.newPoints.length) {\r\n return;\r\n }\r\n\r\n if (!(self.isSwiping && self.isSwiping === true)) {\r\n e.preventDefault();\r\n }\r\n\r\n self.distanceX = distance(self.newPoints[0], self.startPoints[0], \"x\");\r\n self.distanceY = distance(self.newPoints[0], self.startPoints[0], \"y\");\r\n\r\n self.distance = distance(self.newPoints[0], self.startPoints[0]);\r\n\r\n // Skip false ontouchmove events (Chrome)\r\n if (self.distance > 0) {\r\n if (self.isSwiping) {\r\n self.onSwipe(e);\r\n } else if (self.isPanning) {\r\n self.onPan();\r\n } else if (self.isZooming) {\r\n self.onZoom();\r\n }\r\n }\r\n };\r\n\r\n Guestures.prototype.onSwipe = function (e) {\r\n var self = this,\r\n instance = self.instance,\r\n swiping = self.isSwiping,\r\n left = self.sliderStartPos.left || 0,\r\n angle;\r\n\r\n // If direction is not yet determined\r\n if (swiping === true) {\r\n // We need at least 10px distance to correctly calculate an angle\r\n if (Math.abs(self.distance) > 10) {\r\n self.canTap = false;\r\n\r\n if (instance.group.length < 2 && self.opts.vertical) {\r\n self.isSwiping = \"y\";\r\n } else if (instance.isDragging || self.opts.vertical === false || (self.opts.vertical === \"auto\" && $(window).width() > 800)) {\r\n self.isSwiping = \"x\";\r\n } else {\r\n angle = Math.abs((Math.atan2(self.distanceY, self.distanceX) * 180) / Math.PI);\r\n\r\n self.isSwiping = angle > 45 && angle < 135 ? \"y\" : \"x\";\r\n }\r\n\r\n if (self.isSwiping === \"y\" && $.fancybox.isMobile && self.isScrollable) {\r\n self.isScrolling = true;\r\n\r\n return;\r\n }\r\n\r\n instance.isDragging = self.isSwiping;\r\n\r\n // Reset points to avoid jumping, because we dropped first swipes to calculate the angle\r\n self.startPoints = self.newPoints;\r\n\r\n $.each(instance.slides, function (index, slide) {\r\n var slidePos, stagePos;\r\n\r\n $.fancybox.stop(slide.$slide);\r\n\r\n slidePos = $.fancybox.getTranslate(slide.$slide);\r\n stagePos = $.fancybox.getTranslate(instance.$refs.stage);\r\n\r\n slide.$slide\r\n .css({\r\n transform: \"\",\r\n opacity: \"\",\r\n \"transition-duration\": \"\"\r\n })\r\n .removeClass(\"fancybox-animated\")\r\n .removeClass(function (index, className) {\r\n return (className.match(/(^|\\s)fancybox-fx-\\S+/g) || []).join(\" \");\r\n });\r\n\r\n if (slide.pos === instance.current.pos) {\r\n self.sliderStartPos.top = slidePos.top - stagePos.top;\r\n self.sliderStartPos.left = slidePos.left - stagePos.left;\r\n }\r\n\r\n $.fancybox.setTranslate(slide.$slide, {\r\n top: slidePos.top - stagePos.top,\r\n left: slidePos.left - stagePos.left\r\n });\r\n });\r\n\r\n // Stop slideshow\r\n if (instance.SlideShow && instance.SlideShow.isActive) {\r\n instance.SlideShow.stop();\r\n }\r\n }\r\n\r\n return;\r\n }\r\n\r\n // Sticky edges\r\n if (swiping == \"x\") {\r\n if (\r\n self.distanceX > 0 &&\r\n (self.instance.group.length < 2 || (self.instance.current.index === 0 && !self.instance.current.opts.loop))\r\n ) {\r\n left = left + Math.pow(self.distanceX, 0.8);\r\n } else if (\r\n self.distanceX < 0 &&\r\n (self.instance.group.length < 2 ||\r\n (self.instance.current.index === self.instance.group.length - 1 && !self.instance.current.opts.loop))\r\n ) {\r\n left = left - Math.pow(-self.distanceX, 0.8);\r\n } else {\r\n left = left + self.distanceX;\r\n }\r\n }\r\n\r\n self.sliderLastPos = {\r\n top: swiping == \"x\" ? 0 : self.sliderStartPos.top + self.distanceY,\r\n left: left\r\n };\r\n\r\n if (self.requestId) {\r\n cancelAFrame(self.requestId);\r\n\r\n self.requestId = null;\r\n }\r\n\r\n self.requestId = requestAFrame(function () {\r\n if (self.sliderLastPos) {\r\n $.each(self.instance.slides, function (index, slide) {\r\n var pos = slide.pos - self.instance.currPos;\r\n\r\n $.fancybox.setTranslate(slide.$slide, {\r\n top: self.sliderLastPos.top,\r\n left: self.sliderLastPos.left + pos * self.canvasWidth + pos * slide.opts.gutter\r\n });\r\n });\r\n\r\n self.$container.addClass(\"fancybox-is-sliding\");\r\n }\r\n });\r\n };\r\n\r\n Guestures.prototype.onPan = function () {\r\n var self = this;\r\n\r\n // Prevent accidental movement (sometimes, when tapping casually, finger can move a bit)\r\n if (distance(self.newPoints[0], self.realPoints[0]) < ($.fancybox.isMobile ? 10 : 5)) {\r\n self.startPoints = self.newPoints;\r\n return;\r\n }\r\n\r\n self.canTap = false;\r\n\r\n self.contentLastPos = self.limitMovement();\r\n\r\n if (self.requestId) {\r\n cancelAFrame(self.requestId);\r\n }\r\n\r\n self.requestId = requestAFrame(function () {\r\n $.fancybox.setTranslate(self.$content, self.contentLastPos);\r\n });\r\n };\r\n\r\n // Make panning sticky to the edges\r\n Guestures.prototype.limitMovement = function () {\r\n var self = this;\r\n\r\n var canvasWidth = self.canvasWidth;\r\n var canvasHeight = self.canvasHeight;\r\n\r\n var distanceX = self.distanceX;\r\n var distanceY = self.distanceY;\r\n\r\n var contentStartPos = self.contentStartPos;\r\n\r\n var currentOffsetX = contentStartPos.left;\r\n var currentOffsetY = contentStartPos.top;\r\n\r\n var currentWidth = contentStartPos.width;\r\n var currentHeight = contentStartPos.height;\r\n\r\n var minTranslateX, minTranslateY, maxTranslateX, maxTranslateY, newOffsetX, newOffsetY;\r\n\r\n if (currentWidth > canvasWidth) {\r\n newOffsetX = currentOffsetX + distanceX;\r\n } else {\r\n newOffsetX = currentOffsetX;\r\n }\r\n\r\n newOffsetY = currentOffsetY + distanceY;\r\n\r\n // Slow down proportionally to traveled distance\r\n minTranslateX = Math.max(0, canvasWidth * 0.5 - currentWidth * 0.5);\r\n minTranslateY = Math.max(0, canvasHeight * 0.5 - currentHeight * 0.5);\r\n\r\n maxTranslateX = Math.min(canvasWidth - currentWidth, canvasWidth * 0.5 - currentWidth * 0.5);\r\n maxTranslateY = Math.min(canvasHeight - currentHeight, canvasHeight * 0.5 - currentHeight * 0.5);\r\n\r\n // ->\r\n if (distanceX > 0 && newOffsetX > minTranslateX) {\r\n newOffsetX = minTranslateX - 1 + Math.pow(-minTranslateX + currentOffsetX + distanceX, 0.8) || 0;\r\n }\r\n\r\n // <-\r\n if (distanceX < 0 && newOffsetX < maxTranslateX) {\r\n newOffsetX = maxTranslateX + 1 - Math.pow(maxTranslateX - currentOffsetX - distanceX, 0.8) || 0;\r\n }\r\n\r\n // \\/\r\n if (distanceY > 0 && newOffsetY > minTranslateY) {\r\n newOffsetY = minTranslateY - 1 + Math.pow(-minTranslateY + currentOffsetY + distanceY, 0.8) || 0;\r\n }\r\n\r\n // /\\\r\n if (distanceY < 0 && newOffsetY < maxTranslateY) {\r\n newOffsetY = maxTranslateY + 1 - Math.pow(maxTranslateY - currentOffsetY - distanceY, 0.8) || 0;\r\n }\r\n\r\n return {\r\n top: newOffsetY,\r\n left: newOffsetX\r\n };\r\n };\r\n\r\n Guestures.prototype.limitPosition = function (newOffsetX, newOffsetY, newWidth, newHeight) {\r\n var self = this;\r\n\r\n var canvasWidth = self.canvasWidth;\r\n var canvasHeight = self.canvasHeight;\r\n\r\n if (newWidth > canvasWidth) {\r\n newOffsetX = newOffsetX > 0 ? 0 : newOffsetX;\r\n newOffsetX = newOffsetX < canvasWidth - newWidth ? canvasWidth - newWidth : newOffsetX;\r\n } else {\r\n // Center horizontally\r\n newOffsetX = Math.max(0, canvasWidth / 2 - newWidth / 2);\r\n }\r\n\r\n if (newHeight > canvasHeight) {\r\n newOffsetY = newOffsetY > 0 ? 0 : newOffsetY;\r\n newOffsetY = newOffsetY < canvasHeight - newHeight ? canvasHeight - newHeight : newOffsetY;\r\n } else {\r\n // Center vertically\r\n newOffsetY = Math.max(0, canvasHeight / 2 - newHeight / 2);\r\n }\r\n\r\n return {\r\n top: newOffsetY,\r\n left: newOffsetX\r\n };\r\n };\r\n\r\n Guestures.prototype.onZoom = function () {\r\n var self = this;\r\n\r\n // Calculate current distance between points to get pinch ratio and new width and height\r\n var contentStartPos = self.contentStartPos;\r\n\r\n var currentWidth = contentStartPos.width;\r\n var currentHeight = contentStartPos.height;\r\n\r\n var currentOffsetX = contentStartPos.left;\r\n var currentOffsetY = contentStartPos.top;\r\n\r\n var endDistanceBetweenFingers = distance(self.newPoints[0], self.newPoints[1]);\r\n\r\n var pinchRatio = endDistanceBetweenFingers / self.startDistanceBetweenFingers;\r\n\r\n var newWidth = Math.floor(currentWidth * pinchRatio);\r\n var newHeight = Math.floor(currentHeight * pinchRatio);\r\n\r\n // This is the translation due to pinch-zooming\r\n var translateFromZoomingX = (currentWidth - newWidth) * self.percentageOfImageAtPinchPointX;\r\n var translateFromZoomingY = (currentHeight - newHeight) * self.percentageOfImageAtPinchPointY;\r\n\r\n // Point between the two touches\r\n var centerPointEndX = (self.newPoints[0].x + self.newPoints[1].x) / 2 - $(window).scrollLeft();\r\n var centerPointEndY = (self.newPoints[0].y + self.newPoints[1].y) / 2 - $(window).scrollTop();\r\n\r\n // And this is the translation due to translation of the centerpoint\r\n // between the two fingers\r\n var translateFromTranslatingX = centerPointEndX - self.centerPointStartX;\r\n var translateFromTranslatingY = centerPointEndY - self.centerPointStartY;\r\n\r\n // The new offset is the old/current one plus the total translation\r\n var newOffsetX = currentOffsetX + (translateFromZoomingX + translateFromTranslatingX);\r\n var newOffsetY = currentOffsetY + (translateFromZoomingY + translateFromTranslatingY);\r\n\r\n var newPos = {\r\n top: newOffsetY,\r\n left: newOffsetX,\r\n scaleX: pinchRatio,\r\n scaleY: pinchRatio\r\n };\r\n\r\n self.canTap = false;\r\n\r\n self.newWidth = newWidth;\r\n self.newHeight = newHeight;\r\n\r\n self.contentLastPos = newPos;\r\n\r\n if (self.requestId) {\r\n cancelAFrame(self.requestId);\r\n }\r\n\r\n self.requestId = requestAFrame(function () {\r\n $.fancybox.setTranslate(self.$content, self.contentLastPos);\r\n });\r\n };\r\n\r\n Guestures.prototype.ontouchend = function (e) {\r\n var self = this;\r\n\r\n var swiping = self.isSwiping;\r\n var panning = self.isPanning;\r\n var zooming = self.isZooming;\r\n var scrolling = self.isScrolling;\r\n\r\n self.endPoints = getPointerXY(e);\r\n self.dMs = Math.max(new Date().getTime() - self.startTime, 1);\r\n\r\n self.$container.removeClass(\"fancybox-is-grabbing\");\r\n\r\n $(document).off(\".fb.touch\");\r\n\r\n document.removeEventListener(\"scroll\", self.onscroll, true);\r\n\r\n if (self.requestId) {\r\n cancelAFrame(self.requestId);\r\n\r\n self.requestId = null;\r\n }\r\n\r\n self.isSwiping = false;\r\n self.isPanning = false;\r\n self.isZooming = false;\r\n self.isScrolling = false;\r\n\r\n self.instance.isDragging = false;\r\n\r\n if (self.canTap) {\r\n return self.onTap(e);\r\n }\r\n\r\n self.speed = 100;\r\n\r\n // Speed in px/ms\r\n self.velocityX = (self.distanceX / self.dMs) * 0.5;\r\n self.velocityY = (self.distanceY / self.dMs) * 0.5;\r\n\r\n if (panning) {\r\n self.endPanning();\r\n } else if (zooming) {\r\n self.endZooming();\r\n } else {\r\n self.endSwiping(swiping, scrolling);\r\n }\r\n\r\n return;\r\n };\r\n\r\n Guestures.prototype.endSwiping = function (swiping, scrolling) {\r\n var self = this,\r\n ret = false,\r\n len = self.instance.group.length,\r\n distanceX = Math.abs(self.distanceX),\r\n canAdvance = swiping == \"x\" && len > 1 && ((self.dMs > 130 && distanceX > 10) || distanceX > 50),\r\n speedX = 300;\r\n\r\n self.sliderLastPos = null;\r\n\r\n // Close if swiped vertically / navigate if horizontally\r\n if (swiping == \"y\" && !scrolling && Math.abs(self.distanceY) > 50) {\r\n // Continue vertical movement\r\n $.fancybox.animate(\r\n self.instance.current.$slide, {\r\n top: self.sliderStartPos.top + self.distanceY + self.velocityY * 150,\r\n opacity: 0\r\n },\r\n 200\r\n );\r\n ret = self.instance.close(true, 250);\r\n } else if (canAdvance && self.distanceX > 0) {\r\n ret = self.instance.previous(speedX);\r\n } else if (canAdvance && self.distanceX < 0) {\r\n ret = self.instance.next(speedX);\r\n }\r\n\r\n if (ret === false && (swiping == \"x\" || swiping == \"y\")) {\r\n self.instance.centerSlide(200);\r\n }\r\n\r\n self.$container.removeClass(\"fancybox-is-sliding\");\r\n };\r\n\r\n // Limit panning from edges\r\n // ========================\r\n Guestures.prototype.endPanning = function () {\r\n var self = this,\r\n newOffsetX,\r\n newOffsetY,\r\n newPos;\r\n\r\n if (!self.contentLastPos) {\r\n return;\r\n }\r\n\r\n if (self.opts.momentum === false || self.dMs > 350) {\r\n newOffsetX = self.contentLastPos.left;\r\n newOffsetY = self.contentLastPos.top;\r\n } else {\r\n // Continue movement\r\n newOffsetX = self.contentLastPos.left + self.velocityX * 500;\r\n newOffsetY = self.contentLastPos.top + self.velocityY * 500;\r\n }\r\n\r\n newPos = self.limitPosition(newOffsetX, newOffsetY, self.contentStartPos.width, self.contentStartPos.height);\r\n\r\n newPos.width = self.contentStartPos.width;\r\n newPos.height = self.contentStartPos.height;\r\n\r\n $.fancybox.animate(self.$content, newPos, 366);\r\n };\r\n\r\n Guestures.prototype.endZooming = function () {\r\n var self = this;\r\n\r\n var current = self.instance.current;\r\n\r\n var newOffsetX, newOffsetY, newPos, reset;\r\n\r\n var newWidth = self.newWidth;\r\n var newHeight = self.newHeight;\r\n\r\n if (!self.contentLastPos) {\r\n return;\r\n }\r\n\r\n newOffsetX = self.contentLastPos.left;\r\n newOffsetY = self.contentLastPos.top;\r\n\r\n reset = {\r\n top: newOffsetY,\r\n left: newOffsetX,\r\n width: newWidth,\r\n height: newHeight,\r\n scaleX: 1,\r\n scaleY: 1\r\n };\r\n\r\n // Reset scalex/scaleY values; this helps for perfomance and does not break animation\r\n $.fancybox.setTranslate(self.$content, reset);\r\n\r\n if (newWidth < self.canvasWidth && newHeight < self.canvasHeight) {\r\n self.instance.scaleToFit(150);\r\n } else if (newWidth > current.width || newHeight > current.height) {\r\n self.instance.scaleToActual(self.centerPointStartX, self.centerPointStartY, 150);\r\n } else {\r\n newPos = self.limitPosition(newOffsetX, newOffsetY, newWidth, newHeight);\r\n\r\n $.fancybox.animate(self.$content, newPos, 150);\r\n }\r\n };\r\n\r\n Guestures.prototype.onTap = function (e) {\r\n var self = this;\r\n var $target = $(e.target);\r\n\r\n var instance = self.instance;\r\n var current = instance.current;\r\n\r\n var endPoints = (e && getPointerXY(e)) || self.startPoints;\r\n\r\n var tapX = endPoints[0] ? endPoints[0].x - $(window).scrollLeft() - self.stagePos.left : 0;\r\n var tapY = endPoints[0] ? endPoints[0].y - $(window).scrollTop() - self.stagePos.top : 0;\r\n\r\n var where;\r\n\r\n var process = function (prefix) {\r\n var action = current.opts[prefix];\r\n\r\n if ($.isFunction(action)) {\r\n action = action.apply(instance, [current, e]);\r\n }\r\n\r\n if (!action) {\r\n return;\r\n }\r\n\r\n switch (action) {\r\n case \"close\":\r\n instance.close(self.startEvent);\r\n\r\n break;\r\n\r\n case \"toggleControls\":\r\n instance.toggleControls();\r\n\r\n break;\r\n\r\n case \"next\":\r\n instance.next();\r\n\r\n break;\r\n\r\n case \"nextOrClose\":\r\n if (instance.group.length > 1) {\r\n instance.next();\r\n } else {\r\n instance.close(self.startEvent);\r\n }\r\n\r\n break;\r\n\r\n case \"zoom\":\r\n if (current.type == \"image\" && (current.isLoaded || current.$ghost)) {\r\n if (instance.canPan()) {\r\n instance.scaleToFit();\r\n } else if (instance.isScaledDown()) {\r\n instance.scaleToActual(tapX, tapY);\r\n } else if (instance.group.length < 2) {\r\n instance.close(self.startEvent);\r\n }\r\n }\r\n\r\n break;\r\n }\r\n };\r\n\r\n // Ignore right click\r\n if (e.originalEvent && e.originalEvent.button == 2) {\r\n return;\r\n }\r\n\r\n // Skip if clicked on the scrollbar\r\n if (!$target.is(\"img\") && tapX > $target[0].clientWidth + $target.offset().left) {\r\n return;\r\n }\r\n\r\n // Check where is clicked\r\n if ($target.is(\".fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-container\")) {\r\n where = \"Outside\";\r\n } else if ($target.is(\".fancybox-slide\")) {\r\n where = \"Slide\";\r\n } else if (\r\n instance.current.$content &&\r\n instance.current.$content\r\n .find($target)\r\n .addBack()\r\n .filter($target).length\r\n ) {\r\n where = \"Content\";\r\n } else {\r\n return;\r\n }\r\n\r\n // Check if this is a double tap\r\n if (self.tapped) {\r\n // Stop previously created single tap\r\n clearTimeout(self.tapped);\r\n self.tapped = null;\r\n\r\n // Skip if distance between taps is too big\r\n if (Math.abs(tapX - self.tapX) > 50 || Math.abs(tapY - self.tapY) > 50) {\r\n return this;\r\n }\r\n\r\n // OK, now we assume that this is a double-tap\r\n process(\"dblclick\" + where);\r\n } else {\r\n // Single tap will be processed if user has not clicked second time within 300ms\r\n // or there is no need to wait for double-tap\r\n self.tapX = tapX;\r\n self.tapY = tapY;\r\n\r\n if (current.opts[\"dblclick\" + where] && current.opts[\"dblclick\" + where] !== current.opts[\"click\" + where]) {\r\n self.tapped = setTimeout(function () {\r\n self.tapped = null;\r\n\r\n if (!instance.isAnimating) {\r\n process(\"click\" + where);\r\n }\r\n }, 500);\r\n } else {\r\n process(\"click\" + where);\r\n }\r\n }\r\n\r\n return this;\r\n };\r\n\r\n $(document)\r\n .on(\"onActivate.fb\", function (e, instance) {\r\n if (instance && !instance.Guestures) {\r\n instance.Guestures = new Guestures(instance);\r\n }\r\n })\r\n .on(\"beforeClose.fb\", function (e, instance) {\r\n if (instance && instance.Guestures) {\r\n instance.Guestures.destroy();\r\n }\r\n });\r\n})(window, document, jQuery);\n// ==========================================================================\r\n//\r\n// SlideShow\r\n// Enables slideshow functionality\r\n//\r\n// Example of usage:\r\n// $.fancybox.getInstance().SlideShow.start()\r\n//\r\n// ==========================================================================\r\n(function (document, $) {\r\n \"use strict\";\r\n\r\n $.extend(true, $.fancybox.defaults, {\r\n btnTpl: {\r\n slideShow: '\"\r\n },\r\n slideShow: {\r\n autoStart: false,\r\n speed: 3000,\r\n progress: true\r\n }\r\n });\r\n\r\n var SlideShow = function (instance) {\r\n this.instance = instance;\r\n this.init();\r\n };\r\n\r\n $.extend(SlideShow.prototype, {\r\n timer: null,\r\n isActive: false,\r\n $button: null,\r\n\r\n init: function () {\r\n var self = this,\r\n instance = self.instance,\r\n opts = instance.group[instance.currIndex].opts.slideShow;\r\n\r\n self.$button = instance.$refs.toolbar.find(\"[data-fancybox-play]\").on(\"click\", function () {\r\n self.toggle();\r\n });\r\n\r\n if (instance.group.length < 2 || !opts) {\r\n self.$button.hide();\r\n } else if (opts.progress) {\r\n self.$progress = $('
').appendTo(instance.$refs.inner);\r\n }\r\n },\r\n\r\n set: function (force) {\r\n var self = this,\r\n instance = self.instance,\r\n current = instance.current;\r\n\r\n // Check if reached last element\r\n if (current && (force === true || current.opts.loop || instance.currIndex < instance.group.length - 1)) {\r\n if (self.isActive && current.contentType !== \"video\") {\r\n if (self.$progress) {\r\n $.fancybox.animate(self.$progress.show(), {\r\n scaleX: 1\r\n }, current.opts.slideShow.speed);\r\n }\r\n\r\n self.timer = setTimeout(function () {\r\n if (!instance.current.opts.loop && instance.current.index == instance.group.length - 1) {\r\n instance.jumpTo(0);\r\n } else {\r\n instance.next();\r\n }\r\n }, current.opts.slideShow.speed);\r\n }\r\n } else {\r\n self.stop();\r\n instance.idleSecondsCounter = 0;\r\n instance.showControls();\r\n }\r\n },\r\n\r\n clear: function () {\r\n var self = this;\r\n\r\n clearTimeout(self.timer);\r\n\r\n self.timer = null;\r\n\r\n if (self.$progress) {\r\n self.$progress.removeAttr(\"style\").hide();\r\n }\r\n },\r\n\r\n start: function () {\r\n var self = this,\r\n current = self.instance.current;\r\n\r\n if (current) {\r\n self.$button\r\n .attr(\"title\", (current.opts.i18n[current.opts.lang] || current.opts.i18n.en).PLAY_STOP)\r\n .removeClass(\"fancybox-button--play\")\r\n .addClass(\"fancybox-button--pause\");\r\n\r\n self.isActive = true;\r\n\r\n if (current.isComplete) {\r\n self.set(true);\r\n }\r\n\r\n self.instance.trigger(\"onSlideShowChange\", true);\r\n }\r\n },\r\n\r\n stop: function () {\r\n var self = this,\r\n current = self.instance.current;\r\n\r\n self.clear();\r\n\r\n self.$button\r\n .attr(\"title\", (current.opts.i18n[current.opts.lang] || current.opts.i18n.en).PLAY_START)\r\n .removeClass(\"fancybox-button--pause\")\r\n .addClass(\"fancybox-button--play\");\r\n\r\n self.isActive = false;\r\n\r\n self.instance.trigger(\"onSlideShowChange\", false);\r\n\r\n if (self.$progress) {\r\n self.$progress.removeAttr(\"style\").hide();\r\n }\r\n },\r\n\r\n toggle: function () {\r\n var self = this;\r\n\r\n if (self.isActive) {\r\n self.stop();\r\n } else {\r\n self.start();\r\n }\r\n }\r\n });\r\n\r\n $(document).on({\r\n \"onInit.fb\": function (e, instance) {\r\n if (instance && !instance.SlideShow) {\r\n instance.SlideShow = new SlideShow(instance);\r\n }\r\n },\r\n\r\n \"beforeShow.fb\": function (e, instance, current, firstRun) {\r\n var SlideShow = instance && instance.SlideShow;\r\n\r\n if (firstRun) {\r\n if (SlideShow && current.opts.slideShow.autoStart) {\r\n SlideShow.start();\r\n }\r\n } else if (SlideShow && SlideShow.isActive) {\r\n SlideShow.clear();\r\n }\r\n },\r\n\r\n \"afterShow.fb\": function (e, instance, current) {\r\n var SlideShow = instance && instance.SlideShow;\r\n\r\n if (SlideShow && SlideShow.isActive) {\r\n SlideShow.set();\r\n }\r\n },\r\n\r\n \"afterKeydown.fb\": function (e, instance, current, keypress, keycode) {\r\n var SlideShow = instance && instance.SlideShow;\r\n\r\n // \"P\" or Spacebar\r\n if (SlideShow && current.opts.slideShow && (keycode === 80 || keycode === 32) && !$(document.activeElement).is(\"button,a,input\")) {\r\n keypress.preventDefault();\r\n\r\n SlideShow.toggle();\r\n }\r\n },\r\n\r\n \"beforeClose.fb onDeactivate.fb\": function (e, instance) {\r\n var SlideShow = instance && instance.SlideShow;\r\n\r\n if (SlideShow) {\r\n SlideShow.stop();\r\n }\r\n }\r\n });\r\n\r\n // Page Visibility API to pause slideshow when window is not active\r\n $(document).on(\"visibilitychange\", function () {\r\n var instance = $.fancybox.getInstance(),\r\n SlideShow = instance && instance.SlideShow;\r\n\r\n if (SlideShow && SlideShow.isActive) {\r\n if (document.hidden) {\r\n SlideShow.clear();\r\n } else {\r\n SlideShow.set();\r\n }\r\n }\r\n });\r\n})(document, jQuery);\n// ==========================================================================\r\n//\r\n// FullScreen\r\n// Adds fullscreen functionality\r\n//\r\n// ==========================================================================\r\n(function (document, $) {\r\n \"use strict\";\r\n\r\n // Collection of methods supported by user browser\r\n var fn = (function () {\r\n var fnMap = [\r\n [\"requestFullscreen\", \"exitFullscreen\", \"fullscreenElement\", \"fullscreenEnabled\", \"fullscreenchange\", \"fullscreenerror\"],\r\n // new WebKit\r\n [\r\n \"webkitRequestFullscreen\",\r\n \"webkitExitFullscreen\",\r\n \"webkitFullscreenElement\",\r\n \"webkitFullscreenEnabled\",\r\n \"webkitfullscreenchange\",\r\n \"webkitfullscreenerror\"\r\n ],\r\n // old WebKit (Safari 5.1)\r\n [\r\n \"webkitRequestFullScreen\",\r\n \"webkitCancelFullScreen\",\r\n \"webkitCurrentFullScreenElement\",\r\n \"webkitCancelFullScreen\",\r\n \"webkitfullscreenchange\",\r\n \"webkitfullscreenerror\"\r\n ],\r\n [\r\n \"mozRequestFullScreen\",\r\n \"mozCancelFullScreen\",\r\n \"mozFullScreenElement\",\r\n \"mozFullScreenEnabled\",\r\n \"mozfullscreenchange\",\r\n \"mozfullscreenerror\"\r\n ],\r\n [\"msRequestFullscreen\", \"msExitFullscreen\", \"msFullscreenElement\", \"msFullscreenEnabled\", \"MSFullscreenChange\", \"MSFullscreenError\"]\r\n ];\r\n\r\n var ret = {};\r\n\r\n for (var i = 0; i < fnMap.length; i++) {\r\n var val = fnMap[i];\r\n\r\n if (val && val[1] in document) {\r\n for (var j = 0; j < val.length; j++) {\r\n ret[fnMap[0][j]] = val[j];\r\n }\r\n\r\n return ret;\r\n }\r\n }\r\n\r\n return false;\r\n })();\r\n\r\n if (fn) {\r\n var FullScreen = {\r\n request: function (elem) {\r\n elem = elem || document.documentElement;\r\n\r\n elem[fn.requestFullscreen](elem.ALLOW_KEYBOARD_INPUT);\r\n },\r\n exit: function () {\r\n document[fn.exitFullscreen]();\r\n },\r\n toggle: function (elem) {\r\n elem = elem || document.documentElement;\r\n\r\n if (this.isFullscreen()) {\r\n this.exit();\r\n } else {\r\n this.request(elem);\r\n }\r\n },\r\n isFullscreen: function () {\r\n return Boolean(document[fn.fullscreenElement]);\r\n },\r\n enabled: function () {\r\n return Boolean(document[fn.fullscreenEnabled]);\r\n }\r\n };\r\n\r\n $.extend(true, $.fancybox.defaults, {\r\n btnTpl: {\r\n fullScreen: '\"\r\n },\r\n fullScreen: {\r\n autoStart: false\r\n }\r\n });\r\n\r\n $(document).on(fn.fullscreenchange, function () {\r\n var isFullscreen = FullScreen.isFullscreen(),\r\n instance = $.fancybox.getInstance();\r\n\r\n if (instance) {\r\n // If image is zooming, then force to stop and reposition properly\r\n if (instance.current && instance.current.type === \"image\" && instance.isAnimating) {\r\n instance.isAnimating = false;\r\n\r\n instance.update(true, true, 0);\r\n\r\n if (!instance.isComplete) {\r\n instance.complete();\r\n }\r\n }\r\n\r\n instance.trigger(\"onFullscreenChange\", isFullscreen);\r\n\r\n instance.$refs.container.toggleClass(\"fancybox-is-fullscreen\", isFullscreen);\r\n\r\n instance.$refs.toolbar\r\n .find(\"[data-fancybox-fullscreen]\")\r\n .toggleClass(\"fancybox-button--fsenter\", !isFullscreen)\r\n .toggleClass(\"fancybox-button--fsexit\", isFullscreen);\r\n }\r\n });\r\n }\r\n\r\n $(document).on({\r\n \"onInit.fb\": function (e, instance) {\r\n var $container;\r\n\r\n if (!fn) {\r\n instance.$refs.toolbar.find(\"[data-fancybox-fullscreen]\").remove();\r\n\r\n return;\r\n }\r\n\r\n if (instance && instance.group[instance.currIndex].opts.fullScreen) {\r\n $container = instance.$refs.container;\r\n\r\n $container.on(\"click.fb-fullscreen\", \"[data-fancybox-fullscreen]\", function (e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n FullScreen.toggle();\r\n });\r\n\r\n if (instance.opts.fullScreen && instance.opts.fullScreen.autoStart === true) {\r\n FullScreen.request();\r\n }\r\n\r\n // Expose API\r\n instance.FullScreen = FullScreen;\r\n } else if (instance) {\r\n instance.$refs.toolbar.find(\"[data-fancybox-fullscreen]\").hide();\r\n }\r\n },\r\n\r\n \"afterKeydown.fb\": function (e, instance, current, keypress, keycode) {\r\n // \"F\"\r\n if (instance && instance.FullScreen && keycode === 70) {\r\n keypress.preventDefault();\r\n\r\n instance.FullScreen.toggle();\r\n }\r\n },\r\n\r\n \"beforeClose.fb\": function (e, instance) {\r\n if (instance && instance.FullScreen && instance.$refs.container.hasClass(\"fancybox-is-fullscreen\")) {\r\n FullScreen.exit();\r\n }\r\n }\r\n });\r\n})(document, jQuery);\n// ==========================================================================\r\n//\r\n// Thumbs\r\n// Displays thumbnails in a grid\r\n//\r\n// ==========================================================================\r\n(function (document, $) {\r\n \"use strict\";\r\n\r\n var CLASS = \"fancybox-thumbs\",\r\n CLASS_ACTIVE = CLASS + \"-active\";\r\n\r\n // Make sure there are default values\r\n $.fancybox.defaults = $.extend(\r\n true, {\r\n btnTpl: {\r\n thumbs: '\"\r\n },\r\n thumbs: {\r\n autoStart: false, // Display thumbnails on opening\r\n hideOnClose: true, // Hide thumbnail grid when closing animation starts\r\n parentEl: \".fancybox-container\", // Container is injected into this element\r\n axis: \"y\" // Vertical (y) or horizontal (x) scrolling\r\n }\r\n },\r\n $.fancybox.defaults\r\n );\r\n\r\n var FancyThumbs = function (instance) {\r\n this.init(instance);\r\n };\r\n\r\n $.extend(FancyThumbs.prototype, {\r\n $button: null,\r\n $grid: null,\r\n $list: null,\r\n isVisible: false,\r\n isActive: false,\r\n\r\n init: function (instance) {\r\n var self = this,\r\n group = instance.group,\r\n enabled = 0;\r\n\r\n self.instance = instance;\r\n self.opts = group[instance.currIndex].opts.thumbs;\r\n\r\n instance.Thumbs = self;\r\n\r\n self.$button = instance.$refs.toolbar.find(\"[data-fancybox-thumbs]\");\r\n\r\n // Enable thumbs if at least two group items have thumbnails\r\n for (var i = 0, len = group.length; i < len; i++) {\r\n if (group[i].thumb) {\r\n enabled++;\r\n }\r\n\r\n if (enabled > 1) {\r\n break;\r\n }\r\n }\r\n\r\n if (enabled > 1 && !!self.opts) {\r\n self.$button.removeAttr(\"style\").on(\"click\", function () {\r\n self.toggle();\r\n });\r\n\r\n self.isActive = true;\r\n } else {\r\n self.$button.hide();\r\n }\r\n },\r\n\r\n create: function () {\r\n var self = this,\r\n instance = self.instance,\r\n parentEl = self.opts.parentEl,\r\n list = [],\r\n src;\r\n\r\n if (!self.$grid) {\r\n // Create main element\r\n self.$grid = $('
').appendTo(\r\n instance.$refs.container\r\n .find(parentEl)\r\n .addBack()\r\n .filter(parentEl)\r\n );\r\n\r\n // Add \"click\" event that performs gallery navigation\r\n self.$grid.on(\"click\", \"a\", function () {\r\n instance.jumpTo($(this).attr(\"data-index\"));\r\n });\r\n }\r\n\r\n // Build the list\r\n if (!self.$list) {\r\n self.$list = $('
').appendTo(self.$grid);\r\n }\r\n\r\n $.each(instance.group, function (i, item) {\r\n src = item.thumb;\r\n\r\n if (!src && item.type === \"image\") {\r\n src = item.src;\r\n }\r\n\r\n list.push(\r\n '\"\r\n );\r\n });\r\n\r\n self.$list[0].innerHTML = list.join(\"\");\r\n\r\n if (self.opts.axis === \"x\") {\r\n // Set fixed width for list element to enable horizontal scrolling\r\n self.$list.width(\r\n parseInt(self.$grid.css(\"padding-right\"), 10) +\r\n instance.group.length *\r\n self.$list\r\n .children()\r\n .eq(0)\r\n .outerWidth(true)\r\n );\r\n }\r\n },\r\n\r\n focus: function (duration) {\r\n var self = this,\r\n $list = self.$list,\r\n $grid = self.$grid,\r\n thumb,\r\n thumbPos;\r\n\r\n if (!self.instance.current) {\r\n return;\r\n }\r\n\r\n thumb = $list\r\n .children()\r\n .removeClass(CLASS_ACTIVE)\r\n .filter('[data-index=\"' + self.instance.current.index + '\"]')\r\n .addClass(CLASS_ACTIVE);\r\n\r\n thumbPos = thumb.position();\r\n\r\n // Check if need to scroll to make current thumb visible\r\n if (self.opts.axis === \"y\" && (thumbPos.top < 0 || thumbPos.top > $list.height() - thumb.outerHeight())) {\r\n $list.stop().animate({\r\n scrollTop: $list.scrollTop() + thumbPos.top\r\n },\r\n duration\r\n );\r\n } else if (\r\n self.opts.axis === \"x\" &&\r\n (thumbPos.left < $grid.scrollLeft() || thumbPos.left > $grid.scrollLeft() + ($grid.width() - thumb.outerWidth()))\r\n ) {\r\n $list\r\n .parent()\r\n .stop()\r\n .animate({\r\n scrollLeft: thumbPos.left\r\n },\r\n duration\r\n );\r\n }\r\n },\r\n\r\n update: function () {\r\n var that = this;\r\n that.instance.$refs.container.toggleClass(\"fancybox-show-thumbs\", this.isVisible);\r\n\r\n if (that.isVisible) {\r\n if (!that.$grid) {\r\n that.create();\r\n }\r\n\r\n that.instance.trigger(\"onThumbsShow\");\r\n\r\n that.focus(0);\r\n } else if (that.$grid) {\r\n that.instance.trigger(\"onThumbsHide\");\r\n }\r\n\r\n // Update content position\r\n that.instance.update();\r\n },\r\n\r\n hide: function () {\r\n this.isVisible = false;\r\n this.update();\r\n },\r\n\r\n show: function () {\r\n this.isVisible = true;\r\n this.update();\r\n },\r\n\r\n toggle: function () {\r\n this.isVisible = !this.isVisible;\r\n this.update();\r\n }\r\n });\r\n\r\n $(document).on({\r\n \"onInit.fb\": function (e, instance) {\r\n var Thumbs;\r\n\r\n if (instance && !instance.Thumbs) {\r\n Thumbs = new FancyThumbs(instance);\r\n\r\n if (Thumbs.isActive && Thumbs.opts.autoStart === true) {\r\n Thumbs.show();\r\n }\r\n }\r\n },\r\n\r\n \"beforeShow.fb\": function (e, instance, item, firstRun) {\r\n var Thumbs = instance && instance.Thumbs;\r\n\r\n if (Thumbs && Thumbs.isVisible) {\r\n Thumbs.focus(firstRun ? 0 : 250);\r\n }\r\n },\r\n\r\n \"afterKeydown.fb\": function (e, instance, current, keypress, keycode) {\r\n var Thumbs = instance && instance.Thumbs;\r\n\r\n // \"G\"\r\n if (Thumbs && Thumbs.isActive && keycode === 71) {\r\n keypress.preventDefault();\r\n\r\n Thumbs.toggle();\r\n }\r\n },\r\n\r\n \"beforeClose.fb\": function (e, instance) {\r\n var Thumbs = instance && instance.Thumbs;\r\n\r\n if (Thumbs && Thumbs.isVisible && Thumbs.opts.hideOnClose !== false) {\r\n Thumbs.$grid.hide();\r\n }\r\n }\r\n });\r\n})(document, jQuery);\n//// ==========================================================================\r\n//\r\n// Share\r\n// Displays simple form for sharing current url\r\n//\r\n// ==========================================================================\r\n(function (document, $) {\r\n \"use strict\";\r\n\r\n $.extend(true, $.fancybox.defaults, {\r\n btnTpl: {\r\n share: '\"\r\n },\r\n share: {\r\n url: function (instance, item) {\r\n return (\r\n (!instance.currentHash && !(item.type === \"inline\" || item.type === \"html\") ? item.origSrc || item.src : false) || window.location\r\n );\r\n },\r\n tpl: '
' +\r\n \"

{{SHARE}}

\" +\r\n \"

\" +\r\n '' +\r\n '' +\r\n \"Facebook\" +\r\n \"\" +\r\n '' +\r\n '' +\r\n \"Twitter\" +\r\n \"\" +\r\n '' +\r\n '' +\r\n \"Pinterest\" +\r\n \"\" +\r\n \"

\" +\r\n '

' +\r\n \"
\"\r\n }\r\n });\r\n\r\n function escapeHtml(string) {\r\n var entityMap = {\r\n \"&\": \"&\",\r\n \"<\": \"<\",\r\n \">\": \">\",\r\n '\"': \""\",\r\n \"'\": \"'\",\r\n \"/\": \"/\",\r\n \"`\": \"`\",\r\n \"=\": \"=\"\r\n };\r\n\r\n return String(string).replace(/[&<>\"'`=\\/]/g, function (s) {\r\n return entityMap[s];\r\n });\r\n }\r\n\r\n $(document).on(\"click\", \"[data-fancybox-share]\", function () {\r\n var instance = $.fancybox.getInstance(),\r\n current = instance.current || null,\r\n url,\r\n tpl;\r\n\r\n if (!current) {\r\n return;\r\n }\r\n\r\n if ($.type(current.opts.share.url) === \"function\") {\r\n url = current.opts.share.url.apply(current, [instance, current]);\r\n }\r\n\r\n tpl = current.opts.share.tpl\r\n .replace(/\\{\\{media\\}\\}/g, current.type === \"image\" ? encodeURIComponent(current.src) : \"\")\r\n .replace(/\\{\\{url\\}\\}/g, encodeURIComponent(url))\r\n .replace(/\\{\\{url_raw\\}\\}/g, escapeHtml(url))\r\n .replace(/\\{\\{descr\\}\\}/g, instance.$caption ? encodeURIComponent(instance.$caption.text()) : \"\");\r\n\r\n $.fancybox.open({\r\n src: instance.translate(instance, tpl),\r\n type: \"html\",\r\n opts: {\r\n touch: false,\r\n animationEffect: false,\r\n afterLoad: function (shareInstance, shareCurrent) {\r\n // Close self if parent instance is closing\r\n instance.$refs.container.one(\"beforeClose.fb\", function () {\r\n shareInstance.close(null, 0);\r\n });\r\n\r\n // Opening links in a popup window\r\n shareCurrent.$content.find(\".fancybox-share__button\").click(function () {\r\n window.open(this.href, \"Share\", \"width=550, height=450\");\r\n return false;\r\n });\r\n },\r\n mobile: {\r\n autoFocus: false\r\n }\r\n }\r\n });\r\n });\r\n})(document, jQuery);\n// ==========================================================================\r\n//\r\n// Hash\r\n// Enables linking to each modal\r\n//\r\n// ==========================================================================\r\n(function (window, document, $) {\r\n \"use strict\";\r\n\r\n // Simple $.escapeSelector polyfill (for jQuery prior v3)\r\n if (!$.escapeSelector) {\r\n $.escapeSelector = function (sel) {\r\n var rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g;\r\n var fcssescape = function (ch, asCodePoint) {\r\n if (asCodePoint) {\r\n // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\r\n if (ch === \"\\0\") {\r\n return \"\\uFFFD\";\r\n }\r\n\r\n // Control characters and (dependent upon position) numbers get escaped as code points\r\n return ch.slice(0, -1) + \"\\\\\" + ch.charCodeAt(ch.length - 1).toString(16) + \" \";\r\n }\r\n\r\n // Other potentially-special ASCII characters get backslash-escaped\r\n return \"\\\\\" + ch;\r\n };\r\n\r\n return (sel + \"\").replace(rcssescape, fcssescape);\r\n };\r\n }\r\n\r\n // Get info about gallery name and current index from url\r\n function parseUrl() {\r\n var hash = window.location.hash.substr(1),\r\n rez = hash.split(\"-\"),\r\n index = rez.length > 1 && /^\\+?\\d+$/.test(rez[rez.length - 1]) ? parseInt(rez.pop(-1), 10) || 1 : 1,\r\n gallery = rez.join(\"-\");\r\n\r\n return {\r\n hash: hash,\r\n /* Index is starting from 1 */\r\n index: index < 1 ? 1 : index,\r\n gallery: gallery\r\n };\r\n }\r\n\r\n // Trigger click evnt on links to open new fancyBox instance\r\n function triggerFromUrl(url) {\r\n if (url.gallery !== \"\") {\r\n // If we can find element matching 'data-fancybox' atribute,\r\n // then triggering click event should start fancyBox\r\n $(\"[data-fancybox='\" + $.escapeSelector(url.gallery) + \"']\")\r\n .eq(url.index - 1)\r\n .focus()\r\n .trigger(\"click.fb-start\");\r\n }\r\n }\r\n\r\n // Get gallery name from current instance\r\n function getGalleryID(instance) {\r\n var opts, ret;\r\n\r\n if (!instance) {\r\n return false;\r\n }\r\n\r\n opts = instance.current ? instance.current.opts : instance.opts;\r\n ret = opts.hash || (opts.$orig ? opts.$orig.data(\"fancybox\") || opts.$orig.data(\"fancybox-trigger\") : \"\");\r\n\r\n return ret === \"\" ? false : ret;\r\n }\r\n\r\n // Start when DOM becomes ready\r\n $(function () {\r\n // Check if user has disabled this module\r\n if ($.fancybox.defaults.hash === false) {\r\n return;\r\n }\r\n\r\n // Update hash when opening/closing fancyBox\r\n $(document).on({\r\n \"onInit.fb\": function (e, instance) {\r\n var url, gallery;\r\n\r\n if (instance.group[instance.currIndex].opts.hash === false) {\r\n return;\r\n }\r\n\r\n url = parseUrl();\r\n gallery = getGalleryID(instance);\r\n\r\n // Make sure gallery start index matches index from hash\r\n if (gallery && url.gallery && gallery == url.gallery) {\r\n instance.currIndex = url.index - 1;\r\n }\r\n },\r\n\r\n \"beforeShow.fb\": function (e, instance, current, firstRun) {\r\n var gallery;\r\n\r\n if (!current || current.opts.hash === false) {\r\n return;\r\n }\r\n\r\n // Check if need to update window hash\r\n gallery = getGalleryID(instance);\r\n\r\n if (!gallery) {\r\n return;\r\n }\r\n\r\n // Variable containing last hash value set by fancyBox\r\n // It will be used to determine if fancyBox needs to close after hash change is detected\r\n instance.currentHash = gallery + (instance.group.length > 1 ? \"-\" + (current.index + 1) : \"\");\r\n\r\n // If current hash is the same (this instance most likely is opened by hashchange), then do nothing\r\n if (window.location.hash === \"#\" + instance.currentHash) {\r\n return;\r\n }\r\n\r\n if (firstRun && !instance.origHash) {\r\n instance.origHash = window.location.hash;\r\n }\r\n\r\n if (instance.hashTimer) {\r\n clearTimeout(instance.hashTimer);\r\n }\r\n\r\n // Update hash\r\n instance.hashTimer = setTimeout(function () {\r\n if (\"replaceState\" in window.history) {\r\n window.history[firstRun ? \"pushState\" : \"replaceState\"]({},\r\n document.title,\r\n window.location.pathname + window.location.search + \"#\" + instance.currentHash\r\n );\r\n\r\n if (firstRun) {\r\n instance.hasCreatedHistory = true;\r\n }\r\n } else {\r\n window.location.hash = instance.currentHash;\r\n }\r\n\r\n instance.hashTimer = null;\r\n }, 300);\r\n },\r\n\r\n \"beforeClose.fb\": function (e, instance, current) {\r\n if (!current || current.opts.hash === false) {\r\n return;\r\n }\r\n\r\n clearTimeout(instance.hashTimer);\r\n\r\n // Goto previous history entry\r\n if (instance.currentHash && instance.hasCreatedHistory) {\r\n window.history.back();\r\n } else if (instance.currentHash) {\r\n if (\"replaceState\" in window.history) {\r\n window.history.replaceState({}, document.title, window.location.pathname + window.location.search + (instance.origHash || \"\"));\r\n } else {\r\n window.location.hash = instance.origHash;\r\n }\r\n }\r\n\r\n instance.currentHash = null;\r\n }\r\n });\r\n\r\n // Check if need to start/close after url has changed\r\n $(window).on(\"hashchange.fb\", function () {\r\n var url = parseUrl(),\r\n fb = null;\r\n\r\n // Find last fancyBox instance that has \"hash\"\r\n $.each(\r\n $(\".fancybox-container\")\r\n .get()\r\n .reverse(),\r\n function (index, value) {\r\n var tmp = $(value).data(\"FancyBox\");\r\n\r\n if (tmp && tmp.currentHash) {\r\n fb = tmp;\r\n return false;\r\n }\r\n }\r\n );\r\n\r\n if (fb) {\r\n // Now, compare hash values\r\n if (fb.currentHash !== url.gallery + \"-\" + url.index && !(url.index === 1 && fb.currentHash == url.gallery)) {\r\n fb.currentHash = null;\r\n\r\n fb.close();\r\n }\r\n } else if (url.gallery !== \"\") {\r\n triggerFromUrl(url);\r\n }\r\n });\r\n\r\n // Check current hash and trigger click event on matching element to start fancyBox, if needed\r\n setTimeout(function () {\r\n if (!$.fancybox.getInstance()) {\r\n triggerFromUrl(parseUrl());\r\n }\r\n }, 50);\r\n });\r\n})(window, document, jQuery);\n// ==========================================================================\r\n//\r\n// Wheel\r\n// Basic mouse weheel support for gallery navigation\r\n//\r\n// ==========================================================================\r\n(function (document, $) {\r\n \"use strict\";\r\n\r\n var prevTime = new Date().getTime();\r\n\r\n $(document).on({\r\n \"onInit.fb\": function (e, instance, current) {\r\n instance.$refs.stage.on(\"mousewheel DOMMouseScroll wheel MozMousePixelScroll\", function (e) {\r\n var current = instance.current,\r\n currTime = new Date().getTime();\r\n\r\n if (instance.group.length < 2 || current.opts.wheel === false || (current.opts.wheel === \"auto\" && current.type !== \"image\")) {\r\n return;\r\n }\r\n\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n if (current.$slide.hasClass(\"fancybox-animated\")) {\r\n return;\r\n }\r\n\r\n e = e.originalEvent || e;\r\n\r\n if (currTime - prevTime < 250) {\r\n return;\r\n }\r\n\r\n prevTime = currTime;\r\n\r\n instance[(-e.deltaY || -e.deltaX || e.wheelDelta || -e.detail) < 0 ? \"next\" : \"previous\"]();\r\n });\r\n }\r\n });\r\n})(document, jQuery);","import Macy from \"macy\";\n\nexport function init(container = document) {\n const components = Array.from(container.querySelectorAll(\"[data-component='article-grid']\"));\n \n if (!components.length) return;\n\n components.forEach(component => {\n const grid = component.querySelector(\"[data-selector='grid']\");\n if (!grid) return;\n\n const identifier = grid.getAttribute('data-identifier');\n\n const filters = component.querySelector(\"[data-selector='filters']\");\n const filterElements = filters?.elements ? Array.from(filters.elements) : [];\n const loadMore = component.querySelector(\"[data-selector='load-more']\");\n const loadMoreButton = loadMore?.querySelector(\"button\");\n const emptyState = component.querySelector('[data-selector=\"empty\"]');\n const clearFiltersButton = component.querySelector('[data-selector=\"clear-filters\"]');\n\n let masonryInstance; \n initializeGrid(grid);\n \n if (filters) {\n filterElements.forEach((input) => {\n input.addEventListener('input', () => {\n const { name, value } = input;\n loadArticles(grid, { [name]: value });\n })\n });\n }\n\n if (loadMore && loadMoreButton) {\n loadMoreButton.addEventListener('click', (event) => {\n const nextPage = grid.getAttribute('data-next-page');\n if (nextPage !== null) loadArticles(grid, { page: nextPage });\n });\n }\n\n if (clearFiltersButton) clearFiltersButton.addEventListener('click', () => {\n clearFilters();\n })\n\n function initializeGrid() {\n if (!masonryInstance) {\n masonryInstance = new Macy({\n container: grid,\n mobileFirst: true,\n columns: 1,\n trueOrder: true,\n margin: {\n x: 20,\n y: 30,\n },\n breakAt: {\n 576: {\n columns: 2\n },\n 992: {\n columns: 3\n }\n }\n })\n }\n\n grid.style.display = grid.childElementCount > 0 ? 'block' : 'none';\n if (emptyState) emptyState.style.display = grid.childElementCount > 0 ? 'none' : 'flex';\n\n if (loadMore) {\n loadMore.style.display = grid.getAttribute('data-next-page') !== null ? 'flex' : 'none';\n }\n\n masonryInstance.recalculate(true);\n }\n\n function clearFilters() {\n loadArticles(grid, {});\n filterElements.forEach(element => {\n element.value = '';\n element.dispatchEvent(new Event('change'));\n });\n }\n\n async function loadArticles(grid, parameters) {\n loadMoreButton.setAttribute('disabled', '');\n const currentURL = new URL(window.location.href);\n const { requestURL } = setLocationState(parameters, currentURL);\n \n try {\n const response = await fetch(requestURL);\n const { parsedGrid, parsedHTML } = await parseResponse(response, identifier);\n \n if (!grid || !parsedGrid || !parsedHTML) return;\n \n if (!requestURL.searchParams.get('page')) removeAllChildNodes(grid);\n grid.insertAdjacentHTML('beforeend', parsedHTML);\n\n const nextPage = parsedGrid.getAttribute('data-next-page');\n nextPage !== null ? grid.setAttribute('data-next-page', nextPage) : grid.removeAttribute('data-next-page');\n \n const numberOfArticles = parsedGrid.getAttribute('data-articles') ?? 0;\n grid.setAttribute('data-articles', numberOfArticles);\n \n initializeGrid(grid);\n loadMoreButton.removeAttribute('disabled');\n } catch (error) {\n console.error('There has been a problem with the fetch operation:', error)\n }\n }\n })\n}\n\nasync function parseResponse(response, identifier) {\n const html = await response.text();\n const parser = new DOMParser();\n const parsedDocument = parser.parseFromString(html, 'text/html');\n\n let selector = `[data-selector=\"grid\"]`;\n if (identifier) selector += `[data-identifier=\"${identifier}\"]`;\n\n const parsedGrid = parsedDocument.querySelector(selector);\n\n return {\n parsedGrid,\n parsedHTML: parsedGrid?.innerHTML,\n };\n}\n\nfunction setLocationState(parameters, currentURL) {\n if (Object.keys(parameters).length) {\n for (const [key, value] of Object.entries(parameters)) {\n if (value === '') currentURL.searchParams.delete(key);\n else currentURL.searchParams.set(key, value);\n }\n } else {\n currentURL.search = '';\n }\n\n const requestURL = new URL(currentURL);\n\n currentURL.searchParams.delete('page');\n history.replaceState(null, '', currentURL);\n\n return {\n requestURL,\n };\n}\n\nfunction removeAllChildNodes(parent) {\n if (!parent) return;\n while (parent.firstChild) {\n parent.removeChild(parent.firstChild);\n }\n}\n","/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target = {}, src = {}) {\n Object.keys(src).forEach((key) => {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nconst ssrDocument = {\n body: {},\n addEventListener() { },\n removeEventListener() { },\n activeElement: {\n blur() { },\n nodeName: '',\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() { },\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() { },\n getElementsByTagName() {\n return [];\n },\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState() { },\n pushState() { },\n go() { },\n back() { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() { },\n removeEventListener() { },\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n },\n };\n },\n Image() { },\n Date() { },\n screen: {},\n setTimeout() { },\n clearTimeout() { },\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","/**\n * Dom7 4.0.4\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2022, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: January 11, 2022\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n const proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get() {\n return proto;\n },\n\n set(value) {\n proto.__proto__ = value;\n }\n\n });\n}\n\nclass Dom7 extends Array {\n constructor(items) {\n if (typeof items === 'number') {\n super(items);\n } else {\n super(...(items || []));\n makeReactive(this);\n }\n }\n\n}\n\nfunction arrayFlat(arr = []) {\n const res = [];\n arr.forEach(el => {\n if (Array.isArray(el)) {\n res.push(...arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n const uniqueArray = [];\n\n for (let i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, (match, group) => group.toUpperCase());\n}\n\n// eslint-disable-next-line\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n const a = [];\n const res = context.querySelectorAll(selector);\n\n for (let i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n const window = getWindow();\n const document = getDocument();\n let arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n const html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf(' c.split(' ')));\n this.forEach(el => {\n el.classList.add(...classNames);\n });\n return this;\n}\n\nfunction removeClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n el.classList.remove(...classNames);\n });\n return this;\n}\n\nfunction toggleClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n classNames.forEach(className => {\n el.classList.toggle(className);\n });\n });\n}\n\nfunction hasClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n return arrayFilter(this, el => {\n return classNames.filter(className => el.classList.contains(className)).length > 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (const attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (const propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n let el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n const dataKey = el.getAttribute(`data-${key}`);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n const el = this[0];\n if (!el) return undefined;\n const dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (const dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (let i = 0; i < el.attributes.length; i += 1) {\n const attr = el.attributes[i];\n\n if (attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;\n }\n }\n }\n\n for (const key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n const el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n const values = [];\n\n for (let i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {\n for (let j = 0; j < el.options.length; j += 1) {\n el.options[j].selected = value.indexOf(el.options[j].value) >= 0;\n }\n } else {\n el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? `${duration}ms` : duration;\n }\n\n return this;\n}\n\nfunction on(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n const target = e.target;\n if (!target) return;\n const eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n const parents = $(target).parents(); // eslint-disable-line\n\n for (let k = 0; k < parents.length; k += 1) {\n if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n const eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n const events = eventType.split(' ');\n let j;\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];\n el.dom7LiveListeners[event].push({\n listener,\n proxyListener: handleLiveEvent\n });\n el.addEventListener(event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n const events = eventType.split(' ');\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let handlers;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (let k = handlers.length - 1; k >= 0; k -= 1) {\n const handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once(...args) {\n const dom = this;\n let [eventName, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventName, listener, capture] = args;\n targetSelector = undefined;\n }\n\n function onceHandler(...eventArgs) {\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger(...args) {\n const window = getWindow();\n const events = args[0].split(' ');\n const eventData = args[1];\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n\n if (window.CustomEvent) {\n const evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n const window = getWindow();\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n const window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n const window = getWindow();\n let i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (const prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach((el, index) => {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n const result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n let compareWith;\n let i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n let child = this[0];\n let i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n const length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n const returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append(...els) {\n let newChild;\n const document = getDocument();\n\n for (let k = 0; k < els.length; k += 1) {\n newChild = els[k];\n\n for (let i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (let j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n const document = getDocument();\n let i;\n let j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n const before = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (let j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n const after = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (let j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n const nextEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(next).is(selector)) nextEls.push(next);\n } else nextEls.push(next);\n\n el = next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n const el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n const prevEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(prev).is(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n\n el = prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n let parent = this[i].parentNode; // eslint-disable-line\n\n while (parent) {\n if (selector) {\n if ($(parent).is(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n\n parent = parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n let closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n const foundElements = [];\n\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n const children = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].children;\n\n for (let j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add(...els) {\n const dom = this;\n let i;\n let j;\n\n for (i = 0; i < els.length; i += 1) {\n const toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.nodeType === 1) {\n for (let j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\n// eslint-disable-next-line\n\nfunction scrollTo(...args) {\n const window = getWindow();\n let [left, top, duration, easing, callback] = args;\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n [left, top, duration, callback, easing] = args;\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n const el = this;\n let currentTop;\n let currentLeft;\n let maxTop;\n let maxLeft;\n let newTop;\n let newLeft;\n let scrollTop; // eslint-disable-line\n\n let scrollLeft; // eslint-disable-line\n\n let animateTop = top > 0 || top === 0;\n let animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n let startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time = new Date().getTime()) {\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n let done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop(...args) {\n let [top, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [top, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft(...args) {\n let [left, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [left, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\n// eslint-disable-next-line\n\nfunction animate(initialProps, initialParams) {\n const window = getWindow();\n const els = this;\n const a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n\n easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n\n stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n\n done(complete) {\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n const que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n\n animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n const elements = []; // Define & Cache Initials & Units\n\n a.elements.each((el, index) => {\n let initialFullValue;\n let initialValue;\n let unit;\n let finalValue;\n let finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(prop => {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue,\n initialValue,\n unit,\n finalValue,\n finalFullValue,\n currentValue: initialValue\n };\n });\n });\n let startTime = null;\n let time;\n let elementsDone = 0;\n let propsDone = 0;\n let done;\n let began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n let progress;\n let easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(element => {\n const el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(prop => {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n const {\n initialValue,\n finalValue,\n unit\n } = el[prop];\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n const currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n let animateInstance;\n\n for (let i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n const els = this;\n\n for (let i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nconst noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler(...args) {\n if (typeof args[0] === 'undefined') {\n for (let i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on(name, ...args);\n }\n\n return eventHandler;\n}\n\nconst click = shortcut('click');\nconst blur = shortcut('blur');\nconst focus = shortcut('focus');\nconst focusin = shortcut('focusin');\nconst focusout = shortcut('focusout');\nconst keyup = shortcut('keyup');\nconst keydown = shortcut('keydown');\nconst keypress = shortcut('keypress');\nconst submit = shortcut('submit');\nconst change = shortcut('change');\nconst mousedown = shortcut('mousedown');\nconst mousemove = shortcut('mousemove');\nconst mouseup = shortcut('mouseup');\nconst mouseenter = shortcut('mouseenter');\nconst mouseleave = shortcut('mouseleave');\nconst mouseout = shortcut('mouseout');\nconst mouseover = shortcut('mouseover');\nconst touchstart = shortcut('touchstart');\nconst touchend = shortcut('touchend');\nconst touchmove = shortcut('touchmove');\nconst resize = shortcut('resize');\nconst scroll = shortcut('scroll');\n\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width };\n","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nconst Methods = {\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n attr,\n removeAttr,\n transform,\n transition,\n on,\n off,\n trigger,\n transitionEnd,\n outerWidth,\n outerHeight,\n styles,\n offset,\n css,\n each,\n html,\n text,\n is,\n index,\n eq,\n append,\n prepend,\n next,\n nextAll,\n prev,\n prevAll,\n parent,\n parents,\n closest,\n find,\n children,\n filter,\n remove\n};\nObject.keys(Methods).forEach(methodName => {\n Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\nexport default $;","import { getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\n\nfunction nextTick(callback, delay = 0) {\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n\n if (!style) {\n style = el.style;\n }\n\n return style;\n}\n\nfunction getTranslate(el, axis = 'x') {\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n\n return curTransform || 0;\n}\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\n\nfunction extend(...args) {\n const to = Object(args[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[i];\n\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n\n return to;\n}\n\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\n\nfunction animateCSSModeScroll({\n swiper,\n targetPosition,\n side\n}) {\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n\n const animate = () => {\n time = new Date().getTime();\n\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n\n animate();\n}\n\nexport { animateCSSModeScroll, deleteProps, nextTick, now, getTranslate, isObject, extend, getComputedStyle, setCSSProperty };","import { getWindow, getDocument } from 'ssr-window';\nlet support;\n\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n passiveListener: function checkPassiveListener() {\n let supportsPassive = false;\n\n try {\n const opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n }\n\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support.js';\nlet deviceCached;\n\nfunction calcDevice({\n userAgent\n} = {}) {\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n } // Android\n\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides = {}) {\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n\n return deviceCached;\n}\n\nexport { getDevice };","import { getWindow } from 'ssr-window';\nlet browser;\n\nfunction calcBrowser() {\n const window = getWindow();\n\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n\n return {\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n}\n\nexport { getBrowser };","/* eslint-disable no-underscore-dangle */\nexport default {\n on(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n\n once(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n\n function onceHandler(...args) {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n\n onAny(handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n\n offAny(handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n\n emit(...args) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n\n};","import updateSize from './updateSize.js';\nimport updateSlides from './updateSlides.js';\nimport updateAutoHeight from './updateAutoHeight.js';\nimport updateSlidesOffset from './updateSlidesOffset.js';\nimport updateSlidesProgress from './updateSlidesProgress.js';\nimport updateProgress from './updateProgress.js';\nimport updateSlidesClasses from './updateSlidesClasses.js';\nimport updateActiveIndex from './updateActiveIndex.js';\nimport updateClickedSlide from './updateClickedSlide.js';\nexport default {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};","export default function updateSize() {\n const swiper = this;\n let width;\n let height;\n const $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { setCSSProperty } from '../../shared/utils.js';\nexport default function updateSlides() {\n const swiper = this;\n\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n } // prettier-ignore\n\n\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n\n const params = swiper.params;\n const {\n $wrapperEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = $wrapperEl.children(`.${swiper.params.slideClass}`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n let offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n\n if (typeof swiperSize === 'undefined') {\n return;\n }\n\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginBottom: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: '',\n marginTop: ''\n }); // reset cssMode offsets\n\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', '');\n }\n\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n\n if (gridEnabled) {\n swiper.grid.initSlides(slidesLength);\n } // Calc slides\n\n\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n const slide = slides.eq(i);\n\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[getDirectionLabel('width')] = ``;\n }\n\n const slideStyles = getComputedStyle(slide[0]);\n const currentTransform = slide[0].style.transform;\n const currentWebKitTransform = slide[0].style.webkitTransform;\n\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide[0];\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (params.setWrapperSize) {\n $wrapperEl.css({\n [getDirectionLabel('width')]: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }).css({\n [key]: `${spaceBetween}px`\n });\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(snap => {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.$el.hasClass(backFaceHiddenClass);\n\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.$el.addClass(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.$el.removeClass(backFaceHiddenClass);\n }\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides.filter(el => parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index)[0];\n }\n\n return swiper.slides.eq(index)[0];\n }; // Find slides currently in view\n\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n (swiper.visibleSlides || $([])).each(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n } // Find new height from highest slide in view\n\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight || newHeight === 0) swiper.$wrapperEl.css('height', `${newHeight}px`);\n}","export default function updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateSlidesProgress(translate = this && this.translate || 0) {\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","export default function updateProgress(translate) {\n const swiper = this;\n\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n\n Object.assign(swiper, {\n progress,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n $wrapperEl,\n activeIndex,\n realIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);\n let activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index=\"${activeIndex}\"]`);\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n let nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass);\n\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n\n let prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass);\n\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}","export default function updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n slidesGrid,\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n } // Normalize slideIndex\n\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n\n return;\n } // Get real index\n\n\n const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n Object.assign(swiper, {\n snapIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateClickedSlide(e) {\n const swiper = this;\n const params = swiper.params;\n const slide = $(e).closest(`.${params.slideClass}`)[0];\n let slideFound = false;\n let slideIndex;\n\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","import getTranslate from './getTranslate.js';\nimport setTranslate from './setTranslate.js';\nimport minTranslate from './minTranslate.js';\nimport maxTranslate from './maxTranslate.js';\nimport translateTo from './translateTo.js';\nexport default {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};","import { getTranslate } from '../../shared/utils.js';\nexport default function getSwiperTranslate(axis = this.isHorizontal() ? 'x' : 'y') {\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n $wrapperEl\n } = swiper;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n let currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n $wrapperEl,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`);\n }\n\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function translateTo(translate = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) {\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","export default function transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step\n}) {\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit(`transition${step}`);\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n\n swiper.emit(`slideChangeTransition${step}`);\n\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}","import slideTo from './slideTo.js';\nimport slideToLoop from './slideToLoop.js';\nimport slideNext from './slideNext.js';\nimport slidePrev from './slidePrev.js';\nimport slideReset from './slideReset.js';\nimport slideToClosest from './slideToClosest.js';\nimport slideToClickedSlide from './slideToClickedSlide.js';\nexport default {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function slideTo(index = 0, speed = this.params.speed, runCallbacks = true, internal, initial) {\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(`The 'index' argument cannot have type other than 'number' or 'string'. [${typeof index}] given.`);\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n const indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n const isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`);\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n const translate = -snapGrid[snapIndex]; // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n } // Update progress\n\n\n swiper.updateProgress(translate);\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n swiper.updateSlidesClasses();\n\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n\n return false;\n }\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._swiperImmediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n\n return true;\n}","export default function slideToLoop(index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n const indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n const isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`);\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n const swiper = this;\n let newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n animating,\n enabled,\n params\n } = swiper;\n if (!enabled) return swiper;\n let perGroup = params.slidesPerGroup;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n params,\n animating,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return swiper;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n\n let prevIndex = 0;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n\n if (params.rewind && swiper.isBeginning) {\n const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed = this.params.speed, runCallbacks = true, internal, threshold = 0.5) {\n const swiper = this;\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import $ from '../../shared/dom.js';\nimport { nextTick } from '../../shared/utils.js';\nexport default function slideToClickedSlide() {\n const swiper = this;\n const {\n params,\n $wrapperEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import loopCreate from './loopCreate.js';\nimport loopFix from './loopFix.js';\nimport loopDestroy from './loopDestroy.js';\nexport default {\n loopCreate,\n loopFix,\n loopDestroy\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loopCreate() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n $wrapperEl\n } = swiper; // Remove duplicated slides\n\n const $selector = $wrapperEl.children().length > 0 ? $($wrapperEl.children()[0].parentNode) : $wrapperEl;\n $selector.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n let slides = $selector.children(`.${params.slideClass}`);\n\n if (params.loopFillGroupWithBlank) {\n const blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankNode = $(document.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`);\n $selector.append(blankNode);\n }\n\n slides = $selector.children(`.${params.slideClass}`);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length && swiper.params.loopedSlidesLimit) {\n swiper.loopedSlides = slides.length;\n }\n\n const prependSlides = [];\n const appendSlides = [];\n slides.each((el, index) => {\n const slide = $(el);\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (let i = 0; i < swiper.loopedSlides; i += 1) {\n const index = i - Math.floor(i / slides.length) * slides.length;\n appendSlides.push(slides.eq(index)[0]);\n prependSlides.unshift(slides.eq(slides.length - index - 1)[0]);\n }\n\n for (let i = 0; i < appendSlides.length; i += 1) {\n $selector.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\n $selector.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n const swiper = this;\n swiper.emit('beforeLoopFix');\n const {\n activeIndex,\n slides,\n loopedSlides,\n allowSlidePrev,\n allowSlideNext,\n snapGrid,\n rtlTranslate: rtl\n } = swiper;\n let newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n const snapTranslate = -snapGrid[activeIndex];\n const diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n const swiper = this;\n const {\n $wrapperEl,\n params,\n slides\n } = swiper;\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js'; // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\n\nfunction closestElement(selector, base = this) {\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n\n if (!found && !el.getRootNode) {\n return null;\n }\n\n return found || __closestFrom(el.getRootNode().host);\n }\n\n return __closestFrom(base);\n}\n\nexport default function onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n const window = getWindow();\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return; // change target el for shadow root component\n\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== ''; // eslint-disable-next-line\n\n const eventPath = event.composedPath ? event.composedPath() : event.path;\n\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n $targetEl = $(eventPath[0]);\n }\n\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot); // use closestElement for shadow root element to get the actual closest for nested shadow root element\n\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, $targetEl[0]) : $targetEl.closest(noSwipingSelector)[0])) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n let preventDefault = true;\n\n if ($targetEl.is(data.focusableElements)) {\n preventDefault = false;\n\n if ($targetEl[0].nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n\n if (document.activeElement && $(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js';\nexport default function onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n return;\n }\n\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n const targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n const pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n const pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n\n if (!swiper.allowTouchMove) {\n if (!$(e.target).is(data.focusableElements)) {\n swiper.allowClick = false;\n }\n\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n\n return;\n }\n\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n\n if (!data.startMoving) {\n return;\n }\n\n swiper.allowClick = false;\n\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop && !params.cssMode) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n let diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../shared/utils.js';\nexport default function onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n\n data.allowTouchCallbacks = false;\n\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n } // Find current slide\n\n\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n } // Find current slide size\n\n\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","export default function onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\n if (swiper.translate === 0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart.js';\nimport onTouchMove from './onTouchMove.js';\nimport onTouchEnd from './onTouchEnd.js';\nimport onResize from './onResize.js';\nimport onClick from './onClick.js';\nimport onScroll from './onScroll.js';\nlet dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n touchEvents,\n el,\n wrapperEl,\n device,\n support\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method; // Touch Events\n\n if (!support.touch) {\n el[domMethod](touchEvents.start, swiper.onTouchStart, false);\n document[domMethod](touchEvents.move, swiper.onTouchMove, capture);\n document[domMethod](touchEvents.end, swiper.onTouchEnd, false);\n } else {\n const passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el[domMethod](touchEvents.start, swiper.onTouchStart, passiveListener);\n el[domMethod](touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture\n } : capture);\n el[domMethod](touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el[domMethod](touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n};\n\nfunction attachEvents() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n support\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n\n if (support.touch && !dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n\n events(swiper, 'on');\n}\n\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\n\nexport default {\n attachEvents,\n detachEvents\n};","import { extend } from '../../shared/utils.js';\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\n\nexport default function setBreakpoint() {\n const swiper = this;\n const {\n activeIndex,\n initialized,\n loopedSlides = 0,\n params,\n $el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasEnabled = params.enabled;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(`${params.containerModifierClass}grid ${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(`${params.containerModifierClass}grid`);\n\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n $el.addClass(`${params.containerModifierClass}grid-column`);\n }\n\n swiper.emitContainerClasses();\n } // Toggle navigation, pagination, scrollbar\n\n\n ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n}","import setBreakpoint from './setBreakpoint.js';\nimport getBreakpoint from './getBreakpoint.js';\nexport default {\n setBreakpoint,\n getBreakpoint\n};","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base = 'window', containerEl) {\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}","import addClasses from './addClasses.js';\nimport removeClasses from './removeClasses.js';\nexport default {\n addClasses,\n removeClasses\n};","function prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\n\nexport default function addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n $el,\n device,\n support\n } = swiper; // prettier-ignore\n\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': !support.touch\n }, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }, {\n 'watch-progress': params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n $el.addClass([...classNames].join(' '));\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n const swiper = this;\n const {\n $el,\n classNames\n } = swiper;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","function checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\n\nexport default {\n checkOverflow\n};","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopedSlidesLimit: true,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","import { extend } from '../shared/utils.js';\nexport default function moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj = {}) {\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}","/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport $ from '../shared/dom.js';\nimport { extend, now, deleteProps } from '../shared/utils.js';\nimport { getSupport } from '../shared/get-support.js';\nimport { getDevice } from '../shared/get-device.js';\nimport { getBrowser } from '../shared/get-browser.js';\nimport Resize from './modules/resize/resize.js';\nimport Observer from './modules/observer/observer.js';\nimport eventsEmitter from './events-emitter.js';\nimport update from './update/index.js';\nimport translate from './translate/index.js';\nimport transition from './transition/index.js';\nimport slide from './slide/index.js';\nimport loop from './loop/index.js';\nimport grabCursor from './grab-cursor/index.js';\nimport events from './events/index.js';\nimport breakpoints from './breakpoints/index.js';\nimport classes from './classes/index.js';\nimport images from './images/index.js';\nimport checkOverflow from './check-overflow/index.js';\nimport defaults from './defaults.js';\nimport moduleExtendParams from './moduleExtendParams.js';\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events,\n breakpoints,\n checkOverflow,\n classes,\n images\n};\nconst extendedDefaults = {};\n\nclass Swiper {\n constructor(...args) {\n let el;\n let params;\n\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n\n if (params.el && $(params.el).length > 1) {\n const swipers = [];\n $(params.el).each(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n }); // eslint-disable-next-line no-constructor-return\n\n return swipers;\n } // Swiper Instance\n\n\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n }); // Extend defaults with modules params\n\n const swiperParams = extend({}, defaults, allModulesParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n\n swiper.$ = $; // Extend Swiper\n\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n const touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n const desktop = ['pointerdown', 'pointermove', 'pointerup'];\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n // eslint-disable-next-line no-constructor-return\n\n\n return swiper;\n }\n\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n swiper.emit('enable');\n }\n\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n\n swiper.emit('disable');\n }\n\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n\n getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.each(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n\n slidesPerViewDynamic(view = 'current', exact = false) {\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\n\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n\n return spv;\n }\n\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n let translated;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n }\n\n changeDirection(newDirection, needUpdate = true) {\n const swiper = this;\n const currentDirection = swiper.params.direction;\n\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n\n swiper.$el.removeClass(`${swiper.params.containerModifierClass}${currentDirection}`).addClass(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n\n changeLanguageDirection(direction) {\n const swiper = this;\n if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n swiper.rtl = direction === 'rtl';\n swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n\n if (swiper.rtl) {\n swiper.$el.addClass(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'rtl';\n } else {\n swiper.$el.removeClass(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'ltr';\n }\n\n swiper.update();\n }\n\n mount(el) {\n const swiper = this;\n if (swiper.mounted) return true; // Find el\n\n const $el = $(el || swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return false;\n }\n\n el.swiper = swiper;\n\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = $(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n res.children = options => $el.children(options);\n\n return res;\n }\n\n if (!$el.children) {\n return $($el).children(getWrapperSelector());\n }\n\n return $el.children(getWrapperSelector());\n }; // Find Wrapper\n\n\n let $wrapperEl = getWrapper();\n\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\n const document = getDocument();\n const wrapper = document.createElement('div');\n $wrapperEl = $(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(`.${swiper.params.slideClass}`).each(slideEl => {\n $wrapperEl.append(slideEl);\n });\n }\n\n Object.assign(swiper, {\n $el,\n el,\n $wrapperEl,\n wrapperEl: $wrapperEl[0],\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box'\n });\n return true;\n }\n\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n\n destroy(deleteInstance = true, cleanStyles = true) {\n const swiper = this;\n const {\n params,\n $el,\n $wrapperEl,\n slides\n } = swiper;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n\n swiper.destroyed = true;\n return null;\n }\n\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n\n static get extendedDefaults() {\n return extendedDefaults;\n }\n\n static get defaults() {\n return defaults;\n }\n\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n }\n\n}\n\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","import setTransition from './setTransition.js';\nimport transitionStart from './transitionStart.js';\nimport transitionEnd from './transitionEnd.js';\nexport default {\n setTransition,\n transitionStart,\n transitionEnd\n};","export default function setTransition(duration, byController) {\n const swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionStart(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionEnd(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}","import setGrabCursor from './setGrabCursor.js';\nimport unsetGrabCursor from './unsetGrabCursor.js';\nexport default {\n setGrabCursor,\n unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n const swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n el.style.cursor = 'move';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n const swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n}","import loadImage from './loadImage.js';\nimport preloadImages from './preloadImages.js';\nexport default {\n loadImage,\n preloadImages\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n const window = getWindow();\n let image;\n\n function onReady() {\n if (callback) callback();\n }\n\n const isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n const swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n\n for (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\n const imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","import { getWindow } from 'ssr-window';\nexport default function Resize({\n swiper,\n on,\n emit\n}) {\n const window = getWindow();\n let observer = null;\n let animationFrame = null;\n\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n animationFrame = window.requestAnimationFrame(() => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(({\n contentBoxSize,\n contentRect,\n target\n }) => {\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n\n const removeObserver = () => {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}","import { getWindow } from 'ssr-window';\nexport default function Observer({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const observers = [];\n const window = getWindow();\n\n const attach = (target, options = {}) => {\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n\n const init = () => {\n if (!swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n const containerParents = swiper.$el.parents();\n\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n } // Observe container\n\n\n attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n };\n\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}","import { getDocument } from 'ssr-window';\nexport default function createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n const document = getDocument();\n\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = swiper.$el.children(`.${checkProps[key]}`)[0];\n\n if (!element) {\n element = document.createElement('div');\n element.className = checkProps[key];\n swiper.$el.append(element);\n }\n\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n\n return params;\n}","import createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nimport $ from '../../shared/dom.js';\nexport default function Navigation({\n swiper,\n extendParams,\n on,\n emit\n}) {\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n navigationDisabledClass: 'swiper-navigation-disabled'\n }\n });\n swiper.navigation = {\n nextEl: null,\n $nextEl: null,\n prevEl: null,\n $prevEl: null\n };\n\n function getEl(el) {\n let $el;\n\n if (el) {\n $el = $(el);\n\n if (swiper.params.uniqueNavElements && typeof el === 'string' && $el.length > 1 && swiper.$el.find(el).length === 1) {\n $el = swiper.$el.find(el);\n }\n }\n\n return $el;\n }\n\n function toggleEl($el, disabled) {\n const params = swiper.params.navigation;\n\n if ($el && $el.length > 0) {\n $el[disabled ? 'addClass' : 'removeClass'](params.disabledClass);\n if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n }\n\n function update() {\n // Update Navigation Buttons\n if (swiper.params.loop) return;\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n toggleEl($prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl($nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n emit('navigationPrev');\n }\n\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n emit('navigationNext');\n }\n\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n const $nextEl = getEl(params.nextEl);\n const $prevEl = getEl(params.prevEl);\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', onNextClick);\n }\n\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', onPrevClick);\n }\n\n Object.assign(swiper.navigation, {\n $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl,\n prevEl: $prevEl && $prevEl[0]\n });\n\n if (!swiper.enabled) {\n if ($nextEl) $nextEl.addClass(params.lockClass);\n if ($prevEl) $prevEl.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n }\n\n on('init', () => {\n if (swiper.params.navigation.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n update();\n }\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($nextEl) {\n $nextEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n\n if ($prevEl) {\n $prevEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n });\n on('click', (_s, e) => {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n const targetEl = e.target;\n\n if (swiper.params.navigation.hideOnClick && !$(targetEl).is($prevEl) && !$(targetEl).is($nextEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let isHidden;\n\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n });\n\n const enable = () => {\n swiper.$el.removeClass(swiper.params.navigation.navigationDisabledClass);\n init();\n update();\n };\n\n const disable = () => {\n swiper.$el.addClass(swiper.params.navigation.navigationDisabledClass);\n destroy();\n };\n\n Object.assign(swiper.navigation, {\n enable,\n disable,\n update,\n init,\n destroy\n });\n}","export default function classesToSelector(classes = '') {\n return `.${classes.trim().replace(/([\\.:!\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}","import $ from '../../shared/dom.js';\nimport classesToSelector from '../../shared/classes-to-selector.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function Pagination({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`,\n paginationDisabledClass: `${pfx}-disabled`\n }\n });\n swiper.pagination = {\n el: null,\n $el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0;\n }\n\n function setSideBullets($bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n $bulletEl[position]().addClass(`${bulletActiveClass}-${position}`)[position]().addClass(`${bulletActiveClass}-${position}-${position}`);\n }\n\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el; // Current/Total\n\n let current;\n const total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n current -= slidesLength - swiper.loopedSlides * 2;\n }\n\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n } // Types\n\n\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n\n if (params.dynamicBullets) {\n bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', `${bulletSize * (params.dynamicMainBullets + 4)}px`);\n\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n dynamicBulletIndex += current - (swiper.previousIndex - swiper.loopedSlides || 0);\n\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n\n bullets.removeClass(['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`).join(' '));\n\n if ($el.length > 1) {\n bullets.each(bullet => {\n const $bullet = $(bullet);\n const bulletIndex = $bullet.index();\n\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(`${params.bulletActiveClass}-main`);\n }\n\n if (bulletIndex === firstIndex) {\n setSideBullets($bullet, 'prev');\n }\n\n if (bulletIndex === lastIndex) {\n setSideBullets($bullet, 'next');\n }\n }\n });\n } else {\n const $bullet = bullets.eq(current);\n const bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n\n if (params.dynamicBullets) {\n const $firstDisplayedBullet = bullets.eq(firstIndex);\n const $lastDisplayedBullet = bullets.eq(lastIndex);\n\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(`${params.bulletActiveClass}-main`);\n }\n\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length) {\n for (let i = params.dynamicMainBullets; i >= 0; i -= 1) {\n bullets.eq(bullets.length - i).addClass(`${params.bulletActiveClass}-main`);\n }\n\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(`${params.bulletActiveClass}-prev`);\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n }\n }\n\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`);\n }\n }\n\n if (params.type === 'fraction') {\n $el.find(classesToSelector(params.currentClass)).text(params.formatFractionCurrent(current + 1));\n $el.find(classesToSelector(params.totalClass)).text(params.formatFractionTotal(total));\n }\n\n if (params.type === 'progressbar') {\n let progressbarDirection;\n\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n\n $el.find(classesToSelector(params.progressbarFillClass)).transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`).transition(swiper.params.speed);\n }\n\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n emit('paginationRender', $el[0]);\n } else {\n emit('paginationUpdate', $el[0]);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el;\n let paginationHTML = '';\n\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.loop && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += `<${params.bulletElement} class=\"${params.bulletClass}\">`;\n }\n }\n\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(classesToSelector(params.bulletClass));\n }\n\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = `` + ' / ' + ``;\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type !== 'custom') {\n emit('paginationRender', swiper.pagination.$el[0]);\n }\n }\n\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let $el = $(params.el);\n if ($el.length === 0) return;\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\n $el = swiper.$el.find(params.el); // check if it belongs to another nested Swiper\n\n if ($el.length > 1) {\n $el = $el.filter(el => {\n if ($(el).parents('.swiper')[0] !== swiper.el) return false;\n return true;\n });\n }\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n $el.addClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', classesToSelector(params.bulletClass), function onClick(e) {\n e.preventDefault();\n let index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n Object.assign(swiper.pagination, {\n $el,\n el: $el[0]\n });\n\n if (!swiper.enabled) {\n $el.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n $el.removeClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (swiper.pagination.bullets && swiper.pagination.bullets.removeClass) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n if (params.clickable) {\n $el.off('click', classesToSelector(params.bulletClass));\n }\n }\n\n on('init', () => {\n if (swiper.params.pagination.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n render();\n update();\n }\n });\n on('activeIndexChange', () => {\n if (swiper.params.loop) {\n update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n if (!swiper.params.loop) {\n update();\n }\n });\n on('slidesLengthChange', () => {\n if (swiper.params.loop) {\n render();\n update();\n }\n });\n on('snapGridLengthChange', () => {\n if (!swiper.params.loop) {\n render();\n update();\n }\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n const {\n $el\n } = swiper.pagination;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n const {\n $el\n } = swiper.pagination;\n\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && $el && $el.length > 0 && !$(targetEl).hasClass(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = $el.hasClass(swiper.params.pagination.hiddenClass);\n\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n\n $el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n });\n\n const enable = () => {\n swiper.$el.removeClass(swiper.params.pagination.paginationDisabledClass);\n\n if (swiper.pagination.$el) {\n swiper.pagination.$el.removeClass(swiper.params.pagination.paginationDisabledClass);\n }\n\n init();\n render();\n update();\n };\n\n const disable = () => {\n swiper.$el.addClass(swiper.params.pagination.paginationDisabledClass);\n\n if (swiper.pagination.$el) {\n swiper.pagination.$el.addClass(swiper.params.pagination.paginationDisabledClass);\n }\n\n destroy();\n };\n\n Object.assign(swiper.pagination, {\n enable,\n disable,\n render,\n update,\n init,\n destroy\n });\n}","import lottie from 'lottie-web'\n\nexport function init() {\n const LOTTIE_CONTAINER = document.querySelector('[hero-lottie]')\n \n if ( !LOTTIE_CONTAINER ) return\n\n lottie.loadAnimation({\n container: LOTTIE_CONTAINER, // the dom element that will contain the animation\n renderer: 'svg',\n loop: true,\n autoplay: true,\n path: '/assets/hero-lottie.json' // the path to the animation json\n });\n}","import Swiper, { Navigation, Pagination } from 'swiper'\n\nexport function init() {\n const GALLERY_ELEMENTS = [...document.querySelectorAll('[data-image-gallery]')]\n\n const toggleNav = ( progress, prevEl, nextEl ) => {\n prevEl.classList[ progress === 0 ? 'add' : 'remove']('disabled') \n nextEl.classList[ progress === 1 ? 'add' : 'remove']('disabled') \n }\n\n const gallerySlides = GALLERY_ELEMENTS.map( el => {\n \n const SLIDER_EL = el.querySelector('[data-image-gallery-slider]')\n const NAV_PREV = el.querySelector('[data-image-gallery-nav-prev]')\n const NAV_NEXT = el.querySelector('[data-image-gallery-nav-next]')\n const PROGRESS_BAR = el.querySelector('[data-image-gallery-progress]')\n const PAGINATION = el.querySelector('[data-image-gallery-pagination]')\n\n const SWIPER = new Swiper(SLIDER_EL, {\n modules: [Navigation, Pagination],\n navigation: {\n prevEl: NAV_PREV,\n nextEl: NAV_NEXT,\n },\n pagination: {\n el: PAGINATION,\n type: 'bullets',\n clickable: true\n },\n on: { init: (instance) => {\n toggleNav( instance.progress, NAV_PREV, NAV_NEXT )\n }}\n })\n\n SWIPER.on('slideChange', ( instance ) => { \n PROGRESS_BAR.style.width = `${instance.progress*101}%`\n toggleNav( instance.progress, NAV_PREV, NAV_NEXT )\n })\n\n return SWIPER\n })\n\n \n}","export function init() {\n const selectComponents = Array.from(\n document.querySelectorAll('[data-component=\"select\"]'),\n );\n if (!selectComponents.length) return;\n\n selectComponents.forEach((component) => {\n const element = component.querySelector('select');\n element?.addEventListener('change', (e) => {\n const value = e.target.value;\n if (value !== undefined) component.setAttribute('data-value', value);\n });\n });\n}\n","import '@fancyapps/fancybox';\n\nimport Rellax from 'rellax';\n\nimport * as header from './header/index';\nimport * as heroLottie from './home-hero-animation/index';\nimport * as articles from './articles/index';\nimport * as imageGalleries from './image-gallery/index';\nimport * as labsMap from './labs-map/index';\nimport * as informationalIcons from './informational-icons/index';\nimport * as select from './select/index';\n\nwindow.rellax = new Rellax('[rellax]');\n\nheader.init()\nheroLottie.init()\narticles.init()\nlabsMap.init()\ninformationalIcons.init()\nimageGalleries.init()\nselect.init()","\nimport Headroom from \"headroom.js\";\n\nexport function init() {\n\n const HEADER = document.querySelector('[site-header]'),\n NAV_TOGGLE = document.querySelector('[nav-menu-toggle]'),\n LABS_TOGGLE = document.querySelector('[labs-toggle]'),\n LABS_LIST = document.querySelector('[labs-list]')\n\n \n if ( ! HEADER ) return\n\n const headroom = new Headroom( HEADER, { offset : 30 }).init()\n\n\n\n if ( ! NAV_TOGGLE ) return\n\n let navActive = false\n\n NAV_TOGGLE.addEventListener('click', toggleNav )\n\n function toggleNav() {\n navActive = !navActive\n HEADER.classList[ navActive ? 'add' : 'remove' ]('mobile-nav-active')\n NAV_TOGGLE.firstElementChild.innerHTML = navActive ? 'Close' : 'Menu'\n }\n \n\n\n if ( ! LABS_TOGGLE || ! LABS_LIST ) return\n\n let mql = window.matchMedia('(max-width: 900px)')\n\n if ( mql.matches ) {\n LABS_TOGGLE.addEventListener('click', () => LABS_TOGGLE.classList[ LABS_TOGGLE.classList.contains('is-active') ? 'remove' : 'add' ]('is-active') )\n } \n else {\n LABS_TOGGLE.addEventListener('mouseenter', () => LABS_TOGGLE.classList.add('is-active') )\n document.body.addEventListener('mousemove', (e) => { \n if ( e.target.closest('[labs-list]') || e.target.closest('[site-header]') ) return\n LABS_TOGGLE.classList.remove('is-active')\n })\n }\n\n}\n","export function init() {\n const LAB_MAPS = [...document.querySelectorAll('[data-labs-map]')]\n LAB_MAPS.forEach(map => {\n\n const LISTED_LABS = [...map.querySelectorAll('[data-listed-lab]')]\n const MARKERS = [...map.querySelectorAll('[data-map-marker]')]\n\n map.addEventListener('mousemove', (e) => {\n const LISTED_MAP = e.target.closest('[data-listed-lab]')\n const MARKER = e.target.closest('[data-map-marker]')\n MARKER\n ? LISTED_LABS.find(lab => lab.dataset.labId === MARKER.dataset.labId)?.classList.add('is-active')\n : LISTED_LABS.forEach(lab => lab.classList.remove('is-active'))\n LISTED_MAP\n ? MARKERS.filter(marker => marker.dataset.labId === LISTED_MAP.dataset.labId).forEach(marker=>marker.classList.add('is-active'))\n : MARKERS.forEach(marker => marker.classList.remove('is-active'))\n \n })\n\n });\n}","\nexport function init() {\n const ICONS = [...document.querySelectorAll('[data-info-icon]')]\n\n if ( ! ICONS.length > 0 ) return \n\n let observer = new IntersectionObserver( entries => {\n entries.forEach( entry => {\n if (entry.isIntersecting ) {\n entry.target.classList.add('is-visible')\n observer.unobserve(entry.target)\n }\n })\n }, {\n threshold: [0.01],\n rootMargin: '-25% 0px',\n })\n\n ICONS.forEach( icon => observer.observe(icon) )\n}","/*!\n * headroom.js v0.12.0 - Give your page some headroom. Hide your header until you need it\n * Copyright (c) 2020 Nick Williams - http://wicky.nillia.ms/headroom.js\n * License: MIT\n */\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 = global || self, global.Headroom = factory());\n}(this, function () { 'use strict';\n\n function isBrowser() {\n return typeof window !== \"undefined\";\n }\n\n /**\n * Used to detect browser support for adding an event listener with options\n * Credit: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener\n */\n function passiveEventsSupported() {\n var supported = false;\n\n try {\n var options = {\n // eslint-disable-next-line getter-return\n get passive() {\n supported = true;\n }\n };\n window.addEventListener(\"test\", options, options);\n window.removeEventListener(\"test\", options, options);\n } catch (err) {\n supported = false;\n }\n\n return supported;\n }\n\n function isSupported() {\n return !!(\n isBrowser() &&\n function() {}.bind &&\n \"classList\" in document.documentElement &&\n Object.assign &&\n Object.keys &&\n requestAnimationFrame\n );\n }\n\n function isDocument(obj) {\n return obj.nodeType === 9; // Node.DOCUMENT_NODE === 9\n }\n\n function isWindow(obj) {\n // `obj === window` or `obj instanceof Window` is not sufficient,\n // as the obj may be the window of an iframe.\n return obj && obj.document && isDocument(obj.document);\n }\n\n function windowScroller(win) {\n var doc = win.document;\n var body = doc.body;\n var html = doc.documentElement;\n\n return {\n /**\n * @see http://james.padolsey.com/javascript/get-document-height-cross-browser/\n * @return {Number} the scroll height of the document in pixels\n */\n scrollHeight: function() {\n return Math.max(\n body.scrollHeight,\n html.scrollHeight,\n body.offsetHeight,\n html.offsetHeight,\n body.clientHeight,\n html.clientHeight\n );\n },\n\n /**\n * @see http://andylangton.co.uk/blog/development/get-viewport-size-width-and-height-javascript\n * @return {Number} the height of the viewport in pixels\n */\n height: function() {\n return win.innerHeight || html.clientHeight || body.clientHeight;\n },\n\n /**\n * Gets the Y scroll position\n * @return {Number} pixels the page has scrolled along the Y-axis\n */\n scrollY: function() {\n if (win.pageYOffset !== undefined) {\n return win.pageYOffset;\n }\n\n return (html || body.parentNode || body).scrollTop;\n }\n };\n }\n\n function elementScroller(element) {\n return {\n /**\n * @return {Number} the scroll height of the element in pixels\n */\n scrollHeight: function() {\n return Math.max(\n element.scrollHeight,\n element.offsetHeight,\n element.clientHeight\n );\n },\n\n /**\n * @return {Number} the height of the element in pixels\n */\n height: function() {\n return Math.max(element.offsetHeight, element.clientHeight);\n },\n\n /**\n * Gets the Y scroll position\n * @return {Number} pixels the element has scrolled along the Y-axis\n */\n scrollY: function() {\n return element.scrollTop;\n }\n };\n }\n\n function createScroller(element) {\n return isWindow(element) ? windowScroller(element) : elementScroller(element);\n }\n\n /**\n * @param element EventTarget\n */\n function trackScroll(element, options, callback) {\n var isPassiveSupported = passiveEventsSupported();\n var rafId;\n var scrolled = false;\n var scroller = createScroller(element);\n var lastScrollY = scroller.scrollY();\n var details = {};\n\n function update() {\n var scrollY = Math.round(scroller.scrollY());\n var height = scroller.height();\n var scrollHeight = scroller.scrollHeight();\n\n // reuse object for less memory churn\n details.scrollY = scrollY;\n details.lastScrollY = lastScrollY;\n details.direction = scrollY > lastScrollY ? \"down\" : \"up\";\n details.distance = Math.abs(scrollY - lastScrollY);\n details.isOutOfBounds = scrollY < 0 || scrollY + height > scrollHeight;\n details.top = scrollY <= options.offset[details.direction];\n details.bottom = scrollY + height >= scrollHeight;\n details.toleranceExceeded =\n details.distance > options.tolerance[details.direction];\n\n callback(details);\n\n lastScrollY = scrollY;\n scrolled = false;\n }\n\n function handleScroll() {\n if (!scrolled) {\n scrolled = true;\n rafId = requestAnimationFrame(update);\n }\n }\n\n var eventOptions = isPassiveSupported\n ? { passive: true, capture: false }\n : false;\n\n element.addEventListener(\"scroll\", handleScroll, eventOptions);\n update();\n\n return {\n destroy: function() {\n cancelAnimationFrame(rafId);\n element.removeEventListener(\"scroll\", handleScroll, eventOptions);\n }\n };\n }\n\n function normalizeUpDown(t) {\n return t === Object(t) ? t : { down: t, up: t };\n }\n\n /**\n * UI enhancement for fixed headers.\n * Hides header when scrolling down\n * Shows header when scrolling up\n * @constructor\n * @param {DOMElement} elem the header element\n * @param {Object} options options for the widget\n */\n function Headroom(elem, options) {\n options = options || {};\n Object.assign(this, Headroom.options, options);\n this.classes = Object.assign({}, Headroom.options.classes, options.classes);\n\n this.elem = elem;\n this.tolerance = normalizeUpDown(this.tolerance);\n this.offset = normalizeUpDown(this.offset);\n this.initialised = false;\n this.frozen = false;\n }\n Headroom.prototype = {\n constructor: Headroom,\n\n /**\n * Start listening to scrolling\n * @public\n */\n init: function() {\n if (Headroom.cutsTheMustard && !this.initialised) {\n this.addClass(\"initial\");\n this.initialised = true;\n\n // defer event registration to handle browser\n // potentially restoring previous scroll position\n setTimeout(\n function(self) {\n self.scrollTracker = trackScroll(\n self.scroller,\n { offset: self.offset, tolerance: self.tolerance },\n self.update.bind(self)\n );\n },\n 100,\n this\n );\n }\n\n return this;\n },\n\n /**\n * Destroy the widget, clearing up after itself\n * @public\n */\n destroy: function() {\n this.initialised = false;\n Object.keys(this.classes).forEach(this.removeClass, this);\n this.scrollTracker.destroy();\n },\n\n /**\n * Unpin the element\n * @public\n */\n unpin: function() {\n if (this.hasClass(\"pinned\") || !this.hasClass(\"unpinned\")) {\n this.addClass(\"unpinned\");\n this.removeClass(\"pinned\");\n\n if (this.onUnpin) {\n this.onUnpin.call(this);\n }\n }\n },\n\n /**\n * Pin the element\n * @public\n */\n pin: function() {\n if (this.hasClass(\"unpinned\")) {\n this.addClass(\"pinned\");\n this.removeClass(\"unpinned\");\n\n if (this.onPin) {\n this.onPin.call(this);\n }\n }\n },\n\n /**\n * Freezes the current state of the widget\n * @public\n */\n freeze: function() {\n this.frozen = true;\n this.addClass(\"frozen\");\n },\n\n /**\n * Re-enables the default behaviour of the widget\n * @public\n */\n unfreeze: function() {\n this.frozen = false;\n this.removeClass(\"frozen\");\n },\n\n top: function() {\n if (!this.hasClass(\"top\")) {\n this.addClass(\"top\");\n this.removeClass(\"notTop\");\n\n if (this.onTop) {\n this.onTop.call(this);\n }\n }\n },\n\n notTop: function() {\n if (!this.hasClass(\"notTop\")) {\n this.addClass(\"notTop\");\n this.removeClass(\"top\");\n\n if (this.onNotTop) {\n this.onNotTop.call(this);\n }\n }\n },\n\n bottom: function() {\n if (!this.hasClass(\"bottom\")) {\n this.addClass(\"bottom\");\n this.removeClass(\"notBottom\");\n\n if (this.onBottom) {\n this.onBottom.call(this);\n }\n }\n },\n\n notBottom: function() {\n if (!this.hasClass(\"notBottom\")) {\n this.addClass(\"notBottom\");\n this.removeClass(\"bottom\");\n\n if (this.onNotBottom) {\n this.onNotBottom.call(this);\n }\n }\n },\n\n shouldUnpin: function(details) {\n var scrollingDown = details.direction === \"down\";\n\n return scrollingDown && !details.top && details.toleranceExceeded;\n },\n\n shouldPin: function(details) {\n var scrollingUp = details.direction === \"up\";\n\n return (scrollingUp && details.toleranceExceeded) || details.top;\n },\n\n addClass: function(className) {\n this.elem.classList.add.apply(\n this.elem.classList,\n this.classes[className].split(\" \")\n );\n },\n\n removeClass: function(className) {\n this.elem.classList.remove.apply(\n this.elem.classList,\n this.classes[className].split(\" \")\n );\n },\n\n hasClass: function(className) {\n return this.classes[className].split(\" \").every(function(cls) {\n return this.classList.contains(cls);\n }, this.elem);\n },\n\n update: function(details) {\n if (details.isOutOfBounds) {\n // Ignore bouncy scrolling in OSX\n return;\n }\n\n if (this.frozen === true) {\n return;\n }\n\n if (details.top) {\n this.top();\n } else {\n this.notTop();\n }\n\n if (details.bottom) {\n this.bottom();\n } else {\n this.notBottom();\n }\n\n if (this.shouldUnpin(details)) {\n this.unpin();\n } else if (this.shouldPin(details)) {\n this.pin();\n }\n }\n };\n\n /**\n * Default options\n * @type {Object}\n */\n Headroom.options = {\n tolerance: {\n up: 0,\n down: 0\n },\n offset: 0,\n scroller: isBrowser() ? window : null,\n classes: {\n frozen: \"headroom--frozen\",\n pinned: \"headroom--pinned\",\n unpinned: \"headroom--unpinned\",\n top: \"headroom--top\",\n notTop: \"headroom--not-top\",\n bottom: \"headroom--bottom\",\n notBottom: \"headroom--not-bottom\",\n initial: \"headroom\"\n }\n };\n\n Headroom.cutsTheMustard = isSupported();\n\n return Headroom;\n\n}));\n","/*!\n * jQuery JavaScript Library v3.6.1\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2022-08-26T17:52Z\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 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\n\tversion = \"3.6.1\",\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\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\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}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.6\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2021-02-16\n */\n( function( window ) {\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\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\t// Instance methods\n\thasOwn = ( {} ).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpushNative = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[ i ] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" +\n\t\t\"ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\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: http://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]\n\t\t// 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\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" +\n\t\twhitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace +\n\t\t\"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": 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\t\"needsContext\": 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\trhtml = /HTML$/i,\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\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// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\treturn nonHex ?\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\tnonHex :\n\n\t\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t\t// Support: IE <=11+\n\t\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t\t// surrogate pair\n\t\t\thigh < 0 ?\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" +\n\t\t\t\tch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\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 = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( ( target[ j++ ] = els[ i++ ] ) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( 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, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\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\tresults.push( 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, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\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\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( 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 ] ) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\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 ( support.qsa &&\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&\n\n\t\t\t\t// Support: IE 8 only\n\t\t\t\t// Exclude object elements\n\t\t\t\t( nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\" ) ) {\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 ) || rcombinators.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\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 = nid.replace( rcssescape, fcssescape );\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( rtrim, \"$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 (see Issue #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 Sizzle\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 * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split( \"|\" ),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[ i ] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( ( cur = cur.nextSibling ) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\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\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"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\tvar name = elem.nodeName.toLowerCase();\n\t\treturn ( name === \"input\" || name === \"button\" ) && elem.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\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\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 Sizzle 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// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\tvar namespace = elem && elem.namespaceURI,\n\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t// Support: IE <=8\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\t// https://bugs.jquery.com/ticket/4833\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, 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\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\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 ( preferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n\t// Safari 4 - 5 only, Opera <=11.6 - 12.x only\n\t// IE/Edge & older browsers don't support the :scope pseudo-class.\n\t// Support: Safari 6.0 only\n\t// Safari 6.0 supports :scope but it's an alias of :root there.\n\tsupport.scope = assert( function( el ) {\n\t\tdocElem.appendChild( el ).appendChild( document.createElement( \"div\" ) );\n\t\treturn typeof el.querySelectorAll !== \"undefined\" &&\n\t\t\t!el.querySelectorAll( \":scope fieldset div\" ).length;\n\t} );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert( function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute( \"className\" );\n\t} );\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert( function( el ) {\n\t\tel.appendChild( document.createComment( \"\" ) );\n\t\treturn !el.getElementsByTagName( \"*\" ).length;\n\t} );\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\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\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\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\" ] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[ \"CLASS\" ] = support.getElementsByClassName && 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\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {\n\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert( function( el ) {\n\n\t\t\tvar input;\n\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll( \"[msallowcapture^='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"~=\" );\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t\t// Adding a temporary attribute to the document before the selection works\n\t\t\t// around the issue.\n\t\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\t\tinput = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"name\", \"\" );\n\t\t\tel.appendChild( input );\n\t\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\t\trbuggyQSA.push( \":checked\" );\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t\t}\n\n\t\t\t// Support: Firefox <=3.6 - 5 only\n\t\t\t// Old Firefox doesn't throw on a badly-escaped identifier.\n\t\t\tel.querySelectorAll( \"\\\\\\f\" );\n\t\t\trbuggyQSA.push( \"[\\\\r\\\\n\\\\f]\" );\n\t\t} );\n\n\t\tassert( function( el ) {\n\t\t\tel.innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll( \"[name=d]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll( \":enabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: Opera 10 - 11 only\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll( \"*,:x\" );\n\t\t\trbuggyQSA.push( \",.*:\" );\n\t\t} );\n\t}\n\n\tif ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector ) ) ) ) {\n\n\t\tassert( function( el ) {\n\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t} );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( \"|\" ) );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t) );\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( ( b = b.parentNode ) ) {\n\t\t\t\t\tif ( b === a ) {\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\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( 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\tcontains( 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\tcontains( 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( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\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 eqeqeq */\n\t\t\treturn a == document ? -1 :\n\t\t\t\tb == document ? 1 :\n\t\t\t\t/* eslint-enable eqeqeq */\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[ i ] === bp[ i ] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[ i ], bp[ i ] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\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 eqeqeq */\n\t\t\tap[ i ] == preferredDoc ? -1 :\n\t\t\tbp[ i ] == preferredDoc ? 1 :\n\t\t\t/* eslint-enable eqeqeq */\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( 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// As well, disconnected nodes are said to be in a document\n\t\t\t\t// fragment in IE 9\n\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 Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.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 contains( context, elem );\n};\n\nSizzle.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 (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\nSizzle.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 */\nSizzle.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\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( 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\tresults.splice( 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\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\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\t\"ATTR\": 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 ] ||\n\t\t\t\tmatch[ 5 ] || \"\" ).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\t\"CHILD\": 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\tSizzle.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\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": 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\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = 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 elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace +\n\t\t\t\t\t\")\" + className + \"(\" + whitespace + \"|$)\" ) ) && classCache(\n\t\t\t\t\t\tclassName, function( elem ) {\n\t\t\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.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\t/* eslint-disable max-len */\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t\t/* eslint-enable max-len */\n\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": 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, uniqueCache, 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\tnode.nodeName.toLowerCase() === 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\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\tcache = uniqueCache[ 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\tuniqueCache[ 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\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ 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\tnode.nodeName.toLowerCase() === 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\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ 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\t\"PSEUDO\": function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://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\tSizzle.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 Sizzle 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( 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\t\"not\": 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( rtrim, \"$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 (issue #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\t\"has\": markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\t\"contains\": markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || getText( 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// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": 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\tSizzle.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\t\"target\": 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\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement &&\n\t\t\t\t( !document.hasFocus || document.hasFocus() ) &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn ( nodeName === \"input\" && !!elem.checked ) ||\n\t\t\t\t( nodeName === \"option\" && !!elem.selected );\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\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\t\"empty\": function( elem ) {\n\n\t\t\t// http://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\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[ \"empty\" ]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear 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\t\"first\": createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\t\"last\": createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\t\"eq\": createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\t\"even\": 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\t\"odd\": 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\t\"lt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ?\n\t\t\t\targument + length :\n\t\t\t\targument > length ?\n\t\t\t\t\tlength :\n\t\t\t\t\targument;\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\t\"gt\": 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\ntokenize = Sizzle.tokenize = function( 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 = rcombinators.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( rtrim, \" \" )\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\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\n\t\t\t// Cache the tokens\n\t\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, uniqueCache, 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\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] ||\n\t\t\t\t\t\t\t( outerCache[ elem.uniqueID ] = {} );\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = uniqueCache[ 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\tuniqueCache[ 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\tSizzle( 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,\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 || multipleContexts(\n\t\t\t\tselector || \"*\",\n\t\t\t\tcontext.nodeType ? [ context ] : context,\n\t\t\t\t[]\n\t\t\t),\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\t\tmatcherOut = matcher ?\n\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\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( 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( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\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 (issue #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// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\ttokens\n\t\t\t\t\t\t.slice( 0, i - 1 )\n\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrim, \"$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: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\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\tresults.push( 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\tSizzle.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\ncompile = Sizzle.compile = function( 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(\n\t\t\tselector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers )\n\t\t);\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 Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( 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\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find[ \"ID\" ]( token.matches[ 0 ]\n\t\t\t\t.replace( runescape, funescape ), context ) || [] )[ 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 ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext\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// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\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\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert( function( el ) {\n\tel.innerHTML = \"\";\n\treturn el.firstChild.getAttribute( \"href\" ) === \"#\";\n} ) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert( function( el ) {\n\tel.innerHTML = \"\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n} ) ) {\n\taddHandle( \"value\", function( elem, _name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert( function( el ) {\n\treturn el.getAttribute( \"disabled\" ) == null;\n} ) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\t\tnull;\n\t\t}\n\t} );\n}\n\nreturn Sizzle;\n\n} )( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\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\n\n\nfunction nodeName( elem, name ) {\n\n\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\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 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 Sizzle\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// 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.stackTrace );\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 stack, 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.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = 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\njQuery.Deferred.exceptionHook = function( error, stack ) {\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, error.stack, stack );\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 = \"\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces \";\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 or other required elements.\n\tthead: [ 1, \"\", \"
\" ],\n\tcol: [ 2, \"\", \"
\" ],\n\ttr: [ 2, \"\", \"
\" ],\n\ttd: [ 3, \"\", \"
\" ],\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, \"\" ];\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\n// Support: IE <=9 - 11+\n// focus() and blur() are asynchronous, except when they are no-op.\n// So expect focus to be synchronous when the element is already active,\n// and blur to be synchronous when the element is not already active.\n// (focus and blur are always synchronous in other supported browsers,\n// this just defines when we can count on it).\nfunction expectSync( elem, type ) {\n\treturn ( elem === safeActiveElement() ) === ( type === \"focus\" );\n}\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\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 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\", returnTrue );\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, expectSync ) {\n\n\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !expectSync ) {\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 notAsync, 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\t// Saved data should be false in such cases, but might be a leftover capture object\n\t\t\t\t// from an async native handler (gh-4350)\n\t\t\t\tif ( !saved.length ) {\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\t// Support: IE <=9 - 11+\n\t\t\t\t\t// focus() and blur() are asynchronous\n\t\t\t\t\tnotAsync = expectSync( this, type );\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tif ( saved !== result || notAsync ) {\n\t\t\t\t\t\tdataPriv.set( this, type, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = {};\n\t\t\t\t\t}\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\t// Support: Chrome 86+\n\t\t\t\t\t\t// In Chrome, if an element having a focusout handler is blurred by\n\t\t\t\t\t\t// clicking outside of it, it invokes the handler synchronously. If\n\t\t\t\t\t\t// that handler calls `.remove()` on the element, the data is cleared,\n\t\t\t\t\t\t// leaving `result` undefined. We need to guard against this.\n\t\t\t\t\t\treturn result && result.value;\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 the\n\t\t\t\t// 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.length ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, {\n\t\t\t\t\tvalue: jQuery.event.trigger(\n\n\t\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\n\t\t\t\t\t\tjQuery.extend( saved[ 0 ], jQuery.Event.prototype ),\n\t\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\t\tthis\n\t\t\t\t\t)\n\t\t\t\t} );\n\n\t\t\t\t// Abort handling of the native event\n\t\t\t\tevent.stopImmediatePropagation();\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\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\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, expectSync );\n\n\t\t\t// Return false to allow normal processing in the caller\n\t\t\treturn false;\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\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\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 = /\\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// Reenable 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 Sizzle here for performance reasons: 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\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( 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 = \"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\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\t// trim whitespace for custom property (issue gh-4926)\n\t\tif ( isCustomProp ) {\n\n\t\t\t// rtrim 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\" );\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\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\tif ( box === \"margin\" ) {\n\t\t\tdelta += 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;\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\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"gridArea\": true,\n\t\t\"gridColumn\": true,\n\t\t\"gridColumnEnd\": true,\n\t\t\"gridColumnStart\": true,\n\t\t\"gridRow\": true,\n\t\t\"gridRowEnd\": true,\n\t\t\"gridRowStart\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": 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\n\n\nsupport.focusin = \"onfocusin\" in window;\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\n// Support: Firefox <=44\n// Firefox doesn't have focus(in | out) events\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n//\n// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n// focus(in | out) events fire after focus & blur events,\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\n\t\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\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\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( \"