{"version":3,"sources":["webpack:///webpack/bootstrap 9a17e6a1e4f67da0a1ea","webpack:///external \"girder_lib\"","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/_setup.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/keys.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/_tagTester.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/_cb.js","webpack:///delegated ./src/rest.js from dll-reference girder_lib","webpack:///delegated ./node_modules/jquery/dist/jquery.js from dll-reference girder_lib","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/restArguments.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/underscore.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/_isArrayLike.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/isFunction.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/_getLength.js","webpack:///./node_modules/@girder/large_image/node_modules/codemirror/lib/codemirror.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/_has.js","webpack:///delegated ./node_modules/pug-runtime/index.js from dll-reference girder_lib","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/index-all.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/isObject.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/isArray.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/each.js","webpack:///delegated ./src/utilities/PluginUtils.js from dll-reference girder_lib","webpack:///./node_modules/@girder/large_image/views/configView.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/values.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/_flatten.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/map.js","webpack:///delegated ./src/views/View.js from dll-reference girder_lib","webpack:///delegated ./src/constants.js from dll-reference girder_lib","webpack:///delegated ./node_modules/webpack/buildin/global.js from dll-reference girder_lib","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/_stringTagBug.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/allKeys.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/_toPath.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/_optimizeCb.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/filter.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/contains.js","webpack:///delegated ./src/events.js from dll-reference girder_lib","webpack:///./node_modules/@girder/large_image/views/imageViewerWidget/base.js","webpack:////opt/large_image/girder/girder_large_image/web_client/node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/matcher.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/partial.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/_group.js","webpack:///delegated ./src/misc.js from dll-reference girder_lib","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/index.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/isString.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/isDataView.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/isArguments.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/_getByteLength.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/_methodFingerprint.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/_createAssigner.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/extendOwn.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/_deepGet.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/identity.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/property.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/now.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/negate.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/findIndex.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/pluck.js","webpack:///delegated ./node_modules/backbone/backbone.js from dll-reference girder_lib","webpack:///delegated ./src/views/body/ItemView.js from dll-reference girder_lib","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/isUndefined.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/isBoolean.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/isNumber.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/isSymbol.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/isArrayBuffer.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/isNaN.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/isTypedArray.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/constant.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/_createSizePropertyCheck.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/_shallowProperty.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/_collectNonEnumProps.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/isMatch.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/invert.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/functions.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/extend.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/defaults.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/_baseCreate.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/get.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/toPath.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/_baseIteratee.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/iteratee.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/noop.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/random.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/_createEscaper.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/_escapeMap.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/templateSettings.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/_executeBound.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/bind.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/delay.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/before.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/findKey.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/_createPredicateIndexFinder.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/findLastIndex.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/sortedIndex.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/indexOf.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/_createIndexFinder.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/find.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/_createReduce.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/max.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/sample.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/toArray.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/pick.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/initial.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/rest.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/difference.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/uniq.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/unzip.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/_chainResult.js","webpack:///./node_modules/@girder/large_image/routes.js","webpack:///delegated ./src/utilities/EventStream.js from dll-reference girder_lib","webpack:///delegated ./src/auth.js from dll-reference girder_lib","webpack:///./node_modules/@girder/large_image/views/metadataWidget.js","webpack:///delegated ./src/dialog.js from dll-reference girder_lib","webpack:///./node_modules/@girder/large_image/views/itemViewWidget.js","webpack:///./node_modules/@girder/large_image/node_modules/js-yaml/dist/js-yaml.mjs","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/@girder/large_image/node_modules/codemirror/addon/fold/foldcode.js","webpack:///./node_modules/@girder/large_image/views/imageViewerSelectWidget.js","webpack:///./node_modules/@girder/large_image/views/imageViewerWidget/index.js","webpack:///./node_modules/@girder/large_image/vue/components/FrameSelector.vue?9af9","webpack:///node_modules/@girder/large_image/vue/components/FrameSelector.vue","webpack:///./node_modules/@girder/large_image/node_modules/vue/dist/vue.js","webpack:///./node_modules/@girder/large_image/vue/utils/colors.js","webpack:///./node_modules/@girder/large_image/vue/components/CompositeLayers.vue?c5f2","webpack:///node_modules/@girder/large_image/vue/components/CompositeLayers.vue","webpack:///./node_modules/@girder/large_image/vue/components/HistogramEditor.vue?6c5a","webpack:///node_modules/@girder/large_image/vue/components/HistogramEditor.vue","webpack:///./node_modules/@girder/large_image/vue/components/DualInput.vue?190f","webpack:///node_modules/@girder/large_image/vue/components/DualInput.vue","webpack:///./node_modules/@girder/large_image/vue/components/PresetsMenu.vue?9989","webpack:///node_modules/@girder/large_image/vue/components/PresetsMenu.vue","webpack:///./node_modules/@girder/large_image/main.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/index-default.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/isNull.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/isElement.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/isDate.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/isRegExp.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/isError.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/_hasObjectTag.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/isFinite.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/_isBufferLike.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/isEmpty.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/isEqual.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/_toBufferView.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/isMap.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/isWeakMap.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/isSet.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/isWeakSet.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/pairs.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/create.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/clone.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/tap.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/has.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/mapObject.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/propertyOf.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/times.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/escape.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/unescape.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/_unescapeMap.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/template.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/result.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/uniqueId.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/chain.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/bindAll.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/memoize.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/defer.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/throttle.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/debounce.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/wrap.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/compose.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/after.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/once.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/lastIndexOf.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/findWhere.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/reduce.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/reduceRight.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/reject.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/every.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/some.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/invoke.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/where.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/min.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/shuffle.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/sortBy.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/groupBy.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/indexBy.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/countBy.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/partition.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/size.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/_keyInObj.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/omit.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/first.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/last.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/compact.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/flatten.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/without.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/union.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/intersection.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/zip.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/object.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/range.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/chunk.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/mixin.js","webpack:///./node_modules/@girder/large_image/node_modules/underscore/modules/underscore-array-methods.js","webpack:///./src/pluginUtils.js","webpack:///delegated ./src/views/widgets/SearchFieldWidget.js from dll-reference girder_lib","webpack:///delegated ./src/router.js from dll-reference girder_lib","webpack:///delegated ./src/views/widgets/BrowserWidget.js from dll-reference girder_lib","webpack:///delegated ./src/views/widgets/PluginConfigBreadcrumbWidget.js from dll-reference girder_lib","webpack:///./node_modules/@girder/large_image/templates/largeImageConfig.pug","webpack:///./node_modules/@girder/large_image/stylesheets/largeImageConfig.styl","webpack:///./node_modules/@girder/large_image/eventStream.js","webpack:///./node_modules/@girder/large_image/views/fileList.js","webpack:///delegated ./src/views/widgets/FileListWidget.js from dll-reference girder_lib","webpack:///./node_modules/@girder/large_image/templates/largeImage_fileAction.pug","webpack:///./node_modules/@girder/large_image/stylesheets/fileList.styl","webpack:///./node_modules/@girder/large_image/views/itemList.js","webpack:///delegated ./src/views/widgets/HierarchyWidget.js from dll-reference girder_lib","webpack:///delegated ./src/views/widgets/FolderListWidget.js from dll-reference girder_lib","webpack:///delegated ./src/views/widgets/ItemListWidget.js from dll-reference girder_lib","webpack:///./node_modules/@girder/large_image/stylesheets/itemList.styl","webpack:///./node_modules/@girder/large_image/templates/itemList.pug","webpack:///delegated ./src/templates/widgets/jsonMetadatumEditWidget.pug from dll-reference girder_lib","webpack:///delegated ./src/templates/widgets/metadatumView.pug from dll-reference girder_lib","webpack:///delegated ./src/stylesheets/widgets/metadataWidget.styl from dll-reference girder_lib","webpack:///delegated ./node_modules/jsoneditor/dist/jsoneditor.js from dll-reference girder_lib","webpack:///delegated ./node_modules/jsoneditor/dist/jsoneditor.css from dll-reference girder_lib","webpack:///delegated ./node_modules/bootstrap/js/dropdown.js from dll-reference girder_lib","webpack:///delegated ./src/views/widgets/MetadataWidget.js from dll-reference girder_lib","webpack:///./node_modules/@girder/large_image/stylesheets/metadataWidget.styl","webpack:///./node_modules/@girder/large_image/templates/metadataWidget.pug","webpack:///./node_modules/@girder/large_image/templates/metadatumEditWidget.pug","webpack:///./node_modules/@girder/large_image/views/itemView.js","webpack:///./node_modules/@girder/large_image/templates/itemView.pug","webpack:///./node_modules/@girder/large_image/stylesheets/itemView.styl","webpack:///./node_modules/@girder/large_image/views/itemViewCodemirror.js","webpack:///./node_modules/@girder/large_image/node_modules/jsonlint-mod/web/jsonlint.js","webpack:///./node_modules/@girder/large_image/node_modules/codemirror/lib/codemirror.css","webpack:///./node_modules/@girder/large_image/node_modules/codemirror/addon/lint/lint.css","webpack:///./node_modules/@girder/large_image/node_modules/codemirror/addon/fold/foldgutter.css","webpack:///./node_modules/@girder/large_image/node_modules/codemirror/addon/fold/brace-fold.js","webpack:///./node_modules/@girder/large_image/node_modules/codemirror/addon/fold/foldgutter.js","webpack:///./node_modules/@girder/large_image/node_modules/codemirror/addon/lint/lint.js","webpack:///./node_modules/@girder/large_image/node_modules/codemirror/addon/lint/json-lint.js","webpack:///./node_modules/@girder/large_image/node_modules/codemirror/addon/lint/yaml-lint.js","webpack:///./node_modules/@girder/large_image/node_modules/codemirror/mode/javascript/javascript.js","webpack:///./node_modules/@girder/large_image/node_modules/codemirror/mode/properties/properties.js","webpack:///./node_modules/@girder/large_image/node_modules/codemirror/mode/yaml/yaml.js","webpack:///./node_modules/@girder/large_image/templates/itemViewCodemirror.pug","webpack:///./node_modules/@girder/large_image/stylesheets/itemViewCodemirror.styl","webpack:///./node_modules/@girder/large_image/views/imageViewerWidget/geojs.js","webpack:///./node_modules/@girder/large_image/node_modules/@egjs/hammerjs/dist/hammer.esm.js","webpack:///./node_modules/@girder/large_image/node_modules/d3/d3.js","webpack:///./node_modules/@girder/large_image/views/imageViewerWidget/setFrameQuad.js","webpack:///./node_modules/@girder/large_image/views/imageViewerWidget/leaflet.js","webpack:///./node_modules/@girder/large_image/views/imageViewerWidget/openlayers.js","webpack:///./node_modules/@girder/large_image/views/imageViewerWidget/openseadragon.js","webpack:///./node_modules/@girder/large_image/views/imageViewerWidget/slideatlas.js","webpack:///./node_modules/@girder/large_image/templates/imageViewerSelectWidget.pug","webpack:///./node_modules/@girder/large_image/stylesheets/imageViewerSelectWidget.styl","webpack:///./node_modules/@girder/large_image/vue/components/FrameSelector.vue","webpack:///./node_modules/@girder/large_image/vue/components/FrameSelector.vue?8570","webpack:///./node_modules/@girder/large_image/vue/components/FrameSelector.vue?e48c","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/@girder/large_image/vue/components/CompositeLayers.vue","webpack:///./node_modules/@girder/large_image/vue/components/CompositeLayers.vue?9bb4","webpack:///./node_modules/@girder/large_image/vue/components/CompositeLayers.vue?9fa3","webpack:///./node_modules/@girder/large_image/node_modules/vue-color/dist/vue-color.min.js","webpack:///./node_modules/@girder/large_image/vue/components/HistogramEditor.vue","webpack:///./node_modules/@girder/large_image/vue/components/HistogramEditor.vue?2d4d","webpack:///./node_modules/@girder/large_image/vue/components/HistogramEditor.vue?fc4e","webpack:///./node_modules/@girder/large_image/vue/utils/drag.js","webpack:///./node_modules/@girder/large_image/vue/utils/clamp.js","webpack:///./node_modules/@girder/large_image/vue/components/HistogramEditor.vue?afbb","webpack:///./node_modules/@girder/large_image/vue/components/HistogramEditor.vue?95fc","webpack:///./node_modules/@girder/large_image/vue/components/CompositeLayers.vue?2806","webpack:///./node_modules/@girder/large_image/vue/components/CompositeLayers.vue?529f","webpack:///./node_modules/@girder/large_image/vue/components/CompositeLayers.vue?42c2","webpack:///./node_modules/@girder/large_image/vue/components/CompositeLayers.vue?a7d0","webpack:///./node_modules/@girder/large_image/vue/components/DualInput.vue","webpack:///./node_modules/@girder/large_image/vue/components/DualInput.vue?8a1f","webpack:///./node_modules/@girder/large_image/vue/components/DualInput.vue?9e68","webpack:///./node_modules/@girder/large_image/vue/components/DualInput.vue?bf24","webpack:///./node_modules/@girder/large_image/vue/components/DualInput.vue?e110","webpack:///./node_modules/@girder/large_image/vue/components/PresetsMenu.vue","webpack:///./node_modules/@girder/large_image/vue/components/PresetsMenu.vue?536d","webpack:///./node_modules/@girder/large_image/vue/components/PresetsMenu.vue?5fb9","webpack:///./node_modules/@girder/large_image/vue/components/PresetsMenu.vue?40e9","webpack:///./node_modules/@girder/large_image/vue/components/PresetsMenu.vue?13dc","webpack:///./node_modules/@girder/large_image/vue/components/FrameSelector.vue?8a75","webpack:///./node_modules/@girder/large_image/vue/components/FrameSelector.vue?35c5","webpack:///./node_modules/@girder/large_image/index.js","webpack:///./node_modules/@girder/large_image/views/index.js"],"names":["ConfigView","View","extend","events","event","preventDefault","$","empty","_saveSettings","key","value","prop","val","split","initialize","getSettings","settings","render","_browserWidgetView","BrowserWidget","parentView","titleText","helpText","submitText","validate","model","isValid","Deferred","get","reject","resolve","promise","listenTo","id","url","method","data","type","done","result","$el","html","viewers","breadcrumb","PluginConfigBreadcrumbWidget","pluginName","el","list","JSON","stringify","error","clearSettings","trigger","icon","text","timeout","fail","resp","responseJSON","message","_openBrowser","setElement","name","label","callback","_settingsRequest","extraInfo","extraItemInfo","extraList","access","AccessType","READ","ADMIN","forEach","entry","parse","err","getConfigFile","folderId","reload","_lastliconfig","_liconfig","_liconfigSettingsRequest","_nextliconfig","cancel","ImageViewerWidget","itemId","item","attributes","updated","created","replace","tileQueryDefaults","levels","tileWidth","tileHeight","sizeX","sizeY","metadata","_getTileUrl","level","x","y","query","_","param","router","route","addToRoute","params","enabled","curRoute","Backbone","history","fragment","routeParts","update","Object","entries","undefined","paramStr","base","_updateHash","location","getMetadataRecord","fieldName","meta","part","liMetadataKeyEntry","limetadata","idx","validateMetadataValue","lientry","tempValue","nowarn","regex","RegExp","exec","format","Number","isFinite","parseFloat","isInteger","minimum","exclusiveMinimum","maximum","exclusiveMaximum","MetadatumWidget","className","has","modes","mode","Error","accessLevel","apiPath","noSave","onMetadataEdited","onMetadataAdded","_validate","from","to","newMode","validation","msg","toggleEditor","newEditorMode","existingEditor","overrides","fromEditorMode","JsonMetadatumEditWidget","newValue","attr","row","destroy","addClass","opts","newDatum","editor","editMetadata","jsonValue","isObject","e","appendTo","bind","displayValue","removeClass","template","title","MetadatumEditWidget","editorType","find","getCurrentValue","editTemplate","MetadatumEditWidgetTemplate","deleteMetadatum","stopImmediatePropagation","target","currentTarget","metadataList","parent","remove","escape","escapedHtml","yesText","confirmCallback","removeMetadata","field","path","cancelEdit","curRow","save","tempKey","trim","keyMode","valResult","saveCallback","errorCallback","out","addMetadata","JsonMetadatumEditWidgetTemplate","getText","prototype","call","apply","arguments","jsonEditorEl","JSONEditor","onError","setText","expandAll","MetadataWidget","largeImageConfig","_limetadata","itemMetadata","metaDict","fieldParts","slice","metaKeys","keys","sort","localeSort","origOrder","a","b","aentry","bentry","indexOf","_sortedMetaKeys","_renderedMetaDict","contents","MetadataWidgetTemplate","_renderHeader","each","metaKey","hidden","append","getModeFromValue","setItem","on","simple","args","json","MetadatumViewTemplate","evt","addMetadataByKey","isString","EditWidget","widget","length","click","default","ItemViewWidget","imageModel","extra","largeImageMetadata","yaml","imageUrl","ItemView","once","fileId","imageViewerSelect","ImageViewerSelectWidget","class","insertAfter","_selectViewer","frameUpdate","currentViewer","config","_liConfig","findWhere","_createVue","imageMetadata","vm","FrameSelector","propsData","liConfig","vueApp","viewerName","toggleClass","_frameUpdate","viewer","ViewerType","viewerEl","setFrames","ctrl","frame","eventStream","unset","fetch","rest","geojs","leaflet","openlayers","openseadragon","slideatlas","getChannelColor","CHANNEL_COLORS","usedColors","channelPattern","color","includes","match","push","OTHER_COLORS","largeImage","restRequest","wrap","contentType","headers","header","SearchFieldWidget","addMode","registerPluginNamespace","symbols","window","girder","plugins","pug","require","locals","pug_html","pug_mixins","pug_interp","pug_debug_filename","pug_debug_line","pug_debug_sources","locals_for_with","$$obj","pug_index0","$$l","detailplaceholder","detailtitle","rethrow","module","exports","MIN_TIMEOUT","MAX_TIMEOUT","TIMEOUT_FALLOFF","pollCallback","lastTimestamp","localStorage","getItem","checkNotifications","since","obj","time","setTimeout","document","addEventListener","visibilityState","clearTimeout","FileListWidget","parentItem","getAccessLevel","WRITE","files","collection","toArray","file","actions","cid","closest","children","fileAction","prepend","notify","force","originalEvent","ctrlKey","localJob","status","expected","HierarchyWidget","itemListView","setFlatten","after","_recurse","is","delegateEvents","parentModel","FolderListWidget","checkAll","checked","ItemListWidget","_hasAnyLargeImage","isEqual","_lastSort","map","chunk","parts","dir","filter","_generalFilter","_setFilter","_setSort","flatten","maxSimultaneous","_loadMoreImages","loading","img","addLargeImageDetails","container","elem","null","numColumns","Math","max","images","imageName","one","_confList","itemListDialog","itemList","_inFetch","_needsFetch","comparator","constant","sortField","_totalCount","oldPages","_totalPages","pages","ceil","getTotalCount","pageLimit","_updateFilter","_clearFilter","_unescapePhrase","usedPhrases","columns","quotedValue","phraseRE","source","matchAll","coltag","phrase","negation","phrases","exact","submatch","subphrase","p","join","clause","numval","delta","abs","toString","col","localeCompare","sensitivity","r","substr","$exists","$regex","$options","isNaN","$gte","$lt","$lte","$gt","$or","$nor","_no_such_value_","$and","_filter","itemListRender","root","eq","func","defaultSort","items","isParentPublic","public","hasMore","hasNextPage","formatSize","checkboxes","_checkboxes","downloadLinks","_downloadLinks","viewLinks","_viewLinks","showSizes","_showSizes","highlightItem","_highlightItem","selectedItemId","_selectedItem","paginated","_paginated","apiRoot","hasAnyLargeImage","some","inner","first","sortColumn","curDir","hasClass","nextDir","oldSort","unshift","itemListCellFilter","cell","itemListMetadataEdit","column","_lastValidationError","required","self","_sendMetadata","parseInt","layout","colNames","colidx","classes","toUpperCase","pug_index1","style","divtype","skip","only","onlyval","downloadUrl","contentDisposition","width","height","edit","enum","description","pug_index3","enumval","pug_index4","pug_index6","pug_index7","rows","promises","needed","tile","internal","when","then","itemViewWidget","Array","info","depth","prefix","block","keyname","isArray","rowidx","rowvalue","constructor","dump","mkey","midx","imageList","ikey","li_key","pug_index8","imageWidth","imageHeight","pug_index9","jsonlint","jsyaml","Formats","validator","load","lineWidth","noRefs","buttons","action","lastStartDate","serverStartDate","restarted","wait","adminOnly","errors","lintGirderIni","errorList","CodeMirror","Pos","line","async","registerHelper","CodemirrorEditWidget","mimeType","processData","dataType","_contents","_lastSave","formatName","buttonList","formatRecord","code","lineNumbers","gutters","lint","readOnly","_informat","content","getValue","validated","setValue","revert","generalAction","button","but","_insave","updateContents","lastInsave","codemirrorEditWidget","fileListWidget","models","firstFile","hammerjs","Hammer","d3","GeojsImageViewerWidget","_scale","scale","_setFrames","geospatial","projection","ajax","BUILD_TIMESTAMP","cache","geo","deleted","bounds","w","h","util","pixelCoordinateParams","layer","useCredentials","renderer","autoshareRenderer","_layer","createLayer","onIdle","frames","maxTextures","min","baseUrl","restUrl","setFrameQuad","keepLower","attribution","encoding","maxLevel","node","xmin","xmax","ymin","ymax","left","right","top","bottom","mm_x","uiLayer","scaleWidget","createWidget","_postRender","_frame","_style","_baseurl","_layer2","_options","zIndex","moveDown","options","visible","tileinfo","_nextframe","_nextstyle","_updating","getFrameAndUrl","quadLoaded","loaded","ltemp","bands","encodedStyle","encodeURIComponent","queue","animationQueue","splice","exit","maxTextureSize","_maxTextureSize","assign","src","quads","framesToIdx","loadedCount","qiOptions","k","Image","qidx","quadsToIdx","image","crossOrigin","onload","minLevel","adjustMinLevel","progress","baseQuad","redrawOnFirstLoad","draw","LeafletImageViewerWidget","rel","href","errmsg","L","console","center","zoom","minZoom","maxZoom","maxBounds","layers","tileLayer","edge","tileSize","continuousWorld","attributionControl","OpenlayersImageViewerWidget","ol","Map","Tile","XYZ","wrapX","preload","view","logo","OSM","getView","fit","constrainResolution","setTarget","OpenseadragonImageViewerWidget","OpenSeadragon","element","prefixUrl","minZoomImageRatio","defaultZoomLevel","showRotationControl","tileSources","getTileUrl","z","ajaxWithCredentials","baseSAUrl","SlideAtlasImageViewerWidget","CanvasRenderingContext2D","resetTransform","setTransform","SA","tileSource","units","spacing","mm_y","SAViewer","zoomWidget","drawWidget","saViewer","girderGui","SAM","LayerPanel","css","position","SAFullScreenButton","GirderView","queryString","rot","rotate","bds","x0","y0","x1","y1","SetCamera","makeDraggableSVG","svg","validateDrag","xRange","selectedShape","posOffset","startDrag","drag","endDrag","getMousePosition","CTM","getScreenCTM","clientX","clientY","f","d","classList","contains","getAttributeNS","coord","moveX","moveY","setAttributeNS","clamp","num","views","imageViewerWidget"],"mappings":"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,OAAO;AACP;AACA,iCAAiC,oBAAoB;AACrD,4BAA4B;AAC5B,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO,wDAAwD;AAC/D;AACA;;AAEA;AACA;AACA,wCAAwC,8CAA8C;AACtF;AACA;AACA;AACA,mBAAmB,eAAe;AAClC,OAAO,0CAA0C,kBAAkB,EAAE;AACrE;AACA;;AAEA,oCAAoC,eAAe;AACnD;AACA,KAAK,+BAA+B,yBAAyB,uCAAuC,GAAG;AACvG;AACA,KAAK,+BAA+B,MAAM,eAAe,EAAE,aAAa,GAAG;;AAE3E,oBAAoB;;AAEpB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oBAAoB;;AAEpB;AACA;AACA,sBAAsB;AACtB;;AAEA;AACA,kBAAkB,aAAa;AAC/B;AACA,OAAO;AACP,SAAS,0BAA0B,EAAE;AACrC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qBAAqB;AAC3C;AACA,uDAAuD;AACvD;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,kBAAkB;AACrC,OAAO,uBAAuB,WAAW;AACzC;AACA;;AAEA;AACA;;AAEA;AACA;AACA,cAAc,qBAAqB;;AAEnC;AACA,wBAAwB,cAAc,eAAe,iBAAiB,cAAc;;AAEpF;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,0BAA0B,yBAAyB;AACnD;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,wBAAwB;AACxB;AACA;;AAEA;AACA;AACA;AACA,OAAO,sCAAsC;AAC7C;AACA;;AAEA,qBAAqB;;AAErB;AACA;AACA,mBAAmB,kBAAkB,OAAO,yBAAyB;AACrE;AACA;;AAEA;AACA;AACA,iEAAiE,OAAO;AACxE;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,gBAAgB,sBAAsB;AACtC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,mEAAmE;AACnE;AACA;;AAEA;AACA,wBAAwB,uCAAuC,eAAe;AAC9E;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;;AAEhC,0CAA0C;AAC1C;AACA,wFAAwF,YAAY;AACpG;AACA;;AAEA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,uBAAuB;AACvB;AACA,wBAAwB;AACxB,sBAAsB,UAAU;AAChC,YAAY,kBAAkB;AAC9B;AACA;;AAEA;;AAEA;AACA,iBAAiB;AACjB;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,oBAAoB;AACrC;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA,yCAAyC;AACzC;AACA,uDAAuD,WAAW;AAClE,cAAc,eAAe;AAC7B;AACA;AACA,uDAAuD,WAAW;AAClE,cAAc,eAAe;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD,kDAAkD;AAClD,gCAAgC;AAChC,YAAY;AACZ;;AAEA;AACA;;AAEA;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;;AAEA,uEAAuE;AACvE;AACA,qBAAqB,SAAS;AAC9B,SAAS,yCAAyC;;AAElD;AACA;AACA;AACA;AACA,yCAAyC,WAAW;AACpD;AACA,0BAA0B,mBAAmB;AAC7C,cAAc,aAAa;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA,wCAAwC,WAAW;AACnD;AACA,0CAA0C,kBAAkB;AAC5D,yCAAyC,cAAc,qBAAqB,kBAAkB,EAAE;AAChG;;AAEA;AACA;AACA;AACA,0CAA0C,eAAe;AACzD;AACA,oEAAoE,kBAAkB;AACtF;AACA,oDAAoD,qBAAqB;AACzE;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB,WAAW;AAClC;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA,6BAA6B,gCAAgC;AAC7D;AACA,2BAA2B,SAAS,OAAO,oBAAoB;AAC/D;AACA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C,WAAW;AACrD;AACA,4CAA4C,kBAAkB;AAC9D,yCAAyC,gBAAgB;AACzD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,WAAW;AAClC;AACA;AACA,+BAA+B,6CAA6C;AAC5E;AACA;AACA;AACA,6BAA6B,aAAa,SAAS,wBAAwB;AAC3E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,WAAW;AAClC;AACA;AACA,qBAAqB,4CAA4C;AACjE;AACA,SAAS;AACT;AACA,qBAAqB,gCAAgC;AACrD,6BAA6B,WAAW;AACxC;AACA,8BAA8B,gDAAgD,aAAa;AAC3F;AACA,yBAAyB,2CAA2C;AACpE;AACA;AACA;AACA,aAAa,OAAO,OAAO;AAC3B;AACA,0BAA0B,gDAAgD;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,wBAAwB,yDAAyD;AACjF;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL,4DAA4D;AAC5D;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,WAAW,8DAA8D;AACzE;AACA;AACA;;AAEA;AACA;AACA,2BAA2B;AAC3B;AACA,mBAAmB,qBAAqB,OAAO,+BAA+B;AAC9E;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAM,qCAAqC,8BAA8B,IAAI;AACpF;AACA;AACA;;AAEA;AACA;AACA,eAAe;AACf;AACA,mBAAmB,gBAAgB,OAAO;AAC1C,OAAO,kBAAkB,EAAE;AAC3B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,2CAA2C;AAC3C,4CAA4C;AAC5C;;AAEA;AACA;;AAEA;AACA,2BAA2B,oBAAoB;AAC/C,UAAU,uBAAuB;AACjC;AACA;AACA,4BAA4B,qBAAqB;AACjD,UAAU,uBAAuB;AACjC;AACA;AACA;AACA;AACA,sBAAsB,oBAAoB;;AAE1C,wBAAwB;AACxB;AACA;AACA;AACA,yBAAyB,OAAO;AAChC,8BAA8B,OAAO;AACrC,8BAA8B,OAAO;AACrC;AACA,qCAAqC,OAAO;AAC5C;AACA;;AAEA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,2FAA2F;AACpG;AACA;AACA,yDAAyD,YAAY;AACrE;AACA;AACA;;AAEA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA,qCAAqC,eAAe;AACpD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oBAAoB;AACzC;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG,sBAAsB,iCAAiC;;AAE1D;AACA,SAAS;AACT,cAAc;AACd,GAAG;AACH;AACA,SAAS;AACT;AACA,gDAAgD;AAChD;AACA;;AAEA;AACA;AACA,wBAAwB;AACxB,qCAAqC;AACrC;AACA,GAAG;;AAEH;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA;AACA;AACA,OAAO,8DAA8D;AACrE;AACA;;AAEA;AACA;AACA;;AAEA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,qCAAqC,UAAU,aAAa;AAC5D;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA,kCAAkC,SAAS,WAAW;AACtD,UAAU,iBAAiB,aAAa;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,yCAAyC;AACzC,2CAA2C,qCAAqC;AAChF;AACA;AACA;AACA;AACA,0BAA0B,sCAAsC;AAChE,yBAAyB;AACzB,OAAO,0CAA0C,EAAE;;AAEnD;AACA;;AAEA;AACA;AACA;AACA;AACA,sGAAsG;AACtG;AACA;;AAEA;AACA,yBAAyB;AACzB,yBAAyB;AACzB;AACA;AACA;AACA,iCAAiC,sBAAsB;AACvD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA,oBAAoB;AACpB;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4CAA4C;AAC5C,4CAA4C;AAC5C,6CAA6C;AAC7C;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,mCAAmC,kBAAkB;AACrD,UAAU,sDAAsD;AAChE,aAAa,WAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,YAAY;AACzE;AACA;AACA,kDAAkD;AAClD;AACA;AACA,qBAAqB,iBAAiB;AACtC;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kDAAkD;AACpF;AACA;AACA,gCAAgC,4BAA4B;AAC5D;AACA;AACA,KAAK;AACL;AACA,qCAAqC;AACrC,uCAAuC,6BAA6B;AACpE;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA,SAAS;AACT,aAAa,qBAAqB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,sBAAsB;AACtB;AACA,qBAAqB,eAAe;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,8BAA8B;AACxD,4BAA4B,6BAA6B;AACzD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,wCAAwC,qBAAqB,EAAE,EAAE;AACjE;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,mBAAmB,GAAG,gBAAgB,kBAAkB,EAAE;AACzE;;AAEA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,gCAAgC,OAAO;AACvC,sBAAsB;AACtB,uCAAuC;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6BAA6B;AACpD;AACA,qBAAqB,eAAe;AACpC;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,UAAU,wBAAwB;AAClC;AACA,mBAAmB;AACnB;AACA;AACA;AACA;;AAEA,2BAA2B;;AAE3B;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iCAAiC;AACjC;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB;;AAEtB,iCAAiC;;AAEjC,uBAAuB;AACvB,yBAAyB;AACzB,yBAAyB;;AAEzB;AACA;AACA,6BAA6B;AAC7B;AACA,+BAA+B;AAC/B;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,qCAAqC;AACrC,sBAAsB;AACtB,UAAU;AACV;AACA;AACA;AACA,mBAAmB,kBAAkB,OAAO,iCAAiC;AAC7E;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gDAAgD,uBAAuB;AACvE;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA,OAAO,wBAAwB;AAC/B;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA,gCAAgC,qBAAqB;AACrD;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,4BAA4B,EAAE;AACtG;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sCAAsC;AACnD;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,SAAS;AACT,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA,mBAAmB,8BAA8B;;AAEjD,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB,4BAA4B;AACnD;AACA;AACA,2BAA2B,oCAAoC;AAC/D,mCAAmC,0BAA0B;AAC7D;AACA,SAAS,iFAAiF;AAC1F;AACA;AACA;;AAEA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,kBAAkB,iCAAiC;AACnD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oCAAoC;AACzD;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB,0BAA0B;AAC1B;AACA,+BAA+B;AAC/B;;AAEA;AACA,mBAAmB,QAAQ;AAC3B,kBAAkB,wCAAwC;AAC1D;AACA,sCAAsC;AACtC;AACA;AACA;;AAEA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B;AACA;AACA;AACA,oBAAoB,2EAA2E;AAC/F;AACA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB;AACA,uBAAuB;AACvB;AACA;AACA;AACA,SAAS,6BAA6B;AACtC;AACA,SAAS,oCAAoC;AAC7C,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,+BAA+B,wCAAwC;AACvE;AACA;AACA;AACA,qBAAqB,qEAAqE;AAC1F;AACA;AACA;AACA,yBAAyB,4CAA4C;AACrE;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,oBAAoB,sDAAsD;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,cAAc;AACtC,gCAAgC;AAChC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yCAAyC;AACzC;AACA,0BAA0B,cAAc;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,qBAAqB;AACrB;;AAEA;AACA;AACA,gBAAgB,gBAAgB,kBAAkB;AAClD;AACA,kCAAkC;AAClC,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC,OAAO,wBAAwB,gCAAgC,EAAE;AACjE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,qBAAqB,gCAAgC;AACrD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,gBAAgB,gBAAgB;AAC9C;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,cAAc,gBAAgB,gBAAgB;AAC9C;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,gCAAgC;;AAEhC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,kBAAkB;AACvC;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C,8BAA8B,uDAAuD;AACrF;AACA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA,gCAAgC,qBAAqB;AACrD;AACA;AACA;AACA;AACA,2BAA2B,sCAAsC;AACjE;AACA,SAAS;AACT;AACA,yBAAyB,sCAAsC;AAC/D;AACA;AACA;AACA;AACA,gBAAgB,gCAAgC;AAChD,gCAAgC,8BAA8B;;AAE9D;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAkB,oBAAoB;AAC/C,WAAW;AACX,aAAa,uFAAuF,EAAE,EAAE;AACxG,uBAAuB,WAAW;AAClC,SAAS,6BAA6B;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA,SAAS,sBAAsB;AAC/B;AACA,wBAAwB;AACxB;AACA;;AAEA;AACA;AACA;AACA;AACA,6BAA6B,gBAAgB,6BAA6B;AAC1E;AACA;AACA,WAAW,wCAAwC;AACnD,OAAO;AACP,KAAK;AACL,mBAAmB;AACnB,kBAAkB,mBAAmB;AACrC,mBAAmB,oBAAoB;AACvC;AACA,qBAAqB,kBAAkB;AACvC;AACA,6DAA6D;AAC7D;AACA;AACA,WAAW,gBAAgB,yBAAyB,EAAE;AACtD;AACA,WAAW,gBAAgB,qBAAqB,EAAE;AAClD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB,mBAAmB,kBAAkB;AACrC,OAAO,kCAAkC;AACzC;AACA;AACA;AACA,iBAAiB;AACjB,mBAAmB,kBAAkB;AACrC,OAAO,kCAAkC;AACzC;AACA;;AAEA;AACA;AACA,8BAA8B;AAC9B,+BAA+B;;AAE/B;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,kBAAkB;AAClB;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,+BAA+B,gBAAgB;AAC7D;AACA;AACA;AACA,SAAS,mBAAmB;AAC5B,KAAK;AACL;AACA;AACA,uCAAuC;AACvC,qCAAqC;;AAErC;AACA;AACA,cAAc,gBAAgB,gBAAgB;AAC9C;AACA;AACA,sEAAsE,mBAAmB;AACzF,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,gBAAgB,gBAAgB;AAC9C;AACA,iCAAiC;AACjC;AACA;AACA;AACA,qEAAqE;AACrE;AACA;AACA,SAAS;AACT,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,mCAAmC;AAC1C;AACA;;AAEA;AACA;AACA;AACA,OAAO,kCAAkC;AACzC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;;AAEA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,mCAAmC;AACnC;AACA,OAAO,kCAAkC;AACzC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,+BAA+B,gBAAgB;AAC7D;AACA,iCAAiC;AACjC,4BAA4B;AAC5B,iCAAiC;AACjC;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,kCAAkC,6BAA6B;AAC/D;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mBAAmB,wBAAwB;AAC3C;AACA,4BAA4B;AAC5B,YAAY,kBAAkB;AAC9B;AACA,8BAA8B,GAAG;AACjC,uBAAuB,yBAAyB;AAChD;AACA,2BAA2B;AAC3B,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uCAAuC;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA,0BAA0B,wBAAwB;AAClD,sBAAsB,oBAAoB;AAC1C,6BAA6B,mBAAmB;AAChD;AACA;AACA;AACA,mCAAmC,mCAAmC;AACtE;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,wCAAwC;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,iDAAiD;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,+DAA+D;AACxE;AACA;AACA;AACA;AACA;AACA,WAAW,iFAAiF;AAC5F;AACA,WAAW,uFAAuF;AAClG;;AAEA;AACA;AACA,SAAS,2FAA2F;;AAEpG;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,SAAS,mEAAmE;AAC5E;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS,gDAAgD;AACzD;;AAEA;AACA;AACA,OAAO,iFAAiF;;AAExF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,iBAAiB;AAClD;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,yCAAyC;AAC9E,gBAAgB,0BAA0B;AAC1C;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,qCAAqC,2CAA2C;AAChF,gBAAgB,4BAA4B;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD,qBAAqB,uBAAuB;AAC5C;AACA;AACA,sCAAsC;AACtC,WAAW,4CAA4C,EAAE;AACzD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA,SAAS,eAAe;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA,sDAAsD;AACtD;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,2DAA2D;AAC5E;AACA;AACA,SAAS,sEAAsE;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qBAAqB;AAC5C,SAAS,wHAAwH;AACjI;AACA;;AAEA;AACA;AACA,WAAW;AACX,8BAA8B;AAC9B;AACA;AACA,yBAAyB;AACzB;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,8BAA8B,gCAAgC;AAC9D,wBAAwB,sBAAsB,gBAAgB;AAC9D,iDAAiD,sCAAsC;AACvF,oDAAoD,yDAAyD;AAC7G;AACA;AACA,0BAA0B,gCAAgC,mBAAmB;AAC7E;AACA;AACA,iBAAiB,gCAAgC,8BAA8B;AAC/E;AACA;AACA,eAAe,gBAAgB;AAC/B,WAAW;AACX;AACA;AACA;AACA,wBAAwB,kBAAkB,wBAAwB;AAClE,WAAW,wCAAwC,sCAAsC,EAAE,EAAE;;AAE7F,kDAAkD,kBAAkB,6BAA6B;AACjG,WAAW,qDAAqD,EAAE;AAClE;AACA;AACA;AACA,qCAAqC;AACrC,oCAAoC,mBAAmB;AACvD;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8BAA8B,YAAY;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,UAAU;AAClC;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,SAAS,yBAAyB;AAClC,qBAAqB,sBAAsB;AAC3C;AACA;AACA,WAAW;AACX,aAAa,wEAAwE,EAAE;AACvF;AACA,KAAK;AACL;;AAEA;AACA;AACA,iBAAiB;;AAEjB,SAAS,4BAA4B;AACrC;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,6BAA6B,iCAAiC,EAAE;AAChE;;AAEA,mBAAmB,gBAAgB;AACnC;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,oBAAoB,OAAO,cAAc;AAC5D;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,6BAA6B;AAChD;AACA,2BAA2B,8BAA8B;AACzD,kCAAkC,6CAA6C;AAC/E,iCAAiC,iCAAiC;AAClE,kCAAkC,uCAAuC;AACzE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,qEAAqE;AAC9E;AACA,iCAAiC,gCAAgC;AACjE;AACA;AACA;;AAEA;AACA;AACA,cAAc,qCAAqC;AACnD;AACA,gBAAgB,qCAAqC;AACrD,YAAY,iEAAiE,4BAA4B;AACzG,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,2BAA2B;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO,iEAAiE;AACxE;AACA,OAAO,8BAA8B;AACrC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0HAA0H;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,yDAAyD;AAClE;AACA,SAAS;AACT;AACA;AACA,4EAA4E,qDAAqD;AACjI,oBAAoB,gBAAgB,mCAAmC;AACvE;AACA;AACA,WAAW;AACX,6EAA6E,6CAA6C;AAC1H,OAAO;AACP;AACA;;AAEA;AACA,6BAA6B,2BAA2B;AACxD;AACA,8DAA8D,MAAM;AACpE;AACA,0CAA0C,iCAAiC;AAC3E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,kCAAkC;AAC1D,0BAA0B,sCAAsC;;AAEhE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB,0BAA0B;AAClE,OAAO,mEAAmE,EAAE;AAC5E;;AAEA;AACA,wBAAwB;AACxB;AACA,sCAAsC,eAAe;AACrD;AACA,sCAAsC,+CAA+C;AACrF;AACA;AACA;AACA,SAAS,2DAA2D;AACpE;AACA,SAAS,wBAAwB;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,uDAAuD;AACrF;AACA;;AAEA;AACA,gCAAgC;AAChC;AACA,cAAc;AACd;AACA,4CAA4C;AAC5C;AACA,SAAS,wEAAwE,EAAE;AACnF;AACA,SAAS,iEAAiE,EAAE;AAC5E;AACA;AACA;AACA;;AAEA;AACA;AACA,6BAA6B,sBAAsB;AACnD;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA,gCAAgC;AAChC,iCAAiC;AACjC;AACA,iCAAiC;AACjC;AACA;AACA,gBAAgB;AAChB,kDAAkD,+BAA+B;AACjF;AACA;;AAEA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,aAAa,sDAAsD;AACnE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAAS,yDAAyD;AACzE;AACA,qBAAqB,0BAA0B;AAC/C,SAAS;AACT,WAAW,SAAS,iEAAiE,EAAE;AACvF,uBAAuB,4BAA4B;AACnD,SAAS;AACT,WAAW,SAAS,mFAAmF,EAAE;AACzG;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,YAAY,yBAAyB;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO,4CAA4C;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0BAA0B,SAAS;AACnC;AACA;AACA;AACA,KAAK;AACL;AACA,SAAS,4DAA4D;AACrE;AACA;AACA;AACA;AACA;AACA,yBAAyB,6BAA6B;AACtD;AACA,YAAY;AACZ;AACA;AACA;;AAEA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA,kBAAkB;AAClB;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,yBAAyB,oBAAoB;AAC7C;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA,yBAAyB,gBAAgB,kBAAkB;AAC3D,iDAAiD;AACjD,KAAK,EAAE,OAAO,iCAAiC,UAAU;AACzD,mDAAmD;AACnD,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA,6BAA6B;AAC7B,uBAAuB,SAAS,SAAS;AACzC,+FAA+F,SAAS;AACxG,+HAA+H,OAAO;AACtI;AACA,WAAW,gDAAgD;AAC3D;AACA,WAAW,sEAAsE;AACjF,oDAAoD;AACpD;AACA;AACA;AACA;AACA,kCAAkC,4DAA4D;AAC9F,KAAK,OAAO;AACZ,sBAAsB,2BAA2B;AACjD;AACA;AACA,SAAS,sDAAsD;AAC/D;AACA,SAAS,qCAAqC;AAC9C;AACA;AACA;AACA;AACA,SAAS,SAAS,mGAAmG;AACrH;AACA,SAAS,iBAAiB;AAC1B;;AAEA;AACA;AACA;AACA;AACA,UAAU,wBAAwB;AAClC,OAAO,wBAAwB,QAAQ;AACvC;AACA,kBAAkB;AAClB;AACA;AACA,oCAAoC,qBAAqB;AACzD,gDAAgD,oBAAoB,uBAAuB;;AAE3F;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA,0BAA0B,gBAAgB,0BAA0B;AACpE,SAAS,iCAAiC,EAAE;AAC5C;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C,OAAO,kDAAkD;AACzD;;AAEA;AACA;AACA;AACA,mCAAmC,kCAAkC;AACrE;AACA;;AAEA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,gBAAgB,oBAAoB,OAAO;AAC7D,OAAO,oCAAoC,EAAE,EAAE;AAC/C;AACA;;AAEA,iBAAiB,yBAAyB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,4BAA4B;AAC5B,mBAAmB,mBAAmB;AACtC;AACA,6BAA6B,gCAAgC;AAC7D,UAAU,+BAA+B;AACzC;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA,YAAY;AACZ;;AAEA;AACA,mBAAmB,qCAAqC;AACxD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,sDAAsD;AACjF;AACA;AACA,kBAAkB,kBAAkB,EAAE,OAAO,kBAAkB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oDAAoD;AAC5E;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC,uCAAuC;AAC1E;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,uBAAuB;AACzC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,OAAO;AACP,gBAAgB,OAAO;;AAEvB;AACA,WAAW;AACX;AACA;AACA,uBAAuB;AACvB;AACA,mCAAmC;AACnC;AACA;AACA;;AAEA;AACA;AACA;AACA,yCAAyC,qEAAqE,EAAE;AAChH,mCAAmC,6DAA6D,EAAE;AAClG,YAAY;AACZ;;AAEA;AACA,2BAA2B,sDAAsD;AACjF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,+CAA+C,MAAM;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,yBAAyB;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,OAAO;AACzD;AACA,mBAAmB,kBAAkB;AACrC;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gCAAgC;AAChD;AACA,4BAA4B,SAAS,6CAA6C;AAClF,wBAAwB,SAAS,6CAA6C;AAC9E;AACA;;AAEA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mCAAmC;AACxD;AACA;AACA;;AAEA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA,oBAAoB,iCAAiC;AACrD;AACA;;AAEA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,6CAA6C,GAAG;AAChD;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;;AAEvC;AACA,yBAAyB,gBAAgB,yBAAyB;AAClE,qCAAqC,yCAAyC;AAC9E,OAAO;;AAEP;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA,qCAAqC,mCAAmC;AACxE,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;;AAE3E;AACA;AACA,SAAS,4BAA4B,2BAA2B;AAChE,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,gBAAgB;AAChB;AACA,mBAAmB,iBAAiB;AACpC;AACA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qBAAqB;AAC5C,qBAAqB,iCAAiC;AACtD,mBAAmB,aAAa;;AAEhC;AACA;AACA;AACA,OAAO,kCAAkC;;AAEzC;;AAEA,iCAAiC;AACjC;AACA,SAAS,eAAe;AACxB,KAAK,mCAAmC;AACxC;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK,6DAA6D;AAClE;AACA,KAAK,qCAAqC;AAC1C;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK,iCAAiC;AACtC;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK,OAAO;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS,sBAAsB;AAC/B;AACA,SAAS,iCAAiC;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,iCAAiC;;AAExC,4DAA4D;AAC5D;AACA,gCAAgC;AAChC;AACA,mCAAmC,gBAAgB;AACnD;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO,SAAS,0BAA0B;AAC1C;AACA,mBAAmB,WAAW;AAC9B,OAAO,mBAAmB;AAC1B;AACA;AACA,uCAAuC;AACvC;AACA;AACA,OAAO;AACP;AACA;AACA,mBAAmB;AACnB;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,SAAS,gFAAgF;AACzF;AACA,SAAS,4DAA4D;AACrE;AACA;AACA,SAAS,4EAA4E;AACrF;AACA,SAAS,6DAA6D;AACtE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA,qEAAqE,SAAS;AAC9E;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,uBAAuB,gBAAgB;AACvC,mBAAmB,2BAA2B;AAC9C,+CAA+C;AAC/C;AACA,4FAA4F;AAC5F;AACA;AACA;AACA,mBAAmB,4CAA4C;AAC/D,OAAO;AACP;AACA;AACA;AACA,SAAS,4CAA4C;AACrD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA,wFAAwF,sBAAsB,kDAAkD,6DAA6D;AAC7N;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,gDAAgD;AAC3F;AACA;;AAEA,sDAAsD,iBAAiB;AACvE,0CAA0C,eAAe;AACzD,kDAAkD,eAAe;AACjE,wCAAwC,aAAa;AACrD,OAAO;AACP,cAAc;AACd;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS,qDAAqD;AAC9D;;AAEA;AACA;;AAEA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,6BAA6B,YAAY;AACzC;AACA,OAAO,8BAA8B;AACrC;AACA,OAAO,+CAA+C;AACtD;;AAEA;AACA;AACA;AACA,8BAA8B,aAAa;AAC3C;AACA;;AAEA;AACA;AACA,4BAA4B;AAC5B;AACA,6BAA6B,YAAY;AACzC,KAAK,EAAE;AACP;;AAEA;AACA,+DAA+D,oCAAoC;;AAEnG,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,yBAAyB,qCAAqC,EAAE,MAAM,EAAE;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yBAAyB,0BAA0B,EAAE,EAAE;AACnF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,0EAA0E;AACrF;AACA;AACA;AACA,kCAAkC,oBAAoB;AACtD;AACA;AACA,uBAAuB,gBAAgB,qBAAqB;AAC5D,WAAW,iCAAiC,EAAE;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0CAA0C;AAC7E;;AAEA;AACA;AACA;AACA,uBAAuB,gBAAgB,yBAAyB;AAChE;AACA,mBAAmB,gCAAgC;AACnD,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,OAAO,SAAS,OAAO,UAAU;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;;AAEA;AACA;AACA;AACA,qDAAqD;;AAErD;AACA;AACA,iCAAiC,iBAAiB;AAClD,yGAAyG,kBAAkB;AAC3H;AACA,uEAAuE,mGAAmG,0GAA0G,uDAAuD,wDAAwD;AACnY;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yBAAyB,YAAY;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,WAAW;AAClC;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,gBAAgB;AACxE;AACA;AACA;AACA,0DAA0D,gBAAgB;AAC1E;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA,sCAAsC,0CAA0C;AAChF,uCAAuC,yCAAyC;AAChF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,cAAc;AACrC;AACA;AACA,0CAA0C,iCAAiC;AAC3E;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,gCAAgC,2BAA2B;AAC3D;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,kCAAkC;AACpD;AACA,OAAO,uBAAuB;AAC9B;AACA,OAAO,+EAA+E;AACtF;AACA,OAAO,+DAA+D;AACtE;AACA;;AAEA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;;AAEA;AACA,iCAAiC,wBAAwB;AACzD,oBAAoB,yBAAyB;AAC7C,oBAAoB,wBAAwB;AAC5C;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,+CAA+C;AAC/C,iBAAiB,0BAA0B,SAAS,EAAE;AACtD;AACA,gBAAgB,yBAAyB;AACzC;AACA;;AAEA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA,+CAA+C,qCAAqC;AACpF;;AAEA;AACA;AACA;AACA;AACA,0GAA0G;AAC1G;AACA;AACA,gDAAgD,sCAAsC;AACtF;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8EAA8E;AAC9E;AACA,gBAAgB;;AAEhB;AACA,8BAA8B,oCAAoC;AAClE,KAAK;AACL;AACA,8BAA8B,wCAAwC;AACtE,KAAK;;AAEL;AACA;AACA,+BAA+B,gEAAgE;AAC/F;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;;AAEA,YAAY;AACZ;;AAEA;AACA,uCAAuC,6BAA6B;AACpE,4BAA4B,iEAAiE;AAC7F;;AAEA;AACA,qCAAqC,2BAA2B;AAChE,2BAA2B,8DAA8D;AACzF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iCAAiC;AACxD,YAAY,+BAA+B;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,iDAAiD,SAAS,oBAAoB;AAC9E;AACA;AACA;;AAEA;AACA,mBAAmB,oCAAoC;AACvD;AACA;AACA,mBAAmB,mFAAmF;AACtG;AACA,SAAS,6BAA6B;AACtC;AACA,uCAAuC;AACvC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK,OAAO,sCAAsC;AAClD;AACA;AACA;AACA;AACA,KAAK,OAAO,mCAAmC;AAC/C;;AAEA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA,SAAS,6DAA6D;AACtE;;AAEA;AACA;AACA;AACA;AACA,+BAA+B,yBAAyB,iCAAiC,EAAE,KAAK;AAChG,OAAO;AACP;AACA,KAAK;AACL,iCAAiC,wBAAwB;AACzD,YAAY,0BAA0B;AACtC,KAAK;AACL;AACA,OAAO,8DAA8D;AACrE;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb,qBAAqB,sBAAsB;AAC3C,SAAS,8BAA8B;AACvC;AACA,KAAK,EAAE;AACP;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,gBAAgB;AACnC,OAAO,yBAAyB;AAChC,qBAAqB,kBAAkB;AACvC,OAAO,2BAA2B;AAClC,qBAAqB,kBAAkB;AACvC,OAAO,2BAA2B;AAClC,qBAAqB,kBAAkB;AACvC,OAAO,2BAA2B;AAClC,qBAAqB,kBAAkB;AACvC,OAAO,+BAA+B;AACtC;;AAEA;AACA;AACA;AACA,2BAA2B,iBAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA,8CAA8C,0CAA0C;AACxF;;AAEA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B,6BAA6B;;AAEzD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO,yDAAyD;AAChE;;AAEA;AACA;;AAEA;AACA;AACA;AACA,SAAS,qFAAqF;AAC9F;AACA;;AAEA;AACA;AACA,OAAO,iEAAiE;AACxE;AACA,OAAO,qCAAqC;AAC5C;AACA,OAAO,sCAAsC;;AAE7C,8BAA8B,kBAAkB;;AAEhD;AACA,OAAO,mCAAmC;AAC1C,oBAAoB,oBAAoB;AACxC;;AAEA;AACA;;AAEA,4BAA4B,kCAAkC;;AAE9D;AACA;AACA,OAAO,kDAAkD;;AAEzD;AACA,+BAA+B,gDAAgD;;AAE/E,gCAAgC,8CAA8C;AAC9E;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,gBAAgB,mBAAmB;AACpD,OAAO,+BAA+B,2BAA2B,EAAE,EAAE;AACrE,mBAAmB,kBAAkB,uBAAuB;AAC5D,OAAO,kCAAkC,iCAAiC,EAAE,EAAE;;AAE9E;AACA,OAAO,+CAA+C;;AAEtD;AACA;AACA,OAAO,0CAA0C;AACjD;AACA,OAAO,oBAAoB;AAC3B;;AAEA;AACA;AACA,mBAAmB;AACnB;AACA,SAAS;AACT,aAAa,kBAAkB;AAC/B;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,WAAW;AACX,eAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,WAAW;AACX,eAAe,oBAAoB;AACnC;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,WAAW;AACX,eAAe,kBAAkB;AACjC;AACA;;AAEA;;AAEA;AACA;AACA,OAAO,yDAAyD;AAChE;;AAEA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;;AAEA;AACA,gDAAgD;AAChD;AACA;AACA;AACA,yBAAyB,4BAA4B;AACrD;AACA;AACA,qBAAqB,4BAA4B;AACjD,0BAA0B,0BAA0B;AACpD;AACA;AACA,uBAAuB,mCAAmC,OAAO,2CAA2C;AAC5G,uBAAuB,iCAAiC;AACxD;AACA;AACA,OAAO;AACP;AACA,WAAW,qCAAqC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,8BAA8B;AAC9B,qBAAqB,yBAAyB;AAC9C,SAAS,4CAA4C;AACrD,KAAK,EAAE;AACP;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO,6BAA6B;AACpC;AACA;AACA,mBAAmB,wBAAwB;AAC3C,OAAO,oCAAoC;AAC3C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB;AACxB;AACA,2DAA2D;AAC3D,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4GAA4G;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kEAAkE,8CAA8C;AAChH,0DAA0D,oCAAoC;AAC9F;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,uBAAuB,wCAAwC;AAC/D;AACA,uBAAuB,oCAAoC;AAC3D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,WAAW,aAAa,0FAA0F;AAClH;AACA;AACA;AACA;AACA,WAAW;AACX,OAAO;AACP;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS,6BAA6B;AACtC;AACA,SAAS,mCAAmC;AAC5C;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA,4BAA4B,oEAAoE;AAChG;AACA;AACA,OAAO,OAAO;AACd,sCAAsC,eAAe;AACrD;AACA;AACA;AACA,yDAAyD,sBAAsB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,eAAe;AAChC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,4FAA4F;AAC5F;AACA;AACA,mBAAmB,iBAAiB,OAAO;AAC3C;AACA;AACA,WAAW,kCAAkC;AAC7C;AACA,WAAW,4CAA4C;AACvD;AACA;AACA,kBAAkB,gBAAgB,kBAAkB;AACpD,SAAS,4BAA4B,EAAE;AACvC,KAAK;AACL;AACA,OAAO,sDAAsD;AAC7D;;AAEA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA,oCAAoC,oBAAoB,uBAAuB;AAC/E;AACA,2BAA2B;AAC3B,cAAc,uBAAuB;AACrC;AACA,mBAAmB,8BAA8B;AACjD;AACA,yCAAyC,cAAc,iDAAiD,EAAE;AAC1G;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA,kBAAkB,4BAA4B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,+BAA+B,YAAY;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,yCAAyC;;AAEnF;AACA;AACA;;AAEA;AACA,+BAA+B,6BAA6B,mCAAmC;AAC/F,wCAAwC,6BAA6B;;AAErE;AACA,8BAA8B,8BAA8B;AAC5D,YAAY,kBAAkB;AAC9B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,2BAA2B;AACtC,mBAAmB,yBAAyB;AAC5C,oBAAoB,0BAA0B;AAC9C,oBAAoB,2BAA2B;;AAE/C;AACA;AACA,gEAAgE,eAAe;AAC/E,8DAA8D,eAAe;AAC7E,0BAA0B,mBAAmB;AAC7C,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gDAAgD,+CAA+C;AAC/F,YAAY,2CAA2C;AACvD;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kDAAkD;;AAElD;AACA;AACA;AACA;AACA;AACA,0DAA0D,eAAe;AACzE,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,yEAAyE;AAClF;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,qBAAqB;AAC9B,iCAAiC;AACjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sCAAsC;AAC7D,YAAY,kDAAkD;AAC9D,+BAA+B,sBAAsB;AACrD;;AAEA;AACA;AACA,gDAAgD;AAChD,6BAA6B;AAC7B;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,SAAS;AACT,OAAO;AACP,8BAA8B;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6CAA6C;;AAE7C;AACA,wBAAwB;AACxB,yFAAyF;AACzF,mBAAmB,wBAAwB;AAC3C;AACA,iGAAiG;AACjG;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,wBAAwB;AAC3C,OAAO,kFAAkF;AACzF;AACA;;AAEA;AACA,mBAAmB,wBAAwB;AAC3C,OAAO,+BAA+B,cAAc;AACpD;AACA;;AAEA;AACA,eAAe,WAAW;AAC1B,mBAAmB,wBAAwB;AAC3C;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;;AAEA,sCAAsC;AACtC,oCAAoC;AACpC,uCAAuC;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gCAAgC,EAAE;AACnE;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA,6BAA6B,aAAa;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA,oCAAoC;AACpC,mCAAmC;;AAEnC;AACA,qCAAqC,2CAA2C;AAChF;AACA;;AAEA;AACA;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B,wBAAwB;AACpD,wBAAwB,oBAAoB;AAC5C,KAAK;AACL;AACA;AACA;AACA,mBAAmB,eAAe;AAClC;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,SAAS;AAClC,SAAS,6DAA6D;AACtE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD,yBAAyB,8BAA8B;AACvD,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,uBAAuB,uCAAuC;AAC9D;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,gBAAgB,uBAAuB;AAC9D;AACA,8BAA8B;AAC9B;AACA,wCAAwC;AACxC;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,iBAAiB;AACpD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,oCAAoC,gFAAgF,EAAE;AACtH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wBAAwB,aAAa;AACrC,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS,4CAA4C;AACrD,aAAa;AACb;AACA;AACA;AACA;AACA,mCAAmC,mBAAmB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,6BAA6B;AAC7C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,uCAAuC;AAC9C;AACA,OAAO,wCAAwC;;AAE/C;AACA;AACA;AACA;AACA,OAAO,mCAAmC;AAC1C;;AAEA;AACA;AACA;AACA,OAAO,gBAAgB;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS,wDAAwD,yBAAyB;AAC1F;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,mBAAmB,kBAAkB;AACrC,8CAA8C,YAAY,yBAAyB,EAAE;AACrF,qBAAqB,oBAAoB;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,mBAAmB,wBAAwB;AAC3C,OAAO,uCAAuC;AAC9C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,qBAAqB;;AAErB,mBAAmB,gBAAgB;AACnC;AACA;AACA,8BAA8B,uBAAuB;AACrD;AACA,yBAAyB,mBAAmB;AAC5C,aAAa,uCAAuC,iBAAiB;AACrE;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,oBAAoB;AACrC,qBAAqB,oBAAoB;AACzC;AACA,yBAAyB,oDAAoD;AAC7E,uBAAuB,2BAA2B;AAClD;AACA;AACA;AACA;AACA,SAAS,EAAE;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,yDAAyD;AAClF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C,OAAO,iEAAiE;AACxE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C,WAAW;AACX,mEAAmE;AACnE,OAAO;AACP;AACA;AACA;AACA,iBAAiB,sDAAsD;AACvE,mCAAmC;AACnC,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO,gDAAgD;;AAEvD;AACA;AACA;;AAEA;AACA,OAAO,6BAA6B;AACpC;;AAEA;AACA,8BAA8B;;AAE9B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA;AACA;AACA,mBAAmB,8BAA8B;AACjD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,2BAA2B,gBAAgB,6BAA6B;AACxE;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC,kBAAkB,IAAI;AACtB;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA,aAAa,8EAA8E;AAC3F;AACA,aAAa;AACb;;AAEA;AACA;AACA,WAAW,kEAAkE;AAC7E;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iCAAiC;AACjC,YAAY;AACZ,KAAK;AACL,gDAAgD;AAChD,YAAY;AACZ,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,4BAA4B;AACvD;AACA,iBAAiB;AACjB,iBAAiB,+BAA+B;AAChD,eAAe,2BAA2B;AAC1C,iBAAiB,iBAAiB;AAClC,iCAAiC,qBAAqB;AACtD,MAAM;AACN;AACA,iBAAiB,6CAA6C;;AAE9D;AACA,mBAAmB,8BAA8B;AACjD;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,uCAAuC;AACvC;;AAEA;AACA;AACA,oBAAoB;AACpB;;AAEA;AACA;AACA;AACA;AACA,oCAAoC,QAAQ;AAC5C,SAAS,uBAAuB,0FAA0F,EAAE;AAC5H,KAAK;AACL;AACA;AACA;;AAEA;AACA,8FAA8F;AAC9F;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,0CAA0C;;AAE1C;AACA;;AAEA;AACA;AACA;AACA,UAAU,mBAAmB;AAC7B;AACA;AACA,SAAS;AACT;AACA,6BAA6B;AAC7B;;AAEA,WAAW;AACX;AACA;AACA;AACA;AACA,oCAAoC,iBAAiB;AACrD;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO,OAAO;AACd;;AAEA;AACA;AACA;AACA;AACA,eAAe,kDAAkD;AACjE;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,yBAAyB,wBAAwB,yCAAyC,EAAE;AAC5F;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA,4CAA4C,UAAU;AACtD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,kEAAkE;AAClE;AACA;AACA,MAAM,EAAE;AACR;AACA;AACA,kDAAkD,cAAc;AAChE,SAAS,oCAAoC;AAC7C;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA,4CAA4C;;AAE5C;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;;AAEA,oBAAoB,+CAA+C;AACnE,iBAAiB,oDAAoD;AACrE,UAAU,+BAA+B;AACzC;;AAEA;AACA,OAAO,sBAAsB;AAC7B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA,OAAO,0BAA0B;;AAEjC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,+BAA+B,+BAA+B;AAC9D;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO,eAAe;AACtB;AACA,OAAO,sCAAsC;AAC7C;AACA,OAAO,gDAAgD;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oCAAoC;AAC9D,2BAA2B,+DAA+D;AAC1F;AACA;AACA;;AAEA;AACA;;AAEA,cAAc,WAAW;AACzB,4BAA4B,yDAAyD;AACrF,kCAAkC,6BAA6B;AAC/D,qBAAqB,+CAA+C;AACpE;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA,0BAA0B,iCAAiC,mBAAmB;AAC9E,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA,uBAAuB,0BAA0B;AACjD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,4CAA4C;AAChF,UAAU,qBAAqB;AAC/B,qBAAqB;AACrB,iCAAiC,uCAAuC;AACxE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B,2BAA2B;;AAEtD;AACA;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,qBAAqB,kBAAkB,OAAO,wBAAwB;AACtE,KAAK;;AAEL;AACA;AACA,0BAA0B,QAAQ;AAClC,SAAS,0BAA0B,cAAc;AACjD;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B,mBAAmB;;AAE9C;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA,yBAAyB,8BAA8B,qBAAqB;AAC5E,+BAA+B;AAC/B;AACA,SAAS,OAAO,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,qBAAqB,0BAA0B,OAAO,kCAAkC;AACxF,KAAK;;AAEL;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,0BAA0B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;;AAEL;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA,0CAA0C;AAC1C,iCAAiC;AACjC;AACA,SAAS,OAAO,UAAU;AAC1B;AACA;AACA;;AAEA;;AAEA;AACA,kBAAkB,2BAA2B;AAC7C,OAAO,0BAA0B,EAAE,EAAE;AACrC;AACA;AACA;;AAEA;AACA;AACA,4BAA4B;AAC5B,mBAAmB,eAAe,OAAO,qBAAqB,mBAAmB,EAAE;AACnF,qBAAqB,qBAAqB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB;AAChB,wCAAwC,4CAA4C;AACpF;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA,OAAO,0BAA0B;AACjC;;AAEA;AACA;AACA;AACA,iCAAiC,gCAAgC;AACjE;AACA;AACA,oCAAoC,sBAAsB;AAC1D,YAAY,mFAAmF;AAC/F;AACA;AACA;AACA;AACA,2BAA2B,mCAAmC;AAC9D;AACA;AACA;AACA,KAAK;AACL,aAAa,qGAAqG;AAClH;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM,iBAAiB;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iCAAiC;AACjC;AACA,iBAAiB,oBAAoB;AACrC;AACA;AACA,kBAAkB,kDAAkD;AACpE;AACA;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA,kCAAkC,yCAAyC;AAC3E;AACA,8BAA8B,oBAAoB;AAClD,gCAAgC,oBAAoB;AACpD;AACA;AACA;AACA,SAAS,gDAAgD;AACzD;AACA,2DAA2D,kBAAkB,yBAAyB;AACtG;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL,8CAA8C,6BAA6B;AAC3E;AACA;AACA;AACA;AACA,eAAe,0BAA0B;AACzC;AACA,aAAa,sDAAsD;AACnE,iBAAiB,kBAAkB;AACnC,sBAAsB,qBAAqB;AAC3C;;AAEA,iEAAiE;AACjE,QAAQ;AACR;AACA;AACA;AACA;AACA,kDAAkD,UAAU;AAC5D;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,oBAAoB;AACpB;;AAEA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,+CAA+C;AAC1D;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,SAAS,wEAAwE;AACjF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA,kCAAkC;;AAElC;AACA,kBAAkB,iCAAiC;AACnD;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,uCAAuC,4DAA4D;AACnG,+BAA+B,qCAAqC;AACpE;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA,OAAO,0BAA0B,uCAAuC,gBAAgB;;AAExF;AACA;AACA;AACA,SAAS,sBAAsB;AAC/B,qDAAqD,2BAA2B;AAChF;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,2BAA2B;AAC3B,oCAAoC,2BAA2B;AAC/D,KAAK,EAAE;;AAEP,8BAA8B,8CAA8C,uBAAuB,EAAE,EAAE;;AAEvG;AACA;AACA;AACA,SAAS,oBAAoB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,+BAA+B;AACzD;AACA,SAAS,uCAAuC;AAChD;AACA;AACA,SAAS,wBAAwB,cAAc,OAAO,8BAA8B,EAAE;AACtF,0BAA0B,0BAA0B;AACpD;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC,OAAO,0BAA0B;AACjC;;AAEA;AACA,iCAAiC;AACjC;AACA,mBAAmB,yBAAyB;AAC5C,OAAO,yBAAyB;AAChC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,6CAA6C;AAChE;AACA,qBAAqB,uBAAuB;AAC5C,SAAS,8BAA8B,SAAS;AAChD;AACA,KAAK;AACL;AACA;;AAEA;AACA,4FAA4F,iBAAiB,EAAE;AAC/G;;AAEA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mDAAmD,uBAAuB,EAAE;AAC5E,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,oBAAoB;AACvC;;AAEA;AACA;AACA,iCAAiC;AACjC,4BAA4B,eAAe;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC,8BAA8B;AAChE,qBAAqB,mCAAmC;AACxD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8CAA8C;AAC7D,YAAY,sDAAsD;AAClE,KAAK;;AAEL;AACA;AACA;AACA,qBAAqB,kBAAkB,OAAO,2BAA2B;AACzE;AACA,KAAK;AACL,6BAA6B,sCAAsC,EAAE;;AAErE;AACA;;AAEA;AACA;AACA,8BAA8B;AAC9B;AACA,KAAK;AACL;AACA;AACA,wBAAwB;AACxB,oFAAoF;AACpF,oBAAoB,+BAA+B;AACnD;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,8BAA8B;AAC9B,2BAA2B;AAC3B;AACA,KAAK;;AAEL,6BAA6B,iCAAiC,oBAAoB;;AAElF,mCAAmC,yBAAyB,8BAA8B;AAC1F,mCAAmC,oBAAoB;;AAEvD;AACA,oCAAoC,4BAA4B;AAChE;AACA,KAAK;;AAEL,2BAA2B,iBAAiB;AAC5C,2BAA2B,kBAAkB;AAC7C,0BAA0B,kCAAkC;;AAE5D,4BAA4B,0BAA0B;;AAEtD;AACA;AACA,6CAA6C,kBAAkB;AAC/D,mCAAmC,oBAAoB;AACvD,oEAAoE,kBAAkB;AACtF,YAAY,oBAAoB;AAChC;AACA,KAAK;AACL,gCAAgC,yBAAyB;AACzD,mCAAmC,oCAAoC;;AAEvE;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,2BAA2B;AAC3B;AACA,qBAAqB,mBAAmB;AACxC,SAAS;AACT,8EAA8E;AAC9E,4BAA4B,2DAA2D;AACvF;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,qBAAqB,mBAAmB;AACxC;AACA;AACA;AACA,8BAA8B;AAC9B,YAAY;AACZ,KAAK;AACL;AACA;AACA,qBAAqB,mBAAmB;AACxC;AACA,gCAAgC,iDAAiD;AACjF;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,qBAAqB,4BAA4B;AACjD,SAAS,eAAe;AACxB;AACA,KAAK;AACL;AACA;AACA,qBAAqB,uBAAuB;AAC5C;AACA,sBAAsB;AACtB;AACA;AACA,wCAAwC,UAAU;AAClD,SAAS,gCAAgC;AACzC,mBAAmB,0CAA0C;AAC7D,yBAAyB,8BAA8B;AACvD,KAAK;AACL,kCAAkC,qCAAqC;AACvE,kCAAkC,qCAAqC;AACvE,2CAA2C,2CAA2C;AACtF,2CAA2C,2CAA2C;;AAEtF,iCAAiC,mBAAmB;AACpD,8BAA8B,mBAAmB;;AAEjD;AACA;AACA,qBAAqB,sBAAsB,OAAO,4BAA4B,QAAQ,EAAE;AACxF,uBAAuB,0BAA0B,SAAS,gCAAgC,UAAU,EAAE;AACtG,cAAc;AACd,KAAK;AACL;AACA;;AAEA;AACA,uCAAuC,qCAAqC,EAAE;AAC9E,KAAK;;AAEL;AACA;AACA,KAAK;AACL;AACA;AACA,SAAS,+EAA+E;AACxF;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA,cAAc;AACd;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,oEAAoE;AACpE;AACA,yCAAyC,2BAA2B;AACpE;AACA,OAAO;AACP,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA,8CAA8C,2BAA2B;AACzE;AACA,WAAW;AACX;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA,oBAAoB;AACpB,OAAO;AACP;AACA,wBAAwB;AACxB;AACA,cAAc;AACd;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,0BAA0B,kBAAkB;AAC5C,mDAAmD;AACnD,cAAc,yBAAyB;AACvC;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,+BAA+B,mBAAmB;AAClD;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA,KAAK;AACL,wCAAwC,gBAAgB,EAAE;;AAE1D;AACA;AACA,KAAK;AACL;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB,gBAAgB,kBAAkB;AACpD;AACA;AACA;AACA,WAAW,iDAAiD;AAC5D,OAAO;AACP;AACA,KAAK;AACL;AACA,iCAAiC;AACjC;AACA;AACA;AACA,oBAAoB,gBAAgB,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA,aAAa,+CAA+C;AAC5D,SAAS;AACT;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,kBAAkB,gBAAgB,gBAAgB;AAClD,WAAW,2BAA2B,6BAA6B,EAAE,EAAE;AACvE,OAAO;AACP;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,uBAAuB,UAAU;AACjC;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA,sDAAsD;AACtD;AACA,0DAA0D;AAC1D;AACA,OAAO;AACP;AACA,KAAK;;AAEL;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,qBAAqB,cAAc;AACnC;AACA,wDAAwD,qBAAqB;AAC7E,kDAAkD,iBAAiB;AACnE;AACA,+BAA+B;AAC/B,OAAO,EAAE,0CAA0C,0CAA0C;AAC7F,sBAAsB,0DAA0D;AAChF;AACA;AACA,KAAK;AACL;AACA,wCAAwC,mBAAmB;AAC3D,wBAAwB,gBAAgB,wBAAwB;AAChE;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,0CAA0C,8BAA8B,EAAE;AAC1E;AACA;AACA;AACA;AACA,KAAK;AACL,iCAAiC,qBAAqB;;AAEtD,yBAAyB,iBAAiB;AAC1C,2BAA2B,eAAe;;AAE1C;AACA,yBAAyB;AACzB;AACA,KAAK;AACL,+BAA+B,8BAA8B;;AAE7D;AACA,yBAAyB,aAAa;AACtC,kCAAkC;AAClC;AACA,iCAAiC,0BAA0B,EAAE;AAC7D,oBAAoB,2BAA2B;AAC/C,KAAK;AACL,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,aAAa,sBAAsB;AACnC;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,wDAAwD,kBAAkB,EAAE;AAC5E;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,8CAA8C;AACpF;AACA;AACA,oCAAoC,EAAE;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,kBAAkB,OAAO,+BAA+B;AAC7E,KAAK,OAAO;AACZ;AACA;AACA;AACA;AACA,gCAAgC,iCAAiC,EAAE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gCAAgC;AAC7C;AACA,yBAAyB,kBAAkB,uBAAuB;AAClE,aAAa,4EAA4E,EAAE;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uEAAuE,WAAW;AAClF,gEAAgE;;AAEhE;AACA;;AAEA;AACA;AACA;AACA,wDAAwD,SAAS,QAAQ;AACzE,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD;AACA;;AAEA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,2CAA2C;AAC3C;AACA,mBAAmB,oBAAoB;AACvC;AACA,eAAe,kBAAkB;AACjC;AACA,yBAAyB;AACzB,qBAAqB,oBAAoB,OAAO,eAAe;AAC/D,KAAK,EAAE;AACP;;AAEA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA,OAAO,OAAO;AACd,KAAK;AACL;AACA,oCAAoC,kCAAkC,EAAE;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA,iBAAiB,QAAQ,OAAO,iDAAiD;AACjF;AACA,oBAAoB,WAAW,SAAS,0CAA0C;AAClF;AACA,mBAAmB,WAAW,SAAS,yDAAyD;;AAEhG;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA,wCAAwC,YAAY;AACpD,uCAAuC,YAAY;AACnD,iDAAiD,aAAa;AAC9D,yCAAyC,cAAc;AACvD,YAAY;AACZ;AACA,cAAc,sBAAsB;AACpC,eAAe,uBAAuB;AACtC,cAAc,sBAAsB;AACpC,gBAAgB,wBAAwB;AACxC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,6DAA6D;AAC7D,2BAA2B,wBAAwB;;AAEnD;AACA,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC,+BAA+B;AAC/B;AACA;AACA,KAAK;AACL,4BAA4B,2BAA2B;AACvD;AACA;;AAEA;AACA;AACA;AACA,0BAA0B;AAC1B,0BAA0B;AAC1B,yCAAyC;;AAEzC;AACA;AACA,SAAS;AACT,qBAAqB,4BAA4B;AACjD;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wCAAwC,sBAAsB;AAC9D,0EAA0E,uBAAuB;AACjG,yEAAyE,sBAAsB;AAC/F,wDAAwD,wBAAwB;AAChF;AACA;;AAEA;AACA;AACA,yDAAyD;AACzD;AACA,4CAA4C;AAC5C;AACA;AACA,2CAA2C,mBAAmB;AAC9D;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,QAAQ;AAC3C,SAAS,+DAA+D;AACxE;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,sCAAsC,YAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,2DAA2D,EAAE;AACrG,mCAAmC,wCAAwC;AAC3E,SAAS,OAAO,oCAAoC;AACpD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC,wEAAwE;AAC1G;AACA;AACA,qCAAqC,SAAS,gCAAgC;AAC9E;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,sDAAsD;AACtD;AACA,2CAA2C;;AAE3C,YAAY,uCAAuC;AACnD;AACA;AACA;AACA,8CAA8C;AAC9C;AACA,0EAA0E;AAC1E;AACA;;AAEA;AACA;AACA,cAAc;;AAEd;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oCAAoC,sFAAsF,EAAE;AAC5H,6BAA6B;AAC7B;AACA;AACA;AACA,WAAW,SAAS,kDAAkD;AACtE;AACA,WAAW,SAAS,gDAAgD;AACpE,OAAO;AACP,gBAAgB;AAChB;AACA,KAAK,EAAE,EAAE;AACT,+BAA+B,kDAAkD;AACjF;AACA;AACA,KAAK,EAAE,EAAE,EAAE,EAAE;AACb,gCAAgC,kDAAkD;AAClF;AACA,KAAK,EAAE,EAAE,EAAE,EAAE;AACb,uCAAuC;AACvC;AACA,mCAAmC,kBAAkB;AACrD,cAAc;AACd,KAAK,EAAE,EAAE;AACT,wCAAwC;AACxC;AACA,oCAAoC,qDAAqD;AACzF,cAAc;AACd,KAAK,EAAE,EAAE;AACT,yBAAyB,kBAAkB,EAAE;AAC7C,yBAAyB,kBAAkB,EAAE;AAC7C,kCAAkC,2BAA2B,EAAE;AAC/D,kCAAkC,2BAA2B,EAAE;AAC/D,+BAA+B,mDAAmD,EAAE;AACpF,6BAA6B,+CAA+C,EAAE;AAC9E,gCAAgC,gDAAgD,uCAAuC,EAAE;AACzH,OAAO;AACP,MAAM,EAAE;AACR,qCAAqC,gDAAgD,uCAAuC,EAAE;AAC9H,OAAO;AACP,MAAM,EAAE;AACR,8BAA8B,gDAAgD,qCAAqC,EAAE;AACrH,OAAO;AACP,MAAM,EAAE;AACR,gCAAgC;AAChC;AACA,4BAA4B,qDAAqD;AACjF,KAAK,YAAY,EAAE;AACnB,+BAA+B;AAC/B;AACA,4BAA4B,kBAAkB;AAC9C,KAAK,YAAY,EAAE;AACnB,oCAAoC;AACpC;AACA,+BAA+B,kBAAkB;AACjD,uDAAuD;AACvD;AACA,KAAK,YAAY,EAAE;AACnB,6BAA6B,6BAA6B,EAAE;AAC5D,+BAA+B,4BAA4B,EAAE;AAC7D,6BAA6B,6BAA6B,EAAE;AAC5D,+BAA+B,4BAA4B,EAAE;AAC7D,+BAA+B,6BAA6B,EAAE;AAC9D,gCAAgC,4BAA4B,EAAE;AAC9D,iCAAiC,+BAA+B,EAAE;AAClE,kCAAkC,8BAA8B,EAAE;AAClE,+BAA+B,6BAA6B,EAAE;AAC9D,iCAAiC,6BAA6B,EAAE;AAChE,gCAAgC,8BAA8B,EAAE;AAChE,gCAAgC,4BAA4B,EAAE;AAC9D,kCAAkC,oCAAoC,EAAE;AACxE,iCAAiC,8BAA8B,EAAE;AACjE,kCAAkC,+BAA+B,EAAE;AACnE,iCAAiC,8BAA8B,EAAE;AACjE,mCAAmC,gCAAgC,EAAE;AACrE,kCAAkC,+BAA+B,EAAE;AACnE,+BAA+B,oCAAoC,EAAE;AACrE,+BAA+B,kCAAkC,EAAE;AACnE,+BAA+B,uCAAuC,EAAE;AACxE,8BAA8B,kCAAkC,EAAE;AAClE;AACA;AACA,qBAAqB,mBAAmB;AACxC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,mCAAmC,2BAA2B;AAC9D,YAAY,6BAA6B;AACzC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA,qBAAqB,mBAAmB;AACxC,iCAAiC;AACjC;AACA;AACA,sCAAsC,qCAAqC;AAC3E;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,EAAE,EAAE;AACT,qCAAqC;AACrC;AACA,mCAAmC,QAAQ;AAC3C,SAAS,iFAAiF;AAC1F;AACA,uBAAuB,mBAAmB;AAC1C,SAAS,kDAAkD;AAC3D;AACA,KAAK,EAAE,EAAE;AACT,6BAA6B,2CAA2C,EAAE;AAC1E,oCAAoC,6BAA6B;AACjE;;;AAGA;AACA;AACA;AACA,yBAAyB,wBAAwB;AACjD;AACA;AACA;AACA;AACA;AACA,yBAAyB,wBAAwB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+BAA+B;AAC3D,sBAAsB,0BAA0B;AAChD;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,6BAA6B;AAChD;AACA,mBAAmB;AACnB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,SAAS,wBAAwB;AACjC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS,EAAE;AACX,8DAA8D;AAC9D;AACA;AACA;;AAEA;AACA;;AAEA;AACA,OAAO,wBAAwB;AAC/B;AACA,OAAO,4CAA4C;;AAEnD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA;AACA,+DAA+D,qCAAqC,EAAE;AACtG;AACA;AACA,kBAAkB;AAClB,cAAc;AACd,KAAK;AACL,oDAAoD,+BAA+B,EAAE;AACrF;AACA;;AAEA;AACA;AACA,4DAA4D,qCAAqC,EAAE;AACnG;;AAEA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA,gCAAgC;AAChC;AACA,mDAAmD,uBAAuB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,sCAAsC;AAC/C;AACA;AACA,OAAO,6BAA6B;;AAEpC;AACA;AACA,OAAO,mBAAmB;AAC1B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,4BAA4B;AACtD;AACA;;AAEA;AACA;AACA,8DAA8D;AAC9D,8GAA8G;AAC9G;AACA,8CAA8C,sBAAsB,qBAAqB;AACzF,4EAA4E;AAC5E;AACA;AACA,uBAAuB;AACvB,uCAAuC;AACvC;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF;AACxF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0CAA0C,EAAE;AAC5E;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;;AAEA;AACA;AACA,OAAO,2BAA2B;;AAElC,gEAAgE;;AAEhE;AACA,gBAAgB,oCAAoC;AACpD,iDAAiD,qBAAqB;AACtE,KAAK;AACL,gBAAgB,8BAA8B;AAC9C,8BAA8B,8BAA8B,EAAE;AAC9D,KAAK;AACL,8BAA8B,mCAAmC;AACjE,YAAY,oBAAoB;AAChC;AACA;;AAEA;AACA;AACA,6BAA6B,wBAAwB;AACrD,kCAAkC,wBAAwB;AAC1D;;AAEA;AACA,qCAAqC,yBAAyB;AAC9D,mBAAmB;AACnB;AACA;AACA,8BAA8B,+BAA+B;AAC7D;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,gDAAgD;AAChG,+BAA+B,oDAAoD;AACnF,mCAAmC,0DAA0D;AAC7F;AACA;;AAEA;AACA,aAAa,sCAAsC;AACnD,UAAU,sCAAsC;;AAEhD;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,+CAA+C;AACtD;AACA,OAAO,4CAA4C;AACnD;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oCAAoC;AACvD;AACA;AACA,4BAA4B,oCAAoC;AAChE,cAAc,oBAAoB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,2DAA2D;AACtE;AACA;AACA,WAAW,yBAAyB,0CAA0C,oBAAoB,EAAE,wBAAwB,MAAM;AAClI;AACA,WAAW,uBAAuB;AAClC;AACA,KAAK;AACL;AACA;AACA;AACA,iCAAiC,qBAAqB;AACtD;AACA,iBAAiB,mCAAmC;AACpD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,8BAA8B,EAAE;AAC5D;AACA,oCAAoC,6BAA6B;AACjE;;AAEA;AACA,yBAAyB;AACzB,yBAAyB;AACzB,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA;AACA,aAAa,oBAAoB;AACjC;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS,6BAA6B;AACtC;AACA,SAAS,oCAAoC;AAC7C,KAAK;AACL;AACA;AACA;;AAEA;AACA,6BAA6B,oCAAoC;AACjE;AACA;AACA,KAAK;AACL;AACA;AACA,SAAS,6EAA6E;AACtF;AACA,SAAS,kBAAkB;AAC3B;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB,gCAAgC;AACpD,KAAK;AACL;AACA,oBAAoB,gCAAgC;AACpD;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,mCAAmC;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,aAAa,gEAAgE;AAC7E;AACA,aAAa,yFAAyF;AACtG;AACA,6BAA6B,sCAAsC;AACnE;AACA,sBAAsB,gCAAgC;AACtD;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,WAAW,uCAAuC,0BAA0B,WAAW,GAAG,QAAQ;AAClG,OAAO;AACP;AACA,sBAAsB;AACtB,oCAAoC;AACpC;AACA;AACA,SAAS,OAAO;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4CAA4C,SAAS;AACrD,YAAY,WAAW;AACvB,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE;AACA,iBAAiB;AACjB;AACA,yDAAyD;AACzD;AACA,oDAAoD;;AAEpD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS,oBAAoB;AAC7B;AACA,SAAS,oBAAoB;AAC7B;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,WAAW,gBAAgB,gBAAgB;AAC3C,kBAAkB;AAClB;AACA,6EAA6E;AAC7E,kBAAkB,qBAAqB;;AAEvC;AACA;;AAEA,uDAAuD;AACvD;;AAEA,mBAAmB,mCAAmC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,qEAAqE;AACrE,+CAA+C;AAC/C,6BAA6B,mCAAmC;AAChE;;AAEA;AACA,+CAA+C;AAC/C;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,cAAc,qBAAqB;;AAEnC;AACA;;AAEA;AACA;;AAEA;AACA;AACA,mBAAmB;AACnB,6CAA6C,kBAAkB,sBAAsB,GAAG,UAAU;AAClG;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,4CAA4C,yBAAyB,EAAE;AACvE;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,iBAAiB;AACjB;AACA;AACA,0BAA0B;AAC1B;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,OAAO;AACP,wCAAwC,QAAQ;AAChD,SAAS,+FAA+F;AACxG,KAAK;AACL;AACA;AACA,wBAAwB,cAAc;AACtC,KAAK;AACL,mFAAmF,qBAAqB,EAAE;AAC1G;AACA;AACA;AACA,KAAK;AACL,oDAAoD,4CAA4C,EAAE;AAClG,qDAAqD,6CAA6C,EAAE;AACpG,wDAAwD,gDAAgD,EAAE;AAC1G;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,gCAAgC,uBAAuB;AACvD,wBAAwB,+BAA+B;AACvD,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL,+DAA+D,6BAA6B,EAAE;AAC9F;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,sDAAsD,gBAAgB,EAAE;AACxE;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL,sDAAsD,WAAW,0BAA0B,GAAG;AAC9F;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,uCAAuC,EAAE;AAC1F;AACA,gDAAgD,qBAAqB,EAAE;AACvE;AACA;AACA,iBAAiB,kCAAkC;AACnD,KAAK;;AAEL,iDAAiD,yDAAyD,EAAE;AAC5G;AACA,mDAAmD,iCAAiC,EAAE;AACtF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6BAA6B,EAAE;AAC3D;;AAEA;AACA;;AAEA;AACA;;AAEA,wCAAwC;;AAExC;AACA;AACA;;AAEA;AACA,iCAAiC,kFAAkF;AACnH,4BAA4B,+BAA+B;AAC3D;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,sDAAsD;AAC7D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uCAAuC,uBAAuB;;AAE9D;AACA;AACA,gCAAgC,yBAAyB,yCAAyC,EAAE,MAAM;;AAE1G;AACA;;AAEA;AACA;AACA;;AAEA;AACA,OAAO;AACP,yDAAyD,iBAAiB;AAC1E,OAAO,MAAM;AACb;AACA,OAAO,cAAc;;AAErB,qCAAqC;AACrC,OAAO,+CAA+C,EAAE;AACxD;AACA,6BAA6B,0BAA0B;AACvD,mBAAmB,sBAAsB,OAAO,oBAAoB;AACpE;AACA;AACA;AACA;AACA;AACA,OAAO,8CAA8C;AACrD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,oCAAoC;AACpC;AACA,2EAA2E;AAC3E;AACA;AACA;AACA,OAAO,GAAG;AACV;AACA,OAAO,0CAA0C,qDAAqD,EAAE,EAAE;AAC1G;AACA;AACA;AACA,gDAAgD,6BAA6B,EAAE;AAC/E;AACA,2CAA2C,sBAAsB;AACjE,KAAK;;AAEL;AACA,oCAAoC;AACpC;AACA;AACA,gDAAgD,6BAA6B,EAAE;AAC/E;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,0BAA0B,4BAA4B;AACtD,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC;AACA,WAAW,4BAA4B;AACvC;AACA,WAAW,4EAA4E;AACvF;AACA;AACA;AACA;AACA;A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;AACA;AACA,OAAO;;AAEP;AACA;AACA,mBAAmB;AACnB,+BAA+B,0CAA0C;AACzE,SAAS;AACT,mBAAmB;AACnB,SAAS;AACT,mBAAmB;AACnB;AACA,wBAAwB,uBAAuB;AAC/C;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;;AAEP;AACA;;AAEA,wCAAwC,+EAA+E;AACvH,4BAA4B,qDAAqD;AACjF,6BAA6B,uDAAuD;AACpF,wCAAwC,iCAAiC;AACzE;AACA;AACA,6BAA6B,gBAAgB,yBAAyB;AACtE,aAAa,iCAAiC,yCAAyC,QAAQ,EAAE;AACjG;AACA,SAAS;AACT;AACA;AACA,OAAO;;AAEP,6BAA6B,wBAAwB;AACrD,iCAAiC,4BAA4B;AAC7D,+BAA+B,0BAA0B;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,2BAA2B;AACtC;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA,uCAAuC,4BAA4B;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,OAAO;;AAEP,gCAAgC,qCAAqC;AACrE,oCAAoC,4BAA4B;AAChE,qCAAqC,6BAA6B;AAClE,mCAAmC;AACnC;AACA;;AAEA;AACA,0CAA0C,qCAAqC,aAAa;AAC5F;AACA;AACA;AACA;AACA,kCAAkC,4BAA4B;AAC9D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,WAAW,+DAA+D;AAC1E;AACA,WAAW;AACX,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA,6BAA6B;AAC7B,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA,uCAAuC,YAAY;AACnD;AACA,wBAAwB,QAAQ,YAAY;AAC5C;AACA;;AAEA,mBAAmB,gBAAgB;AACnC,2CAA2C;AAC3C;AACA;AACA;AACA,yCAAyC,uBAAuB;AAChE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;AACA,WAAW;AACX;AACA,4BAA4B;AAC5B,+CAA+C,uBAAuB;AACtE;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,GAAG;AAC/B,uBAAuB;AACvB,iEAAiE;AACjE;AACA;AACA;;AAEA;AACA,8EAA8E;AAC9E;AACA,6BAA6B,uCAAuC,+BAA+B,EAAE,OAAO;AAC5G,KAAK;;AAEL;AACA,0BAA0B;AAC1B,KAAK;AACL;AACA,8BAA8B,qBAAqB,2BAA2B;AAC9E,KAAK;AACL;AACA;AACA,8CAA8C,0BAA0B;AACxE;AACA;AACA,KAAK;;AAEL,uCAAuC,oCAAoC,EAAE;;AAE7E;AACA,8BAA8B,0BAA0B;AACxD,KAAK;;AAEL;AACA,wDAAwD;AACxD;AACA,uBAAuB,0CAA0C;AACjE,8BAA8B,sCAAsC;AACpE,OAAO;AACP;AACA,OAAO;AACP;AACA,uBAAuB,kCAAkC;AACzD;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,8BAA8B;AAC5D,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gDAAgD;AAChD,kCAAkC,6BAA6B;AAC/D;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS,6DAA6D;AACtE,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,0CAA0C,mBAAmB;AAC7D,uBAAuB,yBAAyB;AAChD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS,kCAAkC,gDAAgD,EAAE,EAAE;AAC/F,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,yCAAyC;AACzC,uCAAuC;AACvC;;AAEA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS,mDAAmD;AAC5D;AACA;AACA;AACA,qDAAqD,iBAAiB;AACtE,yDAAyD;;AAEzD,8DAA8D;;AAE9D;AACA;;AAEA;AACA;AACA,OAAO,yBAAyB,+BAA+B,EAAE,MAAM;AACvE;AACA,OAAO,+BAA+B,+CAA+C,EAAE,EAAE;;AAEzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,sFAAsF;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sDAAsD;AACtF;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB;AACA,mCAAmC,kCAAkC;AACrE,KAAK,EAAE;AACP;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO,kEAAkE;AACzE;AACA,OAAO,0BAA0B;AACjC,uEAAuE;;AAEvE;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA,oBAAoB;AACpB;AACA;AACA;AACA,yCAAyC,eAAe,eAAe,UAAU;AACjF,0CAA0C,iBAAiB,iBAAiB,YAAY;AACxF,YAAY;AACZ;;AAEA;AACA;AACA;AACA,OAAO,YAAY;AACnB;AACA;AACA;AACA;AACA;AACA,OAAO,UAAU;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sCAAsC;AACtC;AACA;AACA;AACA,oCAAoC,yBAAyB;AAC7D,cAAc;AACd;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA,OAAO,+BAA+B,6BAA6B,EAAE,EAAE;AACvE;;AAEA;AACA;AACA;;AAEA;AACA,4CAA4C;AAC5C;AACA;AACA,OAAO,kHAAkH;AACzH;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,+BAA+B;AAC/B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB,MAAM;AAC/B,OAAO,wDAAwD,cAAc;AAC7E;AACA;;AAEA,6BAA6B,WAAW,gBAAgB,EAAE;;AAE1D;AACA;AACA,kCAAkC,2BAA2B,wBAAwB,EAAE;AACvF;AACA;AACA;AACA,6BAA6B,iBAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iEAAiE;AAC9E;AACA;AACA,8DAA8D;AAC9D;AACA,2EAA2E;;AAE3E,sBAAsB,SAAS;AAC/B,uBAAuB,4BAA4B;AACnD,WAAW,0BAA0B;;AAErC,+CAA+C,uBAAuB;AACtE,sBAAsB,gBAAgB;AACtC,OAAO;AACP;AACA;AACA;AACA,WAAW;AACX;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,kBAAkB;AAClB,KAAK;AACL,4BAA4B;AAC5B,0DAA0D;AAC1D,+EAA+E;AAC/E;AACA;AACA,mBAAmB,4BAA4B;AAC/C;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,oCAAoC;AACvD;AACA,2CAA2C,8BAA8B;AACzE;;AAEA;AACA,sBAAsB,8BAA8B;AACpD;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA,oDAAoD,gCAAgC;AACpF;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA,mGAAmG,OAAO;AAC1G;AACA;AACA,SAAS;AACT;AACA,SAAS,kCAAkC;AAC3C;AACA,+DAA+D,QAAQ;AACvE;AACA;AACA,SAAS;AACT;AACA,SAAS,qCAAqC;AAC9C;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,cAAc,wBAAwB;;AAEtC;AACA,yDAAyD,4BAA4B;AACrF;AACA,KAAK;;AAEL;AACA,wDAAwD;;AAExD;AACA;AACA,KAAK;;AAEL;AACA,kCAAkC;AAClC;AACA,uBAAuB,0CAA0C;AACjE,OAAO;AACP;AACA,OAAO;AACP;AACA,uBAAuB,kCAAkC;AACzD;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,4BAA4B,kCAAkC;AAC9D;AACA;AACA;;AAEA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,uCAAuC,qBAAqB;AAC5D,KAAK;;AAEL;AACA;AACA,4BAA4B,+BAA+B;AAC3D;AACA;AACA,uDAAuD,kCAAkC;AACzF;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,4BAA4B;AACzD,kCAAkC,6BAA6B;AAC/D,KAAK;AACL;AACA,kCAAkC,0BAA0B;AAC5D;AACA;AACA;;AAEA,kDAAkD;;AAElD,uDAAuD;;AAEvD;AACA;AACA,WAAW,uBAAuB;AAClC,kBAAkB;AAClB;AACA;;AAEA,8CAA8C,sBAAsB;;AAEpE;AACA;AACA;;AAEA,uDAAuD,iBAAiB;;AAExE;AACA;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA,oCAAoC,mBAAmB;AACvD,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,cAAc;AAC9C,YAAY,0BAA0B;AACtC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0CAA0C,sBAAsB;AAChE,4BAA4B,cAAc;AAC1C;AACA;AACA;AACA,6EAA6E,QAAQ;;AAErF;AACA;AACA;;AAEA;AACA,0DAA0D,qCAAqC;AAC/F,YAAY,yBAAyB;;AAErC;AACA;AACA;AACA,4CAA4C,kCAAkC;AAC9E;AACA,KAAK;AACL;AACA;;AAEA;AACA,0CAA0C,0BAA0B;AACpE;;AAEA;AACA,gCAAgC,0BAA0B;AAC1D;AACA;;AAEA;AACA;AACA,mCAAmC,4BAA4B;AAC/D;AACA,yBAAyB,SAAS;;AAElC;AACA;AACA;AACA;AACA,OAAO,2EAA2E;;AAElF;AACA;AACA;AACA,2CAA2C,aAAa,cAAc,wDAAwD,mDAAmD,sBAAsB,uEAAuE,sBAAsB,iBAAiB,eAAe,kBAAkB,cAAc,0BAA0B;AAC9X;AACA,iBAAiB,mDAAmD,EAAE;AACtE;AACA,iBAAiB,yDAAyD;AAC1E;AACA;AACA,kCAAkC,kCAAkC;AACpE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA,iCAAiC,yEAAyE;;AAE1G;AACA;AACA,4CAA4C,wBAAwB;AACpE;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gCAAgC,wBAAwB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,eAAe,cAAc;AAC7B;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO,sCAAsC;AAC7C;AACA,OAAO,4CAA4C;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA,oCAAoC,iBAAiB;AACrD;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mCAAmC;AAChD;AACA;AACA;;AAEA;AACA,yCAAyC,qEAAqE,EAAE;AAChH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,mCAAmC;AACnC,KAAK;AACL,yBAAyB;AACzB,KAAK,uBAAuB,EAAE;;AAE9B;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA,sDAAsD,iCAAiC;AACvF;AACA;;AAEA;;AAEA;AACA,6CAA6C,UAAU,0BAA0B,2BAA2B,GAAG,EAAE,EAAE;AACnH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;A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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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AAEjCxL,qBAAS,KAAKhE,KAAL,CAAWG,GAAX,CAAe,SAAf,CAFwB;AAGjCsP,gCAAoB,KAAKhL,QAHQ;AAIjCiL,kBAAMA,gBAJ2B;AAKjCC,sBAAa,uBAAb,cAAkC,KAAK9L,MAAvC;AALiC,SAAvB,CAAd;AADgB;AAQhB,eAAO,IAAP;AACH;AAjB4B,CAAZ,CAAjB,CAAJ;;kBAoBeyL,c;;;;;;;;;;;;;;;;;;;;;;;ACzBf;AACA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA,+CAA+C,gBAAgB;AAC/D;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;;AAEA,iBAAiB,eAAe;AAChC;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,aAAa,0BAA0B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,aAAa,yBAAyB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,+BAA+B;AAC/B;AACA;AACA,gEAAgE,aAAa;AAC7E,oEAAoE,aAAa;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;;;;;AAMA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA,GAAG;;AAEH;AACA;;;AAGA;AACA;AACA,kBAAkB;AAClB,oBAAoB;AACpB,mBAAmB;AACnB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA,4CAA4C,gBAAgB;AAC5D;AACA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,GAAG;AACH;AACA;;AAEA,GAAG;AACH,sBAAsB,mEAAmE;AACzF;AACA;;AAEA,GAAG;AACH;AACA,gCAAgC,mCAAmC;AACnE;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA;;AAEA;AACA;AACA,8BAA8B,kCAAkC;AAChE,CAAC;;AAED;AACA;AACA,8BAA8B,kCAAkC;AAChE,CAAC;;AAED;AACA;AACA,8BAA8B,kCAAkC;AAChE,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,YAAY,KAAK;AAC7C,4BAA4B,eAAe,EAAE;AAC7C,4BAA4B,eAAe,EAAE;AAC7C,4BAA4B,eAAe,EAAE;AAC7C,4BAA4B,WAAW;AACvC,GAAG;AACH;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kCAAkC,EAAE;AACtE,kCAAkC,kCAAkC,EAAE;AACtE,kCAAkC,kCAAkC;AACpE,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,YAAY,aAAa;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA,YAAY,aAAa;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA,YAAY,aAAa;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,QAAQ,aAAa;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,6EAA6E,EAAE;AAChH,iCAAiC,+EAA+E,EAAE;AAClH,iCAAiC,yBAAyB,EAAE;AAC5D;AACA,iCAAiC,4GAA4G;AAC7I,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA,0BAA0B;AAC1B;;AAEA,kBAAkB;AAClB;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;;;;;;AAMA;AACA;;;AAGA;AACA;;AAEA;;AAEA;AACA,eAAe,WAAW;AAC1B;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,yCAAyC,gBAAgB;AACzD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA,yCAAyC,gBAAgB;AACzD;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA,yCAAyC,gBAAgB;AACzD;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;AAQA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA,6CAA6C,EAAE;AAC/C;AACA,oDAAoD,EAAE,eAAe,EAAE,YAAY;;;AAGnF,sBAAsB,4CAA4C;;AAElE;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,uBAAuB;AACvB;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,0BAA0B,UAAU;AACpC,0BAA0B,UAAU;AACpC,0BAA0B,UAAU;AACpC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uCAAuC;AACvC;AACA,eAAe,SAAS;AACxB;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;;AAEd;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA,mDAAmD,qBAAqB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,6CAA6C;AAC7C;;AAEA;;AAEA,+CAA+C,kBAAkB;AACjE;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,8CAA8C,kBAAkB;AAChE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kDAAkD,kBAAkB;AACpE;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA,KAAK;AACL;AACA;;AAEA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA,KAAK;AACL;AACA;AACA;;AAEA,KAAK;AACL;;AAEA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA,OAAO;AACP;AACA;;AAEA,OAAO;AACP;AACA;;AAEA,cAAc,eAAe;AAC7B;;AAEA;AACA;;AAEA,WAAW;AACX;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;AAEA,KAAK;AACL;AACA;AACA;;AAEA,KAAK;AACL;;AAEA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,sBAAsB;AACtB;AACA;AACA,GAAG,yBAAyB;AAC5B,sBAAsB,IAAI;AAC1B;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA,KAAK;AACL;AACA,4EAA4E;AAC5E,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;;AAEA,KAAK;AACL;AACA;AACA;;AAEA;AACA,QAAQ,+CAA+C;AACvD;;AAEA;AACA,UAAU,+CAA+C;AACzD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP,6BAA6B;AAC7B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;;AAEA;AACA,OAAO;AACP,6BAA6B;AAC7B;AACA;;AAEA;AACA,OAAO;AACP;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,OAAO;AACP;AACA;AACA;;AAEA,OAAO;AACP,4DAA4D,sBAAsB;AAClF;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,SAAS;AACT,mEAAmE;;AAEnE,SAAS;AACT;AACA;AACA,sBAAsB;AACtB;;AAEA,OAAO;AACP,8DAA8D;;AAE9D,OAAO;AACP;AACA;AACA,oBAAoB;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA,QAAQ,+CAA+C;AACvD;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA,GAAG;AACH;;AAEA,GAAG;AACH;;AAEA,GAAG;AACH;;AAEA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;;AAEA,kEAAkE,0BAA0B;AAC5F;;AAEA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA,yDAAyD,0BAA0B;AACnF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,6EAA6E;AAC7E;;AAEA,iDAAiD;AACjD;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,YAAY,+CAA+C;AAC3D;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,gDAAgD,gBAAgB;AAChE;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;AAMA;AACA;;AAEA;AACA,qCAAqC;AACrC,qCAAqC;AACrC,qCAAqC;AACrC,qCAAqC;AACrC,qCAAqC;AACrC,qCAAqC;AACrC,qCAAqC;AACrC,qCAAqC;AACrC,qCAAqC;AACrC,qCAAqC;AACrC,qCAAqC;AACrC,qCAAqC;AACrC,qCAAqC;AACrC,qCAAqC;AACrC,qCAAqC;AACrC,qCAAqC;AACrC,qCAAqC;AACrC,qCAAqC;AACrC,qCAAqC;AACrC,qCAAqC;AACrC,qCAAqC;AACrC,qCAAqC,KAAK;AAC1C,qCAAqC;AACrC,qCAAqC,KAAK;;AAE1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA,uCAAuC,gBAAgB;AACvD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,sDAAsD,gBAAgB;AACtE;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,MAAM;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,6BAA6B;AAC7B;AACA;;AAEA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,eAAe,mBAAmB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA,sBAAsB;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,mBAAmB;AACpC;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,yCAAyC,gBAAgB;AACzD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,yCAAyC,gBAAgB;AACzD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA,+BAA+B;AAC/B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gDAAgD,gBAAgB;;AAEhE;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,eAAe;AACf;;AAEA;;AAEA;;AAEA;AACA,eAAe;AACf;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,gBAAgB;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA,gDAAgD,gBAAgB;AAChE;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,eAAe;AACf;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,eAAe;AACf;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,6BAA6B,EAAE;AAC/B;;AAEA;AACA;;AAEA;;AAEA,2CAA2C,gBAAgB;AAC3D;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,+CAA+C,gBAAgB;AAC/D;AACA;AACA,OAAO;AACP;;AAEA,sDAAsD,gBAAgB;AACtE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA,iCAAiC,YAAY;AAC7C;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,qEAAM,EAAC;AACyI;;;;;;;AC1wH/J;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU;;;;;;;ACvLtC;AACA;;AAEA;AACA,MAAM,IAAuD;AAC7D,QAAQ,mBAAO,CAAC,EAAsB;AACtC;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,kBAAkB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA,8BAA8B,kBAAkB,yCAAyC,EAAE;AAC3F;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA,qDAAqD,QAAQ;AAC7D,2CAA2C,gBAAgB;AAC3D,KAAK;AACL;AACA;AACA;AACA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XJ;AAAA;AAAA;AAAA;AAAoP,CAAgB,8RAAG,EAAC,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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AAAA;AAAA;;AACA;AADA;AAEA;AACA,8BADA;AAEA,oEAFA;AAGA,kEAHA;AAIA;AAJA;AAMA,aARA;AASA,SA1LA;AA2LA,qBA3LA,2BA2LA;AAAA;;AACA;AAAA;AAAA;;AACA,sCACA,wBADA;AADA;AAIA,oBACA,6GACA,iDADA,CADA,EAGA;AAAA;AAAA;;AACA,0CACA,uBADA;AADA;AAIA;AACA,iBARA;AAAA;AAAA;AASA,aAbA,MAaA;AAAA;AAAA;;AACA,sCACA,2BADA;AADA;AAIA;AACA;AAnBA;AAoBA;AAAA;AAAA;;AACA,sCACA,sCADA;AAGA,aAJA;AAAA;AAAA;AApBA;AAyBA;AAAA;AAAA;;AACA,sCACA,mCADA;AAGA,aAJA;AAAA;AAAA;AAKA;AAzNA;AA7CA,E;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,KAA4D;AAC9D;AACA;AACA,CAAC,oBAAoB;;AAErB;;AAEA,oCAAoC;;AAEpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD,wBAAwB,iBAAiB;AACzC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,oDAAoD,iCAAiC,EAAE;AACvF,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+BAA+B,cAAc;;AAE7C;;AAEA;AACA;AACA;AACA,+BAA+B,UAAU;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gBAAgB;AACnC,oCAAoC;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,qBAAqB;AAC1C,mBAAmB;AACnB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,GAAG;AACV;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA,sCAAsC;AACtC;;AAEA;AACA;AACA;AACA,mCAAmC;AACnC,yCAAyC,wBAAwB,EAAE;AACnE,4BAA4B;;AAE5B;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0BAA0B,YAAY;AACtC,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,0CAA0C,EAAE;AAC5C;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,oBAAoB,EAAE;AACvD;AACA,oCAAoC,OAAO;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B,SAAS,qBAAqB;;AAE1D;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mDAAmD,OAAO;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;;AAEA,mBAAmB,iBAAiB;AACpC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,uBAAuB;AAC3D,mCAAmC,sBAAsB;AACzD;AACA,oBAAoB;AACpB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,qBAAqB,mBAAmB;AACxC,iCAAiC;AACjC;AACA,KAAK;AACL;AACA;AACA;AACA,oBAAoB,YAAY;AAChC,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,OAAO;AACvD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,sCAAsC;AACtC;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;AACA;;AAEA,6DAA6D,UAAU,EAAE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,+CAA+C,SAAS;AACxD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,kDAAkD,qCAAqC,EAAE;AACzF;;AAEA;AACA;AACA;;AAEA,sCAAsC,yCAAyC,EAAE;AACjF;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kBAAkB;AAC7C;AACA;AACA,8BAA8B;AAC9B,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sDAAsD,EAAE;AACxF;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uBAAuB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,iCAAiC;AACrE,gBAAgB,6BAA6B;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oCAAoC,iCAAiC;AACrE,gBAAgB,6BAA6B;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C,KAAK;AACL;AACA;AACA,mBAAmB,+BAA+B;AAClD;AACA;;AAEA;;AAEA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,qBAAqB;AACpC;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,iBAAiB;AACtC;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oEAAoE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA,wBAAwB,mBAAmB;AAC3C;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,OAAO;AACxC;AACA;AACA,KAAK;AACL;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA,8CAA8C,eAAe;AAC7D,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,oDAAoD;AACpD,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,uCAAuC,gEAAgE;AACvG;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,8BAA8B,+BAA+B;AAC7D,8BAA8B,+BAA+B;AAC7D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,qBAAqB,mBAAmB;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA,qCAAqC;AACrC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,uFAAuF;AAC9F;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4CAA4C;AAC5C,mBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK,+BAA+B;AACpC,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,sBAAsB,oBAAoB;AAC1C,wBAAwB,4BAA4B;AACpD;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,OAAO;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,qBAAqB;AACrB,2BAA2B;AAC3B;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,6CAA6C;AAChF;AACA;AACA,+CAA+C,4CAA4C;;AAE3F;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,OAAO,2CAA2C,8BAA8B,EAAE;;AAElF;AACA,0CAA0C,OAAO;AACjD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,qBAAqB,qBAAqB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yCAAyC,OAAO;AAChD;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,SAAS;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,OAAO;AAC9C;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B;;AAE5B,oBAAoB;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB,qBAAqB;AAC1C;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,yBAAyB;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,yBAAyB;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,OAAO;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oBAAoB,EAAE;;AAEtD;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,sBAAsB;AACtB;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,2BAA2B;AAChD,uBAAuB,+BAA+B;AACtD;AACA;AACA,KAAK;AACL,2BAA2B;AAC3B;AACA,wBAAwB,iCAAiC;AACzD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA,gCAAgC;;AAEhC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,sBAAsB;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,eAAe;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE;AACxE;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC;;AAEnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;;;;;AAMA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA,4CAA4C,2BAA2B,EAAE;AACzE,OAAO;AACP;AACA,4CAA4C,4BAA4B,EAAE;AAC1E,OAAO;AACP,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,iCAAiC,eAAe;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC,sBAAsB;;AAEvD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC;;AAElC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;AACA,uBAAuB,cAAc;AACrC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,eAAe,kBAAkB;AACjC;AACA,iBAAiB,oBAAoB;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA,6DAA6D;AAC7D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mCAAmC;AACnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,yBAAyB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA,0BAA0B;AAC1B;AACA,8BAA8B,4BAA4B;AAC1D,8BAA8B,gCAAgC;AAC9D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2DAA2D,UAAU;AACrE,mBAAmB,wBAAwB,OAAO,uBAAuB;AACzE;AACA;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA;;AAEA;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,+CAA+C;AAC/C,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS,kDAAkD;AAC3D;AACA;AACA;AACA;AACA,SAAS,kDAAkD;AAC3D;AACA;AACA;AACA;AACA,SAAS;AACT,qCAAqC,gEAAgE;AACrG;AACA;AACA;AACA,kCAAkC;AAClC;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,qBAAqB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB,SAAS;AAClC;AACA,6CAA6C;AAC7C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,uBAAuB,OAAO,gCAAgC;AACjF,0DAA0D,oBAAoB;AAC9E;AACA;AACA;AACA,6BAA6B,gEAAgE;AAC7F,SAAS;AACT;AACA;AACA;AACA,qCAAqC,iCAAiC;AACtE;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,6DAA6D,oBAAoB;AACjF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,gCAAgC;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,+BAA+B,uBAAuB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA,8BAA8B,6BAA6B;AAC3D;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6BAA6B,wBAAwB;AACrD;AACA;AACA;AACA;AACA,iCAAiC,yBAAyB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,yBAAyB;AAC5D;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,2BAA2B;AAClD;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,8BAA8B;AACrD;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8EAA8E;AAC9E;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA,0CAA0C,kBAAkB;AAC5D,OAAO;AACP,0CAA0C,kBAAkB;AAC5D,OAAO;AACP,0CAA0C,0BAA0B;AACpE,OAAO;AACP,0CAA0C,iBAAiB;AAC3D,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA,qCAAqC;AACrC,qCAAqC;AACrC,6CAA6C;AAC7C,6BAA6B;AAC7B,6BAA6B;AAC7B,8BAA8B;AAC9B,8BAA8B;AAC9B,6BAA6B;AAC7B,6BAA6B;AAC7B;AACA,yBAAyB;AACzB;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,oBAAoB;AACrC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kCAAkC,eAAe,EAAE,uBAAuB,UAAU,EAAE;AACtF;AACA;;AAEA;AACA,qDAAqD,6CAA6C;AAClG;AACA;;AAEA;AACA;AACA;AACA;AACA,6BAA6B,6CAA6C;AAC1E;AACA;;AAEA;AACA;AACA;AACA,oCAAoC,2BAA2B;AAC/D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uDAAuD;AACvD,KAAK;AACL,2CAA2C;AAC3C;;AAEA,mCAAmC,wCAAwC;AAC3E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,OAAO;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0DAA0D,mBAAmB;AAC7E;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,aAAa;AACtC,yBAAyB,aAAa;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF;AACnF,8BAA8B;AAC9B;AACA,6BAA6B;AAC7B,0BAA0B,iEAAiE;AAC3F,cAAc,0FAA0F;AACxG,QAAQ,KAAK,0CAA0C;AACvD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,kBAAkB;AACjE,wBAAwB,+CAA+C;AACvE,mDAAmD;;AAEnD;AACA,wDAAwD;AACxD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gDAAgD;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,2BAA2B;AACxD,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,6CAA6C,EAAE;AACxD;AACA;;AAEA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA,YAAY;AACZ;AACA,yCAAyC,SAAS;AAClD;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,wBAAwB;AAC3C;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sDAAsD,4BAA4B,EAAE;AACpF,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sDAAsD,+BAA+B,EAAE;AACvF,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gDAAgD,aAAa;;AAE7D;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,mCAAmC,qCAAqC;;AAExE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,uCAAuC,EAAE;AACtF;AACA;AACA;AACA,+CAA+C,2CAA2C,EAAE;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,OAAO;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,8BAA8B,EAAE;AACvE;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oCAAoC,uCAAuC;;AAE3E,uCAAuC,0BAA0B;;AAEjE;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gDAAgD;AAChD;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,0CAA0C,gBAAgB;AAC1D;AACA;AACA,kEAAkE,sBAAsB,EAAE;AAC1F;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,wBAAwB;AAC7C;AACA;AACA;AACA;AACA;AACA,aAAa,uBAAuB;AACpC,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB,2BAA2B;AACpD;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,yBAAyB,EAAE;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA,wBAAwB,EAAE,iBAAiB,EAAE;AAC7C,iCAAiC;;AAEjC;AACA;AACA;AACA;AACA,GAAG;;;;AAIH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kBAAkB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,OAAO;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;AACT,SAAS;AACT,WAAW;AACX,UAAU;AACV,UAAU;AACV,SAAS;AACT,UAAU;AACV;AACA,6CAA6C;AAC7C,gEAAgE;;AAEhE;AACA;AACA,uDAAuD,2DAA2D;;AAElH;AACA;AACA,+CAA+C,2BAA2B,EAAE;AAC5E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oFAAoF,6BAA6B;AACjH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,uGAAuG;AAC3H;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,0BAA0B,eAAe;AACzC,wBAAwB,aAAa;;AAErC;AACA;AACA;AACA,oCAAoC,UAAU;AAC9C;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA,sCAAsC,UAAU;AAChD;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,8BAA8B,eAAe;AAC7C;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa,6DAA6D;AAC1E;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+DAA+D,uBAAuB,EAAE;AACxF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,IAAI;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA,uBAAuB,0BAA0B;AACjD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gCAAgC,OAAO;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,oBAAoB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS,4BAA4B;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kCAAkC,wBAAwB,EAAE;AAC5D;AACA;AACA;;AAEA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,OAAO;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,WAAW;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA,yDAAyD,WAAW;AACpE;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,+BAA+B;AAC/B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uCAAuC,2CAA2C,GAAG;;AAErF;AACA,oCAAoC;AACpC,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,uBAAuB,sCAAsC;AAC7D;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,0BAA0B;AAC1B;;AAEA;AACA,qDAAqD,4BAA4B,EAAE;AACnF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gCAAgC,+EAA+E;AAC/G,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,8CAA8C,gCAAgC,EAAE;AAChF,2CAA2C,0CAA0C,EAAE;AACvF;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,2BAA2B;AAC3D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,wCAAwC,iDAAiD;AACzF;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,yCAAyC,iDAAiD;AAC1F;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oBAAoB;AAC/C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,6BAA6B;AAClD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,uCAAuC;AACnF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA,uDAAuD;AACvD;AACA,QAAQ;AACR;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,eAAe,oBAAoB;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,6BAA6B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,6GAA6G;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gCAAgC,OAAO;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,sUAAsU;AACvV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,+BAA+B,kBAAkB,iCAAiC,4EAA4E,qBAAqB,aAAa,GAAG,EAAE,kBAAkB;AACvN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B,yCAAyC,EAAE;AACtE;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,cAAc,0EAA0E;AACxF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,sBAAsB,EAAE;AACxE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA,iEAAiE,oCAAoC,EAAE;AACvG;AACA;AACA;AACA;AACA,iEAAiE,gCAAgC,EAAE;AACnG;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,2DAA2D,wBAAwB;AACnF;AACA,qFAAqF;AACrF;AACA;AACA;AACA;AACA,SAAS,EAAE,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,oBAAoB,mCAAmC;AACvD;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,+EAA+E,GAAG;;AAElF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,0BAA0B;AACjD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA,+BAA+B,+BAA+B;AAC9D,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB;AACpB,oBAAoB,eAAe;AACnC;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA,KAAK;AACL,mBAAmB,uBAAuB;AAC1C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX;AACA;AACA,gDAAgD,mBAAmB,EAAE;AACrE;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,uBAAuB,EAAE;AACzE,WAAW;AACX,kDAAkD,qBAAqB,EAAE;AACzE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG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AAgB,gSAAG,EAAC,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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AAAA;AAAA;AAAA;AAAwC;AACL;AACE;AACM;AACd;;AAE7B;AACA;AACe;AACf;AACA;AACA;AACA,eAAe,8DAAS;AACxB;AACA,IAAI,4DAAO,SAAS,6DAAQ,SAAS,gEAAW;AAChD;AACA,SAAS,8DAAS,CAAC,yDAAI;AACvB;;;;;;;;ACjBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAgC;AACoB;AACJ;AACH;AACJ;AACa;AACb;AACZ;AACD;AACkB;;AAE9C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,uDAAC;AACpB,mBAAmB,uDAAC;AACpB;AACA,kBAAkB,mDAAQ;AAC1B,oBAAoB,mDAAQ;AAC5B;AACA,MAAM,iEAAe,sCAAsC,+DAAU;AACrE,SAAS,+DAAU;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sDAAW,qBAAqB,sDAAW;AACxD;AACA;AACA;AACA,oBAAoB,iEAAY,KAAK,iEAAY;AACjD;;AAEA;AACA,oBAAoB,iEAAY;AAChC,uBAAuB,kEAAa;AACpC,yBAAyB,kEAAa;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,+DAAU;AACvC,6BAA6B,+DAAU;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,gBAAgB,yDAAI;AACpB;AACA;AACA,QAAQ,yDAAI;AACZ;AACA;AACA;AACA,YAAY,wDAAG;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACe;AACf;AACA;;;;;;;;ACzIA;AAAA;AAAA;AAAgD;;AAEhD;AACA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ACA;;;;;;;;ACPA;AAAA;AAAA;AAAA;AAA+C;AACX;AACP;;AAE7B;AACA;AACA;AACe,iIAAa;AAC5B,SAAS,4DAAO;AAChB;AACA;AACA;AACA;AACA,eAAe,yDAAI;AACnB;AACA;AACA,CAAC,CAAC,EAAC;;;;;;;;AChBH;AAAA;AAAA;AAA4B;;AAE5B;AACe;AACf;AACA;AACA;AACA,SAAS,wDAAG;AACZ;AACA;AACA;AACA;AACA;;;;;;;;ACZA;AAAA;AAAA;AAAA;AAAmC;AACJ;AACC;;AAEhC;AACA;AACe,2HAAO,CAAC,kDAAK,EAAE,uDAAC,IAAI,EAAC;;;;;;;;ACNpC;AAAA;AAAA;AAA2B;;AAE3B;AACA;AACA;AACA;AACA,KAAK,eAAe;AACL;AACf;AACA;AACA;;AAEA;AACA,+CAA+C,wDAAG;AAClD;AACA;AACA;AACA;;AAEA;AACA,eAAe,wDAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;AC9CA;AAAA;AAAA;AAAA;AAA+C;AACpB;;AAE3B;AACA;AACA;AACA;AACe;AACf;;AAEA;AACA,iBAAiB,wDAAG;AACpB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,kEAAa;AAC/B;AACA;AACA,eAAe,wDAAG;AAClB;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;ACvCA;AAAA;AAAA;AAAmC;;AAEnC;AACA;AACA;AACe;AACf,SAAS,4DAAO;AAChB;;;;;;;;ACPA;AAAA;AAAA;AACA;AACe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXA;AAAA;AAAA;AACe;AACf;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AAAA;AAAA;AAAmC;AACF;;AAEjC;AACA;AACe,2HAAO,CAAC,mDAAM,IAAI,EAAC;;;;;;;;ACLlC;AAAA;AAAA;AAA+C;AACS;;AAExD;AACA;AACe,qIAAiB,KAAK,0DAAa,CAAC,EAAC;;;;;;;;ACLpD;AAAA;AAAA;AAAA;AAA6B;AACM;;AAEnC;AACA;AACe;AACf,SAAS,yDAAI,MAAM,4DAAO;AAC1B;;;;;;;;ACPA;AAAA;AAA8C;;AAE9C;AACA;AACe,gIAAY,GAAG,EAAC;;;;;;;;ACJ/B;AAAA;AAA8C;;AAE9C;AACe,gIAAY,IAAI,EAAC;;;;;;;;ACHhC;AAAA;AAAA;AAAA;AAAA;AAAiC;AACA;AACP;;AAE1B;AACe;AACf,SAAS,2DAAM,MAAM,2DAAM,CAAC,uDAAE;AAC9B;;;;;;;;ACPA;AAAA;AAAA;AAAA;AAAA;AAA0B;AACkB;AACf;;AAE7B;AACe;AACf,cAAc,uDAAE;AAChB,eAAe,gEAAW,SAAS,yDAAI;AACvC;AACA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA;;;;;;;;ACdA;AAAA;AAAA;AAAA;AAAA;AAA0B;AACkB;AACf;;AAE7B;AACe;AACf,cAAc,uDAAE;AAChB,eAAe,gEAAW,SAAS,yDAAI;AACvC;AACA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA;;;;;;;;ACdA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA+C;AACN;AACd;AACS;AACF;;AAElC;AACe,iIAAa;AAC5B;AACA,MAAM,+DAAU;AAChB;AACA,GAAG;AACH,WAAW,2DAAM;AACjB;AACA;AACA;AACA,SAAS,wDAAG;AACZ;AACA;AACA;AACA,kBAAkB,4DAAO;AACzB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC,CAAC,EAAC;;;;;;;;AC3BH;AAAA;AAAA;AAAA;AAAiC;AACE;;AAEnC;AACA;AACe;AACf,SAAS,2DAAM,MAAM,4DAAO;AAC5B;;;;;;;;ACPA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA4C;AACX;AACP;AACG;;AAE7B;AACe;AACf;AACA;AACA;AACA,UAAU,gEAAW,cAAc,2DAAM;AACzC,wCAAwC,YAAY;AACpD;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,eAAe,uDAAE;AACjB,IAAI,yDAAI;AACR;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;;;;;;AC5BA;AAAA;AAAA;AAAiC;;AAEjC;AACe;AACf,SAAS,2DAAM;AACf;;;;;;;;ACLA;AAAA;AAAA;AAAA;AAAA;AAA0B;AACK;AACJ;;AAE3B;AACe;AACf;AACA,aAAa,uDAAE;AACf,SAAS,0DAAK,CAAC,wDAAG;AAClB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;ACvBA;AAAA;AAAA;AAAgC;AACJ;;AAE5B;AACA;AACe,yHAAK;AACpB,MAAM,wDAAG,uCAAuC;AAChD,CAAC,CAAC,EAAC;;;;;;;;ACPH;AAAA;AAAgC;;AAEhC;AACA;AACe,yHAAK;AACpB;AACA,CAAC,CAAC,EAAC;;;;;;;;ACNH;AAAA;AAAA;AAAgC;AACJ;;AAE5B;AACA;AACA;AACe,yHAAK;AACpB,MAAM,wDAAG,6BAA6B;AACtC,CAAC,CAAC,EAAC;;;;;;;;ACRH;AAAA;AAAgC;;AAEhC;AACA;AACe,yHAAK;AACpB;AACA,CAAC,OAAO,EAAC;;;;;;;;ACNT;AAAA;AAAA;AAAA;AAA4C;AACf;;AAE7B;AACe;AACf;AACA,SAAS,gEAAW,qBAAqB,yDAAI;AAC7C;;;;;;;;ACPA;AAAA;AAAA;AACA;AACe;AACf;AACA;;;;;;;;ACJA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA+C;AACN;AACR;AACN;AACS;AACC;AACR;;AAE7B;AACe,iIAAa;AAC5B;AACA,MAAM,+DAAU;AAChB,eAAe,2DAAM;AACrB;AACA,GAAG;AACH,WAAW,wDAAG,CAAC,4DAAO;AACtB;AACA,cAAc,6DAAQ;AACtB;AACA;AACA,SAAS,yDAAI;AACb,CAAC,CAAC,EAAC;;;;;;;;ACrBH;AAAA;AAAA;AAAmC;;AAEnC;AACA;AACe;AACf;AACA;AACA,SAAS,4DAAO;AAChB;;;;;;;;ACRA;AAAA;AAAA;AAA6B;;AAE7B;AACA;AACe;AACf;AACA;AACA,SAAS,yDAAI;AACb;;;;;;;;ACRA;AAAA;AAAA;AAAiC;;AAEjC;AACe;AACf,SAAS,2DAAM;AACf;;;;;;;;ACLA;AAAA;AAAA;AAAqC;;AAErC;AACA;AACe;AACf,SAAS,4DAAQ;AACjB;;;;;;;;ACNA;AAAA;AAAA;AAA+C;AACN;;AAEzC;AACe,iIAAa;AAC5B,SAAS,+DAAU;AACnB,CAAC,CAAC,EAAC;;;;;;;;ACNH;AAAA;AAAA;AAAA;AAA+C;AAClB;AACO;;AAEpC;AACA;AACe,iIAAa;AAC5B,SAAS,yDAAI,CAAC,4DAAO;AACrB,CAAC,CAAC,EAAC;;;;;;;;ACRH;AAAA;AAAA;AAAA;AAAwC;AACH;;AAErC;AACA;AACe;AACf;AACA;AACA,2BAA2B,8DAAS,QAAQ,YAAY;AACxD;AACA,QAAQ,6DAAQ;AAChB;AACA,eAAe,gBAAgB;AAC/B,WAAW,6DAAQ;AACnB;AACA;AACA;AACA;AACA;;;;;;;;AClBA;AAAA;AAAA;AAA+C;AAChB;;AAE/B;AACA;AACe,iIAAa,CAAC,kDAAK,CAAC,EAAC;;;;;;;;ACLpC;AAAA;AAAA;AAAyC;;AAEzC;AACA;AACA;AACe;AACf;AACA,2BAA2B,8DAAS,OAAO,YAAY;AACvD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AAAA;AAAA;AACA;AACA;AACe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB,cAAc;AACjC;AACA;;AAEA;AACA;;;;;;;;ACpBA;AAAA;AAAA;AAAoC;;AAEpC;AACA;AACe;AACf;AACA;AACA;AACA;AACA,gBAAgB,gDAAK;AACrB;AACA;AACA;;;;;;;;ACZA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAgC;AACH;AACU;AACJ;AACS;;AAE5C;AACe;AACf,EAAE,yDAAI,CAAC,8DAAS;AAChB,eAAe,uDAAC;AAChB,IAAI,uDAAC;AACL;AACA,MAAM,+CAAI;AACV,aAAa,gEAAW,kBAAkB,uDAAC;AAC3C;AACA,GAAG;AACH,SAAS,uDAAC;AACV;;;;;;;;ACjBA;AAAA;AAAA;AAAA;AAAA;AAAgC;AACH;AACY;AACG;;AAE5C;AACA,yDAAI;AACJ,eAAe,qDAAU;AACzB,EAAE,uDAAC;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gEAAW;AACtB;AACA,CAAC;;AAED;AACA,yDAAI;AACJ,eAAe,qDAAU;AACzB,EAAE,uDAAC;AACH;AACA;AACA,WAAW,gEAAW;AACtB;AACA,CAAC;;AAEc,sHAAC,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9BjB;;;;AAIA,IAAIC,0BAA0B,SAA1BA,uBAA0B,CAAU/R,UAAV,EAAsBgS,OAAtB,EAA+B;AAAA;AAAA;;AACzDC,WAAOC,MAAP,CAAcC,OAAd,CAAsBnS,UAAtB,IAAoCgS,OAApC;AACH,CAFD;;QAKID,uB,GAAAA,uB;;;;;;ACTJ,8C;;;;;;ACAA,6C;;;;;;ACAA,+C;;;;;;ACAA,+C;;;;;;;;;ACAA,IAAIK,MAAMC,mBAAOA,CAAC,EAAR,CAAV;;AAEA,SAASxJ,QAAT,CAAkByJ,MAAlB,EAA0B;AAAC,MAAIC,WAAW,EAAf;AAAA,MAAmBC,aAAa,EAAhC;AAAA,MAAoCC,UAApC,CAA+C,IAAIC,kBAAJ,EAAwBC,cAAxB,CAAuC,IAAI;AAAC,QAAIC,oBAAoB,EAAC,iGAA6I,+xRAA9I,EAAxB;AACtH,KAAC,IAAIC,kBAAmBP,UAAU,EAAjC,CAAsC,WAAUnU,QAAV,EAAoB0B,OAApB,EAA6B;AAAC,OAAC8S,iBAAiB,CAAjB,CAAmBD,qBAAqB,+FAArB;AACzFH,iBAAWA,WAAW,qDAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,+FAArB;AACpBH,iBAAWA,WAAW,6CAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,+FAArB;AACpBH,iBAAWA,WAAW,gDAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,+FAArB;AACpBH,iBAAWA,WAAW,4BAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,+FAArB;AACpBH,iBAAWA,WAAW,SAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,+FAArB;AACpBH,iBAAWA,WAAW,qDAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,+FAArB;AACpBH,iBAAWA,WAAW,yCAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,+FAArB;AACpBH,iBAAWA,WAAW,uMAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,+FAArB;AACpBH,iBAAWA,WAAW,kDAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,+FAArB;AACpBH,iBAAWA,WAAW,gCAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,QAAX,IAA4B,yCAAuC,iDAAvC,GAAyFH,IAAItK,IAAJ,CAAS,SAAT,EAAoB3J,SAAS,sBAAT,MAAqC,IAArC,GAA4C,SAA5C,GAAwDuG,SAA5E,EAAuF,IAAvF,EAA6F,IAA7F,CAArH,IAA2N,GAAtO;AACA,OAACiO,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,wCAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,gCAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,QAAX,IAA4B,0CAAwC,iDAAxC,GAA0FH,IAAItK,IAAJ,CAAS,SAAT,EAAoB3J,SAAS,sBAAT,MAAqC,KAArC,GAA6C,SAA7C,GAAyDuG,SAA7E,EAAwF,IAAxF,EAA8F,IAA9F,CAAtH,IAA6N,GAAxO;AACA,OAACiO,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,0BAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,gCAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,QAAX,IAA4B,0CAAwC,iDAAxC,GAA0FH,IAAItK,IAAJ,CAAS,SAAT,EAAoB3J,SAAS,sBAAT,MAAqC,KAArC,GAA6C,SAA7C,GAAyDuG,SAA7E,EAAwF,IAAxF,EAA8F,IAA9F,CAAtH,IAA6N,GAAxO;AACA,OAACiO,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,wEAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,4BAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,SAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,kEAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,yCAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,8HAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,QAAX,IAA4B,wEAAsE,gBAAtE,GAAuFH,IAAItK,IAAJ,CAAS,OAAT,EAAkB3J,SAAS,kCAAT,CAAlB,EAAgE,IAAhE,EAAsE,IAAtE,CAAvF,GAAmK,mHAA/L,IAAsT,SAAjU;AACA,OAACwU,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,4BAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,SAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,4DAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,yCAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,wHAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,QAAX,IAA4B,uEAAqE,gBAArE,GAAsFH,IAAItK,IAAJ,CAAS,OAAT,EAAkB3J,SAAS,iCAAT,CAAlB,EAA+D,IAA/D,EAAqE,IAArE,CAAtF,GAAiK,0DAA7L,IAA2P,SAAtQ;AACA,OAACwU,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,4BAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,SAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,+BAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,yCAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,mEAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,IAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,2BAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,gDAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,gCAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,QAAX,IAA4B,yCAAuC,+CAAvC,GAAuFH,IAAItK,IAAJ,CAAS,SAAT,EAAoB3J,SAAS,yBAAT,MAAwC,KAAxC,GAAgD,SAAhD,GAA2DuG,SAA/E,EAA0F,IAA1F,EAAgG,IAAhG,CAAnH,IAA4N,GAAvO;AACA,OAACiO,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,qBAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,gCAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,QAAX,IAA4B,yCAAuC,+CAAvC,GAAuFH,IAAItK,IAAJ,CAAS,SAAT,EAAoB3J,SAAS,yBAAT,MAAwC,KAAxC,GAAgDuG,SAAhD,GAA4D,SAAhF,EAA2F,IAA3F,EAAiG,IAAjG,CAAnH,IAA6N,GAAxO;AACA,OAACiO,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,gCAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,4BAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,SAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,yCAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,yCAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,kDAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,wDAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,uEAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrB;AACA,OAAC,CAAC,YAAU;AACV,YAAII,QAAQjT,OAAZ;AACA,YAAI,YAAY,OAAOiT,MAAM/E,MAA7B,EAAqC;AACjC,eAAK,IAAIgF,aAAa,CAAjB,EAAoBC,MAAMF,MAAM/E,MAArC,EAA6CgF,aAAaC,GAA1D,EAA+DD,YAA/D,EAA6E;AAC3E,gBAAIhD,SAAS+C,MAAMC,UAAN,CAAb;AACR,aAACJ,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,uBAAWA,WAAW,SAAX,IAA6BH,IAAItK,IAAJ,CAAS,OAAT,EAAkBiI,OAAO9O,IAAzB,EAA+B,IAA/B,EAAqC,IAArC,IAA2CmR,IAAItK,IAAJ,CAAS,UAAT,EAAsB3J,SAAS,4BAAT,MAA2C4R,OAAO9O,IAAxE,EAA+E,IAA/E,EAAqF,IAArF,CAAxE,IAAsK,GAAjL;AACA,aAAC0R,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,uBAAWA,WAAYH,IAAIxI,MAAJ,CAAW,SAAS6I,aAAa1C,OAAO7O,KAA7B,IAAsC,EAAtC,GAA2CuR,UAAtD,CAAZ,GAAiF,WAA5F;AACO;AACJ,SARD,MAQO;AACL,cAAIO,MAAM,CAAV;AACA,eAAK,IAAID,UAAT,IAAuBD,KAAvB,EAA8B;AAC5BE;AACA,gBAAIjD,SAAS+C,MAAMC,UAAN,CAAb;AACN,aAACJ,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,uBAAWA,WAAW,SAAX,IAA6BH,IAAItK,IAAJ,CAAS,OAAT,EAAkBiI,OAAO9O,IAAzB,EAA+B,IAA/B,EAAqC,IAArC,IAA2CmR,IAAItK,IAAJ,CAAS,UAAT,EAAsB3J,SAAS,4BAAT,MAA2C4R,OAAO9O,IAAxE,EAA+E,IAA/E,EAAqF,IAArF,CAAxE,IAAsK,GAAjL;AACA,aAAC0R,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,uBAAWA,WAAYH,IAAIxI,MAAJ,CAAW,SAAS6I,aAAa1C,OAAO7O,KAA7B,IAAsC,EAAtC,GAA2CuR,UAAtD,CAAZ,GAAiF,WAA5F;AACK;AACF;AACF,OArBA,EAqBExH,IArBF,CAqBO,IArBP;;AAuBDsH,iBAAWA,WAAW,uBAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,4BAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,SAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,sCAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,yCAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,yEAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,IAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,uEAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,IAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,uEAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,IAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,uDAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,gDAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,gCAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,QAAX,IAA4B,4CAA0C,uDAA1C,GAAkGH,IAAItK,IAAJ,CAAS,SAAT,EAAoB3J,SAAS,4BAAT,MAA2C,KAA3C,GAAmD,SAAnD,GAA8DuG,SAAlF,EAA6F,IAA7F,EAAmG,IAAnG,CAA9H,IAA0O,GAArP;AACA,OAACiO,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,uCAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,gCAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,QAAX,IAA4B,gDAA8C,uDAA9C,GAAsGH,IAAItK,IAAJ,CAAS,SAAT,EAAoB3J,SAAS,4BAAT,MAA2C,KAA3C,GAAmDuG,SAAnD,GAA+D,SAAnF,EAA8F,IAA9F,EAAoG,IAApG,CAAlI,IAA+O,GAA1P;AACA,OAACiO,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,0DAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,4BAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrB,UAAIO,oBAAoB,kIAAxB,CACCN,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrB,UAAIQ,cAAc,0IAAlB,CACCP,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,SAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,kDAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,yCAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,uDAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,QAAX,IAA4B,0EAAwE,gBAAxE,GAAyFH,IAAItK,IAAJ,CAAS,OAAT,EAAkB3J,SAAS,oCAAT,CAAlB,EAAkE,IAAlE,EAAwE,IAAxE,CAAzF,GAAuKiU,IAAItK,IAAJ,CAAS,aAAT,EAAwBmL,iBAAxB,EAA2C,IAA3C,EAAiD,IAAjD,CAAvK,GAA8Nb,IAAItK,IAAJ,CAAS,OAAT,EAAkBoL,WAAlB,EAA+B,IAA/B,EAAqC,IAArC,CAA1P,IAAwS,GAAnT;AACA,OAACP,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,yCAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,4DAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,QAAX,IAA4B,mEAAiE,gBAAjE,GAAkFH,IAAItK,IAAJ,CAAS,OAAT,EAAkB3J,SAAS,6BAAT,CAAlB,EAA2D,IAA3D,EAAiE,IAAjE,CAAlF,GAAyJiU,IAAItK,IAAJ,CAAS,aAAT,EAAwBmL,iBAAxB,EAA2C,IAA3C,EAAiD,IAAjD,CAAzJ,GAAgNb,IAAItK,IAAJ,CAAS,OAAT,EAAkBoL,WAAlB,EAA+B,IAA/B,EAAqC,IAArC,CAA5O,IAA0R,GAArS;AACA,OAACP,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,yCAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,wEAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,QAAX,IAA4B,yEAAuE,gBAAvE,GAAwFH,IAAItK,IAAJ,CAAS,OAAT,EAAkB3J,SAAS,mCAAT,CAAlB,EAAiE,IAAjE,EAAuE,IAAvE,CAAxF,GAAqKiU,IAAItK,IAAJ,CAAS,aAAT,EAAwBmL,iBAAxB,EAA2C,IAA3C,EAAiD,IAAjD,CAArK,GAA4Nb,IAAItK,IAAJ,CAAS,OAAT,EAAkBoL,WAAlB,EAA+B,IAA/B,EAAqC,IAArC,CAAxP,IAAsS,SAAjT;AACA,OAACP,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,4BAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,SAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,8CAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,yCAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,8BAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,KAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,+BAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,aAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,oDAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,gCAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,QAAX,IAA4B,6CAA2C,mDAA3C,GAA+FH,IAAItK,IAAJ,CAAS,SAAT,EAAoB3J,SAAS,6BAAT,MAA4C,KAA5C,GAAoD,SAApD,GAA+DuG,SAAnF,EAA8F,IAA9F,EAAoG,IAApG,CAA3H,IAAwO,GAAnP;AACA,OAACiO,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,yBAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,gCAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,QAAX,IAA4B,6CAA2C,mDAA3C,GAA+FH,IAAItK,IAAJ,CAAS,SAAT,EAAoB3J,SAAS,6BAAT,MAA4C,KAA5C,GAAoDuG,SAApD,GAAgE,SAApF,EAA+F,IAA/F,EAAqG,IAArG,CAA3H,IAAyO,GAApP;AACA,OAACiO,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,gCAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,4BAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrB,UAAIO,oBAAoB,2FAAxB,CACCN,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrB,UAAIQ,cAAc,mGAAlB,CACCP,iBAAiB,EAAjB,CAAoBD,qBAAqB,+FAArB;AACrBH,iBAAWA,WAAW,SAAtB;AACA,OAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,+FAArB;AACtBH,iBAAWA,WAAW,kDAAtB;AACA,OAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,+FAArB;AACtBH,iBAAWA,WAAW,yCAAtB;AACA,OAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,+FAArB;AACtBH,iBAAWA,WAAW,kDAAtB;AACA,OAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,+FAArB;AACtBH,iBAAWA,WAAW,QAAX,IAA4B,qEAAmE,gBAAnE,GAAoFH,IAAItK,IAAJ,CAAS,OAAT,EAAkB3J,SAAS,+BAAT,CAAlB,EAA6D,IAA7D,EAAmE,IAAnE,CAApF,GAA6JiU,IAAItK,IAAJ,CAAS,aAAT,EAAwBmL,iBAAxB,EAA2C,IAA3C,EAAiD,IAAjD,CAA7J,GAAoNb,IAAItK,IAAJ,CAAS,OAAT,EAAkBoL,WAAlB,EAA+B,IAA/B,EAAqC,IAArC,CAAhP,IAA8R,GAAzS;AACA,OAACP,iBAAiB,GAAjB,CAAqBD,qBAAqB,+FAArB;AACtBH,iBAAWA,WAAW,yCAAtB;AACA,OAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,+FAArB;AACtBH,iBAAWA,WAAW,uDAAtB;AACA,OAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,+FAArB;AACtBH,iBAAWA,WAAW,QAAX,IAA4B,8DAA4D,gBAA5D,GAA6EH,IAAItK,IAAJ,CAAS,OAAT,EAAkB3J,SAAS,wBAAT,CAAlB,EAAsD,IAAtD,EAA4D,IAA5D,CAA7E,GAA+IiU,IAAItK,IAAJ,CAAS,aAAT,EAAwBmL,iBAAxB,EAA2C,IAA3C,EAAiD,IAAjD,CAA/I,GAAsMb,IAAItK,IAAJ,CAAS,OAAT,EAAkBoL,WAAlB,EAA+B,IAA/B,EAAqC,IAArC,CAAlO,IAAgR,GAA3R;AACA,OAACP,iBAAiB,GAAjB,CAAqBD,qBAAqB,+FAArB;AACtBH,iBAAWA,WAAW,yCAAtB;AACA,OAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,+FAArB;AACtBH,iBAAWA,WAAW,mEAAtB;AACA,OAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,+FAArB;AACtBH,iBAAWA,WAAW,QAAX,IAA4B,oEAAkE,gBAAlE,GAAmFH,IAAItK,IAAJ,CAAS,OAAT,EAAkB3J,SAAS,8BAAT,CAAlB,EAA4D,IAA5D,EAAkE,IAAlE,CAAnF,GAA2JiU,IAAItK,IAAJ,CAAS,aAAT,EAAwBmL,iBAAxB,EAA2C,IAA3C,EAAiD,IAAjD,CAA3J,GAAkNb,IAAItK,IAAJ,CAAS,OAAT,EAAkBoL,WAAlB,EAA+B,IAA/B,EAAqC,IAArC,CAA9O,IAA4R,SAAvS;AACA,OAACP,iBAAiB,GAAjB,CAAqBD,qBAAqB,+FAArB;AACtBH,iBAAWA,WAAW,4BAAtB;AACA,OAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,+FAArB;AACtBH,iBAAWA,WAAW,6CAAtB;AACA,OAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,+FAArB;AACtBH,iBAAWA,WAAW,8BAAtB;AACA,OAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,+FAArB;AACtBH,iBAAWA,WAAW,yCAAtB;AACA,OAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,+FAArB;AACtBH,iBAAWA,WAAW,sKAAtB;AACA,OAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,+FAArB;AACtBH,iBAAWA,WAAW,4CAAtB;AACA,OAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,+FAArB;AACtBH,iBAAWA,WAAW,QAAX,IAA4B,qCAAmC,mDAAnC,GAAuFH,IAAItK,IAAJ,CAAS,OAAT,EAAkB3J,SAAS,2BAAT,KAAyC,EAA3D,EAA+D,IAA/D,EAAqE,IAArE,CAAvF,GAAkK,mDAA9L,IAAqP,GAAhQ;AACA,OAACwU,iBAAiB,GAAjB,CAAqBD,qBAAqB,+FAArB;AACtBH,iBAAWA,WAAW,iCAAtB;AACA,OAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,+FAArB;AACtBH,iBAAWA,WAAW,mEAAtB;AACA,OAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,+FAArB;AACtBH,iBAAWA,WAAW,+DAAtB;AACA,OAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,+FAArB;AACtBH,iBAAWA,WAAW,4BAAtB;AACA,OAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,+FAArB;AACtBH,iBAAWA,WAAW,SAAtB;AACA,OAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,+FAArB;AACtBH,iBAAWA,WAAW,6CAAtB;AACA,OAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,+FAArB;AACtBH,iBAAWA,WAAW,yCAAtB;AACA,OAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,+FAArB;AACtBH,iBAAWA,WAAW,yEAAtB;AACA,OAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,+FAArB;AACtBH,iBAAWA,WAAW,IAAtB;AACA,OAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,+FAArB;AACtBH,iBAAWA,WAAW,uEAAtB;AACA,OAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,+FAArB;AACtBH,iBAAWA,WAAW,IAAtB;AACA,OAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,+FAArB;AACtBH,iBAAWA,WAAW,oEAAtB;AACA,OAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,+FAArB;AACtBH,iBAAWA,WAAW,IAAtB;AACA,OAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,+FAArB;AACtBH,iBAAWA,WAAW,uEAAtB;AACA,OAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,+FAArB;AACtBH,iBAAWA,WAAW,IAAtB;AACA,OAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,+FAArB;AACtBH,iBAAWA,WAAW,gCAAtB;AACA,OAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,+FAArB;AACtBH,iBAAWA,WAAW,yDAAtB;AACA,OAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,+FAArB;AACtBH,iBAAWA,WAAW,gCAAtB;AACA,OAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,+FAArB;AACtBH,iBAAWA,WAAW,QAAX,IAA4B,6CAA2C,+CAA3C,GAA2FH,IAAItK,IAAJ,CAAS,SAAT,EAAoB3J,SAAS,0CAAT,MAAyD,KAAzD,GAAiE,SAAjE,GAA4EuG,SAAhG,EAA2G,IAA3G,EAAiH,IAAjH,CAAvH,IAAiP,GAA5P;AACA,OAACiO,iBAAiB,GAAjB,CAAqBD,qBAAqB,+FAArB;AACtBH,iBAAWA,WAAW,0BAAtB;AACA,OAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,+FAArB;AACtBH,iBAAWA,WAAW,gCAAtB;AACA,OAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,+FAArB;AACtBH,iBAAWA,WAAW,QAAX,IAA4B,gDAA8C,+CAA9C,GAA8FH,IAAItK,IAAJ,CAAS,SAAT,EAAoB3J,SAAS,0CAAT,MAAyD,KAAzD,GAAiEuG,SAAjE,GAA6E,SAAjG,EAA4G,IAA5G,EAAkH,IAAlH,CAA1H,IAAqP,GAAhQ;AACA,OAACiO,iBAAiB,GAAjB,CAAqBD,qBAAqB,+FAArB;AACtBH,iBAAWA,WAAW,gCAAtB;AACA,OAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,+FAArB;AACtBH,iBAAWA,WAAW,kFAAtB;AACA,OAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,+FAArB;AACtBH,iBAAWA,WAAW,gFAAtB;AAAiI,KAzT1F,EAyT2FtH,IAzT3F,CAyTgG,IAzThG,EAyTqG,cAAc4H,eAAd,GAA8BA,gBAAgB1U,QAA9C,GAAuD,OAAOA,QAAP,KAAkB,WAAlB,GAA8BA,QAA9B,GAAuCuG,SAzTnM,EAyT6M,aAAamO,eAAb,GAA6BA,gBAAgBhT,OAA7C,GAAqD,OAAOA,OAAP,KAAiB,WAAjB,GAA6BA,OAA7B,GAAqC6E,SAzTvS,CAAD;AAyTqT,GA1T1O,CA0T2O,OAAO3C,GAAP,EAAY;AAACqQ,QAAIe,OAAJ,CAAYpR,GAAZ,EAAiB2Q,kBAAjB,EAAqCC,cAArC,EAAqDC,kBAAkBF,kBAAlB,CAArD;AAA6F,IAAC,OAAOH,QAAP;AAAiB;AACxda,OAAOC,OAAP,GAAiBxK,QAAjB,C;;;;;;AC7TA,yC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KCAA;;;AAGA;;;;AACA;;AAEA;;;;;;;;;AAEAwH,sBAAYhD,EAAZ,CAAe,uBAAf,EAAwC,YAAM;AAAA;AAAA;;AAC1C3B,yBAAiBxN,WAAjB,CAA6B,YAAM;AAAA;AAAA;;AAC/B,YAAIwN,qBAAiBvN,QAAjB,CAA0B,0CAA1B,MAA0E,KAA9E,EAAqF;AAAA;AAAA;;AACjF;AACH,SAFD;AAAA;AAAA;AAGA,YAAMmV,sCAAc,IAAd,CAAN;AACA,YAAMC,sCAAc,KAAd,CAAN;AACA,YAAMC,0CAAkB,IAAlB,CAAN;AACA,YAAIC,qBAAJ;AACA,YAAI/S,kCAAU4S,WAAV,CAAJ;AACA,YAAII,sBAAJ;AAT+B;AAU/B,YAAI;AAAA;;AACAA,4BAAgBzB,OAAO0B,YAAP,CAAoBC,OAApB,CAA4B,sBAA5B,CAAhB;AADA;AAEA,gBAAI,6CAAkB,MAAlB,gCAA4BF,kBAAkB,WAA9C,CAAJ,EAA+D;AAAA;AAAA;;AAC3DA,gCAAgBhP,SAAhB;AACH,aAFD;AAAA;AAAA;AAGH,SALD,CAKE,OAAO8D,CAAP,EAAU;AACR;AACH;;AAED,iBAASqL,kBAAT,GAA8B;AAAA;AAAA;;AAC1BJ,2BAAe,IAAf;AAD0B;AAE1B,mCAAY;AACRpU,qBAAK,cADG;AAERE,sBAAM;AACFuU,2BAAO,wEAAiBpP,SAAjB;AADL,iBAFE;AAKRrE,uBAAO;AALC,aAAZ,EAMGZ,IANH,CAMQ,UAACmB,IAAD,EAAU;AAAA;AAAA;;AACd,oBAAI,CAACA,KAAKmN,MAAV,EAAkB;AAAA;AAAA;;AACd,wBAAIrN,UAAU6S,WAAd,EAA2B;AAAA;AAAA;;AACvB7S,mCAAW8S,eAAX;AACH,qBAFD;AAAA;AAAA;AAGH,iBAJD,MAIO;AAAA;AAAA;;AACH9S,8BAAU4S,WAAV;AACH;AAPa;AAQd1S,qBAAKgB,OAAL,CAAa,UAACmS,GAAD,EAAS;AAAA;AAAA;;AAClBL,oCAAgB,+BAAIM,IAAJ,gCAAYN,aAAZ,CAAhB;AADkB;AAElB,wBAAI;AAAA;;AACArD,8CAAY9P,OAAZ,CAAoB,aAAawT,IAAIvU,IAArC,EAA2CuU,GAA3C;AACH,qBAFD,CAEE,OAAOvL,CAAP,EAAU;AACR;AACH;AACJ,iBAPD;AARc;AAgBd,oBAAI;AAAA;;AACAyJ,2BAAO0B,YAAP,CAAoBvG,OAApB,CAA4B,sBAA5B,EAAoDsG,aAApD;AACH,iBAFD,CAEE,OAAOlL,CAAP,EAAU;AACR;AACH;AApBa;AAqBdiL,+BAAexB,OAAOgC,UAAP,CAAkBJ,kBAAlB,EAAsCnT,OAAtC,CAAf;AACH,aA5BD,EA4BGC,IA5BH,CA4BQ,YAAM;AAAA;AAAA;;AACV,oBAAID,UAAU6S,WAAd,EAA2B;AAAA;AAAA;;AACvB7S,+BAAW8S,eAAX;AACH,iBAFD;AAAA;AAAA;AADU;AAIVC,+BAAexB,OAAOgC,UAAP,CAAkBJ,kBAAlB,EAAsCnT,OAAtC,CAAf;AACH,aAjCD;AAkCH;;AAvD8B;AAyD/BwT,iBAASC,gBAAT,CAA0B,kBAA1B,EAA8C,YAAM;AAAA;AAAA;;AAChD,gBAAID,SAASE,eAAT,KAA6B,SAAjC,EAA4C;AAAA;AAAA;;AACxC1T,0BAAU4S,WAAV;AADwC;AAExC,oBAAI,CAACG,YAAL,EAAmB;AAAA;AAAA;;AACfA,mCAAexB,OAAOgC,UAAP,CAAkBJ,kBAAlB,EAAsCnT,OAAtC,CAAf;AADe;AAEf2P,0CAAY9P,OAAZ,CAAoB,qBAApB;AACH,iBAHD;AAAA;AAAA;AAIH,aAND,MAMO;AAAA;AAAA;AAAA,wBAAIkT,YAAJ,EAAkB;AAAA;AAAA;;AACrBxB,+BAAOoC,YAAP,CAAoBZ,YAApB;AADqB;AAErBpD,8CAAY9P,OAAZ,CAAoB,oBAApB;AAFqB;AAGrBkT,uCAAe,IAAf;AACH,qBAJM;AAAA;AAAA;AAIN;AACJ,SAZD;AAzD+B;AAsE/BA,uBAAexB,OAAOgC,UAAP,CAAkBJ,kBAAlB,EAAsCnT,OAAtC,CAAf;AACH,KAvED;AAwEH,CAzED,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACRA;;;;AACA;;;;AAEA;;AACA;;;;AACA;;;;AACA;;AACA;;AAEA;;;;AACA;;;;;;;AAEA,uBAAK4T,wBAAL,EAAqB,QAArB,EAA+B,UAAUlW,MAAV,EAAkB;AAAA;;AAAA;AAAA;;AAC7CA,WAAO6M,IAAP,CAAY,IAAZ;AAD6C;AAE7C,QAAI,2BAAC,KAAKsJ,UAAN,+BAAoB,CAAC,KAAKA,UAAL,CAAgBxV,GAAhB,CAAoB,KAApB,CAArB,CAAJ,EAAqD;AAAA;AAAA;;AACjD,eAAO,IAAP;AACH,KAFD;AAAA;AAAA;AAF6C;AAK7C,QAAI,KAAKwV,UAAL,CAAgBC,cAAhB,KAAmC/S,sBAAWgT,KAAlD,EAAyD;AAAA;AAAA;;AACrD,eAAO,IAAP;AACH,KAFD;AAAA;AAAA;AAGA,QAAIlD,oCAAa,KAAKgD,UAAL,CAAgBxV,GAAhB,CAAoB,YAApB,CAAb,CAAJ;AACA,QAAI2V,+BAAQ,KAAKC,UAAL,CAAgBC,OAAhB,EAAR,CAAJ;AAT6C;AAU7CjR,yBAAEoJ,IAAF,CAAO2H,KAAP,EAAc,UAACG,IAAD,EAAU;AAAA;;AACpB,YAAIC,iCAAU,MAAKrX,CAAL,CAAO,4BAA4BoX,KAAKE,GAAjC,GAAuC,IAA9C,EACTC,OADS,CACD,oBADC,EACqBC,QADrB,CAC8B,2BAD9B,CAAV,CAAJ;AADoB;AAGpB,YAAI,CAACH,QAAQ/G,MAAb,EAAqB;AAAA;AAAA;;AACjB;AACH,SAFD;AAAA;AAAA;AAGA,YAAImH,qCAAa,qCAAqB,EAACL,MAAMA,IAAP,EAAatD,YAAYA,UAAzB,EAArB,CAAb,CAAJ;AANoB;AAOpB,YAAI2D,UAAJ,EAAgB;AAAA;AAAA;;AACZJ,oBAAQK,OAAR,CAAgBD,UAAhB;AADY;AAEZ,gBAAIJ,QAAQtO,GAAR,CAAY,uBAAZ,EAAqCuH,MAAzC,EAAiD;AAAA;AAAA;;AAC7C8G,qBAAKxH,EAAL,CAAQ,WAAR,EAAqB,YAAM;AAAA;AAAA;;AACvB,0BAAKkH,UAAL,CAAgBjE,KAAhB,CAAsB,YAAtB;AADuB;AAEvB,0BAAKiE,UAAL,CAAgBhE,KAAhB;AACH,iBAHD;AAIH,aALD;AAAA;AAAA;AAMH,SARD;AAAA;AAAA;AASH,KAhBD;AAV6C;AA2B7C,SAAK9S,CAAL,CAAO,uBAAP,EAAgC4P,EAAhC,CAAmC,OAAnC,EAA4C,YAAM;AAAA;AAAA;;AAC9C,+BAAY;AACR7N,kBAAM,QADE;AAERH,iBAAK,UAAU,MAAKkV,UAAL,CAAgBnV,EAA1B,GAA+B,QAF5B;AAGRiB,mBAAO;AAHC,SAAZ,EAIGZ,IAJH,CAIQ,YAAM;AAAA;AAAA;;AACV,kBAAK8U,UAAL,CAAgBjE,KAAhB,CAAsB,YAAtB;AADU;AAEV,kBAAKiE,UAAL,CAAgBhE,KAAhB;AACH,SAPD;AAQH,KATD;AA3B6C;AAqC7C,SAAK9S,CAAL,CAAO,uBAAP,EAAgC4P,EAAhC,CAAmC,OAAnC,EAA4C,UAAC7E,CAAD,EAAO;AAAA;;AAC/C,YAAIuM,8BAAM,sBAAEvM,EAAEgB,aAAJ,EAAmBE,MAAnB,GAA4B5B,IAA5B,CAAiC,UAAjC,CAAN,CAAJ;AACA,YAAI4G,iCAAS,MAAKiG,UAAL,CAAgB5V,GAAhB,CAAoBgW,GAApB,EAAyB3V,EAAlC,CAAJ;AAF+C;AAG/C,+BAAY;AACRI,kBAAM,MADE;AAERH,iBAAK,UAAU,MAAKkV,UAAL,CAAgBnV,EAA1B,GAA+B,QAF5B;AAGRG,kBAAM,EAACmP,QAAQA,MAAT,EAAiB0G,QAAQ,IAAzB,EAA+BC,OAAO,CAAC,CAAC,CAAC,4BAAEC,aAAF,+BAAmB,EAAnB,CAAD,EAAwBC,OAAhE,EAAyEC,UAAU,IAAnF,EAHE;AAIRnV,mBAAO,eAAUA,MAAV,EAAiB;AAAA;AAAA;;AACpB,oBAAIA,OAAMoV,MAAN,KAAiB,CAArB,EAAwB;AAAA;AAAA;;AACpBnY,qCAAOiD,OAAP,CAAe,SAAf,EAA0B;AACtBE,8BAAMJ,OAAMQ,YAAN,CAAmBC,OADH;AAEtBtB,8BAAM,MAFgB;AAGtBkB,iCAAS,IAHa;AAItBF,8BAAM;AAJgB,qBAA1B;AAMH,iBAPD;AAAA;AAAA;AAQH;AAbO,SAAZ,EAcGf,IAdH,CAcQ,YAAM;AAAA;AAAA;;AACV,kBAAK8U,UAAL,CAAgBjE,KAAhB,CAAsB,YAAtB;AADU;AAEV,kBAAKiE,UAAL,CAAgBhE,KAAhB;AACH,SAjBD;AAkBH,KArBD;AArC6C;AA2D7C,WAAO,IAAP;AACH,CA5DD;;kBA8De+D,wB;;;;;;AC1Ef,+C;;;;;;;;;ACAA,IAAIlC,MAAMC,mBAAOA,CAAC,EAAR,CAAV;;AAEA,SAASxJ,QAAT,CAAkByJ,MAAlB,EAA0B;AAAC,MAAIC,WAAW,EAAf;AAAA,MAAmBC,aAAa,EAAhC;AAAA,MAAoCC,UAApC,CAA+C,IAAIC,kBAAJ,EAAwBC,cAAxB,CAAuC,IAAI;AAAC,QAAIC,oBAAoB,EAAC,sGAAkJ,4iBAAnJ,EAAxB;AACtH,KAAC,IAAIC,kBAAmBP,UAAU,EAAjC,CAAsC,WAAUuC,IAAV,EAAgBtD,UAAhB,EAA4B;AAAC,OAACoB,iBAAiB,CAAjB,CAAmBD,qBAAqB,oGAArB;AACxF,UAAInB,cAAcsD,KAAKzV,EAAL,KAAYmS,WAAW7C,MAArC,IAA+C6C,WAAWmE,QAAX,KAAwB,IAA3E,EAAiF;AACjF,SAAC/C,iBAAiB,CAAjB,CAAmBD,qBAAqB,oGAArB;AACpBH,mBAAWA,WAAW,iEAAtB;AACA,SAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,oGAArB;AACpBH,mBAAWA,WAAW,2BAAtB;AACA,SAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,oGAArB;AACpBH,mBAAWA,WAAW,gCAAtB;AACA,SAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,oGAArB;AACpBH,mBAAWA,WAAW,0DAAtB;AACC,OATD,MAWA,IAAIhB,cAAcA,WAAWmE,QAAX,KAAwB,IAA1C,EAAgD;AAChD,SAAC/C,iBAAiB,CAAjB,CAAmBD,qBAAqB,oGAArB;AACpBH,mBAAWA,WAAW,sFAAtB;AACA,SAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,oGAArB;AACpBH,mBAAWA,WAAW,oCAAtB;AACC,OALD,MAOA,IAAI,CAAChB,UAAD,IAAe,CAACA,WAAW7C,MAA/B,EAAuC;AACvC,SAACiE,iBAAiB,EAAjB,CAAoBD,qBAAqB,oGAArB;AACrBH,mBAAWA,WAAW,yIAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,oGAArB;AACrBH,mBAAWA,WAAW,oCAAtB;AACC;AAAC,KAxBqC,EAwBpCtH,IAxBoC,CAwB/B,IAxB+B,EAwB1B,UAAU4H,eAAV,GAA0BA,gBAAgBgC,IAA1C,GAA+C,OAAOA,IAAP,KAAc,WAAd,GAA0BA,IAA1B,GAA+BnQ,SAxBpD,EAwB8D,gBAAgBmO,eAAhB,GAAgCA,gBAAgBtB,UAAhD,GAA2D,OAAOA,UAAP,KAAoB,WAApB,GAAgCA,UAAhC,GAA2C7M,SAxBpK,CAAD;AAwBkL,GAzBvG,CAyBwG,OAAO3C,GAAP,EAAY;AAACqQ,QAAIe,OAAJ,CAAYpR,GAAZ,EAAiB2Q,kBAAjB,EAAqCC,cAArC,EAAqDC,kBAAkBF,kBAAlB,CAArD;AAA6F,IAAC,OAAOH,QAAP;AAAiB;AACrVa,OAAOC,OAAP,GAAiBxK,QAAjB,C;;;;;;AC5BA,yC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;;;;AACA;;;;AACA;;;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,WAAW;AACX,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc;;AAEd;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,qBAAqB;AACrB,mBAAmB;AACnB;AACA,yBAAyB;AACzB,uBAAuB;AACvB,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE,WAAW;AAC1B;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,cAAc,yBAAyB,EAAE;AACzC,MAAM;AACN,WAAW,8MAA8M,OAAO,+GAA+G;AAC/U,aAAa,4EAA4E,OAAO,8BAA8B;AAC9H;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,CAAC;AACD,SAAS,sGAAsG,EAAE,MAAM,EAAE,UAAU,EAAE,oCAAoC,EAAE,oCAAoC,EAAE,oCAAoC,EAAE,wCAAwC,EAAE,wCAAwC,EAAE,wCAAwC,EAAE,oCAAoC,EAAE,oCAAoC,EAAE,oCAAoC,EAAE,6CAA6C,EAAE,oCAAoC,EAAE,oCAAoC,EAAE,kHAAkH,EAAE,QAAQ,EAAE,wCAAwC,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,UAAU,EAAE,wCAAwC,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,wCAAwC,EAAE,oBAAoB,EAAE,kGAAkG,EAAE,wCAAwC,EAAE,kGAAkG,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,oBAAoB;AAC1wC,iBAAiB,SAAS;AAC1B;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA,6DAA6D;AAC7D;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,qBAAqB,4HAA4H;AACjJ;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oCAAoC;AACpC,4BAA4B;AAC5B;AACA;AACA,2BAA2B;AAC3B;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,qBAAqB,2CAA2C;AAChE;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8HAA8H,EAAE,oCAAoC,UAAU;AAC9K,oBAAoB,WAAW;;;AAG/B;AACA,cAAc;AACd;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA,wCAAwC,mEAAmE,wBAAwB,EAAE,EAAE;AACvI;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,6BAA6B,kDAAkD;AAC/E;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,6CAA6C,iBAAiB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI;;;;;;;;AC9yBpB,yC;;;;;;ACAA,yC;;;;;;ACAA,yC;;;;;;ACAA;AACA;;AAEA;AACA,MAAM,IAAuD;AAC7D,QAAQ,mBAAO,CAAC,EAAsB;AACtC;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;;AAEA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;;AAEA;AACA;AACA,+BAA+B,eAAe;AAC9C;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,SAAS,aAAa,aAAa;AACnE;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;;AAEA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA,+BAA+B,qBAAqB;AACpD,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA,8DAA8D,KAAK;;AAEnE,oEAAoE,KAAK;;AAEzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,QAAQ;AACtE,sDAAsD;AACtD,8BAA8B;AAC9B;AACA;;AAEA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,UAAU;AACV,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,CAAC;;AAED,CAAC;;;;;;;ACtHD;AACA;;AAEA;AACA,MAAM,IAAuD;AAC7D,QAAQ,mBAAO,CAAC,EAAsB,GAAG,mBAAO,CAAC,GAAY;AAC7D;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,2BAA2B;;AAE3B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,sBAAsB,EAAE;AACxE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACxKD;AACA;;AAEA;AACA,MAAM,IAAuD;AAC7D,QAAQ,mBAAO,CAAC,EAAsB;AACtC;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,EAAE;AACrC;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB,gBAAgB;AAC1D;AACA;AACA,sCAAsC;AACtC;AACA;AACA,iBAAiB,QAAQ,OAAO;AAChC;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,wBAAwB;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,+BAA+B;AAC9D,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,iCAAiC,0BAA0B;AAC3D,OAAO;AACP,oCAAoC,+BAA+B;AACnE;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,sBAAsB,2BAA2B;AACjD;AACA;;AAEA;AACA;;AAEA,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,0CAA0C,kBAAkB;AAC5D;;AAEA;AACA;AACA;AACA,mBAAmB,wBAAwB;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8CAA8C,gBAAgB;;AAE9D;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,oBAAoB;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;AACH,CAAC;;;;;;;AC/RD;AACA;;AAEA;;AAEA;;AAEA;AACA,MAAM,IAAuD;AAC7D,QAAQ,mBAAO,CAAC,EAAsB;AACtC;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,6BAA6B;AAC7B;AACA,OAAO,sBAAsB;AAC7B;AACA;AACA,CAAC;;AAED,CAAC;;;;;;;ACvCD;AACA;;AAEA;AACA,MAAM,IAAuD;AAC7D,QAAQ,mBAAO,CAAC,EAAsB;AACtC;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,sBAAsB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,yCAAyC;AAC3D;AACA;AACA,CAAC;;AAED,CAAC;;;;;;;ACxCD;AACA;;AAEA;AACA,MAAM,IAAuD;AAC7D,QAAQ,mBAAO,CAAC,EAAsB;AACtC;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,uBAAuB,QAAQ;AAC/B;AACA,2CAA2C;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK,kBAAkB,MAAM;AAC7B;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe;AACf,6CAA6C,GAAG,IAAI;AACpD;AACA;;AAEA;AACA,6BAA6B,UAAU;AACvC;AACA;AACA;AACA,qBAAqB,OAAO,OAAO;AACnC,2BAA2B,oCAAoC,OAAO;AACtE,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP,eAAe;AACf;AACA;AACA,oEAAoE,OAAO;AAC3E;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,qBAAqB;AACrB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iCAAiC,GAAG;AACpC;AACA,gCAAgC,IAAI;AACpC,2BAA2B,GAAG;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,oBAAoB,8BAA8B;;AAEvE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,YAAY;AACZ;AACA,sCAAsC,QAAQ;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,GAAG;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,uCAAuC,kBAAkB,kBAAkB;AAC3E,4BAA4B,kBAAkB;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,2CAA2C;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B,eAAe;AAC1C;AACA;AACA;AACA;;AAEA;AACA,8EAA8E;AAC9E;AACA;AACA,+HAA+H;AAC/H,iDAAiD;AACjD,kBAAkB,yBAAyB;AAC3C,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,+FAA+F;AAC/F,4DAA4D,cAAc;AAC1E,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,2EAA2E,cAAc;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4DAA4D,uBAAuB,uDAAuD;AAC1I;AACA;AACA;AACA;AACA,kBAAkB,kCAAkC;AACpD;AACA;AACA;AACA;AACA;AACA,sBAAsB,EAAE;AACxB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,wBAAwB;AAClD,kBAAkB;AAClB;AACA;AACA;AACA,gCAAgC,uBAAuB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB,iCAAiC;AACpF;AACA;AACA,4BAA4B,uBAAuB,mCAAmC;AACtF;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA,6BAA6B,uBAAuB;AACpD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,yBAAyB;AAC3C;AACA;AACA,0BAA0B,mCAAmC;AAC7D;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK,yBAAyB,EAAE;AAChC;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,uBAAuB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sBAAsB;AAChD;AACA;AACA;AACA,oCAAoC,uBAAuB;AAC3D,6BAA6B,iBAAiB,eAAe;AAC7D;AACA;AACA,kBAAkB,sCAAsC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,yCAAyC,uBAAuB;AAChE;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C,6BAA6B,gBAAgB;AAC7C;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C,6BAA6B,gBAAgB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,uBAAuB,qBAAqB;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,gBAAgB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,yBAAyB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB,iCAAiC,IAAI;AACnF,6BAA6B,uBAAuB,kCAAkC,IAAI;AAC1F,kBAAkB,uCAAuC,wBAAwB;AACjF;AACA;AACA;AACA,wBAAwB,uBAAuB,iCAAiC;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qCAAqC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB,yBAAyB;AACxE;AACA;AACA,0BAA0B,uBAAuB,yBAAyB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,cAAc,2BAA2B;AAC5F;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0EAA0E,IAAI;AAC9E,uCAAuC;AACvC;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,0EAA0E,QAAQ;AAClF;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL,gDAAgD,GAAG;AACnD;AACA;AACA;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA,2CAA2C,iCAAiC;AAC5E,6CAA6C,iCAAiC;AAC9E,oDAAoD,iCAAiC;AACrF,8CAA8C,mCAAmC;AACjF,0CAA0C,uCAAuC;AACjF,iDAAiD,uCAAuC;;AAExF,CAAC;;;;;;;AC/7BD;AACA;;AAEA;AACA,MAAM,IAAuD;AAC7D,QAAQ,mBAAO,CAAC,EAAsB;AACtC;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,uDAAuD;AACvD;AACA;AACA;AACA,OAAO;AACP;AACA,2BAA2B;AAC3B;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP,2BAA2B;AAC3B;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA,CAAC;;;;;;;AC7ED;AACA;;AAEA;AACA,MAAM,IAAuD;AAC7D,QAAQ,mBAAO,CAAC,EAAsB;AACtC;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2BAA2B;AAC3B,OAAO,0BAA0B,uBAAuB;AACxD;AACA;AACA;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA,kCAAkC,cAAc;AAChD;AACA,sCAAsC,eAAe;AACrD;AACA;AACA,4BAA4B,GAAG;AAC/B,oBAAoB;AACpB;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AA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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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AA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sBAAsB;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,uBAAuB,0BAA0B;AACjD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;;AAEA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,iBAAiB;AAC9B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,+CAA+C;;AAE/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B,WAAW,MAAM;AACjB,aAAa;AACb;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,mDAAmD;AACnD;AACA;AACA;;AAEA;AACA;AACA,GAAG;;;AAGH;AACA;AACA,GAAG;;;AAGH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;;;AAGA;AACA;AACA,0CAA0C;;AAE1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;;;AAGA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,MAAM;AACjB,YAAY,OAAO;AACnB;;AAEA;AACA,uCAAuC;;AAEvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO,KAAK;AACvB,WAAW,OAAO,KAAK;AACvB,WAAW,MAAM;AACjB,YAAY,OAAO;AACnB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,YAAY,OAAO;AACnB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,SAAS,wBAAwB,gBAAgB,gBAAgB,EAAE;AAC/F;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,YAAY,OAAO;AACnB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,YAAY,OAAO;AACnB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;;AAEA;AACA;AACA;AACA,uCAAuC;;AAEvC;AACA;AACA,GAAG;;;AAGH;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;;AAE3C;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;;AAGA,8BAA8B;;AAE9B,mCAAmC;;AAEnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kEAAkE;;AAElE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;;AAEnD,+DAA+D;;AAE/D;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;;;AAGL;AACA;AACA,KAAK;;;AAGL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,MAAM,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK;AAC3C,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,MAAM,GAAG,KAAK,EAAE,KAAK;AAClC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,yBAAyB;;AAEzB;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,CAAC;;AAED;AACA;AACA,iCAAiC;;AAEjC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2BAA2B;;AAE3B;AACA;AACA,GAAG,EAAE;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;;AAGH;;AAEA;AACA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;;;AAGA;;AAEA;AACA,6CAA6C;;AAE7C;AACA;AACA;;AAEA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,6BAA6B;AAC9C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;;;AAGT;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;;AAEA;AACA,WAAW;;AAEX;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,kBAAkB;AAC7B,WAAW,WAAW;AACtB,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,cAAc;AACd;;;AAGA;;AAEA;AACA,oCAAoC;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,WAAW;AACxB,eAAe,WAAW;AAC1B;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,WAAW;AACxB,eAAe,WAAW;AAC1B;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,WAAW;AACxB,eAAe,WAAW;AAC1B;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,WAAW;AACxB,eAAe,WAAW;AAC1B;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,WAAW;AACxB,eAAe;AACf;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;;;AAGA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;;AAEA,6BAA6B;;AAE7B;AACA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;;;AAGA;AACA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;;;AAGA;AACA;AACA;AACA,oCAAoC,aAAa;;AAEjD;AACA;AACA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;;AAEA,8CAA8C;AAC9C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,SAAS;AACxB;;AAEA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe;AACf;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,oBAAoB;AACzB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA,0BAA0B;AAC1B;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA,WAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,QAAQ;AACvB;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,EAAE;AACjB;;;AAGA;AACA;AACA;AACA;AACA,uCAAuC;;AAEvC;AACA;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa;AACb;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA,8BAA8B,yBAAyB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe;AACf;;;AAGA;;AAEA;AACA,oCAAoC;;AAEpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;;;AAGA;AACA;;AAEA;AACA;AACA,KAAK;;;AAGL;AACA;AACA,uCAAuC;AACvC;AACA;;AAEA,8CAA8C;AAC9C;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,kBAAkB;AAC/B,eAAe;AACf;;;AAGA;AACA;AACA;AACA;;AAEA;;AAEA,mBAAmB,wBAAwB;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,WAAW;AACxB,eAAe;AACf;;;AAGA;AACA;AACA;AACA,KAAK;;;AAGL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,kBAAkB;AAC/B,eAAe;AACf;;;AAGA;AACA;AACA;AACA;;AAEA,gDAAgD;;AAEhD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,eAAe,aAAa;AAC5B;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,eAAe,aAAa;AAC5B;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB;;;AAGA;AACA;AACA;AACA;AACA,KAAK;;;AAGL;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,+CAA+C;;AAE/C;AACA;AACA;;AAEA;AACA;AACA;;AAEA,8DAA8D;;AAE9D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA,yIAAyI,UAAU;AACnJ;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,GAAG;AACH;AACA,CAAC;;AAED;;AAEA;;AAEe,qEAAM,EAAC;AAC8yB;AACp0B;;;;;;;AC/6FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE;AACtE,KAAK;AACL,wFAAwF;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF,SAAS;AAC/F,4DAA4D,SAAS;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA,wEAAwE;AACxE,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,OAAO;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,EAAE;AACpD,sBAAsB;AACtB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,SAAS;AAC9C;AACA;AACA,wCAAwC,SAAS;AACjD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,SAAS;AAC9C,yDAAyD,SAAS;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA,oEAAoE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA,OAAO;AACP,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,cAAc,MAAM;AACpB;AACA;AACA,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;AACA,uCAAuC,OAAO;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,SAAS;AAC9C,4EAA4E,UAAU;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,SAAS;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,sCAAsC,OAAO;AAC7C,gEAAgE,OAAO;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C,wDAAwD,OAAO;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,SAAS;AAC9C;AACA;AACA;AACA,wCAAwC,SAAS;AACjD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,OAAO;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,wCAAwC;AAC9F;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iFAAiF;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA,SAAS,gBAAgB;AACzB;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA,kBAAkB,UAAU;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,EAAE;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,sEAAsE,6BAA6B;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,OAAO;AAChE;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,gEAAgE,QAAQ;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,6DAA6D,OAAO;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,OAAO;AACrD,WAAW;AACX;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,2CAA2C,QAAQ;AACnD,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,OAAO;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B,oEAAoE,OAAO;AAC3E;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,4CAA4C;AAC5C;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,+BAA+B,iCAAiC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,gCAAgC,QAAQ;AACxC,yBAAyB,8BAA8B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,cAAc;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA,OAAO;AACP,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,8BAA8B,8BAA8B;AAC5D;AACA,+CAA+C;AAC/C,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,+BAA+B,OAAO;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,iBAAiB,OAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,6BAA6B;AAC7B,OAAO;AACP;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL,wBAAwB,OAAO;AAC/B;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,eAAe,QAAQ;AACvB,UAAU,OAAO;AACjB,UAAU,OAAO;AACjB;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,8BAA8B;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,8BAA8B;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,OAAO,2DAA2D,iBAAiB,OAAO;AACnJ;AACA,yDAAyD,OAAO,2DAA2D,iBAAiB,OAAO;AACnJ;AACA,mDAAmD,OAAO,mDAAmD,iBAAiB,OAAO;AACrI;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA,iBAAiB,OAAO;AACxB,0BAA0B,OAAO;AACjC;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,iBAAiB,OAAO;AACxB,2BAA2B,OAAO;AAClC,uDAAuD,OAAO;AAC9D,0EAA0E,OAAO;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA,KAAK;AACL;AACA;AACA,iBAAiB,OAAO;AACxB,0BAA0B,OAAO;AACjC,0BAA0B,OAAO,yBAAyB,iBAAiB,OAAO;AAClF;AACA,iBAAiB,OAAO;AACxB;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,MAAM;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA,gCAAgC,SAAS;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,oBAAoB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF;AACjF;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE;AACpE;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,8EAA8E,OAAO;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,8BAA8B,OAAO;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gCAAgC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,MAAM,qBAAqB,OAAO;AAClD;AACA,SAAS;AACT;AACA,gBAAgB,QAAQ,sBAAsB,OAAO;AACrD;AACA,mBAAmB,cAAc;AACjC,8BAA8B,kBAAkB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,qBAAqB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,SAAS;AAC9C;AACA,yDAAyD,SAAS;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,SAAS;AAC9C;AACA,yDAAyD,SAAS;AAClE;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,SAAS;AAC9C,yDAAyD,SAAS;AAClE;AACA;AACA;AACA;AACA,+CAA+C,SAAS;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA,wDAAwD,OAAO;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA,wDAAwD,OAAO;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb,WAAW;AACX,SAAS;AACT;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,0BAA0B;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,MAAM,IAA0C,gBAAgB,oCAAO,EAAE;AAAA;AAAA;AAAA;AAAA,oGAAC,CAAC,4EAA4E;AACvJ,CAAC,G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACj1SD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+DA,SAAS4B,YAAT,CAAsB4B,QAAtB,EAAgCxC,KAAhC,EAAuCsC,OAAvC,EAAgD;AAAA;AAAA;;AAC5CtC,UAAMY,YAAN,GAAqB,YAAY;AAAA;AAAG,KAApC;AAD4C;AAE5C,QAAI,2BAAC4B,QAAD,+BAAa,CAACA,SAASrlB,KAAvB,+BAAgC,CAACqlB,SAASplB,KAA1C,+BAAmD,CAACklB,OAApD,+BAA+D,CAACA,QAAQ5B,OAAxE,CAAJ,EAAqF;AAAA;AAAA;;AACjF;AACH,KAFD;AAAA;AAAA;AAGA,QAAI6C,uBAAJ;AAL4C;AAM5C,QAAI;AAAA;;AACAA,yBAAiB,gCAAMrD,QAAN,GAAiBsD,eAAjB,+BAAoCxD,MAAME,QAAN,GAAiBpF,WAAjB,CAA6B0I,eAAjE,CAAjB;AACH,KAFD,CAEE,OAAOznB,GAAP,EAAY,CAAG;AAR2B;AAS5CumB,cAAU9jB,OAAOilB,MAAP,CAAc,EAAd,EAAkB,EAACF,gBAAgB3R,KAAK6O,GAAL,CAAS,IAAT,EAAe,uEAAkB,IAAlB,CAAf,CAAjB,EAAlB,EAA4E6B,OAA5E,CAAV;AACA,QAAM7S,gCAAS;AACX+S,kBAAUA,QADC;AAEXF,iBAASA,OAFE;AAGXxQ,gBAAQ,EAHG;AAIX4R,aAAK,EAJM;AAKXC,eAAO,EALI;AAMXpD,gBAAQ,CAAC,aAAD,CANG;AAOXqD,qBAAa,EAPF;AAQXC,qBAAa;AARF,KAAT,CAAN;AAUA,QAAMC,mCAAYtlB,OAAOilB,MAAP,CAAc,EAAd,EAAkBnB,OAAlB,CAAZ,CAAN;AApB4C;AAqB5C,KAAC,aAAD,EAAgB,SAAhB,EAA2B,SAA3B,EAAsC,aAAtC,EAAqD,UAArD,EAAiE,mBAAjE,EAAsF1mB,OAAtF,CAA8F,UAACmoB,CAAD,EAAO;AAAA;AAAA;AAAA,sBAAOD,UAAUC,CAAV,CAAP;AAAmB,KAAxH;AArB4C;AAsB5CzB,YAAQ9W,WAAR,CAAoB;AAChBhS,cAAM,KADU;AAEhBH,aAAQipB,QAAQ3B,OAAhB,2BAFgB;AAGhBpnB,cAAMuqB;AAHU,KAApB,EAIG3J,IAJH,CAIQ,UAAC5gB,IAAD,EAAU;AAAA;AAAA;;AACdkW,eAAOkU,KAAP,GAAepqB,KAAKoqB,KAApB;AADc;AAEdlU,eAAO8Q,MAAP,GAAgBhnB,KAAKgnB,MAArB;AAFc;AAGd9Q,eAAOmU,WAAP,GAAqBrqB,KAAKqqB,WAA1B;AAHc;;AAAA,mCAILvkB,GAJK;AAKV,gBAAMiS,8BAAM,IAAI0S,KAAJ,EAAN,CAAN;AALU;AAMV,iBAAK,IAAIC,OAAO,CAAhB,EAAmBA,OAAO1qB,KAAKoqB,KAAL,CAAW5b,MAArC,EAA6Ckc,QAAQ,CAArD,EAAwD;AAAA;;AACpD,oBAAI1qB,KAAK2qB,UAAL,CAAgBD,IAAhB,MAA0B5kB,GAA9B,EAAmC;AAAA;AAAA;;AAC/BoQ,2BAAOkU,KAAP,CAAaM,IAAb,EAAmBE,KAAnB,GAA2B7S,GAA3B;AACH,iBAFD;AAAA;AAAA;AAGH;AAVS;AAWV,gBAAI,kCAAQoP,OAAR,CAAgBja,OAAhB,CAAwB,GAAxB,KAAgC,CAAhC,+BAAqC6b,QAAQ5B,OAAR,CAAgBja,OAAhB,CAAwB,GAAxB,MAAiC6b,QAAQ5B,OAAR,CAAgBja,OAAhB,CAAwB,GAAxB,IAA+B,CAArG,CAAJ,EAA4G;AAAA;AAAA;;AACxG6K,oBAAI8S,WAAJ,GAAkB,kCAAQA,WAAR,+BAAuB,WAAvB,CAAlB;AACH,aAFD;AAAA;AAAA;AAGA,gBAAMpmB,iCAASQ,OAAOyH,IAAP,CAAY1M,KAAKmqB,GAAL,CAASrkB,GAAT,CAAZ,EAA2BqR,GAA3B,CAA+B,UAACqT,CAAD,EAAO;AAAA;AAAA;AAAA,0CAAmBA,CAAnB,IAAwB,GAAxB,GAA8Bb,mBAAmB3pB,KAAKmqB,GAAL,CAASrkB,GAAT,EAAc0kB,CAAd,CAAnB,CAA9B;AAAkE,aAAxG,EAA0G9P,IAA1G,CAA+G,GAA/G,CAAT,CAAN;AACA,gBAAMyP,8BAASpB,QAAQ5B,OAAX,qBAAoC1iB,MAA1C,CAAN;AAfU;AAgBVyR,mBAAOiU,GAAP,CAAWrY,IAAX,CAAgBqY,GAAhB;AAhBU;AAiBV,gBAAIrkB,QAAQ9F,KAAKmqB,GAAL,CAAS3b,MAAT,GAAkB,CAA9B,EAAiC;AAAA;AAAA;;AAC7BuJ,oBAAI+S,MAAJ,GAAa,YAAY;AAAA;AAAA;;AACrB5U,2BAAOoU,WAAP,IAAsB,CAAtB;AADqB;AAErBpU,2BAAOqT,MAAP,GAAgB,IAAhB;AAFqB;AAGrB,wBAAI,iCAAMX,QAAN,gCAAkBnC,MAAMmC,QAAN,CAAemC,QAAf,KAA4B5lB,SAA9C,MAA4D,mCAAQ6lB,cAAR,KAA2B7lB,SAA3B,gCAAwC4jB,QAAQiC,cAAhD,CAA5D,gCAA+H9U,OAAO6U,QAAtI,gCAAkJ7U,OAAO6U,QAAP,GAAkBtE,MAAMmC,QAAN,CAAemC,QAAnL,CAAJ,EAAiM;AAAA;AAAA;;AAC7LtE,8BAAMmC,QAAN,CAAemC,QAAf,GAA0B1S,KAAK6O,GAAL,CAAST,MAAMmC,QAAN,CAAenB,QAAxB,EAAkCvR,OAAO6U,QAAzC,CAA1B;AACH,qBAFD;AAAA;AAAA;AAHqB;AAMrB,wBAAIhC,QAAQkC,QAAZ,EAAsB;AAAA;AAAA;;AAClB,4BAAI;AAAA;;AACAlC,oCAAQkC,QAAR,CAAiB/U,MAAjB;AACH,yBAFD,CAEE,OAAO1T,GAAP,EAAY,CAAE;AACnB,qBAJD;AAAA;AAAA;AANqB;AAWrB,wBAAI0T,OAAOrF,KAAP,KAAiB1L,SAArB,EAAgC;AAAA;AAAA;;AAC5BshB,8BAAMyE,QAAN,GAAiBjmB,OAAOilB,MAAP,CAAc,EAAd,EAAkBhU,OAAOkU,KAAP,CAAalU,OAAOmU,WAAP,CAAmBnU,OAAOrF,KAA1B,CAAb,CAAlB,CAAjB;AAD4B;AAE5B,4BAAI,mCAAQsa,iBAAR,gCAA6BpC,QAAQoC,iBAAR,KAA8BhmB,SAA3D,CAAJ,EAA0E;AAAA;AAAA;;AACtEshB,kCAAM2E,IAAN;AACH,yBAFD;AAAA;AAAA;AAGH,qBALD;AAAA;AAAA;AAMH,iBAjBD;AAkBH,aAnBD,MAmBO;AAAA;AAAA;;AACH,iBAAC,UAACtlB,GAAD,EAAS;AAAA;AAAA;;AACNiS,wBAAI+S,MAAJ,GAAa,YAAY;AAAA;AAAA;;AACrB5U,+BAAOoU,WAAP,IAAsB,CAAtB;AADqB;AAErBpU,+BAAOqC,MAAP,CAAczS,MAAM,CAApB,EAAuBqkB,GAAvB,GAA6BjU,OAAOiU,GAAP,CAAWrkB,MAAM,CAAjB,CAA7B;AAFqB;AAGrB,4BAAIijB,QAAQkC,QAAZ,EAAsB;AAAA;AAAA;;AAClB,gCAAI;AAAA;;AACAlC,wCAAQkC,QAAR,CAAiB/U,MAAjB;AACH,6BAFD,CAEE,OAAO1T,GAAP,EAAY,CAAE;AACnB,yBAJD;AAAA;AAAA;AAKH,qBARD;AASH,iBAVD,EAUGsD,GAVH;AAWH;AAhDS;AAiDVoQ,mBAAOqC,MAAP,CAAczG,IAAd,CAAmBiG,GAAnB;AAjDU;;AAId,aAAK,IAAIjS,MAAM,CAAf,EAAkBA,MAAM9F,KAAKmqB,GAAL,CAAS3b,MAAjC,EAAyC1I,OAAO,CAAhD,EAAmD;AAAA,kBAA1CA,GAA0C;AA8ClD;AAlDa;AAmDdoQ,eAAOqC,MAAP,CAAc,CAAd,EAAiB4R,GAAjB,GAAuBjU,OAAOiU,GAAP,CAAW,CAAX,CAAvB;AAnDc;AAoDd,YAAIpB,QAAQkC,QAAZ,EAAsB;AAAA;AAAA;;AAClB,gBAAI;AAAA;;AACAlC,wBAAQkC,QAAR,CAAiB/U,MAAjB;AACH,aAFD,CAEE,OAAO1T,GAAP,EAAY,CAAE;AACnB,SAJD;AAAA;AAAA;AApDc;AAyDd,eAAO0T,MAAP;AACH,KA9DD;AAtB4C;AAqF5CuQ,UAAMY,YAAN,GAAqB,UAAUxW,KAAV,EAAiB;AAAA;AAAA;;AAClC,YAAIA,UAAU1L,SAAd,EAAyB;AAAA;AAAA;;AACrBshB,kBAAMyE,QAAN,GAAiB/lB,SAAjB;AACH,SAFD,MAEO;AAAA;AAAA;AAAA,oBAAI,kCAAOklB,WAAP,CAAmBxZ,KAAnB,MAA8B1L,SAA9B,gCAA2C+Q,OAAOqT,MAAlD,CAAJ,EAA8D;AAAA;AAAA;;AACjE9C,0BAAMyE,QAAN,GAAiBjmB,OAAOilB,MAAP,CAAc,EAAd,EAAkBhU,OAAOkU,KAAP,CAAalU,OAAOmU,WAAP,CAAmBxZ,KAAnB,CAAb,CAAlB,CAAjB;AACH,iBAFM;AAAA;AAAA;AAEN,aALiC;AAMlCqF,eAAOrF,KAAP,GAAeA,KAAf;AACH,KAPD;AArF4C;AA6F5C4V,UAAMY,YAAN,CAAmBnR,MAAnB,GAA4BA,MAA5B;AACH;;kBAEcmR,Y;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/Jf;;;;AAEA;;;;;;AAEA,IAAIgE,mDAA2BpoB,eAAkBnF,MAAlB,CAAyB;AACpDY,gBAAY,oBAAUE,QAAV,EAAoB;AAAA;;AAAA;AAAA;;AAC5B,YAAI,CAAC,sBAAE,+BAAF,EAAmC4P,MAAxC,EAAgD;AAAA;AAAA;;AAC5C,kCAAE,MAAF,EAAUoH,OAAV,CACI,sBAAE,QAAF,EAAY;AACR/V,oBAAI,yBADI;AAERyrB,qBAAK,YAFG;AAGRC,sBAAM;AAHE,aAAZ,CADJ;AAOH,SARD;AAAA;AAAA;;AAD4B;AAW5BrtB,yBAAEyiB,IAAF,CACI1d,eAAkBwI,SAAlB,CAA4B/M,UAA5B,CAAuCgN,IAAvC,CAA4C,IAA5C,EAAkD9M,QAAlD,CADJ,EAEIV,iBAAE6nB,IAAF,CAAO,EAAE;AACLjmB,iBAAK,iEADF;AAEH6jB,sBAAU,QAFP;AAGHsC,mBAAO;AAHJ,SAAP,CAFJ,EAOK/lB,IAPL,CAOU,YAAM;AAAA;AAAA;AAAA,yBAAKrB,MAAL;AAAa,SAP7B;AAQH,KApBmD;;AAsBpDA,YAAQ,kBAAY;AAAA;;AAChB,YAAI2sB,MAAJ;AACA;AAFgB;AAGhB,YAAI,4BAAC9Y,OAAO+Y,CAAR,gCAAa,CAAC,KAAK/nB,SAAnB,gCAAgC,CAAC,KAAKC,UAAtC,gCAAoD,KAAKwiB,OAAzD,CAAJ,EAAsE;AAAA;AAAA;;AAClE,mBAAO,IAAP;AACH,SAFD;AAAA;AAAA;;AAHgB;AAOhB,YAAI,KAAK3V,MAAT,EAAiB;AAAA;AAAA;;AACb;AACA,mBAAO,IAAP;AACH,SAHD;AAAA;AAAA;;AAPgB;AAYhB,YAAI,KAAK9M,SAAL,KAAmB,KAAKC,UAA5B,EAAwC;AAAA;AAAA;;AACpC6nB,qBAAS,gDAAT;AACH,SAFD;AAAA;AAAA;AAZgB;AAehB,YAAI,KAAK9nB,SAAL,GAAiB,GAArB,EAA0B;AAAA;AAAA;;AACtB8nB,qBAAS,kEAAT;AACH,SAFD;AAAA;AAAA;AAfgB;AAkBhB,YAAIA,MAAJ,EAAY;AAAA;AAAA;;AACR,iBAAKhb,MAAL,GAAc,sBAAE,QAAF,EAAYtP,IAAZ,CAAiBsqB,MAAjB,CAAd;AADQ;AAER,iBAAKprB,GAAL,CAASuN,MAAT,CAAgB,KAAK6C,MAArB;AAFQ;AAGRkb,oBAAQ5qB,KAAR,CAAc0qB,MAAd;AAHQ;AAIR,mBAAO,IAAP;AACH,SALD;AAAA;AAAA;;AAOA;;AAEA,YAAIC,6BAAI/Y,OAAO+Y,CAAX,CAAJ,CA3BgB,CA2BE;;AA3BF;AA6BhB,aAAKjb,MAAL,GAAcib,EAAEtU,GAAF,CAAM,KAAKzW,EAAX,EAAe;AACzBirB,oBAAQ,CAAC,GAAD,EAAM,GAAN,CADiB,EACL;AACpBC,kBAAM,CAFmB,EAEhB;AACTC,qBAAS,CAHgB;AAIzBC,qBAAS,KAAKroB,MAAL,GAAc,CAJE;AAKzBsoB,uBAAW,CACP,CAAC,CAAC,IAAF,EAAQ,CAAC,KAAT,CADO,EAEP,CAAC,IAAD,EAAO,KAAP,CAFO,CALc;AASzBC,oBAAQ,CACJP,EAAEQ,SAAF,CACI,KAAKloB,WAAL,CAAiB,KAAjB,EAAwB,KAAxB,EAA+B,KAA/B,EAAsC,EAACmoB,MAAM,MAAP,EAAtC,CADJ,EAC2D;AACnD;AACA;AACA;AACAC,0BAAU,KAAKzoB,SAJoC;AAKnD0oB,iCAAiB;AALkC,aAD3D,CADI,CATiB;AAmBzBC,gCAAoB;AAnBK,SAAf,CAAd;AA7BgB;AAkDhB,aAAKrrB,OAAL,CAAa,iBAAb,EAAgC,IAAhC;AAlDgB;AAmDhB,eAAO,IAAP;AACH,KA1EmD;;AA4EpDyH,aAAS,mBAAY;AAAA;AAAA;;AACjB,YAAI,KAAK+H,MAAT,EAAiB;AAAA;AAAA;;AACb,iBAAKA,MAAL,CAAYpG,MAAZ;AADa;AAEb,iBAAKoG,MAAL,GAAc,IAAd;AACH,SAHD;AAAA;AAAA;AADiB;AAKjB,aAAK2V,OAAL,GAAe,IAAf;AACA;AANiB;AAOjBljB,uBAAkBwI,SAAlB,CAA4BhD,OAA5B,CAAoCiD,IAApC,CAAyC,IAAzC;AACH;AApFmD,CAAzB,CAA3B,CAAJ;;kBAuFe2f,wB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3Ff;;;;AAEA;;AAEA;;;;;;AAEA,IAAIiB,sDAA8BrpB,eAAkBnF,MAAlB,CAAyB;AACvDY,gBAAY,oBAAUE,QAAV,EAAoB;AAAA;;AAAA;AAAA;;AAC5B,YAAI,CAAC,sBAAE,kCAAF,EAAsC4P,MAA3C,EAAmD;AAAA;AAAA;;AAC/C,kCAAE,MAAF,EAAUoH,OAAV,CACI,sBAAE,QAAF,EAAY;AACR/V,oBAAI,4BADI;AAERyrB,qBAAK,YAFG;AAGRC,sBAAM;AAHE,aAAZ,CADJ;AAOH,SARD;AAAA;AAAA;;AAD4B;AAW5BrtB,yBAAEyiB,IAAF,CACI1d,eAAkBwI,SAAlB,CAA4B/M,UAA5B,CAAuCgN,IAAvC,CAA4C,IAA5C,EAAkD9M,QAAlD,EAA4DgiB,IAA5D,CAAiE,YAAM;AAAA;AAAA;;AACnE,gBAAI,MAAK9c,QAAL,CAAc+hB,UAAlB,EAA8B;AAAA;AAAA;;AAC1B,sBAAKniB,SAAL,GAAiB,MAAKC,UAAL,GAAkB,IAAnC;AAD0B;AAE1B,uBAAO,uBAAY;AACf1D,0BAAM,KADS;AAEfH,yBAAK,UAAU,MAAKoD,MAAf,GAAwB,QAFd;AAGflD,0BAAM,EAAC8lB,YAAY,WAAb;AAHS,iBAAZ,EAIJ5lB,IAJI,CAIC,UAACmB,IAAD,EAAU;AAAA;AAAA;;AACd,0BAAKoC,MAAL,GAAcpC,KAAKoC,MAAnB;AADc;AAEd,0BAAKC,SAAL,GAAiBrC,KAAKqC,SAAtB;AAFc;AAGd,0BAAKC,UAAL,GAAkBtC,KAAKsC,UAAvB;AAHc;AAId,0BAAKC,KAAL,GAAavC,KAAKuC,KAAlB;AAJc;AAKd,0BAAKC,KAAL,GAAaxC,KAAKwC,KAAlB;AALc;AAMd,0BAAKC,QAAL,GAAgBzC,IAAhB;AACH,iBAXM,CAAP;AAYH,aAdD;AAAA;AAAA;AADmE;AAgBnE,mBAAO,KAAP;AACH,SAjBD,CADJ,EAmBInD,iBAAE6nB,IAAF,CAAO,EAAE;AACLjmB,iBAAK,+DADF;AAEH6jB,sBAAU,QAFP;AAGHsC,mBAAO;AAHJ,SAAP,CAnBJ,EAwBK/lB,IAxBL,CAwBU,YAAM;AAAA;AAAA;AAAA,yBAAKrB,MAAL;AAAa,SAxB7B;AAyBH,KArCsD;;AAuCvDA,YAAQ,kBAAY;AAAA;AAAA;;AAChB;AACA,YAAI,4BAAC6T,OAAO6Z,EAAR,gCAAc,CAAC,KAAK7oB,SAApB,gCAAiC,CAAC,KAAKC,UAAvC,gCAAqD,KAAKwiB,OAA1D,CAAJ,EAAuE;AAAA;AAAA;;AACnE,mBAAO,IAAP;AACH,SAFD;AAAA;AAAA;;AAFgB;AAMhB,YAAI,KAAK3V,MAAT,EAAiB;AAAA;AAAA;;AACb;AACA,mBAAO,IAAP;AACH,SAHD;AAAA;AAAA;;AAKA,YAAI+b,8BAAK7Z,OAAO6Z,EAAZ,CAAJ,CAXgB,CAWI;;AAXJ;AAahB,YAAI,4BAAC,KAAKzoB,QAAL,CAAc+hB,UAAf,gCAA6B,CAAC,KAAK/hB,QAAL,CAAcsiB,MAA5C,CAAJ,EAAwD;AAAA;AAAA;;AACpD,iBAAK5V,MAAL,GAAc,IAAI+b,GAAGC,GAAP,CAAW;AACrBxiB,wBAAQ,KAAKtJ,EADQ;AAErBsrB,wBAAQ,CACJ,IAAIO,GAAG9F,KAAH,CAASgG,IAAb,CAAkB;AACdzS,4BAAQ,IAAIuS,GAAGvS,MAAH,CAAU0S,GAAd,CAAkB;AACtBP,kCAAU,CAAC,KAAKzoB,SAAN,EAAiB,KAAKC,UAAtB,CADY;AAEtB7D,6BAAK,KAAKiE,WAAL,CAAiB,KAAjB,EAAwB,KAAxB,EAA+B,KAA/B,EAAsC,EAACmoB,MAAM,OAAP,EAAtC,CAFiB;AAGtBrB,qCAAa,iBAHS;AAItBiB,iCAAS,KAAKroB,MAJQ;AAKtBkpB,+BAAO;AALe,qBAAlB,CADM;AAQdC,6BAAS;AARK,iBAAlB,CADI,CAFa;AAcrBC,sBAAM,IAAIN,GAAG1uB,IAAP,CAAY;AACdguB,6BAAS,CADK;AAEdC,6BAAS,KAAKroB,MAFA;AAGdkoB,4BAAQ,CAAC,GAAD,EAAM,GAAN,CAHM;AAIdC,0BAAM;AAJQ,iBAAZ,CAde;AAoBrBkB,sBAAM;AApBe,aAAX,CAAd;AAsBH,SAvBD,MAuBO;AAAA;AAAA;;AACH,iBAAKtc,MAAL,GAAc,IAAI+b,GAAGC,GAAP,CAAW;AACrBxiB,wBAAQ,KAAKtJ,EADQ;AAErBsrB,wBAAQ,CACJ,IAAIO,GAAG9F,KAAH,CAASgG,IAAb,CAAkB,EAACzS,QAAQ,IAAIuS,GAAGvS,MAAH,CAAU+S,GAAd,EAAT,EAAlB,CADI,EAEJ,IAAIR,GAAG9F,KAAH,CAASgG,IAAb,CAAkB;AACdzS,4BAAQ,IAAIuS,GAAGvS,MAAH,CAAU0S,GAAd,CAAkB;AACtBP,kCAAU,CAAC,KAAKzoB,SAAN,EAAiB,KAAKC,UAAtB,CADY;AAEtB7D,6BAAK,KAAKiE,WAAL,CAAiB,KAAjB,EAAwB,KAAxB,EAA+B,KAA/B,EAAsC,EAACyjB,UAAU,KAAX,EAAkB1B,YAAY,WAA9B,EAAtC,CAFiB;AAGtB+E,qCAAa,iBAHS;AAItBiB,iCAAS,KAAKroB,MAAL,GAAc,CAJD;AAKtBkpB,+BAAO;AALe,qBAAlB,CADM;AAQdC,6BAAS;AARK,iBAAlB,CAFI,CAFa;AAerBC,sBAAM,IAAIN,GAAG1uB,IAAP,CAAY;AACdguB,6BAAS,CADK;AAEdC,6BAAS,KAAKroB,MAAL,GAAc;AAFT,iBAAZ,CAfe;AAmBrBqpB,sBAAM;AAnBe,aAAX,CAAd;AADG;AAsBH,iBAAKtc,MAAL,CAAYwc,OAAZ,GAAsBC,GAAtB,CAA0B,CACtB,KAAKnpB,QAAL,CAAcsiB,MAAd,CAAqBuB,IADC,EAEtB,KAAK7jB,QAAL,CAAcsiB,MAAd,CAAqByB,IAFC,EAGtB,KAAK/jB,QAAL,CAAcsiB,MAAd,CAAqBwB,IAHC,EAItB,KAAK9jB,QAAL,CAAcsiB,MAAd,CAAqB0B,IAJC,CAA1B,EAKG,EAACoF,qBAAqB,KAAtB,EALH;AAMH;AAhEe;AAiEhB,aAAKlsB,OAAL,CAAa,iBAAb,EAAgC,IAAhC;AAjEgB;AAkEhB,eAAO,IAAP;AACH,KA1GsD;;AA4GvDyH,aAAS,mBAAY;AAAA;AAAA;;AACjB,YAAI,KAAK+H,MAAT,EAAiB;AAAA;AAAA;;AACb,iBAAKA,MAAL,CAAY2c,SAAZ,CAAsB,IAAtB;AADa;AAEb,iBAAK3c,MAAL,GAAc,IAAd;AACH,SAHD;AAAA;AAAA;AADiB;AAKjB,aAAK2V,OAAL,GAAe,IAAf;AACA;AANiB;AAOjBljB,uBAAkBwI,SAAlB,CAA4BhD,OAA5B,CAAoCiD,IAApC,CAAyC,IAAzC;AACH;AApHsD,CAAzB,CAA9B,CAAJ;;kBAuHe4gB,2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7Hf;;;;AACA;;;;AAEA;;;;;;AAEA,IAAIc,yDAAiCnqB,eAAkBnF,MAAlB,CAAyB;AAC1DY,gBAAY,oBAAUE,QAAV,EAAoB;AAAA;;AAAA;AAAA;;AAC5BV,yBAAEyiB,IAAF,CACI1d,eAAkBwI,SAAlB,CAA4B/M,UAA5B,CAAuCgN,IAAvC,CAA4C,IAA5C,EAAkD9M,QAAlD,CADJ,EAEIV,iBAAE6nB,IAAF,CAAO,EAAE;AACLjmB,iBAAK,oEADF;AAEH6jB,sBAAU,QAFP;AAGHsC,mBAAO;AAHJ,SAAP,CAFJ,EAOK/lB,IAPL,CAOU,YAAM;AAAA;AAAA;AAAA,yBAAKrB,MAAL;AAAa,SAP7B;AAQH,KAVyD;;AAY1DA,YAAQ,kBAAY;AAAA;AAAA;;AAChB;AACA,YAAI,4BAAC6T,OAAO2a,aAAR,gCAAyB,CAAC,KAAK3pB,SAA/B,gCAA4C,CAAC,KAAKC,UAAlD,gCAAgE,KAAKwiB,OAArE,CAAJ,EAAkF;AAAA;AAAA;;AAC9E,mBAAO,IAAP;AACH,SAFD;AAAA;AAAA;;AAFgB;AAMhB,YAAI,KAAK3V,MAAT,EAAiB;AAAA;AAAA;;AACb;AACA,mBAAO,IAAP;AACH,SAHD;AAAA;AAAA;;AAKA,YAAI6c,wCAAgB3a,OAAO2a,aAAvB,CAAJ,CAXgB,CAW0B;;AAX1B;AAahB,aAAK7c,MAAL,GAAc6c,cAAc,EAAE;AAC1BC,qBAAS,KAAK5sB,EADU;AAExB6sB,uBAAW,uDAFa;AAGxBC,+BAAmB,GAHK;AAIxBC,8BAAkB,GAJM;AAKxBC,iCAAqB,IALG;AAMxBC,yBAAa;AACT9N,wBAAQ,KAAKhc,KADJ;AAET+b,uBAAO,KAAKhc,KAFH;AAGTF,2BAAW,KAAKA,SAHP;AAITC,4BAAY,KAAKA,UAJR;AAKTonB,0BAAU,CALD;AAMTtD,0BAAU,KAAKhkB,MAAL,GAAc,CANf;AAOTmqB,4BAAYxpB,qBAAE+E,IAAF,CAAO,UAAU0kB,CAAV,EAAa5pB,CAAb,EAAgBC,CAAhB,EAAmB;AAAA;AAAA;;AAClC,2BAAO,KAAKH,WAAL,CAAiB8pB,CAAjB,EAAoB5pB,CAApB,EAAuBC,CAAvB,EAA0B,EAACgoB,MAAM,MAAP,EAA1B,CAAP;AACH,iBAFW,EAET,IAFS,CAPH;AAUT4B,qCAAqB;AAVZ;AANW,SAAd,CAAd;AAbgB;AAgChB,aAAK9sB,OAAL,CAAa,iBAAb,EAAgC,IAAhC;AAhCgB;AAiChB,eAAO,IAAP;AACH,KA9CyD;;AAgD1DyH,aAAS,mBAAY;AAAA;AAAA;;AACjB,YAAI,KAAK+H,MAAT,EAAiB;AAAA;AAAA;;AACb,iBAAKA,MAAL,CAAY/H,OAAZ;AADa;AAEb,iBAAK+H,MAAL,GAAc,IAAd;AACH,SAHD;AAAA;AAAA;AADiB;AAKjB,aAAK2V,OAAL,GAAe,IAAf;AALiB;AAMjBljB,uBAAkBwI,SAAlB,CAA4BhD,OAA5B,CAAoCiD,IAApC,CAAyC,IAAzC;AACH;AAvDyD,CAAzB,CAAjC,CAAJ;;kBA0De0hB,8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/Df;;;;AAEA;;;;AACA;;AAEA;;;;;;AAEA;AACA,IAAIW,mCAAY,wDAAZ,CAAJ;;AAEA,IAAIC,qDAA8B/qB,eAAkBnF,MAAlB,CAAyB;AACvDY,gBAAY,oBAAUE,QAAV,EAAoB;AAAA;;AAAA;AAAA;;AAC5B,YAAI,CAACqvB,yBAAyBxiB,SAAzB,CAAmCyiB,cAAxC,EAAwD;AAAA;AAAA;;AACpDxb,mBAAOub,wBAAP,CAAgCxiB,SAAhC,CAA0CyiB,cAA1C,GAA2D,YAAY;AAAA;AAAA;;AACnE,uBAAO,KAAKC,YAAL,CAAkB,CAAlB,EAAqB,CAArB,EAAwB,CAAxB,EAA2B,CAA3B,EAA8B,CAA9B,EAAiC,CAAjC,CAAP;AACH,aAFD;AAGH,SAJD;AAAA;AAAA;AAD4B;AAM5B,YAAI,CAAC,sBAAE,kCAAF,EAAsC3f,MAA3C,EAAmD;AAAA;AAAA;;AAC/C,kCAAE,MAAF,EAAUoH,OAAV,CACI,sBAAE,QAAF,EAAY;AACR/V,oBAAI,4BADI;AAERyrB,qBAAK,YAFG;AAGRC,sBAAMwC,YAAY;AAHV,aAAZ,CADJ;AAOH,SARD;AAAA;AAAA;;AAN4B;AAgB5B7vB,yBAAEyiB,IAAF,CACI1d,eAAkBwI,SAAlB,CAA4B/M,UAA5B,CAAuCgN,IAAvC,CAA4C,IAA5C,EAAkD9M,QAAlD,CADJ,EAEIV,iBAAE6nB,IAAF,CAAO,EAAE;AACLjmB,iBAAKiuB,YAAY,eADd;AAEHpK,sBAAU,QAFP;AAGHsC,mBAAO;AAHJ,SAAP,CAFJ,EAOK/lB,IAPL,CAOU,YAAM;AAAA;AAAA;AAAA,yBAAKrB,MAAL;AAAa,SAP7B;AAQH,KAzBsD;;AA2BvDA,YAAQ,kBAAY;AAAA;;AAAA;;AAChB,YAAI2sB,MAAJ;AACA;AAFgB;AAGhB,YAAI,2BAAC9Y,OAAO0b,EAAR,+BAAc,CAAC,KAAK1qB,SAApB,+BAAiC,CAAC,KAAKC,UAAvC,+BAAqD,KAAKwiB,OAA1D,CAAJ,EAAuE;AAAA;AAAA;;AACnE,mBAAO,IAAP;AACH,SAFD;AAAA;AAAA;;AAHgB;AAOhB,YAAI,KAAK3V,MAAT,EAAiB;AAAA;AAAA;;AACb;AACA,mBAAO,IAAP;AACH,SAHD;AAAA;AAAA;;AAPgB;AAYhB,YAAI,KAAK9M,SAAL,KAAmB,KAAKC,UAA5B,EAAwC;AAAA;AAAA;;AACpC6nB,qBAAS,mDAAT;AACH,SAFD;AAAA;AAAA;AAZgB;AAehB,YAAI,KAAK9nB,SAAL,GAAiB,GAArB,EAA0B;AAAA;AAAA;;AACtB8nB,qBAAS,qEAAT;AACH,SAFD;AAAA;AAAA;AAfgB;AAkBhB,YAAIA,MAAJ,EAAY;AAAA;AAAA;;AACR,iBAAKhb,MAAL,GAAc,sBAAE,QAAF,EAAYtP,IAAZ,CAAiBsqB,MAAjB,CAAd;AADQ;AAER,iBAAKprB,GAAL,CAASuN,MAAT,CAAgB,KAAK6C,MAArB;AAFQ;AAGRkb,oBAAQ5qB,KAAR,CAAc0qB,MAAd;AAHQ;AAIR,mBAAO,IAAP;AACH,SALD;AAAA;AAAA;;AAOA;AACA;AACA;AACA,YAAI6C,qCAAa;AACbxO,oBAAQ,KAAKhc,KADA;AAEb+b,mBAAO,KAAKhc,KAFC;AAGbF,uBAAW,KAAKA,SAHH;AAIbC,wBAAY,KAAKA,UAJJ;AAKbonB,sBAAU,CALG;AAMbtD,sBAAU,KAAKhkB,MAAL,GAAc,CANX;AAOb6qB,mBAAO,IAPM;AAQbC,qBAAS,CAAC,KAAKzqB,QAAL,CAAcqkB,IAAf,EAAqB,KAAKrkB,QAAL,CAAc0qB,IAAnC,CARI;AASbZ,wBAAY,oBAAC5pB,KAAD,EAAQC,CAAR,EAAWC,CAAX,EAAc2pB,CAAd,EAAoB;AAAA;AAAA;;AAC5B;AACA,uBAAO,OAAK9pB,WAAL,CAAiBC,KAAjB,EAAwBC,CAAxB,EAA2BC,CAA3B,CAAP;AACH;AAZY,SAAb,CAAJ;AA5BgB;AA0ChB,YAAI,CAAC,KAAKJ,QAAL,CAAcqkB,IAAnB,EAAyB;AAAA;AAAA;;AACrB;AACAkG,uBAAWE,OAAX,GAAqB,CAAC,CAAD,EAAI,CAAJ,CAArB;AACH,SAHD;AAAA;AAAA;AA1CgB;AA8ChB7b,eAAO0b,EAAP,CAAUK,QAAV,CAAmB/b,OAAOxU,CAAP,CAAS,KAAKwC,EAAd,CAAnB,EAAsC;AAClCguB,wBAAY,IADsB;AAElCC,wBAAY,IAFsB;AAGlCpB,uBAAWQ,YAAY,MAHW;AAIlCM,wBAAYA;AAJsB,SAAtC;AA9CgB;AAoDhB,aAAK7d,MAAL,GAAc,KAAK9P,EAAL,CAAQkuB,QAAtB;;AApDgB;AAsDhB,aAAKC,SAAL,GAAiB,IAAInc,OAAOoc,GAAP,CAAWC,UAAf,CAA0B,KAAKve,MAA/B,EAAuC,KAAKtN,MAA5C,CAAjB;AAtDgB;AAuDhB,8BAAE,KAAKxC,EAAP,EAAWsuB,GAAX,CAAe,EAACC,UAAU,UAAX,EAAf;AAvDgB;AAwDhBvc,eAAO0b,EAAP,CAAUc,kBAAV,CAA6B,sBAAE,KAAKxuB,EAAP,CAA7B,EACKsuB,GADL,CACS,EAACC,UAAU,UAAX,EAAuBlH,MAAM,KAA7B,EAAoCE,KAAK,KAAzC,EADT;AAxDgB;AA0DhBvV,eAAO0b,EAAP,CAAUe,UAAV,GAAuB,IAAvB;;AAEA;AACA,YAAIxqB,mCAAWC,mBAASC,OAAT,CAAiBC,QAA5B,CAAJ;AAAA,YACIC,qCAAa,sBAAWJ,QAAX,CAAb,CADJ;AAAA,YAEIyqB,sCAAc,4BAAiBrqB,WAAWrD,IAA5B,CAAd,CAFJ;;AA7DgB;AAiEhB,YAAI0tB,YAAYhJ,MAAhB,EAAwB;AAAA;;AACpB,gBAAIiJ,8BAAM,CAAN,CAAJ;AADoB;AAEpB,gBAAID,YAAYE,MAAhB,EAAwB;AAAA;AAAA;;AACpBD,sBAAMvQ,SAASsQ,YAAYE,MAArB,CAAN;AACH,aAFD;AAAA;AAAA;AAGA,gBAAIC,8BAAMH,YAAYhJ,MAAZ,CAAmB3nB,KAAnB,CAAyB,GAAzB,CAAN,CAAJ;AACA,gBAAI+wB,6BAAK1Q,SAASyQ,IAAI,CAAJ,CAAT,CAAL,CAAJ;AACA,gBAAIE,6BAAK3Q,SAASyQ,IAAI,CAAJ,CAAT,CAAL,CAAJ;AACA,gBAAIG,6BAAK5Q,SAASyQ,IAAI,CAAJ,CAAT,CAAL,CAAJ;AACA,gBAAII,6BAAK7Q,SAASyQ,IAAI,CAAJ,CAAT,CAAL,CAAJ;AAToB;AAUpB,iBAAK/e,MAAL,CAAYof,SAAZ,CAAsB,CAAC,CAACJ,KAAKE,EAAN,IAAY,GAAb,EAAkB,CAACD,KAAKE,EAAN,IAAY,GAA9B,CAAtB,EAA0DN,GAA1D,EAAgEM,KAAKF,EAArE;AACH,SAXD;AAAA;AAAA;;AAjEgB;AA8EhB,aAAKzuB,OAAL,CAAa,iBAAb,EAAgC,IAAhC;AA9EgB;AA+EhB,eAAO,IAAP;AACH,KA3GsD;;AA6GvDyH,aAAS,mBAAY;AAAA;AAAA;;AACjB,YAAI,KAAK+H,MAAT,EAAiB;AAAA;AAAA;;AACbkC,mBAAOxU,CAAP,CAAS,KAAKwC,EAAd,EAAkBkuB,QAAlB,CAA2B,SAA3B;AADa;AAEb,iBAAKpe,MAAL,GAAc,IAAd;AACH,SAHD;AAAA;AAAA;AADiB;AAKjB,aAAK2V,OAAL,GAAe,IAAf;AALiB;AAMjBljB,uBAAkBwI,SAAlB,CAA4BhD,OAA5B,CAAoCiD,IAApC,CAAyC,IAAzC;AACH;AApHsD,CAAzB,CAA9B,CAAJ;;kBAuHesiB,2B;;;;;;;;;ACjIf,IAAInb,MAAMC,mBAAOA,CAAC,EAAR,CAAV;;AAEA,SAASxJ,QAAT,CAAkByJ,MAAlB,EAA0B;AAAC,MAAIC,WAAW,EAAf;AAAA,MAAmBC,aAAa,EAAhC;AAAA,MAAoCC,UAApC,CAA+C,IAAIC,kBAAJ,EAAwBC,cAAxB,CAAuC,IAAI;AAAC,QAAIC,oBAAoB,EAAC,wGAAoJ,mdAArJ,EAAxB;AACtH,KAAC,IAAIC,kBAAmBP,UAAU,EAAjC,CAAsC,WAAUzS,OAAV,EAAmB;AAAC,OAAC8S,iBAAiB,CAAjB,CAAmBD,qBAAqB,sGAArB;AAC/EH,iBAAWA,WAAW,wEAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,sGAArB;AACpBH,iBAAWA,WAAW,oCAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,sGAArB;AACpBH,iBAAWA,WAAW,gCAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,sGAArB;AACpBH,iBAAWA,WAAW,QAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,sGAArB;AACpBH,iBAAWA,WAAW,sBAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,sGAArB;AACpBH,iBAAWA,WAAW,2FAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,sGAArB;AACpB;AACA,OAAC,CAAC,YAAU;AACV,YAAII,QAAQjT,OAAZ;AACA,YAAI,YAAY,OAAOiT,MAAM/E,MAA7B,EAAqC;AACjC,eAAK,IAAIgF,aAAa,CAAjB,EAAoBC,MAAMF,MAAM/E,MAArC,EAA6CgF,aAAaC,GAA1D,EAA+DD,YAA/D,EAA6E;AAC3E,gBAAIhD,SAAS+C,MAAMC,UAAN,CAAb;AACR,aAACJ,iBAAiB,CAAjB,CAAmBD,qBAAqB,sGAArB;AACpBH,uBAAWA,WAAW,SAAX,GAA6BH,IAAItK,IAAJ,CAAS,OAAT,EAAkBiI,OAAO9O,IAAzB,EAA+B,IAA/B,EAAqC,IAArC,CAA7B,GAA2E,GAAtF;AACA,aAAC0R,iBAAiB,CAAjB,CAAmBD,qBAAqB,sGAArB;AACpBH,uBAAWA,WAAYH,IAAIxI,MAAJ,CAAW,SAAS6I,aAAa1C,OAAO7O,KAA7B,IAAsC,EAAtC,GAA2CuR,UAAtD,CAAZ,GAAiF,WAA5F;AACO;AACJ,SARD,MAQO;AACL,cAAIO,MAAM,CAAV;AACA,eAAK,IAAID,UAAT,IAAuBD,KAAvB,EAA8B;AAC5BE;AACA,gBAAIjD,SAAS+C,MAAMC,UAAN,CAAb;AACN,aAACJ,iBAAiB,CAAjB,CAAmBD,qBAAqB,sGAArB;AACpBH,uBAAWA,WAAW,SAAX,GAA6BH,IAAItK,IAAJ,CAAS,OAAT,EAAkBiI,OAAO9O,IAAzB,EAA+B,IAA/B,EAAqC,IAArC,CAA7B,GAA2E,GAAtF;AACA,aAAC0R,iBAAiB,CAAjB,CAAmBD,qBAAqB,sGAArB;AACpBH,uBAAWA,WAAYH,IAAIxI,MAAJ,CAAW,SAAS6I,aAAa1C,OAAO7O,KAA7B,IAAsC,EAAtC,GAA2CuR,UAAtD,CAAZ,GAAiF,WAA5F;AACK;AACF;AACF,OArBA,EAqBExH,IArBF,CAqBO,IArBP;;AAuBDsH,iBAAWA,WAAW,iBAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,sGAArB;AACpBH,iBAAWA,WAAW,gCAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,sGAArB;AACpBH,iBAAWA,WAAW,wCAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,sGAArB;AACrBH,iBAAWA,WAAW,6CAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,sGAArB;AACrBH,iBAAWA,WAAW,+EAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,sGAArB;AACrB;AACA,OAAC,CAAC,YAAU;AACV,YAAII,QAAQjT,OAAZ;AACA,YAAI,YAAY,OAAOiT,MAAM/E,MAA7B,EAAqC;AACjC,eAAK,IAAI4Q,aAAa,CAAjB,EAAoB3L,MAAMF,MAAM/E,MAArC,EAA6C4Q,aAAa3L,GAA1D,EAA+D2L,YAA/D,EAA6E;AAC3E,gBAAI5O,SAAS+C,MAAM6L,UAAN,CAAb;AACR,aAAChM,iBAAiB,EAAjB,CAAoBD,qBAAqB,sGAArB;AACrBH,uBAAWA,WAAW,MAAX,IAA0B,mCAAiCH,IAAItK,IAAJ,CAAS,IAAT,EAAeiI,OAAO9O,IAAtB,EAA4B,IAA5B,EAAkC,IAAlC,CAA3D,IAAsG,SAAjH;AACO;AACJ,SAND,MAMO;AACL,cAAI+R,MAAM,CAAV;AACA,eAAK,IAAI2L,UAAT,IAAuB7L,KAAvB,EAA8B;AAC5BE;AACA,gBAAIjD,SAAS+C,MAAM6L,UAAN,CAAb;AACN,aAAChM,iBAAiB,EAAjB,CAAoBD,qBAAqB,sGAArB;AACrBH,uBAAWA,WAAW,MAAX,IAA0B,mCAAiCH,IAAItK,IAAJ,CAAS,IAAT,EAAeiI,OAAO9O,IAAtB,EAA4B,IAA5B,EAAkC,IAAlC,CAA3D,IAAsG,SAAjH;AACK;AACF;AACF,OAjBA,EAiBEgK,IAjBF,CAiBO,IAjBP;AAkBA,KAlEsC,EAkErCA,IAlEqC,CAkEhC,IAlEgC,EAkE3B,aAAa4H,eAAb,GAA6BA,gBAAgBhT,OAA7C,GAAqD,OAAOA,OAAP,KAAiB,WAAjB,GAA6BA,OAA7B,GAAqC6E,SAlE/D,CAAD;AAkE6E,GAnEF,CAmEG,OAAO3C,GAAP,EAAY;AAACqQ,QAAIe,OAAJ,CAAYpR,GAAZ,EAAiB2Q,kBAAjB,EAAqCC,cAArC,EAAqDC,kBAAkBF,kBAAlB,CAArD;AAA6F,IAAC,OAAOH,QAAP;AAAiB;AAChPa,OAAOC,OAAP,GAAiBxK,QAAjB,C;;;;;;ACtEA,yC;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwG;AACvC;AACL;AACqC;;;AAGjG;AAC6J;AAC7J,gBAAgB,6JAAU;AAC1B,EAAE,oFAAM;AACR,EAAE,qGAAM;AACR,EAAE,8GAAe;AACjB;AACA;AACA;AACA;;AAEA;;AAEA;AACA,IAAI,KAAU;AACd;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACe,gF;;;;;;;ACvCf;AAAA;AAAA;AAAA;;;;;;;;ACAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,yCAAyC;AAClD;AACA;AACA;AACA,aAAa,mCAAmC,4BAA4B,EAAE;AAC9E;AACA;AACA;AACA;AACA;AACA,aAAa,mCAAmC,4BAA4B,EAAE;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,SAAS,cAAc,EAAE;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,0BAA0B,eAAe;AACzC;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,qBAAqB;AACrB,mBAAmB;AACnB,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB,0BAA0B,iBAAiB,EAAE;AAClE;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA,mBAAmB;AACnB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,qBAAqB,qCAAqC;AAC1D,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,uBAAuB;AACvB;AACA,qDAAqD,yBAAyB;AAC9E,uBAAuB;AACvB,qBAAqB;AACrB,mBAAmB;AACnB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,4CAA4C;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,uBAAuB;AACvB,qBAAqB;AACrB,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,uBAAuB;AACvB,qBAAqB;AACrB,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1LA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,mBAAO,CAAC,GAAc;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9DA;AACA;;AAEA;AACA;AACA;;AAEA,uBAAuB;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0CAA0C,sBAAsB,EAAE;AAClE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA;;AAEA,KAAK;AACL;AACA;;AAEA,KAAK;AACL;AACA;;AAEA,KAAK;AACL;AACA;;AAEA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,CAAC;;;;;;;;;ACzLD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0G;AACvC;AACL;AACqC;AACxB;;;AAG3E;AAC6J;AAC7J,gBAAgB,6JAAU;AAC1B,EAAE,sFAAM;AACR,EAAE,uGAAM;AACR,EAAE,gHAAe;AACjB;AACA;AACA;AACA;;AAEA;;AAEA;AACA,IAAI,KAAU;AACd;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACe,gF;;;;;;;ACxCf;AAAA;AAAA;AAAA;;;;;;;;ACAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA,mBAAmB,2BAA2B;AAC9C,qBAAqB,oBAAoB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,oBAAoB,8BAA8B;AAClD,WAAW;AACX;AACA;AACA;AACA,eAAe,8BAA8B;AAC7C;AACA;AACA;AACA;AACA;AACA,8BAA8B,mBAAmB;AACjD;AACA;AACA;AACA,yBAAyB;AACzB,uBAAuB;AACvB,2BAA2B,6BAA6B;AACxD,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gCAAgC;AAC/D,iCAAiC,kCAAkC;AACnE,oCAAoC,4BAA4B;AAChE;AACA;AACA;AACA,qCAAqC,wBAAwB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,6BAA6B;AAC7B,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,sCAAsC,kCAAkC;AACxE;AACA;AACA,sCAAsC,kCAAkC;AACxE,yCAAyC,6BAA6B;AACtE;AACA;AACA;AACA,iCAAiC;AACjC,+BAA+B;AAC/B,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,+BAA+B;AAC1D,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,yBAAyB;AACzB,uBAAuB;AACvB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA,8BAA8B,4BAA4B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,yBAAyB;AACzB,uBAAuB;AACvB;AACA;AACA,8BAA8B,0BAA0B;AACxD;AACA;AACA;AACA;AACA;AACA,8BAA8B,2BAA2B;AACzD;AACA;AACA,gCAAgC,8BAA8B;AAC9D;AACA;AACA;AACA,2BAA2B;AAC3B,yBAAyB;AACzB,uBAAuB;AACvB;AACA;AACA,8BAA8B,gCAAgC;AAC9D,iCAAiC,mCAAmC;AACpE,qCAAqC,wBAAwB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,6BAA6B;AAC7B,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,yBAAyB;AACzB,uBAAuB;AACvB;AACA;AACA;AACA;AACA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E,gHAAe;AACjB;AACA;AACA;AACA;;AAEA;;AAEA;AACA,IAAI,KAAU;AACd;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACe,gF;;;;;;;ACvCf;AAAA;AAAA;AAAA;;;;;;;;ACAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,8BAA8B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,2BAA2B,wBAAwB;AACnD;AACA;AACA;AACA,mBAAmB;AACnB,iBAAiB;AACjB,eAAe;AACf,0BAA0B,0BAA0B;AACpD;AACA,qBAAqB,yCAAyC;AAC9D;AACA;AACA;AACA,mBAAmB,+BAA+B,kBAAkB,EAAE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,aAAa;AACb;AACA;AACA,wBAAwB,uCAAuC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,2BAA2B,wBAAwB;AACnD;AACA;AACA;AACA,mBAAmB;AACnB,iBAAiB;AACjB,eAAe;AACf,0BAA0B,kCAAkC;AAC5D;AACA;AACA,0BAA0B,kCAAkC;AAC5D,6BAA6B,uBAAuB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,mBAAmB;AACnB,iBAAiB;AACjB;AACA;AACA;AACA;AA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,EAA6B5O,GAA7B,CAAP;AACH,C;;;;;;;ACFD;AAAA;AAAA;AAAA;;;;;;;ACAA,yC;;;;;;;ACAA;AAAA;AAAA;AAAA;;;;;;;ACAA,yC;;;;;;;ACAA;AAAA;AAAA;AAAA;;;;;;;ACAA,yC;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAoG;AACvC;AACL;AACqC;;;AAG7F;AAC6J;AAC7J,gBAAgB,6JAAU;AAC1B,EAAE,gFAAM;AACR,EAAE,iGAAM;AACR,EAAE,0GAAe;AACjB;AACA;AACA;AACA;;AAEA;;AAEA;AACA,IAAI,KAAU;AACd;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACe,gF;;;;;;;ACvCf;AAAA;AAAA;AAAA;;;;;;;;ACAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,qBAAqB,SAAS,uBAAuB,EAAE;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,qBAAqB,mBAAmB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX,SAAS;AACT;AACA;AACA,gBAAgB,qCAAqC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,qBAAqB,mBAAmB;AACxC;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX,SAAS;AACT;AACA,mBAAmB,6BAA6B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,kBAAkB,kCAAkC;AACpD,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,oBAAoB,+CAA+C;AACnE;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,eAAe;AACf,aAAa;AACb,WAAW;AACX;AACA,uBAAuB,SAAS,8BAA8B,EAAE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1KA;AAAA;AAAA;AAAA;;;;;;;ACAA,yC;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsG;AACvC;AACL;AACqC;;;AAG/F;AAC6J;AAC7J,gBAAgB,6JAAU;AAC1B,EAAE,kFAAM;AACR,EAAE,mGAAM;AACR,EAAE,4GAAe;AACjB;AACA;AACA;AACA;;AAEA;;AAEA;AACA,IAAI,KAAU;AACd;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACe,gF;;;;;;;ACvCf;AAAA;AAAA;AAAA;;;;;;;;ACAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA,oBAAoB,8BAA8B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,wBAAwB,6BAA6B;AACrD,2BAA2B,mBAAmB;AAC9C,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,wBAAwB,6BAA6B;AACrD,2BAA2B,mBAAmB;AAC9C,eAAe;AACf;AACA;AACA;AACA;AACA,+BAA+B,iBAAiB;AAChD;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kCAAkC;AACjD,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA,mBAAmB,iCAAiC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,oBAAoB,uCAAuC;AAC3D,uBAAuB,2BAA2B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,aAAa;AACb,WAAW;AACX;AACA,sBAAsB,2BAA2B;AACjD;AACA;AACA;AACA;AACA,4BAA4B,MAAM,uBAAuB,EAAE;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,mBAAmB;AACnB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7HA;AAAA;AAAA;AAAA;;;;;;;ACAA,yC;;;;;;;ACAA;AAAA;AAAA;AAAA;;;;;;;ACAA,yC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;;IAAYgZ,K;;;;QAGRA,K,GAAAA,K;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHJ;;;;AACA;;;;AACA;;IAAYC,iB;;AACZ;;;;AACA;;IAAYrlB,c;;;;;;QAGRtO,U,GAAAA,oB;QACAyR,uB,GAAAA,iC;QACAkiB,iB,GAAAA,iB;QACA5iB,c,GAAAA,wB;QACAzC,c,GAAAA,c","file":"plugin.min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/static/built/\";\n\n \t__webpack_require__(129);\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 128);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 9a17e6a1e4f67da0a1ea","module.exports = girder_lib;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"girder_lib\"\n// module id = 0\n// module chunks = 0","// Current version.\nexport var VERSION = '1.13.6';\n\n// Establish the root object, `window` (`self`) in the browser, `global`\n// on the server, or `this` in some virtual machines. We use `self`\n// instead of `window` for `WebWorker` support.\nexport var root = (typeof self == 'object' && self.self === self && self) ||\n (typeof global == 'object' && global.global === global && global) ||\n Function('return this')() ||\n {};\n\n// Save bytes in the minified (but not gzipped) version:\nexport var ArrayProto = Array.prototype, ObjProto = Object.prototype;\nexport var SymbolProto = typeof Symbol !== 'undefined' ? Symbol.prototype : null;\n\n// Create quick reference variables for speed access to core prototypes.\nexport var push = ArrayProto.push,\n slice = ArrayProto.slice,\n toString = ObjProto.toString,\n hasOwnProperty = ObjProto.hasOwnProperty;\n\n// Modern feature detection.\nexport var supportsArrayBuffer = typeof ArrayBuffer !== 'undefined',\n supportsDataView = typeof DataView !== 'undefined';\n\n// All **ECMAScript 5+** native function implementations that we hope to use\n// are declared here.\nexport var nativeIsArray = Array.isArray,\n nativeKeys = Object.keys,\n nativeCreate = Object.create,\n nativeIsView = supportsArrayBuffer && ArrayBuffer.isView;\n\n// Create references to these builtin functions because we override them.\nexport var _isNaN = isNaN,\n _isFinite = isFinite;\n\n// Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed.\nexport var hasEnumBug = !{toString: null}.propertyIsEnumerable('toString');\nexport var nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString',\n 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n\n// The largest integer that can be represented exactly.\nexport var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/_setup.js\n// module id = 1\n// module chunks = 0","import isObject from './isObject.js';\nimport { nativeKeys, hasEnumBug } from './_setup.js';\nimport has from './_has.js';\nimport collectNonEnumProps from './_collectNonEnumProps.js';\n\n// Retrieve the names of an object's own properties.\n// Delegates to **ECMAScript 5**'s native `Object.keys`.\nexport default function keys(obj) {\n if (!isObject(obj)) return [];\n if (nativeKeys) return nativeKeys(obj);\n var keys = [];\n for (var key in obj) if (has(obj, key)) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/keys.js\n// module id = 2\n// module chunks = 0","import { toString } from './_setup.js';\n\n// Internal function for creating a `toString`-based type tester.\nexport default function tagTester(name) {\n var tag = '[object ' + name + ']';\n return function(obj) {\n return toString.call(obj) === tag;\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/_tagTester.js\n// module id = 3\n// module chunks = 0","import _ from './underscore.js';\nimport baseIteratee from './_baseIteratee.js';\nimport iteratee from './iteratee.js';\n\n// The function we call internally to generate a callback. It invokes\n// `_.iteratee` if overridden, otherwise `baseIteratee`.\nexport default function cb(value, context, argCount) {\n if (_.iteratee !== iteratee) return _.iteratee(value, context);\n return baseIteratee(value, context, argCount);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/_cb.js\n// module id = 4\n// module chunks = 0","module.exports = (__webpack_require__(0))(4);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./src/rest.js from dll-reference girder_lib\n// module id = 5\n// module chunks = 0","module.exports = (__webpack_require__(0))(2);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./node_modules/jquery/dist/jquery.js from dll-reference girder_lib\n// module id = 6\n// module chunks = 0","// Some functions take a variable number of arguments, or a few expected\n// arguments at the beginning and then a variable number of values to operate\n// on. This helper accumulates all remaining arguments past the function’s\n// argument length (or an explicit `startIndex`), into an array that becomes\n// the last argument. Similar to ES6’s \"rest parameter\".\nexport default function restArguments(func, startIndex) {\n startIndex = startIndex == null ? func.length - 1 : +startIndex;\n return function() {\n var length = Math.max(arguments.length - startIndex, 0),\n rest = Array(length),\n index = 0;\n for (; index < length; index++) {\n rest[index] = arguments[index + startIndex];\n }\n switch (startIndex) {\n case 0: return func.call(this, rest);\n case 1: return func.call(this, arguments[0], rest);\n case 2: return func.call(this, arguments[0], arguments[1], rest);\n }\n var args = Array(startIndex + 1);\n for (index = 0; index < startIndex; index++) {\n args[index] = arguments[index];\n }\n args[startIndex] = rest;\n return func.apply(this, args);\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/restArguments.js\n// module id = 7\n// module chunks = 0","import { VERSION } from './_setup.js';\n\n// If Underscore is called as a function, it returns a wrapped object that can\n// be used OO-style. This wrapper holds altered versions of all functions added\n// through `_.mixin`. Wrapped objects may be chained.\nexport default function _(obj) {\n if (obj instanceof _) return obj;\n if (!(this instanceof _)) return new _(obj);\n this._wrapped = obj;\n}\n\n_.VERSION = VERSION;\n\n// Extracts the result from a wrapped and chained object.\n_.prototype.value = function() {\n return this._wrapped;\n};\n\n// Provide unwrapping proxies for some methods used in engine operations\n// such as arithmetic and JSON stringification.\n_.prototype.valueOf = _.prototype.toJSON = _.prototype.value;\n\n_.prototype.toString = function() {\n return String(this._wrapped);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/underscore.js\n// module id = 8\n// module chunks = 0","import createSizePropertyCheck from './_createSizePropertyCheck.js';\nimport getLength from './_getLength.js';\n\n// Internal helper for collection methods to determine whether a collection\n// should be iterated as an array or as an object.\n// Related: https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength\n// Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094\nexport default createSizePropertyCheck(getLength);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/_isArrayLike.js\n// module id = 9\n// module chunks = 0","import tagTester from './_tagTester.js';\nimport { root } from './_setup.js';\n\nvar isFunction = tagTester('Function');\n\n// Optimize `isFunction` if appropriate. Work around some `typeof` bugs in old\n// v8, IE 11 (#1621), Safari 8 (#1929), and PhantomJS (#2236).\nvar nodelist = root.document && root.document.childNodes;\nif (typeof /./ != 'function' && typeof Int8Array != 'object' && typeof nodelist != 'function') {\n isFunction = function(obj) {\n return typeof obj == 'function' || false;\n };\n}\n\nexport default isFunction;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/isFunction.js\n// module id = 10\n// module chunks = 0","import shallowProperty from './_shallowProperty.js';\n\n// Internal helper to obtain the `length` property of an object.\nexport default shallowProperty('length');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/_getLength.js\n// module id = 11\n// module chunks = 0","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/5/LICENSE\n\n// This is CodeMirror (https://codemirror.net/5), a code editor\n// implemented in JavaScript on top of the browser's DOM.\n//\n// You can find some technical background for some of the code below\n// at http://marijnhaverbeke.nl/blog/#cm-internals .\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.CodeMirror = factory());\n}(this, (function () { 'use strict';\n\n // Kludges for bugs and behavior differences that can't be feature\n // detected are enabled based on userAgent etc sniffing.\n var userAgent = navigator.userAgent;\n var platform = navigator.platform;\n\n var gecko = /gecko\\/\\d/i.test(userAgent);\n var ie_upto10 = /MSIE \\d/.test(userAgent);\n var ie_11up = /Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(userAgent);\n var edge = /Edge\\/(\\d+)/.exec(userAgent);\n var ie = ie_upto10 || ie_11up || edge;\n var ie_version = ie && (ie_upto10 ? document.documentMode || 6 : +(edge || ie_11up)[1]);\n var webkit = !edge && /WebKit\\//.test(userAgent);\n var qtwebkit = webkit && /Qt\\/\\d+\\.\\d+/.test(userAgent);\n var chrome = !edge && /Chrome\\/(\\d+)/.exec(userAgent);\n var chrome_version = chrome && +chrome[1];\n var presto = /Opera\\//.test(userAgent);\n var safari = /Apple Computer/.test(navigator.vendor);\n var mac_geMountainLion = /Mac OS X 1\\d\\D([8-9]|\\d\\d)\\D/.test(userAgent);\n var phantom = /PhantomJS/.test(userAgent);\n\n var ios = safari && (/Mobile\\/\\w+/.test(userAgent) || navigator.maxTouchPoints > 2);\n var android = /Android/.test(userAgent);\n // This is woefully incomplete. Suggestions for alternative methods welcome.\n var mobile = ios || android || /webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(userAgent);\n var mac = ios || /Mac/.test(platform);\n var chromeOS = /\\bCrOS\\b/.test(userAgent);\n var windows = /win/i.test(platform);\n\n var presto_version = presto && userAgent.match(/Version\\/(\\d*\\.\\d*)/);\n if (presto_version) { presto_version = Number(presto_version[1]); }\n if (presto_version && presto_version >= 15) { presto = false; webkit = true; }\n // Some browsers use the wrong event properties to signal cmd/ctrl on OS X\n var flipCtrlCmd = mac && (qtwebkit || presto && (presto_version == null || presto_version < 12.11));\n var captureRightClick = gecko || (ie && ie_version >= 9);\n\n function classTest(cls) { return new RegExp(\"(^|\\\\s)\" + cls + \"(?:$|\\\\s)\\\\s*\") }\n\n var rmClass = function(node, cls) {\n var current = node.className;\n var match = classTest(cls).exec(current);\n if (match) {\n var after = current.slice(match.index + match[0].length);\n node.className = current.slice(0, match.index) + (after ? match[1] + after : \"\");\n }\n };\n\n function removeChildren(e) {\n for (var count = e.childNodes.length; count > 0; --count)\n { e.removeChild(e.firstChild); }\n return e\n }\n\n function removeChildrenAndAdd(parent, e) {\n return removeChildren(parent).appendChild(e)\n }\n\n function elt(tag, content, className, style) {\n var e = document.createElement(tag);\n if (className) { e.className = className; }\n if (style) { e.style.cssText = style; }\n if (typeof content == \"string\") { e.appendChild(document.createTextNode(content)); }\n else if (content) { for (var i = 0; i < content.length; ++i) { e.appendChild(content[i]); } }\n return e\n }\n // wrapper for elt, which removes the elt from the accessibility tree\n function eltP(tag, content, className, style) {\n var e = elt(tag, content, className, style);\n e.setAttribute(\"role\", \"presentation\");\n return e\n }\n\n var range;\n if (document.createRange) { range = function(node, start, end, endNode) {\n var r = document.createRange();\n r.setEnd(endNode || node, end);\n r.setStart(node, start);\n return r\n }; }\n else { range = function(node, start, end) {\n var r = document.body.createTextRange();\n try { r.moveToElementText(node.parentNode); }\n catch(e) { return r }\n r.collapse(true);\n r.moveEnd(\"character\", end);\n r.moveStart(\"character\", start);\n return r\n }; }\n\n function contains(parent, child) {\n if (child.nodeType == 3) // Android browser always returns false when child is a textnode\n { child = child.parentNode; }\n if (parent.contains)\n { return parent.contains(child) }\n do {\n if (child.nodeType == 11) { child = child.host; }\n if (child == parent) { return true }\n } while (child = child.parentNode)\n }\n\n function activeElt(rootNode) {\n // IE and Edge may throw an \"Unspecified Error\" when accessing document.activeElement.\n // IE < 10 will throw when accessed while the page is loading or in an iframe.\n // IE > 9 and Edge will throw when accessed in an iframe if document.body is unavailable.\n var doc = rootNode.ownerDocument || rootNode;\n var activeElement;\n try {\n activeElement = rootNode.activeElement;\n } catch(e) {\n activeElement = doc.body || null;\n }\n while (activeElement && activeElement.shadowRoot && activeElement.shadowRoot.activeElement)\n { activeElement = activeElement.shadowRoot.activeElement; }\n return activeElement\n }\n\n function addClass(node, cls) {\n var current = node.className;\n if (!classTest(cls).test(current)) { node.className += (current ? \" \" : \"\") + cls; }\n }\n function joinClasses(a, b) {\n var as = a.split(\" \");\n for (var i = 0; i < as.length; i++)\n { if (as[i] && !classTest(as[i]).test(b)) { b += \" \" + as[i]; } }\n return b\n }\n\n var selectInput = function(node) { node.select(); };\n if (ios) // Mobile Safari apparently has a bug where select() is broken.\n { selectInput = function(node) { node.selectionStart = 0; node.selectionEnd = node.value.length; }; }\n else if (ie) // Suppress mysterious IE10 errors\n { selectInput = function(node) { try { node.select(); } catch(_e) {} }; }\n\n function doc(cm) { return cm.display.wrapper.ownerDocument }\n\n function root(cm) {\n return rootNode(cm.display.wrapper)\n }\n\n function rootNode(element) {\n // Detect modern browsers (2017+).\n return element.getRootNode ? element.getRootNode() : element.ownerDocument\n }\n\n function win(cm) { return doc(cm).defaultView }\n\n function bind(f) {\n var args = Array.prototype.slice.call(arguments, 1);\n return function(){return f.apply(null, args)}\n }\n\n function copyObj(obj, target, overwrite) {\n if (!target) { target = {}; }\n for (var prop in obj)\n { if (obj.hasOwnProperty(prop) && (overwrite !== false || !target.hasOwnProperty(prop)))\n { target[prop] = obj[prop]; } }\n return target\n }\n\n // Counts the column offset in a string, taking tabs into account.\n // Used mostly to find indentation.\n function countColumn(string, end, tabSize, startIndex, startValue) {\n if (end == null) {\n end = string.search(/[^\\s\\u00a0]/);\n if (end == -1) { end = string.length; }\n }\n for (var i = startIndex || 0, n = startValue || 0;;) {\n var nextTab = string.indexOf(\"\\t\", i);\n if (nextTab < 0 || nextTab >= end)\n { return n + (end - i) }\n n += nextTab - i;\n n += tabSize - (n % tabSize);\n i = nextTab + 1;\n }\n }\n\n var Delayed = function() {\n this.id = null;\n this.f = null;\n this.time = 0;\n this.handler = bind(this.onTimeout, this);\n };\n Delayed.prototype.onTimeout = function (self) {\n self.id = 0;\n if (self.time <= +new Date) {\n self.f();\n } else {\n setTimeout(self.handler, self.time - +new Date);\n }\n };\n Delayed.prototype.set = function (ms, f) {\n this.f = f;\n var time = +new Date + ms;\n if (!this.id || time < this.time) {\n clearTimeout(this.id);\n this.id = setTimeout(this.handler, ms);\n this.time = time;\n }\n };\n\n function indexOf(array, elt) {\n for (var i = 0; i < array.length; ++i)\n { if (array[i] == elt) { return i } }\n return -1\n }\n\n // Number of pixels added to scroller and sizer to hide scrollbar\n var scrollerGap = 50;\n\n // Returned or thrown by various protocols to signal 'I'm not\n // handling this'.\n var Pass = {toString: function(){return \"CodeMirror.Pass\"}};\n\n // Reused option objects for setSelection & friends\n var sel_dontScroll = {scroll: false}, sel_mouse = {origin: \"*mouse\"}, sel_move = {origin: \"+move\"};\n\n // The inverse of countColumn -- find the offset that corresponds to\n // a particular column.\n function findColumn(string, goal, tabSize) {\n for (var pos = 0, col = 0;;) {\n var nextTab = string.indexOf(\"\\t\", pos);\n if (nextTab == -1) { nextTab = string.length; }\n var skipped = nextTab - pos;\n if (nextTab == string.length || col + skipped >= goal)\n { return pos + Math.min(skipped, goal - col) }\n col += nextTab - pos;\n col += tabSize - (col % tabSize);\n pos = nextTab + 1;\n if (col >= goal) { return pos }\n }\n }\n\n var spaceStrs = [\"\"];\n function spaceStr(n) {\n while (spaceStrs.length <= n)\n { spaceStrs.push(lst(spaceStrs) + \" \"); }\n return spaceStrs[n]\n }\n\n function lst(arr) { return arr[arr.length-1] }\n\n function map(array, f) {\n var out = [];\n for (var i = 0; i < array.length; i++) { out[i] = f(array[i], i); }\n return out\n }\n\n function insertSorted(array, value, score) {\n var pos = 0, priority = score(value);\n while (pos < array.length && score(array[pos]) <= priority) { pos++; }\n array.splice(pos, 0, value);\n }\n\n function nothing() {}\n\n function createObj(base, props) {\n var inst;\n if (Object.create) {\n inst = Object.create(base);\n } else {\n nothing.prototype = base;\n inst = new nothing();\n }\n if (props) { copyObj(props, inst); }\n return inst\n }\n\n var nonASCIISingleCaseWordChar = /[\\u00df\\u0587\\u0590-\\u05f4\\u0600-\\u06ff\\u3040-\\u309f\\u30a0-\\u30ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\uac00-\\ud7af]/;\n function isWordCharBasic(ch) {\n return /\\w/.test(ch) || ch > \"\\x80\" &&\n (ch.toUpperCase() != ch.toLowerCase() || nonASCIISingleCaseWordChar.test(ch))\n }\n function isWordChar(ch, helper) {\n if (!helper) { return isWordCharBasic(ch) }\n if (helper.source.indexOf(\"\\\\w\") > -1 && isWordCharBasic(ch)) { return true }\n return helper.test(ch)\n }\n\n function isEmpty(obj) {\n for (var n in obj) { if (obj.hasOwnProperty(n) && obj[n]) { return false } }\n return true\n }\n\n // Extending unicode characters. A series of a non-extending char +\n // any number of extending chars is treated as a single unit as far\n // as editing and measuring is concerned. This is not fully correct,\n // since some scripts/fonts/browsers also treat other configurations\n // of code points as a group.\n var extendingChars = /[\\u0300-\\u036f\\u0483-\\u0489\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u065e\\u0670\\u06d6-\\u06dc\\u06de-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07eb-\\u07f3\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0900-\\u0902\\u093c\\u0941-\\u0948\\u094d\\u0951-\\u0955\\u0962\\u0963\\u0981\\u09bc\\u09be\\u09c1-\\u09c4\\u09cd\\u09d7\\u09e2\\u09e3\\u0a01\\u0a02\\u0a3c\\u0a41\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a70\\u0a71\\u0a75\\u0a81\\u0a82\\u0abc\\u0ac1-\\u0ac5\\u0ac7\\u0ac8\\u0acd\\u0ae2\\u0ae3\\u0b01\\u0b3c\\u0b3e\\u0b3f\\u0b41-\\u0b44\\u0b4d\\u0b56\\u0b57\\u0b62\\u0b63\\u0b82\\u0bbe\\u0bc0\\u0bcd\\u0bd7\\u0c3e-\\u0c40\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0cbc\\u0cbf\\u0cc2\\u0cc6\\u0ccc\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0d3e\\u0d41-\\u0d44\\u0d4d\\u0d57\\u0d62\\u0d63\\u0dca\\u0dcf\\u0dd2-\\u0dd4\\u0dd6\\u0ddf\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0eb1\\u0eb4-\\u0eb9\\u0ebb\\u0ebc\\u0ec8-\\u0ecd\\u0f18\\u0f19\\u0f35\\u0f37\\u0f39\\u0f71-\\u0f7e\\u0f80-\\u0f84\\u0f86\\u0f87\\u0f90-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102d-\\u1030\\u1032-\\u1037\\u1039\\u103a\\u103d\\u103e\\u1058\\u1059\\u105e-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108d\\u109d\\u135f\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b7-\\u17bd\\u17c6\\u17c9-\\u17d3\\u17dd\\u180b-\\u180d\\u18a9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193b\\u1a17\\u1a18\\u1a56\\u1a58-\\u1a5e\\u1a60\\u1a62\\u1a65-\\u1a6c\\u1a73-\\u1a7c\\u1a7f\\u1b00-\\u1b03\\u1b34\\u1b36-\\u1b3a\\u1b3c\\u1b42\\u1b6b-\\u1b73\\u1b80\\u1b81\\u1ba2-\\u1ba5\\u1ba8\\u1ba9\\u1c2c-\\u1c33\\u1c36\\u1c37\\u1cd0-\\u1cd2\\u1cd4-\\u1ce0\\u1ce2-\\u1ce8\\u1ced\\u1dc0-\\u1de6\\u1dfd-\\u1dff\\u200c\\u200d\\u20d0-\\u20f0\\u2cef-\\u2cf1\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua66f-\\ua672\\ua67c\\ua67d\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua825\\ua826\\ua8c4\\ua8e0-\\ua8f1\\ua926-\\ua92d\\ua947-\\ua951\\ua980-\\ua982\\ua9b3\\ua9b6-\\ua9b9\\ua9bc\\uaa29-\\uaa2e\\uaa31\\uaa32\\uaa35\\uaa36\\uaa43\\uaa4c\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uabe5\\uabe8\\uabed\\udc00-\\udfff\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe26\\uff9e\\uff9f]/;\n function isExtendingChar(ch) { return ch.charCodeAt(0) >= 768 && extendingChars.test(ch) }\n\n // Returns a number from the range [`0`; `str.length`] unless `pos` is outside that range.\n function skipExtendingChars(str, pos, dir) {\n while ((dir < 0 ? pos > 0 : pos < str.length) && isExtendingChar(str.charAt(pos))) { pos += dir; }\n return pos\n }\n\n // Returns the value from the range [`from`; `to`] that satisfies\n // `pred` and is closest to `from`. Assumes that at least `to`\n // satisfies `pred`. Supports `from` being greater than `to`.\n function findFirst(pred, from, to) {\n // At any point we are certain `to` satisfies `pred`, don't know\n // whether `from` does.\n var dir = from > to ? -1 : 1;\n for (;;) {\n if (from == to) { return from }\n var midF = (from + to) / 2, mid = dir < 0 ? Math.ceil(midF) : Math.floor(midF);\n if (mid == from) { return pred(mid) ? from : to }\n if (pred(mid)) { to = mid; }\n else { from = mid + dir; }\n }\n }\n\n // BIDI HELPERS\n\n function iterateBidiSections(order, from, to, f) {\n if (!order) { return f(from, to, \"ltr\", 0) }\n var found = false;\n for (var i = 0; i < order.length; ++i) {\n var part = order[i];\n if (part.from < to && part.to > from || from == to && part.to == from) {\n f(Math.max(part.from, from), Math.min(part.to, to), part.level == 1 ? \"rtl\" : \"ltr\", i);\n found = true;\n }\n }\n if (!found) { f(from, to, \"ltr\"); }\n }\n\n var bidiOther = null;\n function getBidiPartAt(order, ch, sticky) {\n var found;\n bidiOther = null;\n for (var i = 0; i < order.length; ++i) {\n var cur = order[i];\n if (cur.from < ch && cur.to > ch) { return i }\n if (cur.to == ch) {\n if (cur.from != cur.to && sticky == \"before\") { found = i; }\n else { bidiOther = i; }\n }\n if (cur.from == ch) {\n if (cur.from != cur.to && sticky != \"before\") { found = i; }\n else { bidiOther = i; }\n }\n }\n return found != null ? found : bidiOther\n }\n\n // Bidirectional ordering algorithm\n // See http://unicode.org/reports/tr9/tr9-13.html for the algorithm\n // that this (partially) implements.\n\n // One-char codes used for character types:\n // L (L): Left-to-Right\n // R (R): Right-to-Left\n // r (AL): Right-to-Left Arabic\n // 1 (EN): European Number\n // + (ES): European Number Separator\n // % (ET): European Number Terminator\n // n (AN): Arabic Number\n // , (CS): Common Number Separator\n // m (NSM): Non-Spacing Mark\n // b (BN): Boundary Neutral\n // s (B): Paragraph Separator\n // t (S): Segment Separator\n // w (WS): Whitespace\n // N (ON): Other Neutrals\n\n // Returns null if characters are ordered as they appear\n // (left-to-right), or an array of sections ({from, to, level}\n // objects) in the order in which they occur visually.\n var bidiOrdering = (function() {\n // Character types for codepoints 0 to 0xff\n var lowTypes = \"bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN\";\n // Character types for codepoints 0x600 to 0x6f9\n var arabicTypes = \"nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111\";\n function charType(code) {\n if (code <= 0xf7) { return lowTypes.charAt(code) }\n else if (0x590 <= code && code <= 0x5f4) { return \"R\" }\n else if (0x600 <= code && code <= 0x6f9) { return arabicTypes.charAt(code - 0x600) }\n else if (0x6ee <= code && code <= 0x8ac) { return \"r\" }\n else if (0x2000 <= code && code <= 0x200b) { return \"w\" }\n else if (code == 0x200c) { return \"b\" }\n else { return \"L\" }\n }\n\n var bidiRE = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac]/;\n var isNeutral = /[stwN]/, isStrong = /[LRr]/, countsAsLeft = /[Lb1n]/, countsAsNum = /[1n]/;\n\n function BidiSpan(level, from, to) {\n this.level = level;\n this.from = from; this.to = to;\n }\n\n return function(str, direction) {\n var outerType = direction == \"ltr\" ? \"L\" : \"R\";\n\n if (str.length == 0 || direction == \"ltr\" && !bidiRE.test(str)) { return false }\n var len = str.length, types = [];\n for (var i = 0; i < len; ++i)\n { types.push(charType(str.charCodeAt(i))); }\n\n // W1. Examine each non-spacing mark (NSM) in the level run, and\n // change the type of the NSM to the type of the previous\n // character. If the NSM is at the start of the level run, it will\n // get the type of sor.\n for (var i$1 = 0, prev = outerType; i$1 < len; ++i$1) {\n var type = types[i$1];\n if (type == \"m\") { types[i$1] = prev; }\n else { prev = type; }\n }\n\n // W2. Search backwards from each instance of a European number\n // until the first strong type (R, L, AL, or sor) is found. If an\n // AL is found, change the type of the European number to Arabic\n // number.\n // W3. Change all ALs to R.\n for (var i$2 = 0, cur = outerType; i$2 < len; ++i$2) {\n var type$1 = types[i$2];\n if (type$1 == \"1\" && cur == \"r\") { types[i$2] = \"n\"; }\n else if (isStrong.test(type$1)) { cur = type$1; if (type$1 == \"r\") { types[i$2] = \"R\"; } }\n }\n\n // W4. A single European separator between two European numbers\n // changes to a European number. A single common separator between\n // two numbers of the same type changes to that type.\n for (var i$3 = 1, prev$1 = types[0]; i$3 < len - 1; ++i$3) {\n var type$2 = types[i$3];\n if (type$2 == \"+\" && prev$1 == \"1\" && types[i$3+1] == \"1\") { types[i$3] = \"1\"; }\n else if (type$2 == \",\" && prev$1 == types[i$3+1] &&\n (prev$1 == \"1\" || prev$1 == \"n\")) { types[i$3] = prev$1; }\n prev$1 = type$2;\n }\n\n // W5. A sequence of European terminators adjacent to European\n // numbers changes to all European numbers.\n // W6. Otherwise, separators and terminators change to Other\n // Neutral.\n for (var i$4 = 0; i$4 < len; ++i$4) {\n var type$3 = types[i$4];\n if (type$3 == \",\") { types[i$4] = \"N\"; }\n else if (type$3 == \"%\") {\n var end = (void 0);\n for (end = i$4 + 1; end < len && types[end] == \"%\"; ++end) {}\n var replace = (i$4 && types[i$4-1] == \"!\") || (end < len && types[end] == \"1\") ? \"1\" : \"N\";\n for (var j = i$4; j < end; ++j) { types[j] = replace; }\n i$4 = end - 1;\n }\n }\n\n // W7. Search backwards from each instance of a European number\n // until the first strong type (R, L, or sor) is found. If an L is\n // found, then change the type of the European number to L.\n for (var i$5 = 0, cur$1 = outerType; i$5 < len; ++i$5) {\n var type$4 = types[i$5];\n if (cur$1 == \"L\" && type$4 == \"1\") { types[i$5] = \"L\"; }\n else if (isStrong.test(type$4)) { cur$1 = type$4; }\n }\n\n // N1. A sequence of neutrals takes the direction of the\n // surrounding strong text if the text on both sides has the same\n // direction. European and Arabic numbers act as if they were R in\n // terms of their influence on neutrals. Start-of-level-run (sor)\n // and end-of-level-run (eor) are used at level run boundaries.\n // N2. Any remaining neutrals take the embedding direction.\n for (var i$6 = 0; i$6 < len; ++i$6) {\n if (isNeutral.test(types[i$6])) {\n var end$1 = (void 0);\n for (end$1 = i$6 + 1; end$1 < len && isNeutral.test(types[end$1]); ++end$1) {}\n var before = (i$6 ? types[i$6-1] : outerType) == \"L\";\n var after = (end$1 < len ? types[end$1] : outerType) == \"L\";\n var replace$1 = before == after ? (before ? \"L\" : \"R\") : outerType;\n for (var j$1 = i$6; j$1 < end$1; ++j$1) { types[j$1] = replace$1; }\n i$6 = end$1 - 1;\n }\n }\n\n // Here we depart from the documented algorithm, in order to avoid\n // building up an actual levels array. Since there are only three\n // levels (0, 1, 2) in an implementation that doesn't take\n // explicit embedding into account, we can build up the order on\n // the fly, without following the level-based algorithm.\n var order = [], m;\n for (var i$7 = 0; i$7 < len;) {\n if (countsAsLeft.test(types[i$7])) {\n var start = i$7;\n for (++i$7; i$7 < len && countsAsLeft.test(types[i$7]); ++i$7) {}\n order.push(new BidiSpan(0, start, i$7));\n } else {\n var pos = i$7, at = order.length, isRTL = direction == \"rtl\" ? 1 : 0;\n for (++i$7; i$7 < len && types[i$7] != \"L\"; ++i$7) {}\n for (var j$2 = pos; j$2 < i$7;) {\n if (countsAsNum.test(types[j$2])) {\n if (pos < j$2) { order.splice(at, 0, new BidiSpan(1, pos, j$2)); at += isRTL; }\n var nstart = j$2;\n for (++j$2; j$2 < i$7 && countsAsNum.test(types[j$2]); ++j$2) {}\n order.splice(at, 0, new BidiSpan(2, nstart, j$2));\n at += isRTL;\n pos = j$2;\n } else { ++j$2; }\n }\n if (pos < i$7) { order.splice(at, 0, new BidiSpan(1, pos, i$7)); }\n }\n }\n if (direction == \"ltr\") {\n if (order[0].level == 1 && (m = str.match(/^\\s+/))) {\n order[0].from = m[0].length;\n order.unshift(new BidiSpan(0, 0, m[0].length));\n }\n if (lst(order).level == 1 && (m = str.match(/\\s+$/))) {\n lst(order).to -= m[0].length;\n order.push(new BidiSpan(0, len - m[0].length, len));\n }\n }\n\n return direction == \"rtl\" ? order.reverse() : order\n }\n })();\n\n // Get the bidi ordering for the given line (and cache it). Returns\n // false for lines that are fully left-to-right, and an array of\n // BidiSpan objects otherwise.\n function getOrder(line, direction) {\n var order = line.order;\n if (order == null) { order = line.order = bidiOrdering(line.text, direction); }\n return order\n }\n\n // EVENT HANDLING\n\n // Lightweight event framework. on/off also work on DOM nodes,\n // registering native DOM handlers.\n\n var noHandlers = [];\n\n var on = function(emitter, type, f) {\n if (emitter.addEventListener) {\n emitter.addEventListener(type, f, false);\n } else if (emitter.attachEvent) {\n emitter.attachEvent(\"on\" + type, f);\n } else {\n var map = emitter._handlers || (emitter._handlers = {});\n map[type] = (map[type] || noHandlers).concat(f);\n }\n };\n\n function getHandlers(emitter, type) {\n return emitter._handlers && emitter._handlers[type] || noHandlers\n }\n\n function off(emitter, type, f) {\n if (emitter.removeEventListener) {\n emitter.removeEventListener(type, f, false);\n } else if (emitter.detachEvent) {\n emitter.detachEvent(\"on\" + type, f);\n } else {\n var map = emitter._handlers, arr = map && map[type];\n if (arr) {\n var index = indexOf(arr, f);\n if (index > -1)\n { map[type] = arr.slice(0, index).concat(arr.slice(index + 1)); }\n }\n }\n }\n\n function signal(emitter, type /*, values...*/) {\n var handlers = getHandlers(emitter, type);\n if (!handlers.length) { return }\n var args = Array.prototype.slice.call(arguments, 2);\n for (var i = 0; i < handlers.length; ++i) { handlers[i].apply(null, args); }\n }\n\n // The DOM events that CodeMirror handles can be overridden by\n // registering a (non-DOM) handler on the editor for the event name,\n // and preventDefault-ing the event in that handler.\n function signalDOMEvent(cm, e, override) {\n if (typeof e == \"string\")\n { e = {type: e, preventDefault: function() { this.defaultPrevented = true; }}; }\n signal(cm, override || e.type, cm, e);\n return e_defaultPrevented(e) || e.codemirrorIgnore\n }\n\n function signalCursorActivity(cm) {\n var arr = cm._handlers && cm._handlers.cursorActivity;\n if (!arr) { return }\n var set = cm.curOp.cursorActivityHandlers || (cm.curOp.cursorActivityHandlers = []);\n for (var i = 0; i < arr.length; ++i) { if (indexOf(set, arr[i]) == -1)\n { set.push(arr[i]); } }\n }\n\n function hasHandler(emitter, type) {\n return getHandlers(emitter, type).length > 0\n }\n\n // Add on and off methods to a constructor's prototype, to make\n // registering events on such objects more convenient.\n function eventMixin(ctor) {\n ctor.prototype.on = function(type, f) {on(this, type, f);};\n ctor.prototype.off = function(type, f) {off(this, type, f);};\n }\n\n // Due to the fact that we still support jurassic IE versions, some\n // compatibility wrappers are needed.\n\n function e_preventDefault(e) {\n if (e.preventDefault) { e.preventDefault(); }\n else { e.returnValue = false; }\n }\n function e_stopPropagation(e) {\n if (e.stopPropagation) { e.stopPropagation(); }\n else { e.cancelBubble = true; }\n }\n function e_defaultPrevented(e) {\n return e.defaultPrevented != null ? e.defaultPrevented : e.returnValue == false\n }\n function e_stop(e) {e_preventDefault(e); e_stopPropagation(e);}\n\n function e_target(e) {return e.target || e.srcElement}\n function e_button(e) {\n var b = e.which;\n if (b == null) {\n if (e.button & 1) { b = 1; }\n else if (e.button & 2) { b = 3; }\n else if (e.button & 4) { b = 2; }\n }\n if (mac && e.ctrlKey && b == 1) { b = 3; }\n return b\n }\n\n // Detect drag-and-drop\n var dragAndDrop = function() {\n // There is *some* kind of drag-and-drop support in IE6-8, but I\n // couldn't get it to work yet.\n if (ie && ie_version < 9) { return false }\n var div = elt('div');\n return \"draggable\" in div || \"dragDrop\" in div\n }();\n\n var zwspSupported;\n function zeroWidthElement(measure) {\n if (zwspSupported == null) {\n var test = elt(\"span\", \"\\u200b\");\n removeChildrenAndAdd(measure, elt(\"span\", [test, document.createTextNode(\"x\")]));\n if (measure.firstChild.offsetHeight != 0)\n { zwspSupported = test.offsetWidth <= 1 && test.offsetHeight > 2 && !(ie && ie_version < 8); }\n }\n var node = zwspSupported ? elt(\"span\", \"\\u200b\") :\n elt(\"span\", \"\\u00a0\", null, \"display: inline-block; width: 1px; margin-right: -1px\");\n node.setAttribute(\"cm-text\", \"\");\n return node\n }\n\n // Feature-detect IE's crummy client rect reporting for bidi text\n var badBidiRects;\n function hasBadBidiRects(measure) {\n if (badBidiRects != null) { return badBidiRects }\n var txt = removeChildrenAndAdd(measure, document.createTextNode(\"A\\u062eA\"));\n var r0 = range(txt, 0, 1).getBoundingClientRect();\n var r1 = range(txt, 1, 2).getBoundingClientRect();\n removeChildren(measure);\n if (!r0 || r0.left == r0.right) { return false } // Safari returns null in some cases (#2780)\n return badBidiRects = (r1.right - r0.right < 3)\n }\n\n // See if \"\".split is the broken IE version, if so, provide an\n // alternative way to split lines.\n var splitLinesAuto = \"\\n\\nb\".split(/\\n/).length != 3 ? function (string) {\n var pos = 0, result = [], l = string.length;\n while (pos <= l) {\n var nl = string.indexOf(\"\\n\", pos);\n if (nl == -1) { nl = string.length; }\n var line = string.slice(pos, string.charAt(nl - 1) == \"\\r\" ? nl - 1 : nl);\n var rt = line.indexOf(\"\\r\");\n if (rt != -1) {\n result.push(line.slice(0, rt));\n pos += rt + 1;\n } else {\n result.push(line);\n pos = nl + 1;\n }\n }\n return result\n } : function (string) { return string.split(/\\r\\n?|\\n/); };\n\n var hasSelection = window.getSelection ? function (te) {\n try { return te.selectionStart != te.selectionEnd }\n catch(e) { return false }\n } : function (te) {\n var range;\n try {range = te.ownerDocument.selection.createRange();}\n catch(e) {}\n if (!range || range.parentElement() != te) { return false }\n return range.compareEndPoints(\"StartToEnd\", range) != 0\n };\n\n var hasCopyEvent = (function () {\n var e = elt(\"div\");\n if (\"oncopy\" in e) { return true }\n e.setAttribute(\"oncopy\", \"return;\");\n return typeof e.oncopy == \"function\"\n })();\n\n var badZoomedRects = null;\n function hasBadZoomedRects(measure) {\n if (badZoomedRects != null) { return badZoomedRects }\n var node = removeChildrenAndAdd(measure, elt(\"span\", \"x\"));\n var normal = node.getBoundingClientRect();\n var fromRange = range(node, 0, 1).getBoundingClientRect();\n return badZoomedRects = Math.abs(normal.left - fromRange.left) > 1\n }\n\n // Known modes, by name and by MIME\n var modes = {}, mimeModes = {};\n\n // Extra arguments are stored as the mode's dependencies, which is\n // used by (legacy) mechanisms like loadmode.js to automatically\n // load a mode. (Preferred mechanism is the require/define calls.)\n function defineMode(name, mode) {\n if (arguments.length > 2)\n { mode.dependencies = Array.prototype.slice.call(arguments, 2); }\n modes[name] = mode;\n }\n\n function defineMIME(mime, spec) {\n mimeModes[mime] = spec;\n }\n\n // Given a MIME type, a {name, ...options} config object, or a name\n // string, return a mode config object.\n function resolveMode(spec) {\n if (typeof spec == \"string\" && mimeModes.hasOwnProperty(spec)) {\n spec = mimeModes[spec];\n } else if (spec && typeof spec.name == \"string\" && mimeModes.hasOwnProperty(spec.name)) {\n var found = mimeModes[spec.name];\n if (typeof found == \"string\") { found = {name: found}; }\n spec = createObj(found, spec);\n spec.name = found.name;\n } else if (typeof spec == \"string\" && /^[\\w\\-]+\\/[\\w\\-]+\\+xml$/.test(spec)) {\n return resolveMode(\"application/xml\")\n } else if (typeof spec == \"string\" && /^[\\w\\-]+\\/[\\w\\-]+\\+json$/.test(spec)) {\n return resolveMode(\"application/json\")\n }\n if (typeof spec == \"string\") { return {name: spec} }\n else { return spec || {name: \"null\"} }\n }\n\n // Given a mode spec (anything that resolveMode accepts), find and\n // initialize an actual mode object.\n function getMode(options, spec) {\n spec = resolveMode(spec);\n var mfactory = modes[spec.name];\n if (!mfactory) { return getMode(options, \"text/plain\") }\n var modeObj = mfactory(options, spec);\n if (modeExtensions.hasOwnProperty(spec.name)) {\n var exts = modeExtensions[spec.name];\n for (var prop in exts) {\n if (!exts.hasOwnProperty(prop)) { continue }\n if (modeObj.hasOwnProperty(prop)) { modeObj[\"_\" + prop] = modeObj[prop]; }\n modeObj[prop] = exts[prop];\n }\n }\n modeObj.name = spec.name;\n if (spec.helperType) { modeObj.helperType = spec.helperType; }\n if (spec.modeProps) { for (var prop$1 in spec.modeProps)\n { modeObj[prop$1] = spec.modeProps[prop$1]; } }\n\n return modeObj\n }\n\n // This can be used to attach properties to mode objects from\n // outside the actual mode definition.\n var modeExtensions = {};\n function extendMode(mode, properties) {\n var exts = modeExtensions.hasOwnProperty(mode) ? modeExtensions[mode] : (modeExtensions[mode] = {});\n copyObj(properties, exts);\n }\n\n function copyState(mode, state) {\n if (state === true) { return state }\n if (mode.copyState) { return mode.copyState(state) }\n var nstate = {};\n for (var n in state) {\n var val = state[n];\n if (val instanceof Array) { val = val.concat([]); }\n nstate[n] = val;\n }\n return nstate\n }\n\n // Given a mode and a state (for that mode), find the inner mode and\n // state at the position that the state refers to.\n function innerMode(mode, state) {\n var info;\n while (mode.innerMode) {\n info = mode.innerMode(state);\n if (!info || info.mode == mode) { break }\n state = info.state;\n mode = info.mode;\n }\n return info || {mode: mode, state: state}\n }\n\n function startState(mode, a1, a2) {\n return mode.startState ? mode.startState(a1, a2) : true\n }\n\n // STRING STREAM\n\n // Fed to the mode parsers, provides helper functions to make\n // parsers more succinct.\n\n var StringStream = function(string, tabSize, lineOracle) {\n this.pos = this.start = 0;\n this.string = string;\n this.tabSize = tabSize || 8;\n this.lastColumnPos = this.lastColumnValue = 0;\n this.lineStart = 0;\n this.lineOracle = lineOracle;\n };\n\n StringStream.prototype.eol = function () {return this.pos >= this.string.length};\n StringStream.prototype.sol = function () {return this.pos == this.lineStart};\n StringStream.prototype.peek = function () {return this.string.charAt(this.pos) || undefined};\n StringStream.prototype.next = function () {\n if (this.pos < this.string.length)\n { return this.string.charAt(this.pos++) }\n };\n StringStream.prototype.eat = function (match) {\n var ch = this.string.charAt(this.pos);\n var ok;\n if (typeof match == \"string\") { ok = ch == match; }\n else { ok = ch && (match.test ? match.test(ch) : match(ch)); }\n if (ok) {++this.pos; return ch}\n };\n StringStream.prototype.eatWhile = function (match) {\n var start = this.pos;\n while (this.eat(match)){}\n return this.pos > start\n };\n StringStream.prototype.eatSpace = function () {\n var start = this.pos;\n while (/[\\s\\u00a0]/.test(this.string.charAt(this.pos))) { ++this.pos; }\n return this.pos > start\n };\n StringStream.prototype.skipToEnd = function () {this.pos = this.string.length;};\n StringStream.prototype.skipTo = function (ch) {\n var found = this.string.indexOf(ch, this.pos);\n if (found > -1) {this.pos = found; return true}\n };\n StringStream.prototype.backUp = function (n) {this.pos -= n;};\n StringStream.prototype.column = function () {\n if (this.lastColumnPos < this.start) {\n this.lastColumnValue = countColumn(this.string, this.start, this.tabSize, this.lastColumnPos, this.lastColumnValue);\n this.lastColumnPos = this.start;\n }\n return this.lastColumnValue - (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0)\n };\n StringStream.prototype.indentation = function () {\n return countColumn(this.string, null, this.tabSize) -\n (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0)\n };\n StringStream.prototype.match = function (pattern, consume, caseInsensitive) {\n if (typeof pattern == \"string\") {\n var cased = function (str) { return caseInsensitive ? str.toLowerCase() : str; };\n var substr = this.string.substr(this.pos, pattern.length);\n if (cased(substr) == cased(pattern)) {\n if (consume !== false) { this.pos += pattern.length; }\n return true\n }\n } else {\n var match = this.string.slice(this.pos).match(pattern);\n if (match && match.index > 0) { return null }\n if (match && consume !== false) { this.pos += match[0].length; }\n return match\n }\n };\n StringStream.prototype.current = function (){return this.string.slice(this.start, this.pos)};\n StringStream.prototype.hideFirstChars = function (n, inner) {\n this.lineStart += n;\n try { return inner() }\n finally { this.lineStart -= n; }\n };\n StringStream.prototype.lookAhead = function (n) {\n var oracle = this.lineOracle;\n return oracle && oracle.lookAhead(n)\n };\n StringStream.prototype.baseToken = function () {\n var oracle = this.lineOracle;\n return oracle && oracle.baseToken(this.pos)\n };\n\n // Find the line object corresponding to the given line number.\n function getLine(doc, n) {\n n -= doc.first;\n if (n < 0 || n >= doc.size) { throw new Error(\"There is no line \" + (n + doc.first) + \" in the document.\") }\n var chunk = doc;\n while (!chunk.lines) {\n for (var i = 0;; ++i) {\n var child = chunk.children[i], sz = child.chunkSize();\n if (n < sz) { chunk = child; break }\n n -= sz;\n }\n }\n return chunk.lines[n]\n }\n\n // Get the part of a document between two positions, as an array of\n // strings.\n function getBetween(doc, start, end) {\n var out = [], n = start.line;\n doc.iter(start.line, end.line + 1, function (line) {\n var text = line.text;\n if (n == end.line) { text = text.slice(0, end.ch); }\n if (n == start.line) { text = text.slice(start.ch); }\n out.push(text);\n ++n;\n });\n return out\n }\n // Get the lines between from and to, as array of strings.\n function getLines(doc, from, to) {\n var out = [];\n doc.iter(from, to, function (line) { out.push(line.text); }); // iter aborts when callback returns truthy value\n return out\n }\n\n // Update the height of a line, propagating the height change\n // upwards to parent nodes.\n function updateLineHeight(line, height) {\n var diff = height - line.height;\n if (diff) { for (var n = line; n; n = n.parent) { n.height += diff; } }\n }\n\n // Given a line object, find its line number by walking up through\n // its parent links.\n function lineNo(line) {\n if (line.parent == null) { return null }\n var cur = line.parent, no = indexOf(cur.lines, line);\n for (var chunk = cur.parent; chunk; cur = chunk, chunk = chunk.parent) {\n for (var i = 0;; ++i) {\n if (chunk.children[i] == cur) { break }\n no += chunk.children[i].chunkSize();\n }\n }\n return no + cur.first\n }\n\n // Find the line at the given vertical position, using the height\n // information in the document tree.\n function lineAtHeight(chunk, h) {\n var n = chunk.first;\n outer: do {\n for (var i$1 = 0; i$1 < chunk.children.length; ++i$1) {\n var child = chunk.children[i$1], ch = child.height;\n if (h < ch) { chunk = child; continue outer }\n h -= ch;\n n += child.chunkSize();\n }\n return n\n } while (!chunk.lines)\n var i = 0;\n for (; i < chunk.lines.length; ++i) {\n var line = chunk.lines[i], lh = line.height;\n if (h < lh) { break }\n h -= lh;\n }\n return n + i\n }\n\n function isLine(doc, l) {return l >= doc.first && l < doc.first + doc.size}\n\n function lineNumberFor(options, i) {\n return String(options.lineNumberFormatter(i + options.firstLineNumber))\n }\n\n // A Pos instance represents a position within the text.\n function Pos(line, ch, sticky) {\n if ( sticky === void 0 ) sticky = null;\n\n if (!(this instanceof Pos)) { return new Pos(line, ch, sticky) }\n this.line = line;\n this.ch = ch;\n this.sticky = sticky;\n }\n\n // Compare two positions, return 0 if they are the same, a negative\n // number when a is less, and a positive number otherwise.\n function cmp(a, b) { return a.line - b.line || a.ch - b.ch }\n\n function equalCursorPos(a, b) { return a.sticky == b.sticky && cmp(a, b) == 0 }\n\n function copyPos(x) {return Pos(x.line, x.ch)}\n function maxPos(a, b) { return cmp(a, b) < 0 ? b : a }\n function minPos(a, b) { return cmp(a, b) < 0 ? a : b }\n\n // Most of the external API clips given positions to make sure they\n // actually exist within the document.\n function clipLine(doc, n) {return Math.max(doc.first, Math.min(n, doc.first + doc.size - 1))}\n function clipPos(doc, pos) {\n if (pos.line < doc.first) { return Pos(doc.first, 0) }\n var last = doc.first + doc.size - 1;\n if (pos.line > last) { return Pos(last, getLine(doc, last).text.length) }\n return clipToLen(pos, getLine(doc, pos.line).text.length)\n }\n function clipToLen(pos, linelen) {\n var ch = pos.ch;\n if (ch == null || ch > linelen) { return Pos(pos.line, linelen) }\n else if (ch < 0) { return Pos(pos.line, 0) }\n else { return pos }\n }\n function clipPosArray(doc, array) {\n var out = [];\n for (var i = 0; i < array.length; i++) { out[i] = clipPos(doc, array[i]); }\n return out\n }\n\n var SavedContext = function(state, lookAhead) {\n this.state = state;\n this.lookAhead = lookAhead;\n };\n\n var Context = function(doc, state, line, lookAhead) {\n this.state = state;\n this.doc = doc;\n this.line = line;\n this.maxLookAhead = lookAhead || 0;\n this.baseTokens = null;\n this.baseTokenPos = 1;\n };\n\n Context.prototype.lookAhead = function (n) {\n var line = this.doc.getLine(this.line + n);\n if (line != null && n > this.maxLookAhead) { this.maxLookAhead = n; }\n return line\n };\n\n Context.prototype.baseToken = function (n) {\n if (!this.baseTokens) { return null }\n while (this.baseTokens[this.baseTokenPos] <= n)\n { this.baseTokenPos += 2; }\n var type = this.baseTokens[this.baseTokenPos + 1];\n return {type: type && type.replace(/( |^)overlay .*/, \"\"),\n size: this.baseTokens[this.baseTokenPos] - n}\n };\n\n Context.prototype.nextLine = function () {\n this.line++;\n if (this.maxLookAhead > 0) { this.maxLookAhead--; }\n };\n\n Context.fromSaved = function (doc, saved, line) {\n if (saved instanceof SavedContext)\n { return new Context(doc, copyState(doc.mode, saved.state), line, saved.lookAhead) }\n else\n { return new Context(doc, copyState(doc.mode, saved), line) }\n };\n\n Context.prototype.save = function (copy) {\n var state = copy !== false ? copyState(this.doc.mode, this.state) : this.state;\n return this.maxLookAhead > 0 ? new SavedContext(state, this.maxLookAhead) : state\n };\n\n\n // Compute a style array (an array starting with a mode generation\n // -- for invalidation -- followed by pairs of end positions and\n // style strings), which is used to highlight the tokens on the\n // line.\n function highlightLine(cm, line, context, forceToEnd) {\n // A styles array always starts with a number identifying the\n // mode/overlays that it is based on (for easy invalidation).\n var st = [cm.state.modeGen], lineClasses = {};\n // Compute the base array of styles\n runMode(cm, line.text, cm.doc.mode, context, function (end, style) { return st.push(end, style); },\n lineClasses, forceToEnd);\n var state = context.state;\n\n // Run overlays, adjust style array.\n var loop = function ( o ) {\n context.baseTokens = st;\n var overlay = cm.state.overlays[o], i = 1, at = 0;\n context.state = true;\n runMode(cm, line.text, overlay.mode, context, function (end, style) {\n var start = i;\n // Ensure there's a token end at the current position, and that i points at it\n while (at < end) {\n var i_end = st[i];\n if (i_end > end)\n { st.splice(i, 1, end, st[i+1], i_end); }\n i += 2;\n at = Math.min(end, i_end);\n }\n if (!style) { return }\n if (overlay.opaque) {\n st.splice(start, i - start, end, \"overlay \" + style);\n i = start + 2;\n } else {\n for (; start < i; start += 2) {\n var cur = st[start+1];\n st[start+1] = (cur ? cur + \" \" : \"\") + \"overlay \" + style;\n }\n }\n }, lineClasses);\n context.state = state;\n context.baseTokens = null;\n context.baseTokenPos = 1;\n };\n\n for (var o = 0; o < cm.state.overlays.length; ++o) loop( o );\n\n return {styles: st, classes: lineClasses.bgClass || lineClasses.textClass ? lineClasses : null}\n }\n\n function getLineStyles(cm, line, updateFrontier) {\n if (!line.styles || line.styles[0] != cm.state.modeGen) {\n var context = getContextBefore(cm, lineNo(line));\n var resetState = line.text.length > cm.options.maxHighlightLength && copyState(cm.doc.mode, context.state);\n var result = highlightLine(cm, line, context);\n if (resetState) { context.state = resetState; }\n line.stateAfter = context.save(!resetState);\n line.styles = result.styles;\n if (result.classes) { line.styleClasses = result.classes; }\n else if (line.styleClasses) { line.styleClasses = null; }\n if (updateFrontier === cm.doc.highlightFrontier)\n { cm.doc.modeFrontier = Math.max(cm.doc.modeFrontier, ++cm.doc.highlightFrontier); }\n }\n return line.styles\n }\n\n function getContextBefore(cm, n, precise) {\n var doc = cm.doc, display = cm.display;\n if (!doc.mode.startState) { return new Context(doc, true, n) }\n var start = findStartLine(cm, n, precise);\n var saved = start > doc.first && getLine(doc, start - 1).stateAfter;\n var context = saved ? Context.fromSaved(doc, saved, start) : new Context(doc, startState(doc.mode), start);\n\n doc.iter(start, n, function (line) {\n processLine(cm, line.text, context);\n var pos = context.line;\n line.stateAfter = pos == n - 1 || pos % 5 == 0 || pos >= display.viewFrom && pos < display.viewTo ? context.save() : null;\n context.nextLine();\n });\n if (precise) { doc.modeFrontier = context.line; }\n return context\n }\n\n // Lightweight form of highlight -- proceed over this line and\n // update state, but don't save a style array. Used for lines that\n // aren't currently visible.\n function processLine(cm, text, context, startAt) {\n var mode = cm.doc.mode;\n var stream = new StringStream(text, cm.options.tabSize, context);\n stream.start = stream.pos = startAt || 0;\n if (text == \"\") { callBlankLine(mode, context.state); }\n while (!stream.eol()) {\n readToken(mode, stream, context.state);\n stream.start = stream.pos;\n }\n }\n\n function callBlankLine(mode, state) {\n if (mode.blankLine) { return mode.blankLine(state) }\n if (!mode.innerMode) { return }\n var inner = innerMode(mode, state);\n if (inner.mode.blankLine) { return inner.mode.blankLine(inner.state) }\n }\n\n function readToken(mode, stream, state, inner) {\n for (var i = 0; i < 10; i++) {\n if (inner) { inner[0] = innerMode(mode, state).mode; }\n var style = mode.token(stream, state);\n if (stream.pos > stream.start) { return style }\n }\n throw new Error(\"Mode \" + mode.name + \" failed to advance stream.\")\n }\n\n var Token = function(stream, type, state) {\n this.start = stream.start; this.end = stream.pos;\n this.string = stream.current();\n this.type = type || null;\n this.state = state;\n };\n\n // Utility for getTokenAt and getLineTokens\n function takeToken(cm, pos, precise, asArray) {\n var doc = cm.doc, mode = doc.mode, style;\n pos = clipPos(doc, pos);\n var line = getLine(doc, pos.line), context = getContextBefore(cm, pos.line, precise);\n var stream = new StringStream(line.text, cm.options.tabSize, context), tokens;\n if (asArray) { tokens = []; }\n while ((asArray || stream.pos < pos.ch) && !stream.eol()) {\n stream.start = stream.pos;\n style = readToken(mode, stream, context.state);\n if (asArray) { tokens.push(new Token(stream, style, copyState(doc.mode, context.state))); }\n }\n return asArray ? tokens : new Token(stream, style, context.state)\n }\n\n function extractLineClasses(type, output) {\n if (type) { for (;;) {\n var lineClass = type.match(/(?:^|\\s+)line-(background-)?(\\S+)/);\n if (!lineClass) { break }\n type = type.slice(0, lineClass.index) + type.slice(lineClass.index + lineClass[0].length);\n var prop = lineClass[1] ? \"bgClass\" : \"textClass\";\n if (output[prop] == null)\n { output[prop] = lineClass[2]; }\n else if (!(new RegExp(\"(?:^|\\\\s)\" + lineClass[2] + \"(?:$|\\\\s)\")).test(output[prop]))\n { output[prop] += \" \" + lineClass[2]; }\n } }\n return type\n }\n\n // Run the given mode's parser over a line, calling f for each token.\n function runMode(cm, text, mode, context, f, lineClasses, forceToEnd) {\n var flattenSpans = mode.flattenSpans;\n if (flattenSpans == null) { flattenSpans = cm.options.flattenSpans; }\n var curStart = 0, curStyle = null;\n var stream = new StringStream(text, cm.options.tabSize, context), style;\n var inner = cm.options.addModeClass && [null];\n if (text == \"\") { extractLineClasses(callBlankLine(mode, context.state), lineClasses); }\n while (!stream.eol()) {\n if (stream.pos > cm.options.maxHighlightLength) {\n flattenSpans = false;\n if (forceToEnd) { processLine(cm, text, context, stream.pos); }\n stream.pos = text.length;\n style = null;\n } else {\n style = extractLineClasses(readToken(mode, stream, context.state, inner), lineClasses);\n }\n if (inner) {\n var mName = inner[0].name;\n if (mName) { style = \"m-\" + (style ? mName + \" \" + style : mName); }\n }\n if (!flattenSpans || curStyle != style) {\n while (curStart < stream.start) {\n curStart = Math.min(stream.start, curStart + 5000);\n f(curStart, curStyle);\n }\n curStyle = style;\n }\n stream.start = stream.pos;\n }\n while (curStart < stream.pos) {\n // Webkit seems to refuse to render text nodes longer than 57444\n // characters, and returns inaccurate measurements in nodes\n // starting around 5000 chars.\n var pos = Math.min(stream.pos, curStart + 5000);\n f(pos, curStyle);\n curStart = pos;\n }\n }\n\n // Finds the line to start with when starting a parse. Tries to\n // find a line with a stateAfter, so that it can start with a\n // valid state. If that fails, it returns the line with the\n // smallest indentation, which tends to need the least context to\n // parse correctly.\n function findStartLine(cm, n, precise) {\n var minindent, minline, doc = cm.doc;\n var lim = precise ? -1 : n - (cm.doc.mode.innerMode ? 1000 : 100);\n for (var search = n; search > lim; --search) {\n if (search <= doc.first) { return doc.first }\n var line = getLine(doc, search - 1), after = line.stateAfter;\n if (after && (!precise || search + (after instanceof SavedContext ? after.lookAhead : 0) <= doc.modeFrontier))\n { return search }\n var indented = countColumn(line.text, null, cm.options.tabSize);\n if (minline == null || minindent > indented) {\n minline = search - 1;\n minindent = indented;\n }\n }\n return minline\n }\n\n function retreatFrontier(doc, n) {\n doc.modeFrontier = Math.min(doc.modeFrontier, n);\n if (doc.highlightFrontier < n - 10) { return }\n var start = doc.first;\n for (var line = n - 1; line > start; line--) {\n var saved = getLine(doc, line).stateAfter;\n // change is on 3\n // state on line 1 looked ahead 2 -- so saw 3\n // test 1 + 2 < 3 should cover this\n if (saved && (!(saved instanceof SavedContext) || line + saved.lookAhead < n)) {\n start = line + 1;\n break\n }\n }\n doc.highlightFrontier = Math.min(doc.highlightFrontier, start);\n }\n\n // Optimize some code when these features are not used.\n var sawReadOnlySpans = false, sawCollapsedSpans = false;\n\n function seeReadOnlySpans() {\n sawReadOnlySpans = true;\n }\n\n function seeCollapsedSpans() {\n sawCollapsedSpans = true;\n }\n\n // TEXTMARKER SPANS\n\n function MarkedSpan(marker, from, to) {\n this.marker = marker;\n this.from = from; this.to = to;\n }\n\n // Search an array of spans for a span matching the given marker.\n function getMarkedSpanFor(spans, marker) {\n if (spans) { for (var i = 0; i < spans.length; ++i) {\n var span = spans[i];\n if (span.marker == marker) { return span }\n } }\n }\n\n // Remove a span from an array, returning undefined if no spans are\n // left (we don't store arrays for lines without spans).\n function removeMarkedSpan(spans, span) {\n var r;\n for (var i = 0; i < spans.length; ++i)\n { if (spans[i] != span) { (r || (r = [])).push(spans[i]); } }\n return r\n }\n\n // Add a span to a line.\n function addMarkedSpan(line, span, op) {\n var inThisOp = op && window.WeakSet && (op.markedSpans || (op.markedSpans = new WeakSet));\n if (inThisOp && line.markedSpans && inThisOp.has(line.markedSpans)) {\n line.markedSpans.push(span);\n } else {\n line.markedSpans = line.markedSpans ? line.markedSpans.concat([span]) : [span];\n if (inThisOp) { inThisOp.add(line.markedSpans); }\n }\n span.marker.attachLine(line);\n }\n\n // Used for the algorithm that adjusts markers for a change in the\n // document. These functions cut an array of spans at a given\n // character position, returning an array of remaining chunks (or\n // undefined if nothing remains).\n function markedSpansBefore(old, startCh, isInsert) {\n var nw;\n if (old) { for (var i = 0; i < old.length; ++i) {\n var span = old[i], marker = span.marker;\n var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= startCh : span.from < startCh);\n if (startsBefore || span.from == startCh && marker.type == \"bookmark\" && (!isInsert || !span.marker.insertLeft)) {\n var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= startCh : span.to > startCh)\n ;(nw || (nw = [])).push(new MarkedSpan(marker, span.from, endsAfter ? null : span.to));\n }\n } }\n return nw\n }\n function markedSpansAfter(old, endCh, isInsert) {\n var nw;\n if (old) { for (var i = 0; i < old.length; ++i) {\n var span = old[i], marker = span.marker;\n var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= endCh : span.to > endCh);\n if (endsAfter || span.from == endCh && marker.type == \"bookmark\" && (!isInsert || span.marker.insertLeft)) {\n var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= endCh : span.from < endCh)\n ;(nw || (nw = [])).push(new MarkedSpan(marker, startsBefore ? null : span.from - endCh,\n span.to == null ? null : span.to - endCh));\n }\n } }\n return nw\n }\n\n // Given a change object, compute the new set of marker spans that\n // cover the line in which the change took place. Removes spans\n // entirely within the change, reconnects spans belonging to the\n // same marker that appear on both sides of the change, and cuts off\n // spans partially within the change. Returns an array of span\n // arrays with one element for each line in (after) the change.\n function stretchSpansOverChange(doc, change) {\n if (change.full) { return null }\n var oldFirst = isLine(doc, change.from.line) && getLine(doc, change.from.line).markedSpans;\n var oldLast = isLine(doc, change.to.line) && getLine(doc, change.to.line).markedSpans;\n if (!oldFirst && !oldLast) { return null }\n\n var startCh = change.from.ch, endCh = change.to.ch, isInsert = cmp(change.from, change.to) == 0;\n // Get the spans that 'stick out' on both sides\n var first = markedSpansBefore(oldFirst, startCh, isInsert);\n var last = markedSpansAfter(oldLast, endCh, isInsert);\n\n // Next, merge those two ends\n var sameLine = change.text.length == 1, offset = lst(change.text).length + (sameLine ? startCh : 0);\n if (first) {\n // Fix up .to properties of first\n for (var i = 0; i < first.length; ++i) {\n var span = first[i];\n if (span.to == null) {\n var found = getMarkedSpanFor(last, span.marker);\n if (!found) { span.to = startCh; }\n else if (sameLine) { span.to = found.to == null ? null : found.to + offset; }\n }\n }\n }\n if (last) {\n // Fix up .from in last (or move them into first in case of sameLine)\n for (var i$1 = 0; i$1 < last.length; ++i$1) {\n var span$1 = last[i$1];\n if (span$1.to != null) { span$1.to += offset; }\n if (span$1.from == null) {\n var found$1 = getMarkedSpanFor(first, span$1.marker);\n if (!found$1) {\n span$1.from = offset;\n if (sameLine) { (first || (first = [])).push(span$1); }\n }\n } else {\n span$1.from += offset;\n if (sameLine) { (first || (first = [])).push(span$1); }\n }\n }\n }\n // Make sure we didn't create any zero-length spans\n if (first) { first = clearEmptySpans(first); }\n if (last && last != first) { last = clearEmptySpans(last); }\n\n var newMarkers = [first];\n if (!sameLine) {\n // Fill gap with whole-line-spans\n var gap = change.text.length - 2, gapMarkers;\n if (gap > 0 && first)\n { for (var i$2 = 0; i$2 < first.length; ++i$2)\n { if (first[i$2].to == null)\n { (gapMarkers || (gapMarkers = [])).push(new MarkedSpan(first[i$2].marker, null, null)); } } }\n for (var i$3 = 0; i$3 < gap; ++i$3)\n { newMarkers.push(gapMarkers); }\n newMarkers.push(last);\n }\n return newMarkers\n }\n\n // Remove spans that are empty and don't have a clearWhenEmpty\n // option of false.\n function clearEmptySpans(spans) {\n for (var i = 0; i < spans.length; ++i) {\n var span = spans[i];\n if (span.from != null && span.from == span.to && span.marker.clearWhenEmpty !== false)\n { spans.splice(i--, 1); }\n }\n if (!spans.length) { return null }\n return spans\n }\n\n // Used to 'clip' out readOnly ranges when making a change.\n function removeReadOnlyRanges(doc, from, to) {\n var markers = null;\n doc.iter(from.line, to.line + 1, function (line) {\n if (line.markedSpans) { for (var i = 0; i < line.markedSpans.length; ++i) {\n var mark = line.markedSpans[i].marker;\n if (mark.readOnly && (!markers || indexOf(markers, mark) == -1))\n { (markers || (markers = [])).push(mark); }\n } }\n });\n if (!markers) { return null }\n var parts = [{from: from, to: to}];\n for (var i = 0; i < markers.length; ++i) {\n var mk = markers[i], m = mk.find(0);\n for (var j = 0; j < parts.length; ++j) {\n var p = parts[j];\n if (cmp(p.to, m.from) < 0 || cmp(p.from, m.to) > 0) { continue }\n var newParts = [j, 1], dfrom = cmp(p.from, m.from), dto = cmp(p.to, m.to);\n if (dfrom < 0 || !mk.inclusiveLeft && !dfrom)\n { newParts.push({from: p.from, to: m.from}); }\n if (dto > 0 || !mk.inclusiveRight && !dto)\n { newParts.push({from: m.to, to: p.to}); }\n parts.splice.apply(parts, newParts);\n j += newParts.length - 3;\n }\n }\n return parts\n }\n\n // Connect or disconnect spans from a line.\n function detachMarkedSpans(line) {\n var spans = line.markedSpans;\n if (!spans) { return }\n for (var i = 0; i < spans.length; ++i)\n { spans[i].marker.detachLine(line); }\n line.markedSpans = null;\n }\n function attachMarkedSpans(line, spans) {\n if (!spans) { return }\n for (var i = 0; i < spans.length; ++i)\n { spans[i].marker.attachLine(line); }\n line.markedSpans = spans;\n }\n\n // Helpers used when computing which overlapping collapsed span\n // counts as the larger one.\n function extraLeft(marker) { return marker.inclusiveLeft ? -1 : 0 }\n function extraRight(marker) { return marker.inclusiveRight ? 1 : 0 }\n\n // Returns a number indicating which of two overlapping collapsed\n // spans is larger (and thus includes the other). Falls back to\n // comparing ids when the spans cover exactly the same range.\n function compareCollapsedMarkers(a, b) {\n var lenDiff = a.lines.length - b.lines.length;\n if (lenDiff != 0) { return lenDiff }\n var aPos = a.find(), bPos = b.find();\n var fromCmp = cmp(aPos.from, bPos.from) || extraLeft(a) - extraLeft(b);\n if (fromCmp) { return -fromCmp }\n var toCmp = cmp(aPos.to, bPos.to) || extraRight(a) - extraRight(b);\n if (toCmp) { return toCmp }\n return b.id - a.id\n }\n\n // Find out whether a line ends or starts in a collapsed span. If\n // so, return the marker for that span.\n function collapsedSpanAtSide(line, start) {\n var sps = sawCollapsedSpans && line.markedSpans, found;\n if (sps) { for (var sp = (void 0), i = 0; i < sps.length; ++i) {\n sp = sps[i];\n if (sp.marker.collapsed && (start ? sp.from : sp.to) == null &&\n (!found || compareCollapsedMarkers(found, sp.marker) < 0))\n { found = sp.marker; }\n } }\n return found\n }\n function collapsedSpanAtStart(line) { return collapsedSpanAtSide(line, true) }\n function collapsedSpanAtEnd(line) { return collapsedSpanAtSide(line, false) }\n\n function collapsedSpanAround(line, ch) {\n var sps = sawCollapsedSpans && line.markedSpans, found;\n if (sps) { for (var i = 0; i < sps.length; ++i) {\n var sp = sps[i];\n if (sp.marker.collapsed && (sp.from == null || sp.from < ch) && (sp.to == null || sp.to > ch) &&\n (!found || compareCollapsedMarkers(found, sp.marker) < 0)) { found = sp.marker; }\n } }\n return found\n }\n\n // Test whether there exists a collapsed span that partially\n // overlaps (covers the start or end, but not both) of a new span.\n // Such overlap is not allowed.\n function conflictingCollapsedRange(doc, lineNo, from, to, marker) {\n var line = getLine(doc, lineNo);\n var sps = sawCollapsedSpans && line.markedSpans;\n if (sps) { for (var i = 0; i < sps.length; ++i) {\n var sp = sps[i];\n if (!sp.marker.collapsed) { continue }\n var found = sp.marker.find(0);\n var fromCmp = cmp(found.from, from) || extraLeft(sp.marker) - extraLeft(marker);\n var toCmp = cmp(found.to, to) || extraRight(sp.marker) - extraRight(marker);\n if (fromCmp >= 0 && toCmp <= 0 || fromCmp <= 0 && toCmp >= 0) { continue }\n if (fromCmp <= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.to, from) >= 0 : cmp(found.to, from) > 0) ||\n fromCmp >= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.from, to) <= 0 : cmp(found.from, to) < 0))\n { return true }\n } }\n }\n\n // A visual line is a line as drawn on the screen. Folding, for\n // example, can cause multiple logical lines to appear on the same\n // visual line. This finds the start of the visual line that the\n // given line is part of (usually that is the line itself).\n function visualLine(line) {\n var merged;\n while (merged = collapsedSpanAtStart(line))\n { line = merged.find(-1, true).line; }\n return line\n }\n\n function visualLineEnd(line) {\n var merged;\n while (merged = collapsedSpanAtEnd(line))\n { line = merged.find(1, true).line; }\n return line\n }\n\n // Returns an array of logical lines that continue the visual line\n // started by the argument, or undefined if there are no such lines.\n function visualLineContinued(line) {\n var merged, lines;\n while (merged = collapsedSpanAtEnd(line)) {\n line = merged.find(1, true).line\n ;(lines || (lines = [])).push(line);\n }\n return lines\n }\n\n // Get the line number of the start of the visual line that the\n // given line number is part of.\n function visualLineNo(doc, lineN) {\n var line = getLine(doc, lineN), vis = visualLine(line);\n if (line == vis) { return lineN }\n return lineNo(vis)\n }\n\n // Get the line number of the start of the next visual line after\n // the given line.\n function visualLineEndNo(doc, lineN) {\n if (lineN > doc.lastLine()) { return lineN }\n var line = getLine(doc, lineN), merged;\n if (!lineIsHidden(doc, line)) { return lineN }\n while (merged = collapsedSpanAtEnd(line))\n { line = merged.find(1, true).line; }\n return lineNo(line) + 1\n }\n\n // Compute whether a line is hidden. Lines count as hidden when they\n // are part of a visual line that starts with another line, or when\n // they are entirely covered by collapsed, non-widget span.\n function lineIsHidden(doc, line) {\n var sps = sawCollapsedSpans && line.markedSpans;\n if (sps) { for (var sp = (void 0), i = 0; i < sps.length; ++i) {\n sp = sps[i];\n if (!sp.marker.collapsed) { continue }\n if (sp.from == null) { return true }\n if (sp.marker.widgetNode) { continue }\n if (sp.from == 0 && sp.marker.inclusiveLeft && lineIsHiddenInner(doc, line, sp))\n { return true }\n } }\n }\n function lineIsHiddenInner(doc, line, span) {\n if (span.to == null) {\n var end = span.marker.find(1, true);\n return lineIsHiddenInner(doc, end.line, getMarkedSpanFor(end.line.markedSpans, span.marker))\n }\n if (span.marker.inclusiveRight && span.to == line.text.length)\n { return true }\n for (var sp = (void 0), i = 0; i < line.markedSpans.length; ++i) {\n sp = line.markedSpans[i];\n if (sp.marker.collapsed && !sp.marker.widgetNode && sp.from == span.to &&\n (sp.to == null || sp.to != span.from) &&\n (sp.marker.inclusiveLeft || span.marker.inclusiveRight) &&\n lineIsHiddenInner(doc, line, sp)) { return true }\n }\n }\n\n // Find the height above the given line.\n function heightAtLine(lineObj) {\n lineObj = visualLine(lineObj);\n\n var h = 0, chunk = lineObj.parent;\n for (var i = 0; i < chunk.lines.length; ++i) {\n var line = chunk.lines[i];\n if (line == lineObj) { break }\n else { h += line.height; }\n }\n for (var p = chunk.parent; p; chunk = p, p = chunk.parent) {\n for (var i$1 = 0; i$1 < p.children.length; ++i$1) {\n var cur = p.children[i$1];\n if (cur == chunk) { break }\n else { h += cur.height; }\n }\n }\n return h\n }\n\n // Compute the character length of a line, taking into account\n // collapsed ranges (see markText) that might hide parts, and join\n // other lines onto it.\n function lineLength(line) {\n if (line.height == 0) { return 0 }\n var len = line.text.length, merged, cur = line;\n while (merged = collapsedSpanAtStart(cur)) {\n var found = merged.find(0, true);\n cur = found.from.line;\n len += found.from.ch - found.to.ch;\n }\n cur = line;\n while (merged = collapsedSpanAtEnd(cur)) {\n var found$1 = merged.find(0, true);\n len -= cur.text.length - found$1.from.ch;\n cur = found$1.to.line;\n len += cur.text.length - found$1.to.ch;\n }\n return len\n }\n\n // Find the longest line in the document.\n function findMaxLine(cm) {\n var d = cm.display, doc = cm.doc;\n d.maxLine = getLine(doc, doc.first);\n d.maxLineLength = lineLength(d.maxLine);\n d.maxLineChanged = true;\n doc.iter(function (line) {\n var len = lineLength(line);\n if (len > d.maxLineLength) {\n d.maxLineLength = len;\n d.maxLine = line;\n }\n });\n }\n\n // LINE DATA STRUCTURE\n\n // Line objects. These hold state related to a line, including\n // highlighting info (the styles array).\n var Line = function(text, markedSpans, estimateHeight) {\n this.text = text;\n attachMarkedSpans(this, markedSpans);\n this.height = estimateHeight ? estimateHeight(this) : 1;\n };\n\n Line.prototype.lineNo = function () { return lineNo(this) };\n eventMixin(Line);\n\n // Change the content (text, markers) of a line. Automatically\n // invalidates cached information and tries to re-estimate the\n // line's height.\n function updateLine(line, text, markedSpans, estimateHeight) {\n line.text = text;\n if (line.stateAfter) { line.stateAfter = null; }\n if (line.styles) { line.styles = null; }\n if (line.order != null) { line.order = null; }\n detachMarkedSpans(line);\n attachMarkedSpans(line, markedSpans);\n var estHeight = estimateHeight ? estimateHeight(line) : 1;\n if (estHeight != line.height) { updateLineHeight(line, estHeight); }\n }\n\n // Detach a line from the document tree and its markers.\n function cleanUpLine(line) {\n line.parent = null;\n detachMarkedSpans(line);\n }\n\n // Convert a style as returned by a mode (either null, or a string\n // containing one or more styles) to a CSS style. This is cached,\n // and also looks for line-wide styles.\n var styleToClassCache = {}, styleToClassCacheWithMode = {};\n function interpretTokenStyle(style, options) {\n if (!style || /^\\s*$/.test(style)) { return null }\n var cache = options.addModeClass ? styleToClassCacheWithMode : styleToClassCache;\n return cache[style] ||\n (cache[style] = style.replace(/\\S+/g, \"cm-$&\"))\n }\n\n // Render the DOM representation of the text of a line. Also builds\n // up a 'line map', which points at the DOM nodes that represent\n // specific stretches of text, and is used by the measuring code.\n // The returned object contains the DOM node, this map, and\n // information about line-wide styles that were set by the mode.\n function buildLineContent(cm, lineView) {\n // The padding-right forces the element to have a 'border', which\n // is needed on Webkit to be able to get line-level bounding\n // rectangles for it (in measureChar).\n var content = eltP(\"span\", null, null, webkit ? \"padding-right: .1px\" : null);\n var builder = {pre: eltP(\"pre\", [content], \"CodeMirror-line\"), content: content,\n col: 0, pos: 0, cm: cm,\n trailingSpace: false,\n splitSpaces: cm.getOption(\"lineWrapping\")};\n lineView.measure = {};\n\n // Iterate over the logical lines that make up this visual line.\n for (var i = 0; i <= (lineView.rest ? lineView.rest.length : 0); i++) {\n var line = i ? lineView.rest[i - 1] : lineView.line, order = (void 0);\n builder.pos = 0;\n builder.addToken = buildToken;\n // Optionally wire in some hacks into the token-rendering\n // algorithm, to deal with browser quirks.\n if (hasBadBidiRects(cm.display.measure) && (order = getOrder(line, cm.doc.direction)))\n { builder.addToken = buildTokenBadBidi(builder.addToken, order); }\n builder.map = [];\n var allowFrontierUpdate = lineView != cm.display.externalMeasured && lineNo(line);\n insertLineContent(line, builder, getLineStyles(cm, line, allowFrontierUpdate));\n if (line.styleClasses) {\n if (line.styleClasses.bgClass)\n { builder.bgClass = joinClasses(line.styleClasses.bgClass, builder.bgClass || \"\"); }\n if (line.styleClasses.textClass)\n { builder.textClass = joinClasses(line.styleClasses.textClass, builder.textClass || \"\"); }\n }\n\n // Ensure at least a single node is present, for measuring.\n if (builder.map.length == 0)\n { builder.map.push(0, 0, builder.content.appendChild(zeroWidthElement(cm.display.measure))); }\n\n // Store the map and a cache object for the current logical line\n if (i == 0) {\n lineView.measure.map = builder.map;\n lineView.measure.cache = {};\n } else {\n (lineView.measure.maps || (lineView.measure.maps = [])).push(builder.map)\n ;(lineView.measure.caches || (lineView.measure.caches = [])).push({});\n }\n }\n\n // See issue #2901\n if (webkit) {\n var last = builder.content.lastChild;\n if (/\\bcm-tab\\b/.test(last.className) || (last.querySelector && last.querySelector(\".cm-tab\")))\n { builder.content.className = \"cm-tab-wrap-hack\"; }\n }\n\n signal(cm, \"renderLine\", cm, lineView.line, builder.pre);\n if (builder.pre.className)\n { builder.textClass = joinClasses(builder.pre.className, builder.textClass || \"\"); }\n\n return builder\n }\n\n function defaultSpecialCharPlaceholder(ch) {\n var token = elt(\"span\", \"\\u2022\", \"cm-invalidchar\");\n token.title = \"\\\\u\" + ch.charCodeAt(0).toString(16);\n token.setAttribute(\"aria-label\", token.title);\n return token\n }\n\n // Build up the DOM representation for a single token, and add it to\n // the line map. Takes care to render special characters separately.\n function buildToken(builder, text, style, startStyle, endStyle, css, attributes) {\n if (!text) { return }\n var displayText = builder.splitSpaces ? splitSpaces(text, builder.trailingSpace) : text;\n var special = builder.cm.state.specialChars, mustWrap = false;\n var content;\n if (!special.test(text)) {\n builder.col += text.length;\n content = document.createTextNode(displayText);\n builder.map.push(builder.pos, builder.pos + text.length, content);\n if (ie && ie_version < 9) { mustWrap = true; }\n builder.pos += text.length;\n } else {\n content = document.createDocumentFragment();\n var pos = 0;\n while (true) {\n special.lastIndex = pos;\n var m = special.exec(text);\n var skipped = m ? m.index - pos : text.length - pos;\n if (skipped) {\n var txt = document.createTextNode(displayText.slice(pos, pos + skipped));\n if (ie && ie_version < 9) { content.appendChild(elt(\"span\", [txt])); }\n else { content.appendChild(txt); }\n builder.map.push(builder.pos, builder.pos + skipped, txt);\n builder.col += skipped;\n builder.pos += skipped;\n }\n if (!m) { break }\n pos += skipped + 1;\n var txt$1 = (void 0);\n if (m[0] == \"\\t\") {\n var tabSize = builder.cm.options.tabSize, tabWidth = tabSize - builder.col % tabSize;\n txt$1 = content.appendChild(elt(\"span\", spaceStr(tabWidth), \"cm-tab\"));\n txt$1.setAttribute(\"role\", \"presentation\");\n txt$1.setAttribute(\"cm-text\", \"\\t\");\n builder.col += tabWidth;\n } else if (m[0] == \"\\r\" || m[0] == \"\\n\") {\n txt$1 = content.appendChild(elt(\"span\", m[0] == \"\\r\" ? \"\\u240d\" : \"\\u2424\", \"cm-invalidchar\"));\n txt$1.setAttribute(\"cm-text\", m[0]);\n builder.col += 1;\n } else {\n txt$1 = builder.cm.options.specialCharPlaceholder(m[0]);\n txt$1.setAttribute(\"cm-text\", m[0]);\n if (ie && ie_version < 9) { content.appendChild(elt(\"span\", [txt$1])); }\n else { content.appendChild(txt$1); }\n builder.col += 1;\n }\n builder.map.push(builder.pos, builder.pos + 1, txt$1);\n builder.pos++;\n }\n }\n builder.trailingSpace = displayText.charCodeAt(text.length - 1) == 32;\n if (style || startStyle || endStyle || mustWrap || css || attributes) {\n var fullStyle = style || \"\";\n if (startStyle) { fullStyle += startStyle; }\n if (endStyle) { fullStyle += endStyle; }\n var token = elt(\"span\", [content], fullStyle, css);\n if (attributes) {\n for (var attr in attributes) { if (attributes.hasOwnProperty(attr) && attr != \"style\" && attr != \"class\")\n { token.setAttribute(attr, attributes[attr]); } }\n }\n return builder.content.appendChild(token)\n }\n builder.content.appendChild(content);\n }\n\n // Change some spaces to NBSP to prevent the browser from collapsing\n // trailing spaces at the end of a line when rendering text (issue #1362).\n function splitSpaces(text, trailingBefore) {\n if (text.length > 1 && !/ /.test(text)) { return text }\n var spaceBefore = trailingBefore, result = \"\";\n for (var i = 0; i < text.length; i++) {\n var ch = text.charAt(i);\n if (ch == \" \" && spaceBefore && (i == text.length - 1 || text.charCodeAt(i + 1) == 32))\n { ch = \"\\u00a0\"; }\n result += ch;\n spaceBefore = ch == \" \";\n }\n return result\n }\n\n // Work around nonsense dimensions being reported for stretches of\n // right-to-left text.\n function buildTokenBadBidi(inner, order) {\n return function (builder, text, style, startStyle, endStyle, css, attributes) {\n style = style ? style + \" cm-force-border\" : \"cm-force-border\";\n var start = builder.pos, end = start + text.length;\n for (;;) {\n // Find the part that overlaps with the start of this text\n var part = (void 0);\n for (var i = 0; i < order.length; i++) {\n part = order[i];\n if (part.to > start && part.from <= start) { break }\n }\n if (part.to >= end) { return inner(builder, text, style, startStyle, endStyle, css, attributes) }\n inner(builder, text.slice(0, part.to - start), style, startStyle, null, css, attributes);\n startStyle = null;\n text = text.slice(part.to - start);\n start = part.to;\n }\n }\n }\n\n function buildCollapsedSpan(builder, size, marker, ignoreWidget) {\n var widget = !ignoreWidget && marker.widgetNode;\n if (widget) { builder.map.push(builder.pos, builder.pos + size, widget); }\n if (!ignoreWidget && builder.cm.display.input.needsContentAttribute) {\n if (!widget)\n { widget = builder.content.appendChild(document.createElement(\"span\")); }\n widget.setAttribute(\"cm-marker\", marker.id);\n }\n if (widget) {\n builder.cm.display.input.setUneditable(widget);\n builder.content.appendChild(widget);\n }\n builder.pos += size;\n builder.trailingSpace = false;\n }\n\n // Outputs a number of spans to make up a line, taking highlighting\n // and marked text into account.\n function insertLineContent(line, builder, styles) {\n var spans = line.markedSpans, allText = line.text, at = 0;\n if (!spans) {\n for (var i$1 = 1; i$1 < styles.length; i$1+=2)\n { builder.addToken(builder, allText.slice(at, at = styles[i$1]), interpretTokenStyle(styles[i$1+1], builder.cm.options)); }\n return\n }\n\n var len = allText.length, pos = 0, i = 1, text = \"\", style, css;\n var nextChange = 0, spanStyle, spanEndStyle, spanStartStyle, collapsed, attributes;\n for (;;) {\n if (nextChange == pos) { // Update current marker set\n spanStyle = spanEndStyle = spanStartStyle = css = \"\";\n attributes = null;\n collapsed = null; nextChange = Infinity;\n var foundBookmarks = [], endStyles = (void 0);\n for (var j = 0; j < spans.length; ++j) {\n var sp = spans[j], m = sp.marker;\n if (m.type == \"bookmark\" && sp.from == pos && m.widgetNode) {\n foundBookmarks.push(m);\n } else if (sp.from <= pos && (sp.to == null || sp.to > pos || m.collapsed && sp.to == pos && sp.from == pos)) {\n if (sp.to != null && sp.to != pos && nextChange > sp.to) {\n nextChange = sp.to;\n spanEndStyle = \"\";\n }\n if (m.className) { spanStyle += \" \" + m.className; }\n if (m.css) { css = (css ? css + \";\" : \"\") + m.css; }\n if (m.startStyle && sp.from == pos) { spanStartStyle += \" \" + m.startStyle; }\n if (m.endStyle && sp.to == nextChange) { (endStyles || (endStyles = [])).push(m.endStyle, sp.to); }\n // support for the old title property\n // https://github.com/codemirror/CodeMirror/pull/5673\n if (m.title) { (attributes || (attributes = {})).title = m.title; }\n if (m.attributes) {\n for (var attr in m.attributes)\n { (attributes || (attributes = {}))[attr] = m.attributes[attr]; }\n }\n if (m.collapsed && (!collapsed || compareCollapsedMarkers(collapsed.marker, m) < 0))\n { collapsed = sp; }\n } else if (sp.from > pos && nextChange > sp.from) {\n nextChange = sp.from;\n }\n }\n if (endStyles) { for (var j$1 = 0; j$1 < endStyles.length; j$1 += 2)\n { if (endStyles[j$1 + 1] == nextChange) { spanEndStyle += \" \" + endStyles[j$1]; } } }\n\n if (!collapsed || collapsed.from == pos) { for (var j$2 = 0; j$2 < foundBookmarks.length; ++j$2)\n { buildCollapsedSpan(builder, 0, foundBookmarks[j$2]); } }\n if (collapsed && (collapsed.from || 0) == pos) {\n buildCollapsedSpan(builder, (collapsed.to == null ? len + 1 : collapsed.to) - pos,\n collapsed.marker, collapsed.from == null);\n if (collapsed.to == null) { return }\n if (collapsed.to == pos) { collapsed = false; }\n }\n }\n if (pos >= len) { break }\n\n var upto = Math.min(len, nextChange);\n while (true) {\n if (text) {\n var end = pos + text.length;\n if (!collapsed) {\n var tokenText = end > upto ? text.slice(0, upto - pos) : text;\n builder.addToken(builder, tokenText, style ? style + spanStyle : spanStyle,\n spanStartStyle, pos + tokenText.length == nextChange ? spanEndStyle : \"\", css, attributes);\n }\n if (end >= upto) {text = text.slice(upto - pos); pos = upto; break}\n pos = end;\n spanStartStyle = \"\";\n }\n text = allText.slice(at, at = styles[i++]);\n style = interpretTokenStyle(styles[i++], builder.cm.options);\n }\n }\n }\n\n\n // These objects are used to represent the visible (currently drawn)\n // part of the document. A LineView may correspond to multiple\n // logical lines, if those are connected by collapsed ranges.\n function LineView(doc, line, lineN) {\n // The starting line\n this.line = line;\n // Continuing lines, if any\n this.rest = visualLineContinued(line);\n // Number of logical lines in this visual line\n this.size = this.rest ? lineNo(lst(this.rest)) - lineN + 1 : 1;\n this.node = this.text = null;\n this.hidden = lineIsHidden(doc, line);\n }\n\n // Create a range of LineView objects for the given lines.\n function buildViewArray(cm, from, to) {\n var array = [], nextPos;\n for (var pos = from; pos < to; pos = nextPos) {\n var view = new LineView(cm.doc, getLine(cm.doc, pos), pos);\n nextPos = pos + view.size;\n array.push(view);\n }\n return array\n }\n\n var operationGroup = null;\n\n function pushOperation(op) {\n if (operationGroup) {\n operationGroup.ops.push(op);\n } else {\n op.ownsGroup = operationGroup = {\n ops: [op],\n delayedCallbacks: []\n };\n }\n }\n\n function fireCallbacksForOps(group) {\n // Calls delayed callbacks and cursorActivity handlers until no\n // new ones appear\n var callbacks = group.delayedCallbacks, i = 0;\n do {\n for (; i < callbacks.length; i++)\n { callbacks[i].call(null); }\n for (var j = 0; j < group.ops.length; j++) {\n var op = group.ops[j];\n if (op.cursorActivityHandlers)\n { while (op.cursorActivityCalled < op.cursorActivityHandlers.length)\n { op.cursorActivityHandlers[op.cursorActivityCalled++].call(null, op.cm); } }\n }\n } while (i < callbacks.length)\n }\n\n function finishOperation(op, endCb) {\n var group = op.ownsGroup;\n if (!group) { return }\n\n try { fireCallbacksForOps(group); }\n finally {\n operationGroup = null;\n endCb(group);\n }\n }\n\n var orphanDelayedCallbacks = null;\n\n // Often, we want to signal events at a point where we are in the\n // middle of some work, but don't want the handler to start calling\n // other methods on the editor, which might be in an inconsistent\n // state or simply not expect any other events to happen.\n // signalLater looks whether there are any handlers, and schedules\n // them to be executed when the last operation ends, or, if no\n // operation is active, when a timeout fires.\n function signalLater(emitter, type /*, values...*/) {\n var arr = getHandlers(emitter, type);\n if (!arr.length) { return }\n var args = Array.prototype.slice.call(arguments, 2), list;\n if (operationGroup) {\n list = operationGroup.delayedCallbacks;\n } else if (orphanDelayedCallbacks) {\n list = orphanDelayedCallbacks;\n } else {\n list = orphanDelayedCallbacks = [];\n setTimeout(fireOrphanDelayed, 0);\n }\n var loop = function ( i ) {\n list.push(function () { return arr[i].apply(null, args); });\n };\n\n for (var i = 0; i < arr.length; ++i)\n loop( i );\n }\n\n function fireOrphanDelayed() {\n var delayed = orphanDelayedCallbacks;\n orphanDelayedCallbacks = null;\n for (var i = 0; i < delayed.length; ++i) { delayed[i](); }\n }\n\n // When an aspect of a line changes, a string is added to\n // lineView.changes. This updates the relevant part of the line's\n // DOM structure.\n function updateLineForChanges(cm, lineView, lineN, dims) {\n for (var j = 0; j < lineView.changes.length; j++) {\n var type = lineView.changes[j];\n if (type == \"text\") { updateLineText(cm, lineView); }\n else if (type == \"gutter\") { updateLineGutter(cm, lineView, lineN, dims); }\n else if (type == \"class\") { updateLineClasses(cm, lineView); }\n else if (type == \"widget\") { updateLineWidgets(cm, lineView, dims); }\n }\n lineView.changes = null;\n }\n\n // Lines with gutter elements, widgets or a background class need to\n // be wrapped, and have the extra elements added to the wrapper div\n function ensureLineWrapped(lineView) {\n if (lineView.node == lineView.text) {\n lineView.node = elt(\"div\", null, null, \"position: relative\");\n if (lineView.text.parentNode)\n { lineView.text.parentNode.replaceChild(lineView.node, lineView.text); }\n lineView.node.appendChild(lineView.text);\n if (ie && ie_version < 8) { lineView.node.style.zIndex = 2; }\n }\n return lineView.node\n }\n\n function updateLineBackground(cm, lineView) {\n var cls = lineView.bgClass ? lineView.bgClass + \" \" + (lineView.line.bgClass || \"\") : lineView.line.bgClass;\n if (cls) { cls += \" CodeMirror-linebackground\"; }\n if (lineView.background) {\n if (cls) { lineView.background.className = cls; }\n else { lineView.background.parentNode.removeChild(lineView.background); lineView.background = null; }\n } else if (cls) {\n var wrap = ensureLineWrapped(lineView);\n lineView.background = wrap.insertBefore(elt(\"div\", null, cls), wrap.firstChild);\n cm.display.input.setUneditable(lineView.background);\n }\n }\n\n // Wrapper around buildLineContent which will reuse the structure\n // in display.externalMeasured when possible.\n function getLineContent(cm, lineView) {\n var ext = cm.display.externalMeasured;\n if (ext && ext.line == lineView.line) {\n cm.display.externalMeasured = null;\n lineView.measure = ext.measure;\n return ext.built\n }\n return buildLineContent(cm, lineView)\n }\n\n // Redraw the line's text. Interacts with the background and text\n // classes because the mode may output tokens that influence these\n // classes.\n function updateLineText(cm, lineView) {\n var cls = lineView.text.className;\n var built = getLineContent(cm, lineView);\n if (lineView.text == lineView.node) { lineView.node = built.pre; }\n lineView.text.parentNode.replaceChild(built.pre, lineView.text);\n lineView.text = built.pre;\n if (built.bgClass != lineView.bgClass || built.textClass != lineView.textClass) {\n lineView.bgClass = built.bgClass;\n lineView.textClass = built.textClass;\n updateLineClasses(cm, lineView);\n } else if (cls) {\n lineView.text.className = cls;\n }\n }\n\n function updateLineClasses(cm, lineView) {\n updateLineBackground(cm, lineView);\n if (lineView.line.wrapClass)\n { ensureLineWrapped(lineView).className = lineView.line.wrapClass; }\n else if (lineView.node != lineView.text)\n { lineView.node.className = \"\"; }\n var textClass = lineView.textClass ? lineView.textClass + \" \" + (lineView.line.textClass || \"\") : lineView.line.textClass;\n lineView.text.className = textClass || \"\";\n }\n\n function updateLineGutter(cm, lineView, lineN, dims) {\n if (lineView.gutter) {\n lineView.node.removeChild(lineView.gutter);\n lineView.gutter = null;\n }\n if (lineView.gutterBackground) {\n lineView.node.removeChild(lineView.gutterBackground);\n lineView.gutterBackground = null;\n }\n if (lineView.line.gutterClass) {\n var wrap = ensureLineWrapped(lineView);\n lineView.gutterBackground = elt(\"div\", null, \"CodeMirror-gutter-background \" + lineView.line.gutterClass,\n (\"left: \" + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + \"px; width: \" + (dims.gutterTotalWidth) + \"px\"));\n cm.display.input.setUneditable(lineView.gutterBackground);\n wrap.insertBefore(lineView.gutterBackground, lineView.text);\n }\n var markers = lineView.line.gutterMarkers;\n if (cm.options.lineNumbers || markers) {\n var wrap$1 = ensureLineWrapped(lineView);\n var gutterWrap = lineView.gutter = elt(\"div\", null, \"CodeMirror-gutter-wrapper\", (\"left: \" + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + \"px\"));\n gutterWrap.setAttribute(\"aria-hidden\", \"true\");\n cm.display.input.setUneditable(gutterWrap);\n wrap$1.insertBefore(gutterWrap, lineView.text);\n if (lineView.line.gutterClass)\n { gutterWrap.className += \" \" + lineView.line.gutterClass; }\n if (cm.options.lineNumbers && (!markers || !markers[\"CodeMirror-linenumbers\"]))\n { lineView.lineNumber = gutterWrap.appendChild(\n elt(\"div\", lineNumberFor(cm.options, lineN),\n \"CodeMirror-linenumber CodeMirror-gutter-elt\",\n (\"left: \" + (dims.gutterLeft[\"CodeMirror-linenumbers\"]) + \"px; width: \" + (cm.display.lineNumInnerWidth) + \"px\"))); }\n if (markers) { for (var k = 0; k < cm.display.gutterSpecs.length; ++k) {\n var id = cm.display.gutterSpecs[k].className, found = markers.hasOwnProperty(id) && markers[id];\n if (found)\n { gutterWrap.appendChild(elt(\"div\", [found], \"CodeMirror-gutter-elt\",\n (\"left: \" + (dims.gutterLeft[id]) + \"px; width: \" + (dims.gutterWidth[id]) + \"px\"))); }\n } }\n }\n }\n\n function updateLineWidgets(cm, lineView, dims) {\n if (lineView.alignable) { lineView.alignable = null; }\n var isWidget = classTest(\"CodeMirror-linewidget\");\n for (var node = lineView.node.firstChild, next = (void 0); node; node = next) {\n next = node.nextSibling;\n if (isWidget.test(node.className)) { lineView.node.removeChild(node); }\n }\n insertLineWidgets(cm, lineView, dims);\n }\n\n // Build a line's DOM representation from scratch\n function buildLineElement(cm, lineView, lineN, dims) {\n var built = getLineContent(cm, lineView);\n lineView.text = lineView.node = built.pre;\n if (built.bgClass) { lineView.bgClass = built.bgClass; }\n if (built.textClass) { lineView.textClass = built.textClass; }\n\n updateLineClasses(cm, lineView);\n updateLineGutter(cm, lineView, lineN, dims);\n insertLineWidgets(cm, lineView, dims);\n return lineView.node\n }\n\n // A lineView may contain multiple logical lines (when merged by\n // collapsed spans). The widgets for all of them need to be drawn.\n function insertLineWidgets(cm, lineView, dims) {\n insertLineWidgetsFor(cm, lineView.line, lineView, dims, true);\n if (lineView.rest) { for (var i = 0; i < lineView.rest.length; i++)\n { insertLineWidgetsFor(cm, lineView.rest[i], lineView, dims, false); } }\n }\n\n function insertLineWidgetsFor(cm, line, lineView, dims, allowAbove) {\n if (!line.widgets) { return }\n var wrap = ensureLineWrapped(lineView);\n for (var i = 0, ws = line.widgets; i < ws.length; ++i) {\n var widget = ws[i], node = elt(\"div\", [widget.node], \"CodeMirror-linewidget\" + (widget.className ? \" \" + widget.className : \"\"));\n if (!widget.handleMouseEvents) { node.setAttribute(\"cm-ignore-events\", \"true\"); }\n positionLineWidget(widget, node, lineView, dims);\n cm.display.input.setUneditable(node);\n if (allowAbove && widget.above)\n { wrap.insertBefore(node, lineView.gutter || lineView.text); }\n else\n { wrap.appendChild(node); }\n signalLater(widget, \"redraw\");\n }\n }\n\n function positionLineWidget(widget, node, lineView, dims) {\n if (widget.noHScroll) {\n (lineView.alignable || (lineView.alignable = [])).push(node);\n var width = dims.wrapperWidth;\n node.style.left = dims.fixedPos + \"px\";\n if (!widget.coverGutter) {\n width -= dims.gutterTotalWidth;\n node.style.paddingLeft = dims.gutterTotalWidth + \"px\";\n }\n node.style.width = width + \"px\";\n }\n if (widget.coverGutter) {\n node.style.zIndex = 5;\n node.style.position = \"relative\";\n if (!widget.noHScroll) { node.style.marginLeft = -dims.gutterTotalWidth + \"px\"; }\n }\n }\n\n function widgetHeight(widget) {\n if (widget.height != null) { return widget.height }\n var cm = widget.doc.cm;\n if (!cm) { return 0 }\n if (!contains(document.body, widget.node)) {\n var parentStyle = \"position: relative;\";\n if (widget.coverGutter)\n { parentStyle += \"margin-left: -\" + cm.display.gutters.offsetWidth + \"px;\"; }\n if (widget.noHScroll)\n { parentStyle += \"width: \" + cm.display.wrapper.clientWidth + \"px;\"; }\n removeChildrenAndAdd(cm.display.measure, elt(\"div\", [widget.node], null, parentStyle));\n }\n return widget.height = widget.node.parentNode.offsetHeight\n }\n\n // Return true when the given mouse event happened in a widget\n function eventInWidget(display, e) {\n for (var n = e_target(e); n != display.wrapper; n = n.parentNode) {\n if (!n || (n.nodeType == 1 && n.getAttribute(\"cm-ignore-events\") == \"true\") ||\n (n.parentNode == display.sizer && n != display.mover))\n { return true }\n }\n }\n\n // POSITION MEASUREMENT\n\n function paddingTop(display) {return display.lineSpace.offsetTop}\n function paddingVert(display) {return display.mover.offsetHeight - display.lineSpace.offsetHeight}\n function paddingH(display) {\n if (display.cachedPaddingH) { return display.cachedPaddingH }\n var e = removeChildrenAndAdd(display.measure, elt(\"pre\", \"x\", \"CodeMirror-line-like\"));\n var style = window.getComputedStyle ? window.getComputedStyle(e) : e.currentStyle;\n var data = {left: parseInt(style.paddingLeft), right: parseInt(style.paddingRight)};\n if (!isNaN(data.left) && !isNaN(data.right)) { display.cachedPaddingH = data; }\n return data\n }\n\n function scrollGap(cm) { return scrollerGap - cm.display.nativeBarWidth }\n function displayWidth(cm) {\n return cm.display.scroller.clientWidth - scrollGap(cm) - cm.display.barWidth\n }\n function displayHeight(cm) {\n return cm.display.scroller.clientHeight - scrollGap(cm) - cm.display.barHeight\n }\n\n // Ensure the lineView.wrapping.heights array is populated. This is\n // an array of bottom offsets for the lines that make up a drawn\n // line. When lineWrapping is on, there might be more than one\n // height.\n function ensureLineHeights(cm, lineView, rect) {\n var wrapping = cm.options.lineWrapping;\n var curWidth = wrapping && displayWidth(cm);\n if (!lineView.measure.heights || wrapping && lineView.measure.width != curWidth) {\n var heights = lineView.measure.heights = [];\n if (wrapping) {\n lineView.measure.width = curWidth;\n var rects = lineView.text.firstChild.getClientRects();\n for (var i = 0; i < rects.length - 1; i++) {\n var cur = rects[i], next = rects[i + 1];\n if (Math.abs(cur.bottom - next.bottom) > 2)\n { heights.push((cur.bottom + next.top) / 2 - rect.top); }\n }\n }\n heights.push(rect.bottom - rect.top);\n }\n }\n\n // Find a line map (mapping character offsets to text nodes) and a\n // measurement cache for the given line number. (A line view might\n // contain multiple lines when collapsed ranges are present.)\n function mapFromLineView(lineView, line, lineN) {\n if (lineView.line == line)\n { return {map: lineView.measure.map, cache: lineView.measure.cache} }\n if (lineView.rest) {\n for (var i = 0; i < lineView.rest.length; i++)\n { if (lineView.rest[i] == line)\n { return {map: lineView.measure.maps[i], cache: lineView.measure.caches[i]} } }\n for (var i$1 = 0; i$1 < lineView.rest.length; i$1++)\n { if (lineNo(lineView.rest[i$1]) > lineN)\n { return {map: lineView.measure.maps[i$1], cache: lineView.measure.caches[i$1], before: true} } }\n }\n }\n\n // Render a line into the hidden node display.externalMeasured. Used\n // when measurement is needed for a line that's not in the viewport.\n function updateExternalMeasurement(cm, line) {\n line = visualLine(line);\n var lineN = lineNo(line);\n var view = cm.display.externalMeasured = new LineView(cm.doc, line, lineN);\n view.lineN = lineN;\n var built = view.built = buildLineContent(cm, view);\n view.text = built.pre;\n removeChildrenAndAdd(cm.display.lineMeasure, built.pre);\n return view\n }\n\n // Get a {top, bottom, left, right} box (in line-local coordinates)\n // for a given character.\n function measureChar(cm, line, ch, bias) {\n return measureCharPrepared(cm, prepareMeasureForLine(cm, line), ch, bias)\n }\n\n // Find a line view that corresponds to the given line number.\n function findViewForLine(cm, lineN) {\n if (lineN >= cm.display.viewFrom && lineN < cm.display.viewTo)\n { return cm.display.view[findViewIndex(cm, lineN)] }\n var ext = cm.display.externalMeasured;\n if (ext && lineN >= ext.lineN && lineN < ext.lineN + ext.size)\n { return ext }\n }\n\n // Measurement can be split in two steps, the set-up work that\n // applies to the whole line, and the measurement of the actual\n // character. Functions like coordsChar, that need to do a lot of\n // measurements in a row, can thus ensure that the set-up work is\n // only done once.\n function prepareMeasureForLine(cm, line) {\n var lineN = lineNo(line);\n var view = findViewForLine(cm, lineN);\n if (view && !view.text) {\n view = null;\n } else if (view && view.changes) {\n updateLineForChanges(cm, view, lineN, getDimensions(cm));\n cm.curOp.forceUpdate = true;\n }\n if (!view)\n { view = updateExternalMeasurement(cm, line); }\n\n var info = mapFromLineView(view, line, lineN);\n return {\n line: line, view: view, rect: null,\n map: info.map, cache: info.cache, before: info.before,\n hasHeights: false\n }\n }\n\n // Given a prepared measurement object, measures the position of an\n // actual character (or fetches it from the cache).\n function measureCharPrepared(cm, prepared, ch, bias, varHeight) {\n if (prepared.before) { ch = -1; }\n var key = ch + (bias || \"\"), found;\n if (prepared.cache.hasOwnProperty(key)) {\n found = prepared.cache[key];\n } else {\n if (!prepared.rect)\n { prepared.rect = prepared.view.text.getBoundingClientRect(); }\n if (!prepared.hasHeights) {\n ensureLineHeights(cm, prepared.view, prepared.rect);\n prepared.hasHeights = true;\n }\n found = measureCharInner(cm, prepared, ch, bias);\n if (!found.bogus) { prepared.cache[key] = found; }\n }\n return {left: found.left, right: found.right,\n top: varHeight ? found.rtop : found.top,\n bottom: varHeight ? found.rbottom : found.bottom}\n }\n\n var nullRect = {left: 0, right: 0, top: 0, bottom: 0};\n\n function nodeAndOffsetInLineMap(map, ch, bias) {\n var node, start, end, collapse, mStart, mEnd;\n // First, search the line map for the text node corresponding to,\n // or closest to, the target character.\n for (var i = 0; i < map.length; i += 3) {\n mStart = map[i];\n mEnd = map[i + 1];\n if (ch < mStart) {\n start = 0; end = 1;\n collapse = \"left\";\n } else if (ch < mEnd) {\n start = ch - mStart;\n end = start + 1;\n } else if (i == map.length - 3 || ch == mEnd && map[i + 3] > ch) {\n end = mEnd - mStart;\n start = end - 1;\n if (ch >= mEnd) { collapse = \"right\"; }\n }\n if (start != null) {\n node = map[i + 2];\n if (mStart == mEnd && bias == (node.insertLeft ? \"left\" : \"right\"))\n { collapse = bias; }\n if (bias == \"left\" && start == 0)\n { while (i && map[i - 2] == map[i - 3] && map[i - 1].insertLeft) {\n node = map[(i -= 3) + 2];\n collapse = \"left\";\n } }\n if (bias == \"right\" && start == mEnd - mStart)\n { while (i < map.length - 3 && map[i + 3] == map[i + 4] && !map[i + 5].insertLeft) {\n node = map[(i += 3) + 2];\n collapse = \"right\";\n } }\n break\n }\n }\n return {node: node, start: start, end: end, collapse: collapse, coverStart: mStart, coverEnd: mEnd}\n }\n\n function getUsefulRect(rects, bias) {\n var rect = nullRect;\n if (bias == \"left\") { for (var i = 0; i < rects.length; i++) {\n if ((rect = rects[i]).left != rect.right) { break }\n } } else { for (var i$1 = rects.length - 1; i$1 >= 0; i$1--) {\n if ((rect = rects[i$1]).left != rect.right) { break }\n } }\n return rect\n }\n\n function measureCharInner(cm, prepared, ch, bias) {\n var place = nodeAndOffsetInLineMap(prepared.map, ch, bias);\n var node = place.node, start = place.start, end = place.end, collapse = place.collapse;\n\n var rect;\n if (node.nodeType == 3) { // If it is a text node, use a range to retrieve the coordinates.\n for (var i$1 = 0; i$1 < 4; i$1++) { // Retry a maximum of 4 times when nonsense rectangles are returned\n while (start && isExtendingChar(prepared.line.text.charAt(place.coverStart + start))) { --start; }\n while (place.coverStart + end < place.coverEnd && isExtendingChar(prepared.line.text.charAt(place.coverStart + end))) { ++end; }\n if (ie && ie_version < 9 && start == 0 && end == place.coverEnd - place.coverStart)\n { rect = node.parentNode.getBoundingClientRect(); }\n else\n { rect = getUsefulRect(range(node, start, end).getClientRects(), bias); }\n if (rect.left || rect.right || start == 0) { break }\n end = start;\n start = start - 1;\n collapse = \"right\";\n }\n if (ie && ie_version < 11) { rect = maybeUpdateRectForZooming(cm.display.measure, rect); }\n } else { // If it is a widget, simply get the box for the whole widget.\n if (start > 0) { collapse = bias = \"right\"; }\n var rects;\n if (cm.options.lineWrapping && (rects = node.getClientRects()).length > 1)\n { rect = rects[bias == \"right\" ? rects.length - 1 : 0]; }\n else\n { rect = node.getBoundingClientRect(); }\n }\n if (ie && ie_version < 9 && !start && (!rect || !rect.left && !rect.right)) {\n var rSpan = node.parentNode.getClientRects()[0];\n if (rSpan)\n { rect = {left: rSpan.left, right: rSpan.left + charWidth(cm.display), top: rSpan.top, bottom: rSpan.bottom}; }\n else\n { rect = nullRect; }\n }\n\n var rtop = rect.top - prepared.rect.top, rbot = rect.bottom - prepared.rect.top;\n var mid = (rtop + rbot) / 2;\n var heights = prepared.view.measure.heights;\n var i = 0;\n for (; i < heights.length - 1; i++)\n { if (mid < heights[i]) { break } }\n var top = i ? heights[i - 1] : 0, bot = heights[i];\n var result = {left: (collapse == \"right\" ? rect.right : rect.left) - prepared.rect.left,\n right: (collapse == \"left\" ? rect.left : rect.right) - prepared.rect.left,\n top: top, bottom: bot};\n if (!rect.left && !rect.right) { result.bogus = true; }\n if (!cm.options.singleCursorHeightPerLine) { result.rtop = rtop; result.rbottom = rbot; }\n\n return result\n }\n\n // Work around problem with bounding client rects on ranges being\n // returned incorrectly when zoomed on IE10 and below.\n function maybeUpdateRectForZooming(measure, rect) {\n if (!window.screen || screen.logicalXDPI == null ||\n screen.logicalXDPI == screen.deviceXDPI || !hasBadZoomedRects(measure))\n { return rect }\n var scaleX = screen.logicalXDPI / screen.deviceXDPI;\n var scaleY = screen.logicalYDPI / screen.deviceYDPI;\n return {left: rect.left * scaleX, right: rect.right * scaleX,\n top: rect.top * scaleY, bottom: rect.bottom * scaleY}\n }\n\n function clearLineMeasurementCacheFor(lineView) {\n if (lineView.measure) {\n lineView.measure.cache = {};\n lineView.measure.heights = null;\n if (lineView.rest) { for (var i = 0; i < lineView.rest.length; i++)\n { lineView.measure.caches[i] = {}; } }\n }\n }\n\n function clearLineMeasurementCache(cm) {\n cm.display.externalMeasure = null;\n removeChildren(cm.display.lineMeasure);\n for (var i = 0; i < cm.display.view.length; i++)\n { clearLineMeasurementCacheFor(cm.display.view[i]); }\n }\n\n function clearCaches(cm) {\n clearLineMeasurementCache(cm);\n cm.display.cachedCharWidth = cm.display.cachedTextHeight = cm.display.cachedPaddingH = null;\n if (!cm.options.lineWrapping) { cm.display.maxLineChanged = true; }\n cm.display.lineNumChars = null;\n }\n\n function pageScrollX(doc) {\n // Work around https://bugs.chromium.org/p/chromium/issues/detail?id=489206\n // which causes page_Offset and bounding client rects to use\n // different reference viewports and invalidate our calculations.\n if (chrome && android) { return -(doc.body.getBoundingClientRect().left - parseInt(getComputedStyle(doc.body).marginLeft)) }\n return doc.defaultView.pageXOffset || (doc.documentElement || doc.body).scrollLeft\n }\n function pageScrollY(doc) {\n if (chrome && android) { return -(doc.body.getBoundingClientRect().top - parseInt(getComputedStyle(doc.body).marginTop)) }\n return doc.defaultView.pageYOffset || (doc.documentElement || doc.body).scrollTop\n }\n\n function widgetTopHeight(lineObj) {\n var ref = visualLine(lineObj);\n var widgets = ref.widgets;\n var height = 0;\n if (widgets) { for (var i = 0; i < widgets.length; ++i) { if (widgets[i].above)\n { height += widgetHeight(widgets[i]); } } }\n return height\n }\n\n // Converts a {top, bottom, left, right} box from line-local\n // coordinates into another coordinate system. Context may be one of\n // \"line\", \"div\" (display.lineDiv), \"local\"./null (editor), \"window\",\n // or \"page\".\n function intoCoordSystem(cm, lineObj, rect, context, includeWidgets) {\n if (!includeWidgets) {\n var height = widgetTopHeight(lineObj);\n rect.top += height; rect.bottom += height;\n }\n if (context == \"line\") { return rect }\n if (!context) { context = \"local\"; }\n var yOff = heightAtLine(lineObj);\n if (context == \"local\") { yOff += paddingTop(cm.display); }\n else { yOff -= cm.display.viewOffset; }\n if (context == \"page\" || context == \"window\") {\n var lOff = cm.display.lineSpace.getBoundingClientRect();\n yOff += lOff.top + (context == \"window\" ? 0 : pageScrollY(doc(cm)));\n var xOff = lOff.left + (context == \"window\" ? 0 : pageScrollX(doc(cm)));\n rect.left += xOff; rect.right += xOff;\n }\n rect.top += yOff; rect.bottom += yOff;\n return rect\n }\n\n // Coverts a box from \"div\" coords to another coordinate system.\n // Context may be \"window\", \"page\", \"div\", or \"local\"./null.\n function fromCoordSystem(cm, coords, context) {\n if (context == \"div\") { return coords }\n var left = coords.left, top = coords.top;\n // First move into \"page\" coordinate system\n if (context == \"page\") {\n left -= pageScrollX(doc(cm));\n top -= pageScrollY(doc(cm));\n } else if (context == \"local\" || !context) {\n var localBox = cm.display.sizer.getBoundingClientRect();\n left += localBox.left;\n top += localBox.top;\n }\n\n var lineSpaceBox = cm.display.lineSpace.getBoundingClientRect();\n return {left: left - lineSpaceBox.left, top: top - lineSpaceBox.top}\n }\n\n function charCoords(cm, pos, context, lineObj, bias) {\n if (!lineObj) { lineObj = getLine(cm.doc, pos.line); }\n return intoCoordSystem(cm, lineObj, measureChar(cm, lineObj, pos.ch, bias), context)\n }\n\n // Returns a box for a given cursor position, which may have an\n // 'other' property containing the position of the secondary cursor\n // on a bidi boundary.\n // A cursor Pos(line, char, \"before\") is on the same visual line as `char - 1`\n // and after `char - 1` in writing order of `char - 1`\n // A cursor Pos(line, char, \"after\") is on the same visual line as `char`\n // and before `char` in writing order of `char`\n // Examples (upper-case letters are RTL, lower-case are LTR):\n // Pos(0, 1, ...)\n // before after\n // ab a|b a|b\n // aB a|B aB|\n // Ab |Ab A|b\n // AB B|A B|A\n // Every position after the last character on a line is considered to stick\n // to the last character on the line.\n function cursorCoords(cm, pos, context, lineObj, preparedMeasure, varHeight) {\n lineObj = lineObj || getLine(cm.doc, pos.line);\n if (!preparedMeasure) { preparedMeasure = prepareMeasureForLine(cm, lineObj); }\n function get(ch, right) {\n var m = measureCharPrepared(cm, preparedMeasure, ch, right ? \"right\" : \"left\", varHeight);\n if (right) { m.left = m.right; } else { m.right = m.left; }\n return intoCoordSystem(cm, lineObj, m, context)\n }\n var order = getOrder(lineObj, cm.doc.direction), ch = pos.ch, sticky = pos.sticky;\n if (ch >= lineObj.text.length) {\n ch = lineObj.text.length;\n sticky = \"before\";\n } else if (ch <= 0) {\n ch = 0;\n sticky = \"after\";\n }\n if (!order) { return get(sticky == \"before\" ? ch - 1 : ch, sticky == \"before\") }\n\n function getBidi(ch, partPos, invert) {\n var part = order[partPos], right = part.level == 1;\n return get(invert ? ch - 1 : ch, right != invert)\n }\n var partPos = getBidiPartAt(order, ch, sticky);\n var other = bidiOther;\n var val = getBidi(ch, partPos, sticky == \"before\");\n if (other != null) { val.other = getBidi(ch, other, sticky != \"before\"); }\n return val\n }\n\n // Used to cheaply estimate the coordinates for a position. Used for\n // intermediate scroll updates.\n function estimateCoords(cm, pos) {\n var left = 0;\n pos = clipPos(cm.doc, pos);\n if (!cm.options.lineWrapping) { left = charWidth(cm.display) * pos.ch; }\n var lineObj = getLine(cm.doc, pos.line);\n var top = heightAtLine(lineObj) + paddingTop(cm.display);\n return {left: left, right: left, top: top, bottom: top + lineObj.height}\n }\n\n // Positions returned by coordsChar contain some extra information.\n // xRel is the relative x position of the input coordinates compared\n // to the found position (so xRel > 0 means the coordinates are to\n // the right of the character position, for example). When outside\n // is true, that means the coordinates lie outside the line's\n // vertical range.\n function PosWithInfo(line, ch, sticky, outside, xRel) {\n var pos = Pos(line, ch, sticky);\n pos.xRel = xRel;\n if (outside) { pos.outside = outside; }\n return pos\n }\n\n // Compute the character position closest to the given coordinates.\n // Input must be lineSpace-local (\"div\" coordinate system).\n function coordsChar(cm, x, y) {\n var doc = cm.doc;\n y += cm.display.viewOffset;\n if (y < 0) { return PosWithInfo(doc.first, 0, null, -1, -1) }\n var lineN = lineAtHeight(doc, y), last = doc.first + doc.size - 1;\n if (lineN > last)\n { return PosWithInfo(doc.first + doc.size - 1, getLine(doc, last).text.length, null, 1, 1) }\n if (x < 0) { x = 0; }\n\n var lineObj = getLine(doc, lineN);\n for (;;) {\n var found = coordsCharInner(cm, lineObj, lineN, x, y);\n var collapsed = collapsedSpanAround(lineObj, found.ch + (found.xRel > 0 || found.outside > 0 ? 1 : 0));\n if (!collapsed) { return found }\n var rangeEnd = collapsed.find(1);\n if (rangeEnd.line == lineN) { return rangeEnd }\n lineObj = getLine(doc, lineN = rangeEnd.line);\n }\n }\n\n function wrappedLineExtent(cm, lineObj, preparedMeasure, y) {\n y -= widgetTopHeight(lineObj);\n var end = lineObj.text.length;\n var begin = findFirst(function (ch) { return measureCharPrepared(cm, preparedMeasure, ch - 1).bottom <= y; }, end, 0);\n end = findFirst(function (ch) { return measureCharPrepared(cm, preparedMeasure, ch).top > y; }, begin, end);\n return {begin: begin, end: end}\n }\n\n function wrappedLineExtentChar(cm, lineObj, preparedMeasure, target) {\n if (!preparedMeasure) { preparedMeasure = prepareMeasureForLine(cm, lineObj); }\n var targetTop = intoCoordSystem(cm, lineObj, measureCharPrepared(cm, preparedMeasure, target), \"line\").top;\n return wrappedLineExtent(cm, lineObj, preparedMeasure, targetTop)\n }\n\n // Returns true if the given side of a box is after the given\n // coordinates, in top-to-bottom, left-to-right order.\n function boxIsAfter(box, x, y, left) {\n return box.bottom <= y ? false : box.top > y ? true : (left ? box.left : box.right) > x\n }\n\n function coordsCharInner(cm, lineObj, lineNo, x, y) {\n // Move y into line-local coordinate space\n y -= heightAtLine(lineObj);\n var preparedMeasure = prepareMeasureForLine(cm, lineObj);\n // When directly calling `measureCharPrepared`, we have to adjust\n // for the widgets at this line.\n var widgetHeight = widgetTopHeight(lineObj);\n var begin = 0, end = lineObj.text.length, ltr = true;\n\n var order = getOrder(lineObj, cm.doc.direction);\n // If the line isn't plain left-to-right text, first figure out\n // which bidi section the coordinates fall into.\n if (order) {\n var part = (cm.options.lineWrapping ? coordsBidiPartWrapped : coordsBidiPart)\n (cm, lineObj, lineNo, preparedMeasure, order, x, y);\n ltr = part.level != 1;\n // The awkward -1 offsets are needed because findFirst (called\n // on these below) will treat its first bound as inclusive,\n // second as exclusive, but we want to actually address the\n // characters in the part's range\n begin = ltr ? part.from : part.to - 1;\n end = ltr ? part.to : part.from - 1;\n }\n\n // A binary search to find the first character whose bounding box\n // starts after the coordinates. If we run across any whose box wrap\n // the coordinates, store that.\n var chAround = null, boxAround = null;\n var ch = findFirst(function (ch) {\n var box = measureCharPrepared(cm, preparedMeasure, ch);\n box.top += widgetHeight; box.bottom += widgetHeight;\n if (!boxIsAfter(box, x, y, false)) { return false }\n if (box.top <= y && box.left <= x) {\n chAround = ch;\n boxAround = box;\n }\n return true\n }, begin, end);\n\n var baseX, sticky, outside = false;\n // If a box around the coordinates was found, use that\n if (boxAround) {\n // Distinguish coordinates nearer to the left or right side of the box\n var atLeft = x - boxAround.left < boxAround.right - x, atStart = atLeft == ltr;\n ch = chAround + (atStart ? 0 : 1);\n sticky = atStart ? \"after\" : \"before\";\n baseX = atLeft ? boxAround.left : boxAround.right;\n } else {\n // (Adjust for extended bound, if necessary.)\n if (!ltr && (ch == end || ch == begin)) { ch++; }\n // To determine which side to associate with, get the box to the\n // left of the character and compare it's vertical position to the\n // coordinates\n sticky = ch == 0 ? \"after\" : ch == lineObj.text.length ? \"before\" :\n (measureCharPrepared(cm, preparedMeasure, ch - (ltr ? 1 : 0)).bottom + widgetHeight <= y) == ltr ?\n \"after\" : \"before\";\n // Now get accurate coordinates for this place, in order to get a\n // base X position\n var coords = cursorCoords(cm, Pos(lineNo, ch, sticky), \"line\", lineObj, preparedMeasure);\n baseX = coords.left;\n outside = y < coords.top ? -1 : y >= coords.bottom ? 1 : 0;\n }\n\n ch = skipExtendingChars(lineObj.text, ch, 1);\n return PosWithInfo(lineNo, ch, sticky, outside, x - baseX)\n }\n\n function coordsBidiPart(cm, lineObj, lineNo, preparedMeasure, order, x, y) {\n // Bidi parts are sorted left-to-right, and in a non-line-wrapping\n // situation, we can take this ordering to correspond to the visual\n // ordering. This finds the first part whose end is after the given\n // coordinates.\n var index = findFirst(function (i) {\n var part = order[i], ltr = part.level != 1;\n return boxIsAfter(cursorCoords(cm, Pos(lineNo, ltr ? part.to : part.from, ltr ? \"before\" : \"after\"),\n \"line\", lineObj, preparedMeasure), x, y, true)\n }, 0, order.length - 1);\n var part = order[index];\n // If this isn't the first part, the part's start is also after\n // the coordinates, and the coordinates aren't on the same line as\n // that start, move one part back.\n if (index > 0) {\n var ltr = part.level != 1;\n var start = cursorCoords(cm, Pos(lineNo, ltr ? part.from : part.to, ltr ? \"after\" : \"before\"),\n \"line\", lineObj, preparedMeasure);\n if (boxIsAfter(start, x, y, true) && start.top > y)\n { part = order[index - 1]; }\n }\n return part\n }\n\n function coordsBidiPartWrapped(cm, lineObj, _lineNo, preparedMeasure, order, x, y) {\n // In a wrapped line, rtl text on wrapping boundaries can do things\n // that don't correspond to the ordering in our `order` array at\n // all, so a binary search doesn't work, and we want to return a\n // part that only spans one line so that the binary search in\n // coordsCharInner is safe. As such, we first find the extent of the\n // wrapped line, and then do a flat search in which we discard any\n // spans that aren't on the line.\n var ref = wrappedLineExtent(cm, lineObj, preparedMeasure, y);\n var begin = ref.begin;\n var end = ref.end;\n if (/\\s/.test(lineObj.text.charAt(end - 1))) { end--; }\n var part = null, closestDist = null;\n for (var i = 0; i < order.length; i++) {\n var p = order[i];\n if (p.from >= end || p.to <= begin) { continue }\n var ltr = p.level != 1;\n var endX = measureCharPrepared(cm, preparedMeasure, ltr ? Math.min(end, p.to) - 1 : Math.max(begin, p.from)).right;\n // Weigh against spans ending before this, so that they are only\n // picked if nothing ends after\n var dist = endX < x ? x - endX + 1e9 : endX - x;\n if (!part || closestDist > dist) {\n part = p;\n closestDist = dist;\n }\n }\n if (!part) { part = order[order.length - 1]; }\n // Clip the part to the wrapped line.\n if (part.from < begin) { part = {from: begin, to: part.to, level: part.level}; }\n if (part.to > end) { part = {from: part.from, to: end, level: part.level}; }\n return part\n }\n\n var measureText;\n // Compute the default text height.\n function textHeight(display) {\n if (display.cachedTextHeight != null) { return display.cachedTextHeight }\n if (measureText == null) {\n measureText = elt(\"pre\", null, \"CodeMirror-line-like\");\n // Measure a bunch of lines, for browsers that compute\n // fractional heights.\n for (var i = 0; i < 49; ++i) {\n measureText.appendChild(document.createTextNode(\"x\"));\n measureText.appendChild(elt(\"br\"));\n }\n measureText.appendChild(document.createTextNode(\"x\"));\n }\n removeChildrenAndAdd(display.measure, measureText);\n var height = measureText.offsetHeight / 50;\n if (height > 3) { display.cachedTextHeight = height; }\n removeChildren(display.measure);\n return height || 1\n }\n\n // Compute the default character width.\n function charWidth(display) {\n if (display.cachedCharWidth != null) { return display.cachedCharWidth }\n var anchor = elt(\"span\", \"xxxxxxxxxx\");\n var pre = elt(\"pre\", [anchor], \"CodeMirror-line-like\");\n removeChildrenAndAdd(display.measure, pre);\n var rect = anchor.getBoundingClientRect(), width = (rect.right - rect.left) / 10;\n if (width > 2) { display.cachedCharWidth = width; }\n return width || 10\n }\n\n // Do a bulk-read of the DOM positions and sizes needed to draw the\n // view, so that we don't interleave reading and writing to the DOM.\n function getDimensions(cm) {\n var d = cm.display, left = {}, width = {};\n var gutterLeft = d.gutters.clientLeft;\n for (var n = d.gutters.firstChild, i = 0; n; n = n.nextSibling, ++i) {\n var id = cm.display.gutterSpecs[i].className;\n left[id] = n.offsetLeft + n.clientLeft + gutterLeft;\n width[id] = n.clientWidth;\n }\n return {fixedPos: compensateForHScroll(d),\n gutterTotalWidth: d.gutters.offsetWidth,\n gutterLeft: left,\n gutterWidth: width,\n wrapperWidth: d.wrapper.clientWidth}\n }\n\n // Computes display.scroller.scrollLeft + display.gutters.offsetWidth,\n // but using getBoundingClientRect to get a sub-pixel-accurate\n // result.\n function compensateForHScroll(display) {\n return display.scroller.getBoundingClientRect().left - display.sizer.getBoundingClientRect().left\n }\n\n // Returns a function that estimates the height of a line, to use as\n // first approximation until the line becomes visible (and is thus\n // properly measurable).\n function estimateHeight(cm) {\n var th = textHeight(cm.display), wrapping = cm.options.lineWrapping;\n var perLine = wrapping && Math.max(5, cm.display.scroller.clientWidth / charWidth(cm.display) - 3);\n return function (line) {\n if (lineIsHidden(cm.doc, line)) { return 0 }\n\n var widgetsHeight = 0;\n if (line.widgets) { for (var i = 0; i < line.widgets.length; i++) {\n if (line.widgets[i].height) { widgetsHeight += line.widgets[i].height; }\n } }\n\n if (wrapping)\n { return widgetsHeight + (Math.ceil(line.text.length / perLine) || 1) * th }\n else\n { return widgetsHeight + th }\n }\n }\n\n function estimateLineHeights(cm) {\n var doc = cm.doc, est = estimateHeight(cm);\n doc.iter(function (line) {\n var estHeight = est(line);\n if (estHeight != line.height) { updateLineHeight(line, estHeight); }\n });\n }\n\n // Given a mouse event, find the corresponding position. If liberal\n // is false, it checks whether a gutter or scrollbar was clicked,\n // and returns null if it was. forRect is used by rectangular\n // selections, and tries to estimate a character position even for\n // coordinates beyond the right of the text.\n function posFromMouse(cm, e, liberal, forRect) {\n var display = cm.display;\n if (!liberal && e_target(e).getAttribute(\"cm-not-content\") == \"true\") { return null }\n\n var x, y, space = display.lineSpace.getBoundingClientRect();\n // Fails unpredictably on IE[67] when mouse is dragged around quickly.\n try { x = e.clientX - space.left; y = e.clientY - space.top; }\n catch (e$1) { return null }\n var coords = coordsChar(cm, x, y), line;\n if (forRect && coords.xRel > 0 && (line = getLine(cm.doc, coords.line).text).length == coords.ch) {\n var colDiff = countColumn(line, line.length, cm.options.tabSize) - line.length;\n coords = Pos(coords.line, Math.max(0, Math.round((x - paddingH(cm.display).left) / charWidth(cm.display)) - colDiff));\n }\n return coords\n }\n\n // Find the view element corresponding to a given line. Return null\n // when the line isn't visible.\n function findViewIndex(cm, n) {\n if (n >= cm.display.viewTo) { return null }\n n -= cm.display.viewFrom;\n if (n < 0) { return null }\n var view = cm.display.view;\n for (var i = 0; i < view.length; i++) {\n n -= view[i].size;\n if (n < 0) { return i }\n }\n }\n\n // Updates the display.view data structure for a given change to the\n // document. From and to are in pre-change coordinates. Lendiff is\n // the amount of lines added or subtracted by the change. This is\n // used for changes that span multiple lines, or change the way\n // lines are divided into visual lines. regLineChange (below)\n // registers single-line changes.\n function regChange(cm, from, to, lendiff) {\n if (from == null) { from = cm.doc.first; }\n if (to == null) { to = cm.doc.first + cm.doc.size; }\n if (!lendiff) { lendiff = 0; }\n\n var display = cm.display;\n if (lendiff && to < display.viewTo &&\n (display.updateLineNumbers == null || display.updateLineNumbers > from))\n { display.updateLineNumbers = from; }\n\n cm.curOp.viewChanged = true;\n\n if (from >= display.viewTo) { // Change after\n if (sawCollapsedSpans && visualLineNo(cm.doc, from) < display.viewTo)\n { resetView(cm); }\n } else if (to <= display.viewFrom) { // Change before\n if (sawCollapsedSpans && visualLineEndNo(cm.doc, to + lendiff) > display.viewFrom) {\n resetView(cm);\n } else {\n display.viewFrom += lendiff;\n display.viewTo += lendiff;\n }\n } else if (from <= display.viewFrom && to >= display.viewTo) { // Full overlap\n resetView(cm);\n } else if (from <= display.viewFrom) { // Top overlap\n var cut = viewCuttingPoint(cm, to, to + lendiff, 1);\n if (cut) {\n display.view = display.view.slice(cut.index);\n display.viewFrom = cut.lineN;\n display.viewTo += lendiff;\n } else {\n resetView(cm);\n }\n } else if (to >= display.viewTo) { // Bottom overlap\n var cut$1 = viewCuttingPoint(cm, from, from, -1);\n if (cut$1) {\n display.view = display.view.slice(0, cut$1.index);\n display.viewTo = cut$1.lineN;\n } else {\n resetView(cm);\n }\n } else { // Gap in the middle\n var cutTop = viewCuttingPoint(cm, from, from, -1);\n var cutBot = viewCuttingPoint(cm, to, to + lendiff, 1);\n if (cutTop && cutBot) {\n display.view = display.view.slice(0, cutTop.index)\n .concat(buildViewArray(cm, cutTop.lineN, cutBot.lineN))\n .concat(display.view.slice(cutBot.index));\n display.viewTo += lendiff;\n } else {\n resetView(cm);\n }\n }\n\n var ext = display.externalMeasured;\n if (ext) {\n if (to < ext.lineN)\n { ext.lineN += lendiff; }\n else if (from < ext.lineN + ext.size)\n { display.externalMeasured = null; }\n }\n }\n\n // Register a change to a single line. Type must be one of \"text\",\n // \"gutter\", \"class\", \"widget\"\n function regLineChange(cm, line, type) {\n cm.curOp.viewChanged = true;\n var display = cm.display, ext = cm.display.externalMeasured;\n if (ext && line >= ext.lineN && line < ext.lineN + ext.size)\n { display.externalMeasured = null; }\n\n if (line < display.viewFrom || line >= display.viewTo) { return }\n var lineView = display.view[findViewIndex(cm, line)];\n if (lineView.node == null) { return }\n var arr = lineView.changes || (lineView.changes = []);\n if (indexOf(arr, type) == -1) { arr.push(type); }\n }\n\n // Clear the view.\n function resetView(cm) {\n cm.display.viewFrom = cm.display.viewTo = cm.doc.first;\n cm.display.view = [];\n cm.display.viewOffset = 0;\n }\n\n function viewCuttingPoint(cm, oldN, newN, dir) {\n var index = findViewIndex(cm, oldN), diff, view = cm.display.view;\n if (!sawCollapsedSpans || newN == cm.doc.first + cm.doc.size)\n { return {index: index, lineN: newN} }\n var n = cm.display.viewFrom;\n for (var i = 0; i < index; i++)\n { n += view[i].size; }\n if (n != oldN) {\n if (dir > 0) {\n if (index == view.length - 1) { return null }\n diff = (n + view[index].size) - oldN;\n index++;\n } else {\n diff = n - oldN;\n }\n oldN += diff; newN += diff;\n }\n while (visualLineNo(cm.doc, newN) != newN) {\n if (index == (dir < 0 ? 0 : view.length - 1)) { return null }\n newN += dir * view[index - (dir < 0 ? 1 : 0)].size;\n index += dir;\n }\n return {index: index, lineN: newN}\n }\n\n // Force the view to cover a given range, adding empty view element\n // or clipping off existing ones as needed.\n function adjustView(cm, from, to) {\n var display = cm.display, view = display.view;\n if (view.length == 0 || from >= display.viewTo || to <= display.viewFrom) {\n display.view = buildViewArray(cm, from, to);\n display.viewFrom = from;\n } else {\n if (display.viewFrom > from)\n { display.view = buildViewArray(cm, from, display.viewFrom).concat(display.view); }\n else if (display.viewFrom < from)\n { display.view = display.view.slice(findViewIndex(cm, from)); }\n display.viewFrom = from;\n if (display.viewTo < to)\n { display.view = display.view.concat(buildViewArray(cm, display.viewTo, to)); }\n else if (display.viewTo > to)\n { display.view = display.view.slice(0, findViewIndex(cm, to)); }\n }\n display.viewTo = to;\n }\n\n // Count the number of lines in the view whose DOM representation is\n // out of date (or nonexistent).\n function countDirtyView(cm) {\n var view = cm.display.view, dirty = 0;\n for (var i = 0; i < view.length; i++) {\n var lineView = view[i];\n if (!lineView.hidden && (!lineView.node || lineView.changes)) { ++dirty; }\n }\n return dirty\n }\n\n function updateSelection(cm) {\n cm.display.input.showSelection(cm.display.input.prepareSelection());\n }\n\n function prepareSelection(cm, primary) {\n if ( primary === void 0 ) primary = true;\n\n var doc = cm.doc, result = {};\n var curFragment = result.cursors = document.createDocumentFragment();\n var selFragment = result.selection = document.createDocumentFragment();\n\n var customCursor = cm.options.$customCursor;\n if (customCursor) { primary = true; }\n for (var i = 0; i < doc.sel.ranges.length; i++) {\n if (!primary && i == doc.sel.primIndex) { continue }\n var range = doc.sel.ranges[i];\n if (range.from().line >= cm.display.viewTo || range.to().line < cm.display.viewFrom) { continue }\n var collapsed = range.empty();\n if (customCursor) {\n var head = customCursor(cm, range);\n if (head) { drawSelectionCursor(cm, head, curFragment); }\n } else if (collapsed || cm.options.showCursorWhenSelecting) {\n drawSelectionCursor(cm, range.head, curFragment);\n }\n if (!collapsed)\n { drawSelectionRange(cm, range, selFragment); }\n }\n return result\n }\n\n // Draws a cursor for the given range\n function drawSelectionCursor(cm, head, output) {\n var pos = cursorCoords(cm, head, \"div\", null, null, !cm.options.singleCursorHeightPerLine);\n\n var cursor = output.appendChild(elt(\"div\", \"\\u00a0\", \"CodeMirror-cursor\"));\n cursor.style.left = pos.left + \"px\";\n cursor.style.top = pos.top + \"px\";\n cursor.style.height = Math.max(0, pos.bottom - pos.top) * cm.options.cursorHeight + \"px\";\n\n if (/\\bcm-fat-cursor\\b/.test(cm.getWrapperElement().className)) {\n var charPos = charCoords(cm, head, \"div\", null, null);\n var width = charPos.right - charPos.left;\n cursor.style.width = (width > 0 ? width : cm.defaultCharWidth()) + \"px\";\n }\n\n if (pos.other) {\n // Secondary cursor, shown when on a 'jump' in bi-directional text\n var otherCursor = output.appendChild(elt(\"div\", \"\\u00a0\", \"CodeMirror-cursor CodeMirror-secondarycursor\"));\n otherCursor.style.display = \"\";\n otherCursor.style.left = pos.other.left + \"px\";\n otherCursor.style.top = pos.other.top + \"px\";\n otherCursor.style.height = (pos.other.bottom - pos.other.top) * .85 + \"px\";\n }\n }\n\n function cmpCoords(a, b) { return a.top - b.top || a.left - b.left }\n\n // Draws the given range as a highlighted selection\n function drawSelectionRange(cm, range, output) {\n var display = cm.display, doc = cm.doc;\n var fragment = document.createDocumentFragment();\n var padding = paddingH(cm.display), leftSide = padding.left;\n var rightSide = Math.max(display.sizerWidth, displayWidth(cm) - display.sizer.offsetLeft) - padding.right;\n var docLTR = doc.direction == \"ltr\";\n\n function add(left, top, width, bottom) {\n if (top < 0) { top = 0; }\n top = Math.round(top);\n bottom = Math.round(bottom);\n fragment.appendChild(elt(\"div\", null, \"CodeMirror-selected\", (\"position: absolute; left: \" + left + \"px;\\n top: \" + top + \"px; width: \" + (width == null ? rightSide - left : width) + \"px;\\n height: \" + (bottom - top) + \"px\")));\n }\n\n function drawForLine(line, fromArg, toArg) {\n var lineObj = getLine(doc, line);\n var lineLen = lineObj.text.length;\n var start, end;\n function coords(ch, bias) {\n return charCoords(cm, Pos(line, ch), \"div\", lineObj, bias)\n }\n\n function wrapX(pos, dir, side) {\n var extent = wrappedLineExtentChar(cm, lineObj, null, pos);\n var prop = (dir == \"ltr\") == (side == \"after\") ? \"left\" : \"right\";\n var ch = side == \"after\" ? extent.begin : extent.end - (/\\s/.test(lineObj.text.charAt(extent.end - 1)) ? 2 : 1);\n return coords(ch, prop)[prop]\n }\n\n var order = getOrder(lineObj, doc.direction);\n iterateBidiSections(order, fromArg || 0, toArg == null ? lineLen : toArg, function (from, to, dir, i) {\n var ltr = dir == \"ltr\";\n var fromPos = coords(from, ltr ? \"left\" : \"right\");\n var toPos = coords(to - 1, ltr ? \"right\" : \"left\");\n\n var openStart = fromArg == null && from == 0, openEnd = toArg == null && to == lineLen;\n var first = i == 0, last = !order || i == order.length - 1;\n if (toPos.top - fromPos.top <= 3) { // Single line\n var openLeft = (docLTR ? openStart : openEnd) && first;\n var openRight = (docLTR ? openEnd : openStart) && last;\n var left = openLeft ? leftSide : (ltr ? fromPos : toPos).left;\n var right = openRight ? rightSide : (ltr ? toPos : fromPos).right;\n add(left, fromPos.top, right - left, fromPos.bottom);\n } else { // Multiple lines\n var topLeft, topRight, botLeft, botRight;\n if (ltr) {\n topLeft = docLTR && openStart && first ? leftSide : fromPos.left;\n topRight = docLTR ? rightSide : wrapX(from, dir, \"before\");\n botLeft = docLTR ? leftSide : wrapX(to, dir, \"after\");\n botRight = docLTR && openEnd && last ? rightSide : toPos.right;\n } else {\n topLeft = !docLTR ? leftSide : wrapX(from, dir, \"before\");\n topRight = !docLTR && openStart && first ? rightSide : fromPos.right;\n botLeft = !docLTR && openEnd && last ? leftSide : toPos.left;\n botRight = !docLTR ? rightSide : wrapX(to, dir, \"after\");\n }\n add(topLeft, fromPos.top, topRight - topLeft, fromPos.bottom);\n if (fromPos.bottom < toPos.top) { add(leftSide, fromPos.bottom, null, toPos.top); }\n add(botLeft, toPos.top, botRight - botLeft, toPos.bottom);\n }\n\n if (!start || cmpCoords(fromPos, start) < 0) { start = fromPos; }\n if (cmpCoords(toPos, start) < 0) { start = toPos; }\n if (!end || cmpCoords(fromPos, end) < 0) { end = fromPos; }\n if (cmpCoords(toPos, end) < 0) { end = toPos; }\n });\n return {start: start, end: end}\n }\n\n var sFrom = range.from(), sTo = range.to();\n if (sFrom.line == sTo.line) {\n drawForLine(sFrom.line, sFrom.ch, sTo.ch);\n } else {\n var fromLine = getLine(doc, sFrom.line), toLine = getLine(doc, sTo.line);\n var singleVLine = visualLine(fromLine) == visualLine(toLine);\n var leftEnd = drawForLine(sFrom.line, sFrom.ch, singleVLine ? fromLine.text.length + 1 : null).end;\n var rightStart = drawForLine(sTo.line, singleVLine ? 0 : null, sTo.ch).start;\n if (singleVLine) {\n if (leftEnd.top < rightStart.top - 2) {\n add(leftEnd.right, leftEnd.top, null, leftEnd.bottom);\n add(leftSide, rightStart.top, rightStart.left, rightStart.bottom);\n } else {\n add(leftEnd.right, leftEnd.top, rightStart.left - leftEnd.right, leftEnd.bottom);\n }\n }\n if (leftEnd.bottom < rightStart.top)\n { add(leftSide, leftEnd.bottom, null, rightStart.top); }\n }\n\n output.appendChild(fragment);\n }\n\n // Cursor-blinking\n function restartBlink(cm) {\n if (!cm.state.focused) { return }\n var display = cm.display;\n clearInterval(display.blinker);\n var on = true;\n display.cursorDiv.style.visibility = \"\";\n if (cm.options.cursorBlinkRate > 0)\n { display.blinker = setInterval(function () {\n if (!cm.hasFocus()) { onBlur(cm); }\n display.cursorDiv.style.visibility = (on = !on) ? \"\" : \"hidden\";\n }, cm.options.cursorBlinkRate); }\n else if (cm.options.cursorBlinkRate < 0)\n { display.cursorDiv.style.visibility = \"hidden\"; }\n }\n\n function ensureFocus(cm) {\n if (!cm.hasFocus()) {\n cm.display.input.focus();\n if (!cm.state.focused) { onFocus(cm); }\n }\n }\n\n function delayBlurEvent(cm) {\n cm.state.delayingBlurEvent = true;\n setTimeout(function () { if (cm.state.delayingBlurEvent) {\n cm.state.delayingBlurEvent = false;\n if (cm.state.focused) { onBlur(cm); }\n } }, 100);\n }\n\n function onFocus(cm, e) {\n if (cm.state.delayingBlurEvent && !cm.state.draggingText) { cm.state.delayingBlurEvent = false; }\n\n if (cm.options.readOnly == \"nocursor\") { return }\n if (!cm.state.focused) {\n signal(cm, \"focus\", cm, e);\n cm.state.focused = true;\n addClass(cm.display.wrapper, \"CodeMirror-focused\");\n // This test prevents this from firing when a context\n // menu is closed (since the input reset would kill the\n // select-all detection hack)\n if (!cm.curOp && cm.display.selForContextMenu != cm.doc.sel) {\n cm.display.input.reset();\n if (webkit) { setTimeout(function () { return cm.display.input.reset(true); }, 20); } // Issue #1730\n }\n cm.display.input.receivedFocus();\n }\n restartBlink(cm);\n }\n function onBlur(cm, e) {\n if (cm.state.delayingBlurEvent) { return }\n\n if (cm.state.focused) {\n signal(cm, \"blur\", cm, e);\n cm.state.focused = false;\n rmClass(cm.display.wrapper, \"CodeMirror-focused\");\n }\n clearInterval(cm.display.blinker);\n setTimeout(function () { if (!cm.state.focused) { cm.display.shift = false; } }, 150);\n }\n\n // Read the actual heights of the rendered lines, and update their\n // stored heights to match.\n function updateHeightsInViewport(cm) {\n var display = cm.display;\n var prevBottom = display.lineDiv.offsetTop;\n var viewTop = Math.max(0, display.scroller.getBoundingClientRect().top);\n var oldHeight = display.lineDiv.getBoundingClientRect().top;\n var mustScroll = 0;\n for (var i = 0; i < display.view.length; i++) {\n var cur = display.view[i], wrapping = cm.options.lineWrapping;\n var height = (void 0), width = 0;\n if (cur.hidden) { continue }\n oldHeight += cur.line.height;\n if (ie && ie_version < 8) {\n var bot = cur.node.offsetTop + cur.node.offsetHeight;\n height = bot - prevBottom;\n prevBottom = bot;\n } else {\n var box = cur.node.getBoundingClientRect();\n height = box.bottom - box.top;\n // Check that lines don't extend past the right of the current\n // editor width\n if (!wrapping && cur.text.firstChild)\n { width = cur.text.firstChild.getBoundingClientRect().right - box.left - 1; }\n }\n var diff = cur.line.height - height;\n if (diff > .005 || diff < -.005) {\n if (oldHeight < viewTop) { mustScroll -= diff; }\n updateLineHeight(cur.line, height);\n updateWidgetHeight(cur.line);\n if (cur.rest) { for (var j = 0; j < cur.rest.length; j++)\n { updateWidgetHeight(cur.rest[j]); } }\n }\n if (width > cm.display.sizerWidth) {\n var chWidth = Math.ceil(width / charWidth(cm.display));\n if (chWidth > cm.display.maxLineLength) {\n cm.display.maxLineLength = chWidth;\n cm.display.maxLine = cur.line;\n cm.display.maxLineChanged = true;\n }\n }\n }\n if (Math.abs(mustScroll) > 2) { display.scroller.scrollTop += mustScroll; }\n }\n\n // Read and store the height of line widgets associated with the\n // given line.\n function updateWidgetHeight(line) {\n if (line.widgets) { for (var i = 0; i < line.widgets.length; ++i) {\n var w = line.widgets[i], parent = w.node.parentNode;\n if (parent) { w.height = parent.offsetHeight; }\n } }\n }\n\n // Compute the lines that are visible in a given viewport (defaults\n // the the current scroll position). viewport may contain top,\n // height, and ensure (see op.scrollToPos) properties.\n function visibleLines(display, doc, viewport) {\n var top = viewport && viewport.top != null ? Math.max(0, viewport.top) : display.scroller.scrollTop;\n top = Math.floor(top - paddingTop(display));\n var bottom = viewport && viewport.bottom != null ? viewport.bottom : top + display.wrapper.clientHeight;\n\n var from = lineAtHeight(doc, top), to = lineAtHeight(doc, bottom);\n // Ensure is a {from: {line, ch}, to: {line, ch}} object, and\n // forces those lines into the viewport (if possible).\n if (viewport && viewport.ensure) {\n var ensureFrom = viewport.ensure.from.line, ensureTo = viewport.ensure.to.line;\n if (ensureFrom < from) {\n from = ensureFrom;\n to = lineAtHeight(doc, heightAtLine(getLine(doc, ensureFrom)) + display.wrapper.clientHeight);\n } else if (Math.min(ensureTo, doc.lastLine()) >= to) {\n from = lineAtHeight(doc, heightAtLine(getLine(doc, ensureTo)) - display.wrapper.clientHeight);\n to = ensureTo;\n }\n }\n return {from: from, to: Math.max(to, from + 1)}\n }\n\n // SCROLLING THINGS INTO VIEW\n\n // If an editor sits on the top or bottom of the window, partially\n // scrolled out of view, this ensures that the cursor is visible.\n function maybeScrollWindow(cm, rect) {\n if (signalDOMEvent(cm, \"scrollCursorIntoView\")) { return }\n\n var display = cm.display, box = display.sizer.getBoundingClientRect(), doScroll = null;\n var doc = display.wrapper.ownerDocument;\n if (rect.top + box.top < 0) { doScroll = true; }\n else if (rect.bottom + box.top > (doc.defaultView.innerHeight || doc.documentElement.clientHeight)) { doScroll = false; }\n if (doScroll != null && !phantom) {\n var scrollNode = elt(\"div\", \"\\u200b\", null, (\"position: absolute;\\n top: \" + (rect.top - display.viewOffset - paddingTop(cm.display)) + \"px;\\n height: \" + (rect.bottom - rect.top + scrollGap(cm) + display.barHeight) + \"px;\\n left: \" + (rect.left) + \"px; width: \" + (Math.max(2, rect.right - rect.left)) + \"px;\"));\n cm.display.lineSpace.appendChild(scrollNode);\n scrollNode.scrollIntoView(doScroll);\n cm.display.lineSpace.removeChild(scrollNode);\n }\n }\n\n // Scroll a given position into view (immediately), verifying that\n // it actually became visible (as line heights are accurately\n // measured, the position of something may 'drift' during drawing).\n function scrollPosIntoView(cm, pos, end, margin) {\n if (margin == null) { margin = 0; }\n var rect;\n if (!cm.options.lineWrapping && pos == end) {\n // Set pos and end to the cursor positions around the character pos sticks to\n // If pos.sticky == \"before\", that is around pos.ch - 1, otherwise around pos.ch\n // If pos == Pos(_, 0, \"before\"), pos and end are unchanged\n end = pos.sticky == \"before\" ? Pos(pos.line, pos.ch + 1, \"before\") : pos;\n pos = pos.ch ? Pos(pos.line, pos.sticky == \"before\" ? pos.ch - 1 : pos.ch, \"after\") : pos;\n }\n for (var limit = 0; limit < 5; limit++) {\n var changed = false;\n var coords = cursorCoords(cm, pos);\n var endCoords = !end || end == pos ? coords : cursorCoords(cm, end);\n rect = {left: Math.min(coords.left, endCoords.left),\n top: Math.min(coords.top, endCoords.top) - margin,\n right: Math.max(coords.left, endCoords.left),\n bottom: Math.max(coords.bottom, endCoords.bottom) + margin};\n var scrollPos = calculateScrollPos(cm, rect);\n var startTop = cm.doc.scrollTop, startLeft = cm.doc.scrollLeft;\n if (scrollPos.scrollTop != null) {\n updateScrollTop(cm, scrollPos.scrollTop);\n if (Math.abs(cm.doc.scrollTop - startTop) > 1) { changed = true; }\n }\n if (scrollPos.scrollLeft != null) {\n setScrollLeft(cm, scrollPos.scrollLeft);\n if (Math.abs(cm.doc.scrollLeft - startLeft) > 1) { changed = true; }\n }\n if (!changed) { break }\n }\n return rect\n }\n\n // Scroll a given set of coordinates into view (immediately).\n function scrollIntoView(cm, rect) {\n var scrollPos = calculateScrollPos(cm, rect);\n if (scrollPos.scrollTop != null) { updateScrollTop(cm, scrollPos.scrollTop); }\n if (scrollPos.scrollLeft != null) { setScrollLeft(cm, scrollPos.scrollLeft); }\n }\n\n // Calculate a new scroll position needed to scroll the given\n // rectangle into view. Returns an object with scrollTop and\n // scrollLeft properties. When these are undefined, the\n // vertical/horizontal position does not need to be adjusted.\n function calculateScrollPos(cm, rect) {\n var display = cm.display, snapMargin = textHeight(cm.display);\n if (rect.top < 0) { rect.top = 0; }\n var screentop = cm.curOp && cm.curOp.scrollTop != null ? cm.curOp.scrollTop : display.scroller.scrollTop;\n var screen = displayHeight(cm), result = {};\n if (rect.bottom - rect.top > screen) { rect.bottom = rect.top + screen; }\n var docBottom = cm.doc.height + paddingVert(display);\n var atTop = rect.top < snapMargin, atBottom = rect.bottom > docBottom - snapMargin;\n if (rect.top < screentop) {\n result.scrollTop = atTop ? 0 : rect.top;\n } else if (rect.bottom > screentop + screen) {\n var newTop = Math.min(rect.top, (atBottom ? docBottom : rect.bottom) - screen);\n if (newTop != screentop) { result.scrollTop = newTop; }\n }\n\n var gutterSpace = cm.options.fixedGutter ? 0 : display.gutters.offsetWidth;\n var screenleft = cm.curOp && cm.curOp.scrollLeft != null ? cm.curOp.scrollLeft : display.scroller.scrollLeft - gutterSpace;\n var screenw = displayWidth(cm) - display.gutters.offsetWidth;\n var tooWide = rect.right - rect.left > screenw;\n if (tooWide) { rect.right = rect.left + screenw; }\n if (rect.left < 10)\n { result.scrollLeft = 0; }\n else if (rect.left < screenleft)\n { result.scrollLeft = Math.max(0, rect.left + gutterSpace - (tooWide ? 0 : 10)); }\n else if (rect.right > screenw + screenleft - 3)\n { result.scrollLeft = rect.right + (tooWide ? 0 : 10) - screenw; }\n return result\n }\n\n // Store a relative adjustment to the scroll position in the current\n // operation (to be applied when the operation finishes).\n function addToScrollTop(cm, top) {\n if (top == null) { return }\n resolveScrollToPos(cm);\n cm.curOp.scrollTop = (cm.curOp.scrollTop == null ? cm.doc.scrollTop : cm.curOp.scrollTop) + top;\n }\n\n // Make sure that at the end of the operation the current cursor is\n // shown.\n function ensureCursorVisible(cm) {\n resolveScrollToPos(cm);\n var cur = cm.getCursor();\n cm.curOp.scrollToPos = {from: cur, to: cur, margin: cm.options.cursorScrollMargin};\n }\n\n function scrollToCoords(cm, x, y) {\n if (x != null || y != null) { resolveScrollToPos(cm); }\n if (x != null) { cm.curOp.scrollLeft = x; }\n if (y != null) { cm.curOp.scrollTop = y; }\n }\n\n function scrollToRange(cm, range) {\n resolveScrollToPos(cm);\n cm.curOp.scrollToPos = range;\n }\n\n // When an operation has its scrollToPos property set, and another\n // scroll action is applied before the end of the operation, this\n // 'simulates' scrolling that position into view in a cheap way, so\n // that the effect of intermediate scroll commands is not ignored.\n function resolveScrollToPos(cm) {\n var range = cm.curOp.scrollToPos;\n if (range) {\n cm.curOp.scrollToPos = null;\n var from = estimateCoords(cm, range.from), to = estimateCoords(cm, range.to);\n scrollToCoordsRange(cm, from, to, range.margin);\n }\n }\n\n function scrollToCoordsRange(cm, from, to, margin) {\n var sPos = calculateScrollPos(cm, {\n left: Math.min(from.left, to.left),\n top: Math.min(from.top, to.top) - margin,\n right: Math.max(from.right, to.right),\n bottom: Math.max(from.bottom, to.bottom) + margin\n });\n scrollToCoords(cm, sPos.scrollLeft, sPos.scrollTop);\n }\n\n // Sync the scrollable area and scrollbars, ensure the viewport\n // covers the visible area.\n function updateScrollTop(cm, val) {\n if (Math.abs(cm.doc.scrollTop - val) < 2) { return }\n if (!gecko) { updateDisplaySimple(cm, {top: val}); }\n setScrollTop(cm, val, true);\n if (gecko) { updateDisplaySimple(cm); }\n startWorker(cm, 100);\n }\n\n function setScrollTop(cm, val, forceScroll) {\n val = Math.max(0, Math.min(cm.display.scroller.scrollHeight - cm.display.scroller.clientHeight, val));\n if (cm.display.scroller.scrollTop == val && !forceScroll) { return }\n cm.doc.scrollTop = val;\n cm.display.scrollbars.setScrollTop(val);\n if (cm.display.scroller.scrollTop != val) { cm.display.scroller.scrollTop = val; }\n }\n\n // Sync scroller and scrollbar, ensure the gutter elements are\n // aligned.\n function setScrollLeft(cm, val, isScroller, forceScroll) {\n val = Math.max(0, Math.min(val, cm.display.scroller.scrollWidth - cm.display.scroller.clientWidth));\n if ((isScroller ? val == cm.doc.scrollLeft : Math.abs(cm.doc.scrollLeft - val) < 2) && !forceScroll) { return }\n cm.doc.scrollLeft = val;\n alignHorizontally(cm);\n if (cm.display.scroller.scrollLeft != val) { cm.display.scroller.scrollLeft = val; }\n cm.display.scrollbars.setScrollLeft(val);\n }\n\n // SCROLLBARS\n\n // Prepare DOM reads needed to update the scrollbars. Done in one\n // shot to minimize update/measure roundtrips.\n function measureForScrollbars(cm) {\n var d = cm.display, gutterW = d.gutters.offsetWidth;\n var docH = Math.round(cm.doc.height + paddingVert(cm.display));\n return {\n clientHeight: d.scroller.clientHeight,\n viewHeight: d.wrapper.clientHeight,\n scrollWidth: d.scroller.scrollWidth, clientWidth: d.scroller.clientWidth,\n viewWidth: d.wrapper.clientWidth,\n barLeft: cm.options.fixedGutter ? gutterW : 0,\n docHeight: docH,\n scrollHeight: docH + scrollGap(cm) + d.barHeight,\n nativeBarWidth: d.nativeBarWidth,\n gutterWidth: gutterW\n }\n }\n\n var NativeScrollbars = function(place, scroll, cm) {\n this.cm = cm;\n var vert = this.vert = elt(\"div\", [elt(\"div\", null, null, \"min-width: 1px\")], \"CodeMirror-vscrollbar\");\n var horiz = this.horiz = elt(\"div\", [elt(\"div\", null, null, \"height: 100%; min-height: 1px\")], \"CodeMirror-hscrollbar\");\n vert.tabIndex = horiz.tabIndex = -1;\n place(vert); place(horiz);\n\n on(vert, \"scroll\", function () {\n if (vert.clientHeight) { scroll(vert.scrollTop, \"vertical\"); }\n });\n on(horiz, \"scroll\", function () {\n if (horiz.clientWidth) { scroll(horiz.scrollLeft, \"horizontal\"); }\n });\n\n this.checkedZeroWidth = false;\n // Need to set a minimum width to see the scrollbar on IE7 (but must not set it on IE8).\n if (ie && ie_version < 8) { this.horiz.style.minHeight = this.vert.style.minWidth = \"18px\"; }\n };\n\n NativeScrollbars.prototype.update = function (measure) {\n var needsH = measure.scrollWidth > measure.clientWidth + 1;\n var needsV = measure.scrollHeight > measure.clientHeight + 1;\n var sWidth = measure.nativeBarWidth;\n\n if (needsV) {\n this.vert.style.display = \"block\";\n this.vert.style.bottom = needsH ? sWidth + \"px\" : \"0\";\n var totalHeight = measure.viewHeight - (needsH ? sWidth : 0);\n // A bug in IE8 can cause this value to be negative, so guard it.\n this.vert.firstChild.style.height =\n Math.max(0, measure.scrollHeight - measure.clientHeight + totalHeight) + \"px\";\n } else {\n this.vert.scrollTop = 0;\n this.vert.style.display = \"\";\n this.vert.firstChild.style.height = \"0\";\n }\n\n if (needsH) {\n this.horiz.style.display = \"block\";\n this.horiz.style.right = needsV ? sWidth + \"px\" : \"0\";\n this.horiz.style.left = measure.barLeft + \"px\";\n var totalWidth = measure.viewWidth - measure.barLeft - (needsV ? sWidth : 0);\n this.horiz.firstChild.style.width =\n Math.max(0, measure.scrollWidth - measure.clientWidth + totalWidth) + \"px\";\n } else {\n this.horiz.style.display = \"\";\n this.horiz.firstChild.style.width = \"0\";\n }\n\n if (!this.checkedZeroWidth && measure.clientHeight > 0) {\n if (sWidth == 0) { this.zeroWidthHack(); }\n this.checkedZeroWidth = true;\n }\n\n return {right: needsV ? sWidth : 0, bottom: needsH ? sWidth : 0}\n };\n\n NativeScrollbars.prototype.setScrollLeft = function (pos) {\n if (this.horiz.scrollLeft != pos) { this.horiz.scrollLeft = pos; }\n if (this.disableHoriz) { this.enableZeroWidthBar(this.horiz, this.disableHoriz, \"horiz\"); }\n };\n\n NativeScrollbars.prototype.setScrollTop = function (pos) {\n if (this.vert.scrollTop != pos) { this.vert.scrollTop = pos; }\n if (this.disableVert) { this.enableZeroWidthBar(this.vert, this.disableVert, \"vert\"); }\n };\n\n NativeScrollbars.prototype.zeroWidthHack = function () {\n var w = mac && !mac_geMountainLion ? \"12px\" : \"18px\";\n this.horiz.style.height = this.vert.style.width = w;\n this.horiz.style.visibility = this.vert.style.visibility = \"hidden\";\n this.disableHoriz = new Delayed;\n this.disableVert = new Delayed;\n };\n\n NativeScrollbars.prototype.enableZeroWidthBar = function (bar, delay, type) {\n bar.style.visibility = \"\";\n function maybeDisable() {\n // To find out whether the scrollbar is still visible, we\n // check whether the element under the pixel in the bottom\n // right corner of the scrollbar box is the scrollbar box\n // itself (when the bar is still visible) or its filler child\n // (when the bar is hidden). If it is still visible, we keep\n // it enabled, if it's hidden, we disable pointer events.\n var box = bar.getBoundingClientRect();\n var elt = type == \"vert\" ? document.elementFromPoint(box.right - 1, (box.top + box.bottom) / 2)\n : document.elementFromPoint((box.right + box.left) / 2, box.bottom - 1);\n if (elt != bar) { bar.style.visibility = \"hidden\"; }\n else { delay.set(1000, maybeDisable); }\n }\n delay.set(1000, maybeDisable);\n };\n\n NativeScrollbars.prototype.clear = function () {\n var parent = this.horiz.parentNode;\n parent.removeChild(this.horiz);\n parent.removeChild(this.vert);\n };\n\n var NullScrollbars = function () {};\n\n NullScrollbars.prototype.update = function () { return {bottom: 0, right: 0} };\n NullScrollbars.prototype.setScrollLeft = function () {};\n NullScrollbars.prototype.setScrollTop = function () {};\n NullScrollbars.prototype.clear = function () {};\n\n function updateScrollbars(cm, measure) {\n if (!measure) { measure = measureForScrollbars(cm); }\n var startWidth = cm.display.barWidth, startHeight = cm.display.barHeight;\n updateScrollbarsInner(cm, measure);\n for (var i = 0; i < 4 && startWidth != cm.display.barWidth || startHeight != cm.display.barHeight; i++) {\n if (startWidth != cm.display.barWidth && cm.options.lineWrapping)\n { updateHeightsInViewport(cm); }\n updateScrollbarsInner(cm, measureForScrollbars(cm));\n startWidth = cm.display.barWidth; startHeight = cm.display.barHeight;\n }\n }\n\n // Re-synchronize the fake scrollbars with the actual size of the\n // content.\n function updateScrollbarsInner(cm, measure) {\n var d = cm.display;\n var sizes = d.scrollbars.update(measure);\n\n d.sizer.style.paddingRight = (d.barWidth = sizes.right) + \"px\";\n d.sizer.style.paddingBottom = (d.barHeight = sizes.bottom) + \"px\";\n d.heightForcer.style.borderBottom = sizes.bottom + \"px solid transparent\";\n\n if (sizes.right && sizes.bottom) {\n d.scrollbarFiller.style.display = \"block\";\n d.scrollbarFiller.style.height = sizes.bottom + \"px\";\n d.scrollbarFiller.style.width = sizes.right + \"px\";\n } else { d.scrollbarFiller.style.display = \"\"; }\n if (sizes.bottom && cm.options.coverGutterNextToScrollbar && cm.options.fixedGutter) {\n d.gutterFiller.style.display = \"block\";\n d.gutterFiller.style.height = sizes.bottom + \"px\";\n d.gutterFiller.style.width = measure.gutterWidth + \"px\";\n } else { d.gutterFiller.style.display = \"\"; }\n }\n\n var scrollbarModel = {\"native\": NativeScrollbars, \"null\": NullScrollbars};\n\n function initScrollbars(cm) {\n if (cm.display.scrollbars) {\n cm.display.scrollbars.clear();\n if (cm.display.scrollbars.addClass)\n { rmClass(cm.display.wrapper, cm.display.scrollbars.addClass); }\n }\n\n cm.display.scrollbars = new scrollbarModel[cm.options.scrollbarStyle](function (node) {\n cm.display.wrapper.insertBefore(node, cm.display.scrollbarFiller);\n // Prevent clicks in the scrollbars from killing focus\n on(node, \"mousedown\", function () {\n if (cm.state.focused) { setTimeout(function () { return cm.display.input.focus(); }, 0); }\n });\n node.setAttribute(\"cm-not-content\", \"true\");\n }, function (pos, axis) {\n if (axis == \"horizontal\") { setScrollLeft(cm, pos); }\n else { updateScrollTop(cm, pos); }\n }, cm);\n if (cm.display.scrollbars.addClass)\n { addClass(cm.display.wrapper, cm.display.scrollbars.addClass); }\n }\n\n // Operations are used to wrap a series of changes to the editor\n // state in such a way that each change won't have to update the\n // cursor and display (which would be awkward, slow, and\n // error-prone). Instead, display updates are batched and then all\n // combined and executed at once.\n\n var nextOpId = 0;\n // Start a new operation.\n function startOperation(cm) {\n cm.curOp = {\n cm: cm,\n viewChanged: false, // Flag that indicates that lines might need to be redrawn\n startHeight: cm.doc.height, // Used to detect need to update scrollbar\n forceUpdate: false, // Used to force a redraw\n updateInput: 0, // Whether to reset the input textarea\n typing: false, // Whether this reset should be careful to leave existing text (for compositing)\n changeObjs: null, // Accumulated changes, for firing change events\n cursorActivityHandlers: null, // Set of handlers to fire cursorActivity on\n cursorActivityCalled: 0, // Tracks which cursorActivity handlers have been called already\n selectionChanged: false, // Whether the selection needs to be redrawn\n updateMaxLine: false, // Set when the widest line needs to be determined anew\n scrollLeft: null, scrollTop: null, // Intermediate scroll position, not pushed to DOM yet\n scrollToPos: null, // Used to scroll to a specific position\n focus: false,\n id: ++nextOpId, // Unique ID\n markArrays: null // Used by addMarkedSpan\n };\n pushOperation(cm.curOp);\n }\n\n // Finish an operation, updating the display and signalling delayed events\n function endOperation(cm) {\n var op = cm.curOp;\n if (op) { finishOperation(op, function (group) {\n for (var i = 0; i < group.ops.length; i++)\n { group.ops[i].cm.curOp = null; }\n endOperations(group);\n }); }\n }\n\n // The DOM updates done when an operation finishes are batched so\n // that the minimum number of relayouts are required.\n function endOperations(group) {\n var ops = group.ops;\n for (var i = 0; i < ops.length; i++) // Read DOM\n { endOperation_R1(ops[i]); }\n for (var i$1 = 0; i$1 < ops.length; i$1++) // Write DOM (maybe)\n { endOperation_W1(ops[i$1]); }\n for (var i$2 = 0; i$2 < ops.length; i$2++) // Read DOM\n { endOperation_R2(ops[i$2]); }\n for (var i$3 = 0; i$3 < ops.length; i$3++) // Write DOM (maybe)\n { endOperation_W2(ops[i$3]); }\n for (var i$4 = 0; i$4 < ops.length; i$4++) // Read DOM\n { endOperation_finish(ops[i$4]); }\n }\n\n function endOperation_R1(op) {\n var cm = op.cm, display = cm.display;\n maybeClipScrollbars(cm);\n if (op.updateMaxLine) { findMaxLine(cm); }\n\n op.mustUpdate = op.viewChanged || op.forceUpdate || op.scrollTop != null ||\n op.scrollToPos && (op.scrollToPos.from.line < display.viewFrom ||\n op.scrollToPos.to.line >= display.viewTo) ||\n display.maxLineChanged && cm.options.lineWrapping;\n op.update = op.mustUpdate &&\n new DisplayUpdate(cm, op.mustUpdate && {top: op.scrollTop, ensure: op.scrollToPos}, op.forceUpdate);\n }\n\n function endOperation_W1(op) {\n op.updatedDisplay = op.mustUpdate && updateDisplayIfNeeded(op.cm, op.update);\n }\n\n function endOperation_R2(op) {\n var cm = op.cm, display = cm.display;\n if (op.updatedDisplay) { updateHeightsInViewport(cm); }\n\n op.barMeasure = measureForScrollbars(cm);\n\n // If the max line changed since it was last measured, measure it,\n // and ensure the document's width matches it.\n // updateDisplay_W2 will use these properties to do the actual resizing\n if (display.maxLineChanged && !cm.options.lineWrapping) {\n op.adjustWidthTo = measureChar(cm, display.maxLine, display.maxLine.text.length).left + 3;\n cm.display.sizerWidth = op.adjustWidthTo;\n op.barMeasure.scrollWidth =\n Math.max(display.scroller.clientWidth, display.sizer.offsetLeft + op.adjustWidthTo + scrollGap(cm) + cm.display.barWidth);\n op.maxScrollLeft = Math.max(0, display.sizer.offsetLeft + op.adjustWidthTo - displayWidth(cm));\n }\n\n if (op.updatedDisplay || op.selectionChanged)\n { op.preparedSelection = display.input.prepareSelection(); }\n }\n\n function endOperation_W2(op) {\n var cm = op.cm;\n\n if (op.adjustWidthTo != null) {\n cm.display.sizer.style.minWidth = op.adjustWidthTo + \"px\";\n if (op.maxScrollLeft < cm.doc.scrollLeft)\n { setScrollLeft(cm, Math.min(cm.display.scroller.scrollLeft, op.maxScrollLeft), true); }\n cm.display.maxLineChanged = false;\n }\n\n var takeFocus = op.focus && op.focus == activeElt(root(cm));\n if (op.preparedSelection)\n { cm.display.input.showSelection(op.preparedSelection, takeFocus); }\n if (op.updatedDisplay || op.startHeight != cm.doc.height)\n { updateScrollbars(cm, op.barMeasure); }\n if (op.updatedDisplay)\n { setDocumentHeight(cm, op.barMeasure); }\n\n if (op.selectionChanged) { restartBlink(cm); }\n\n if (cm.state.focused && op.updateInput)\n { cm.display.input.reset(op.typing); }\n if (takeFocus) { ensureFocus(op.cm); }\n }\n\n function endOperation_finish(op) {\n var cm = op.cm, display = cm.display, doc = cm.doc;\n\n if (op.updatedDisplay) { postUpdateDisplay(cm, op.update); }\n\n // Abort mouse wheel delta measurement, when scrolling explicitly\n if (display.wheelStartX != null && (op.scrollTop != null || op.scrollLeft != null || op.scrollToPos))\n { display.wheelStartX = display.wheelStartY = null; }\n\n // Propagate the scroll position to the actual DOM scroller\n if (op.scrollTop != null) { setScrollTop(cm, op.scrollTop, op.forceScroll); }\n\n if (op.scrollLeft != null) { setScrollLeft(cm, op.scrollLeft, true, true); }\n // If we need to scroll a specific position into view, do so.\n if (op.scrollToPos) {\n var rect = scrollPosIntoView(cm, clipPos(doc, op.scrollToPos.from),\n clipPos(doc, op.scrollToPos.to), op.scrollToPos.margin);\n maybeScrollWindow(cm, rect);\n }\n\n // Fire events for markers that are hidden/unidden by editing or\n // undoing\n var hidden = op.maybeHiddenMarkers, unhidden = op.maybeUnhiddenMarkers;\n if (hidden) { for (var i = 0; i < hidden.length; ++i)\n { if (!hidden[i].lines.length) { signal(hidden[i], \"hide\"); } } }\n if (unhidden) { for (var i$1 = 0; i$1 < unhidden.length; ++i$1)\n { if (unhidden[i$1].lines.length) { signal(unhidden[i$1], \"unhide\"); } } }\n\n if (display.wrapper.offsetHeight)\n { doc.scrollTop = cm.display.scroller.scrollTop; }\n\n // Fire change events, and delayed event handlers\n if (op.changeObjs)\n { signal(cm, \"changes\", cm, op.changeObjs); }\n if (op.update)\n { op.update.finish(); }\n }\n\n // Run the given function in an operation\n function runInOp(cm, f) {\n if (cm.curOp) { return f() }\n startOperation(cm);\n try { return f() }\n finally { endOperation(cm); }\n }\n // Wraps a function in an operation. Returns the wrapped function.\n function operation(cm, f) {\n return function() {\n if (cm.curOp) { return f.apply(cm, arguments) }\n startOperation(cm);\n try { return f.apply(cm, arguments) }\n finally { endOperation(cm); }\n }\n }\n // Used to add methods to editor and doc instances, wrapping them in\n // operations.\n function methodOp(f) {\n return function() {\n if (this.curOp) { return f.apply(this, arguments) }\n startOperation(this);\n try { return f.apply(this, arguments) }\n finally { endOperation(this); }\n }\n }\n function docMethodOp(f) {\n return function() {\n var cm = this.cm;\n if (!cm || cm.curOp) { return f.apply(this, arguments) }\n startOperation(cm);\n try { return f.apply(this, arguments) }\n finally { endOperation(cm); }\n }\n }\n\n // HIGHLIGHT WORKER\n\n function startWorker(cm, time) {\n if (cm.doc.highlightFrontier < cm.display.viewTo)\n { cm.state.highlight.set(time, bind(highlightWorker, cm)); }\n }\n\n function highlightWorker(cm) {\n var doc = cm.doc;\n if (doc.highlightFrontier >= cm.display.viewTo) { return }\n var end = +new Date + cm.options.workTime;\n var context = getContextBefore(cm, doc.highlightFrontier);\n var changedLines = [];\n\n doc.iter(context.line, Math.min(doc.first + doc.size, cm.display.viewTo + 500), function (line) {\n if (context.line >= cm.display.viewFrom) { // Visible\n var oldStyles = line.styles;\n var resetState = line.text.length > cm.options.maxHighlightLength ? copyState(doc.mode, context.state) : null;\n var highlighted = highlightLine(cm, line, context, true);\n if (resetState) { context.state = resetState; }\n line.styles = highlighted.styles;\n var oldCls = line.styleClasses, newCls = highlighted.classes;\n if (newCls) { line.styleClasses = newCls; }\n else if (oldCls) { line.styleClasses = null; }\n var ischange = !oldStyles || oldStyles.length != line.styles.length ||\n oldCls != newCls && (!oldCls || !newCls || oldCls.bgClass != newCls.bgClass || oldCls.textClass != newCls.textClass);\n for (var i = 0; !ischange && i < oldStyles.length; ++i) { ischange = oldStyles[i] != line.styles[i]; }\n if (ischange) { changedLines.push(context.line); }\n line.stateAfter = context.save();\n context.nextLine();\n } else {\n if (line.text.length <= cm.options.maxHighlightLength)\n { processLine(cm, line.text, context); }\n line.stateAfter = context.line % 5 == 0 ? context.save() : null;\n context.nextLine();\n }\n if (+new Date > end) {\n startWorker(cm, cm.options.workDelay);\n return true\n }\n });\n doc.highlightFrontier = context.line;\n doc.modeFrontier = Math.max(doc.modeFrontier, context.line);\n if (changedLines.length) { runInOp(cm, function () {\n for (var i = 0; i < changedLines.length; i++)\n { regLineChange(cm, changedLines[i], \"text\"); }\n }); }\n }\n\n // DISPLAY DRAWING\n\n var DisplayUpdate = function(cm, viewport, force) {\n var display = cm.display;\n\n this.viewport = viewport;\n // Store some values that we'll need later (but don't want to force a relayout for)\n this.visible = visibleLines(display, cm.doc, viewport);\n this.editorIsHidden = !display.wrapper.offsetWidth;\n this.wrapperHeight = display.wrapper.clientHeight;\n this.wrapperWidth = display.wrapper.clientWidth;\n this.oldDisplayWidth = displayWidth(cm);\n this.force = force;\n this.dims = getDimensions(cm);\n this.events = [];\n };\n\n DisplayUpdate.prototype.signal = function (emitter, type) {\n if (hasHandler(emitter, type))\n { this.events.push(arguments); }\n };\n DisplayUpdate.prototype.finish = function () {\n for (var i = 0; i < this.events.length; i++)\n { signal.apply(null, this.events[i]); }\n };\n\n function maybeClipScrollbars(cm) {\n var display = cm.display;\n if (!display.scrollbarsClipped && display.scroller.offsetWidth) {\n display.nativeBarWidth = display.scroller.offsetWidth - display.scroller.clientWidth;\n display.heightForcer.style.height = scrollGap(cm) + \"px\";\n display.sizer.style.marginBottom = -display.nativeBarWidth + \"px\";\n display.sizer.style.borderRightWidth = scrollGap(cm) + \"px\";\n display.scrollbarsClipped = true;\n }\n }\n\n function selectionSnapshot(cm) {\n if (cm.hasFocus()) { return null }\n var active = activeElt(root(cm));\n if (!active || !contains(cm.display.lineDiv, active)) { return null }\n var result = {activeElt: active};\n if (window.getSelection) {\n var sel = win(cm).getSelection();\n if (sel.anchorNode && sel.extend && contains(cm.display.lineDiv, sel.anchorNode)) {\n result.anchorNode = sel.anchorNode;\n result.anchorOffset = sel.anchorOffset;\n result.focusNode = sel.focusNode;\n result.focusOffset = sel.focusOffset;\n }\n }\n return result\n }\n\n function restoreSelection(snapshot) {\n if (!snapshot || !snapshot.activeElt || snapshot.activeElt == activeElt(rootNode(snapshot.activeElt))) { return }\n snapshot.activeElt.focus();\n if (!/^(INPUT|TEXTAREA)$/.test(snapshot.activeElt.nodeName) &&\n snapshot.anchorNode && contains(document.body, snapshot.anchorNode) && contains(document.body, snapshot.focusNode)) {\n var doc = snapshot.activeElt.ownerDocument;\n var sel = doc.defaultView.getSelection(), range = doc.createRange();\n range.setEnd(snapshot.anchorNode, snapshot.anchorOffset);\n range.collapse(false);\n sel.removeAllRanges();\n sel.addRange(range);\n sel.extend(snapshot.focusNode, snapshot.focusOffset);\n }\n }\n\n // Does the actual updating of the line display. Bails out\n // (returning false) when there is nothing to be done and forced is\n // false.\n function updateDisplayIfNeeded(cm, update) {\n var display = cm.display, doc = cm.doc;\n\n if (update.editorIsHidden) {\n resetView(cm);\n return false\n }\n\n // Bail out if the visible area is already rendered and nothing changed.\n if (!update.force &&\n update.visible.from >= display.viewFrom && update.visible.to <= display.viewTo &&\n (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo) &&\n display.renderedView == display.view && countDirtyView(cm) == 0)\n { return false }\n\n if (maybeUpdateLineNumberWidth(cm)) {\n resetView(cm);\n update.dims = getDimensions(cm);\n }\n\n // Compute a suitable new viewport (from & to)\n var end = doc.first + doc.size;\n var from = Math.max(update.visible.from - cm.options.viewportMargin, doc.first);\n var to = Math.min(end, update.visible.to + cm.options.viewportMargin);\n if (display.viewFrom < from && from - display.viewFrom < 20) { from = Math.max(doc.first, display.viewFrom); }\n if (display.viewTo > to && display.viewTo - to < 20) { to = Math.min(end, display.viewTo); }\n if (sawCollapsedSpans) {\n from = visualLineNo(cm.doc, from);\n to = visualLineEndNo(cm.doc, to);\n }\n\n var different = from != display.viewFrom || to != display.viewTo ||\n display.lastWrapHeight != update.wrapperHeight || display.lastWrapWidth != update.wrapperWidth;\n adjustView(cm, from, to);\n\n display.viewOffset = heightAtLine(getLine(cm.doc, display.viewFrom));\n // Position the mover div to align with the current scroll position\n cm.display.mover.style.top = display.viewOffset + \"px\";\n\n var toUpdate = countDirtyView(cm);\n if (!different && toUpdate == 0 && !update.force && display.renderedView == display.view &&\n (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo))\n { return false }\n\n // For big changes, we hide the enclosing element during the\n // update, since that speeds up the operations on most browsers.\n var selSnapshot = selectionSnapshot(cm);\n if (toUpdate > 4) { display.lineDiv.style.display = \"none\"; }\n patchDisplay(cm, display.updateLineNumbers, update.dims);\n if (toUpdate > 4) { display.lineDiv.style.display = \"\"; }\n display.renderedView = display.view;\n // There might have been a widget with a focused element that got\n // hidden or updated, if so re-focus it.\n restoreSelection(selSnapshot);\n\n // Prevent selection and cursors from interfering with the scroll\n // width and height.\n removeChildren(display.cursorDiv);\n removeChildren(display.selectionDiv);\n display.gutters.style.height = display.sizer.style.minHeight = 0;\n\n if (different) {\n display.lastWrapHeight = update.wrapperHeight;\n display.lastWrapWidth = update.wrapperWidth;\n startWorker(cm, 400);\n }\n\n display.updateLineNumbers = null;\n\n return true\n }\n\n function postUpdateDisplay(cm, update) {\n var viewport = update.viewport;\n\n for (var first = true;; first = false) {\n if (!first || !cm.options.lineWrapping || update.oldDisplayWidth == displayWidth(cm)) {\n // Clip forced viewport to actual scrollable area.\n if (viewport && viewport.top != null)\n { viewport = {top: Math.min(cm.doc.height + paddingVert(cm.display) - displayHeight(cm), viewport.top)}; }\n // Updated line heights might result in the drawn area not\n // actually covering the viewport. Keep looping until it does.\n update.visible = visibleLines(cm.display, cm.doc, viewport);\n if (update.visible.from >= cm.display.viewFrom && update.visible.to <= cm.display.viewTo)\n { break }\n } else if (first) {\n update.visible = visibleLines(cm.display, cm.doc, viewport);\n }\n if (!updateDisplayIfNeeded(cm, update)) { break }\n updateHeightsInViewport(cm);\n var barMeasure = measureForScrollbars(cm);\n updateSelection(cm);\n updateScrollbars(cm, barMeasure);\n setDocumentHeight(cm, barMeasure);\n update.force = false;\n }\n\n update.signal(cm, \"update\", cm);\n if (cm.display.viewFrom != cm.display.reportedViewFrom || cm.display.viewTo != cm.display.reportedViewTo) {\n update.signal(cm, \"viewportChange\", cm, cm.display.viewFrom, cm.display.viewTo);\n cm.display.reportedViewFrom = cm.display.viewFrom; cm.display.reportedViewTo = cm.display.viewTo;\n }\n }\n\n function updateDisplaySimple(cm, viewport) {\n var update = new DisplayUpdate(cm, viewport);\n if (updateDisplayIfNeeded(cm, update)) {\n updateHeightsInViewport(cm);\n postUpdateDisplay(cm, update);\n var barMeasure = measureForScrollbars(cm);\n updateSelection(cm);\n updateScrollbars(cm, barMeasure);\n setDocumentHeight(cm, barMeasure);\n update.finish();\n }\n }\n\n // Sync the actual display DOM structure with display.view, removing\n // nodes for lines that are no longer in view, and creating the ones\n // that are not there yet, and updating the ones that are out of\n // date.\n function patchDisplay(cm, updateNumbersFrom, dims) {\n var display = cm.display, lineNumbers = cm.options.lineNumbers;\n var container = display.lineDiv, cur = container.firstChild;\n\n function rm(node) {\n var next = node.nextSibling;\n // Works around a throw-scroll bug in OS X Webkit\n if (webkit && mac && cm.display.currentWheelTarget == node)\n { node.style.display = \"none\"; }\n else\n { node.parentNode.removeChild(node); }\n return next\n }\n\n var view = display.view, lineN = display.viewFrom;\n // Loop over the elements in the view, syncing cur (the DOM nodes\n // in display.lineDiv) with the view as we go.\n for (var i = 0; i < view.length; i++) {\n var lineView = view[i];\n if (lineView.hidden) ; else if (!lineView.node || lineView.node.parentNode != container) { // Not drawn yet\n var node = buildLineElement(cm, lineView, lineN, dims);\n container.insertBefore(node, cur);\n } else { // Already drawn\n while (cur != lineView.node) { cur = rm(cur); }\n var updateNumber = lineNumbers && updateNumbersFrom != null &&\n updateNumbersFrom <= lineN && lineView.lineNumber;\n if (lineView.changes) {\n if (indexOf(lineView.changes, \"gutter\") > -1) { updateNumber = false; }\n updateLineForChanges(cm, lineView, lineN, dims);\n }\n if (updateNumber) {\n removeChildren(lineView.lineNumber);\n lineView.lineNumber.appendChild(document.createTextNode(lineNumberFor(cm.options, lineN)));\n }\n cur = lineView.node.nextSibling;\n }\n lineN += lineView.size;\n }\n while (cur) { cur = rm(cur); }\n }\n\n function updateGutterSpace(display) {\n var width = display.gutters.offsetWidth;\n display.sizer.style.marginLeft = width + \"px\";\n // Send an event to consumers responding to changes in gutter width.\n signalLater(display, \"gutterChanged\", display);\n }\n\n function setDocumentHeight(cm, measure) {\n cm.display.sizer.style.minHeight = measure.docHeight + \"px\";\n cm.display.heightForcer.style.top = measure.docHeight + \"px\";\n cm.display.gutters.style.height = (measure.docHeight + cm.display.barHeight + scrollGap(cm)) + \"px\";\n }\n\n // Re-align line numbers and gutter marks to compensate for\n // horizontal scrolling.\n function alignHorizontally(cm) {\n var display = cm.display, view = display.view;\n if (!display.alignWidgets && (!display.gutters.firstChild || !cm.options.fixedGutter)) { return }\n var comp = compensateForHScroll(display) - display.scroller.scrollLeft + cm.doc.scrollLeft;\n var gutterW = display.gutters.offsetWidth, left = comp + \"px\";\n for (var i = 0; i < view.length; i++) { if (!view[i].hidden) {\n if (cm.options.fixedGutter) {\n if (view[i].gutter)\n { view[i].gutter.style.left = left; }\n if (view[i].gutterBackground)\n { view[i].gutterBackground.style.left = left; }\n }\n var align = view[i].alignable;\n if (align) { for (var j = 0; j < align.length; j++)\n { align[j].style.left = left; } }\n } }\n if (cm.options.fixedGutter)\n { display.gutters.style.left = (comp + gutterW) + \"px\"; }\n }\n\n // Used to ensure that the line number gutter is still the right\n // size for the current document size. Returns true when an update\n // is needed.\n function maybeUpdateLineNumberWidth(cm) {\n if (!cm.options.lineNumbers) { return false }\n var doc = cm.doc, last = lineNumberFor(cm.options, doc.first + doc.size - 1), display = cm.display;\n if (last.length != display.lineNumChars) {\n var test = display.measure.appendChild(elt(\"div\", [elt(\"div\", last)],\n \"CodeMirror-linenumber CodeMirror-gutter-elt\"));\n var innerW = test.firstChild.offsetWidth, padding = test.offsetWidth - innerW;\n display.lineGutter.style.width = \"\";\n display.lineNumInnerWidth = Math.max(innerW, display.lineGutter.offsetWidth - padding) + 1;\n display.lineNumWidth = display.lineNumInnerWidth + padding;\n display.lineNumChars = display.lineNumInnerWidth ? last.length : -1;\n display.lineGutter.style.width = display.lineNumWidth + \"px\";\n updateGutterSpace(cm.display);\n return true\n }\n return false\n }\n\n function getGutters(gutters, lineNumbers) {\n var result = [], sawLineNumbers = false;\n for (var i = 0; i < gutters.length; i++) {\n var name = gutters[i], style = null;\n if (typeof name != \"string\") { style = name.style; name = name.className; }\n if (name == \"CodeMirror-linenumbers\") {\n if (!lineNumbers) { continue }\n else { sawLineNumbers = true; }\n }\n result.push({className: name, style: style});\n }\n if (lineNumbers && !sawLineNumbers) { result.push({className: \"CodeMirror-linenumbers\", style: null}); }\n return result\n }\n\n // Rebuild the gutter elements, ensure the margin to the left of the\n // code matches their width.\n function renderGutters(display) {\n var gutters = display.gutters, specs = display.gutterSpecs;\n removeChildren(gutters);\n display.lineGutter = null;\n for (var i = 0; i < specs.length; ++i) {\n var ref = specs[i];\n var className = ref.className;\n var style = ref.style;\n var gElt = gutters.appendChild(elt(\"div\", null, \"CodeMirror-gutter \" + className));\n if (style) { gElt.style.cssText = style; }\n if (className == \"CodeMirror-linenumbers\") {\n display.lineGutter = gElt;\n gElt.style.width = (display.lineNumWidth || 1) + \"px\";\n }\n }\n gutters.style.display = specs.length ? \"\" : \"none\";\n updateGutterSpace(display);\n }\n\n function updateGutters(cm) {\n renderGutters(cm.display);\n regChange(cm);\n alignHorizontally(cm);\n }\n\n // The display handles the DOM integration, both for input reading\n // and content drawing. It holds references to DOM nodes and\n // display-related state.\n\n function Display(place, doc, input, options) {\n var d = this;\n this.input = input;\n\n // Covers bottom-right square when both scrollbars are present.\n d.scrollbarFiller = elt(\"div\", null, \"CodeMirror-scrollbar-filler\");\n d.scrollbarFiller.setAttribute(\"cm-not-content\", \"true\");\n // Covers bottom of gutter when coverGutterNextToScrollbar is on\n // and h scrollbar is present.\n d.gutterFiller = elt(\"div\", null, \"CodeMirror-gutter-filler\");\n d.gutterFiller.setAttribute(\"cm-not-content\", \"true\");\n // Will contain the actual code, positioned to cover the viewport.\n d.lineDiv = eltP(\"div\", null, \"CodeMirror-code\");\n // Elements are added to these to represent selection and cursors.\n d.selectionDiv = elt(\"div\", null, null, \"position: relative; z-index: 1\");\n d.cursorDiv = elt(\"div\", null, \"CodeMirror-cursors\");\n // A visibility: hidden element used to find the size of things.\n d.measure = elt(\"div\", null, \"CodeMirror-measure\");\n // When lines outside of the viewport are measured, they are drawn in this.\n d.lineMeasure = elt(\"div\", null, \"CodeMirror-measure\");\n // Wraps everything that needs to exist inside the vertically-padded coordinate system\n d.lineSpace = eltP(\"div\", [d.measure, d.lineMeasure, d.selectionDiv, d.cursorDiv, d.lineDiv],\n null, \"position: relative; outline: none\");\n var lines = eltP(\"div\", [d.lineSpace], \"CodeMirror-lines\");\n // Moved around its parent to cover visible view.\n d.mover = elt(\"div\", [lines], null, \"position: relative\");\n // Set to the height of the document, allowing scrolling.\n d.sizer = elt(\"div\", [d.mover], \"CodeMirror-sizer\");\n d.sizerWidth = null;\n // Behavior of elts with overflow: auto and padding is\n // inconsistent across browsers. This is used to ensure the\n // scrollable area is big enough.\n d.heightForcer = elt(\"div\", null, null, \"position: absolute; height: \" + scrollerGap + \"px; width: 1px;\");\n // Will contain the gutters, if any.\n d.gutters = elt(\"div\", null, \"CodeMirror-gutters\");\n d.lineGutter = null;\n // Actual scrollable element.\n d.scroller = elt(\"div\", [d.sizer, d.heightForcer, d.gutters], \"CodeMirror-scroll\");\n d.scroller.setAttribute(\"tabIndex\", \"-1\");\n // The element in which the editor lives.\n d.wrapper = elt(\"div\", [d.scrollbarFiller, d.gutterFiller, d.scroller], \"CodeMirror\");\n // See #6982. FIXME remove when this has been fixed for a while in Chrome\n if (chrome && chrome_version >= 105) { d.wrapper.style.clipPath = \"inset(0px)\"; }\n\n // This attribute is respected by automatic translation systems such as Google Translate,\n // and may also be respected by tools used by human translators.\n d.wrapper.setAttribute('translate', 'no');\n\n // Work around IE7 z-index bug (not perfect, hence IE7 not really being supported)\n if (ie && ie_version < 8) { d.gutters.style.zIndex = -1; d.scroller.style.paddingRight = 0; }\n if (!webkit && !(gecko && mobile)) { d.scroller.draggable = true; }\n\n if (place) {\n if (place.appendChild) { place.appendChild(d.wrapper); }\n else { place(d.wrapper); }\n }\n\n // Current rendered range (may be bigger than the view window).\n d.viewFrom = d.viewTo = doc.first;\n d.reportedViewFrom = d.reportedViewTo = doc.first;\n // Information about the rendered lines.\n d.view = [];\n d.renderedView = null;\n // Holds info about a single rendered line when it was rendered\n // for measurement, while not in view.\n d.externalMeasured = null;\n // Empty space (in pixels) above the view\n d.viewOffset = 0;\n d.lastWrapHeight = d.lastWrapWidth = 0;\n d.updateLineNumbers = null;\n\n d.nativeBarWidth = d.barHeight = d.barWidth = 0;\n d.scrollbarsClipped = false;\n\n // Used to only resize the line number gutter when necessary (when\n // the amount of lines crosses a boundary that makes its width change)\n d.lineNumWidth = d.lineNumInnerWidth = d.lineNumChars = null;\n // Set to true when a non-horizontal-scrolling line widget is\n // added. As an optimization, line widget aligning is skipped when\n // this is false.\n d.alignWidgets = false;\n\n d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null;\n\n // Tracks the maximum line length so that the horizontal scrollbar\n // can be kept static when scrolling.\n d.maxLine = null;\n d.maxLineLength = 0;\n d.maxLineChanged = false;\n\n // Used for measuring wheel scrolling granularity\n d.wheelDX = d.wheelDY = d.wheelStartX = d.wheelStartY = null;\n\n // True when shift is held down.\n d.shift = false;\n\n // Used to track whether anything happened since the context menu\n // was opened.\n d.selForContextMenu = null;\n\n d.activeTouch = null;\n\n d.gutterSpecs = getGutters(options.gutters, options.lineNumbers);\n renderGutters(d);\n\n input.init(d);\n }\n\n // Since the delta values reported on mouse wheel events are\n // unstandardized between browsers and even browser versions, and\n // generally horribly unpredictable, this code starts by measuring\n // the scroll effect that the first few mouse wheel events have,\n // and, from that, detects the way it can convert deltas to pixel\n // offsets afterwards.\n //\n // The reason we want to know the amount a wheel event will scroll\n // is that it gives us a chance to update the display before the\n // actual scrolling happens, reducing flickering.\n\n var wheelSamples = 0, wheelPixelsPerUnit = null;\n // Fill in a browser-detected starting value on browsers where we\n // know one. These don't have to be accurate -- the result of them\n // being wrong would just be a slight flicker on the first wheel\n // scroll (if it is large enough).\n if (ie) { wheelPixelsPerUnit = -.53; }\n else if (gecko) { wheelPixelsPerUnit = 15; }\n else if (chrome) { wheelPixelsPerUnit = -.7; }\n else if (safari) { wheelPixelsPerUnit = -1/3; }\n\n function wheelEventDelta(e) {\n var dx = e.wheelDeltaX, dy = e.wheelDeltaY;\n if (dx == null && e.detail && e.axis == e.HORIZONTAL_AXIS) { dx = e.detail; }\n if (dy == null && e.detail && e.axis == e.VERTICAL_AXIS) { dy = e.detail; }\n else if (dy == null) { dy = e.wheelDelta; }\n return {x: dx, y: dy}\n }\n function wheelEventPixels(e) {\n var delta = wheelEventDelta(e);\n delta.x *= wheelPixelsPerUnit;\n delta.y *= wheelPixelsPerUnit;\n return delta\n }\n\n function onScrollWheel(cm, e) {\n // On Chrome 102, viewport updates somehow stop wheel-based\n // scrolling. Turning off pointer events during the scroll seems\n // to avoid the issue.\n if (chrome && chrome_version == 102) {\n if (cm.display.chromeScrollHack == null) { cm.display.sizer.style.pointerEvents = \"none\"; }\n else { clearTimeout(cm.display.chromeScrollHack); }\n cm.display.chromeScrollHack = setTimeout(function () {\n cm.display.chromeScrollHack = null;\n cm.display.sizer.style.pointerEvents = \"\";\n }, 100);\n }\n var delta = wheelEventDelta(e), dx = delta.x, dy = delta.y;\n var pixelsPerUnit = wheelPixelsPerUnit;\n if (e.deltaMode === 0) {\n dx = e.deltaX;\n dy = e.deltaY;\n pixelsPerUnit = 1;\n }\n\n var display = cm.display, scroll = display.scroller;\n // Quit if there's nothing to scroll here\n var canScrollX = scroll.scrollWidth > scroll.clientWidth;\n var canScrollY = scroll.scrollHeight > scroll.clientHeight;\n if (!(dx && canScrollX || dy && canScrollY)) { return }\n\n // Webkit browsers on OS X abort momentum scrolls when the target\n // of the scroll event is removed from the scrollable element.\n // This hack (see related code in patchDisplay) makes sure the\n // element is kept around.\n if (dy && mac && webkit) {\n outer: for (var cur = e.target, view = display.view; cur != scroll; cur = cur.parentNode) {\n for (var i = 0; i < view.length; i++) {\n if (view[i].node == cur) {\n cm.display.currentWheelTarget = cur;\n break outer\n }\n }\n }\n }\n\n // On some browsers, horizontal scrolling will cause redraws to\n // happen before the gutter has been realigned, causing it to\n // wriggle around in a most unseemly way. When we have an\n // estimated pixels/delta value, we just handle horizontal\n // scrolling entirely here. It'll be slightly off from native, but\n // better than glitching out.\n if (dx && !gecko && !presto && pixelsPerUnit != null) {\n if (dy && canScrollY)\n { updateScrollTop(cm, Math.max(0, scroll.scrollTop + dy * pixelsPerUnit)); }\n setScrollLeft(cm, Math.max(0, scroll.scrollLeft + dx * pixelsPerUnit));\n // Only prevent default scrolling if vertical scrolling is\n // actually possible. Otherwise, it causes vertical scroll\n // jitter on OSX trackpads when deltaX is small and deltaY\n // is large (issue #3579)\n if (!dy || (dy && canScrollY))\n { e_preventDefault(e); }\n display.wheelStartX = null; // Abort measurement, if in progress\n return\n }\n\n // 'Project' the visible viewport to cover the area that is being\n // scrolled into view (if we know enough to estimate it).\n if (dy && pixelsPerUnit != null) {\n var pixels = dy * pixelsPerUnit;\n var top = cm.doc.scrollTop, bot = top + display.wrapper.clientHeight;\n if (pixels < 0) { top = Math.max(0, top + pixels - 50); }\n else { bot = Math.min(cm.doc.height, bot + pixels + 50); }\n updateDisplaySimple(cm, {top: top, bottom: bot});\n }\n\n if (wheelSamples < 20 && e.deltaMode !== 0) {\n if (display.wheelStartX == null) {\n display.wheelStartX = scroll.scrollLeft; display.wheelStartY = scroll.scrollTop;\n display.wheelDX = dx; display.wheelDY = dy;\n setTimeout(function () {\n if (display.wheelStartX == null) { return }\n var movedX = scroll.scrollLeft - display.wheelStartX;\n var movedY = scroll.scrollTop - display.wheelStartY;\n var sample = (movedY && display.wheelDY && movedY / display.wheelDY) ||\n (movedX && display.wheelDX && movedX / display.wheelDX);\n display.wheelStartX = display.wheelStartY = null;\n if (!sample) { return }\n wheelPixelsPerUnit = (wheelPixelsPerUnit * wheelSamples + sample) / (wheelSamples + 1);\n ++wheelSamples;\n }, 200);\n } else {\n display.wheelDX += dx; display.wheelDY += dy;\n }\n }\n }\n\n // Selection objects are immutable. A new one is created every time\n // the selection changes. A selection is one or more non-overlapping\n // (and non-touching) ranges, sorted, and an integer that indicates\n // which one is the primary selection (the one that's scrolled into\n // view, that getCursor returns, etc).\n var Selection = function(ranges, primIndex) {\n this.ranges = ranges;\n this.primIndex = primIndex;\n };\n\n Selection.prototype.primary = function () { return this.ranges[this.primIndex] };\n\n Selection.prototype.equals = function (other) {\n if (other == this) { return true }\n if (other.primIndex != this.primIndex || other.ranges.length != this.ranges.length) { return false }\n for (var i = 0; i < this.ranges.length; i++) {\n var here = this.ranges[i], there = other.ranges[i];\n if (!equalCursorPos(here.anchor, there.anchor) || !equalCursorPos(here.head, there.head)) { return false }\n }\n return true\n };\n\n Selection.prototype.deepCopy = function () {\n var out = [];\n for (var i = 0; i < this.ranges.length; i++)\n { out[i] = new Range(copyPos(this.ranges[i].anchor), copyPos(this.ranges[i].head)); }\n return new Selection(out, this.primIndex)\n };\n\n Selection.prototype.somethingSelected = function () {\n for (var i = 0; i < this.ranges.length; i++)\n { if (!this.ranges[i].empty()) { return true } }\n return false\n };\n\n Selection.prototype.contains = function (pos, end) {\n if (!end) { end = pos; }\n for (var i = 0; i < this.ranges.length; i++) {\n var range = this.ranges[i];\n if (cmp(end, range.from()) >= 0 && cmp(pos, range.to()) <= 0)\n { return i }\n }\n return -1\n };\n\n var Range = function(anchor, head) {\n this.anchor = anchor; this.head = head;\n };\n\n Range.prototype.from = function () { return minPos(this.anchor, this.head) };\n Range.prototype.to = function () { return maxPos(this.anchor, this.head) };\n Range.prototype.empty = function () { return this.head.line == this.anchor.line && this.head.ch == this.anchor.ch };\n\n // Take an unsorted, potentially overlapping set of ranges, and\n // build a selection out of it. 'Consumes' ranges array (modifying\n // it).\n function normalizeSelection(cm, ranges, primIndex) {\n var mayTouch = cm && cm.options.selectionsMayTouch;\n var prim = ranges[primIndex];\n ranges.sort(function (a, b) { return cmp(a.from(), b.from()); });\n primIndex = indexOf(ranges, prim);\n for (var i = 1; i < ranges.length; i++) {\n var cur = ranges[i], prev = ranges[i - 1];\n var diff = cmp(prev.to(), cur.from());\n if (mayTouch && !cur.empty() ? diff > 0 : diff >= 0) {\n var from = minPos(prev.from(), cur.from()), to = maxPos(prev.to(), cur.to());\n var inv = prev.empty() ? cur.from() == cur.head : prev.from() == prev.head;\n if (i <= primIndex) { --primIndex; }\n ranges.splice(--i, 2, new Range(inv ? to : from, inv ? from : to));\n }\n }\n return new Selection(ranges, primIndex)\n }\n\n function simpleSelection(anchor, head) {\n return new Selection([new Range(anchor, head || anchor)], 0)\n }\n\n // Compute the position of the end of a change (its 'to' property\n // refers to the pre-change end).\n function changeEnd(change) {\n if (!change.text) { return change.to }\n return Pos(change.from.line + change.text.length - 1,\n lst(change.text).length + (change.text.length == 1 ? change.from.ch : 0))\n }\n\n // Adjust a position to refer to the post-change position of the\n // same text, or the end of the change if the change covers it.\n function adjustForChange(pos, change) {\n if (cmp(pos, change.from) < 0) { return pos }\n if (cmp(pos, change.to) <= 0) { return changeEnd(change) }\n\n var line = pos.line + change.text.length - (change.to.line - change.from.line) - 1, ch = pos.ch;\n if (pos.line == change.to.line) { ch += changeEnd(change).ch - change.to.ch; }\n return Pos(line, ch)\n }\n\n function computeSelAfterChange(doc, change) {\n var out = [];\n for (var i = 0; i < doc.sel.ranges.length; i++) {\n var range = doc.sel.ranges[i];\n out.push(new Range(adjustForChange(range.anchor, change),\n adjustForChange(range.head, change)));\n }\n return normalizeSelection(doc.cm, out, doc.sel.primIndex)\n }\n\n function offsetPos(pos, old, nw) {\n if (pos.line == old.line)\n { return Pos(nw.line, pos.ch - old.ch + nw.ch) }\n else\n { return Pos(nw.line + (pos.line - old.line), pos.ch) }\n }\n\n // Used by replaceSelections to allow moving the selection to the\n // start or around the replaced test. Hint may be \"start\" or \"around\".\n function computeReplacedSel(doc, changes, hint) {\n var out = [];\n var oldPrev = Pos(doc.first, 0), newPrev = oldPrev;\n for (var i = 0; i < changes.length; i++) {\n var change = changes[i];\n var from = offsetPos(change.from, oldPrev, newPrev);\n var to = offsetPos(changeEnd(change), oldPrev, newPrev);\n oldPrev = change.to;\n newPrev = to;\n if (hint == \"around\") {\n var range = doc.sel.ranges[i], inv = cmp(range.head, range.anchor) < 0;\n out[i] = new Range(inv ? to : from, inv ? from : to);\n } else {\n out[i] = new Range(from, from);\n }\n }\n return new Selection(out, doc.sel.primIndex)\n }\n\n // Used to get the editor into a consistent state again when options change.\n\n function loadMode(cm) {\n cm.doc.mode = getMode(cm.options, cm.doc.modeOption);\n resetModeState(cm);\n }\n\n function resetModeState(cm) {\n cm.doc.iter(function (line) {\n if (line.stateAfter) { line.stateAfter = null; }\n if (line.styles) { line.styles = null; }\n });\n cm.doc.modeFrontier = cm.doc.highlightFrontier = cm.doc.first;\n startWorker(cm, 100);\n cm.state.modeGen++;\n if (cm.curOp) { regChange(cm); }\n }\n\n // DOCUMENT DATA STRUCTURE\n\n // By default, updates that start and end at the beginning of a line\n // are treated specially, in order to make the association of line\n // widgets and marker elements with the text behave more intuitive.\n function isWholeLineUpdate(doc, change) {\n return change.from.ch == 0 && change.to.ch == 0 && lst(change.text) == \"\" &&\n (!doc.cm || doc.cm.options.wholeLineUpdateBefore)\n }\n\n // Perform a change on the document data structure.\n function updateDoc(doc, change, markedSpans, estimateHeight) {\n function spansFor(n) {return markedSpans ? markedSpans[n] : null}\n function update(line, text, spans) {\n updateLine(line, text, spans, estimateHeight);\n signalLater(line, \"change\", line, change);\n }\n function linesFor(start, end) {\n var result = [];\n for (var i = start; i < end; ++i)\n { result.push(new Line(text[i], spansFor(i), estimateHeight)); }\n return result\n }\n\n var from = change.from, to = change.to, text = change.text;\n var firstLine = getLine(doc, from.line), lastLine = getLine(doc, to.line);\n var lastText = lst(text), lastSpans = spansFor(text.length - 1), nlines = to.line - from.line;\n\n // Adjust the line structure\n if (change.full) {\n doc.insert(0, linesFor(0, text.length));\n doc.remove(text.length, doc.size - text.length);\n } else if (isWholeLineUpdate(doc, change)) {\n // This is a whole-line replace. Treated specially to make\n // sure line objects move the way they are supposed to.\n var added = linesFor(0, text.length - 1);\n update(lastLine, lastLine.text, lastSpans);\n if (nlines) { doc.remove(from.line, nlines); }\n if (added.length) { doc.insert(from.line, added); }\n } else if (firstLine == lastLine) {\n if (text.length == 1) {\n update(firstLine, firstLine.text.slice(0, from.ch) + lastText + firstLine.text.slice(to.ch), lastSpans);\n } else {\n var added$1 = linesFor(1, text.length - 1);\n added$1.push(new Line(lastText + firstLine.text.slice(to.ch), lastSpans, estimateHeight));\n update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));\n doc.insert(from.line + 1, added$1);\n }\n } else if (text.length == 1) {\n update(firstLine, firstLine.text.slice(0, from.ch) + text[0] + lastLine.text.slice(to.ch), spansFor(0));\n doc.remove(from.line + 1, nlines);\n } else {\n update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));\n update(lastLine, lastText + lastLine.text.slice(to.ch), lastSpans);\n var added$2 = linesFor(1, text.length - 1);\n if (nlines > 1) { doc.remove(from.line + 1, nlines - 1); }\n doc.insert(from.line + 1, added$2);\n }\n\n signalLater(doc, \"change\", doc, change);\n }\n\n // Call f for all linked documents.\n function linkedDocs(doc, f, sharedHistOnly) {\n function propagate(doc, skip, sharedHist) {\n if (doc.linked) { for (var i = 0; i < doc.linked.length; ++i) {\n var rel = doc.linked[i];\n if (rel.doc == skip) { continue }\n var shared = sharedHist && rel.sharedHist;\n if (sharedHistOnly && !shared) { continue }\n f(rel.doc, shared);\n propagate(rel.doc, doc, shared);\n } }\n }\n propagate(doc, null, true);\n }\n\n // Attach a document to an editor.\n function attachDoc(cm, doc) {\n if (doc.cm) { throw new Error(\"This document is already in use.\") }\n cm.doc = doc;\n doc.cm = cm;\n estimateLineHeights(cm);\n loadMode(cm);\n setDirectionClass(cm);\n cm.options.direction = doc.direction;\n if (!cm.options.lineWrapping) { findMaxLine(cm); }\n cm.options.mode = doc.modeOption;\n regChange(cm);\n }\n\n function setDirectionClass(cm) {\n (cm.doc.direction == \"rtl\" ? addClass : rmClass)(cm.display.lineDiv, \"CodeMirror-rtl\");\n }\n\n function directionChanged(cm) {\n runInOp(cm, function () {\n setDirectionClass(cm);\n regChange(cm);\n });\n }\n\n function History(prev) {\n // Arrays of change events and selections. Doing something adds an\n // event to done and clears undo. Undoing moves events from done\n // to undone, redoing moves them in the other direction.\n this.done = []; this.undone = [];\n this.undoDepth = prev ? prev.undoDepth : Infinity;\n // Used to track when changes can be merged into a single undo\n // event\n this.lastModTime = this.lastSelTime = 0;\n this.lastOp = this.lastSelOp = null;\n this.lastOrigin = this.lastSelOrigin = null;\n // Used by the isClean() method\n this.generation = this.maxGeneration = prev ? prev.maxGeneration : 1;\n }\n\n // Create a history change event from an updateDoc-style change\n // object.\n function historyChangeFromChange(doc, change) {\n var histChange = {from: copyPos(change.from), to: changeEnd(change), text: getBetween(doc, change.from, change.to)};\n attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1);\n linkedDocs(doc, function (doc) { return attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1); }, true);\n return histChange\n }\n\n // Pop all selection events off the end of a history array. Stop at\n // a change event.\n function clearSelectionEvents(array) {\n while (array.length) {\n var last = lst(array);\n if (last.ranges) { array.pop(); }\n else { break }\n }\n }\n\n // Find the top change event in the history. Pop off selection\n // events that are in the way.\n function lastChangeEvent(hist, force) {\n if (force) {\n clearSelectionEvents(hist.done);\n return lst(hist.done)\n } else if (hist.done.length && !lst(hist.done).ranges) {\n return lst(hist.done)\n } else if (hist.done.length > 1 && !hist.done[hist.done.length - 2].ranges) {\n hist.done.pop();\n return lst(hist.done)\n }\n }\n\n // Register a change in the history. Merges changes that are within\n // a single operation, or are close together with an origin that\n // allows merging (starting with \"+\") into a single event.\n function addChangeToHistory(doc, change, selAfter, opId) {\n var hist = doc.history;\n hist.undone.length = 0;\n var time = +new Date, cur;\n var last;\n\n if ((hist.lastOp == opId ||\n hist.lastOrigin == change.origin && change.origin &&\n ((change.origin.charAt(0) == \"+\" && hist.lastModTime > time - (doc.cm ? doc.cm.options.historyEventDelay : 500)) ||\n change.origin.charAt(0) == \"*\")) &&\n (cur = lastChangeEvent(hist, hist.lastOp == opId))) {\n // Merge this change into the last event\n last = lst(cur.changes);\n if (cmp(change.from, change.to) == 0 && cmp(change.from, last.to) == 0) {\n // Optimized case for simple insertion -- don't want to add\n // new changesets for every character typed\n last.to = changeEnd(change);\n } else {\n // Add new sub-event\n cur.changes.push(historyChangeFromChange(doc, change));\n }\n } else {\n // Can not be merged, start a new event.\n var before = lst(hist.done);\n if (!before || !before.ranges)\n { pushSelectionToHistory(doc.sel, hist.done); }\n cur = {changes: [historyChangeFromChange(doc, change)],\n generation: hist.generation};\n hist.done.push(cur);\n while (hist.done.length > hist.undoDepth) {\n hist.done.shift();\n if (!hist.done[0].ranges) { hist.done.shift(); }\n }\n }\n hist.done.push(selAfter);\n hist.generation = ++hist.maxGeneration;\n hist.lastModTime = hist.lastSelTime = time;\n hist.lastOp = hist.lastSelOp = opId;\n hist.lastOrigin = hist.lastSelOrigin = change.origin;\n\n if (!last) { signal(doc, \"historyAdded\"); }\n }\n\n function selectionEventCanBeMerged(doc, origin, prev, sel) {\n var ch = origin.charAt(0);\n return ch == \"*\" ||\n ch == \"+\" &&\n prev.ranges.length == sel.ranges.length &&\n prev.somethingSelected() == sel.somethingSelected() &&\n new Date - doc.history.lastSelTime <= (doc.cm ? doc.cm.options.historyEventDelay : 500)\n }\n\n // Called whenever the selection changes, sets the new selection as\n // the pending selection in the history, and pushes the old pending\n // selection into the 'done' array when it was significantly\n // different (in number of selected ranges, emptiness, or time).\n function addSelectionToHistory(doc, sel, opId, options) {\n var hist = doc.history, origin = options && options.origin;\n\n // A new event is started when the previous origin does not match\n // the current, or the origins don't allow matching. Origins\n // starting with * are always merged, those starting with + are\n // merged when similar and close together in time.\n if (opId == hist.lastSelOp ||\n (origin && hist.lastSelOrigin == origin &&\n (hist.lastModTime == hist.lastSelTime && hist.lastOrigin == origin ||\n selectionEventCanBeMerged(doc, origin, lst(hist.done), sel))))\n { hist.done[hist.done.length - 1] = sel; }\n else\n { pushSelectionToHistory(sel, hist.done); }\n\n hist.lastSelTime = +new Date;\n hist.lastSelOrigin = origin;\n hist.lastSelOp = opId;\n if (options && options.clearRedo !== false)\n { clearSelectionEvents(hist.undone); }\n }\n\n function pushSelectionToHistory(sel, dest) {\n var top = lst(dest);\n if (!(top && top.ranges && top.equals(sel)))\n { dest.push(sel); }\n }\n\n // Used to store marked span information in the history.\n function attachLocalSpans(doc, change, from, to) {\n var existing = change[\"spans_\" + doc.id], n = 0;\n doc.iter(Math.max(doc.first, from), Math.min(doc.first + doc.size, to), function (line) {\n if (line.markedSpans)\n { (existing || (existing = change[\"spans_\" + doc.id] = {}))[n] = line.markedSpans; }\n ++n;\n });\n }\n\n // When un/re-doing restores text containing marked spans, those\n // that have been explicitly cleared should not be restored.\n function removeClearedSpans(spans) {\n if (!spans) { return null }\n var out;\n for (var i = 0; i < spans.length; ++i) {\n if (spans[i].marker.explicitlyCleared) { if (!out) { out = spans.slice(0, i); } }\n else if (out) { out.push(spans[i]); }\n }\n return !out ? spans : out.length ? out : null\n }\n\n // Retrieve and filter the old marked spans stored in a change event.\n function getOldSpans(doc, change) {\n var found = change[\"spans_\" + doc.id];\n if (!found) { return null }\n var nw = [];\n for (var i = 0; i < change.text.length; ++i)\n { nw.push(removeClearedSpans(found[i])); }\n return nw\n }\n\n // Used for un/re-doing changes from the history. Combines the\n // result of computing the existing spans with the set of spans that\n // existed in the history (so that deleting around a span and then\n // undoing brings back the span).\n function mergeOldSpans(doc, change) {\n var old = getOldSpans(doc, change);\n var stretched = stretchSpansOverChange(doc, change);\n if (!old) { return stretched }\n if (!stretched) { return old }\n\n for (var i = 0; i < old.length; ++i) {\n var oldCur = old[i], stretchCur = stretched[i];\n if (oldCur && stretchCur) {\n spans: for (var j = 0; j < stretchCur.length; ++j) {\n var span = stretchCur[j];\n for (var k = 0; k < oldCur.length; ++k)\n { if (oldCur[k].marker == span.marker) { continue spans } }\n oldCur.push(span);\n }\n } else if (stretchCur) {\n old[i] = stretchCur;\n }\n }\n return old\n }\n\n // Used both to provide a JSON-safe object in .getHistory, and, when\n // detaching a document, to split the history in two\n function copyHistoryArray(events, newGroup, instantiateSel) {\n var copy = [];\n for (var i = 0; i < events.length; ++i) {\n var event = events[i];\n if (event.ranges) {\n copy.push(instantiateSel ? Selection.prototype.deepCopy.call(event) : event);\n continue\n }\n var changes = event.changes, newChanges = [];\n copy.push({changes: newChanges});\n for (var j = 0; j < changes.length; ++j) {\n var change = changes[j], m = (void 0);\n newChanges.push({from: change.from, to: change.to, text: change.text});\n if (newGroup) { for (var prop in change) { if (m = prop.match(/^spans_(\\d+)$/)) {\n if (indexOf(newGroup, Number(m[1])) > -1) {\n lst(newChanges)[prop] = change[prop];\n delete change[prop];\n }\n } } }\n }\n }\n return copy\n }\n\n // The 'scroll' parameter given to many of these indicated whether\n // the new cursor position should be scrolled into view after\n // modifying the selection.\n\n // If shift is held or the extend flag is set, extends a range to\n // include a given position (and optionally a second position).\n // Otherwise, simply returns the range between the given positions.\n // Used for cursor motion and such.\n function extendRange(range, head, other, extend) {\n if (extend) {\n var anchor = range.anchor;\n if (other) {\n var posBefore = cmp(head, anchor) < 0;\n if (posBefore != (cmp(other, anchor) < 0)) {\n anchor = head;\n head = other;\n } else if (posBefore != (cmp(head, other) < 0)) {\n head = other;\n }\n }\n return new Range(anchor, head)\n } else {\n return new Range(other || head, head)\n }\n }\n\n // Extend the primary selection range, discard the rest.\n function extendSelection(doc, head, other, options, extend) {\n if (extend == null) { extend = doc.cm && (doc.cm.display.shift || doc.extend); }\n setSelection(doc, new Selection([extendRange(doc.sel.primary(), head, other, extend)], 0), options);\n }\n\n // Extend all selections (pos is an array of selections with length\n // equal the number of selections)\n function extendSelections(doc, heads, options) {\n var out = [];\n var extend = doc.cm && (doc.cm.display.shift || doc.extend);\n for (var i = 0; i < doc.sel.ranges.length; i++)\n { out[i] = extendRange(doc.sel.ranges[i], heads[i], null, extend); }\n var newSel = normalizeSelection(doc.cm, out, doc.sel.primIndex);\n setSelection(doc, newSel, options);\n }\n\n // Updates a single range in the selection.\n function replaceOneSelection(doc, i, range, options) {\n var ranges = doc.sel.ranges.slice(0);\n ranges[i] = range;\n setSelection(doc, normalizeSelection(doc.cm, ranges, doc.sel.primIndex), options);\n }\n\n // Reset the selection to a single range.\n function setSimpleSelection(doc, anchor, head, options) {\n setSelection(doc, simpleSelection(anchor, head), options);\n }\n\n // Give beforeSelectionChange handlers a change to influence a\n // selection update.\n function filterSelectionChange(doc, sel, options) {\n var obj = {\n ranges: sel.ranges,\n update: function(ranges) {\n this.ranges = [];\n for (var i = 0; i < ranges.length; i++)\n { this.ranges[i] = new Range(clipPos(doc, ranges[i].anchor),\n clipPos(doc, ranges[i].head)); }\n },\n origin: options && options.origin\n };\n signal(doc, \"beforeSelectionChange\", doc, obj);\n if (doc.cm) { signal(doc.cm, \"beforeSelectionChange\", doc.cm, obj); }\n if (obj.ranges != sel.ranges) { return normalizeSelection(doc.cm, obj.ranges, obj.ranges.length - 1) }\n else { return sel }\n }\n\n function setSelectionReplaceHistory(doc, sel, options) {\n var done = doc.history.done, last = lst(done);\n if (last && last.ranges) {\n done[done.length - 1] = sel;\n setSelectionNoUndo(doc, sel, options);\n } else {\n setSelection(doc, sel, options);\n }\n }\n\n // Set a new selection.\n function setSelection(doc, sel, options) {\n setSelectionNoUndo(doc, sel, options);\n addSelectionToHistory(doc, doc.sel, doc.cm ? doc.cm.curOp.id : NaN, options);\n }\n\n function setSelectionNoUndo(doc, sel, options) {\n if (hasHandler(doc, \"beforeSelectionChange\") || doc.cm && hasHandler(doc.cm, \"beforeSelectionChange\"))\n { sel = filterSelectionChange(doc, sel, options); }\n\n var bias = options && options.bias ||\n (cmp(sel.primary().head, doc.sel.primary().head) < 0 ? -1 : 1);\n setSelectionInner(doc, skipAtomicInSelection(doc, sel, bias, true));\n\n if (!(options && options.scroll === false) && doc.cm && doc.cm.getOption(\"readOnly\") != \"nocursor\")\n { ensureCursorVisible(doc.cm); }\n }\n\n function setSelectionInner(doc, sel) {\n if (sel.equals(doc.sel)) { return }\n\n doc.sel = sel;\n\n if (doc.cm) {\n doc.cm.curOp.updateInput = 1;\n doc.cm.curOp.selectionChanged = true;\n signalCursorActivity(doc.cm);\n }\n signalLater(doc, \"cursorActivity\", doc);\n }\n\n // Verify that the selection does not partially select any atomic\n // marked ranges.\n function reCheckSelection(doc) {\n setSelectionInner(doc, skipAtomicInSelection(doc, doc.sel, null, false));\n }\n\n // Return a selection that does not partially select any atomic\n // ranges.\n function skipAtomicInSelection(doc, sel, bias, mayClear) {\n var out;\n for (var i = 0; i < sel.ranges.length; i++) {\n var range = sel.ranges[i];\n var old = sel.ranges.length == doc.sel.ranges.length && doc.sel.ranges[i];\n var newAnchor = skipAtomic(doc, range.anchor, old && old.anchor, bias, mayClear);\n var newHead = range.head == range.anchor ? newAnchor : skipAtomic(doc, range.head, old && old.head, bias, mayClear);\n if (out || newAnchor != range.anchor || newHead != range.head) {\n if (!out) { out = sel.ranges.slice(0, i); }\n out[i] = new Range(newAnchor, newHead);\n }\n }\n return out ? normalizeSelection(doc.cm, out, sel.primIndex) : sel\n }\n\n function skipAtomicInner(doc, pos, oldPos, dir, mayClear) {\n var line = getLine(doc, pos.line);\n if (line.markedSpans) { for (var i = 0; i < line.markedSpans.length; ++i) {\n var sp = line.markedSpans[i], m = sp.marker;\n\n // Determine if we should prevent the cursor being placed to the left/right of an atomic marker\n // Historically this was determined using the inclusiveLeft/Right option, but the new way to control it\n // is with selectLeft/Right\n var preventCursorLeft = (\"selectLeft\" in m) ? !m.selectLeft : m.inclusiveLeft;\n var preventCursorRight = (\"selectRight\" in m) ? !m.selectRight : m.inclusiveRight;\n\n if ((sp.from == null || (preventCursorLeft ? sp.from <= pos.ch : sp.from < pos.ch)) &&\n (sp.to == null || (preventCursorRight ? sp.to >= pos.ch : sp.to > pos.ch))) {\n if (mayClear) {\n signal(m, \"beforeCursorEnter\");\n if (m.explicitlyCleared) {\n if (!line.markedSpans) { break }\n else {--i; continue}\n }\n }\n if (!m.atomic) { continue }\n\n if (oldPos) {\n var near = m.find(dir < 0 ? 1 : -1), diff = (void 0);\n if (dir < 0 ? preventCursorRight : preventCursorLeft)\n { near = movePos(doc, near, -dir, near && near.line == pos.line ? line : null); }\n if (near && near.line == pos.line && (diff = cmp(near, oldPos)) && (dir < 0 ? diff < 0 : diff > 0))\n { return skipAtomicInner(doc, near, pos, dir, mayClear) }\n }\n\n var far = m.find(dir < 0 ? -1 : 1);\n if (dir < 0 ? preventCursorLeft : preventCursorRight)\n { far = movePos(doc, far, dir, far.line == pos.line ? line : null); }\n return far ? skipAtomicInner(doc, far, pos, dir, mayClear) : null\n }\n } }\n return pos\n }\n\n // Ensure a given position is not inside an atomic range.\n function skipAtomic(doc, pos, oldPos, bias, mayClear) {\n var dir = bias || 1;\n var found = skipAtomicInner(doc, pos, oldPos, dir, mayClear) ||\n (!mayClear && skipAtomicInner(doc, pos, oldPos, dir, true)) ||\n skipAtomicInner(doc, pos, oldPos, -dir, mayClear) ||\n (!mayClear && skipAtomicInner(doc, pos, oldPos, -dir, true));\n if (!found) {\n doc.cantEdit = true;\n return Pos(doc.first, 0)\n }\n return found\n }\n\n function movePos(doc, pos, dir, line) {\n if (dir < 0 && pos.ch == 0) {\n if (pos.line > doc.first) { return clipPos(doc, Pos(pos.line - 1)) }\n else { return null }\n } else if (dir > 0 && pos.ch == (line || getLine(doc, pos.line)).text.length) {\n if (pos.line < doc.first + doc.size - 1) { return Pos(pos.line + 1, 0) }\n else { return null }\n } else {\n return new Pos(pos.line, pos.ch + dir)\n }\n }\n\n function selectAll(cm) {\n cm.setSelection(Pos(cm.firstLine(), 0), Pos(cm.lastLine()), sel_dontScroll);\n }\n\n // UPDATING\n\n // Allow \"beforeChange\" event handlers to influence a change\n function filterChange(doc, change, update) {\n var obj = {\n canceled: false,\n from: change.from,\n to: change.to,\n text: change.text,\n origin: change.origin,\n cancel: function () { return obj.canceled = true; }\n };\n if (update) { obj.update = function (from, to, text, origin) {\n if (from) { obj.from = clipPos(doc, from); }\n if (to) { obj.to = clipPos(doc, to); }\n if (text) { obj.text = text; }\n if (origin !== undefined) { obj.origin = origin; }\n }; }\n signal(doc, \"beforeChange\", doc, obj);\n if (doc.cm) { signal(doc.cm, \"beforeChange\", doc.cm, obj); }\n\n if (obj.canceled) {\n if (doc.cm) { doc.cm.curOp.updateInput = 2; }\n return null\n }\n return {from: obj.from, to: obj.to, text: obj.text, origin: obj.origin}\n }\n\n // Apply a change to a document, and add it to the document's\n // history, and propagating it to all linked documents.\n function makeChange(doc, change, ignoreReadOnly) {\n if (doc.cm) {\n if (!doc.cm.curOp) { return operation(doc.cm, makeChange)(doc, change, ignoreReadOnly) }\n if (doc.cm.state.suppressEdits) { return }\n }\n\n if (hasHandler(doc, \"beforeChange\") || doc.cm && hasHandler(doc.cm, \"beforeChange\")) {\n change = filterChange(doc, change, true);\n if (!change) { return }\n }\n\n // Possibly split or suppress the update based on the presence\n // of read-only spans in its range.\n var split = sawReadOnlySpans && !ignoreReadOnly && removeReadOnlyRanges(doc, change.from, change.to);\n if (split) {\n for (var i = split.length - 1; i >= 0; --i)\n { makeChangeInner(doc, {from: split[i].from, to: split[i].to, text: i ? [\"\"] : change.text, origin: change.origin}); }\n } else {\n makeChangeInner(doc, change);\n }\n }\n\n function makeChangeInner(doc, change) {\n if (change.text.length == 1 && change.text[0] == \"\" && cmp(change.from, change.to) == 0) { return }\n var selAfter = computeSelAfterChange(doc, change);\n addChangeToHistory(doc, change, selAfter, doc.cm ? doc.cm.curOp.id : NaN);\n\n makeChangeSingleDoc(doc, change, selAfter, stretchSpansOverChange(doc, change));\n var rebased = [];\n\n linkedDocs(doc, function (doc, sharedHist) {\n if (!sharedHist && indexOf(rebased, doc.history) == -1) {\n rebaseHist(doc.history, change);\n rebased.push(doc.history);\n }\n makeChangeSingleDoc(doc, change, null, stretchSpansOverChange(doc, change));\n });\n }\n\n // Revert a change stored in a document's history.\n function makeChangeFromHistory(doc, type, allowSelectionOnly) {\n var suppress = doc.cm && doc.cm.state.suppressEdits;\n if (suppress && !allowSelectionOnly) { return }\n\n var hist = doc.history, event, selAfter = doc.sel;\n var source = type == \"undo\" ? hist.done : hist.undone, dest = type == \"undo\" ? hist.undone : hist.done;\n\n // Verify that there is a useable event (so that ctrl-z won't\n // needlessly clear selection events)\n var i = 0;\n for (; i < source.length; i++) {\n event = source[i];\n if (allowSelectionOnly ? event.ranges && !event.equals(doc.sel) : !event.ranges)\n { break }\n }\n if (i == source.length) { return }\n hist.lastOrigin = hist.lastSelOrigin = null;\n\n for (;;) {\n event = source.pop();\n if (event.ranges) {\n pushSelectionToHistory(event, dest);\n if (allowSelectionOnly && !event.equals(doc.sel)) {\n setSelection(doc, event, {clearRedo: false});\n return\n }\n selAfter = event;\n } else if (suppress) {\n source.push(event);\n return\n } else { break }\n }\n\n // Build up a reverse change object to add to the opposite history\n // stack (redo when undoing, and vice versa).\n var antiChanges = [];\n pushSelectionToHistory(selAfter, dest);\n dest.push({changes: antiChanges, generation: hist.generation});\n hist.generation = event.generation || ++hist.maxGeneration;\n\n var filter = hasHandler(doc, \"beforeChange\") || doc.cm && hasHandler(doc.cm, \"beforeChange\");\n\n var loop = function ( i ) {\n var change = event.changes[i];\n change.origin = type;\n if (filter && !filterChange(doc, change, false)) {\n source.length = 0;\n return {}\n }\n\n antiChanges.push(historyChangeFromChange(doc, change));\n\n var after = i ? computeSelAfterChange(doc, change) : lst(source);\n makeChangeSingleDoc(doc, change, after, mergeOldSpans(doc, change));\n if (!i && doc.cm) { doc.cm.scrollIntoView({from: change.from, to: changeEnd(change)}); }\n var rebased = [];\n\n // Propagate to the linked documents\n linkedDocs(doc, function (doc, sharedHist) {\n if (!sharedHist && indexOf(rebased, doc.history) == -1) {\n rebaseHist(doc.history, change);\n rebased.push(doc.history);\n }\n makeChangeSingleDoc(doc, change, null, mergeOldSpans(doc, change));\n });\n };\n\n for (var i$1 = event.changes.length - 1; i$1 >= 0; --i$1) {\n var returned = loop( i$1 );\n\n if ( returned ) return returned.v;\n }\n }\n\n // Sub-views need their line numbers shifted when text is added\n // above or below them in the parent document.\n function shiftDoc(doc, distance) {\n if (distance == 0) { return }\n doc.first += distance;\n doc.sel = new Selection(map(doc.sel.ranges, function (range) { return new Range(\n Pos(range.anchor.line + distance, range.anchor.ch),\n Pos(range.head.line + distance, range.head.ch)\n ); }), doc.sel.primIndex);\n if (doc.cm) {\n regChange(doc.cm, doc.first, doc.first - distance, distance);\n for (var d = doc.cm.display, l = d.viewFrom; l < d.viewTo; l++)\n { regLineChange(doc.cm, l, \"gutter\"); }\n }\n }\n\n // More lower-level change function, handling only a single document\n // (not linked ones).\n function makeChangeSingleDoc(doc, change, selAfter, spans) {\n if (doc.cm && !doc.cm.curOp)\n { return operation(doc.cm, makeChangeSingleDoc)(doc, change, selAfter, spans) }\n\n if (change.to.line < doc.first) {\n shiftDoc(doc, change.text.length - 1 - (change.to.line - change.from.line));\n return\n }\n if (change.from.line > doc.lastLine()) { return }\n\n // Clip the change to the size of this doc\n if (change.from.line < doc.first) {\n var shift = change.text.length - 1 - (doc.first - change.from.line);\n shiftDoc(doc, shift);\n change = {from: Pos(doc.first, 0), to: Pos(change.to.line + shift, change.to.ch),\n text: [lst(change.text)], origin: change.origin};\n }\n var last = doc.lastLine();\n if (change.to.line > last) {\n change = {from: change.from, to: Pos(last, getLine(doc, last).text.length),\n text: [change.text[0]], origin: change.origin};\n }\n\n change.removed = getBetween(doc, change.from, change.to);\n\n if (!selAfter) { selAfter = computeSelAfterChange(doc, change); }\n if (doc.cm) { makeChangeSingleDocInEditor(doc.cm, change, spans); }\n else { updateDoc(doc, change, spans); }\n setSelectionNoUndo(doc, selAfter, sel_dontScroll);\n\n if (doc.cantEdit && skipAtomic(doc, Pos(doc.firstLine(), 0)))\n { doc.cantEdit = false; }\n }\n\n // Handle the interaction of a change to a document with the editor\n // that this document is part of.\n function makeChangeSingleDocInEditor(cm, change, spans) {\n var doc = cm.doc, display = cm.display, from = change.from, to = change.to;\n\n var recomputeMaxLength = false, checkWidthStart = from.line;\n if (!cm.options.lineWrapping) {\n checkWidthStart = lineNo(visualLine(getLine(doc, from.line)));\n doc.iter(checkWidthStart, to.line + 1, function (line) {\n if (line == display.maxLine) {\n recomputeMaxLength = true;\n return true\n }\n });\n }\n\n if (doc.sel.contains(change.from, change.to) > -1)\n { signalCursorActivity(cm); }\n\n updateDoc(doc, change, spans, estimateHeight(cm));\n\n if (!cm.options.lineWrapping) {\n doc.iter(checkWidthStart, from.line + change.text.length, function (line) {\n var len = lineLength(line);\n if (len > display.maxLineLength) {\n display.maxLine = line;\n display.maxLineLength = len;\n display.maxLineChanged = true;\n recomputeMaxLength = false;\n }\n });\n if (recomputeMaxLength) { cm.curOp.updateMaxLine = true; }\n }\n\n retreatFrontier(doc, from.line);\n startWorker(cm, 400);\n\n var lendiff = change.text.length - (to.line - from.line) - 1;\n // Remember that these lines changed, for updating the display\n if (change.full)\n { regChange(cm); }\n else if (from.line == to.line && change.text.length == 1 && !isWholeLineUpdate(cm.doc, change))\n { regLineChange(cm, from.line, \"text\"); }\n else\n { regChange(cm, from.line, to.line + 1, lendiff); }\n\n var changesHandler = hasHandler(cm, \"changes\"), changeHandler = hasHandler(cm, \"change\");\n if (changeHandler || changesHandler) {\n var obj = {\n from: from, to: to,\n text: change.text,\n removed: change.removed,\n origin: change.origin\n };\n if (changeHandler) { signalLater(cm, \"change\", cm, obj); }\n if (changesHandler) { (cm.curOp.changeObjs || (cm.curOp.changeObjs = [])).push(obj); }\n }\n cm.display.selForContextMenu = null;\n }\n\n function replaceRange(doc, code, from, to, origin) {\n var assign;\n\n if (!to) { to = from; }\n if (cmp(to, from) < 0) { (assign = [to, from], from = assign[0], to = assign[1]); }\n if (typeof code == \"string\") { code = doc.splitLines(code); }\n makeChange(doc, {from: from, to: to, text: code, origin: origin});\n }\n\n // Rebasing/resetting history to deal with externally-sourced changes\n\n function rebaseHistSelSingle(pos, from, to, diff) {\n if (to < pos.line) {\n pos.line += diff;\n } else if (from < pos.line) {\n pos.line = from;\n pos.ch = 0;\n }\n }\n\n // Tries to rebase an array of history events given a change in the\n // document. If the change touches the same lines as the event, the\n // event, and everything 'behind' it, is discarded. If the change is\n // before the event, the event's positions are updated. Uses a\n // copy-on-write scheme for the positions, to avoid having to\n // reallocate them all on every rebase, but also avoid problems with\n // shared position objects being unsafely updated.\n function rebaseHistArray(array, from, to, diff) {\n for (var i = 0; i < array.length; ++i) {\n var sub = array[i], ok = true;\n if (sub.ranges) {\n if (!sub.copied) { sub = array[i] = sub.deepCopy(); sub.copied = true; }\n for (var j = 0; j < sub.ranges.length; j++) {\n rebaseHistSelSingle(sub.ranges[j].anchor, from, to, diff);\n rebaseHistSelSingle(sub.ranges[j].head, from, to, diff);\n }\n continue\n }\n for (var j$1 = 0; j$1 < sub.changes.length; ++j$1) {\n var cur = sub.changes[j$1];\n if (to < cur.from.line) {\n cur.from = Pos(cur.from.line + diff, cur.from.ch);\n cur.to = Pos(cur.to.line + diff, cur.to.ch);\n } else if (from <= cur.to.line) {\n ok = false;\n break\n }\n }\n if (!ok) {\n array.splice(0, i + 1);\n i = 0;\n }\n }\n }\n\n function rebaseHist(hist, change) {\n var from = change.from.line, to = change.to.line, diff = change.text.length - (to - from) - 1;\n rebaseHistArray(hist.done, from, to, diff);\n rebaseHistArray(hist.undone, from, to, diff);\n }\n\n // Utility for applying a change to a line by handle or number,\n // returning the number and optionally registering the line as\n // changed.\n function changeLine(doc, handle, changeType, op) {\n var no = handle, line = handle;\n if (typeof handle == \"number\") { line = getLine(doc, clipLine(doc, handle)); }\n else { no = lineNo(handle); }\n if (no == null) { return null }\n if (op(line, no) && doc.cm) { regLineChange(doc.cm, no, changeType); }\n return line\n }\n\n // The document is represented as a BTree consisting of leaves, with\n // chunk of lines in them, and branches, with up to ten leaves or\n // other branch nodes below them. The top node is always a branch\n // node, and is the document object itself (meaning it has\n // additional methods and properties).\n //\n // All nodes have parent links. The tree is used both to go from\n // line numbers to line objects, and to go from objects to numbers.\n // It also indexes by height, and is used to convert between height\n // and line object, and to find the total height of the document.\n //\n // See also http://marijnhaverbeke.nl/blog/codemirror-line-tree.html\n\n function LeafChunk(lines) {\n this.lines = lines;\n this.parent = null;\n var height = 0;\n for (var i = 0; i < lines.length; ++i) {\n lines[i].parent = this;\n height += lines[i].height;\n }\n this.height = height;\n }\n\n LeafChunk.prototype = {\n chunkSize: function() { return this.lines.length },\n\n // Remove the n lines at offset 'at'.\n removeInner: function(at, n) {\n for (var i = at, e = at + n; i < e; ++i) {\n var line = this.lines[i];\n this.height -= line.height;\n cleanUpLine(line);\n signalLater(line, \"delete\");\n }\n this.lines.splice(at, n);\n },\n\n // Helper used to collapse a small branch into a single leaf.\n collapse: function(lines) {\n lines.push.apply(lines, this.lines);\n },\n\n // Insert the given array of lines at offset 'at', count them as\n // having the given height.\n insertInner: function(at, lines, height) {\n this.height += height;\n this.lines = this.lines.slice(0, at).concat(lines).concat(this.lines.slice(at));\n for (var i = 0; i < lines.length; ++i) { lines[i].parent = this; }\n },\n\n // Used to iterate over a part of the tree.\n iterN: function(at, n, op) {\n for (var e = at + n; at < e; ++at)\n { if (op(this.lines[at])) { return true } }\n }\n };\n\n function BranchChunk(children) {\n this.children = children;\n var size = 0, height = 0;\n for (var i = 0; i < children.length; ++i) {\n var ch = children[i];\n size += ch.chunkSize(); height += ch.height;\n ch.parent = this;\n }\n this.size = size;\n this.height = height;\n this.parent = null;\n }\n\n BranchChunk.prototype = {\n chunkSize: function() { return this.size },\n\n removeInner: function(at, n) {\n this.size -= n;\n for (var i = 0; i < this.children.length; ++i) {\n var child = this.children[i], sz = child.chunkSize();\n if (at < sz) {\n var rm = Math.min(n, sz - at), oldHeight = child.height;\n child.removeInner(at, rm);\n this.height -= oldHeight - child.height;\n if (sz == rm) { this.children.splice(i--, 1); child.parent = null; }\n if ((n -= rm) == 0) { break }\n at = 0;\n } else { at -= sz; }\n }\n // If the result is smaller than 25 lines, ensure that it is a\n // single leaf node.\n if (this.size - n < 25 &&\n (this.children.length > 1 || !(this.children[0] instanceof LeafChunk))) {\n var lines = [];\n this.collapse(lines);\n this.children = [new LeafChunk(lines)];\n this.children[0].parent = this;\n }\n },\n\n collapse: function(lines) {\n for (var i = 0; i < this.children.length; ++i) { this.children[i].collapse(lines); }\n },\n\n insertInner: function(at, lines, height) {\n this.size += lines.length;\n this.height += height;\n for (var i = 0; i < this.children.length; ++i) {\n var child = this.children[i], sz = child.chunkSize();\n if (at <= sz) {\n child.insertInner(at, lines, height);\n if (child.lines && child.lines.length > 50) {\n // To avoid memory thrashing when child.lines is huge (e.g. first view of a large file), it's never spliced.\n // Instead, small slices are taken. They're taken in order because sequential memory accesses are fastest.\n var remaining = child.lines.length % 25 + 25;\n for (var pos = remaining; pos < child.lines.length;) {\n var leaf = new LeafChunk(child.lines.slice(pos, pos += 25));\n child.height -= leaf.height;\n this.children.splice(++i, 0, leaf);\n leaf.parent = this;\n }\n child.lines = child.lines.slice(0, remaining);\n this.maybeSpill();\n }\n break\n }\n at -= sz;\n }\n },\n\n // When a node has grown, check whether it should be split.\n maybeSpill: function() {\n if (this.children.length <= 10) { return }\n var me = this;\n do {\n var spilled = me.children.splice(me.children.length - 5, 5);\n var sibling = new BranchChunk(spilled);\n if (!me.parent) { // Become the parent node\n var copy = new BranchChunk(me.children);\n copy.parent = me;\n me.children = [copy, sibling];\n me = copy;\n } else {\n me.size -= sibling.size;\n me.height -= sibling.height;\n var myIndex = indexOf(me.parent.children, me);\n me.parent.children.splice(myIndex + 1, 0, sibling);\n }\n sibling.parent = me.parent;\n } while (me.children.length > 10)\n me.parent.maybeSpill();\n },\n\n iterN: function(at, n, op) {\n for (var i = 0; i < this.children.length; ++i) {\n var child = this.children[i], sz = child.chunkSize();\n if (at < sz) {\n var used = Math.min(n, sz - at);\n if (child.iterN(at, used, op)) { return true }\n if ((n -= used) == 0) { break }\n at = 0;\n } else { at -= sz; }\n }\n }\n };\n\n // Line widgets are block elements displayed above or below a line.\n\n var LineWidget = function(doc, node, options) {\n if (options) { for (var opt in options) { if (options.hasOwnProperty(opt))\n { this[opt] = options[opt]; } } }\n this.doc = doc;\n this.node = node;\n };\n\n LineWidget.prototype.clear = function () {\n var cm = this.doc.cm, ws = this.line.widgets, line = this.line, no = lineNo(line);\n if (no == null || !ws) { return }\n for (var i = 0; i < ws.length; ++i) { if (ws[i] == this) { ws.splice(i--, 1); } }\n if (!ws.length) { line.widgets = null; }\n var height = widgetHeight(this);\n updateLineHeight(line, Math.max(0, line.height - height));\n if (cm) {\n runInOp(cm, function () {\n adjustScrollWhenAboveVisible(cm, line, -height);\n regLineChange(cm, no, \"widget\");\n });\n signalLater(cm, \"lineWidgetCleared\", cm, this, no);\n }\n };\n\n LineWidget.prototype.changed = function () {\n var this$1 = this;\n\n var oldH = this.height, cm = this.doc.cm, line = this.line;\n this.height = null;\n var diff = widgetHeight(this) - oldH;\n if (!diff) { return }\n if (!lineIsHidden(this.doc, line)) { updateLineHeight(line, line.height + diff); }\n if (cm) {\n runInOp(cm, function () {\n cm.curOp.forceUpdate = true;\n adjustScrollWhenAboveVisible(cm, line, diff);\n signalLater(cm, \"lineWidgetChanged\", cm, this$1, lineNo(line));\n });\n }\n };\n eventMixin(LineWidget);\n\n function adjustScrollWhenAboveVisible(cm, line, diff) {\n if (heightAtLine(line) < ((cm.curOp && cm.curOp.scrollTop) || cm.doc.scrollTop))\n { addToScrollTop(cm, diff); }\n }\n\n function addLineWidget(doc, handle, node, options) {\n var widget = new LineWidget(doc, node, options);\n var cm = doc.cm;\n if (cm && widget.noHScroll) { cm.display.alignWidgets = true; }\n changeLine(doc, handle, \"widget\", function (line) {\n var widgets = line.widgets || (line.widgets = []);\n if (widget.insertAt == null) { widgets.push(widget); }\n else { widgets.splice(Math.min(widgets.length, Math.max(0, widget.insertAt)), 0, widget); }\n widget.line = line;\n if (cm && !lineIsHidden(doc, line)) {\n var aboveVisible = heightAtLine(line) < doc.scrollTop;\n updateLineHeight(line, line.height + widgetHeight(widget));\n if (aboveVisible) { addToScrollTop(cm, widget.height); }\n cm.curOp.forceUpdate = true;\n }\n return true\n });\n if (cm) { signalLater(cm, \"lineWidgetAdded\", cm, widget, typeof handle == \"number\" ? handle : lineNo(handle)); }\n return widget\n }\n\n // TEXTMARKERS\n\n // Created with markText and setBookmark methods. A TextMarker is a\n // handle that can be used to clear or find a marked position in the\n // document. Line objects hold arrays (markedSpans) containing\n // {from, to, marker} object pointing to such marker objects, and\n // indicating that such a marker is present on that line. Multiple\n // lines may point to the same marker when it spans across lines.\n // The spans will have null for their from/to properties when the\n // marker continues beyond the start/end of the line. Markers have\n // links back to the lines they currently touch.\n\n // Collapsed markers have unique ids, in order to be able to order\n // them, which is needed for uniquely determining an outer marker\n // when they overlap (they may nest, but not partially overlap).\n var nextMarkerId = 0;\n\n var TextMarker = function(doc, type) {\n this.lines = [];\n this.type = type;\n this.doc = doc;\n this.id = ++nextMarkerId;\n };\n\n // Clear the marker.\n TextMarker.prototype.clear = function () {\n if (this.explicitlyCleared) { return }\n var cm = this.doc.cm, withOp = cm && !cm.curOp;\n if (withOp) { startOperation(cm); }\n if (hasHandler(this, \"clear\")) {\n var found = this.find();\n if (found) { signalLater(this, \"clear\", found.from, found.to); }\n }\n var min = null, max = null;\n for (var i = 0; i < this.lines.length; ++i) {\n var line = this.lines[i];\n var span = getMarkedSpanFor(line.markedSpans, this);\n if (cm && !this.collapsed) { regLineChange(cm, lineNo(line), \"text\"); }\n else if (cm) {\n if (span.to != null) { max = lineNo(line); }\n if (span.from != null) { min = lineNo(line); }\n }\n line.markedSpans = removeMarkedSpan(line.markedSpans, span);\n if (span.from == null && this.collapsed && !lineIsHidden(this.doc, line) && cm)\n { updateLineHeight(line, textHeight(cm.display)); }\n }\n if (cm && this.collapsed && !cm.options.lineWrapping) { for (var i$1 = 0; i$1 < this.lines.length; ++i$1) {\n var visual = visualLine(this.lines[i$1]), len = lineLength(visual);\n if (len > cm.display.maxLineLength) {\n cm.display.maxLine = visual;\n cm.display.maxLineLength = len;\n cm.display.maxLineChanged = true;\n }\n } }\n\n if (min != null && cm && this.collapsed) { regChange(cm, min, max + 1); }\n this.lines.length = 0;\n this.explicitlyCleared = true;\n if (this.atomic && this.doc.cantEdit) {\n this.doc.cantEdit = false;\n if (cm) { reCheckSelection(cm.doc); }\n }\n if (cm) { signalLater(cm, \"markerCleared\", cm, this, min, max); }\n if (withOp) { endOperation(cm); }\n if (this.parent) { this.parent.clear(); }\n };\n\n // Find the position of the marker in the document. Returns a {from,\n // to} object by default. Side can be passed to get a specific side\n // -- 0 (both), -1 (left), or 1 (right). When lineObj is true, the\n // Pos objects returned contain a line object, rather than a line\n // number (used to prevent looking up the same line twice).\n TextMarker.prototype.find = function (side, lineObj) {\n if (side == null && this.type == \"bookmark\") { side = 1; }\n var from, to;\n for (var i = 0; i < this.lines.length; ++i) {\n var line = this.lines[i];\n var span = getMarkedSpanFor(line.markedSpans, this);\n if (span.from != null) {\n from = Pos(lineObj ? line : lineNo(line), span.from);\n if (side == -1) { return from }\n }\n if (span.to != null) {\n to = Pos(lineObj ? line : lineNo(line), span.to);\n if (side == 1) { return to }\n }\n }\n return from && {from: from, to: to}\n };\n\n // Signals that the marker's widget changed, and surrounding layout\n // should be recomputed.\n TextMarker.prototype.changed = function () {\n var this$1 = this;\n\n var pos = this.find(-1, true), widget = this, cm = this.doc.cm;\n if (!pos || !cm) { return }\n runInOp(cm, function () {\n var line = pos.line, lineN = lineNo(pos.line);\n var view = findViewForLine(cm, lineN);\n if (view) {\n clearLineMeasurementCacheFor(view);\n cm.curOp.selectionChanged = cm.curOp.forceUpdate = true;\n }\n cm.curOp.updateMaxLine = true;\n if (!lineIsHidden(widget.doc, line) && widget.height != null) {\n var oldHeight = widget.height;\n widget.height = null;\n var dHeight = widgetHeight(widget) - oldHeight;\n if (dHeight)\n { updateLineHeight(line, line.height + dHeight); }\n }\n signalLater(cm, \"markerChanged\", cm, this$1);\n });\n };\n\n TextMarker.prototype.attachLine = function (line) {\n if (!this.lines.length && this.doc.cm) {\n var op = this.doc.cm.curOp;\n if (!op.maybeHiddenMarkers || indexOf(op.maybeHiddenMarkers, this) == -1)\n { (op.maybeUnhiddenMarkers || (op.maybeUnhiddenMarkers = [])).push(this); }\n }\n this.lines.push(line);\n };\n\n TextMarker.prototype.detachLine = function (line) {\n this.lines.splice(indexOf(this.lines, line), 1);\n if (!this.lines.length && this.doc.cm) {\n var op = this.doc.cm.curOp\n ;(op.maybeHiddenMarkers || (op.maybeHiddenMarkers = [])).push(this);\n }\n };\n eventMixin(TextMarker);\n\n // Create a marker, wire it up to the right lines, and\n function markText(doc, from, to, options, type) {\n // Shared markers (across linked documents) are handled separately\n // (markTextShared will call out to this again, once per\n // document).\n if (options && options.shared) { return markTextShared(doc, from, to, options, type) }\n // Ensure we are in an operation.\n if (doc.cm && !doc.cm.curOp) { return operation(doc.cm, markText)(doc, from, to, options, type) }\n\n var marker = new TextMarker(doc, type), diff = cmp(from, to);\n if (options) { copyObj(options, marker, false); }\n // Don't connect empty markers unless clearWhenEmpty is false\n if (diff > 0 || diff == 0 && marker.clearWhenEmpty !== false)\n { return marker }\n if (marker.replacedWith) {\n // Showing up as a widget implies collapsed (widget replaces text)\n marker.collapsed = true;\n marker.widgetNode = eltP(\"span\", [marker.replacedWith], \"CodeMirror-widget\");\n if (!options.handleMouseEvents) { marker.widgetNode.setAttribute(\"cm-ignore-events\", \"true\"); }\n if (options.insertLeft) { marker.widgetNode.insertLeft = true; }\n }\n if (marker.collapsed) {\n if (conflictingCollapsedRange(doc, from.line, from, to, marker) ||\n from.line != to.line && conflictingCollapsedRange(doc, to.line, from, to, marker))\n { throw new Error(\"Inserting collapsed marker partially overlapping an existing one\") }\n seeCollapsedSpans();\n }\n\n if (marker.addToHistory)\n { addChangeToHistory(doc, {from: from, to: to, origin: \"markText\"}, doc.sel, NaN); }\n\n var curLine = from.line, cm = doc.cm, updateMaxLine;\n doc.iter(curLine, to.line + 1, function (line) {\n if (cm && marker.collapsed && !cm.options.lineWrapping && visualLine(line) == cm.display.maxLine)\n { updateMaxLine = true; }\n if (marker.collapsed && curLine != from.line) { updateLineHeight(line, 0); }\n addMarkedSpan(line, new MarkedSpan(marker,\n curLine == from.line ? from.ch : null,\n curLine == to.line ? to.ch : null), doc.cm && doc.cm.curOp);\n ++curLine;\n });\n // lineIsHidden depends on the presence of the spans, so needs a second pass\n if (marker.collapsed) { doc.iter(from.line, to.line + 1, function (line) {\n if (lineIsHidden(doc, line)) { updateLineHeight(line, 0); }\n }); }\n\n if (marker.clearOnEnter) { on(marker, \"beforeCursorEnter\", function () { return marker.clear(); }); }\n\n if (marker.readOnly) {\n seeReadOnlySpans();\n if (doc.history.done.length || doc.history.undone.length)\n { doc.clearHistory(); }\n }\n if (marker.collapsed) {\n marker.id = ++nextMarkerId;\n marker.atomic = true;\n }\n if (cm) {\n // Sync editor state\n if (updateMaxLine) { cm.curOp.updateMaxLine = true; }\n if (marker.collapsed)\n { regChange(cm, from.line, to.line + 1); }\n else if (marker.className || marker.startStyle || marker.endStyle || marker.css ||\n marker.attributes || marker.title)\n { for (var i = from.line; i <= to.line; i++) { regLineChange(cm, i, \"text\"); } }\n if (marker.atomic) { reCheckSelection(cm.doc); }\n signalLater(cm, \"markerAdded\", cm, marker);\n }\n return marker\n }\n\n // SHARED TEXTMARKERS\n\n // A shared marker spans multiple linked documents. It is\n // implemented as a meta-marker-object controlling multiple normal\n // markers.\n var SharedTextMarker = function(markers, primary) {\n this.markers = markers;\n this.primary = primary;\n for (var i = 0; i < markers.length; ++i)\n { markers[i].parent = this; }\n };\n\n SharedTextMarker.prototype.clear = function () {\n if (this.explicitlyCleared) { return }\n this.explicitlyCleared = true;\n for (var i = 0; i < this.markers.length; ++i)\n { this.markers[i].clear(); }\n signalLater(this, \"clear\");\n };\n\n SharedTextMarker.prototype.find = function (side, lineObj) {\n return this.primary.find(side, lineObj)\n };\n eventMixin(SharedTextMarker);\n\n function markTextShared(doc, from, to, options, type) {\n options = copyObj(options);\n options.shared = false;\n var markers = [markText(doc, from, to, options, type)], primary = markers[0];\n var widget = options.widgetNode;\n linkedDocs(doc, function (doc) {\n if (widget) { options.widgetNode = widget.cloneNode(true); }\n markers.push(markText(doc, clipPos(doc, from), clipPos(doc, to), options, type));\n for (var i = 0; i < doc.linked.length; ++i)\n { if (doc.linked[i].isParent) { return } }\n primary = lst(markers);\n });\n return new SharedTextMarker(markers, primary)\n }\n\n function findSharedMarkers(doc) {\n return doc.findMarks(Pos(doc.first, 0), doc.clipPos(Pos(doc.lastLine())), function (m) { return m.parent; })\n }\n\n function copySharedMarkers(doc, markers) {\n for (var i = 0; i < markers.length; i++) {\n var marker = markers[i], pos = marker.find();\n var mFrom = doc.clipPos(pos.from), mTo = doc.clipPos(pos.to);\n if (cmp(mFrom, mTo)) {\n var subMark = markText(doc, mFrom, mTo, marker.primary, marker.primary.type);\n marker.markers.push(subMark);\n subMark.parent = marker;\n }\n }\n }\n\n function detachSharedMarkers(markers) {\n var loop = function ( i ) {\n var marker = markers[i], linked = [marker.primary.doc];\n linkedDocs(marker.primary.doc, function (d) { return linked.push(d); });\n for (var j = 0; j < marker.markers.length; j++) {\n var subMarker = marker.markers[j];\n if (indexOf(linked, subMarker.doc) == -1) {\n subMarker.parent = null;\n marker.markers.splice(j--, 1);\n }\n }\n };\n\n for (var i = 0; i < markers.length; i++) loop( i );\n }\n\n var nextDocId = 0;\n var Doc = function(text, mode, firstLine, lineSep, direction) {\n if (!(this instanceof Doc)) { return new Doc(text, mode, firstLine, lineSep, direction) }\n if (firstLine == null) { firstLine = 0; }\n\n BranchChunk.call(this, [new LeafChunk([new Line(\"\", null)])]);\n this.first = firstLine;\n this.scrollTop = this.scrollLeft = 0;\n this.cantEdit = false;\n this.cleanGeneration = 1;\n this.modeFrontier = this.highlightFrontier = firstLine;\n var start = Pos(firstLine, 0);\n this.sel = simpleSelection(start);\n this.history = new History(null);\n this.id = ++nextDocId;\n this.modeOption = mode;\n this.lineSep = lineSep;\n this.direction = (direction == \"rtl\") ? \"rtl\" : \"ltr\";\n this.extend = false;\n\n if (typeof text == \"string\") { text = this.splitLines(text); }\n updateDoc(this, {from: start, to: start, text: text});\n setSelection(this, simpleSelection(start), sel_dontScroll);\n };\n\n Doc.prototype = createObj(BranchChunk.prototype, {\n constructor: Doc,\n // Iterate over the document. Supports two forms -- with only one\n // argument, it calls that for each line in the document. With\n // three, it iterates over the range given by the first two (with\n // the second being non-inclusive).\n iter: function(from, to, op) {\n if (op) { this.iterN(from - this.first, to - from, op); }\n else { this.iterN(this.first, this.first + this.size, from); }\n },\n\n // Non-public interface for adding and removing lines.\n insert: function(at, lines) {\n var height = 0;\n for (var i = 0; i < lines.length; ++i) { height += lines[i].height; }\n this.insertInner(at - this.first, lines, height);\n },\n remove: function(at, n) { this.removeInner(at - this.first, n); },\n\n // From here, the methods are part of the public interface. Most\n // are also available from CodeMirror (editor) instances.\n\n getValue: function(lineSep) {\n var lines = getLines(this, this.first, this.first + this.size);\n if (lineSep === false) { return lines }\n return lines.join(lineSep || this.lineSeparator())\n },\n setValue: docMethodOp(function(code) {\n var top = Pos(this.first, 0), last = this.first + this.size - 1;\n makeChange(this, {from: top, to: Pos(last, getLine(this, last).text.length),\n text: this.splitLines(code), origin: \"setValue\", full: true}, true);\n if (this.cm) { scrollToCoords(this.cm, 0, 0); }\n setSelection(this, simpleSelection(top), sel_dontScroll);\n }),\n replaceRange: function(code, from, to, origin) {\n from = clipPos(this, from);\n to = to ? clipPos(this, to) : from;\n replaceRange(this, code, from, to, origin);\n },\n getRange: function(from, to, lineSep) {\n var lines = getBetween(this, clipPos(this, from), clipPos(this, to));\n if (lineSep === false) { return lines }\n if (lineSep === '') { return lines.join('') }\n return lines.join(lineSep || this.lineSeparator())\n },\n\n getLine: function(line) {var l = this.getLineHandle(line); return l && l.text},\n\n getLineHandle: function(line) {if (isLine(this, line)) { return getLine(this, line) }},\n getLineNumber: function(line) {return lineNo(line)},\n\n getLineHandleVisualStart: function(line) {\n if (typeof line == \"number\") { line = getLine(this, line); }\n return visualLine(line)\n },\n\n lineCount: function() {return this.size},\n firstLine: function() {return this.first},\n lastLine: function() {return this.first + this.size - 1},\n\n clipPos: function(pos) {return clipPos(this, pos)},\n\n getCursor: function(start) {\n var range = this.sel.primary(), pos;\n if (start == null || start == \"head\") { pos = range.head; }\n else if (start == \"anchor\") { pos = range.anchor; }\n else if (start == \"end\" || start == \"to\" || start === false) { pos = range.to(); }\n else { pos = range.from(); }\n return pos\n },\n listSelections: function() { return this.sel.ranges },\n somethingSelected: function() {return this.sel.somethingSelected()},\n\n setCursor: docMethodOp(function(line, ch, options) {\n setSimpleSelection(this, clipPos(this, typeof line == \"number\" ? Pos(line, ch || 0) : line), null, options);\n }),\n setSelection: docMethodOp(function(anchor, head, options) {\n setSimpleSelection(this, clipPos(this, anchor), clipPos(this, head || anchor), options);\n }),\n extendSelection: docMethodOp(function(head, other, options) {\n extendSelection(this, clipPos(this, head), other && clipPos(this, other), options);\n }),\n extendSelections: docMethodOp(function(heads, options) {\n extendSelections(this, clipPosArray(this, heads), options);\n }),\n extendSelectionsBy: docMethodOp(function(f, options) {\n var heads = map(this.sel.ranges, f);\n extendSelections(this, clipPosArray(this, heads), options);\n }),\n setSelections: docMethodOp(function(ranges, primary, options) {\n if (!ranges.length) { return }\n var out = [];\n for (var i = 0; i < ranges.length; i++)\n { out[i] = new Range(clipPos(this, ranges[i].anchor),\n clipPos(this, ranges[i].head || ranges[i].anchor)); }\n if (primary == null) { primary = Math.min(ranges.length - 1, this.sel.primIndex); }\n setSelection(this, normalizeSelection(this.cm, out, primary), options);\n }),\n addSelection: docMethodOp(function(anchor, head, options) {\n var ranges = this.sel.ranges.slice(0);\n ranges.push(new Range(clipPos(this, anchor), clipPos(this, head || anchor)));\n setSelection(this, normalizeSelection(this.cm, ranges, ranges.length - 1), options);\n }),\n\n getSelection: function(lineSep) {\n var ranges = this.sel.ranges, lines;\n for (var i = 0; i < ranges.length; i++) {\n var sel = getBetween(this, ranges[i].from(), ranges[i].to());\n lines = lines ? lines.concat(sel) : sel;\n }\n if (lineSep === false) { return lines }\n else { return lines.join(lineSep || this.lineSeparator()) }\n },\n getSelections: function(lineSep) {\n var parts = [], ranges = this.sel.ranges;\n for (var i = 0; i < ranges.length; i++) {\n var sel = getBetween(this, ranges[i].from(), ranges[i].to());\n if (lineSep !== false) { sel = sel.join(lineSep || this.lineSeparator()); }\n parts[i] = sel;\n }\n return parts\n },\n replaceSelection: function(code, collapse, origin) {\n var dup = [];\n for (var i = 0; i < this.sel.ranges.length; i++)\n { dup[i] = code; }\n this.replaceSelections(dup, collapse, origin || \"+input\");\n },\n replaceSelections: docMethodOp(function(code, collapse, origin) {\n var changes = [], sel = this.sel;\n for (var i = 0; i < sel.ranges.length; i++) {\n var range = sel.ranges[i];\n changes[i] = {from: range.from(), to: range.to(), text: this.splitLines(code[i]), origin: origin};\n }\n var newSel = collapse && collapse != \"end\" && computeReplacedSel(this, changes, collapse);\n for (var i$1 = changes.length - 1; i$1 >= 0; i$1--)\n { makeChange(this, changes[i$1]); }\n if (newSel) { setSelectionReplaceHistory(this, newSel); }\n else if (this.cm) { ensureCursorVisible(this.cm); }\n }),\n undo: docMethodOp(function() {makeChangeFromHistory(this, \"undo\");}),\n redo: docMethodOp(function() {makeChangeFromHistory(this, \"redo\");}),\n undoSelection: docMethodOp(function() {makeChangeFromHistory(this, \"undo\", true);}),\n redoSelection: docMethodOp(function() {makeChangeFromHistory(this, \"redo\", true);}),\n\n setExtending: function(val) {this.extend = val;},\n getExtending: function() {return this.extend},\n\n historySize: function() {\n var hist = this.history, done = 0, undone = 0;\n for (var i = 0; i < hist.done.length; i++) { if (!hist.done[i].ranges) { ++done; } }\n for (var i$1 = 0; i$1 < hist.undone.length; i$1++) { if (!hist.undone[i$1].ranges) { ++undone; } }\n return {undo: done, redo: undone}\n },\n clearHistory: function() {\n var this$1 = this;\n\n this.history = new History(this.history);\n linkedDocs(this, function (doc) { return doc.history = this$1.history; }, true);\n },\n\n markClean: function() {\n this.cleanGeneration = this.changeGeneration(true);\n },\n changeGeneration: function(forceSplit) {\n if (forceSplit)\n { this.history.lastOp = this.history.lastSelOp = this.history.lastOrigin = null; }\n return this.history.generation\n },\n isClean: function (gen) {\n return this.history.generation == (gen || this.cleanGeneration)\n },\n\n getHistory: function() {\n return {done: copyHistoryArray(this.history.done),\n undone: copyHistoryArray(this.history.undone)}\n },\n setHistory: function(histData) {\n var hist = this.history = new History(this.history);\n hist.done = copyHistoryArray(histData.done.slice(0), null, true);\n hist.undone = copyHistoryArray(histData.undone.slice(0), null, true);\n },\n\n setGutterMarker: docMethodOp(function(line, gutterID, value) {\n return changeLine(this, line, \"gutter\", function (line) {\n var markers = line.gutterMarkers || (line.gutterMarkers = {});\n markers[gutterID] = value;\n if (!value && isEmpty(markers)) { line.gutterMarkers = null; }\n return true\n })\n }),\n\n clearGutter: docMethodOp(function(gutterID) {\n var this$1 = this;\n\n this.iter(function (line) {\n if (line.gutterMarkers && line.gutterMarkers[gutterID]) {\n changeLine(this$1, line, \"gutter\", function () {\n line.gutterMarkers[gutterID] = null;\n if (isEmpty(line.gutterMarkers)) { line.gutterMarkers = null; }\n return true\n });\n }\n });\n }),\n\n lineInfo: function(line) {\n var n;\n if (typeof line == \"number\") {\n if (!isLine(this, line)) { return null }\n n = line;\n line = getLine(this, line);\n if (!line) { return null }\n } else {\n n = lineNo(line);\n if (n == null) { return null }\n }\n return {line: n, handle: line, text: line.text, gutterMarkers: line.gutterMarkers,\n textClass: line.textClass, bgClass: line.bgClass, wrapClass: line.wrapClass,\n widgets: line.widgets}\n },\n\n addLineClass: docMethodOp(function(handle, where, cls) {\n return changeLine(this, handle, where == \"gutter\" ? \"gutter\" : \"class\", function (line) {\n var prop = where == \"text\" ? \"textClass\"\n : where == \"background\" ? \"bgClass\"\n : where == \"gutter\" ? \"gutterClass\" : \"wrapClass\";\n if (!line[prop]) { line[prop] = cls; }\n else if (classTest(cls).test(line[prop])) { return false }\n else { line[prop] += \" \" + cls; }\n return true\n })\n }),\n removeLineClass: docMethodOp(function(handle, where, cls) {\n return changeLine(this, handle, where == \"gutter\" ? \"gutter\" : \"class\", function (line) {\n var prop = where == \"text\" ? \"textClass\"\n : where == \"background\" ? \"bgClass\"\n : where == \"gutter\" ? \"gutterClass\" : \"wrapClass\";\n var cur = line[prop];\n if (!cur) { return false }\n else if (cls == null) { line[prop] = null; }\n else {\n var found = cur.match(classTest(cls));\n if (!found) { return false }\n var end = found.index + found[0].length;\n line[prop] = cur.slice(0, found.index) + (!found.index || end == cur.length ? \"\" : \" \") + cur.slice(end) || null;\n }\n return true\n })\n }),\n\n addLineWidget: docMethodOp(function(handle, node, options) {\n return addLineWidget(this, handle, node, options)\n }),\n removeLineWidget: function(widget) { widget.clear(); },\n\n markText: function(from, to, options) {\n return markText(this, clipPos(this, from), clipPos(this, to), options, options && options.type || \"range\")\n },\n setBookmark: function(pos, options) {\n var realOpts = {replacedWith: options && (options.nodeType == null ? options.widget : options),\n insertLeft: options && options.insertLeft,\n clearWhenEmpty: false, shared: options && options.shared,\n handleMouseEvents: options && options.handleMouseEvents};\n pos = clipPos(this, pos);\n return markText(this, pos, pos, realOpts, \"bookmark\")\n },\n findMarksAt: function(pos) {\n pos = clipPos(this, pos);\n var markers = [], spans = getLine(this, pos.line).markedSpans;\n if (spans) { for (var i = 0; i < spans.length; ++i) {\n var span = spans[i];\n if ((span.from == null || span.from <= pos.ch) &&\n (span.to == null || span.to >= pos.ch))\n { markers.push(span.marker.parent || span.marker); }\n } }\n return markers\n },\n findMarks: function(from, to, filter) {\n from = clipPos(this, from); to = clipPos(this, to);\n var found = [], lineNo = from.line;\n this.iter(from.line, to.line + 1, function (line) {\n var spans = line.markedSpans;\n if (spans) { for (var i = 0; i < spans.length; i++) {\n var span = spans[i];\n if (!(span.to != null && lineNo == from.line && from.ch >= span.to ||\n span.from == null && lineNo != from.line ||\n span.from != null && lineNo == to.line && span.from >= to.ch) &&\n (!filter || filter(span.marker)))\n { found.push(span.marker.parent || span.marker); }\n } }\n ++lineNo;\n });\n return found\n },\n getAllMarks: function() {\n var markers = [];\n this.iter(function (line) {\n var sps = line.markedSpans;\n if (sps) { for (var i = 0; i < sps.length; ++i)\n { if (sps[i].from != null) { markers.push(sps[i].marker); } } }\n });\n return markers\n },\n\n posFromIndex: function(off) {\n var ch, lineNo = this.first, sepSize = this.lineSeparator().length;\n this.iter(function (line) {\n var sz = line.text.length + sepSize;\n if (sz > off) { ch = off; return true }\n off -= sz;\n ++lineNo;\n });\n return clipPos(this, Pos(lineNo, ch))\n },\n indexFromPos: function (coords) {\n coords = clipPos(this, coords);\n var index = coords.ch;\n if (coords.line < this.first || coords.ch < 0) { return 0 }\n var sepSize = this.lineSeparator().length;\n this.iter(this.first, coords.line, function (line) { // iter aborts when callback returns a truthy value\n index += line.text.length + sepSize;\n });\n return index\n },\n\n copy: function(copyHistory) {\n var doc = new Doc(getLines(this, this.first, this.first + this.size),\n this.modeOption, this.first, this.lineSep, this.direction);\n doc.scrollTop = this.scrollTop; doc.scrollLeft = this.scrollLeft;\n doc.sel = this.sel;\n doc.extend = false;\n if (copyHistory) {\n doc.history.undoDepth = this.history.undoDepth;\n doc.setHistory(this.getHistory());\n }\n return doc\n },\n\n linkedDoc: function(options) {\n if (!options) { options = {}; }\n var from = this.first, to = this.first + this.size;\n if (options.from != null && options.from > from) { from = options.from; }\n if (options.to != null && options.to < to) { to = options.to; }\n var copy = new Doc(getLines(this, from, to), options.mode || this.modeOption, from, this.lineSep, this.direction);\n if (options.sharedHist) { copy.history = this.history\n ; }(this.linked || (this.linked = [])).push({doc: copy, sharedHist: options.sharedHist});\n copy.linked = [{doc: this, isParent: true, sharedHist: options.sharedHist}];\n copySharedMarkers(copy, findSharedMarkers(this));\n return copy\n },\n unlinkDoc: function(other) {\n if (other instanceof CodeMirror) { other = other.doc; }\n if (this.linked) { for (var i = 0; i < this.linked.length; ++i) {\n var link = this.linked[i];\n if (link.doc != other) { continue }\n this.linked.splice(i, 1);\n other.unlinkDoc(this);\n detachSharedMarkers(findSharedMarkers(this));\n break\n } }\n // If the histories were shared, split them again\n if (other.history == this.history) {\n var splitIds = [other.id];\n linkedDocs(other, function (doc) { return splitIds.push(doc.id); }, true);\n other.history = new History(null);\n other.history.done = copyHistoryArray(this.history.done, splitIds);\n other.history.undone = copyHistoryArray(this.history.undone, splitIds);\n }\n },\n iterLinkedDocs: function(f) {linkedDocs(this, f);},\n\n getMode: function() {return this.mode},\n getEditor: function() {return this.cm},\n\n splitLines: function(str) {\n if (this.lineSep) { return str.split(this.lineSep) }\n return splitLinesAuto(str)\n },\n lineSeparator: function() { return this.lineSep || \"\\n\" },\n\n setDirection: docMethodOp(function (dir) {\n if (dir != \"rtl\") { dir = \"ltr\"; }\n if (dir == this.direction) { return }\n this.direction = dir;\n this.iter(function (line) { return line.order = null; });\n if (this.cm) { directionChanged(this.cm); }\n })\n });\n\n // Public alias.\n Doc.prototype.eachLine = Doc.prototype.iter;\n\n // Kludge to work around strange IE behavior where it'll sometimes\n // re-fire a series of drag-related events right after the drop (#1551)\n var lastDrop = 0;\n\n function onDrop(e) {\n var cm = this;\n clearDragCursor(cm);\n if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e))\n { return }\n e_preventDefault(e);\n if (ie) { lastDrop = +new Date; }\n var pos = posFromMouse(cm, e, true), files = e.dataTransfer.files;\n if (!pos || cm.isReadOnly()) { return }\n // Might be a file drop, in which case we simply extract the text\n // and insert it.\n if (files && files.length && window.FileReader && window.File) {\n var n = files.length, text = Array(n), read = 0;\n var markAsReadAndPasteIfAllFilesAreRead = function () {\n if (++read == n) {\n operation(cm, function () {\n pos = clipPos(cm.doc, pos);\n var change = {from: pos, to: pos,\n text: cm.doc.splitLines(\n text.filter(function (t) { return t != null; }).join(cm.doc.lineSeparator())),\n origin: \"paste\"};\n makeChange(cm.doc, change);\n setSelectionReplaceHistory(cm.doc, simpleSelection(clipPos(cm.doc, pos), clipPos(cm.doc, changeEnd(change))));\n })();\n }\n };\n var readTextFromFile = function (file, i) {\n if (cm.options.allowDropFileTypes &&\n indexOf(cm.options.allowDropFileTypes, file.type) == -1) {\n markAsReadAndPasteIfAllFilesAreRead();\n return\n }\n var reader = new FileReader;\n reader.onerror = function () { return markAsReadAndPasteIfAllFilesAreRead(); };\n reader.onload = function () {\n var content = reader.result;\n if (/[\\x00-\\x08\\x0e-\\x1f]{2}/.test(content)) {\n markAsReadAndPasteIfAllFilesAreRead();\n return\n }\n text[i] = content;\n markAsReadAndPasteIfAllFilesAreRead();\n };\n reader.readAsText(file);\n };\n for (var i = 0; i < files.length; i++) { readTextFromFile(files[i], i); }\n } else { // Normal drop\n // Don't do a replace if the drop happened inside of the selected text.\n if (cm.state.draggingText && cm.doc.sel.contains(pos) > -1) {\n cm.state.draggingText(e);\n // Ensure the editor is re-focused\n setTimeout(function () { return cm.display.input.focus(); }, 20);\n return\n }\n try {\n var text$1 = e.dataTransfer.getData(\"Text\");\n if (text$1) {\n var selected;\n if (cm.state.draggingText && !cm.state.draggingText.copy)\n { selected = cm.listSelections(); }\n setSelectionNoUndo(cm.doc, simpleSelection(pos, pos));\n if (selected) { for (var i$1 = 0; i$1 < selected.length; ++i$1)\n { replaceRange(cm.doc, \"\", selected[i$1].anchor, selected[i$1].head, \"drag\"); } }\n cm.replaceSelection(text$1, \"around\", \"paste\");\n cm.display.input.focus();\n }\n }\n catch(e$1){}\n }\n }\n\n function onDragStart(cm, e) {\n if (ie && (!cm.state.draggingText || +new Date - lastDrop < 100)) { e_stop(e); return }\n if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) { return }\n\n e.dataTransfer.setData(\"Text\", cm.getSelection());\n e.dataTransfer.effectAllowed = \"copyMove\";\n\n // Use dummy image instead of default browsers image.\n // Recent Safari (~6.0.2) have a tendency to segfault when this happens, so we don't do it there.\n if (e.dataTransfer.setDragImage && !safari) {\n var img = elt(\"img\", null, null, \"position: fixed; left: 0; top: 0;\");\n img.src = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n if (presto) {\n img.width = img.height = 1;\n cm.display.wrapper.appendChild(img);\n // Force a relayout, or Opera won't use our image for some obscure reason\n img._top = img.offsetTop;\n }\n e.dataTransfer.setDragImage(img, 0, 0);\n if (presto) { img.parentNode.removeChild(img); }\n }\n }\n\n function onDragOver(cm, e) {\n var pos = posFromMouse(cm, e);\n if (!pos) { return }\n var frag = document.createDocumentFragment();\n drawSelectionCursor(cm, pos, frag);\n if (!cm.display.dragCursor) {\n cm.display.dragCursor = elt(\"div\", null, \"CodeMirror-cursors CodeMirror-dragcursors\");\n cm.display.lineSpace.insertBefore(cm.display.dragCursor, cm.display.cursorDiv);\n }\n removeChildrenAndAdd(cm.display.dragCursor, frag);\n }\n\n function clearDragCursor(cm) {\n if (cm.display.dragCursor) {\n cm.display.lineSpace.removeChild(cm.display.dragCursor);\n cm.display.dragCursor = null;\n }\n }\n\n // These must be handled carefully, because naively registering a\n // handler for each editor will cause the editors to never be\n // garbage collected.\n\n function forEachCodeMirror(f) {\n if (!document.getElementsByClassName) { return }\n var byClass = document.getElementsByClassName(\"CodeMirror\"), editors = [];\n for (var i = 0; i < byClass.length; i++) {\n var cm = byClass[i].CodeMirror;\n if (cm) { editors.push(cm); }\n }\n if (editors.length) { editors[0].operation(function () {\n for (var i = 0; i < editors.length; i++) { f(editors[i]); }\n }); }\n }\n\n var globalsRegistered = false;\n function ensureGlobalHandlers() {\n if (globalsRegistered) { return }\n registerGlobalHandlers();\n globalsRegistered = true;\n }\n function registerGlobalHandlers() {\n // When the window resizes, we need to refresh active editors.\n var resizeTimer;\n on(window, \"resize\", function () {\n if (resizeTimer == null) { resizeTimer = setTimeout(function () {\n resizeTimer = null;\n forEachCodeMirror(onResize);\n }, 100); }\n });\n // When the window loses focus, we want to show the editor as blurred\n on(window, \"blur\", function () { return forEachCodeMirror(onBlur); });\n }\n // Called when the window resizes\n function onResize(cm) {\n var d = cm.display;\n // Might be a text scaling operation, clear size caches.\n d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null;\n d.scrollbarsClipped = false;\n cm.setSize();\n }\n\n var keyNames = {\n 3: \"Pause\", 8: \"Backspace\", 9: \"Tab\", 13: \"Enter\", 16: \"Shift\", 17: \"Ctrl\", 18: \"Alt\",\n 19: \"Pause\", 20: \"CapsLock\", 27: \"Esc\", 32: \"Space\", 33: \"PageUp\", 34: \"PageDown\", 35: \"End\",\n 36: \"Home\", 37: \"Left\", 38: \"Up\", 39: \"Right\", 40: \"Down\", 44: \"PrintScrn\", 45: \"Insert\",\n 46: \"Delete\", 59: \";\", 61: \"=\", 91: \"Mod\", 92: \"Mod\", 93: \"Mod\",\n 106: \"*\", 107: \"=\", 109: \"-\", 110: \".\", 111: \"/\", 145: \"ScrollLock\",\n 173: \"-\", 186: \";\", 187: \"=\", 188: \",\", 189: \"-\", 190: \".\", 191: \"/\", 192: \"`\", 219: \"[\", 220: \"\\\\\",\n 221: \"]\", 222: \"'\", 224: \"Mod\", 63232: \"Up\", 63233: \"Down\", 63234: \"Left\", 63235: \"Right\", 63272: \"Delete\",\n 63273: \"Home\", 63275: \"End\", 63276: \"PageUp\", 63277: \"PageDown\", 63302: \"Insert\"\n };\n\n // Number keys\n for (var i = 0; i < 10; i++) { keyNames[i + 48] = keyNames[i + 96] = String(i); }\n // Alphabetic keys\n for (var i$1 = 65; i$1 <= 90; i$1++) { keyNames[i$1] = String.fromCharCode(i$1); }\n // Function keys\n for (var i$2 = 1; i$2 <= 12; i$2++) { keyNames[i$2 + 111] = keyNames[i$2 + 63235] = \"F\" + i$2; }\n\n var keyMap = {};\n\n keyMap.basic = {\n \"Left\": \"goCharLeft\", \"Right\": \"goCharRight\", \"Up\": \"goLineUp\", \"Down\": \"goLineDown\",\n \"End\": \"goLineEnd\", \"Home\": \"goLineStartSmart\", \"PageUp\": \"goPageUp\", \"PageDown\": \"goPageDown\",\n \"Delete\": \"delCharAfter\", \"Backspace\": \"delCharBefore\", \"Shift-Backspace\": \"delCharBefore\",\n \"Tab\": \"defaultTab\", \"Shift-Tab\": \"indentAuto\",\n \"Enter\": \"newlineAndIndent\", \"Insert\": \"toggleOverwrite\",\n \"Esc\": \"singleSelection\"\n };\n // Note that the save and find-related commands aren't defined by\n // default. User code or addons can define them. Unknown commands\n // are simply ignored.\n keyMap.pcDefault = {\n \"Ctrl-A\": \"selectAll\", \"Ctrl-D\": \"deleteLine\", \"Ctrl-Z\": \"undo\", \"Shift-Ctrl-Z\": \"redo\", \"Ctrl-Y\": \"redo\",\n \"Ctrl-Home\": \"goDocStart\", \"Ctrl-End\": \"goDocEnd\", \"Ctrl-Up\": \"goLineUp\", \"Ctrl-Down\": \"goLineDown\",\n \"Ctrl-Left\": \"goGroupLeft\", \"Ctrl-Right\": \"goGroupRight\", \"Alt-Left\": \"goLineStart\", \"Alt-Right\": \"goLineEnd\",\n \"Ctrl-Backspace\": \"delGroupBefore\", \"Ctrl-Delete\": \"delGroupAfter\", \"Ctrl-S\": \"save\", \"Ctrl-F\": \"find\",\n \"Ctrl-G\": \"findNext\", \"Shift-Ctrl-G\": \"findPrev\", \"Shift-Ctrl-F\": \"replace\", \"Shift-Ctrl-R\": \"replaceAll\",\n \"Ctrl-[\": \"indentLess\", \"Ctrl-]\": \"indentMore\",\n \"Ctrl-U\": \"undoSelection\", \"Shift-Ctrl-U\": \"redoSelection\", \"Alt-U\": \"redoSelection\",\n \"fallthrough\": \"basic\"\n };\n // Very basic readline/emacs-style bindings, which are standard on Mac.\n keyMap.emacsy = {\n \"Ctrl-F\": \"goCharRight\", \"Ctrl-B\": \"goCharLeft\", \"Ctrl-P\": \"goLineUp\", \"Ctrl-N\": \"goLineDown\",\n \"Ctrl-A\": \"goLineStart\", \"Ctrl-E\": \"goLineEnd\", \"Ctrl-V\": \"goPageDown\", \"Shift-Ctrl-V\": \"goPageUp\",\n \"Ctrl-D\": \"delCharAfter\", \"Ctrl-H\": \"delCharBefore\", \"Alt-Backspace\": \"delWordBefore\", \"Ctrl-K\": \"killLine\",\n \"Ctrl-T\": \"transposeChars\", \"Ctrl-O\": \"openLine\"\n };\n keyMap.macDefault = {\n \"Cmd-A\": \"selectAll\", \"Cmd-D\": \"deleteLine\", \"Cmd-Z\": \"undo\", \"Shift-Cmd-Z\": \"redo\", \"Cmd-Y\": \"redo\",\n \"Cmd-Home\": \"goDocStart\", \"Cmd-Up\": \"goDocStart\", \"Cmd-End\": \"goDocEnd\", \"Cmd-Down\": \"goDocEnd\", \"Alt-Left\": \"goGroupLeft\",\n \"Alt-Right\": \"goGroupRight\", \"Cmd-Left\": \"goLineLeft\", \"Cmd-Right\": \"goLineRight\", \"Alt-Backspace\": \"delGroupBefore\",\n \"Ctrl-Alt-Backspace\": \"delGroupAfter\", \"Alt-Delete\": \"delGroupAfter\", \"Cmd-S\": \"save\", \"Cmd-F\": \"find\",\n \"Cmd-G\": \"findNext\", \"Shift-Cmd-G\": \"findPrev\", \"Cmd-Alt-F\": \"replace\", \"Shift-Cmd-Alt-F\": \"replaceAll\",\n \"Cmd-[\": \"indentLess\", \"Cmd-]\": \"indentMore\", \"Cmd-Backspace\": \"delWrappedLineLeft\", \"Cmd-Delete\": \"delWrappedLineRight\",\n \"Cmd-U\": \"undoSelection\", \"Shift-Cmd-U\": \"redoSelection\", \"Ctrl-Up\": \"goDocStart\", \"Ctrl-Down\": \"goDocEnd\",\n \"fallthrough\": [\"basic\", \"emacsy\"]\n };\n keyMap[\"default\"] = mac ? keyMap.macDefault : keyMap.pcDefault;\n\n // KEYMAP DISPATCH\n\n function normalizeKeyName(name) {\n var parts = name.split(/-(?!$)/);\n name = parts[parts.length - 1];\n var alt, ctrl, shift, cmd;\n for (var i = 0; i < parts.length - 1; i++) {\n var mod = parts[i];\n if (/^(cmd|meta|m)$/i.test(mod)) { cmd = true; }\n else if (/^a(lt)?$/i.test(mod)) { alt = true; }\n else if (/^(c|ctrl|control)$/i.test(mod)) { ctrl = true; }\n else if (/^s(hift)?$/i.test(mod)) { shift = true; }\n else { throw new Error(\"Unrecognized modifier name: \" + mod) }\n }\n if (alt) { name = \"Alt-\" + name; }\n if (ctrl) { name = \"Ctrl-\" + name; }\n if (cmd) { name = \"Cmd-\" + name; }\n if (shift) { name = \"Shift-\" + name; }\n return name\n }\n\n // This is a kludge to keep keymaps mostly working as raw objects\n // (backwards compatibility) while at the same time support features\n // like normalization and multi-stroke key bindings. It compiles a\n // new normalized keymap, and then updates the old object to reflect\n // this.\n function normalizeKeyMap(keymap) {\n var copy = {};\n for (var keyname in keymap) { if (keymap.hasOwnProperty(keyname)) {\n var value = keymap[keyname];\n if (/^(name|fallthrough|(de|at)tach)$/.test(keyname)) { continue }\n if (value == \"...\") { delete keymap[keyname]; continue }\n\n var keys = map(keyname.split(\" \"), normalizeKeyName);\n for (var i = 0; i < keys.length; i++) {\n var val = (void 0), name = (void 0);\n if (i == keys.length - 1) {\n name = keys.join(\" \");\n val = value;\n } else {\n name = keys.slice(0, i + 1).join(\" \");\n val = \"...\";\n }\n var prev = copy[name];\n if (!prev) { copy[name] = val; }\n else if (prev != val) { throw new Error(\"Inconsistent bindings for \" + name) }\n }\n delete keymap[keyname];\n } }\n for (var prop in copy) { keymap[prop] = copy[prop]; }\n return keymap\n }\n\n function lookupKey(key, map, handle, context) {\n map = getKeyMap(map);\n var found = map.call ? map.call(key, context) : map[key];\n if (found === false) { return \"nothing\" }\n if (found === \"...\") { return \"multi\" }\n if (found != null && handle(found)) { return \"handled\" }\n\n if (map.fallthrough) {\n if (Object.prototype.toString.call(map.fallthrough) != \"[object Array]\")\n { return lookupKey(key, map.fallthrough, handle, context) }\n for (var i = 0; i < map.fallthrough.length; i++) {\n var result = lookupKey(key, map.fallthrough[i], handle, context);\n if (result) { return result }\n }\n }\n }\n\n // Modifier key presses don't count as 'real' key presses for the\n // purpose of keymap fallthrough.\n function isModifierKey(value) {\n var name = typeof value == \"string\" ? value : keyNames[value.keyCode];\n return name == \"Ctrl\" || name == \"Alt\" || name == \"Shift\" || name == \"Mod\"\n }\n\n function addModifierNames(name, event, noShift) {\n var base = name;\n if (event.altKey && base != \"Alt\") { name = \"Alt-\" + name; }\n if ((flipCtrlCmd ? event.metaKey : event.ctrlKey) && base != \"Ctrl\") { name = \"Ctrl-\" + name; }\n if ((flipCtrlCmd ? event.ctrlKey : event.metaKey) && base != \"Mod\") { name = \"Cmd-\" + name; }\n if (!noShift && event.shiftKey && base != \"Shift\") { name = \"Shift-\" + name; }\n return name\n }\n\n // Look up the name of a key as indicated by an event object.\n function keyName(event, noShift) {\n if (presto && event.keyCode == 34 && event[\"char\"]) { return false }\n var name = keyNames[event.keyCode];\n if (name == null || event.altGraphKey) { return false }\n // Ctrl-ScrollLock has keyCode 3, same as Ctrl-Pause,\n // so we'll use event.code when available (Chrome 48+, FF 38+, Safari 10.1+)\n if (event.keyCode == 3 && event.code) { name = event.code; }\n return addModifierNames(name, event, noShift)\n }\n\n function getKeyMap(val) {\n return typeof val == \"string\" ? keyMap[val] : val\n }\n\n // Helper for deleting text near the selection(s), used to implement\n // backspace, delete, and similar functionality.\n function deleteNearSelection(cm, compute) {\n var ranges = cm.doc.sel.ranges, kill = [];\n // Build up a set of ranges to kill first, merging overlapping\n // ranges.\n for (var i = 0; i < ranges.length; i++) {\n var toKill = compute(ranges[i]);\n while (kill.length && cmp(toKill.from, lst(kill).to) <= 0) {\n var replaced = kill.pop();\n if (cmp(replaced.from, toKill.from) < 0) {\n toKill.from = replaced.from;\n break\n }\n }\n kill.push(toKill);\n }\n // Next, remove those actual ranges.\n runInOp(cm, function () {\n for (var i = kill.length - 1; i >= 0; i--)\n { replaceRange(cm.doc, \"\", kill[i].from, kill[i].to, \"+delete\"); }\n ensureCursorVisible(cm);\n });\n }\n\n function moveCharLogically(line, ch, dir) {\n var target = skipExtendingChars(line.text, ch + dir, dir);\n return target < 0 || target > line.text.length ? null : target\n }\n\n function moveLogically(line, start, dir) {\n var ch = moveCharLogically(line, start.ch, dir);\n return ch == null ? null : new Pos(start.line, ch, dir < 0 ? \"after\" : \"before\")\n }\n\n function endOfLine(visually, cm, lineObj, lineNo, dir) {\n if (visually) {\n if (cm.doc.direction == \"rtl\") { dir = -dir; }\n var order = getOrder(lineObj, cm.doc.direction);\n if (order) {\n var part = dir < 0 ? lst(order) : order[0];\n var moveInStorageOrder = (dir < 0) == (part.level == 1);\n var sticky = moveInStorageOrder ? \"after\" : \"before\";\n var ch;\n // With a wrapped rtl chunk (possibly spanning multiple bidi parts),\n // it could be that the last bidi part is not on the last visual line,\n // since visual lines contain content order-consecutive chunks.\n // Thus, in rtl, we are looking for the first (content-order) character\n // in the rtl chunk that is on the last line (that is, the same line\n // as the last (content-order) character).\n if (part.level > 0 || cm.doc.direction == \"rtl\") {\n var prep = prepareMeasureForLine(cm, lineObj);\n ch = dir < 0 ? lineObj.text.length - 1 : 0;\n var targetTop = measureCharPrepared(cm, prep, ch).top;\n ch = findFirst(function (ch) { return measureCharPrepared(cm, prep, ch).top == targetTop; }, (dir < 0) == (part.level == 1) ? part.from : part.to - 1, ch);\n if (sticky == \"before\") { ch = moveCharLogically(lineObj, ch, 1); }\n } else { ch = dir < 0 ? part.to : part.from; }\n return new Pos(lineNo, ch, sticky)\n }\n }\n return new Pos(lineNo, dir < 0 ? lineObj.text.length : 0, dir < 0 ? \"before\" : \"after\")\n }\n\n function moveVisually(cm, line, start, dir) {\n var bidi = getOrder(line, cm.doc.direction);\n if (!bidi) { return moveLogically(line, start, dir) }\n if (start.ch >= line.text.length) {\n start.ch = line.text.length;\n start.sticky = \"before\";\n } else if (start.ch <= 0) {\n start.ch = 0;\n start.sticky = \"after\";\n }\n var partPos = getBidiPartAt(bidi, start.ch, start.sticky), part = bidi[partPos];\n if (cm.doc.direction == \"ltr\" && part.level % 2 == 0 && (dir > 0 ? part.to > start.ch : part.from < start.ch)) {\n // Case 1: We move within an ltr part in an ltr editor. Even with wrapped lines,\n // nothing interesting happens.\n return moveLogically(line, start, dir)\n }\n\n var mv = function (pos, dir) { return moveCharLogically(line, pos instanceof Pos ? pos.ch : pos, dir); };\n var prep;\n var getWrappedLineExtent = function (ch) {\n if (!cm.options.lineWrapping) { return {begin: 0, end: line.text.length} }\n prep = prep || prepareMeasureForLine(cm, line);\n return wrappedLineExtentChar(cm, line, prep, ch)\n };\n var wrappedLineExtent = getWrappedLineExtent(start.sticky == \"before\" ? mv(start, -1) : start.ch);\n\n if (cm.doc.direction == \"rtl\" || part.level == 1) {\n var moveInStorageOrder = (part.level == 1) == (dir < 0);\n var ch = mv(start, moveInStorageOrder ? 1 : -1);\n if (ch != null && (!moveInStorageOrder ? ch >= part.from && ch >= wrappedLineExtent.begin : ch <= part.to && ch <= wrappedLineExtent.end)) {\n // Case 2: We move within an rtl part or in an rtl editor on the same visual line\n var sticky = moveInStorageOrder ? \"before\" : \"after\";\n return new Pos(start.line, ch, sticky)\n }\n }\n\n // Case 3: Could not move within this bidi part in this visual line, so leave\n // the current bidi part\n\n var searchInVisualLine = function (partPos, dir, wrappedLineExtent) {\n var getRes = function (ch, moveInStorageOrder) { return moveInStorageOrder\n ? new Pos(start.line, mv(ch, 1), \"before\")\n : new Pos(start.line, ch, \"after\"); };\n\n for (; partPos >= 0 && partPos < bidi.length; partPos += dir) {\n var part = bidi[partPos];\n var moveInStorageOrder = (dir > 0) == (part.level != 1);\n var ch = moveInStorageOrder ? wrappedLineExtent.begin : mv(wrappedLineExtent.end, -1);\n if (part.from <= ch && ch < part.to) { return getRes(ch, moveInStorageOrder) }\n ch = moveInStorageOrder ? part.from : mv(part.to, -1);\n if (wrappedLineExtent.begin <= ch && ch < wrappedLineExtent.end) { return getRes(ch, moveInStorageOrder) }\n }\n };\n\n // Case 3a: Look for other bidi parts on the same visual line\n var res = searchInVisualLine(partPos + dir, dir, wrappedLineExtent);\n if (res) { return res }\n\n // Case 3b: Look for other bidi parts on the next visual line\n var nextCh = dir > 0 ? wrappedLineExtent.end : mv(wrappedLineExtent.begin, -1);\n if (nextCh != null && !(dir > 0 && nextCh == line.text.length)) {\n res = searchInVisualLine(dir > 0 ? 0 : bidi.length - 1, dir, getWrappedLineExtent(nextCh));\n if (res) { return res }\n }\n\n // Case 4: Nowhere to move\n return null\n }\n\n // Commands are parameter-less actions that can be performed on an\n // editor, mostly used for keybindings.\n var commands = {\n selectAll: selectAll,\n singleSelection: function (cm) { return cm.setSelection(cm.getCursor(\"anchor\"), cm.getCursor(\"head\"), sel_dontScroll); },\n killLine: function (cm) { return deleteNearSelection(cm, function (range) {\n if (range.empty()) {\n var len = getLine(cm.doc, range.head.line).text.length;\n if (range.head.ch == len && range.head.line < cm.lastLine())\n { return {from: range.head, to: Pos(range.head.line + 1, 0)} }\n else\n { return {from: range.head, to: Pos(range.head.line, len)} }\n } else {\n return {from: range.from(), to: range.to()}\n }\n }); },\n deleteLine: function (cm) { return deleteNearSelection(cm, function (range) { return ({\n from: Pos(range.from().line, 0),\n to: clipPos(cm.doc, Pos(range.to().line + 1, 0))\n }); }); },\n delLineLeft: function (cm) { return deleteNearSelection(cm, function (range) { return ({\n from: Pos(range.from().line, 0), to: range.from()\n }); }); },\n delWrappedLineLeft: function (cm) { return deleteNearSelection(cm, function (range) {\n var top = cm.charCoords(range.head, \"div\").top + 5;\n var leftPos = cm.coordsChar({left: 0, top: top}, \"div\");\n return {from: leftPos, to: range.from()}\n }); },\n delWrappedLineRight: function (cm) { return deleteNearSelection(cm, function (range) {\n var top = cm.charCoords(range.head, \"div\").top + 5;\n var rightPos = cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, \"div\");\n return {from: range.from(), to: rightPos }\n }); },\n undo: function (cm) { return cm.undo(); },\n redo: function (cm) { return cm.redo(); },\n undoSelection: function (cm) { return cm.undoSelection(); },\n redoSelection: function (cm) { return cm.redoSelection(); },\n goDocStart: function (cm) { return cm.extendSelection(Pos(cm.firstLine(), 0)); },\n goDocEnd: function (cm) { return cm.extendSelection(Pos(cm.lastLine())); },\n goLineStart: function (cm) { return cm.extendSelectionsBy(function (range) { return lineStart(cm, range.head.line); },\n {origin: \"+move\", bias: 1}\n ); },\n goLineStartSmart: function (cm) { return cm.extendSelectionsBy(function (range) { return lineStartSmart(cm, range.head); },\n {origin: \"+move\", bias: 1}\n ); },\n goLineEnd: function (cm) { return cm.extendSelectionsBy(function (range) { return lineEnd(cm, range.head.line); },\n {origin: \"+move\", bias: -1}\n ); },\n goLineRight: function (cm) { return cm.extendSelectionsBy(function (range) {\n var top = cm.cursorCoords(range.head, \"div\").top + 5;\n return cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, \"div\")\n }, sel_move); },\n goLineLeft: function (cm) { return cm.extendSelectionsBy(function (range) {\n var top = cm.cursorCoords(range.head, \"div\").top + 5;\n return cm.coordsChar({left: 0, top: top}, \"div\")\n }, sel_move); },\n goLineLeftSmart: function (cm) { return cm.extendSelectionsBy(function (range) {\n var top = cm.cursorCoords(range.head, \"div\").top + 5;\n var pos = cm.coordsChar({left: 0, top: top}, \"div\");\n if (pos.ch < cm.getLine(pos.line).search(/\\S/)) { return lineStartSmart(cm, range.head) }\n return pos\n }, sel_move); },\n goLineUp: function (cm) { return cm.moveV(-1, \"line\"); },\n goLineDown: function (cm) { return cm.moveV(1, \"line\"); },\n goPageUp: function (cm) { return cm.moveV(-1, \"page\"); },\n goPageDown: function (cm) { return cm.moveV(1, \"page\"); },\n goCharLeft: function (cm) { return cm.moveH(-1, \"char\"); },\n goCharRight: function (cm) { return cm.moveH(1, \"char\"); },\n goColumnLeft: function (cm) { return cm.moveH(-1, \"column\"); },\n goColumnRight: function (cm) { return cm.moveH(1, \"column\"); },\n goWordLeft: function (cm) { return cm.moveH(-1, \"word\"); },\n goGroupRight: function (cm) { return cm.moveH(1, \"group\"); },\n goGroupLeft: function (cm) { return cm.moveH(-1, \"group\"); },\n goWordRight: function (cm) { return cm.moveH(1, \"word\"); },\n delCharBefore: function (cm) { return cm.deleteH(-1, \"codepoint\"); },\n delCharAfter: function (cm) { return cm.deleteH(1, \"char\"); },\n delWordBefore: function (cm) { return cm.deleteH(-1, \"word\"); },\n delWordAfter: function (cm) { return cm.deleteH(1, \"word\"); },\n delGroupBefore: function (cm) { return cm.deleteH(-1, \"group\"); },\n delGroupAfter: function (cm) { return cm.deleteH(1, \"group\"); },\n indentAuto: function (cm) { return cm.indentSelection(\"smart\"); },\n indentMore: function (cm) { return cm.indentSelection(\"add\"); },\n indentLess: function (cm) { return cm.indentSelection(\"subtract\"); },\n insertTab: function (cm) { return cm.replaceSelection(\"\\t\"); },\n insertSoftTab: function (cm) {\n var spaces = [], ranges = cm.listSelections(), tabSize = cm.options.tabSize;\n for (var i = 0; i < ranges.length; i++) {\n var pos = ranges[i].from();\n var col = countColumn(cm.getLine(pos.line), pos.ch, tabSize);\n spaces.push(spaceStr(tabSize - col % tabSize));\n }\n cm.replaceSelections(spaces);\n },\n defaultTab: function (cm) {\n if (cm.somethingSelected()) { cm.indentSelection(\"add\"); }\n else { cm.execCommand(\"insertTab\"); }\n },\n // Swap the two chars left and right of each selection's head.\n // Move cursor behind the two swapped characters afterwards.\n //\n // Doesn't consider line feeds a character.\n // Doesn't scan more than one line above to find a character.\n // Doesn't do anything on an empty line.\n // Doesn't do anything with non-empty selections.\n transposeChars: function (cm) { return runInOp(cm, function () {\n var ranges = cm.listSelections(), newSel = [];\n for (var i = 0; i < ranges.length; i++) {\n if (!ranges[i].empty()) { continue }\n var cur = ranges[i].head, line = getLine(cm.doc, cur.line).text;\n if (line) {\n if (cur.ch == line.length) { cur = new Pos(cur.line, cur.ch - 1); }\n if (cur.ch > 0) {\n cur = new Pos(cur.line, cur.ch + 1);\n cm.replaceRange(line.charAt(cur.ch - 1) + line.charAt(cur.ch - 2),\n Pos(cur.line, cur.ch - 2), cur, \"+transpose\");\n } else if (cur.line > cm.doc.first) {\n var prev = getLine(cm.doc, cur.line - 1).text;\n if (prev) {\n cur = new Pos(cur.line, 1);\n cm.replaceRange(line.charAt(0) + cm.doc.lineSeparator() +\n prev.charAt(prev.length - 1),\n Pos(cur.line - 1, prev.length - 1), cur, \"+transpose\");\n }\n }\n }\n newSel.push(new Range(cur, cur));\n }\n cm.setSelections(newSel);\n }); },\n newlineAndIndent: function (cm) { return runInOp(cm, function () {\n var sels = cm.listSelections();\n for (var i = sels.length - 1; i >= 0; i--)\n { cm.replaceRange(cm.doc.lineSeparator(), sels[i].anchor, sels[i].head, \"+input\"); }\n sels = cm.listSelections();\n for (var i$1 = 0; i$1 < sels.length; i$1++)\n { cm.indentLine(sels[i$1].from().line, null, true); }\n ensureCursorVisible(cm);\n }); },\n openLine: function (cm) { return cm.replaceSelection(\"\\n\", \"start\"); },\n toggleOverwrite: function (cm) { return cm.toggleOverwrite(); }\n };\n\n\n function lineStart(cm, lineN) {\n var line = getLine(cm.doc, lineN);\n var visual = visualLine(line);\n if (visual != line) { lineN = lineNo(visual); }\n return endOfLine(true, cm, visual, lineN, 1)\n }\n function lineEnd(cm, lineN) {\n var line = getLine(cm.doc, lineN);\n var visual = visualLineEnd(line);\n if (visual != line) { lineN = lineNo(visual); }\n return endOfLine(true, cm, line, lineN, -1)\n }\n function lineStartSmart(cm, pos) {\n var start = lineStart(cm, pos.line);\n var line = getLine(cm.doc, start.line);\n var order = getOrder(line, cm.doc.direction);\n if (!order || order[0].level == 0) {\n var firstNonWS = Math.max(start.ch, line.text.search(/\\S/));\n var inWS = pos.line == start.line && pos.ch <= firstNonWS && pos.ch;\n return Pos(start.line, inWS ? 0 : firstNonWS, start.sticky)\n }\n return start\n }\n\n // Run a handler that was bound to a key.\n function doHandleBinding(cm, bound, dropShift) {\n if (typeof bound == \"string\") {\n bound = commands[bound];\n if (!bound) { return false }\n }\n // Ensure previous input has been read, so that the handler sees a\n // consistent view of the document\n cm.display.input.ensurePolled();\n var prevShift = cm.display.shift, done = false;\n try {\n if (cm.isReadOnly()) { cm.state.suppressEdits = true; }\n if (dropShift) { cm.display.shift = false; }\n done = bound(cm) != Pass;\n } finally {\n cm.display.shift = prevShift;\n cm.state.suppressEdits = false;\n }\n return done\n }\n\n function lookupKeyForEditor(cm, name, handle) {\n for (var i = 0; i < cm.state.keyMaps.length; i++) {\n var result = lookupKey(name, cm.state.keyMaps[i], handle, cm);\n if (result) { return result }\n }\n return (cm.options.extraKeys && lookupKey(name, cm.options.extraKeys, handle, cm))\n || lookupKey(name, cm.options.keyMap, handle, cm)\n }\n\n // Note that, despite the name, this function is also used to check\n // for bound mouse clicks.\n\n var stopSeq = new Delayed;\n\n function dispatchKey(cm, name, e, handle) {\n var seq = cm.state.keySeq;\n if (seq) {\n if (isModifierKey(name)) { return \"handled\" }\n if (/\\'$/.test(name))\n { cm.state.keySeq = null; }\n else\n { stopSeq.set(50, function () {\n if (cm.state.keySeq == seq) {\n cm.state.keySeq = null;\n cm.display.input.reset();\n }\n }); }\n if (dispatchKeyInner(cm, seq + \" \" + name, e, handle)) { return true }\n }\n return dispatchKeyInner(cm, name, e, handle)\n }\n\n function dispatchKeyInner(cm, name, e, handle) {\n var result = lookupKeyForEditor(cm, name, handle);\n\n if (result == \"multi\")\n { cm.state.keySeq = name; }\n if (result == \"handled\")\n { signalLater(cm, \"keyHandled\", cm, name, e); }\n\n if (result == \"handled\" || result == \"multi\") {\n e_preventDefault(e);\n restartBlink(cm);\n }\n\n return !!result\n }\n\n // Handle a key from the keydown event.\n function handleKeyBinding(cm, e) {\n var name = keyName(e, true);\n if (!name) { return false }\n\n if (e.shiftKey && !cm.state.keySeq) {\n // First try to resolve full name (including 'Shift-'). Failing\n // that, see if there is a cursor-motion command (starting with\n // 'go') bound to the keyname without 'Shift-'.\n return dispatchKey(cm, \"Shift-\" + name, e, function (b) { return doHandleBinding(cm, b, true); })\n || dispatchKey(cm, name, e, function (b) {\n if (typeof b == \"string\" ? /^go[A-Z]/.test(b) : b.motion)\n { return doHandleBinding(cm, b) }\n })\n } else {\n return dispatchKey(cm, name, e, function (b) { return doHandleBinding(cm, b); })\n }\n }\n\n // Handle a key from the keypress event\n function handleCharBinding(cm, e, ch) {\n return dispatchKey(cm, \"'\" + ch + \"'\", e, function (b) { return doHandleBinding(cm, b, true); })\n }\n\n var lastStoppedKey = null;\n function onKeyDown(e) {\n var cm = this;\n if (e.target && e.target != cm.display.input.getField()) { return }\n cm.curOp.focus = activeElt(root(cm));\n if (signalDOMEvent(cm, e)) { return }\n // IE does strange things with escape.\n if (ie && ie_version < 11 && e.keyCode == 27) { e.returnValue = false; }\n var code = e.keyCode;\n cm.display.shift = code == 16 || e.shiftKey;\n var handled = handleKeyBinding(cm, e);\n if (presto) {\n lastStoppedKey = handled ? code : null;\n // Opera has no cut event... we try to at least catch the key combo\n if (!handled && code == 88 && !hasCopyEvent && (mac ? e.metaKey : e.ctrlKey))\n { cm.replaceSelection(\"\", null, \"cut\"); }\n }\n if (gecko && !mac && !handled && code == 46 && e.shiftKey && !e.ctrlKey && document.execCommand)\n { document.execCommand(\"cut\"); }\n\n // Turn mouse into crosshair when Alt is held on Mac.\n if (code == 18 && !/\\bCodeMirror-crosshair\\b/.test(cm.display.lineDiv.className))\n { showCrossHair(cm); }\n }\n\n function showCrossHair(cm) {\n var lineDiv = cm.display.lineDiv;\n addClass(lineDiv, \"CodeMirror-crosshair\");\n\n function up(e) {\n if (e.keyCode == 18 || !e.altKey) {\n rmClass(lineDiv, \"CodeMirror-crosshair\");\n off(document, \"keyup\", up);\n off(document, \"mouseover\", up);\n }\n }\n on(document, \"keyup\", up);\n on(document, \"mouseover\", up);\n }\n\n function onKeyUp(e) {\n if (e.keyCode == 16) { this.doc.sel.shift = false; }\n signalDOMEvent(this, e);\n }\n\n function onKeyPress(e) {\n var cm = this;\n if (e.target && e.target != cm.display.input.getField()) { return }\n if (eventInWidget(cm.display, e) || signalDOMEvent(cm, e) || e.ctrlKey && !e.altKey || mac && e.metaKey) { return }\n var keyCode = e.keyCode, charCode = e.charCode;\n if (presto && keyCode == lastStoppedKey) {lastStoppedKey = null; e_preventDefault(e); return}\n if ((presto && (!e.which || e.which < 10)) && handleKeyBinding(cm, e)) { return }\n var ch = String.fromCharCode(charCode == null ? keyCode : charCode);\n // Some browsers fire keypress events for backspace\n if (ch == \"\\x08\") { return }\n if (handleCharBinding(cm, e, ch)) { return }\n cm.display.input.onKeyPress(e);\n }\n\n var DOUBLECLICK_DELAY = 400;\n\n var PastClick = function(time, pos, button) {\n this.time = time;\n this.pos = pos;\n this.button = button;\n };\n\n PastClick.prototype.compare = function (time, pos, button) {\n return this.time + DOUBLECLICK_DELAY > time &&\n cmp(pos, this.pos) == 0 && button == this.button\n };\n\n var lastClick, lastDoubleClick;\n function clickRepeat(pos, button) {\n var now = +new Date;\n if (lastDoubleClick && lastDoubleClick.compare(now, pos, button)) {\n lastClick = lastDoubleClick = null;\n return \"triple\"\n } else if (lastClick && lastClick.compare(now, pos, button)) {\n lastDoubleClick = new PastClick(now, pos, button);\n lastClick = null;\n return \"double\"\n } else {\n lastClick = new PastClick(now, pos, button);\n lastDoubleClick = null;\n return \"single\"\n }\n }\n\n // A mouse down can be a single click, double click, triple click,\n // start of selection drag, start of text drag, new cursor\n // (ctrl-click), rectangle drag (alt-drag), or xwin\n // middle-click-paste. Or it might be a click on something we should\n // not interfere with, such as a scrollbar or widget.\n function onMouseDown(e) {\n var cm = this, display = cm.display;\n if (signalDOMEvent(cm, e) || display.activeTouch && display.input.supportsTouch()) { return }\n display.input.ensurePolled();\n display.shift = e.shiftKey;\n\n if (eventInWidget(display, e)) {\n if (!webkit) {\n // Briefly turn off draggability, to allow widgets to do\n // normal dragging things.\n display.scroller.draggable = false;\n setTimeout(function () { return display.scroller.draggable = true; }, 100);\n }\n return\n }\n if (clickInGutter(cm, e)) { return }\n var pos = posFromMouse(cm, e), button = e_button(e), repeat = pos ? clickRepeat(pos, button) : \"single\";\n win(cm).focus();\n\n // #3261: make sure, that we're not starting a second selection\n if (button == 1 && cm.state.selectingText)\n { cm.state.selectingText(e); }\n\n if (pos && handleMappedButton(cm, button, pos, repeat, e)) { return }\n\n if (button == 1) {\n if (pos) { leftButtonDown(cm, pos, repeat, e); }\n else if (e_target(e) == display.scroller) { e_preventDefault(e); }\n } else if (button == 2) {\n if (pos) { extendSelection(cm.doc, pos); }\n setTimeout(function () { return display.input.focus(); }, 20);\n } else if (button == 3) {\n if (captureRightClick) { cm.display.input.onContextMenu(e); }\n else { delayBlurEvent(cm); }\n }\n }\n\n function handleMappedButton(cm, button, pos, repeat, event) {\n var name = \"Click\";\n if (repeat == \"double\") { name = \"Double\" + name; }\n else if (repeat == \"triple\") { name = \"Triple\" + name; }\n name = (button == 1 ? \"Left\" : button == 2 ? \"Middle\" : \"Right\") + name;\n\n return dispatchKey(cm, addModifierNames(name, event), event, function (bound) {\n if (typeof bound == \"string\") { bound = commands[bound]; }\n if (!bound) { return false }\n var done = false;\n try {\n if (cm.isReadOnly()) { cm.state.suppressEdits = true; }\n done = bound(cm, pos) != Pass;\n } finally {\n cm.state.suppressEdits = false;\n }\n return done\n })\n }\n\n function configureMouse(cm, repeat, event) {\n var option = cm.getOption(\"configureMouse\");\n var value = option ? option(cm, repeat, event) : {};\n if (value.unit == null) {\n var rect = chromeOS ? event.shiftKey && event.metaKey : event.altKey;\n value.unit = rect ? \"rectangle\" : repeat == \"single\" ? \"char\" : repeat == \"double\" ? \"word\" : \"line\";\n }\n if (value.extend == null || cm.doc.extend) { value.extend = cm.doc.extend || event.shiftKey; }\n if (value.addNew == null) { value.addNew = mac ? event.metaKey : event.ctrlKey; }\n if (value.moveOnDrag == null) { value.moveOnDrag = !(mac ? event.altKey : event.ctrlKey); }\n return value\n }\n\n function leftButtonDown(cm, pos, repeat, event) {\n if (ie) { setTimeout(bind(ensureFocus, cm), 0); }\n else { cm.curOp.focus = activeElt(root(cm)); }\n\n var behavior = configureMouse(cm, repeat, event);\n\n var sel = cm.doc.sel, contained;\n if (cm.options.dragDrop && dragAndDrop && !cm.isReadOnly() &&\n repeat == \"single\" && (contained = sel.contains(pos)) > -1 &&\n (cmp((contained = sel.ranges[contained]).from(), pos) < 0 || pos.xRel > 0) &&\n (cmp(contained.to(), pos) > 0 || pos.xRel < 0))\n { leftButtonStartDrag(cm, event, pos, behavior); }\n else\n { leftButtonSelect(cm, event, pos, behavior); }\n }\n\n // Start a text drag. When it ends, see if any dragging actually\n // happen, and treat as a click if it didn't.\n function leftButtonStartDrag(cm, event, pos, behavior) {\n var display = cm.display, moved = false;\n var dragEnd = operation(cm, function (e) {\n if (webkit) { display.scroller.draggable = false; }\n cm.state.draggingText = false;\n if (cm.state.delayingBlurEvent) {\n if (cm.hasFocus()) { cm.state.delayingBlurEvent = false; }\n else { delayBlurEvent(cm); }\n }\n off(display.wrapper.ownerDocument, \"mouseup\", dragEnd);\n off(display.wrapper.ownerDocument, \"mousemove\", mouseMove);\n off(display.scroller, \"dragstart\", dragStart);\n off(display.scroller, \"drop\", dragEnd);\n if (!moved) {\n e_preventDefault(e);\n if (!behavior.addNew)\n { extendSelection(cm.doc, pos, null, null, behavior.extend); }\n // Work around unexplainable focus problem in IE9 (#2127) and Chrome (#3081)\n if ((webkit && !safari) || ie && ie_version == 9)\n { setTimeout(function () {display.wrapper.ownerDocument.body.focus({preventScroll: true}); display.input.focus();}, 20); }\n else\n { display.input.focus(); }\n }\n });\n var mouseMove = function(e2) {\n moved = moved || Math.abs(event.clientX - e2.clientX) + Math.abs(event.clientY - e2.clientY) >= 10;\n };\n var dragStart = function () { return moved = true; };\n // Let the drag handler handle this.\n if (webkit) { display.scroller.draggable = true; }\n cm.state.draggingText = dragEnd;\n dragEnd.copy = !behavior.moveOnDrag;\n on(display.wrapper.ownerDocument, \"mouseup\", dragEnd);\n on(display.wrapper.ownerDocument, \"mousemove\", mouseMove);\n on(display.scroller, \"dragstart\", dragStart);\n on(display.scroller, \"drop\", dragEnd);\n\n cm.state.delayingBlurEvent = true;\n setTimeout(function () { return display.input.focus(); }, 20);\n // IE's approach to draggable\n if (display.scroller.dragDrop) { display.scroller.dragDrop(); }\n }\n\n function rangeForUnit(cm, pos, unit) {\n if (unit == \"char\") { return new Range(pos, pos) }\n if (unit == \"word\") { return cm.findWordAt(pos) }\n if (unit == \"line\") { return new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))) }\n var result = unit(cm, pos);\n return new Range(result.from, result.to)\n }\n\n // Normal selection, as opposed to text dragging.\n function leftButtonSelect(cm, event, start, behavior) {\n if (ie) { delayBlurEvent(cm); }\n var display = cm.display, doc = cm.doc;\n e_preventDefault(event);\n\n var ourRange, ourIndex, startSel = doc.sel, ranges = startSel.ranges;\n if (behavior.addNew && !behavior.extend) {\n ourIndex = doc.sel.contains(start);\n if (ourIndex > -1)\n { ourRange = ranges[ourIndex]; }\n else\n { ourRange = new Range(start, start); }\n } else {\n ourRange = doc.sel.primary();\n ourIndex = doc.sel.primIndex;\n }\n\n if (behavior.unit == \"rectangle\") {\n if (!behavior.addNew) { ourRange = new Range(start, start); }\n start = posFromMouse(cm, event, true, true);\n ourIndex = -1;\n } else {\n var range = rangeForUnit(cm, start, behavior.unit);\n if (behavior.extend)\n { ourRange = extendRange(ourRange, range.anchor, range.head, behavior.extend); }\n else\n { ourRange = range; }\n }\n\n if (!behavior.addNew) {\n ourIndex = 0;\n setSelection(doc, new Selection([ourRange], 0), sel_mouse);\n startSel = doc.sel;\n } else if (ourIndex == -1) {\n ourIndex = ranges.length;\n setSelection(doc, normalizeSelection(cm, ranges.concat([ourRange]), ourIndex),\n {scroll: false, origin: \"*mouse\"});\n } else if (ranges.length > 1 && ranges[ourIndex].empty() && behavior.unit == \"char\" && !behavior.extend) {\n setSelection(doc, normalizeSelection(cm, ranges.slice(0, ourIndex).concat(ranges.slice(ourIndex + 1)), 0),\n {scroll: false, origin: \"*mouse\"});\n startSel = doc.sel;\n } else {\n replaceOneSelection(doc, ourIndex, ourRange, sel_mouse);\n }\n\n var lastPos = start;\n function extendTo(pos) {\n if (cmp(lastPos, pos) == 0) { return }\n lastPos = pos;\n\n if (behavior.unit == \"rectangle\") {\n var ranges = [], tabSize = cm.options.tabSize;\n var startCol = countColumn(getLine(doc, start.line).text, start.ch, tabSize);\n var posCol = countColumn(getLine(doc, pos.line).text, pos.ch, tabSize);\n var left = Math.min(startCol, posCol), right = Math.max(startCol, posCol);\n for (var line = Math.min(start.line, pos.line), end = Math.min(cm.lastLine(), Math.max(start.line, pos.line));\n line <= end; line++) {\n var text = getLine(doc, line).text, leftPos = findColumn(text, left, tabSize);\n if (left == right)\n { ranges.push(new Range(Pos(line, leftPos), Pos(line, leftPos))); }\n else if (text.length > leftPos)\n { ranges.push(new Range(Pos(line, leftPos), Pos(line, findColumn(text, right, tabSize)))); }\n }\n if (!ranges.length) { ranges.push(new Range(start, start)); }\n setSelection(doc, normalizeSelection(cm, startSel.ranges.slice(0, ourIndex).concat(ranges), ourIndex),\n {origin: \"*mouse\", scroll: false});\n cm.scrollIntoView(pos);\n } else {\n var oldRange = ourRange;\n var range = rangeForUnit(cm, pos, behavior.unit);\n var anchor = oldRange.anchor, head;\n if (cmp(range.anchor, anchor) > 0) {\n head = range.head;\n anchor = minPos(oldRange.from(), range.anchor);\n } else {\n head = range.anchor;\n anchor = maxPos(oldRange.to(), range.head);\n }\n var ranges$1 = startSel.ranges.slice(0);\n ranges$1[ourIndex] = bidiSimplify(cm, new Range(clipPos(doc, anchor), head));\n setSelection(doc, normalizeSelection(cm, ranges$1, ourIndex), sel_mouse);\n }\n }\n\n var editorSize = display.wrapper.getBoundingClientRect();\n // Used to ensure timeout re-tries don't fire when another extend\n // happened in the meantime (clearTimeout isn't reliable -- at\n // least on Chrome, the timeouts still happen even when cleared,\n // if the clear happens after their scheduled firing time).\n var counter = 0;\n\n function extend(e) {\n var curCount = ++counter;\n var cur = posFromMouse(cm, e, true, behavior.unit == \"rectangle\");\n if (!cur) { return }\n if (cmp(cur, lastPos) != 0) {\n cm.curOp.focus = activeElt(root(cm));\n extendTo(cur);\n var visible = visibleLines(display, doc);\n if (cur.line >= visible.to || cur.line < visible.from)\n { setTimeout(operation(cm, function () {if (counter == curCount) { extend(e); }}), 150); }\n } else {\n var outside = e.clientY < editorSize.top ? -20 : e.clientY > editorSize.bottom ? 20 : 0;\n if (outside) { setTimeout(operation(cm, function () {\n if (counter != curCount) { return }\n display.scroller.scrollTop += outside;\n extend(e);\n }), 50); }\n }\n }\n\n function done(e) {\n cm.state.selectingText = false;\n counter = Infinity;\n // If e is null or undefined we interpret this as someone trying\n // to explicitly cancel the selection rather than the user\n // letting go of the mouse button.\n if (e) {\n e_preventDefault(e);\n display.input.focus();\n }\n off(display.wrapper.ownerDocument, \"mousemove\", move);\n off(display.wrapper.ownerDocument, \"mouseup\", up);\n doc.history.lastSelOrigin = null;\n }\n\n var move = operation(cm, function (e) {\n if (e.buttons === 0 || !e_button(e)) { done(e); }\n else { extend(e); }\n });\n var up = operation(cm, done);\n cm.state.selectingText = up;\n on(display.wrapper.ownerDocument, \"mousemove\", move);\n on(display.wrapper.ownerDocument, \"mouseup\", up);\n }\n\n // Used when mouse-selecting to adjust the anchor to the proper side\n // of a bidi jump depending on the visual position of the head.\n function bidiSimplify(cm, range) {\n var anchor = range.anchor;\n var head = range.head;\n var anchorLine = getLine(cm.doc, anchor.line);\n if (cmp(anchor, head) == 0 && anchor.sticky == head.sticky) { return range }\n var order = getOrder(anchorLine);\n if (!order) { return range }\n var index = getBidiPartAt(order, anchor.ch, anchor.sticky), part = order[index];\n if (part.from != anchor.ch && part.to != anchor.ch) { return range }\n var boundary = index + ((part.from == anchor.ch) == (part.level != 1) ? 0 : 1);\n if (boundary == 0 || boundary == order.length) { return range }\n\n // Compute the relative visual position of the head compared to the\n // anchor (<0 is to the left, >0 to the right)\n var leftSide;\n if (head.line != anchor.line) {\n leftSide = (head.line - anchor.line) * (cm.doc.direction == \"ltr\" ? 1 : -1) > 0;\n } else {\n var headIndex = getBidiPartAt(order, head.ch, head.sticky);\n var dir = headIndex - index || (head.ch - anchor.ch) * (part.level == 1 ? -1 : 1);\n if (headIndex == boundary - 1 || headIndex == boundary)\n { leftSide = dir < 0; }\n else\n { leftSide = dir > 0; }\n }\n\n var usePart = order[boundary + (leftSide ? -1 : 0)];\n var from = leftSide == (usePart.level == 1);\n var ch = from ? usePart.from : usePart.to, sticky = from ? \"after\" : \"before\";\n return anchor.ch == ch && anchor.sticky == sticky ? range : new Range(new Pos(anchor.line, ch, sticky), head)\n }\n\n\n // Determines whether an event happened in the gutter, and fires the\n // handlers for the corresponding event.\n function gutterEvent(cm, e, type, prevent) {\n var mX, mY;\n if (e.touches) {\n mX = e.touches[0].clientX;\n mY = e.touches[0].clientY;\n } else {\n try { mX = e.clientX; mY = e.clientY; }\n catch(e$1) { return false }\n }\n if (mX >= Math.floor(cm.display.gutters.getBoundingClientRect().right)) { return false }\n if (prevent) { e_preventDefault(e); }\n\n var display = cm.display;\n var lineBox = display.lineDiv.getBoundingClientRect();\n\n if (mY > lineBox.bottom || !hasHandler(cm, type)) { return e_defaultPrevented(e) }\n mY -= lineBox.top - display.viewOffset;\n\n for (var i = 0; i < cm.display.gutterSpecs.length; ++i) {\n var g = display.gutters.childNodes[i];\n if (g && g.getBoundingClientRect().right >= mX) {\n var line = lineAtHeight(cm.doc, mY);\n var gutter = cm.display.gutterSpecs[i];\n signal(cm, type, cm, line, gutter.className, e);\n return e_defaultPrevented(e)\n }\n }\n }\n\n function clickInGutter(cm, e) {\n return gutterEvent(cm, e, \"gutterClick\", true)\n }\n\n // CONTEXT MENU HANDLING\n\n // To make the context menu work, we need to briefly unhide the\n // textarea (making it as unobtrusive as possible) to let the\n // right-click take effect on it.\n function onContextMenu(cm, e) {\n if (eventInWidget(cm.display, e) || contextMenuInGutter(cm, e)) { return }\n if (signalDOMEvent(cm, e, \"contextmenu\")) { return }\n if (!captureRightClick) { cm.display.input.onContextMenu(e); }\n }\n\n function contextMenuInGutter(cm, e) {\n if (!hasHandler(cm, \"gutterContextMenu\")) { return false }\n return gutterEvent(cm, e, \"gutterContextMenu\", false)\n }\n\n function themeChanged(cm) {\n cm.display.wrapper.className = cm.display.wrapper.className.replace(/\\s*cm-s-\\S+/g, \"\") +\n cm.options.theme.replace(/(^|\\s)\\s*/g, \" cm-s-\");\n clearCaches(cm);\n }\n\n var Init = {toString: function(){return \"CodeMirror.Init\"}};\n\n var defaults = {};\n var optionHandlers = {};\n\n function defineOptions(CodeMirror) {\n var optionHandlers = CodeMirror.optionHandlers;\n\n function option(name, deflt, handle, notOnInit) {\n CodeMirror.defaults[name] = deflt;\n if (handle) { optionHandlers[name] =\n notOnInit ? function (cm, val, old) {if (old != Init) { handle(cm, val, old); }} : handle; }\n }\n\n CodeMirror.defineOption = option;\n\n // Passed to option handlers when there is no old value.\n CodeMirror.Init = Init;\n\n // These two are, on init, called from the constructor because they\n // have to be initialized before the editor can start at all.\n option(\"value\", \"\", function (cm, val) { return cm.setValue(val); }, true);\n option(\"mode\", null, function (cm, val) {\n cm.doc.modeOption = val;\n loadMode(cm);\n }, true);\n\n option(\"indentUnit\", 2, loadMode, true);\n option(\"indentWithTabs\", false);\n option(\"smartIndent\", true);\n option(\"tabSize\", 4, function (cm) {\n resetModeState(cm);\n clearCaches(cm);\n regChange(cm);\n }, true);\n\n option(\"lineSeparator\", null, function (cm, val) {\n cm.doc.lineSep = val;\n if (!val) { return }\n var newBreaks = [], lineNo = cm.doc.first;\n cm.doc.iter(function (line) {\n for (var pos = 0;;) {\n var found = line.text.indexOf(val, pos);\n if (found == -1) { break }\n pos = found + val.length;\n newBreaks.push(Pos(lineNo, found));\n }\n lineNo++;\n });\n for (var i = newBreaks.length - 1; i >= 0; i--)\n { replaceRange(cm.doc, val, newBreaks[i], Pos(newBreaks[i].line, newBreaks[i].ch + val.length)); }\n });\n option(\"specialChars\", /[\\u0000-\\u001f\\u007f-\\u009f\\u00ad\\u061c\\u200b\\u200e\\u200f\\u2028\\u2029\\u202d\\u202e\\u2066\\u2067\\u2069\\ufeff\\ufff9-\\ufffc]/g, function (cm, val, old) {\n cm.state.specialChars = new RegExp(val.source + (val.test(\"\\t\") ? \"\" : \"|\\t\"), \"g\");\n if (old != Init) { cm.refresh(); }\n });\n option(\"specialCharPlaceholder\", defaultSpecialCharPlaceholder, function (cm) { return cm.refresh(); }, true);\n option(\"electricChars\", true);\n option(\"inputStyle\", mobile ? \"contenteditable\" : \"textarea\", function () {\n throw new Error(\"inputStyle can not (yet) be changed in a running editor\") // FIXME\n }, true);\n option(\"spellcheck\", false, function (cm, val) { return cm.getInputField().spellcheck = val; }, true);\n option(\"autocorrect\", false, function (cm, val) { return cm.getInputField().autocorrect = val; }, true);\n option(\"autocapitalize\", false, function (cm, val) { return cm.getInputField().autocapitalize = val; }, true);\n option(\"rtlMoveVisually\", !windows);\n option(\"wholeLineUpdateBefore\", true);\n\n option(\"theme\", \"default\", function (cm) {\n themeChanged(cm);\n updateGutters(cm);\n }, true);\n option(\"keyMap\", \"default\", function (cm, val, old) {\n var next = getKeyMap(val);\n var prev = old != Init && getKeyMap(old);\n if (prev && prev.detach) { prev.detach(cm, next); }\n if (next.attach) { next.attach(cm, prev || null); }\n });\n option(\"extraKeys\", null);\n option(\"configureMouse\", null);\n\n option(\"lineWrapping\", false, wrappingChanged, true);\n option(\"gutters\", [], function (cm, val) {\n cm.display.gutterSpecs = getGutters(val, cm.options.lineNumbers);\n updateGutters(cm);\n }, true);\n option(\"fixedGutter\", true, function (cm, val) {\n cm.display.gutters.style.left = val ? compensateForHScroll(cm.display) + \"px\" : \"0\";\n cm.refresh();\n }, true);\n option(\"coverGutterNextToScrollbar\", false, function (cm) { return updateScrollbars(cm); }, true);\n option(\"scrollbarStyle\", \"native\", function (cm) {\n initScrollbars(cm);\n updateScrollbars(cm);\n cm.display.scrollbars.setScrollTop(cm.doc.scrollTop);\n cm.display.scrollbars.setScrollLeft(cm.doc.scrollLeft);\n }, true);\n option(\"lineNumbers\", false, function (cm, val) {\n cm.display.gutterSpecs = getGutters(cm.options.gutters, val);\n updateGutters(cm);\n }, true);\n option(\"firstLineNumber\", 1, updateGutters, true);\n option(\"lineNumberFormatter\", function (integer) { return integer; }, updateGutters, true);\n option(\"showCursorWhenSelecting\", false, updateSelection, true);\n\n option(\"resetSelectionOnContextMenu\", true);\n option(\"lineWiseCopyCut\", true);\n option(\"pasteLinesPerSelection\", true);\n option(\"selectionsMayTouch\", false);\n\n option(\"readOnly\", false, function (cm, val) {\n if (val == \"nocursor\") {\n onBlur(cm);\n cm.display.input.blur();\n }\n cm.display.input.readOnlyChanged(val);\n });\n\n option(\"screenReaderLabel\", null, function (cm, val) {\n val = (val === '') ? null : val;\n cm.display.input.screenReaderLabelChanged(val);\n });\n\n option(\"disableInput\", false, function (cm, val) {if (!val) { cm.display.input.reset(); }}, true);\n option(\"dragDrop\", true, dragDropChanged);\n option(\"allowDropFileTypes\", null);\n\n option(\"cursorBlinkRate\", 530);\n option(\"cursorScrollMargin\", 0);\n option(\"cursorHeight\", 1, updateSelection, true);\n option(\"singleCursorHeightPerLine\", true, updateSelection, true);\n option(\"workTime\", 100);\n option(\"workDelay\", 100);\n option(\"flattenSpans\", true, resetModeState, true);\n option(\"addModeClass\", false, resetModeState, true);\n option(\"pollInterval\", 100);\n option(\"undoDepth\", 200, function (cm, val) { return cm.doc.history.undoDepth = val; });\n option(\"historyEventDelay\", 1250);\n option(\"viewportMargin\", 10, function (cm) { return cm.refresh(); }, true);\n option(\"maxHighlightLength\", 10000, resetModeState, true);\n option(\"moveInputWithCursor\", true, function (cm, val) {\n if (!val) { cm.display.input.resetPosition(); }\n });\n\n option(\"tabindex\", null, function (cm, val) { return cm.display.input.getField().tabIndex = val || \"\"; });\n option(\"autofocus\", null);\n option(\"direction\", \"ltr\", function (cm, val) { return cm.doc.setDirection(val); }, true);\n option(\"phrases\", null);\n }\n\n function dragDropChanged(cm, value, old) {\n var wasOn = old && old != Init;\n if (!value != !wasOn) {\n var funcs = cm.display.dragFunctions;\n var toggle = value ? on : off;\n toggle(cm.display.scroller, \"dragstart\", funcs.start);\n toggle(cm.display.scroller, \"dragenter\", funcs.enter);\n toggle(cm.display.scroller, \"dragover\", funcs.over);\n toggle(cm.display.scroller, \"dragleave\", funcs.leave);\n toggle(cm.display.scroller, \"drop\", funcs.drop);\n }\n }\n\n function wrappingChanged(cm) {\n if (cm.options.lineWrapping) {\n addClass(cm.display.wrapper, \"CodeMirror-wrap\");\n cm.display.sizer.style.minWidth = \"\";\n cm.display.sizerWidth = null;\n } else {\n rmClass(cm.display.wrapper, \"CodeMirror-wrap\");\n findMaxLine(cm);\n }\n estimateLineHeights(cm);\n regChange(cm);\n clearCaches(cm);\n setTimeout(function () { return updateScrollbars(cm); }, 100);\n }\n\n // A CodeMirror instance represents an editor. This is the object\n // that user code is usually dealing with.\n\n function CodeMirror(place, options) {\n var this$1 = this;\n\n if (!(this instanceof CodeMirror)) { return new CodeMirror(place, options) }\n\n this.options = options = options ? copyObj(options) : {};\n // Determine effective options based on given values and defaults.\n copyObj(defaults, options, false);\n\n var doc = options.value;\n if (typeof doc == \"string\") { doc = new Doc(doc, options.mode, null, options.lineSeparator, options.direction); }\n else if (options.mode) { doc.modeOption = options.mode; }\n this.doc = doc;\n\n var input = new CodeMirror.inputStyles[options.inputStyle](this);\n var display = this.display = new Display(place, doc, input, options);\n display.wrapper.CodeMirror = this;\n themeChanged(this);\n if (options.lineWrapping)\n { this.display.wrapper.className += \" CodeMirror-wrap\"; }\n initScrollbars(this);\n\n this.state = {\n keyMaps: [], // stores maps added by addKeyMap\n overlays: [], // highlighting overlays, as added by addOverlay\n modeGen: 0, // bumped when mode/overlay changes, used to invalidate highlighting info\n overwrite: false,\n delayingBlurEvent: false,\n focused: false,\n suppressEdits: false, // used to disable editing during key handlers when in readOnly mode\n pasteIncoming: -1, cutIncoming: -1, // help recognize paste/cut edits in input.poll\n selectingText: false,\n draggingText: false,\n highlight: new Delayed(), // stores highlight worker timeout\n keySeq: null, // Unfinished key sequence\n specialChars: null\n };\n\n if (options.autofocus && !mobile) { display.input.focus(); }\n\n // Override magic textarea content restore that IE sometimes does\n // on our hidden textarea on reload\n if (ie && ie_version < 11) { setTimeout(function () { return this$1.display.input.reset(true); }, 20); }\n\n registerEventHandlers(this);\n ensureGlobalHandlers();\n\n startOperation(this);\n this.curOp.forceUpdate = true;\n attachDoc(this, doc);\n\n if ((options.autofocus && !mobile) || this.hasFocus())\n { setTimeout(function () {\n if (this$1.hasFocus() && !this$1.state.focused) { onFocus(this$1); }\n }, 20); }\n else\n { onBlur(this); }\n\n for (var opt in optionHandlers) { if (optionHandlers.hasOwnProperty(opt))\n { optionHandlers[opt](this, options[opt], Init); } }\n maybeUpdateLineNumberWidth(this);\n if (options.finishInit) { options.finishInit(this); }\n for (var i = 0; i < initHooks.length; ++i) { initHooks[i](this); }\n endOperation(this);\n // Suppress optimizelegibility in Webkit, since it breaks text\n // measuring on line wrapping boundaries.\n if (webkit && options.lineWrapping &&\n getComputedStyle(display.lineDiv).textRendering == \"optimizelegibility\")\n { display.lineDiv.style.textRendering = \"auto\"; }\n }\n\n // The default configuration options.\n CodeMirror.defaults = defaults;\n // Functions to run when options are changed.\n CodeMirror.optionHandlers = optionHandlers;\n\n // Attach the necessary event handlers when initializing the editor\n function registerEventHandlers(cm) {\n var d = cm.display;\n on(d.scroller, \"mousedown\", operation(cm, onMouseDown));\n // Older IE's will not fire a second mousedown for a double click\n if (ie && ie_version < 11)\n { on(d.scroller, \"dblclick\", operation(cm, function (e) {\n if (signalDOMEvent(cm, e)) { return }\n var pos = posFromMouse(cm, e);\n if (!pos || clickInGutter(cm, e) || eventInWidget(cm.display, e)) { return }\n e_preventDefault(e);\n var word = cm.findWordAt(pos);\n extendSelection(cm.doc, word.anchor, word.head);\n })); }\n else\n { on(d.scroller, \"dblclick\", function (e) { return signalDOMEvent(cm, e) || e_preventDefault(e); }); }\n // Some browsers fire contextmenu *after* opening the menu, at\n // which point we can't mess with it anymore. Context menu is\n // handled in onMouseDown for these browsers.\n on(d.scroller, \"contextmenu\", function (e) { return onContextMenu(cm, e); });\n on(d.input.getField(), \"contextmenu\", function (e) {\n if (!d.scroller.contains(e.target)) { onContextMenu(cm, e); }\n });\n\n // Used to suppress mouse event handling when a touch happens\n var touchFinished, prevTouch = {end: 0};\n function finishTouch() {\n if (d.activeTouch) {\n touchFinished = setTimeout(function () { return d.activeTouch = null; }, 1000);\n prevTouch = d.activeTouch;\n prevTouch.end = +new Date;\n }\n }\n function isMouseLikeTouchEvent(e) {\n if (e.touches.length != 1) { return false }\n var touch = e.touches[0];\n return touch.radiusX <= 1 && touch.radiusY <= 1\n }\n function farAway(touch, other) {\n if (other.left == null) { return true }\n var dx = other.left - touch.left, dy = other.top - touch.top;\n return dx * dx + dy * dy > 20 * 20\n }\n on(d.scroller, \"touchstart\", function (e) {\n if (!signalDOMEvent(cm, e) && !isMouseLikeTouchEvent(e) && !clickInGutter(cm, e)) {\n d.input.ensurePolled();\n clearTimeout(touchFinished);\n var now = +new Date;\n d.activeTouch = {start: now, moved: false,\n prev: now - prevTouch.end <= 300 ? prevTouch : null};\n if (e.touches.length == 1) {\n d.activeTouch.left = e.touches[0].pageX;\n d.activeTouch.top = e.touches[0].pageY;\n }\n }\n });\n on(d.scroller, \"touchmove\", function () {\n if (d.activeTouch) { d.activeTouch.moved = true; }\n });\n on(d.scroller, \"touchend\", function (e) {\n var touch = d.activeTouch;\n if (touch && !eventInWidget(d, e) && touch.left != null &&\n !touch.moved && new Date - touch.start < 300) {\n var pos = cm.coordsChar(d.activeTouch, \"page\"), range;\n if (!touch.prev || farAway(touch, touch.prev)) // Single tap\n { range = new Range(pos, pos); }\n else if (!touch.prev.prev || farAway(touch, touch.prev.prev)) // Double tap\n { range = cm.findWordAt(pos); }\n else // Triple tap\n { range = new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))); }\n cm.setSelection(range.anchor, range.head);\n cm.focus();\n e_preventDefault(e);\n }\n finishTouch();\n });\n on(d.scroller, \"touchcancel\", finishTouch);\n\n // Sync scrolling between fake scrollbars and real scrollable\n // area, ensure viewport is updated when scrolling.\n on(d.scroller, \"scroll\", function () {\n if (d.scroller.clientHeight) {\n updateScrollTop(cm, d.scroller.scrollTop);\n setScrollLeft(cm, d.scroller.scrollLeft, true);\n signal(cm, \"scroll\", cm);\n }\n });\n\n // Listen to wheel events in order to try and update the viewport on time.\n on(d.scroller, \"mousewheel\", function (e) { return onScrollWheel(cm, e); });\n on(d.scroller, \"DOMMouseScroll\", function (e) { return onScrollWheel(cm, e); });\n\n // Prevent wrapper from ever scrolling\n on(d.wrapper, \"scroll\", function () { return d.wrapper.scrollTop = d.wrapper.scrollLeft = 0; });\n\n d.dragFunctions = {\n enter: function (e) {if (!signalDOMEvent(cm, e)) { e_stop(e); }},\n over: function (e) {if (!signalDOMEvent(cm, e)) { onDragOver(cm, e); e_stop(e); }},\n start: function (e) { return onDragStart(cm, e); },\n drop: operation(cm, onDrop),\n leave: function (e) {if (!signalDOMEvent(cm, e)) { clearDragCursor(cm); }}\n };\n\n var inp = d.input.getField();\n on(inp, \"keyup\", function (e) { return onKeyUp.call(cm, e); });\n on(inp, \"keydown\", operation(cm, onKeyDown));\n on(inp, \"keypress\", operation(cm, onKeyPress));\n on(inp, \"focus\", function (e) { return onFocus(cm, e); });\n on(inp, \"blur\", function (e) { return onBlur(cm, e); });\n }\n\n var initHooks = [];\n CodeMirror.defineInitHook = function (f) { return initHooks.push(f); };\n\n // Indent the given line. The how parameter can be \"smart\",\n // \"add\"/null, \"subtract\", or \"prev\". When aggressive is false\n // (typically set to true for forced single-line indents), empty\n // lines are not indented, and places where the mode returns Pass\n // are left alone.\n function indentLine(cm, n, how, aggressive) {\n var doc = cm.doc, state;\n if (how == null) { how = \"add\"; }\n if (how == \"smart\") {\n // Fall back to \"prev\" when the mode doesn't have an indentation\n // method.\n if (!doc.mode.indent) { how = \"prev\"; }\n else { state = getContextBefore(cm, n).state; }\n }\n\n var tabSize = cm.options.tabSize;\n var line = getLine(doc, n), curSpace = countColumn(line.text, null, tabSize);\n if (line.stateAfter) { line.stateAfter = null; }\n var curSpaceString = line.text.match(/^\\s*/)[0], indentation;\n if (!aggressive && !/\\S/.test(line.text)) {\n indentation = 0;\n how = \"not\";\n } else if (how == \"smart\") {\n indentation = doc.mode.indent(state, line.text.slice(curSpaceString.length), line.text);\n if (indentation == Pass || indentation > 150) {\n if (!aggressive) { return }\n how = \"prev\";\n }\n }\n if (how == \"prev\") {\n if (n > doc.first) { indentation = countColumn(getLine(doc, n-1).text, null, tabSize); }\n else { indentation = 0; }\n } else if (how == \"add\") {\n indentation = curSpace + cm.options.indentUnit;\n } else if (how == \"subtract\") {\n indentation = curSpace - cm.options.indentUnit;\n } else if (typeof how == \"number\") {\n indentation = curSpace + how;\n }\n indentation = Math.max(0, indentation);\n\n var indentString = \"\", pos = 0;\n if (cm.options.indentWithTabs)\n { for (var i = Math.floor(indentation / tabSize); i; --i) {pos += tabSize; indentString += \"\\t\";} }\n if (pos < indentation) { indentString += spaceStr(indentation - pos); }\n\n if (indentString != curSpaceString) {\n replaceRange(doc, indentString, Pos(n, 0), Pos(n, curSpaceString.length), \"+input\");\n line.stateAfter = null;\n return true\n } else {\n // Ensure that, if the cursor was in the whitespace at the start\n // of the line, it is moved to the end of that space.\n for (var i$1 = 0; i$1 < doc.sel.ranges.length; i$1++) {\n var range = doc.sel.ranges[i$1];\n if (range.head.line == n && range.head.ch < curSpaceString.length) {\n var pos$1 = Pos(n, curSpaceString.length);\n replaceOneSelection(doc, i$1, new Range(pos$1, pos$1));\n break\n }\n }\n }\n }\n\n // This will be set to a {lineWise: bool, text: [string]} object, so\n // that, when pasting, we know what kind of selections the copied\n // text was made out of.\n var lastCopied = null;\n\n function setLastCopied(newLastCopied) {\n lastCopied = newLastCopied;\n }\n\n function applyTextInput(cm, inserted, deleted, sel, origin) {\n var doc = cm.doc;\n cm.display.shift = false;\n if (!sel) { sel = doc.sel; }\n\n var recent = +new Date - 200;\n var paste = origin == \"paste\" || cm.state.pasteIncoming > recent;\n var textLines = splitLinesAuto(inserted), multiPaste = null;\n // When pasting N lines into N selections, insert one line per selection\n if (paste && sel.ranges.length > 1) {\n if (lastCopied && lastCopied.text.join(\"\\n\") == inserted) {\n if (sel.ranges.length % lastCopied.text.length == 0) {\n multiPaste = [];\n for (var i = 0; i < lastCopied.text.length; i++)\n { multiPaste.push(doc.splitLines(lastCopied.text[i])); }\n }\n } else if (textLines.length == sel.ranges.length && cm.options.pasteLinesPerSelection) {\n multiPaste = map(textLines, function (l) { return [l]; });\n }\n }\n\n var updateInput = cm.curOp.updateInput;\n // Normal behavior is to insert the new text into every selection\n for (var i$1 = sel.ranges.length - 1; i$1 >= 0; i$1--) {\n var range = sel.ranges[i$1];\n var from = range.from(), to = range.to();\n if (range.empty()) {\n if (deleted && deleted > 0) // Handle deletion\n { from = Pos(from.line, from.ch - deleted); }\n else if (cm.state.overwrite && !paste) // Handle overwrite\n { to = Pos(to.line, Math.min(getLine(doc, to.line).text.length, to.ch + lst(textLines).length)); }\n else if (paste && lastCopied && lastCopied.lineWise && lastCopied.text.join(\"\\n\") == textLines.join(\"\\n\"))\n { from = to = Pos(from.line, 0); }\n }\n var changeEvent = {from: from, to: to, text: multiPaste ? multiPaste[i$1 % multiPaste.length] : textLines,\n origin: origin || (paste ? \"paste\" : cm.state.cutIncoming > recent ? \"cut\" : \"+input\")};\n makeChange(cm.doc, changeEvent);\n signalLater(cm, \"inputRead\", cm, changeEvent);\n }\n if (inserted && !paste)\n { triggerElectric(cm, inserted); }\n\n ensureCursorVisible(cm);\n if (cm.curOp.updateInput < 2) { cm.curOp.updateInput = updateInput; }\n cm.curOp.typing = true;\n cm.state.pasteIncoming = cm.state.cutIncoming = -1;\n }\n\n function handlePaste(e, cm) {\n var pasted = e.clipboardData && e.clipboardData.getData(\"Text\");\n if (pasted) {\n e.preventDefault();\n if (!cm.isReadOnly() && !cm.options.disableInput && cm.hasFocus())\n { runInOp(cm, function () { return applyTextInput(cm, pasted, 0, null, \"paste\"); }); }\n return true\n }\n }\n\n function triggerElectric(cm, inserted) {\n // When an 'electric' character is inserted, immediately trigger a reindent\n if (!cm.options.electricChars || !cm.options.smartIndent) { return }\n var sel = cm.doc.sel;\n\n for (var i = sel.ranges.length - 1; i >= 0; i--) {\n var range = sel.ranges[i];\n if (range.head.ch > 100 || (i && sel.ranges[i - 1].head.line == range.head.line)) { continue }\n var mode = cm.getModeAt(range.head);\n var indented = false;\n if (mode.electricChars) {\n for (var j = 0; j < mode.electricChars.length; j++)\n { if (inserted.indexOf(mode.electricChars.charAt(j)) > -1) {\n indented = indentLine(cm, range.head.line, \"smart\");\n break\n } }\n } else if (mode.electricInput) {\n if (mode.electricInput.test(getLine(cm.doc, range.head.line).text.slice(0, range.head.ch)))\n { indented = indentLine(cm, range.head.line, \"smart\"); }\n }\n if (indented) { signalLater(cm, \"electricInput\", cm, range.head.line); }\n }\n }\n\n function copyableRanges(cm) {\n var text = [], ranges = [];\n for (var i = 0; i < cm.doc.sel.ranges.length; i++) {\n var line = cm.doc.sel.ranges[i].head.line;\n var lineRange = {anchor: Pos(line, 0), head: Pos(line + 1, 0)};\n ranges.push(lineRange);\n text.push(cm.getRange(lineRange.anchor, lineRange.head));\n }\n return {text: text, ranges: ranges}\n }\n\n function disableBrowserMagic(field, spellcheck, autocorrect, autocapitalize) {\n field.setAttribute(\"autocorrect\", autocorrect ? \"on\" : \"off\");\n field.setAttribute(\"autocapitalize\", autocapitalize ? \"on\" : \"off\");\n field.setAttribute(\"spellcheck\", !!spellcheck);\n }\n\n function hiddenTextarea() {\n var te = elt(\"textarea\", null, null, \"position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; min-height: 1em; outline: none\");\n var div = elt(\"div\", [te], null, \"overflow: hidden; position: relative; width: 3px; height: 0px;\");\n // The textarea is kept positioned near the cursor to prevent the\n // fact that it'll be scrolled into view on input from scrolling\n // our fake cursor out of view. On webkit, when wrap=off, paste is\n // very slow. So make the area wide instead.\n if (webkit) { te.style.width = \"1000px\"; }\n else { te.setAttribute(\"wrap\", \"off\"); }\n // If border: 0; -- iOS fails to open keyboard (issue #1287)\n if (ios) { te.style.border = \"1px solid black\"; }\n return div\n }\n\n // The publicly visible API. Note that methodOp(f) means\n // 'wrap f in an operation, performed on its `this` parameter'.\n\n // This is not the complete set of editor methods. Most of the\n // methods defined on the Doc type are also injected into\n // CodeMirror.prototype, for backwards compatibility and\n // convenience.\n\n function addEditorMethods(CodeMirror) {\n var optionHandlers = CodeMirror.optionHandlers;\n\n var helpers = CodeMirror.helpers = {};\n\n CodeMirror.prototype = {\n constructor: CodeMirror,\n focus: function(){win(this).focus(); this.display.input.focus();},\n\n setOption: function(option, value) {\n var options = this.options, old = options[option];\n if (options[option] == value && option != \"mode\") { return }\n options[option] = value;\n if (optionHandlers.hasOwnProperty(option))\n { operation(this, optionHandlers[option])(this, value, old); }\n signal(this, \"optionChange\", this, option);\n },\n\n getOption: function(option) {return this.options[option]},\n getDoc: function() {return this.doc},\n\n addKeyMap: function(map, bottom) {\n this.state.keyMaps[bottom ? \"push\" : \"unshift\"](getKeyMap(map));\n },\n removeKeyMap: function(map) {\n var maps = this.state.keyMaps;\n for (var i = 0; i < maps.length; ++i)\n { if (maps[i] == map || maps[i].name == map) {\n maps.splice(i, 1);\n return true\n } }\n },\n\n addOverlay: methodOp(function(spec, options) {\n var mode = spec.token ? spec : CodeMirror.getMode(this.options, spec);\n if (mode.startState) { throw new Error(\"Overlays may not be stateful.\") }\n insertSorted(this.state.overlays,\n {mode: mode, modeSpec: spec, opaque: options && options.opaque,\n priority: (options && options.priority) || 0},\n function (overlay) { return overlay.priority; });\n this.state.modeGen++;\n regChange(this);\n }),\n removeOverlay: methodOp(function(spec) {\n var overlays = this.state.overlays;\n for (var i = 0; i < overlays.length; ++i) {\n var cur = overlays[i].modeSpec;\n if (cur == spec || typeof spec == \"string\" && cur.name == spec) {\n overlays.splice(i, 1);\n this.state.modeGen++;\n regChange(this);\n return\n }\n }\n }),\n\n indentLine: methodOp(function(n, dir, aggressive) {\n if (typeof dir != \"string\" && typeof dir != \"number\") {\n if (dir == null) { dir = this.options.smartIndent ? \"smart\" : \"prev\"; }\n else { dir = dir ? \"add\" : \"subtract\"; }\n }\n if (isLine(this.doc, n)) { indentLine(this, n, dir, aggressive); }\n }),\n indentSelection: methodOp(function(how) {\n var ranges = this.doc.sel.ranges, end = -1;\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n if (!range.empty()) {\n var from = range.from(), to = range.to();\n var start = Math.max(end, from.line);\n end = Math.min(this.lastLine(), to.line - (to.ch ? 0 : 1)) + 1;\n for (var j = start; j < end; ++j)\n { indentLine(this, j, how); }\n var newRanges = this.doc.sel.ranges;\n if (from.ch == 0 && ranges.length == newRanges.length && newRanges[i].from().ch > 0)\n { replaceOneSelection(this.doc, i, new Range(from, newRanges[i].to()), sel_dontScroll); }\n } else if (range.head.line > end) {\n indentLine(this, range.head.line, how, true);\n end = range.head.line;\n if (i == this.doc.sel.primIndex) { ensureCursorVisible(this); }\n }\n }\n }),\n\n // Fetch the parser token for a given character. Useful for hacks\n // that want to inspect the mode state (say, for completion).\n getTokenAt: function(pos, precise) {\n return takeToken(this, pos, precise)\n },\n\n getLineTokens: function(line, precise) {\n return takeToken(this, Pos(line), precise, true)\n },\n\n getTokenTypeAt: function(pos) {\n pos = clipPos(this.doc, pos);\n var styles = getLineStyles(this, getLine(this.doc, pos.line));\n var before = 0, after = (styles.length - 1) / 2, ch = pos.ch;\n var type;\n if (ch == 0) { type = styles[2]; }\n else { for (;;) {\n var mid = (before + after) >> 1;\n if ((mid ? styles[mid * 2 - 1] : 0) >= ch) { after = mid; }\n else if (styles[mid * 2 + 1] < ch) { before = mid + 1; }\n else { type = styles[mid * 2 + 2]; break }\n } }\n var cut = type ? type.indexOf(\"overlay \") : -1;\n return cut < 0 ? type : cut == 0 ? null : type.slice(0, cut - 1)\n },\n\n getModeAt: function(pos) {\n var mode = this.doc.mode;\n if (!mode.innerMode) { return mode }\n return CodeMirror.innerMode(mode, this.getTokenAt(pos).state).mode\n },\n\n getHelper: function(pos, type) {\n return this.getHelpers(pos, type)[0]\n },\n\n getHelpers: function(pos, type) {\n var found = [];\n if (!helpers.hasOwnProperty(type)) { return found }\n var help = helpers[type], mode = this.getModeAt(pos);\n if (typeof mode[type] == \"string\") {\n if (help[mode[type]]) { found.push(help[mode[type]]); }\n } else if (mode[type]) {\n for (var i = 0; i < mode[type].length; i++) {\n var val = help[mode[type][i]];\n if (val) { found.push(val); }\n }\n } else if (mode.helperType && help[mode.helperType]) {\n found.push(help[mode.helperType]);\n } else if (help[mode.name]) {\n found.push(help[mode.name]);\n }\n for (var i$1 = 0; i$1 < help._global.length; i$1++) {\n var cur = help._global[i$1];\n if (cur.pred(mode, this) && indexOf(found, cur.val) == -1)\n { found.push(cur.val); }\n }\n return found\n },\n\n getStateAfter: function(line, precise) {\n var doc = this.doc;\n line = clipLine(doc, line == null ? doc.first + doc.size - 1: line);\n return getContextBefore(this, line + 1, precise).state\n },\n\n cursorCoords: function(start, mode) {\n var pos, range = this.doc.sel.primary();\n if (start == null) { pos = range.head; }\n else if (typeof start == \"object\") { pos = clipPos(this.doc, start); }\n else { pos = start ? range.from() : range.to(); }\n return cursorCoords(this, pos, mode || \"page\")\n },\n\n charCoords: function(pos, mode) {\n return charCoords(this, clipPos(this.doc, pos), mode || \"page\")\n },\n\n coordsChar: function(coords, mode) {\n coords = fromCoordSystem(this, coords, mode || \"page\");\n return coordsChar(this, coords.left, coords.top)\n },\n\n lineAtHeight: function(height, mode) {\n height = fromCoordSystem(this, {top: height, left: 0}, mode || \"page\").top;\n return lineAtHeight(this.doc, height + this.display.viewOffset)\n },\n heightAtLine: function(line, mode, includeWidgets) {\n var end = false, lineObj;\n if (typeof line == \"number\") {\n var last = this.doc.first + this.doc.size - 1;\n if (line < this.doc.first) { line = this.doc.first; }\n else if (line > last) { line = last; end = true; }\n lineObj = getLine(this.doc, line);\n } else {\n lineObj = line;\n }\n return intoCoordSystem(this, lineObj, {top: 0, left: 0}, mode || \"page\", includeWidgets || end).top +\n (end ? this.doc.height - heightAtLine(lineObj) : 0)\n },\n\n defaultTextHeight: function() { return textHeight(this.display) },\n defaultCharWidth: function() { return charWidth(this.display) },\n\n getViewport: function() { return {from: this.display.viewFrom, to: this.display.viewTo}},\n\n addWidget: function(pos, node, scroll, vert, horiz) {\n var display = this.display;\n pos = cursorCoords(this, clipPos(this.doc, pos));\n var top = pos.bottom, left = pos.left;\n node.style.position = \"absolute\";\n node.setAttribute(\"cm-ignore-events\", \"true\");\n this.display.input.setUneditable(node);\n display.sizer.appendChild(node);\n if (vert == \"over\") {\n top = pos.top;\n } else if (vert == \"above\" || vert == \"near\") {\n var vspace = Math.max(display.wrapper.clientHeight, this.doc.height),\n hspace = Math.max(display.sizer.clientWidth, display.lineSpace.clientWidth);\n // Default to positioning above (if specified and possible); otherwise default to positioning below\n if ((vert == 'above' || pos.bottom + node.offsetHeight > vspace) && pos.top > node.offsetHeight)\n { top = pos.top - node.offsetHeight; }\n else if (pos.bottom + node.offsetHeight <= vspace)\n { top = pos.bottom; }\n if (left + node.offsetWidth > hspace)\n { left = hspace - node.offsetWidth; }\n }\n node.style.top = top + \"px\";\n node.style.left = node.style.right = \"\";\n if (horiz == \"right\") {\n left = display.sizer.clientWidth - node.offsetWidth;\n node.style.right = \"0px\";\n } else {\n if (horiz == \"left\") { left = 0; }\n else if (horiz == \"middle\") { left = (display.sizer.clientWidth - node.offsetWidth) / 2; }\n node.style.left = left + \"px\";\n }\n if (scroll)\n { scrollIntoView(this, {left: left, top: top, right: left + node.offsetWidth, bottom: top + node.offsetHeight}); }\n },\n\n triggerOnKeyDown: methodOp(onKeyDown),\n triggerOnKeyPress: methodOp(onKeyPress),\n triggerOnKeyUp: onKeyUp,\n triggerOnMouseDown: methodOp(onMouseDown),\n\n execCommand: function(cmd) {\n if (commands.hasOwnProperty(cmd))\n { return commands[cmd].call(null, this) }\n },\n\n triggerElectric: methodOp(function(text) { triggerElectric(this, text); }),\n\n findPosH: function(from, amount, unit, visually) {\n var dir = 1;\n if (amount < 0) { dir = -1; amount = -amount; }\n var cur = clipPos(this.doc, from);\n for (var i = 0; i < amount; ++i) {\n cur = findPosH(this.doc, cur, dir, unit, visually);\n if (cur.hitSide) { break }\n }\n return cur\n },\n\n moveH: methodOp(function(dir, unit) {\n var this$1 = this;\n\n this.extendSelectionsBy(function (range) {\n if (this$1.display.shift || this$1.doc.extend || range.empty())\n { return findPosH(this$1.doc, range.head, dir, unit, this$1.options.rtlMoveVisually) }\n else\n { return dir < 0 ? range.from() : range.to() }\n }, sel_move);\n }),\n\n deleteH: methodOp(function(dir, unit) {\n var sel = this.doc.sel, doc = this.doc;\n if (sel.somethingSelected())\n { doc.replaceSelection(\"\", null, \"+delete\"); }\n else\n { deleteNearSelection(this, function (range) {\n var other = findPosH(doc, range.head, dir, unit, false);\n return dir < 0 ? {from: other, to: range.head} : {from: range.head, to: other}\n }); }\n }),\n\n findPosV: function(from, amount, unit, goalColumn) {\n var dir = 1, x = goalColumn;\n if (amount < 0) { dir = -1; amount = -amount; }\n var cur = clipPos(this.doc, from);\n for (var i = 0; i < amount; ++i) {\n var coords = cursorCoords(this, cur, \"div\");\n if (x == null) { x = coords.left; }\n else { coords.left = x; }\n cur = findPosV(this, coords, dir, unit);\n if (cur.hitSide) { break }\n }\n return cur\n },\n\n moveV: methodOp(function(dir, unit) {\n var this$1 = this;\n\n var doc = this.doc, goals = [];\n var collapse = !this.display.shift && !doc.extend && doc.sel.somethingSelected();\n doc.extendSelectionsBy(function (range) {\n if (collapse)\n { return dir < 0 ? range.from() : range.to() }\n var headPos = cursorCoords(this$1, range.head, \"div\");\n if (range.goalColumn != null) { headPos.left = range.goalColumn; }\n goals.push(headPos.left);\n var pos = findPosV(this$1, headPos, dir, unit);\n if (unit == \"page\" && range == doc.sel.primary())\n { addToScrollTop(this$1, charCoords(this$1, pos, \"div\").top - headPos.top); }\n return pos\n }, sel_move);\n if (goals.length) { for (var i = 0; i < doc.sel.ranges.length; i++)\n { doc.sel.ranges[i].goalColumn = goals[i]; } }\n }),\n\n // Find the word at the given position (as returned by coordsChar).\n findWordAt: function(pos) {\n var doc = this.doc, line = getLine(doc, pos.line).text;\n var start = pos.ch, end = pos.ch;\n if (line) {\n var helper = this.getHelper(pos, \"wordChars\");\n if ((pos.sticky == \"before\" || end == line.length) && start) { --start; } else { ++end; }\n var startChar = line.charAt(start);\n var check = isWordChar(startChar, helper)\n ? function (ch) { return isWordChar(ch, helper); }\n : /\\s/.test(startChar) ? function (ch) { return /\\s/.test(ch); }\n : function (ch) { return (!/\\s/.test(ch) && !isWordChar(ch)); };\n while (start > 0 && check(line.charAt(start - 1))) { --start; }\n while (end < line.length && check(line.charAt(end))) { ++end; }\n }\n return new Range(Pos(pos.line, start), Pos(pos.line, end))\n },\n\n toggleOverwrite: function(value) {\n if (value != null && value == this.state.overwrite) { return }\n if (this.state.overwrite = !this.state.overwrite)\n { addClass(this.display.cursorDiv, \"CodeMirror-overwrite\"); }\n else\n { rmClass(this.display.cursorDiv, \"CodeMirror-overwrite\"); }\n\n signal(this, \"overwriteToggle\", this, this.state.overwrite);\n },\n hasFocus: function() { return this.display.input.getField() == activeElt(root(this)) },\n isReadOnly: function() { return !!(this.options.readOnly || this.doc.cantEdit) },\n\n scrollTo: methodOp(function (x, y) { scrollToCoords(this, x, y); }),\n getScrollInfo: function() {\n var scroller = this.display.scroller;\n return {left: scroller.scrollLeft, top: scroller.scrollTop,\n height: scroller.scrollHeight - scrollGap(this) - this.display.barHeight,\n width: scroller.scrollWidth - scrollGap(this) - this.display.barWidth,\n clientHeight: displayHeight(this), clientWidth: displayWidth(this)}\n },\n\n scrollIntoView: methodOp(function(range, margin) {\n if (range == null) {\n range = {from: this.doc.sel.primary().head, to: null};\n if (margin == null) { margin = this.options.cursorScrollMargin; }\n } else if (typeof range == \"number\") {\n range = {from: Pos(range, 0), to: null};\n } else if (range.from == null) {\n range = {from: range, to: null};\n }\n if (!range.to) { range.to = range.from; }\n range.margin = margin || 0;\n\n if (range.from.line != null) {\n scrollToRange(this, range);\n } else {\n scrollToCoordsRange(this, range.from, range.to, range.margin);\n }\n }),\n\n setSize: methodOp(function(width, height) {\n var this$1 = this;\n\n var interpret = function (val) { return typeof val == \"number\" || /^\\d+$/.test(String(val)) ? val + \"px\" : val; };\n if (width != null) { this.display.wrapper.style.width = interpret(width); }\n if (height != null) { this.display.wrapper.style.height = interpret(height); }\n if (this.options.lineWrapping) { clearLineMeasurementCache(this); }\n var lineNo = this.display.viewFrom;\n this.doc.iter(lineNo, this.display.viewTo, function (line) {\n if (line.widgets) { for (var i = 0; i < line.widgets.length; i++)\n { if (line.widgets[i].noHScroll) { regLineChange(this$1, lineNo, \"widget\"); break } } }\n ++lineNo;\n });\n this.curOp.forceUpdate = true;\n signal(this, \"refresh\", this);\n }),\n\n operation: function(f){return runInOp(this, f)},\n startOperation: function(){return startOperation(this)},\n endOperation: function(){return endOperation(this)},\n\n refresh: methodOp(function() {\n var oldHeight = this.display.cachedTextHeight;\n regChange(this);\n this.curOp.forceUpdate = true;\n clearCaches(this);\n scrollToCoords(this, this.doc.scrollLeft, this.doc.scrollTop);\n updateGutterSpace(this.display);\n if (oldHeight == null || Math.abs(oldHeight - textHeight(this.display)) > .5 || this.options.lineWrapping)\n { estimateLineHeights(this); }\n signal(this, \"refresh\", this);\n }),\n\n swapDoc: methodOp(function(doc) {\n var old = this.doc;\n old.cm = null;\n // Cancel the current text selection if any (#5821)\n if (this.state.selectingText) { this.state.selectingText(); }\n attachDoc(this, doc);\n clearCaches(this);\n this.display.input.reset();\n scrollToCoords(this, doc.scrollLeft, doc.scrollTop);\n this.curOp.forceScroll = true;\n signalLater(this, \"swapDoc\", this, old);\n return old\n }),\n\n phrase: function(phraseText) {\n var phrases = this.options.phrases;\n return phrases && Object.prototype.hasOwnProperty.call(phrases, phraseText) ? phrases[phraseText] : phraseText\n },\n\n getInputField: function(){return this.display.input.getField()},\n getWrapperElement: function(){return this.display.wrapper},\n getScrollerElement: function(){return this.display.scroller},\n getGutterElement: function(){return this.display.gutters}\n };\n eventMixin(CodeMirror);\n\n CodeMirror.registerHelper = function(type, name, value) {\n if (!helpers.hasOwnProperty(type)) { helpers[type] = CodeMirror[type] = {_global: []}; }\n helpers[type][name] = value;\n };\n CodeMirror.registerGlobalHelper = function(type, name, predicate, value) {\n CodeMirror.registerHelper(type, name, value);\n helpers[type]._global.push({pred: predicate, val: value});\n };\n }\n\n // Used for horizontal relative motion. Dir is -1 or 1 (left or\n // right), unit can be \"codepoint\", \"char\", \"column\" (like char, but\n // doesn't cross line boundaries), \"word\" (across next word), or\n // \"group\" (to the start of next group of word or\n // non-word-non-whitespace chars). The visually param controls\n // whether, in right-to-left text, direction 1 means to move towards\n // the next index in the string, or towards the character to the right\n // of the current position. The resulting position will have a\n // hitSide=true property if it reached the end of the document.\n function findPosH(doc, pos, dir, unit, visually) {\n var oldPos = pos;\n var origDir = dir;\n var lineObj = getLine(doc, pos.line);\n var lineDir = visually && doc.direction == \"rtl\" ? -dir : dir;\n function findNextLine() {\n var l = pos.line + lineDir;\n if (l < doc.first || l >= doc.first + doc.size) { return false }\n pos = new Pos(l, pos.ch, pos.sticky);\n return lineObj = getLine(doc, l)\n }\n function moveOnce(boundToLine) {\n var next;\n if (unit == \"codepoint\") {\n var ch = lineObj.text.charCodeAt(pos.ch + (dir > 0 ? 0 : -1));\n if (isNaN(ch)) {\n next = null;\n } else {\n var astral = dir > 0 ? ch >= 0xD800 && ch < 0xDC00 : ch >= 0xDC00 && ch < 0xDFFF;\n next = new Pos(pos.line, Math.max(0, Math.min(lineObj.text.length, pos.ch + dir * (astral ? 2 : 1))), -dir);\n }\n } else if (visually) {\n next = moveVisually(doc.cm, lineObj, pos, dir);\n } else {\n next = moveLogically(lineObj, pos, dir);\n }\n if (next == null) {\n if (!boundToLine && findNextLine())\n { pos = endOfLine(visually, doc.cm, lineObj, pos.line, lineDir); }\n else\n { return false }\n } else {\n pos = next;\n }\n return true\n }\n\n if (unit == \"char\" || unit == \"codepoint\") {\n moveOnce();\n } else if (unit == \"column\") {\n moveOnce(true);\n } else if (unit == \"word\" || unit == \"group\") {\n var sawType = null, group = unit == \"group\";\n var helper = doc.cm && doc.cm.getHelper(pos, \"wordChars\");\n for (var first = true;; first = false) {\n if (dir < 0 && !moveOnce(!first)) { break }\n var cur = lineObj.text.charAt(pos.ch) || \"\\n\";\n var type = isWordChar(cur, helper) ? \"w\"\n : group && cur == \"\\n\" ? \"n\"\n : !group || /\\s/.test(cur) ? null\n : \"p\";\n if (group && !first && !type) { type = \"s\"; }\n if (sawType && sawType != type) {\n if (dir < 0) {dir = 1; moveOnce(); pos.sticky = \"after\";}\n break\n }\n\n if (type) { sawType = type; }\n if (dir > 0 && !moveOnce(!first)) { break }\n }\n }\n var result = skipAtomic(doc, pos, oldPos, origDir, true);\n if (equalCursorPos(oldPos, result)) { result.hitSide = true; }\n return result\n }\n\n // For relative vertical movement. Dir may be -1 or 1. Unit can be\n // \"page\" or \"line\". The resulting position will have a hitSide=true\n // property if it reached the end of the document.\n function findPosV(cm, pos, dir, unit) {\n var doc = cm.doc, x = pos.left, y;\n if (unit == \"page\") {\n var pageSize = Math.min(cm.display.wrapper.clientHeight, win(cm).innerHeight || doc(cm).documentElement.clientHeight);\n var moveAmount = Math.max(pageSize - .5 * textHeight(cm.display), 3);\n y = (dir > 0 ? pos.bottom : pos.top) + dir * moveAmount;\n\n } else if (unit == \"line\") {\n y = dir > 0 ? pos.bottom + 3 : pos.top - 3;\n }\n var target;\n for (;;) {\n target = coordsChar(cm, x, y);\n if (!target.outside) { break }\n if (dir < 0 ? y <= 0 : y >= doc.height) { target.hitSide = true; break }\n y += dir * 5;\n }\n return target\n }\n\n // CONTENTEDITABLE INPUT STYLE\n\n var ContentEditableInput = function(cm) {\n this.cm = cm;\n this.lastAnchorNode = this.lastAnchorOffset = this.lastFocusNode = this.lastFocusOffset = null;\n this.polling = new Delayed();\n this.composing = null;\n this.gracePeriod = false;\n this.readDOMTimeout = null;\n };\n\n ContentEditableInput.prototype.init = function (display) {\n var this$1 = this;\n\n var input = this, cm = input.cm;\n var div = input.div = display.lineDiv;\n div.contentEditable = true;\n disableBrowserMagic(div, cm.options.spellcheck, cm.options.autocorrect, cm.options.autocapitalize);\n\n function belongsToInput(e) {\n for (var t = e.target; t; t = t.parentNode) {\n if (t == div) { return true }\n if (/\\bCodeMirror-(?:line)?widget\\b/.test(t.className)) { break }\n }\n return false\n }\n\n on(div, \"paste\", function (e) {\n if (!belongsToInput(e) || signalDOMEvent(cm, e) || handlePaste(e, cm)) { return }\n // IE doesn't fire input events, so we schedule a read for the pasted content in this way\n if (ie_version <= 11) { setTimeout(operation(cm, function () { return this$1.updateFromDOM(); }), 20); }\n });\n\n on(div, \"compositionstart\", function (e) {\n this$1.composing = {data: e.data, done: false};\n });\n on(div, \"compositionupdate\", function (e) {\n if (!this$1.composing) { this$1.composing = {data: e.data, done: false}; }\n });\n on(div, \"compositionend\", function (e) {\n if (this$1.composing) {\n if (e.data != this$1.composing.data) { this$1.readFromDOMSoon(); }\n this$1.composing.done = true;\n }\n });\n\n on(div, \"touchstart\", function () { return input.forceCompositionEnd(); });\n\n on(div, \"input\", function () {\n if (!this$1.composing) { this$1.readFromDOMSoon(); }\n });\n\n function onCopyCut(e) {\n if (!belongsToInput(e) || signalDOMEvent(cm, e)) { return }\n if (cm.somethingSelected()) {\n setLastCopied({lineWise: false, text: cm.getSelections()});\n if (e.type == \"cut\") { cm.replaceSelection(\"\", null, \"cut\"); }\n } else if (!cm.options.lineWiseCopyCut) {\n return\n } else {\n var ranges = copyableRanges(cm);\n setLastCopied({lineWise: true, text: ranges.text});\n if (e.type == \"cut\") {\n cm.operation(function () {\n cm.setSelections(ranges.ranges, 0, sel_dontScroll);\n cm.replaceSelection(\"\", null, \"cut\");\n });\n }\n }\n if (e.clipboardData) {\n e.clipboardData.clearData();\n var content = lastCopied.text.join(\"\\n\");\n // iOS exposes the clipboard API, but seems to discard content inserted into it\n e.clipboardData.setData(\"Text\", content);\n if (e.clipboardData.getData(\"Text\") == content) {\n e.preventDefault();\n return\n }\n }\n // Old-fashioned briefly-focus-a-textarea hack\n var kludge = hiddenTextarea(), te = kludge.firstChild;\n disableBrowserMagic(te);\n cm.display.lineSpace.insertBefore(kludge, cm.display.lineSpace.firstChild);\n te.value = lastCopied.text.join(\"\\n\");\n var hadFocus = activeElt(rootNode(div));\n selectInput(te);\n setTimeout(function () {\n cm.display.lineSpace.removeChild(kludge);\n hadFocus.focus();\n if (hadFocus == div) { input.showPrimarySelection(); }\n }, 50);\n }\n on(div, \"copy\", onCopyCut);\n on(div, \"cut\", onCopyCut);\n };\n\n ContentEditableInput.prototype.screenReaderLabelChanged = function (label) {\n // Label for screenreaders, accessibility\n if(label) {\n this.div.setAttribute('aria-label', label);\n } else {\n this.div.removeAttribute('aria-label');\n }\n };\n\n ContentEditableInput.prototype.prepareSelection = function () {\n var result = prepareSelection(this.cm, false);\n result.focus = activeElt(rootNode(this.div)) == this.div;\n return result\n };\n\n ContentEditableInput.prototype.showSelection = function (info, takeFocus) {\n if (!info || !this.cm.display.view.length) { return }\n if (info.focus || takeFocus) { this.showPrimarySelection(); }\n this.showMultipleSelections(info);\n };\n\n ContentEditableInput.prototype.getSelection = function () {\n return this.cm.display.wrapper.ownerDocument.getSelection()\n };\n\n ContentEditableInput.prototype.showPrimarySelection = function () {\n var sel = this.getSelection(), cm = this.cm, prim = cm.doc.sel.primary();\n var from = prim.from(), to = prim.to();\n\n if (cm.display.viewTo == cm.display.viewFrom || from.line >= cm.display.viewTo || to.line < cm.display.viewFrom) {\n sel.removeAllRanges();\n return\n }\n\n var curAnchor = domToPos(cm, sel.anchorNode, sel.anchorOffset);\n var curFocus = domToPos(cm, sel.focusNode, sel.focusOffset);\n if (curAnchor && !curAnchor.bad && curFocus && !curFocus.bad &&\n cmp(minPos(curAnchor, curFocus), from) == 0 &&\n cmp(maxPos(curAnchor, curFocus), to) == 0)\n { return }\n\n var view = cm.display.view;\n var start = (from.line >= cm.display.viewFrom && posToDOM(cm, from)) ||\n {node: view[0].measure.map[2], offset: 0};\n var end = to.line < cm.display.viewTo && posToDOM(cm, to);\n if (!end) {\n var measure = view[view.length - 1].measure;\n var map = measure.maps ? measure.maps[measure.maps.length - 1] : measure.map;\n end = {node: map[map.length - 1], offset: map[map.length - 2] - map[map.length - 3]};\n }\n\n if (!start || !end) {\n sel.removeAllRanges();\n return\n }\n\n var old = sel.rangeCount && sel.getRangeAt(0), rng;\n try { rng = range(start.node, start.offset, end.offset, end.node); }\n catch(e) {} // Our model of the DOM might be outdated, in which case the range we try to set can be impossible\n if (rng) {\n if (!gecko && cm.state.focused) {\n sel.collapse(start.node, start.offset);\n if (!rng.collapsed) {\n sel.removeAllRanges();\n sel.addRange(rng);\n }\n } else {\n sel.removeAllRanges();\n sel.addRange(rng);\n }\n if (old && sel.anchorNode == null) { sel.addRange(old); }\n else if (gecko) { this.startGracePeriod(); }\n }\n this.rememberSelection();\n };\n\n ContentEditableInput.prototype.startGracePeriod = function () {\n var this$1 = this;\n\n clearTimeout(this.gracePeriod);\n this.gracePeriod = setTimeout(function () {\n this$1.gracePeriod = false;\n if (this$1.selectionChanged())\n { this$1.cm.operation(function () { return this$1.cm.curOp.selectionChanged = true; }); }\n }, 20);\n };\n\n ContentEditableInput.prototype.showMultipleSelections = function (info) {\n removeChildrenAndAdd(this.cm.display.cursorDiv, info.cursors);\n removeChildrenAndAdd(this.cm.display.selectionDiv, info.selection);\n };\n\n ContentEditableInput.prototype.rememberSelection = function () {\n var sel = this.getSelection();\n this.lastAnchorNode = sel.anchorNode; this.lastAnchorOffset = sel.anchorOffset;\n this.lastFocusNode = sel.focusNode; this.lastFocusOffset = sel.focusOffset;\n };\n\n ContentEditableInput.prototype.selectionInEditor = function () {\n var sel = this.getSelection();\n if (!sel.rangeCount) { return false }\n var node = sel.getRangeAt(0).commonAncestorContainer;\n return contains(this.div, node)\n };\n\n ContentEditableInput.prototype.focus = function () {\n if (this.cm.options.readOnly != \"nocursor\") {\n if (!this.selectionInEditor() || activeElt(rootNode(this.div)) != this.div)\n { this.showSelection(this.prepareSelection(), true); }\n this.div.focus();\n }\n };\n ContentEditableInput.prototype.blur = function () { this.div.blur(); };\n ContentEditableInput.prototype.getField = function () { return this.div };\n\n ContentEditableInput.prototype.supportsTouch = function () { return true };\n\n ContentEditableInput.prototype.receivedFocus = function () {\n var this$1 = this;\n\n var input = this;\n if (this.selectionInEditor())\n { setTimeout(function () { return this$1.pollSelection(); }, 20); }\n else\n { runInOp(this.cm, function () { return input.cm.curOp.selectionChanged = true; }); }\n\n function poll() {\n if (input.cm.state.focused) {\n input.pollSelection();\n input.polling.set(input.cm.options.pollInterval, poll);\n }\n }\n this.polling.set(this.cm.options.pollInterval, poll);\n };\n\n ContentEditableInput.prototype.selectionChanged = function () {\n var sel = this.getSelection();\n return sel.anchorNode != this.lastAnchorNode || sel.anchorOffset != this.lastAnchorOffset ||\n sel.focusNode != this.lastFocusNode || sel.focusOffset != this.lastFocusOffset\n };\n\n ContentEditableInput.prototype.pollSelection = function () {\n if (this.readDOMTimeout != null || this.gracePeriod || !this.selectionChanged()) { return }\n var sel = this.getSelection(), cm = this.cm;\n // On Android Chrome (version 56, at least), backspacing into an\n // uneditable block element will put the cursor in that element,\n // and then, because it's not editable, hide the virtual keyboard.\n // Because Android doesn't allow us to actually detect backspace\n // presses in a sane way, this code checks for when that happens\n // and simulates a backspace press in this case.\n if (android && chrome && this.cm.display.gutterSpecs.length && isInGutter(sel.anchorNode)) {\n this.cm.triggerOnKeyDown({type: \"keydown\", keyCode: 8, preventDefault: Math.abs});\n this.blur();\n this.focus();\n return\n }\n if (this.composing) { return }\n this.rememberSelection();\n var anchor = domToPos(cm, sel.anchorNode, sel.anchorOffset);\n var head = domToPos(cm, sel.focusNode, sel.focusOffset);\n if (anchor && head) { runInOp(cm, function () {\n setSelection(cm.doc, simpleSelection(anchor, head), sel_dontScroll);\n if (anchor.bad || head.bad) { cm.curOp.selectionChanged = true; }\n }); }\n };\n\n ContentEditableInput.prototype.pollContent = function () {\n if (this.readDOMTimeout != null) {\n clearTimeout(this.readDOMTimeout);\n this.readDOMTimeout = null;\n }\n\n var cm = this.cm, display = cm.display, sel = cm.doc.sel.primary();\n var from = sel.from(), to = sel.to();\n if (from.ch == 0 && from.line > cm.firstLine())\n { from = Pos(from.line - 1, getLine(cm.doc, from.line - 1).length); }\n if (to.ch == getLine(cm.doc, to.line).text.length && to.line < cm.lastLine())\n { to = Pos(to.line + 1, 0); }\n if (from.line < display.viewFrom || to.line > display.viewTo - 1) { return false }\n\n var fromIndex, fromLine, fromNode;\n if (from.line == display.viewFrom || (fromIndex = findViewIndex(cm, from.line)) == 0) {\n fromLine = lineNo(display.view[0].line);\n fromNode = display.view[0].node;\n } else {\n fromLine = lineNo(display.view[fromIndex].line);\n fromNode = display.view[fromIndex - 1].node.nextSibling;\n }\n var toIndex = findViewIndex(cm, to.line);\n var toLine, toNode;\n if (toIndex == display.view.length - 1) {\n toLine = display.viewTo - 1;\n toNode = display.lineDiv.lastChild;\n } else {\n toLine = lineNo(display.view[toIndex + 1].line) - 1;\n toNode = display.view[toIndex + 1].node.previousSibling;\n }\n\n if (!fromNode) { return false }\n var newText = cm.doc.splitLines(domTextBetween(cm, fromNode, toNode, fromLine, toLine));\n var oldText = getBetween(cm.doc, Pos(fromLine, 0), Pos(toLine, getLine(cm.doc, toLine).text.length));\n while (newText.length > 1 && oldText.length > 1) {\n if (lst(newText) == lst(oldText)) { newText.pop(); oldText.pop(); toLine--; }\n else if (newText[0] == oldText[0]) { newText.shift(); oldText.shift(); fromLine++; }\n else { break }\n }\n\n var cutFront = 0, cutEnd = 0;\n var newTop = newText[0], oldTop = oldText[0], maxCutFront = Math.min(newTop.length, oldTop.length);\n while (cutFront < maxCutFront && newTop.charCodeAt(cutFront) == oldTop.charCodeAt(cutFront))\n { ++cutFront; }\n var newBot = lst(newText), oldBot = lst(oldText);\n var maxCutEnd = Math.min(newBot.length - (newText.length == 1 ? cutFront : 0),\n oldBot.length - (oldText.length == 1 ? cutFront : 0));\n while (cutEnd < maxCutEnd &&\n newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1))\n { ++cutEnd; }\n // Try to move start of change to start of selection if ambiguous\n if (newText.length == 1 && oldText.length == 1 && fromLine == from.line) {\n while (cutFront && cutFront > from.ch &&\n newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1)) {\n cutFront--;\n cutEnd++;\n }\n }\n\n newText[newText.length - 1] = newBot.slice(0, newBot.length - cutEnd).replace(/^\\u200b+/, \"\");\n newText[0] = newText[0].slice(cutFront).replace(/\\u200b+$/, \"\");\n\n var chFrom = Pos(fromLine, cutFront);\n var chTo = Pos(toLine, oldText.length ? lst(oldText).length - cutEnd : 0);\n if (newText.length > 1 || newText[0] || cmp(chFrom, chTo)) {\n replaceRange(cm.doc, newText, chFrom, chTo, \"+input\");\n return true\n }\n };\n\n ContentEditableInput.prototype.ensurePolled = function () {\n this.forceCompositionEnd();\n };\n ContentEditableInput.prototype.reset = function () {\n this.forceCompositionEnd();\n };\n ContentEditableInput.prototype.forceCompositionEnd = function () {\n if (!this.composing) { return }\n clearTimeout(this.readDOMTimeout);\n this.composing = null;\n this.updateFromDOM();\n this.div.blur();\n this.div.focus();\n };\n ContentEditableInput.prototype.readFromDOMSoon = function () {\n var this$1 = this;\n\n if (this.readDOMTimeout != null) { return }\n this.readDOMTimeout = setTimeout(function () {\n this$1.readDOMTimeout = null;\n if (this$1.composing) {\n if (this$1.composing.done) { this$1.composing = null; }\n else { return }\n }\n this$1.updateFromDOM();\n }, 80);\n };\n\n ContentEditableInput.prototype.updateFromDOM = function () {\n var this$1 = this;\n\n if (this.cm.isReadOnly() || !this.pollContent())\n { runInOp(this.cm, function () { return regChange(this$1.cm); }); }\n };\n\n ContentEditableInput.prototype.setUneditable = function (node) {\n node.contentEditable = \"false\";\n };\n\n ContentEditableInput.prototype.onKeyPress = function (e) {\n if (e.charCode == 0 || this.composing) { return }\n e.preventDefault();\n if (!this.cm.isReadOnly())\n { operation(this.cm, applyTextInput)(this.cm, String.fromCharCode(e.charCode == null ? e.keyCode : e.charCode), 0); }\n };\n\n ContentEditableInput.prototype.readOnlyChanged = function (val) {\n this.div.contentEditable = String(val != \"nocursor\");\n };\n\n ContentEditableInput.prototype.onContextMenu = function () {};\n ContentEditableInput.prototype.resetPosition = function () {};\n\n ContentEditableInput.prototype.needsContentAttribute = true;\n\n function posToDOM(cm, pos) {\n var view = findViewForLine(cm, pos.line);\n if (!view || view.hidden) { return null }\n var line = getLine(cm.doc, pos.line);\n var info = mapFromLineView(view, line, pos.line);\n\n var order = getOrder(line, cm.doc.direction), side = \"left\";\n if (order) {\n var partPos = getBidiPartAt(order, pos.ch);\n side = partPos % 2 ? \"right\" : \"left\";\n }\n var result = nodeAndOffsetInLineMap(info.map, pos.ch, side);\n result.offset = result.collapse == \"right\" ? result.end : result.start;\n return result\n }\n\n function isInGutter(node) {\n for (var scan = node; scan; scan = scan.parentNode)\n { if (/CodeMirror-gutter-wrapper/.test(scan.className)) { return true } }\n return false\n }\n\n function badPos(pos, bad) { if (bad) { pos.bad = true; } return pos }\n\n function domTextBetween(cm, from, to, fromLine, toLine) {\n var text = \"\", closing = false, lineSep = cm.doc.lineSeparator(), extraLinebreak = false;\n function recognizeMarker(id) { return function (marker) { return marker.id == id; } }\n function close() {\n if (closing) {\n text += lineSep;\n if (extraLinebreak) { text += lineSep; }\n closing = extraLinebreak = false;\n }\n }\n function addText(str) {\n if (str) {\n close();\n text += str;\n }\n }\n function walk(node) {\n if (node.nodeType == 1) {\n var cmText = node.getAttribute(\"cm-text\");\n if (cmText) {\n addText(cmText);\n return\n }\n var markerID = node.getAttribute(\"cm-marker\"), range;\n if (markerID) {\n var found = cm.findMarks(Pos(fromLine, 0), Pos(toLine + 1, 0), recognizeMarker(+markerID));\n if (found.length && (range = found[0].find(0)))\n { addText(getBetween(cm.doc, range.from, range.to).join(lineSep)); }\n return\n }\n if (node.getAttribute(\"contenteditable\") == \"false\") { return }\n var isBlock = /^(pre|div|p|li|table|br)$/i.test(node.nodeName);\n if (!/^br$/i.test(node.nodeName) && node.textContent.length == 0) { return }\n\n if (isBlock) { close(); }\n for (var i = 0; i < node.childNodes.length; i++)\n { walk(node.childNodes[i]); }\n\n if (/^(pre|p)$/i.test(node.nodeName)) { extraLinebreak = true; }\n if (isBlock) { closing = true; }\n } else if (node.nodeType == 3) {\n addText(node.nodeValue.replace(/\\u200b/g, \"\").replace(/\\u00a0/g, \" \"));\n }\n }\n for (;;) {\n walk(from);\n if (from == to) { break }\n from = from.nextSibling;\n extraLinebreak = false;\n }\n return text\n }\n\n function domToPos(cm, node, offset) {\n var lineNode;\n if (node == cm.display.lineDiv) {\n lineNode = cm.display.lineDiv.childNodes[offset];\n if (!lineNode) { return badPos(cm.clipPos(Pos(cm.display.viewTo - 1)), true) }\n node = null; offset = 0;\n } else {\n for (lineNode = node;; lineNode = lineNode.parentNode) {\n if (!lineNode || lineNode == cm.display.lineDiv) { return null }\n if (lineNode.parentNode && lineNode.parentNode == cm.display.lineDiv) { break }\n }\n }\n for (var i = 0; i < cm.display.view.length; i++) {\n var lineView = cm.display.view[i];\n if (lineView.node == lineNode)\n { return locateNodeInLineView(lineView, node, offset) }\n }\n }\n\n function locateNodeInLineView(lineView, node, offset) {\n var wrapper = lineView.text.firstChild, bad = false;\n if (!node || !contains(wrapper, node)) { return badPos(Pos(lineNo(lineView.line), 0), true) }\n if (node == wrapper) {\n bad = true;\n node = wrapper.childNodes[offset];\n offset = 0;\n if (!node) {\n var line = lineView.rest ? lst(lineView.rest) : lineView.line;\n return badPos(Pos(lineNo(line), line.text.length), bad)\n }\n }\n\n var textNode = node.nodeType == 3 ? node : null, topNode = node;\n if (!textNode && node.childNodes.length == 1 && node.firstChild.nodeType == 3) {\n textNode = node.firstChild;\n if (offset) { offset = textNode.nodeValue.length; }\n }\n while (topNode.parentNode != wrapper) { topNode = topNode.parentNode; }\n var measure = lineView.measure, maps = measure.maps;\n\n function find(textNode, topNode, offset) {\n for (var i = -1; i < (maps ? maps.length : 0); i++) {\n var map = i < 0 ? measure.map : maps[i];\n for (var j = 0; j < map.length; j += 3) {\n var curNode = map[j + 2];\n if (curNode == textNode || curNode == topNode) {\n var line = lineNo(i < 0 ? lineView.line : lineView.rest[i]);\n var ch = map[j] + offset;\n if (offset < 0 || curNode != textNode) { ch = map[j + (offset ? 1 : 0)]; }\n return Pos(line, ch)\n }\n }\n }\n }\n var found = find(textNode, topNode, offset);\n if (found) { return badPos(found, bad) }\n\n // FIXME this is all really shaky. might handle the few cases it needs to handle, but likely to cause problems\n for (var after = topNode.nextSibling, dist = textNode ? textNode.nodeValue.length - offset : 0; after; after = after.nextSibling) {\n found = find(after, after.firstChild, 0);\n if (found)\n { return badPos(Pos(found.line, found.ch - dist), bad) }\n else\n { dist += after.textContent.length; }\n }\n for (var before = topNode.previousSibling, dist$1 = offset; before; before = before.previousSibling) {\n found = find(before, before.firstChild, -1);\n if (found)\n { return badPos(Pos(found.line, found.ch + dist$1), bad) }\n else\n { dist$1 += before.textContent.length; }\n }\n }\n\n // TEXTAREA INPUT STYLE\n\n var TextareaInput = function(cm) {\n this.cm = cm;\n // See input.poll and input.reset\n this.prevInput = \"\";\n\n // Flag that indicates whether we expect input to appear real soon\n // now (after some event like 'keypress' or 'input') and are\n // polling intensively.\n this.pollingFast = false;\n // Self-resetting timeout for the poller\n this.polling = new Delayed();\n // Used to work around IE issue with selection being forgotten when focus moves away from textarea\n this.hasSelection = false;\n this.composing = null;\n this.resetting = false;\n };\n\n TextareaInput.prototype.init = function (display) {\n var this$1 = this;\n\n var input = this, cm = this.cm;\n this.createField(display);\n var te = this.textarea;\n\n display.wrapper.insertBefore(this.wrapper, display.wrapper.firstChild);\n\n // Needed to hide big blue blinking cursor on Mobile Safari (doesn't seem to work in iOS 8 anymore)\n if (ios) { te.style.width = \"0px\"; }\n\n on(te, \"input\", function () {\n if (ie && ie_version >= 9 && this$1.hasSelection) { this$1.hasSelection = null; }\n input.poll();\n });\n\n on(te, \"paste\", function (e) {\n if (signalDOMEvent(cm, e) || handlePaste(e, cm)) { return }\n\n cm.state.pasteIncoming = +new Date;\n input.fastPoll();\n });\n\n function prepareCopyCut(e) {\n if (signalDOMEvent(cm, e)) { return }\n if (cm.somethingSelected()) {\n setLastCopied({lineWise: false, text: cm.getSelections()});\n } else if (!cm.options.lineWiseCopyCut) {\n return\n } else {\n var ranges = copyableRanges(cm);\n setLastCopied({lineWise: true, text: ranges.text});\n if (e.type == \"cut\") {\n cm.setSelections(ranges.ranges, null, sel_dontScroll);\n } else {\n input.prevInput = \"\";\n te.value = ranges.text.join(\"\\n\");\n selectInput(te);\n }\n }\n if (e.type == \"cut\") { cm.state.cutIncoming = +new Date; }\n }\n on(te, \"cut\", prepareCopyCut);\n on(te, \"copy\", prepareCopyCut);\n\n on(display.scroller, \"paste\", function (e) {\n if (eventInWidget(display, e) || signalDOMEvent(cm, e)) { return }\n if (!te.dispatchEvent) {\n cm.state.pasteIncoming = +new Date;\n input.focus();\n return\n }\n\n // Pass the `paste` event to the textarea so it's handled by its event listener.\n var event = new Event(\"paste\");\n event.clipboardData = e.clipboardData;\n te.dispatchEvent(event);\n });\n\n // Prevent normal selection in the editor (we handle our own)\n on(display.lineSpace, \"selectstart\", function (e) {\n if (!eventInWidget(display, e)) { e_preventDefault(e); }\n });\n\n on(te, \"compositionstart\", function () {\n var start = cm.getCursor(\"from\");\n if (input.composing) { input.composing.range.clear(); }\n input.composing = {\n start: start,\n range: cm.markText(start, cm.getCursor(\"to\"), {className: \"CodeMirror-composing\"})\n };\n });\n on(te, \"compositionend\", function () {\n if (input.composing) {\n input.poll();\n input.composing.range.clear();\n input.composing = null;\n }\n });\n };\n\n TextareaInput.prototype.createField = function (_display) {\n // Wraps and hides input textarea\n this.wrapper = hiddenTextarea();\n // The semihidden textarea that is focused when the editor is\n // focused, and receives input.\n this.textarea = this.wrapper.firstChild;\n var opts = this.cm.options;\n disableBrowserMagic(this.textarea, opts.spellcheck, opts.autocorrect, opts.autocapitalize);\n };\n\n TextareaInput.prototype.screenReaderLabelChanged = function (label) {\n // Label for screenreaders, accessibility\n if(label) {\n this.textarea.setAttribute('aria-label', label);\n } else {\n this.textarea.removeAttribute('aria-label');\n }\n };\n\n TextareaInput.prototype.prepareSelection = function () {\n // Redraw the selection and/or cursor\n var cm = this.cm, display = cm.display, doc = cm.doc;\n var result = prepareSelection(cm);\n\n // Move the hidden textarea near the cursor to prevent scrolling artifacts\n if (cm.options.moveInputWithCursor) {\n var headPos = cursorCoords(cm, doc.sel.primary().head, \"div\");\n var wrapOff = display.wrapper.getBoundingClientRect(), lineOff = display.lineDiv.getBoundingClientRect();\n result.teTop = Math.max(0, Math.min(display.wrapper.clientHeight - 10,\n headPos.top + lineOff.top - wrapOff.top));\n result.teLeft = Math.max(0, Math.min(display.wrapper.clientWidth - 10,\n headPos.left + lineOff.left - wrapOff.left));\n }\n\n return result\n };\n\n TextareaInput.prototype.showSelection = function (drawn) {\n var cm = this.cm, display = cm.display;\n removeChildrenAndAdd(display.cursorDiv, drawn.cursors);\n removeChildrenAndAdd(display.selectionDiv, drawn.selection);\n if (drawn.teTop != null) {\n this.wrapper.style.top = drawn.teTop + \"px\";\n this.wrapper.style.left = drawn.teLeft + \"px\";\n }\n };\n\n // Reset the input to correspond to the selection (or to be empty,\n // when not typing and nothing is selected)\n TextareaInput.prototype.reset = function (typing) {\n if (this.contextMenuPending || this.composing && typing) { return }\n var cm = this.cm;\n this.resetting = true;\n if (cm.somethingSelected()) {\n this.prevInput = \"\";\n var content = cm.getSelection();\n this.textarea.value = content;\n if (cm.state.focused) { selectInput(this.textarea); }\n if (ie && ie_version >= 9) { this.hasSelection = content; }\n } else if (!typing) {\n this.prevInput = this.textarea.value = \"\";\n if (ie && ie_version >= 9) { this.hasSelection = null; }\n }\n this.resetting = false;\n };\n\n TextareaInput.prototype.getField = function () { return this.textarea };\n\n TextareaInput.prototype.supportsTouch = function () { return false };\n\n TextareaInput.prototype.focus = function () {\n if (this.cm.options.readOnly != \"nocursor\" && (!mobile || activeElt(rootNode(this.textarea)) != this.textarea)) {\n try { this.textarea.focus(); }\n catch (e) {} // IE8 will throw if the textarea is display: none or not in DOM\n }\n };\n\n TextareaInput.prototype.blur = function () { this.textarea.blur(); };\n\n TextareaInput.prototype.resetPosition = function () {\n this.wrapper.style.top = this.wrapper.style.left = 0;\n };\n\n TextareaInput.prototype.receivedFocus = function () { this.slowPoll(); };\n\n // Poll for input changes, using the normal rate of polling. This\n // runs as long as the editor is focused.\n TextareaInput.prototype.slowPoll = function () {\n var this$1 = this;\n\n if (this.pollingFast) { return }\n this.polling.set(this.cm.options.pollInterval, function () {\n this$1.poll();\n if (this$1.cm.state.focused) { this$1.slowPoll(); }\n });\n };\n\n // When an event has just come in that is likely to add or change\n // something in the input textarea, we poll faster, to ensure that\n // the change appears on the screen quickly.\n TextareaInput.prototype.fastPoll = function () {\n var missed = false, input = this;\n input.pollingFast = true;\n function p() {\n var changed = input.poll();\n if (!changed && !missed) {missed = true; input.polling.set(60, p);}\n else {input.pollingFast = false; input.slowPoll();}\n }\n input.polling.set(20, p);\n };\n\n // Read input from the textarea, and update the document to match.\n // When something is selected, it is present in the textarea, and\n // selected (unless it is huge, in which case a placeholder is\n // used). When nothing is selected, the cursor sits after previously\n // seen text (can be empty), which is stored in prevInput (we must\n // not reset the textarea when typing, because that breaks IME).\n TextareaInput.prototype.poll = function () {\n var this$1 = this;\n\n var cm = this.cm, input = this.textarea, prevInput = this.prevInput;\n // Since this is called a *lot*, try to bail out as cheaply as\n // possible when it is clear that nothing happened. hasSelection\n // will be the case when there is a lot of text in the textarea,\n // in which case reading its value would be expensive.\n if (this.contextMenuPending || this.resetting || !cm.state.focused ||\n (hasSelection(input) && !prevInput && !this.composing) ||\n cm.isReadOnly() || cm.options.disableInput || cm.state.keySeq)\n { return false }\n\n var text = input.value;\n // If nothing changed, bail.\n if (text == prevInput && !cm.somethingSelected()) { return false }\n // Work around nonsensical selection resetting in IE9/10, and\n // inexplicable appearance of private area unicode characters on\n // some key combos in Mac (#2689).\n if (ie && ie_version >= 9 && this.hasSelection === text ||\n mac && /[\\uf700-\\uf7ff]/.test(text)) {\n cm.display.input.reset();\n return false\n }\n\n if (cm.doc.sel == cm.display.selForContextMenu) {\n var first = text.charCodeAt(0);\n if (first == 0x200b && !prevInput) { prevInput = \"\\u200b\"; }\n if (first == 0x21da) { this.reset(); return this.cm.execCommand(\"undo\") }\n }\n // Find the part of the input that is actually new\n var same = 0, l = Math.min(prevInput.length, text.length);\n while (same < l && prevInput.charCodeAt(same) == text.charCodeAt(same)) { ++same; }\n\n runInOp(cm, function () {\n applyTextInput(cm, text.slice(same), prevInput.length - same,\n null, this$1.composing ? \"*compose\" : null);\n\n // Don't leave long text in the textarea, since it makes further polling slow\n if (text.length > 1000 || text.indexOf(\"\\n\") > -1) { input.value = this$1.prevInput = \"\"; }\n else { this$1.prevInput = text; }\n\n if (this$1.composing) {\n this$1.composing.range.clear();\n this$1.composing.range = cm.markText(this$1.composing.start, cm.getCursor(\"to\"),\n {className: \"CodeMirror-composing\"});\n }\n });\n return true\n };\n\n TextareaInput.prototype.ensurePolled = function () {\n if (this.pollingFast && this.poll()) { this.pollingFast = false; }\n };\n\n TextareaInput.prototype.onKeyPress = function () {\n if (ie && ie_version >= 9) { this.hasSelection = null; }\n this.fastPoll();\n };\n\n TextareaInput.prototype.onContextMenu = function (e) {\n var input = this, cm = input.cm, display = cm.display, te = input.textarea;\n if (input.contextMenuPending) { input.contextMenuPending(); }\n var pos = posFromMouse(cm, e), scrollPos = display.scroller.scrollTop;\n if (!pos || presto) { return } // Opera is difficult.\n\n // Reset the current text selection only if the click is done outside of the selection\n // and 'resetSelectionOnContextMenu' option is true.\n var reset = cm.options.resetSelectionOnContextMenu;\n if (reset && cm.doc.sel.contains(pos) == -1)\n { operation(cm, setSelection)(cm.doc, simpleSelection(pos), sel_dontScroll); }\n\n var oldCSS = te.style.cssText, oldWrapperCSS = input.wrapper.style.cssText;\n var wrapperBox = input.wrapper.offsetParent.getBoundingClientRect();\n input.wrapper.style.cssText = \"position: static\";\n te.style.cssText = \"position: absolute; width: 30px; height: 30px;\\n top: \" + (e.clientY - wrapperBox.top - 5) + \"px; left: \" + (e.clientX - wrapperBox.left - 5) + \"px;\\n z-index: 1000; background: \" + (ie ? \"rgba(255, 255, 255, .05)\" : \"transparent\") + \";\\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);\";\n var oldScrollY;\n if (webkit) { oldScrollY = te.ownerDocument.defaultView.scrollY; } // Work around Chrome issue (#2712)\n display.input.focus();\n if (webkit) { te.ownerDocument.defaultView.scrollTo(null, oldScrollY); }\n display.input.reset();\n // Adds \"Select all\" to context menu in FF\n if (!cm.somethingSelected()) { te.value = input.prevInput = \" \"; }\n input.contextMenuPending = rehide;\n display.selForContextMenu = cm.doc.sel;\n clearTimeout(display.detectingSelectAll);\n\n // Select-all will be greyed out if there's nothing to select, so\n // this adds a zero-width space so that we can later check whether\n // it got selected.\n function prepareSelectAllHack() {\n if (te.selectionStart != null) {\n var selected = cm.somethingSelected();\n var extval = \"\\u200b\" + (selected ? te.value : \"\");\n te.value = \"\\u21da\"; // Used to catch context-menu undo\n te.value = extval;\n input.prevInput = selected ? \"\" : \"\\u200b\";\n te.selectionStart = 1; te.selectionEnd = extval.length;\n // Re-set this, in case some other handler touched the\n // selection in the meantime.\n display.selForContextMenu = cm.doc.sel;\n }\n }\n function rehide() {\n if (input.contextMenuPending != rehide) { return }\n input.contextMenuPending = false;\n input.wrapper.style.cssText = oldWrapperCSS;\n te.style.cssText = oldCSS;\n if (ie && ie_version < 9) { display.scrollbars.setScrollTop(display.scroller.scrollTop = scrollPos); }\n\n // Try to detect the user choosing select-all\n if (te.selectionStart != null) {\n if (!ie || (ie && ie_version < 9)) { prepareSelectAllHack(); }\n var i = 0, poll = function () {\n if (display.selForContextMenu == cm.doc.sel && te.selectionStart == 0 &&\n te.selectionEnd > 0 && input.prevInput == \"\\u200b\") {\n operation(cm, selectAll)(cm);\n } else if (i++ < 10) {\n display.detectingSelectAll = setTimeout(poll, 500);\n } else {\n display.selForContextMenu = null;\n display.input.reset();\n }\n };\n display.detectingSelectAll = setTimeout(poll, 200);\n }\n }\n\n if (ie && ie_version >= 9) { prepareSelectAllHack(); }\n if (captureRightClick) {\n e_stop(e);\n var mouseup = function () {\n off(window, \"mouseup\", mouseup);\n setTimeout(rehide, 20);\n };\n on(window, \"mouseup\", mouseup);\n } else {\n setTimeout(rehide, 50);\n }\n };\n\n TextareaInput.prototype.readOnlyChanged = function (val) {\n if (!val) { this.reset(); }\n this.textarea.disabled = val == \"nocursor\";\n this.textarea.readOnly = !!val;\n };\n\n TextareaInput.prototype.setUneditable = function () {};\n\n TextareaInput.prototype.needsContentAttribute = false;\n\n function fromTextArea(textarea, options) {\n options = options ? copyObj(options) : {};\n options.value = textarea.value;\n if (!options.tabindex && textarea.tabIndex)\n { options.tabindex = textarea.tabIndex; }\n if (!options.placeholder && textarea.placeholder)\n { options.placeholder = textarea.placeholder; }\n // Set autofocus to true if this textarea is focused, or if it has\n // autofocus and no other element is focused.\n if (options.autofocus == null) {\n var hasFocus = activeElt(rootNode(textarea));\n options.autofocus = hasFocus == textarea ||\n textarea.getAttribute(\"autofocus\") != null && hasFocus == document.body;\n }\n\n function save() {textarea.value = cm.getValue();}\n\n var realSubmit;\n if (textarea.form) {\n on(textarea.form, \"submit\", save);\n // Deplorable hack to make the submit method do the right thing.\n if (!options.leaveSubmitMethodAlone) {\n var form = textarea.form;\n realSubmit = form.submit;\n try {\n var wrappedSubmit = form.submit = function () {\n save();\n form.submit = realSubmit;\n form.submit();\n form.submit = wrappedSubmit;\n };\n } catch(e) {}\n }\n }\n\n options.finishInit = function (cm) {\n cm.save = save;\n cm.getTextArea = function () { return textarea; };\n cm.toTextArea = function () {\n cm.toTextArea = isNaN; // Prevent this from being ran twice\n save();\n textarea.parentNode.removeChild(cm.getWrapperElement());\n textarea.style.display = \"\";\n if (textarea.form) {\n off(textarea.form, \"submit\", save);\n if (!options.leaveSubmitMethodAlone && typeof textarea.form.submit == \"function\")\n { textarea.form.submit = realSubmit; }\n }\n };\n };\n\n textarea.style.display = \"none\";\n var cm = CodeMirror(function (node) { return textarea.parentNode.insertBefore(node, textarea.nextSibling); },\n options);\n return cm\n }\n\n function addLegacyProps(CodeMirror) {\n CodeMirror.off = off;\n CodeMirror.on = on;\n CodeMirror.wheelEventPixels = wheelEventPixels;\n CodeMirror.Doc = Doc;\n CodeMirror.splitLines = splitLinesAuto;\n CodeMirror.countColumn = countColumn;\n CodeMirror.findColumn = findColumn;\n CodeMirror.isWordChar = isWordCharBasic;\n CodeMirror.Pass = Pass;\n CodeMirror.signal = signal;\n CodeMirror.Line = Line;\n CodeMirror.changeEnd = changeEnd;\n CodeMirror.scrollbarModel = scrollbarModel;\n CodeMirror.Pos = Pos;\n CodeMirror.cmpPos = cmp;\n CodeMirror.modes = modes;\n CodeMirror.mimeModes = mimeModes;\n CodeMirror.resolveMode = resolveMode;\n CodeMirror.getMode = getMode;\n CodeMirror.modeExtensions = modeExtensions;\n CodeMirror.extendMode = extendMode;\n CodeMirror.copyState = copyState;\n CodeMirror.startState = startState;\n CodeMirror.innerMode = innerMode;\n CodeMirror.commands = commands;\n CodeMirror.keyMap = keyMap;\n CodeMirror.keyName = keyName;\n CodeMirror.isModifierKey = isModifierKey;\n CodeMirror.lookupKey = lookupKey;\n CodeMirror.normalizeKeyMap = normalizeKeyMap;\n CodeMirror.StringStream = StringStream;\n CodeMirror.SharedTextMarker = SharedTextMarker;\n CodeMirror.TextMarker = TextMarker;\n CodeMirror.LineWidget = LineWidget;\n CodeMirror.e_preventDefault = e_preventDefault;\n CodeMirror.e_stopPropagation = e_stopPropagation;\n CodeMirror.e_stop = e_stop;\n CodeMirror.addClass = addClass;\n CodeMirror.contains = contains;\n CodeMirror.rmClass = rmClass;\n CodeMirror.keyNames = keyNames;\n }\n\n // EDITOR CONSTRUCTOR\n\n defineOptions(CodeMirror);\n\n addEditorMethods(CodeMirror);\n\n // Set up methods on CodeMirror's prototype to redirect to the editor's document.\n var dontDelegate = \"iter insert remove copy getEditor constructor\".split(\" \");\n for (var prop in Doc.prototype) { if (Doc.prototype.hasOwnProperty(prop) && indexOf(dontDelegate, prop) < 0)\n { CodeMirror.prototype[prop] = (function(method) {\n return function() {return method.apply(this.doc, arguments)}\n })(Doc.prototype[prop]); } }\n\n eventMixin(Doc);\n CodeMirror.inputStyles = {\"textarea\": TextareaInput, \"contenteditable\": ContentEditableInput};\n\n // Extra arguments are stored as the mode's dependencies, which is\n // used by (legacy) mechanisms like loadmode.js to automatically\n // load a mode. (Preferred mechanism is the require/define calls.)\n CodeMirror.defineMode = function(name/*, mode, …*/) {\n if (!CodeMirror.defaults.mode && name != \"null\") { CodeMirror.defaults.mode = name; }\n defineMode.apply(this, arguments);\n };\n\n CodeMirror.defineMIME = defineMIME;\n\n // Minimal default mode.\n CodeMirror.defineMode(\"null\", function () { return ({token: function (stream) { return stream.skipToEnd(); }}); });\n CodeMirror.defineMIME(\"text/plain\", \"null\");\n\n // EXTENSIONS\n\n CodeMirror.defineExtension = function (name, func) {\n CodeMirror.prototype[name] = func;\n };\n CodeMirror.defineDocExtension = function (name, func) {\n Doc.prototype[name] = func;\n };\n\n CodeMirror.fromTextArea = fromTextArea;\n\n addLegacyProps(CodeMirror);\n\n CodeMirror.version = \"5.65.16\";\n\n return CodeMirror;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/codemirror/lib/codemirror.js\n// module id = 12\n// module chunks = 0","import { hasOwnProperty } from './_setup.js';\n\n// Internal function to check whether `key` is an own property name of `obj`.\nexport default function has(obj, key) {\n return obj != null && hasOwnProperty.call(obj, key);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/_has.js\n// module id = 13\n// module chunks = 0","module.exports = (__webpack_require__(0))(0);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./node_modules/pug-runtime/index.js from dll-reference girder_lib\n// module id = 14\n// module chunks = 0","// ESM Exports\n// ===========\n// This module is the package entry point for ES module users. In other words,\n// it is the module they are interfacing with when they import from the whole\n// package instead of from a submodule, like this:\n//\n// ```js\n// import { map } from 'underscore';\n// ```\n//\n// The difference with `./index-default`, which is the package entry point for\n// CommonJS, AMD and UMD users, is purely technical. In ES modules, named and\n// default exports are considered to be siblings, so when you have a default\n// export, its properties are not automatically available as named exports. For\n// this reason, we re-export the named exports in addition to providing the same\n// default export as in `./index-default`.\nexport { default } from './index-default.js';\nexport * from './index.js';\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/index-all.js\n// module id = 15\n// module chunks = 0","// Is a given variable an object?\nexport default function isObject(obj) {\n var type = typeof obj;\n return type === 'function' || (type === 'object' && !!obj);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/isObject.js\n// module id = 16\n// module chunks = 0","import { nativeIsArray } from './_setup.js';\nimport tagTester from './_tagTester.js';\n\n// Is a given value an array?\n// Delegates to ECMA5's native `Array.isArray`.\nexport default nativeIsArray || tagTester('Array');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/isArray.js\n// module id = 17\n// module chunks = 0","import optimizeCb from './_optimizeCb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// The cornerstone for collection functions, an `each`\n// implementation, aka `forEach`.\n// Handles raw objects in addition to array-likes. Treats all\n// sparse array-likes as if they were dense.\nexport default function each(obj, iteratee, context) {\n iteratee = optimizeCb(iteratee, context);\n var i, length;\n if (isArrayLike(obj)) {\n for (i = 0, length = obj.length; i < length; i++) {\n iteratee(obj[i], i, obj);\n }\n } else {\n var _keys = keys(obj);\n for (i = 0, length = _keys.length; i < length; i++) {\n iteratee(obj[_keys[i]], _keys[i], obj);\n }\n }\n return obj;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/each.js\n// module id = 18\n// module chunks = 0","module.exports = (__webpack_require__(0))(177);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./src/utilities/PluginUtils.js from dll-reference girder_lib\n// module id = 19\n// module chunks = 0","import $ from 'jquery';\nimport View from '@girder/core/views/View';\n\nimport {AccessType} from '@girder/core/constants';\nimport events from '@girder/core/events';\nimport {restRequest} from '@girder/core/rest';\nimport BrowserWidget from '@girder/core/views/widgets/BrowserWidget';\nimport PluginConfigBreadcrumbWidget from '@girder/core/views/widgets/PluginConfigBreadcrumbWidget';\n\nimport ConfigViewTemplate from '../templates/largeImageConfig.pug';\nimport '../stylesheets/largeImageConfig.styl';\n\n/**\n * Show the default quota settings for users and collections.\n */\nvar ConfigView = View.extend({\n events: {\n 'submit #g-large-image-form': function (event) {\n event.preventDefault();\n this.$('#g-large-image-error-message').empty();\n this._saveSettings([{\n key: 'large_image.show_thumbnails',\n value: this.$('.g-large-image-thumbnails-show').prop('checked')\n }, {\n key: 'large_image.show_viewer',\n value: this.$('.g-large-image-viewer-show').prop('checked')\n }, {\n key: 'large_image.default_viewer',\n value: this.$('.g-large-image-default-viewer').val()\n }, {\n key: 'large_image.auto_set',\n value: this.$('.g-large-image-auto-set-all').prop('checked') ? 'all' : this.$('.g-large-image-auto-set-on').prop('checked')\n }, {\n key: 'large_image.max_thumbnail_files',\n value: +this.$('.g-large-image-max-thumbnail-files').val()\n }, {\n key: 'large_image.max_small_image_size',\n value: +this.$('.g-large-image-max-small-image-size').val()\n }, {\n key: 'large_image.show_extra_public',\n value: this.$('.g-large-image-show-extra-public').val()\n }, {\n key: 'large_image.show_extra',\n value: this.$('.g-large-image-show-extra').val()\n }, {\n key: 'large_image.show_extra_admin',\n value: this.$('.g-large-image-show-extra-admin').val()\n }, {\n key: 'large_image.show_item_extra_public',\n value: this.$('.g-large-image-show-item-extra-public').val()\n }, {\n key: 'large_image.show_item_extra',\n value: this.$('.g-large-image-show-item-extra').val()\n }, {\n key: 'large_image.show_item_extra_admin',\n value: this.$('.g-large-image-show-item-extra-admin').val()\n }, {\n key: 'large_image.config_folder',\n value: (this.$('#g-large-image-config-folder').val() || '').split(' ')[0]\n }, {\n key: 'large_image.notification_stream_fallback',\n value: this.$('.g-large-image-stream-fallback').prop('checked')\n }, {\n key: 'large_image.icc_correction',\n value: this.$('.g-large-image-icc-correction').prop('checked')\n }]);\n },\n 'click .g-open-browser': '_openBrowser'\n },\n initialize: function () {\n ConfigView.getSettings((settings) => {\n this.settings = settings;\n this.render();\n });\n\n this._browserWidgetView = new BrowserWidget({\n parentView: this,\n titleText: 'Configuration File Location',\n helpText: 'Browse to a location to select it.',\n submitText: 'Select Location',\n validate: function (model) {\n const isValid = $.Deferred();\n if (!model || model.get('_modelType') !== 'folder') {\n isValid.reject('Please select a folder.');\n } else {\n isValid.resolve();\n }\n return isValid.promise();\n }\n });\n this.listenTo(this._browserWidgetView, 'g:saved', function (val) {\n this.$('#g-large-image-config-folder').val(val.id);\n restRequest({\n url: `resource/${val.id}/path`,\n method: 'GET',\n data: {type: val.get('_modelType')}\n }).done((result) => {\n // Only add the resource path if the value wasn't altered\n if (this.$('#g-large-image-config-folder').val() === val.id) {\n this.$('#g-large-image-config-folder').val(`${val.id} (${result})`);\n }\n });\n });\n },\n\n render: function () {\n this.$el.html(ConfigViewTemplate({\n settings: this.settings,\n viewers: ConfigView.viewers\n }));\n if (!this.breadcrumb) {\n this.breadcrumb = new PluginConfigBreadcrumbWidget({\n pluginName: 'Large image',\n el: this.$('.g-config-breadcrumb-container'),\n parentView: this\n }).render();\n }\n\n return this;\n },\n\n _saveSettings: function (settings) {\n /* Now save the settings */\n return restRequest({\n type: 'PUT',\n url: 'system/setting',\n data: {\n list: JSON.stringify(settings)\n },\n error: null\n }).done(() => {\n /* Clear the settings that may have been loaded. */\n ConfigView.clearSettings();\n events.trigger('g:alert', {\n icon: 'ok',\n text: 'Settings saved.',\n type: 'success',\n timeout: 4000\n });\n }).fail((resp) => {\n this.$('#g-large-image-error-message').text(\n resp.responseJSON.message\n );\n });\n },\n\n _openBrowser: function () {\n this._browserWidgetView.setElement($('#g-dialog-container')).render();\n }\n}, {\n /* Class methods and objects */\n\n /* The list of viewers is added as a property to the select widget view so\n * that it is also available to the settings page. */\n viewers: [\n {\n name: 'geojs',\n label: 'GeoJS',\n type: 'geojs'\n }, {\n name: 'openseadragon',\n label: 'OpenSeaDragon',\n type: 'openseadragon'\n }, {\n name: 'openlayers',\n label: 'OpenLayers',\n type: 'openlayers'\n }, {\n name: 'leaflet',\n label: 'Leaflet',\n type: 'leaflet'\n }, {\n name: 'slideatlas',\n label: 'SlideAtlas',\n type: 'slideatlas'\n }\n ],\n\n /**\n * Get settings if we haven't yet done so. Either way, call a callback\n * when we have settings.\n *\n * @param {function} callback a function to call after the settings are\n * fetched. If the settings are already present, this is called\n * without any delay.\n */\n getSettings: function (callback) {\n if (!ConfigView.settings && !ConfigView._settingsRequest) {\n ConfigView._settingsRequest = restRequest({\n type: 'GET',\n url: 'large_image/settings'\n }).done((resp) => {\n resp.extraInfo = {};\n resp.extraItemInfo = {};\n const extraList = [{\n access: null,\n extraInfo: 'large_image.show_extra_public',\n extraItemInfo: 'large_image.show_item_extra_public'\n }, {\n access: AccessType.READ,\n extraInfo: 'large_image.show_extra',\n extraItemInfo: 'large_image.show_item_extra'\n }, {\n access: AccessType.ADMIN,\n extraInfo: 'large_image.show_extra_admin',\n extraItemInfo: 'large_image.show_item_extra_admin'\n }];\n extraList.forEach((entry) => {\n ['extraInfo', 'extraItemInfo'].forEach((key) => {\n try {\n resp[key][entry.access] = JSON.parse(resp[entry[key]]);\n } catch (err) {\n }\n });\n });\n ConfigView.settings = resp;\n if (callback) {\n callback(ConfigView.settings);\n }\n });\n } else if (callback) {\n ConfigView._settingsRequest.done(() => {\n callback(ConfigView.settings);\n });\n }\n },\n\n /**\n * Get the folder config file for the current user.\n *\n * @param {string} folderId the folder to get the config for.\n * @param {boolean} reload if true, refetch the config file even if it was\n * the last one fetched. Since config files can be changed by the\n * user, this should be done based on the UI behavior.\n * @param {function} callback a function to call after the config file is\n * fetched. If the file is already fetched, this is called without\n * any delay.\n * @returns a promise that resolves to the config file values.\n */\n getConfigFile: function (folderId, reload, callback) {\n if (!folderId) {\n const result = {};\n if (callback) {\n callback(result);\n }\n return $.Deferred().resolve({});\n }\n if (ConfigView._lastliconfig === folderId && !reload) {\n if (callback) {\n callback(ConfigView._liconfig || {});\n }\n return $.Deferred().resolve(ConfigView._liconfig);\n }\n if (ConfigView._liconfigSettingsRequest) {\n if (ConfigView._nextliconfig === folderId) {\n if (callback) {\n ConfigView._liconfigSettingsRequest.done((val) => {\n callback(val || {});\n });\n }\n return ConfigView._liconfigSettingsRequest;\n }\n ConfigView._liconfigSettingsRequest.cancel();\n }\n ConfigView._nextliconfig = folderId;\n ConfigView._liconfigSettingsRequest = restRequest({\n url: `folder/${folderId}/yaml_config/.large_image_config.yaml`\n }).done((val) => {\n val = val || {};\n ConfigView._lastliconfig = folderId;\n ConfigView._liconfigSettingsRequest = null;\n ConfigView._liconfig = val;\n if (callback) {\n callback(ConfigView._liconfig);\n }\n return val;\n });\n return ConfigView._liconfigSettingsRequest;\n },\n\n /**\n * Clear the settings so that getSettings will refetch them.\n */\n clearSettings: function () {\n delete ConfigView.settings;\n delete ConfigView._settingsRequest;\n }\n});\n\nexport default ConfigView;\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/@girder/large_image/views/configView.js","import keys from './keys.js';\n\n// Retrieve the values of an object's properties.\nexport default function values(obj) {\n var _keys = keys(obj);\n var length = _keys.length;\n var values = Array(length);\n for (var i = 0; i < length; i++) {\n values[i] = obj[_keys[i]];\n }\n return values;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/values.js\n// module id = 21\n// module chunks = 0","import getLength from './_getLength.js';\nimport isArrayLike from './_isArrayLike.js';\nimport isArray from './isArray.js';\nimport isArguments from './isArguments.js';\n\n// Internal implementation of a recursive `flatten` function.\nexport default function flatten(input, depth, strict, output) {\n output = output || [];\n if (!depth && depth !== 0) {\n depth = Infinity;\n } else if (depth <= 0) {\n return output.concat(input);\n }\n var idx = output.length;\n for (var i = 0, length = getLength(input); i < length; i++) {\n var value = input[i];\n if (isArrayLike(value) && (isArray(value) || isArguments(value))) {\n // Flatten current level of array or arguments object.\n if (depth > 1) {\n flatten(value, depth - 1, strict, output);\n idx = output.length;\n } else {\n var j = 0, len = value.length;\n while (j < len) output[idx++] = value[j++];\n }\n } else if (!strict) {\n output[idx++] = value;\n }\n }\n return output;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/_flatten.js\n// module id = 22\n// module chunks = 0","import cb from './_cb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Return the results of applying the iteratee to each element.\nexport default function map(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length,\n results = Array(length);\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n results[index] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/map.js\n// module id = 23\n// module chunks = 0","module.exports = (__webpack_require__(0))(1);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./src/views/View.js from dll-reference girder_lib\n// module id = 24\n// module chunks = 0","module.exports = (__webpack_require__(0))(8);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./src/constants.js from dll-reference girder_lib\n// module id = 25\n// module chunks = 0","module.exports = (__webpack_require__(0))(52);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./node_modules/webpack/buildin/global.js from dll-reference girder_lib\n// module id = 26\n// module chunks = 0","import { supportsDataView } from './_setup.js';\nimport hasObjectTag from './_hasObjectTag.js';\n\n// In IE 10 - Edge 13, `DataView` has string tag `'[object Object]'`.\n// In IE 11, the most common among them, this problem also applies to\n// `Map`, `WeakMap` and `Set`.\nexport var hasStringTagBug = (\n supportsDataView && hasObjectTag(new DataView(new ArrayBuffer(8)))\n ),\n isIE11 = (typeof Map !== 'undefined' && hasObjectTag(new Map));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/_stringTagBug.js\n// module id = 27\n// module chunks = 0","import isObject from './isObject.js';\nimport { hasEnumBug } from './_setup.js';\nimport collectNonEnumProps from './_collectNonEnumProps.js';\n\n// Retrieve all the enumerable property names of an object.\nexport default function allKeys(obj) {\n if (!isObject(obj)) return [];\n var keys = [];\n for (var key in obj) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/allKeys.js\n// module id = 28\n// module chunks = 0","import _ from './underscore.js';\nimport './toPath.js';\n\n// Internal wrapper for `_.toPath` to enable minification.\n// Similar to `cb` for `_.iteratee`.\nexport default function toPath(path) {\n return _.toPath(path);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/_toPath.js\n// module id = 29\n// module chunks = 0","// Internal function that returns an efficient (for current engines) version\n// of the passed-in callback, to be repeatedly applied in other Underscore\n// functions.\nexport default function optimizeCb(func, context, argCount) {\n if (context === void 0) return func;\n switch (argCount == null ? 3 : argCount) {\n case 1: return function(value) {\n return func.call(context, value);\n };\n // The 2-argument case is omitted because we’re not using it.\n case 3: return function(value, index, collection) {\n return func.call(context, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(context, accumulator, value, index, collection);\n };\n }\n return function() {\n return func.apply(context, arguments);\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/_optimizeCb.js\n// module id = 30\n// module chunks = 0","import cb from './_cb.js';\nimport each from './each.js';\n\n// Return all the elements that pass a truth test.\nexport default function filter(obj, predicate, context) {\n var results = [];\n predicate = cb(predicate, context);\n each(obj, function(value, index, list) {\n if (predicate(value, index, list)) results.push(value);\n });\n return results;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/filter.js\n// module id = 31\n// module chunks = 0","import isArrayLike from './_isArrayLike.js';\nimport values from './values.js';\nimport indexOf from './indexOf.js';\n\n// Determine if the array or object contains a given item (using `===`).\nexport default function contains(obj, item, fromIndex, guard) {\n if (!isArrayLike(obj)) obj = values(obj);\n if (typeof fromIndex != 'number' || guard) fromIndex = 0;\n return indexOf(obj, item, fromIndex) >= 0;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/contains.js\n// module id = 32\n// module chunks = 0","module.exports = (__webpack_require__(0))(5);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./src/events.js from dll-reference girder_lib\n// module id = 33\n// module chunks = 0","import $ from 'jquery';\n\nimport {getApiRoot, restRequest} from '@girder/core/rest';\nimport View from '@girder/core/views/View';\n\nvar ImageViewerWidget = View.extend({\n initialize: function (settings) {\n this.itemId = settings.itemId;\n const item = (settings.model || {}).attributes || {};\n this.updated = item.updated || item.created;\n if (this.updated) {\n this.updated = this.updated.replace(/:/g, '-').replace(/\\+/g, '_');\n }\n // optional query parameters, such as {encoding: 'PNG'}, may be\n // undefined or null\n this.tileQueryDefaults = settings.tileQueryDefaults;\n\n return restRequest({\n type: 'GET',\n url: 'item/' + this.itemId + '/tiles'\n }).done((resp) => {\n this.levels = resp.levels;\n this.tileWidth = resp.tileWidth;\n this.tileHeight = resp.tileHeight;\n this.sizeX = resp.sizeX;\n this.sizeY = resp.sizeY;\n this.metadata = resp;\n });\n },\n\n /**\n * Return a url for a specific tile. This can also be used to generate a\n * template url if the level, x, and y parameters are template strings\n * rather than integers.\n *\n * @param {number|string} level: the tile level or a template string.\n * @param {number|string} x: the tile x position or a template string.\n * @param {number|string} y: the tile y position or a template string.\n * @param {object} [query]: optional query parameters to add to the url.\n */\n _getTileUrl: function (level, x, y, query) {\n if (this.tileQueryDefaults) {\n query = $.extend({}, this.tileQueryDefaults, query || {});\n }\n var url = getApiRoot() + '/item/' + this.itemId + '/tiles/zxy/' +\n level + '/' + x + '/' + y;\n if (this.updated) {\n query = $.extend({_: this.updated}, query);\n }\n if (query) {\n url += '?' + $.param(query);\n }\n return url;\n }\n});\n\nexport default ImageViewerWidget;\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/@girder/large_image/views/imageViewerWidget/base.js","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// /opt/large_image/girder/girder_large_image/web_client/node_modules/vue-loader/lib/runtime/componentNormalizer.js\n// module id = 35\n// module chunks = 0","import extendOwn from './extendOwn.js';\nimport isMatch from './isMatch.js';\n\n// Returns a predicate for checking whether an object has a given set of\n// `key:value` pairs.\nexport default function matcher(attrs) {\n attrs = extendOwn({}, attrs);\n return function(obj) {\n return isMatch(obj, attrs);\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/matcher.js\n// module id = 36\n// module chunks = 0","import restArguments from './restArguments.js';\nimport executeBound from './_executeBound.js';\nimport _ from './underscore.js';\n\n// Partially apply a function by creating a version that has had some of its\n// arguments pre-filled, without changing its dynamic `this` context. `_` acts\n// as a placeholder by default, allowing any combination of arguments to be\n// pre-filled. Set `_.partial.placeholder` for a custom placeholder argument.\nvar partial = restArguments(function(func, boundArgs) {\n var placeholder = partial.placeholder;\n var bound = function() {\n var position = 0, length = boundArgs.length;\n var args = Array(length);\n for (var i = 0; i < length; i++) {\n args[i] = boundArgs[i] === placeholder ? arguments[position++] : boundArgs[i];\n }\n while (position < arguments.length) args.push(arguments[position++]);\n return executeBound(func, bound, this, this, args);\n };\n return bound;\n});\n\npartial.placeholder = _;\nexport default partial;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/partial.js\n// module id = 37\n// module chunks = 0","import cb from './_cb.js';\nimport each from './each.js';\n\n// An internal function used for aggregate \"group by\" operations.\nexport default function group(behavior, partition) {\n return function(obj, iteratee, context) {\n var result = partition ? [[], []] : {};\n iteratee = cb(iteratee, context);\n each(obj, function(value, index) {\n var key = iteratee(value, index, obj);\n behavior(result, value, key);\n });\n return result;\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/_group.js\n// module id = 38\n// module chunks = 0","module.exports = (__webpack_require__(0))(11);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./src/misc.js from dll-reference girder_lib\n// module id = 39\n// module chunks = 0","// Named Exports\n// =============\n\n// Underscore.js 1.13.6\n// https://underscorejs.org\n// (c) 2009-2022 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors\n// Underscore may be freely distributed under the MIT license.\n\n// Baseline setup.\nexport { VERSION } from './_setup.js';\nexport { default as restArguments } from './restArguments.js';\n\n// Object Functions\n// ----------------\n// Our most fundamental functions operate on any JavaScript object.\n// Most functions in Underscore depend on at least one function in this section.\n\n// A group of functions that check the types of core JavaScript values.\n// These are often informally referred to as the \"isType\" functions.\nexport { default as isObject } from './isObject.js';\nexport { default as isNull } from './isNull.js';\nexport { default as isUndefined } from './isUndefined.js';\nexport { default as isBoolean } from './isBoolean.js';\nexport { default as isElement } from './isElement.js';\nexport { default as isString } from './isString.js';\nexport { default as isNumber } from './isNumber.js';\nexport { default as isDate } from './isDate.js';\nexport { default as isRegExp } from './isRegExp.js';\nexport { default as isError } from './isError.js';\nexport { default as isSymbol } from './isSymbol.js';\nexport { default as isArrayBuffer } from './isArrayBuffer.js';\nexport { default as isDataView } from './isDataView.js';\nexport { default as isArray } from './isArray.js';\nexport { default as isFunction } from './isFunction.js';\nexport { default as isArguments } from './isArguments.js';\nexport { default as isFinite } from './isFinite.js';\nexport { default as isNaN } from './isNaN.js';\nexport { default as isTypedArray } from './isTypedArray.js';\nexport { default as isEmpty } from './isEmpty.js';\nexport { default as isMatch } from './isMatch.js';\nexport { default as isEqual } from './isEqual.js';\nexport { default as isMap } from './isMap.js';\nexport { default as isWeakMap } from './isWeakMap.js';\nexport { default as isSet } from './isSet.js';\nexport { default as isWeakSet } from './isWeakSet.js';\n\n// Functions that treat an object as a dictionary of key-value pairs.\nexport { default as keys } from './keys.js';\nexport { default as allKeys } from './allKeys.js';\nexport { default as values } from './values.js';\nexport { default as pairs } from './pairs.js';\nexport { default as invert } from './invert.js';\nexport { default as functions,\n default as methods } from './functions.js';\nexport { default as extend } from './extend.js';\nexport { default as extendOwn,\n default as assign } from './extendOwn.js';\nexport { default as defaults } from './defaults.js';\nexport { default as create } from './create.js';\nexport { default as clone } from './clone.js';\nexport { default as tap } from './tap.js';\nexport { default as get } from './get.js';\nexport { default as has } from './has.js';\nexport { default as mapObject } from './mapObject.js';\n\n// Utility Functions\n// -----------------\n// A bit of a grab bag: Predicate-generating functions for use with filters and\n// loops, string escaping and templating, create random numbers and unique ids,\n// and functions that facilitate Underscore's chaining and iteration conventions.\nexport { default as identity } from './identity.js';\nexport { default as constant } from './constant.js';\nexport { default as noop } from './noop.js';\nexport { default as toPath } from './toPath.js';\nexport { default as property } from './property.js';\nexport { default as propertyOf } from './propertyOf.js';\nexport { default as matcher,\n default as matches } from './matcher.js';\nexport { default as times } from './times.js';\nexport { default as random } from './random.js';\nexport { default as now } from './now.js';\nexport { default as escape } from './escape.js';\nexport { default as unescape } from './unescape.js';\nexport { default as templateSettings } from './templateSettings.js';\nexport { default as template } from './template.js';\nexport { default as result } from './result.js';\nexport { default as uniqueId } from './uniqueId.js';\nexport { default as chain } from './chain.js';\nexport { default as iteratee } from './iteratee.js';\n\n// Function (ahem) Functions\n// -------------------------\n// These functions take a function as an argument and return a new function\n// as the result. Also known as higher-order functions.\nexport { default as partial } from './partial.js';\nexport { default as bind } from './bind.js';\nexport { default as bindAll } from './bindAll.js';\nexport { default as memoize } from './memoize.js';\nexport { default as delay } from './delay.js';\nexport { default as defer } from './defer.js';\nexport { default as throttle } from './throttle.js';\nexport { default as debounce } from './debounce.js';\nexport { default as wrap } from './wrap.js';\nexport { default as negate } from './negate.js';\nexport { default as compose } from './compose.js';\nexport { default as after } from './after.js';\nexport { default as before } from './before.js';\nexport { default as once } from './once.js';\n\n// Finders\n// -------\n// Functions that extract (the position of) a single element from an object\n// or array based on some criterion.\nexport { default as findKey } from './findKey.js';\nexport { default as findIndex } from './findIndex.js';\nexport { default as findLastIndex } from './findLastIndex.js';\nexport { default as sortedIndex } from './sortedIndex.js';\nexport { default as indexOf } from './indexOf.js';\nexport { default as lastIndexOf } from './lastIndexOf.js';\nexport { default as find,\n default as detect } from './find.js';\nexport { default as findWhere } from './findWhere.js';\n\n// Collection Functions\n// --------------------\n// Functions that work on any collection of elements: either an array, or\n// an object of key-value pairs.\nexport { default as each,\n default as forEach } from './each.js';\nexport { default as map,\n default as collect } from './map.js';\nexport { default as reduce,\n default as foldl,\n default as inject } from './reduce.js';\nexport { default as reduceRight,\n default as foldr } from './reduceRight.js';\nexport { default as filter,\n default as select } from './filter.js';\nexport { default as reject } from './reject.js';\nexport { default as every,\n default as all } from './every.js';\nexport { default as some,\n default as any } from './some.js';\nexport { default as contains,\n default as includes,\n default as include } from './contains.js';\nexport { default as invoke } from './invoke.js';\nexport { default as pluck } from './pluck.js';\nexport { default as where } from './where.js';\nexport { default as max } from './max.js';\nexport { default as min } from './min.js';\nexport { default as shuffle } from './shuffle.js';\nexport { default as sample } from './sample.js';\nexport { default as sortBy } from './sortBy.js';\nexport { default as groupBy } from './groupBy.js';\nexport { default as indexBy } from './indexBy.js';\nexport { default as countBy } from './countBy.js';\nexport { default as partition } from './partition.js';\nexport { default as toArray } from './toArray.js';\nexport { default as size } from './size.js';\n\n// `_.pick` and `_.omit` are actually object functions, but we put\n// them here in order to create a more natural reading order in the\n// monolithic build as they depend on `_.contains`.\nexport { default as pick } from './pick.js';\nexport { default as omit } from './omit.js';\n\n// Array Functions\n// ---------------\n// Functions that operate on arrays (and array-likes) only, because they’re\n// expressed in terms of operations on an ordered list of values.\nexport { default as first,\n default as head,\n default as take } from './first.js';\nexport { default as initial } from './initial.js';\nexport { default as last } from './last.js';\nexport { default as rest,\n default as tail,\n default as drop } from './rest.js';\nexport { default as compact } from './compact.js';\nexport { default as flatten } from './flatten.js';\nexport { default as without } from './without.js';\nexport { default as uniq,\n default as unique } from './uniq.js';\nexport { default as union } from './union.js';\nexport { default as intersection } from './intersection.js';\nexport { default as difference } from './difference.js';\nexport { default as unzip,\n default as transpose } from './unzip.js';\nexport { default as zip } from './zip.js';\nexport { default as object } from './object.js';\nexport { default as range } from './range.js';\nexport { default as chunk } from './chunk.js';\n\n// OOP\n// ---\n// These modules support the \"object-oriented\" calling style. See also\n// `underscore.js` and `index-default.js`.\nexport { default as mixin } from './mixin.js';\nexport { default } from './underscore-array-methods.js';\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/index.js\n// module id = 40\n// module chunks = 0","import tagTester from './_tagTester.js';\n\nexport default tagTester('String');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/isString.js\n// module id = 41\n// module chunks = 0","import tagTester from './_tagTester.js';\nimport isFunction from './isFunction.js';\nimport isArrayBuffer from './isArrayBuffer.js';\nimport { hasStringTagBug } from './_stringTagBug.js';\n\nvar isDataView = tagTester('DataView');\n\n// In IE 10 - Edge 13, we need a different heuristic\n// to determine whether an object is a `DataView`.\nfunction ie10IsDataView(obj) {\n return obj != null && isFunction(obj.getInt8) && isArrayBuffer(obj.buffer);\n}\n\nexport default (hasStringTagBug ? ie10IsDataView : isDataView);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/isDataView.js\n// module id = 42\n// module chunks = 0","import tagTester from './_tagTester.js';\nimport has from './_has.js';\n\nvar isArguments = tagTester('Arguments');\n\n// Define a fallback version of the method in browsers (ahem, IE < 9), where\n// there isn't any inspectable \"Arguments\" type.\n(function() {\n if (!isArguments(arguments)) {\n isArguments = function(obj) {\n return has(obj, 'callee');\n };\n }\n}());\n\nexport default isArguments;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/isArguments.js\n// module id = 43\n// module chunks = 0","import shallowProperty from './_shallowProperty.js';\n\n// Internal helper to obtain the `byteLength` property of an object.\nexport default shallowProperty('byteLength');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/_getByteLength.js\n// module id = 44\n// module chunks = 0","import getLength from './_getLength.js';\nimport isFunction from './isFunction.js';\nimport allKeys from './allKeys.js';\n\n// Since the regular `Object.prototype.toString` type tests don't work for\n// some types in IE 11, we use a fingerprinting heuristic instead, based\n// on the methods. It's not great, but it's the best we got.\n// The fingerprint method lists are defined below.\nexport function ie11fingerprint(methods) {\n var length = getLength(methods);\n return function(obj) {\n if (obj == null) return false;\n // `Map`, `WeakMap` and `Set` have no enumerable keys.\n var keys = allKeys(obj);\n if (getLength(keys)) return false;\n for (var i = 0; i < length; i++) {\n if (!isFunction(obj[methods[i]])) return false;\n }\n // If we are testing against `WeakMap`, we need to ensure that\n // `obj` doesn't have a `forEach` method in order to distinguish\n // it from a regular `Map`.\n return methods !== weakMapMethods || !isFunction(obj[forEachName]);\n };\n}\n\n// In the interest of compact minification, we write\n// each string in the fingerprints only once.\nvar forEachName = 'forEach',\n hasName = 'has',\n commonInit = ['clear', 'delete'],\n mapTail = ['get', hasName, 'set'];\n\n// `Map`, `WeakMap` and `Set` each have slightly different\n// combinations of the above sublists.\nexport var mapMethods = commonInit.concat(forEachName, mapTail),\n weakMapMethods = commonInit.concat(mapTail),\n setMethods = ['add'].concat(commonInit, forEachName, hasName);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/_methodFingerprint.js\n// module id = 45\n// module chunks = 0","// An internal function for creating assigner functions.\nexport default function createAssigner(keysFunc, defaults) {\n return function(obj) {\n var length = arguments.length;\n if (defaults) obj = Object(obj);\n if (length < 2 || obj == null) return obj;\n for (var index = 1; index < length; index++) {\n var source = arguments[index],\n keys = keysFunc(source),\n l = keys.length;\n for (var i = 0; i < l; i++) {\n var key = keys[i];\n if (!defaults || obj[key] === void 0) obj[key] = source[key];\n }\n }\n return obj;\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/_createAssigner.js\n// module id = 46\n// module chunks = 0","import createAssigner from './_createAssigner.js';\nimport keys from './keys.js';\n\n// Assigns a given object with all the own properties in the passed-in\n// object(s).\n// (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)\nexport default createAssigner(keys);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/extendOwn.js\n// module id = 47\n// module chunks = 0","// Internal function to obtain a nested property in `obj` along `path`.\nexport default function deepGet(obj, path) {\n var length = path.length;\n for (var i = 0; i < length; i++) {\n if (obj == null) return void 0;\n obj = obj[path[i]];\n }\n return length ? obj : void 0;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/_deepGet.js\n// module id = 48\n// module chunks = 0","// Keep the identity function around for default iteratees.\nexport default function identity(value) {\n return value;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/identity.js\n// module id = 49\n// module chunks = 0","import deepGet from './_deepGet.js';\nimport toPath from './_toPath.js';\n\n// Creates a function that, when passed an object, will traverse that object’s\n// properties down the given `path`, specified as an array of keys or indices.\nexport default function property(path) {\n path = toPath(path);\n return function(obj) {\n return deepGet(obj, path);\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/property.js\n// module id = 50\n// module chunks = 0","// A (possibly faster) way to get the current timestamp as an integer.\nexport default Date.now || function() {\n return new Date().getTime();\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/now.js\n// module id = 51\n// module chunks = 0","// Returns a negated version of the passed-in predicate.\nexport default function negate(predicate) {\n return function() {\n return !predicate.apply(this, arguments);\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/negate.js\n// module id = 52\n// module chunks = 0","import createPredicateIndexFinder from './_createPredicateIndexFinder.js';\n\n// Returns the first index on an array-like that passes a truth test.\nexport default createPredicateIndexFinder(1);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/findIndex.js\n// module id = 53\n// module chunks = 0","import map from './map.js';\nimport property from './property.js';\n\n// Convenience version of a common use case of `_.map`: fetching a property.\nexport default function pluck(obj, key) {\n return map(obj, property(key));\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/pluck.js\n// module id = 54\n// module chunks = 0","module.exports = (__webpack_require__(0))(24);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./node_modules/backbone/backbone.js from dll-reference girder_lib\n// module id = 55\n// module chunks = 0","module.exports = (__webpack_require__(0))(211);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./src/views/body/ItemView.js from dll-reference girder_lib\n// module id = 56\n// module chunks = 0","// Is a given variable undefined?\nexport default function isUndefined(obj) {\n return obj === void 0;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/isUndefined.js\n// module id = 57\n// module chunks = 0","import { toString } from './_setup.js';\n\n// Is a given value a boolean?\nexport default function isBoolean(obj) {\n return obj === true || obj === false || toString.call(obj) === '[object Boolean]';\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/isBoolean.js\n// module id = 58\n// module chunks = 0","import tagTester from './_tagTester.js';\n\nexport default tagTester('Number');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/isNumber.js\n// module id = 59\n// module chunks = 0","import tagTester from './_tagTester.js';\n\nexport default tagTester('Symbol');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/isSymbol.js\n// module id = 60\n// module chunks = 0","import tagTester from './_tagTester.js';\n\nexport default tagTester('ArrayBuffer');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/isArrayBuffer.js\n// module id = 61\n// module chunks = 0","import { _isNaN } from './_setup.js';\nimport isNumber from './isNumber.js';\n\n// Is the given value `NaN`?\nexport default function isNaN(obj) {\n return isNumber(obj) && _isNaN(obj);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/isNaN.js\n// module id = 62\n// module chunks = 0","import { supportsArrayBuffer, nativeIsView, toString } from './_setup.js';\nimport isDataView from './isDataView.js';\nimport constant from './constant.js';\nimport isBufferLike from './_isBufferLike.js';\n\n// Is a given value a typed array?\nvar typedArrayPattern = /\\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\\]/;\nfunction isTypedArray(obj) {\n // `ArrayBuffer.isView` is the most future-proof, so use it when available.\n // Otherwise, fall back on the above regular expression.\n return nativeIsView ? (nativeIsView(obj) && !isDataView(obj)) :\n isBufferLike(obj) && typedArrayPattern.test(toString.call(obj));\n}\n\nexport default supportsArrayBuffer ? isTypedArray : constant(false);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/isTypedArray.js\n// module id = 63\n// module chunks = 0","// Predicate-generating function. Often useful outside of Underscore.\nexport default function constant(value) {\n return function() {\n return value;\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/constant.js\n// module id = 64\n// module chunks = 0","import { MAX_ARRAY_INDEX } from './_setup.js';\n\n// Common internal logic for `isArrayLike` and `isBufferLike`.\nexport default function createSizePropertyCheck(getSizeProperty) {\n return function(collection) {\n var sizeProperty = getSizeProperty(collection);\n return typeof sizeProperty == 'number' && sizeProperty >= 0 && sizeProperty <= MAX_ARRAY_INDEX;\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/_createSizePropertyCheck.js\n// module id = 65\n// module chunks = 0","// Internal helper to generate a function to obtain property `key` from `obj`.\nexport default function shallowProperty(key) {\n return function(obj) {\n return obj == null ? void 0 : obj[key];\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/_shallowProperty.js\n// module id = 66\n// module chunks = 0","import { nonEnumerableProps, ObjProto } from './_setup.js';\nimport isFunction from './isFunction.js';\nimport has from './_has.js';\n\n// Internal helper to create a simple lookup structure.\n// `collectNonEnumProps` used to depend on `_.contains`, but this led to\n// circular imports. `emulatedSet` is a one-off solution that only works for\n// arrays of strings.\nfunction emulatedSet(keys) {\n var hash = {};\n for (var l = keys.length, i = 0; i < l; ++i) hash[keys[i]] = true;\n return {\n contains: function(key) { return hash[key] === true; },\n push: function(key) {\n hash[key] = true;\n return keys.push(key);\n }\n };\n}\n\n// Internal helper. Checks `keys` for the presence of keys in IE < 9 that won't\n// be iterated by `for key in ...` and thus missed. Extends `keys` in place if\n// needed.\nexport default function collectNonEnumProps(obj, keys) {\n keys = emulatedSet(keys);\n var nonEnumIdx = nonEnumerableProps.length;\n var constructor = obj.constructor;\n var proto = (isFunction(constructor) && constructor.prototype) || ObjProto;\n\n // Constructor is a special case.\n var prop = 'constructor';\n if (has(obj, prop) && !keys.contains(prop)) keys.push(prop);\n\n while (nonEnumIdx--) {\n prop = nonEnumerableProps[nonEnumIdx];\n if (prop in obj && obj[prop] !== proto[prop] && !keys.contains(prop)) {\n keys.push(prop);\n }\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/_collectNonEnumProps.js\n// module id = 67\n// module chunks = 0","import keys from './keys.js';\n\n// Returns whether an object has a given set of `key:value` pairs.\nexport default function isMatch(object, attrs) {\n var _keys = keys(attrs), length = _keys.length;\n if (object == null) return !length;\n var obj = Object(object);\n for (var i = 0; i < length; i++) {\n var key = _keys[i];\n if (attrs[key] !== obj[key] || !(key in obj)) return false;\n }\n return true;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/isMatch.js\n// module id = 68\n// module chunks = 0","import keys from './keys.js';\n\n// Invert the keys and values of an object. The values must be serializable.\nexport default function invert(obj) {\n var result = {};\n var _keys = keys(obj);\n for (var i = 0, length = _keys.length; i < length; i++) {\n result[obj[_keys[i]]] = _keys[i];\n }\n return result;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/invert.js\n// module id = 69\n// module chunks = 0","import isFunction from './isFunction.js';\n\n// Return a sorted list of the function names available on the object.\nexport default function functions(obj) {\n var names = [];\n for (var key in obj) {\n if (isFunction(obj[key])) names.push(key);\n }\n return names.sort();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/functions.js\n// module id = 70\n// module chunks = 0","import createAssigner from './_createAssigner.js';\nimport allKeys from './allKeys.js';\n\n// Extend a given object with all the properties in passed-in object(s).\nexport default createAssigner(allKeys);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/extend.js\n// module id = 71\n// module chunks = 0","import createAssigner from './_createAssigner.js';\nimport allKeys from './allKeys.js';\n\n// Fill in a given object with default properties.\nexport default createAssigner(allKeys, true);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/defaults.js\n// module id = 72\n// module chunks = 0","import isObject from './isObject.js';\nimport { nativeCreate } from './_setup.js';\n\n// Create a naked function reference for surrogate-prototype-swapping.\nfunction ctor() {\n return function(){};\n}\n\n// An internal function for creating a new object that inherits from another.\nexport default function baseCreate(prototype) {\n if (!isObject(prototype)) return {};\n if (nativeCreate) return nativeCreate(prototype);\n var Ctor = ctor();\n Ctor.prototype = prototype;\n var result = new Ctor;\n Ctor.prototype = null;\n return result;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/_baseCreate.js\n// module id = 73\n// module chunks = 0","import toPath from './_toPath.js';\nimport deepGet from './_deepGet.js';\nimport isUndefined from './isUndefined.js';\n\n// Get the value of the (deep) property on `path` from `object`.\n// If any property in `path` does not exist or if the value is\n// `undefined`, return `defaultValue` instead.\n// The `path` is normalized through `_.toPath`.\nexport default function get(object, path, defaultValue) {\n var value = deepGet(object, toPath(path));\n return isUndefined(value) ? defaultValue : value;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/get.js\n// module id = 74\n// module chunks = 0","import _ from './underscore.js';\nimport isArray from './isArray.js';\n\n// Normalize a (deep) property `path` to array.\n// Like `_.iteratee`, this function can be customized.\nexport default function toPath(path) {\n return isArray(path) ? path : [path];\n}\n_.toPath = toPath;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/toPath.js\n// module id = 75\n// module chunks = 0","import identity from './identity.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport isArray from './isArray.js';\nimport matcher from './matcher.js';\nimport property from './property.js';\nimport optimizeCb from './_optimizeCb.js';\n\n// An internal function to generate callbacks that can be applied to each\n// element in a collection, returning the desired result — either `_.identity`,\n// an arbitrary callback, a property matcher, or a property accessor.\nexport default function baseIteratee(value, context, argCount) {\n if (value == null) return identity;\n if (isFunction(value)) return optimizeCb(value, context, argCount);\n if (isObject(value) && !isArray(value)) return matcher(value);\n return property(value);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/_baseIteratee.js\n// module id = 76\n// module chunks = 0","import _ from './underscore.js';\nimport baseIteratee from './_baseIteratee.js';\n\n// External wrapper for our callback generator. Users may customize\n// `_.iteratee` if they want additional predicate/iteratee shorthand styles.\n// This abstraction hides the internal-only `argCount` argument.\nexport default function iteratee(value, context) {\n return baseIteratee(value, context, Infinity);\n}\n_.iteratee = iteratee;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/iteratee.js\n// module id = 77\n// module chunks = 0","// Predicate-generating function. Often useful outside of Underscore.\nexport default function noop(){}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/noop.js\n// module id = 78\n// module chunks = 0","// Return a random integer between `min` and `max` (inclusive).\nexport default function random(min, max) {\n if (max == null) {\n max = min;\n min = 0;\n }\n return min + Math.floor(Math.random() * (max - min + 1));\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/random.js\n// module id = 79\n// module chunks = 0","import keys from './keys.js';\n\n// Internal helper to generate functions for escaping and unescaping strings\n// to/from HTML interpolation.\nexport default function createEscaper(map) {\n var escaper = function(match) {\n return map[match];\n };\n // Regexes for identifying a key that needs to be escaped.\n var source = '(?:' + keys(map).join('|') + ')';\n var testRegexp = RegExp(source);\n var replaceRegexp = RegExp(source, 'g');\n return function(string) {\n string = string == null ? '' : '' + string;\n return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/_createEscaper.js\n// module id = 80\n// module chunks = 0","// Internal list of HTML entities for escaping.\nexport default {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`'\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/_escapeMap.js\n// module id = 81\n// module chunks = 0","import _ from './underscore.js';\n\n// By default, Underscore uses ERB-style template delimiters. Change the\n// following template settings to use alternative delimiters.\nexport default _.templateSettings = {\n evaluate: /<%([\\s\\S]+?)%>/g,\n interpolate: /<%=([\\s\\S]+?)%>/g,\n escape: /<%-([\\s\\S]+?)%>/g\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/templateSettings.js\n// module id = 82\n// module chunks = 0","import baseCreate from './_baseCreate.js';\nimport isObject from './isObject.js';\n\n// Internal function to execute `sourceFunc` bound to `context` with optional\n// `args`. Determines whether to execute a function as a constructor or as a\n// normal function.\nexport default function executeBound(sourceFunc, boundFunc, context, callingContext, args) {\n if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args);\n var self = baseCreate(sourceFunc.prototype);\n var result = sourceFunc.apply(self, args);\n if (isObject(result)) return result;\n return self;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/_executeBound.js\n// module id = 83\n// module chunks = 0","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport executeBound from './_executeBound.js';\n\n// Create a function bound to a given object (assigning `this`, and arguments,\n// optionally).\nexport default restArguments(function(func, context, args) {\n if (!isFunction(func)) throw new TypeError('Bind must be called on a function');\n var bound = restArguments(function(callArgs) {\n return executeBound(func, bound, context, this, args.concat(callArgs));\n });\n return bound;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/bind.js\n// module id = 84\n// module chunks = 0","import restArguments from './restArguments.js';\n\n// Delays a function for the given number of milliseconds, and then calls\n// it with the arguments supplied.\nexport default restArguments(function(func, wait, args) {\n return setTimeout(function() {\n return func.apply(null, args);\n }, wait);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/delay.js\n// module id = 85\n// module chunks = 0","// Returns a function that will only be executed up to (but not including) the\n// Nth call.\nexport default function before(times, func) {\n var memo;\n return function() {\n if (--times > 0) {\n memo = func.apply(this, arguments);\n }\n if (times <= 1) func = null;\n return memo;\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/before.js\n// module id = 86\n// module chunks = 0","import cb from './_cb.js';\nimport keys from './keys.js';\n\n// Returns the first key on an object that passes a truth test.\nexport default function findKey(obj, predicate, context) {\n predicate = cb(predicate, context);\n var _keys = keys(obj), key;\n for (var i = 0, length = _keys.length; i < length; i++) {\n key = _keys[i];\n if (predicate(obj[key], key, obj)) return key;\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/findKey.js\n// module id = 87\n// module chunks = 0","import cb from './_cb.js';\nimport getLength from './_getLength.js';\n\n// Internal function to generate `_.findIndex` and `_.findLastIndex`.\nexport default function createPredicateIndexFinder(dir) {\n return function(array, predicate, context) {\n predicate = cb(predicate, context);\n var length = getLength(array);\n var index = dir > 0 ? 0 : length - 1;\n for (; index >= 0 && index < length; index += dir) {\n if (predicate(array[index], index, array)) return index;\n }\n return -1;\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/_createPredicateIndexFinder.js\n// module id = 88\n// module chunks = 0","import createPredicateIndexFinder from './_createPredicateIndexFinder.js';\n\n// Returns the last index on an array-like that passes a truth test.\nexport default createPredicateIndexFinder(-1);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/findLastIndex.js\n// module id = 89\n// module chunks = 0","import cb from './_cb.js';\nimport getLength from './_getLength.js';\n\n// Use a comparator function to figure out the smallest index at which\n// an object should be inserted so as to maintain order. Uses binary search.\nexport default function sortedIndex(array, obj, iteratee, context) {\n iteratee = cb(iteratee, context, 1);\n var value = iteratee(obj);\n var low = 0, high = getLength(array);\n while (low < high) {\n var mid = Math.floor((low + high) / 2);\n if (iteratee(array[mid]) < value) low = mid + 1; else high = mid;\n }\n return low;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/sortedIndex.js\n// module id = 90\n// module chunks = 0","import sortedIndex from './sortedIndex.js';\nimport findIndex from './findIndex.js';\nimport createIndexFinder from './_createIndexFinder.js';\n\n// Return the position of the first occurrence of an item in an array,\n// or -1 if the item is not included in the array.\n// If the array is large and already in sort order, pass `true`\n// for **isSorted** to use binary search.\nexport default createIndexFinder(1, findIndex, sortedIndex);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/indexOf.js\n// module id = 91\n// module chunks = 0","import getLength from './_getLength.js';\nimport { slice } from './_setup.js';\nimport isNaN from './isNaN.js';\n\n// Internal function to generate the `_.indexOf` and `_.lastIndexOf` functions.\nexport default function createIndexFinder(dir, predicateFind, sortedIndex) {\n return function(array, item, idx) {\n var i = 0, length = getLength(array);\n if (typeof idx == 'number') {\n if (dir > 0) {\n i = idx >= 0 ? idx : Math.max(idx + length, i);\n } else {\n length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1;\n }\n } else if (sortedIndex && idx && length) {\n idx = sortedIndex(array, item);\n return array[idx] === item ? idx : -1;\n }\n if (item !== item) {\n idx = predicateFind(slice.call(array, i, length), isNaN);\n return idx >= 0 ? idx + i : -1;\n }\n for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) {\n if (array[idx] === item) return idx;\n }\n return -1;\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/_createIndexFinder.js\n// module id = 92\n// module chunks = 0","import isArrayLike from './_isArrayLike.js';\nimport findIndex from './findIndex.js';\nimport findKey from './findKey.js';\n\n// Return the first value which passes a truth test.\nexport default function find(obj, predicate, context) {\n var keyFinder = isArrayLike(obj) ? findIndex : findKey;\n var key = keyFinder(obj, predicate, context);\n if (key !== void 0 && key !== -1) return obj[key];\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/find.js\n// module id = 93\n// module chunks = 0","import isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\nimport optimizeCb from './_optimizeCb.js';\n\n// Internal helper to create a reducing function, iterating left or right.\nexport default function createReduce(dir) {\n // Wrap code that reassigns argument variables in a separate function than\n // the one that accesses `arguments.length` to avoid a perf hit. (#1991)\n var reducer = function(obj, iteratee, memo, initial) {\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length,\n index = dir > 0 ? 0 : length - 1;\n if (!initial) {\n memo = obj[_keys ? _keys[index] : index];\n index += dir;\n }\n for (; index >= 0 && index < length; index += dir) {\n var currentKey = _keys ? _keys[index] : index;\n memo = iteratee(memo, obj[currentKey], currentKey, obj);\n }\n return memo;\n };\n\n return function(obj, iteratee, memo, context) {\n var initial = arguments.length >= 3;\n return reducer(obj, optimizeCb(iteratee, context, 4), memo, initial);\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/_createReduce.js\n// module id = 94\n// module chunks = 0","import isArrayLike from './_isArrayLike.js';\nimport values from './values.js';\nimport cb from './_cb.js';\nimport each from './each.js';\n\n// Return the maximum element (or element-based computation).\nexport default function max(obj, iteratee, context) {\n var result = -Infinity, lastComputed = -Infinity,\n value, computed;\n if (iteratee == null || (typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null)) {\n obj = isArrayLike(obj) ? obj : values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value != null && value > result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n each(obj, function(v, index, list) {\n computed = iteratee(v, index, list);\n if (computed > lastComputed || (computed === -Infinity && result === -Infinity)) {\n result = v;\n lastComputed = computed;\n }\n });\n }\n return result;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/max.js\n// module id = 95\n// module chunks = 0","import isArrayLike from './_isArrayLike.js';\nimport values from './values.js';\nimport getLength from './_getLength.js';\nimport random from './random.js';\nimport toArray from './toArray.js';\n\n// Sample **n** random values from a collection using the modern version of the\n// [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher–Yates_shuffle).\n// If **n** is not specified, returns a single random element.\n// The internal `guard` argument allows it to work with `_.map`.\nexport default function sample(obj, n, guard) {\n if (n == null || guard) {\n if (!isArrayLike(obj)) obj = values(obj);\n return obj[random(obj.length - 1)];\n }\n var sample = toArray(obj);\n var length = getLength(sample);\n n = Math.max(Math.min(n, length), 0);\n var last = length - 1;\n for (var index = 0; index < n; index++) {\n var rand = random(index, last);\n var temp = sample[index];\n sample[index] = sample[rand];\n sample[rand] = temp;\n }\n return sample.slice(0, n);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/sample.js\n// module id = 96\n// module chunks = 0","import isArray from './isArray.js';\nimport { slice } from './_setup.js';\nimport isString from './isString.js';\nimport isArrayLike from './_isArrayLike.js';\nimport map from './map.js';\nimport identity from './identity.js';\nimport values from './values.js';\n\n// Safely create a real, live array from anything iterable.\nvar reStrSymbol = /[^\\ud800-\\udfff]|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff]/g;\nexport default function toArray(obj) {\n if (!obj) return [];\n if (isArray(obj)) return slice.call(obj);\n if (isString(obj)) {\n // Keep surrogate pair characters together.\n return obj.match(reStrSymbol);\n }\n if (isArrayLike(obj)) return map(obj, identity);\n return values(obj);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/toArray.js\n// module id = 97\n// module chunks = 0","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport optimizeCb from './_optimizeCb.js';\nimport allKeys from './allKeys.js';\nimport keyInObj from './_keyInObj.js';\nimport flatten from './_flatten.js';\n\n// Return a copy of the object only containing the allowed properties.\nexport default restArguments(function(obj, keys) {\n var result = {}, iteratee = keys[0];\n if (obj == null) return result;\n if (isFunction(iteratee)) {\n if (keys.length > 1) iteratee = optimizeCb(iteratee, keys[1]);\n keys = allKeys(obj);\n } else {\n iteratee = keyInObj;\n keys = flatten(keys, false, false);\n obj = Object(obj);\n }\n for (var i = 0, length = keys.length; i < length; i++) {\n var key = keys[i];\n var value = obj[key];\n if (iteratee(value, key, obj)) result[key] = value;\n }\n return result;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/pick.js\n// module id = 98\n// module chunks = 0","import { slice } from './_setup.js';\n\n// Returns everything but the last entry of the array. Especially useful on\n// the arguments object. Passing **n** will return all the values in\n// the array, excluding the last N.\nexport default function initial(array, n, guard) {\n return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n)));\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/initial.js\n// module id = 99\n// module chunks = 0","import { slice } from './_setup.js';\n\n// Returns everything but the first entry of the `array`. Especially useful on\n// the `arguments` object. Passing an **n** will return the rest N values in the\n// `array`.\nexport default function rest(array, n, guard) {\n return slice.call(array, n == null || guard ? 1 : n);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/rest.js\n// module id = 100\n// module chunks = 0","import restArguments from './restArguments.js';\nimport flatten from './_flatten.js';\nimport filter from './filter.js';\nimport contains from './contains.js';\n\n// Take the difference between one array and a number of other arrays.\n// Only the elements present in just the first array will remain.\nexport default restArguments(function(array, rest) {\n rest = flatten(rest, true, true);\n return filter(array, function(value){\n return !contains(rest, value);\n });\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/difference.js\n// module id = 101\n// module chunks = 0","import isBoolean from './isBoolean.js';\nimport cb from './_cb.js';\nimport getLength from './_getLength.js';\nimport contains from './contains.js';\n\n// Produce a duplicate-free version of the array. If the array has already\n// been sorted, you have the option of using a faster algorithm.\n// The faster algorithm will not work with an iteratee if the iteratee\n// is not a one-to-one function, so providing an iteratee will disable\n// the faster algorithm.\nexport default function uniq(array, isSorted, iteratee, context) {\n if (!isBoolean(isSorted)) {\n context = iteratee;\n iteratee = isSorted;\n isSorted = false;\n }\n if (iteratee != null) iteratee = cb(iteratee, context);\n var result = [];\n var seen = [];\n for (var i = 0, length = getLength(array); i < length; i++) {\n var value = array[i],\n computed = iteratee ? iteratee(value, i, array) : value;\n if (isSorted && !iteratee) {\n if (!i || seen !== computed) result.push(value);\n seen = computed;\n } else if (iteratee) {\n if (!contains(seen, computed)) {\n seen.push(computed);\n result.push(value);\n }\n } else if (!contains(result, value)) {\n result.push(value);\n }\n }\n return result;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/uniq.js\n// module id = 102\n// module chunks = 0","import max from './max.js';\nimport getLength from './_getLength.js';\nimport pluck from './pluck.js';\n\n// Complement of zip. Unzip accepts an array of arrays and groups\n// each array's elements on shared indices.\nexport default function unzip(array) {\n var length = (array && max(array, getLength).length) || 0;\n var result = Array(length);\n\n for (var index = 0; index < length; index++) {\n result[index] = pluck(array, index);\n }\n return result;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/unzip.js\n// module id = 103\n// module chunks = 0","import _ from './underscore.js';\n\n// Helper function to continue chaining intermediate results.\nexport default function chainResult(instance, obj) {\n return instance._chain ? _(obj).chain() : obj;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/underscore/modules/_chainResult.js\n// module id = 104\n// module chunks = 0","import $ from 'jquery';\nimport Backbone from 'backbone';\n\nimport events from '@girder/core/events';\nimport {parseQueryString, splitRoute} from '@girder/core/misc';\nimport router from '@girder/core/router';\nimport {exposePluginConfig} from '@girder/core/utilities/PluginUtils';\n\nimport ConfigView from './views/configView';\n\nexposePluginConfig('large_image', 'plugins/large_image/config');\n\nrouter.route('plugins/large_image/config', 'largeImageConfig', function () {\n events.trigger('g:navigateTo', ConfigView);\n});\n\n/**\n * Add a dictionary of parameters to the current route. If any entries have\n * values of undefined, null, or '', they are removed from the route.\n *\n * @param {object} params The parameters to add to the route.\n */\nfunction addToRoute(params) {\n if (!router.enabled()) {\n return;\n }\n const curRoute = Backbone.history.fragment;\n const routeParts = splitRoute(curRoute);\n const query = parseQueryString(routeParts.name);\n let update = false;\n Object.entries(params).forEach(([key, value]) => {\n update = update || (value !== query[key]);\n if (value === undefined || value === null || value === '') {\n delete query[key];\n } else {\n query[key] = value;\n }\n });\n if (update) {\n const paramStr = $.param(query);\n // This should be\n // router.navigate(routeParts.base + (paramStr ? '?' + paramStr : ''));\n // But backbone stores an unescaped fragment in the\n // Backbone.history.fragment, which causes a hash-variation trigger,\n // so this works around that.\n const fragment = (routeParts.base + (paramStr ? '?' + paramStr : '')).replace(/#.*$/, '');\n Backbone.history.fragment = fragment;\n Backbone.history._updateHash(Backbone.history.location, fragment);\n }\n}\n\nexport {\n addToRoute\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/@girder/large_image/routes.js","module.exports = (__webpack_require__(0))(59);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./src/utilities/EventStream.js from dll-reference girder_lib\n// module id = 106\n// module chunks = 0","module.exports = (__webpack_require__(0))(10);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./src/auth.js from dll-reference girder_lib\n// module id = 107\n// module chunks = 0","import $ from 'jquery';\nimport {wrap} from '@girder/core/utilities/PluginUtils';\n\nimport _ from 'underscore';\n\nimport View from '@girder/core/views/View';\nimport {AccessType} from '@girder/core/constants';\nimport {confirm} from '@girder/core/dialog';\nimport events from '@girder/core/events';\nimport {localeSort} from '@girder/core/misc';\n\nimport JsonMetadatumEditWidgetTemplate from '@girder/core/templates/widgets/jsonMetadatumEditWidget.pug';\n\nimport MetadatumViewTemplate from '@girder/core/templates/widgets/metadatumView.pug';\n\nimport '@girder/core/stylesheets/widgets/metadataWidget.styl';\n\nimport JSONEditor from 'jsoneditor/dist/jsoneditor.js'; // can't 'jsoneditor'\nimport 'jsoneditor/dist/jsoneditor.css';\n\nimport 'bootstrap/js/dropdown';\n\nimport MetadataWidget from '@girder/core/views/widgets/MetadataWidget';\n\nimport '../stylesheets/metadataWidget.styl';\nimport MetadataWidgetTemplate from '../templates/metadataWidget.pug';\nimport MetadatumEditWidgetTemplate from '../templates/metadatumEditWidget.pug';\nimport largeImageConfig from './configView';\n\nfunction getMetadataRecord(item, fieldName) {\n if (item[fieldName]) {\n return item[fieldName];\n }\n let meta = item.attributes;\n fieldName.split('.').forEach((part) => {\n if (!meta[part]) {\n meta[part] = {};\n }\n meta = meta[part];\n });\n return meta;\n}\n\nfunction liMetadataKeyEntry(limetadata, key) {\n if (!limetadata || !key) {\n return;\n }\n let result;\n limetadata.forEach((entry, idx) => {\n if (entry.value === key) {\n result = entry;\n result.idx = idx;\n }\n });\n return result;\n}\n\nfunction validateMetadataValue(lientry, tempValue, nowarn) {\n if (lientry && lientry.regex && !(new RegExp(lientry.regex).exec(tempValue))) {\n if (!nowarn) {\n events.trigger('g:alert', {\n text: 'The value does not match the required format.',\n type: 'warning'\n });\n }\n return false;\n }\n if (lientry && ((lientry.format || lientry.type) === 'number' || (lientry.format || lientry.type) === 'integer')) {\n if (!Number.isFinite(parseFloat(tempValue)) || ((lientry.format || lientry.type) === 'integer' && !Number.isInteger(parseFloat(tempValue)))) {\n if (!nowarn) {\n events.trigger('g:alert', {\n text: `The value must be a ${(lientry.format || lientry.type)}.`,\n type: 'warning'\n });\n }\n return false;\n }\n tempValue = parseFloat(tempValue);\n if ((lientry.minimum !== undefined && tempValue < lientry.minimum) ||\n (lientry.exclusiveMinimum !== undefined && tempValue <= lientry.exclusiveMinimum) ||\n (lientry.maximum !== undefined && tempValue > lientry.maximum) ||\n (lientry.exclusiveMaximum !== undefined && tempValue >= lientry.exclusiveMaximum)) {\n if (!nowarn) {\n events.trigger('g:alert', {\n text: 'The value is outside of the allowed range.',\n type: 'warning'\n });\n }\n return false;\n }\n }\n return {value: tempValue};\n}\n\nvar MetadatumWidget = View.extend({\n className: 'g-widget-metadata-row',\n\n events: {\n 'click .g-widget-metadata-edit-button': 'editMetadata'\n },\n\n initialize: function (settings) {\n if (!_.has(this.parentView.modes, settings.mode)) {\n throw new Error('Unsupported metadatum mode ' + settings.mode + ' detected.');\n }\n\n this.mode = settings.mode;\n this.key = settings.key;\n this.value = settings.value;\n this.accessLevel = settings.accessLevel;\n this.parentView = settings.parentView;\n this.fieldName = settings.fieldName;\n this.apiPath = settings.apiPath;\n this.noSave = settings.noSave;\n this.limetadata = settings.limetadata;\n this.onMetadataEdited = settings.onMetadataEdited;\n this.onMetadataAdded = settings.onMetadataAdded;\n },\n\n _validate: function (from, to, value) {\n var newMode = this.parentView.modes[to];\n\n if (_.has(newMode, 'validation') &&\n _.has(newMode.validation, 'from') &&\n _.has(newMode.validation.from, from)) {\n var validate = newMode.validation.from[from][0];\n var msg = newMode.validation.from[from][1];\n\n if (!validate(value)) {\n events.trigger('g:alert', {\n text: msg,\n type: 'warning'\n });\n return false;\n }\n }\n\n return true;\n },\n\n // @todo too much duplication with editMetadata\n toggleEditor: function (event, newEditorMode, existingEditor, overrides) {\n var fromEditorMode = (existingEditor instanceof JsonMetadatumEditWidget) ? 'json' : 'simple';\n var newValue = (overrides || {}).value || existingEditor.$el.attr('g-value');\n if (!this._validate(fromEditorMode, newEditorMode, newValue)) {\n return false;\n }\n\n var row = existingEditor.$el;\n existingEditor.destroy();\n row.addClass('editing').empty();\n\n var opts = _.extend({\n el: row,\n item: this.parentView.item,\n key: row.attr('g-key'),\n value: row.attr('g-value'),\n accessLevel: this.accessLevel,\n newDatum: false,\n parentView: this,\n fieldName: this.fieldName,\n apiPath: this.apiPath,\n noSave: this.noSave,\n limetadata: this.limetadata,\n onMetadataEdited: this.onMetadataEdited,\n onMetadataAdded: this.onMetadataAdded\n }, overrides || {});\n\n this.parentView.modes[newEditorMode].editor(opts).render();\n },\n\n editMetadata: function (event) {\n this.$el.addClass('editing');\n this.$el.empty();\n\n var opts = {\n item: this.parentView.item,\n key: this.$el.attr('g-key'),\n value: this.$el.attr('g-value'),\n accessLevel: this.accessLevel,\n newDatum: false,\n parentView: this,\n fieldName: this.fieldName,\n apiPath: this.apiPath,\n noSave: this.noSave,\n limetadata: this.limetadata,\n onMetadataEdited: this.onMetadataEdited,\n onMetadataAdded: this.onMetadataAdded\n };\n\n // If they're trying to open false, null, 6, etc which are not stored as strings\n if (this.mode === 'json') {\n try {\n var jsonValue = JSON.parse(this.$el.attr('g-value'));\n\n if (jsonValue !== undefined && !_.isObject(jsonValue)) {\n opts.value = jsonValue;\n }\n } catch (e) {}\n }\n\n this.parentView.modes[this.mode].editor(opts)\n .render()\n .$el.appendTo(this.$el);\n },\n\n render: function () {\n this.$el.attr({\n 'g-key': this.key,\n 'g-value': _.bind(this.parentView.modes[this.mode].displayValue, this)()\n }).empty();\n this.$el.removeClass('editing');\n this.$el.html(this.parentView.modes[this.mode].template({\n key: this.mode === 'key' && liMetadataKeyEntry(this.limetadata, this.key) ? liMetadataKeyEntry(this.limetadata, this.key).title || this.key : this.key,\n value: _.bind(this.parentView.modes[this.mode].displayValue, this)(),\n accessLevel: this.accessLevel,\n AccessType\n }));\n\n return this;\n }\n});\n\nvar MetadatumEditWidget = View.extend({\n events: {\n 'click .g-widget-metadata-cancel-button': 'cancelEdit',\n 'click .g-widget-metadata-save-button': 'save',\n 'click .g-widget-metadata-delete-button': 'deleteMetadatum',\n 'click .g-widget-metadata-toggle-button': function (event) {\n var editorType;\n // @todo modal\n // in the future this event will have the new editorType (assuming a dropdown)\n if (this instanceof JsonMetadatumEditWidget) {\n editorType = 'simple';\n } else {\n editorType = 'json';\n }\n\n this.parentView.toggleEditor(event, editorType, this, {\n // Save state before toggling editor\n key: this.$el.find('.g-widget-metadata-key-input').val(),\n value: this.getCurrentValue()\n });\n return false;\n }\n },\n\n initialize: function (settings) {\n this.item = settings.item;\n this.key = settings.key || '';\n this.fieldName = settings.fieldName || 'meta';\n this.value = (settings.value !== undefined) ? settings.value : '';\n this.accessLevel = settings.accessLevel;\n this.newDatum = settings.newDatum;\n this.fieldName = settings.fieldName;\n this.apiPath = settings.apiPath;\n this.noSave = settings.noSave;\n this.limetadata = settings.limetadata;\n this.onMetadataEdited = settings.onMetadataEdited;\n this.onMetadataAdded = settings.onMetadataAdded;\n },\n\n editTemplate: MetadatumEditWidgetTemplate,\n\n getCurrentValue: function () {\n return this.$el.find('.g-widget-metadata-value-input').val();\n },\n\n deleteMetadatum: function (event) {\n event.stopImmediatePropagation();\n const target = $(event.currentTarget);\n var metadataList = target.parent().parent();\n if (this.noSave) {\n delete getMetadataRecord(this.item, this.fieldName)[this.key];\n metadataList.remove();\n return;\n }\n var params = {\n text: 'Are you sure you want to delete the metadatum ' +\n _.escape(this.key) + '?',\n escapedHtml: true,\n yesText: 'Delete',\n confirmCallback: () => {\n this.item.removeMetadata(this.key, () => {\n metadataList.remove();\n this.parentView.parentView.trigger('li-metadata-widget-update', {});\n }, null, {\n field: this.fieldName,\n path: this.apiPath\n });\n }\n };\n confirm(params);\n },\n\n cancelEdit: function (event) {\n event.stopImmediatePropagation();\n const target = $(event.currentTarget);\n var curRow = target.parent().parent();\n if (this.newDatum) {\n curRow.remove();\n } else {\n this.parentView.render();\n }\n },\n\n save: function (event, value) {\n event.stopImmediatePropagation();\n const target = $(event.currentTarget);\n var curRow = target.parent(),\n tempKey = curRow.find('.g-widget-metadata-key-input').val().trim() || curRow.find('.g-widget-metadata-key-input').attr('key'),\n keyMode = curRow.find('.g-widget-metadata-key-input').attr('key'),\n tempValue = (value !== undefined) ? value : curRow.find('.g-widget-metadata-value-input').val();\n\n if (this.newDatum && tempKey === '') {\n events.trigger('g:alert', {\n text: 'A key is required for all metadata.',\n type: 'warning'\n });\n return false;\n }\n const lientry = keyMode ? liMetadataKeyEntry(this.limetadata, this.key) : undefined;\n if (keyMode && lientry) {\n tempValue = tempValue.trim();\n }\n const valResult = validateMetadataValue(lientry, tempValue);\n if (!valResult) {\n return false;\n }\n tempValue = valResult.value;\n var saveCallback = () => {\n this.key = tempKey;\n this.value = tempValue;\n\n this.parentView.key = this.key;\n this.parentView.value = this.value;\n\n if (keyMode) {\n this.parentView.mode = 'key';\n } else if (this instanceof JsonMetadatumEditWidget) {\n this.parentView.mode = 'json';\n } else {\n this.parentView.mode = 'simple';\n }\n // event to re-render metadata panel header when metadata is edited\n this.parentView.parentView.trigger('li-metadata-widget-update', {});\n this.parentView.render();\n\n this.newDatum = false;\n };\n\n var errorCallback = function (out) {\n events.trigger('g:alert', {\n text: out.message,\n type: 'danger'\n });\n };\n\n if (this.newDatum) {\n if (this.onMetadataAdded) {\n this.onMetadataAdded(tempKey, tempValue, saveCallback, errorCallback);\n } else {\n if (this.noSave) {\n if (getMetadataRecord(this.item, this.fieldName)[tempKey] !== undefined) {\n events.trigger('g:alert', {\n text: tempKey + ' is already a metadata key',\n type: 'warning'\n });\n return false;\n }\n getMetadataRecord(this.item, this.fieldName)[tempKey] = tempValue;\n this.parentView.parentView.render();\n }\n this.item.addMetadata(tempKey, tempValue, saveCallback, errorCallback, {\n field: this.fieldName,\n path: this.apiPath\n });\n }\n } else {\n if (this.onMetadataEdited) {\n this.onMetadataEdited(tempKey, this.key, tempValue, saveCallback, errorCallback);\n } else {\n if (this.noSave) {\n tempKey = tempKey === '' ? this.key : tempKey;\n if (tempKey !== this.key && getMetadataRecord(this.item, this.fieldName)[tempKey] !== undefined) {\n events.trigger('g:alert', {\n text: tempKey + ' is already a metadata key',\n type: 'warning'\n });\n return false;\n }\n delete getMetadataRecord(this.item, this.fieldName)[this.key];\n getMetadataRecord(this.item, this.fieldName)[tempKey] = tempValue;\n this.parentView.parentView.render();\n return;\n }\n this.item.editMetadata(tempKey, this.key, tempValue, saveCallback, errorCallback, {\n field: this.fieldName,\n path: this.apiPath\n });\n }\n }\n },\n\n render: function () {\n this.$el.html(this.editTemplate({\n item: this.item,\n lientry: liMetadataKeyEntry(this.limetadata, this.key),\n key: this.key,\n value: this.value,\n accessLevel: this.accessLevel,\n newDatum: this.newDatum,\n AccessType\n }));\n this.$el.find('.g-widget-metadata-key-input').trigger('focus');\n\n return this;\n }\n});\n\nvar JsonMetadatumEditWidget = MetadatumEditWidget.extend({\n editTemplate: JsonMetadatumEditWidgetTemplate,\n\n getCurrentValue: function () {\n return this.editor.getText();\n },\n\n save: function (event) {\n try {\n return MetadatumEditWidget.prototype.save.call(\n this, event, this.editor.get());\n } catch (err) {\n events.trigger('g:alert', {\n text: 'The field contains invalid JSON and can not be saved.',\n type: 'warning'\n });\n return false;\n }\n },\n\n render: function () {\n MetadatumEditWidget.prototype.render.apply(this, arguments);\n\n const jsonEditorEl = this.$el.find('.g-json-editor');\n this.editor = new JSONEditor(jsonEditorEl[0], {\n mode: 'tree',\n modes: ['code', 'tree'],\n onError: () => {\n events.trigger('g:alert', {\n text: 'The field contains invalid JSON and can not be viewed in Tree Mode.',\n type: 'warning'\n });\n }\n });\n\n if (this.value !== undefined) {\n this.editor.setText(JSON.stringify(this.value));\n this.editor.expandAll();\n }\n\n return this;\n }\n});\n\nwrap(MetadataWidget, 'initialize', function (initialize, settings) {\n try {\n initialize.call(this, settings);\n } catch (err) {\n }\n this.noSave = settings.noSave;\n if (this.item && this.item.get('_modelType') === 'item') {\n largeImageConfig.getConfigFile(this.item.get('folderId')).done((val) => {\n this._limetadata = (val || {}).itemMetadata;\n if (this._limetadata) {\n this.render();\n }\n });\n } else {\n this._limetadata = null;\n }\n});\n\nwrap(MetadataWidget, 'render', function (render) {\n let metaDict;\n if (this.item.get(this.fieldName)) {\n metaDict = this.item.get(this.fieldName) || {};\n } else if (this.item[this.fieldName]) {\n metaDict = this.item[this.fieldName] || {};\n } else {\n const fieldParts = this.fieldName.split('.');\n metaDict = this.item.get(fieldParts[0]) || {};\n fieldParts.slice(1).forEach((part) => {\n metaDict = metaDict[part] || {};\n });\n }\n var metaKeys = Object.keys(metaDict);\n metaKeys.sort(localeSort);\n if (this._limetadata) {\n const origOrder = metaKeys.slice();\n metaKeys.sort((a, b) => {\n const aentry = liMetadataKeyEntry(this._limetadata, a);\n const bentry = liMetadataKeyEntry(this._limetadata, b);\n if (aentry && !bentry) {\n return -1;\n }\n if (bentry && !aentry) {\n return 1;\n }\n if (aentry && bentry) {\n return aentry.idx - bentry.idx;\n }\n return origOrder.indexOf(a) - origOrder.indexOf(b);\n });\n }\n this._sortedMetaKeys = metaKeys;\n this._renderedMetaDict = metaDict;\n const contents = (this.MetadataWidgetTemplate || MetadataWidgetTemplate)({\n item: this.item,\n title: this.title,\n accessLevel: this.accessLevel,\n AccessType: AccessType,\n limetadata: this._limetadata\n });\n this._renderHeader(contents);\n\n // Append each metadatum\n _.each(metaKeys, function (metaKey) {\n if ((liMetadataKeyEntry(this._limetadata, metaKey) || {}).hidden) {\n return;\n }\n this.$el.find('.g-widget-metadata-container').append(new MetadatumWidget({\n mode: this.getModeFromValue(metaDict[metaKey], metaKey),\n key: metaKey,\n value: metaDict[metaKey],\n accessLevel: this.accessLevel,\n parentView: this,\n fieldName: this.fieldName,\n apiPath: this.apiPath,\n limetadata: this._limetadata,\n noSave: this.noSave,\n onMetadataEdited: this.onMetadataEdited,\n onMetadataAdded: this.onMetadataAdded\n }).render().$el);\n }, this);\n\n return this;\n});\n\nwrap(MetadataWidget, 'setItem', function (setItem, item) {\n if (item !== this.item) {\n this._limetadata = null;\n if (item && item.get('_modelType') === 'item') {\n largeImageConfig.getConfigFile(item.get('folderId')).done((val) => {\n this._limetadata = (val || {}).itemMetadata;\n if (this._limetadata) {\n this.render();\n }\n });\n }\n }\n setItem.call(this, item);\n this.item.on('g:changed', function () {\n this.render();\n }, this);\n this.render();\n return this;\n});\n\nMetadataWidget.prototype.modes.simple.editor = (args) => new MetadatumEditWidget(args);\nMetadataWidget.prototype.modes.json.editor = (args) => {\n if (args.value !== undefined) {\n args.value = JSON.parse(args.value);\n }\n return new JsonMetadatumEditWidget(args);\n};\nMetadataWidget.prototype.modes.key = {\n editor: function (args) {\n return new MetadatumEditWidget(args);\n },\n displayValue: function () {\n return this.value;\n },\n template: MetadatumViewTemplate\n};\n\nMetadataWidget.prototype.events['click .li-add-metadata'] = function (evt) {\n this.addMetadataByKey(evt);\n};\n\nMetadataWidget.prototype.getModeFromValue = function (value, key) {\n if (liMetadataKeyEntry(this._limetadata, key)) {\n return 'key';\n }\n return _.isString(value) ? 'simple' : 'json';\n};\n\nMetadataWidget.prototype.addMetadata = function (evt, mode) {\n var EditWidget = this.modes[mode].editor;\n var value = (mode === 'json') ? '{}' : '';\n\n var widget = new MetadatumWidget({\n className: 'g-widget-metadata-row editing',\n mode: mode,\n key: '',\n value: value,\n item: this.item,\n fieldName: this.fieldName,\n noSave: this.noSave,\n apiPath: this.apiPath,\n accessLevel: this.accessLevel,\n parentView: this,\n onMetadataEdited: this.onMetadataEdited,\n onMetadataAdded: this.onMetadataAdded\n });\n widget.$el.appendTo(this.$('.g-widget-metadata-container'));\n\n new EditWidget({\n item: this.item,\n key: '',\n value: value,\n fieldName: this.fieldName,\n noSave: this.noSave,\n apiPath: this.apiPath,\n accessLevel: this.accessLevel,\n newDatum: true,\n parentView: widget,\n onMetadataEdited: this.onMetadataEdited,\n onMetadataAdded: this.onMetadataAdded\n })\n .render()\n .$el.appendTo(widget.$el);\n};\n\nMetadataWidget.prototype.addMetadataByKey = function (evt) {\n const key = $(evt.target).attr('metadata-key');\n // if this key already exists, just go to editing it\n if (this.$el.find(`.g-widget-metadata-row[g-key=\"${key}\"]`).length) {\n this.$el.find(`.g-widget-metadata-row[g-key=\"${key}\"] button.g-widget-metadata-edit-button`).click();\n return false;\n }\n var EditWidget = this.modes.key.editor;\n var lientry = liMetadataKeyEntry(this._limetadata, key) || {};\n var value = lientry.default ? lientry.default : '';\n\n var widget = new MetadatumWidget({\n className: 'g-widget-metadata-row editing',\n mode: 'key',\n key: key,\n value: value,\n item: this.item,\n fieldName: this.fieldName,\n apiPath: this.apiPath,\n accessLevel: this.accessLevel,\n parentView: this,\n limetadata: this._limetadata,\n onMetadataEdited: this.onMetadataEdited,\n onMetadataAdded: this.onMetadataAdded\n });\n widget.$el.appendTo(this.$('.g-widget-metadata-container'));\n\n new EditWidget({\n item: this.item,\n key: key,\n value: value,\n fieldName: this.fieldName,\n apiPath: this.apiPath,\n accessLevel: this.accessLevel,\n newDatum: true,\n noSave: this.noSave,\n parentView: widget,\n limetadata: this._limetadata,\n onMetadataEdited: this.onMetadataEdited,\n onMetadataAdded: this.onMetadataAdded\n })\n .render()\n .$el.appendTo(widget.$el);\n};\n\nMetadataWidget.prototype._renderHeader = function (contents) {\n this.$el.html(contents);\n};\n\nexport {\n MetadataWidget,\n MetadatumWidget,\n MetadatumEditWidget,\n JsonMetadatumEditWidget,\n liMetadataKeyEntry,\n validateMetadataValue\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/@girder/large_image/views/metadataWidget.js","module.exports = (__webpack_require__(0))(6);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./src/dialog.js from dll-reference girder_lib\n// module id = 109\n// module chunks = 0","import yaml from 'js-yaml';\nimport {getApiRoot} from '@girder/core/rest';\nimport View from '@girder/core/views/View';\n\nimport itemViewWidgetTemplate from '../templates/itemView.pug';\n\nvar ItemViewWidget = View.extend({\n initialize: function (settings) {\n this.itemId = settings.imageModel.id;\n this.model = settings.imageModel;\n this.extra = settings.extra;\n this.metadata = settings.metadata;\n },\n\n render: function () {\n this.$el.html(itemViewWidgetTemplate({\n extra: this.extra,\n updated: this.model.get('updated'),\n largeImageMetadata: this.metadata,\n yaml: yaml,\n imageUrl: `${getApiRoot()}/item/${this.itemId}/tiles/images/`\n }));\n return this;\n }\n});\n\nexport default ItemViewWidget;\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/@girder/large_image/views/itemViewWidget.js","\n/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */\nfunction isNothing(subject) {\n return (typeof subject === 'undefined') || (subject === null);\n}\n\n\nfunction isObject(subject) {\n return (typeof subject === 'object') && (subject !== null);\n}\n\n\nfunction toArray(sequence) {\n if (Array.isArray(sequence)) return sequence;\n else if (isNothing(sequence)) return [];\n\n return [ sequence ];\n}\n\n\nfunction extend(target, source) {\n var index, length, key, sourceKeys;\n\n if (source) {\n sourceKeys = Object.keys(source);\n\n for (index = 0, length = sourceKeys.length; index < length; index += 1) {\n key = sourceKeys[index];\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\n\nfunction repeat(string, count) {\n var result = '', cycle;\n\n for (cycle = 0; cycle < count; cycle += 1) {\n result += string;\n }\n\n return result;\n}\n\n\nfunction isNegativeZero(number) {\n return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number);\n}\n\n\nvar isNothing_1 = isNothing;\nvar isObject_1 = isObject;\nvar toArray_1 = toArray;\nvar repeat_1 = repeat;\nvar isNegativeZero_1 = isNegativeZero;\nvar extend_1 = extend;\n\nvar common = {\n\tisNothing: isNothing_1,\n\tisObject: isObject_1,\n\ttoArray: toArray_1,\n\trepeat: repeat_1,\n\tisNegativeZero: isNegativeZero_1,\n\textend: extend_1\n};\n\n// YAML error class. http://stackoverflow.com/questions/8458984\n\n\nfunction formatError(exception, compact) {\n var where = '', message = exception.reason || '(unknown reason)';\n\n if (!exception.mark) return message;\n\n if (exception.mark.name) {\n where += 'in \"' + exception.mark.name + '\" ';\n }\n\n where += '(' + (exception.mark.line + 1) + ':' + (exception.mark.column + 1) + ')';\n\n if (!compact && exception.mark.snippet) {\n where += '\\n\\n' + exception.mark.snippet;\n }\n\n return message + ' ' + where;\n}\n\n\nfunction YAMLException$1(reason, mark) {\n // Super constructor\n Error.call(this);\n\n this.name = 'YAMLException';\n this.reason = reason;\n this.mark = mark;\n this.message = formatError(this, false);\n\n // Include stack trace in error object\n if (Error.captureStackTrace) {\n // Chrome and NodeJS\n Error.captureStackTrace(this, this.constructor);\n } else {\n // FF, IE 10+ and Safari 6+. Fallback for others\n this.stack = (new Error()).stack || '';\n }\n}\n\n\n// Inherit from Error\nYAMLException$1.prototype = Object.create(Error.prototype);\nYAMLException$1.prototype.constructor = YAMLException$1;\n\n\nYAMLException$1.prototype.toString = function toString(compact) {\n return this.name + ': ' + formatError(this, compact);\n};\n\n\nvar exception = YAMLException$1;\n\n// get snippet for a single line, respecting maxLength\nfunction getLine(buffer, lineStart, lineEnd, position, maxLineLength) {\n var head = '';\n var tail = '';\n var maxHalfLength = Math.floor(maxLineLength / 2) - 1;\n\n if (position - lineStart > maxHalfLength) {\n head = ' ... ';\n lineStart = position - maxHalfLength + head.length;\n }\n\n if (lineEnd - position > maxHalfLength) {\n tail = ' ...';\n lineEnd = position + maxHalfLength - tail.length;\n }\n\n return {\n str: head + buffer.slice(lineStart, lineEnd).replace(/\\t/g, '→') + tail,\n pos: position - lineStart + head.length // relative position\n };\n}\n\n\nfunction padStart(string, max) {\n return common.repeat(' ', max - string.length) + string;\n}\n\n\nfunction makeSnippet(mark, options) {\n options = Object.create(options || null);\n\n if (!mark.buffer) return null;\n\n if (!options.maxLength) options.maxLength = 79;\n if (typeof options.indent !== 'number') options.indent = 1;\n if (typeof options.linesBefore !== 'number') options.linesBefore = 3;\n if (typeof options.linesAfter !== 'number') options.linesAfter = 2;\n\n var re = /\\r?\\n|\\r|\\0/g;\n var lineStarts = [ 0 ];\n var lineEnds = [];\n var match;\n var foundLineNo = -1;\n\n while ((match = re.exec(mark.buffer))) {\n lineEnds.push(match.index);\n lineStarts.push(match.index + match[0].length);\n\n if (mark.position <= match.index && foundLineNo < 0) {\n foundLineNo = lineStarts.length - 2;\n }\n }\n\n if (foundLineNo < 0) foundLineNo = lineStarts.length - 1;\n\n var result = '', i, line;\n var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length;\n var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3);\n\n for (i = 1; i <= options.linesBefore; i++) {\n if (foundLineNo - i < 0) break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo - i],\n lineEnds[foundLineNo - i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]),\n maxLineLength\n );\n result = common.repeat(' ', options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n' + result;\n }\n\n line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength);\n result += common.repeat(' ', options.indent) + padStart((mark.line + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n';\n result += common.repeat('-', options.indent + lineNoLength + 3 + line.pos) + '^' + '\\n';\n\n for (i = 1; i <= options.linesAfter; i++) {\n if (foundLineNo + i >= lineEnds.length) break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo + i],\n lineEnds[foundLineNo + i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]),\n maxLineLength\n );\n result += common.repeat(' ', options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n';\n }\n\n return result.replace(/\\n$/, '');\n}\n\n\nvar snippet = makeSnippet;\n\nvar TYPE_CONSTRUCTOR_OPTIONS = [\n 'kind',\n 'multi',\n 'resolve',\n 'construct',\n 'instanceOf',\n 'predicate',\n 'represent',\n 'representName',\n 'defaultStyle',\n 'styleAliases'\n];\n\nvar YAML_NODE_KINDS = [\n 'scalar',\n 'sequence',\n 'mapping'\n];\n\nfunction compileStyleAliases(map) {\n var result = {};\n\n if (map !== null) {\n Object.keys(map).forEach(function (style) {\n map[style].forEach(function (alias) {\n result[String(alias)] = style;\n });\n });\n }\n\n return result;\n}\n\nfunction Type$1(tag, options) {\n options = options || {};\n\n Object.keys(options).forEach(function (name) {\n if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {\n throw new exception('Unknown option \"' + name + '\" is met in definition of \"' + tag + '\" YAML type.');\n }\n });\n\n // TODO: Add tag format check.\n this.options = options; // keep original options in case user wants to extend this type later\n this.tag = tag;\n this.kind = options['kind'] || null;\n this.resolve = options['resolve'] || function () { return true; };\n this.construct = options['construct'] || function (data) { return data; };\n this.instanceOf = options['instanceOf'] || null;\n this.predicate = options['predicate'] || null;\n this.represent = options['represent'] || null;\n this.representName = options['representName'] || null;\n this.defaultStyle = options['defaultStyle'] || null;\n this.multi = options['multi'] || false;\n this.styleAliases = compileStyleAliases(options['styleAliases'] || null);\n\n if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {\n throw new exception('Unknown kind \"' + this.kind + '\" is specified for \"' + tag + '\" YAML type.');\n }\n}\n\nvar type = Type$1;\n\n/*eslint-disable max-len*/\n\n\n\n\n\nfunction compileList(schema, name) {\n var result = [];\n\n schema[name].forEach(function (currentType) {\n var newIndex = result.length;\n\n result.forEach(function (previousType, previousIndex) {\n if (previousType.tag === currentType.tag &&\n previousType.kind === currentType.kind &&\n previousType.multi === currentType.multi) {\n\n newIndex = previousIndex;\n }\n });\n\n result[newIndex] = currentType;\n });\n\n return result;\n}\n\n\nfunction compileMap(/* lists... */) {\n var result = {\n scalar: {},\n sequence: {},\n mapping: {},\n fallback: {},\n multi: {\n scalar: [],\n sequence: [],\n mapping: [],\n fallback: []\n }\n }, index, length;\n\n function collectType(type) {\n if (type.multi) {\n result.multi[type.kind].push(type);\n result.multi['fallback'].push(type);\n } else {\n result[type.kind][type.tag] = result['fallback'][type.tag] = type;\n }\n }\n\n for (index = 0, length = arguments.length; index < length; index += 1) {\n arguments[index].forEach(collectType);\n }\n return result;\n}\n\n\nfunction Schema$1(definition) {\n return this.extend(definition);\n}\n\n\nSchema$1.prototype.extend = function extend(definition) {\n var implicit = [];\n var explicit = [];\n\n if (definition instanceof type) {\n // Schema.extend(type)\n explicit.push(definition);\n\n } else if (Array.isArray(definition)) {\n // Schema.extend([ type1, type2, ... ])\n explicit = explicit.concat(definition);\n\n } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) {\n // Schema.extend({ explicit: [ type1, type2, ... ], implicit: [ type1, type2, ... ] })\n if (definition.implicit) implicit = implicit.concat(definition.implicit);\n if (definition.explicit) explicit = explicit.concat(definition.explicit);\n\n } else {\n throw new exception('Schema.extend argument should be a Type, [ Type ], ' +\n 'or a schema definition ({ implicit: [...], explicit: [...] })');\n }\n\n implicit.forEach(function (type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n\n if (type$1.loadKind && type$1.loadKind !== 'scalar') {\n throw new exception('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.');\n }\n\n if (type$1.multi) {\n throw new exception('There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.');\n }\n });\n\n explicit.forEach(function (type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n });\n\n var result = Object.create(Schema$1.prototype);\n\n result.implicit = (this.implicit || []).concat(implicit);\n result.explicit = (this.explicit || []).concat(explicit);\n\n result.compiledImplicit = compileList(result, 'implicit');\n result.compiledExplicit = compileList(result, 'explicit');\n result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit);\n\n return result;\n};\n\n\nvar schema = Schema$1;\n\nvar str = new type('tag:yaml.org,2002:str', {\n kind: 'scalar',\n construct: function (data) { return data !== null ? data : ''; }\n});\n\nvar seq = new type('tag:yaml.org,2002:seq', {\n kind: 'sequence',\n construct: function (data) { return data !== null ? data : []; }\n});\n\nvar map = new type('tag:yaml.org,2002:map', {\n kind: 'mapping',\n construct: function (data) { return data !== null ? data : {}; }\n});\n\nvar failsafe = new schema({\n explicit: [\n str,\n seq,\n map\n ]\n});\n\nfunction resolveYamlNull(data) {\n if (data === null) return true;\n\n var max = data.length;\n\n return (max === 1 && data === '~') ||\n (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL'));\n}\n\nfunction constructYamlNull() {\n return null;\n}\n\nfunction isNull(object) {\n return object === null;\n}\n\nvar _null = new type('tag:yaml.org,2002:null', {\n kind: 'scalar',\n resolve: resolveYamlNull,\n construct: constructYamlNull,\n predicate: isNull,\n represent: {\n canonical: function () { return '~'; },\n lowercase: function () { return 'null'; },\n uppercase: function () { return 'NULL'; },\n camelcase: function () { return 'Null'; },\n empty: function () { return ''; }\n },\n defaultStyle: 'lowercase'\n});\n\nfunction resolveYamlBoolean(data) {\n if (data === null) return false;\n\n var max = data.length;\n\n return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) ||\n (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE'));\n}\n\nfunction constructYamlBoolean(data) {\n return data === 'true' ||\n data === 'True' ||\n data === 'TRUE';\n}\n\nfunction isBoolean(object) {\n return Object.prototype.toString.call(object) === '[object Boolean]';\n}\n\nvar bool = new type('tag:yaml.org,2002:bool', {\n kind: 'scalar',\n resolve: resolveYamlBoolean,\n construct: constructYamlBoolean,\n predicate: isBoolean,\n represent: {\n lowercase: function (object) { return object ? 'true' : 'false'; },\n uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; },\n camelcase: function (object) { return object ? 'True' : 'False'; }\n },\n defaultStyle: 'lowercase'\n});\n\nfunction isHexCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) ||\n ((0x41/* A */ <= c) && (c <= 0x46/* F */)) ||\n ((0x61/* a */ <= c) && (c <= 0x66/* f */));\n}\n\nfunction isOctCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */));\n}\n\nfunction isDecCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */));\n}\n\nfunction resolveYamlInteger(data) {\n if (data === null) return false;\n\n var max = data.length,\n index = 0,\n hasDigits = false,\n ch;\n\n if (!max) return false;\n\n ch = data[index];\n\n // sign\n if (ch === '-' || ch === '+') {\n ch = data[++index];\n }\n\n if (ch === '0') {\n // 0\n if (index + 1 === max) return true;\n ch = data[++index];\n\n // base 2, base 8, base 16\n\n if (ch === 'b') {\n // base 2\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (ch !== '0' && ch !== '1') return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'x') {\n // base 16\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isHexCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'o') {\n // base 8\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isOctCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n }\n\n // base 10 (except 0)\n\n // value should not start with `_`;\n if (ch === '_') return false;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isDecCode(data.charCodeAt(index))) {\n return false;\n }\n hasDigits = true;\n }\n\n // Should have digits and should not end with `_`\n if (!hasDigits || ch === '_') return false;\n\n return true;\n}\n\nfunction constructYamlInteger(data) {\n var value = data, sign = 1, ch;\n\n if (value.indexOf('_') !== -1) {\n value = value.replace(/_/g, '');\n }\n\n ch = value[0];\n\n if (ch === '-' || ch === '+') {\n if (ch === '-') sign = -1;\n value = value.slice(1);\n ch = value[0];\n }\n\n if (value === '0') return 0;\n\n if (ch === '0') {\n if (value[1] === 'b') return sign * parseInt(value.slice(2), 2);\n if (value[1] === 'x') return sign * parseInt(value.slice(2), 16);\n if (value[1] === 'o') return sign * parseInt(value.slice(2), 8);\n }\n\n return sign * parseInt(value, 10);\n}\n\nfunction isInteger(object) {\n return (Object.prototype.toString.call(object)) === '[object Number]' &&\n (object % 1 === 0 && !common.isNegativeZero(object));\n}\n\nvar int = new type('tag:yaml.org,2002:int', {\n kind: 'scalar',\n resolve: resolveYamlInteger,\n construct: constructYamlInteger,\n predicate: isInteger,\n represent: {\n binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); },\n octal: function (obj) { return obj >= 0 ? '0o' + obj.toString(8) : '-0o' + obj.toString(8).slice(1); },\n decimal: function (obj) { return obj.toString(10); },\n /* eslint-disable max-len */\n hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); }\n },\n defaultStyle: 'decimal',\n styleAliases: {\n binary: [ 2, 'bin' ],\n octal: [ 8, 'oct' ],\n decimal: [ 10, 'dec' ],\n hexadecimal: [ 16, 'hex' ]\n }\n});\n\nvar YAML_FLOAT_PATTERN = new RegExp(\n // 2.5e4, 2.5 and integers\n '^(?:[-+]?(?:[0-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' +\n // .2e4, .2\n // special case, seems not from spec\n '|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' +\n // .inf\n '|[-+]?\\\\.(?:inf|Inf|INF)' +\n // .nan\n '|\\\\.(?:nan|NaN|NAN))$');\n\nfunction resolveYamlFloat(data) {\n if (data === null) return false;\n\n if (!YAML_FLOAT_PATTERN.test(data) ||\n // Quick hack to not allow integers end with `_`\n // Probably should update regexp & check speed\n data[data.length - 1] === '_') {\n return false;\n }\n\n return true;\n}\n\nfunction constructYamlFloat(data) {\n var value, sign;\n\n value = data.replace(/_/g, '').toLowerCase();\n sign = value[0] === '-' ? -1 : 1;\n\n if ('+-'.indexOf(value[0]) >= 0) {\n value = value.slice(1);\n }\n\n if (value === '.inf') {\n return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n\n } else if (value === '.nan') {\n return NaN;\n }\n return sign * parseFloat(value, 10);\n}\n\n\nvar SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;\n\nfunction representYamlFloat(object, style) {\n var res;\n\n if (isNaN(object)) {\n switch (style) {\n case 'lowercase': return '.nan';\n case 'uppercase': return '.NAN';\n case 'camelcase': return '.NaN';\n }\n } else if (Number.POSITIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '.inf';\n case 'uppercase': return '.INF';\n case 'camelcase': return '.Inf';\n }\n } else if (Number.NEGATIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '-.inf';\n case 'uppercase': return '-.INF';\n case 'camelcase': return '-.Inf';\n }\n } else if (common.isNegativeZero(object)) {\n return '-0.0';\n }\n\n res = object.toString(10);\n\n // JS stringifier can build scientific format without dots: 5e-100,\n // while YAML requres dot: 5.e-100. Fix it with simple hack\n\n return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res;\n}\n\nfunction isFloat(object) {\n return (Object.prototype.toString.call(object) === '[object Number]') &&\n (object % 1 !== 0 || common.isNegativeZero(object));\n}\n\nvar float = new type('tag:yaml.org,2002:float', {\n kind: 'scalar',\n resolve: resolveYamlFloat,\n construct: constructYamlFloat,\n predicate: isFloat,\n represent: representYamlFloat,\n defaultStyle: 'lowercase'\n});\n\nvar json = failsafe.extend({\n implicit: [\n _null,\n bool,\n int,\n float\n ]\n});\n\nvar core = json;\n\nvar YAML_DATE_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9])' + // [2] month\n '-([0-9][0-9])$'); // [3] day\n\nvar YAML_TIMESTAMP_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9]?)' + // [2] month\n '-([0-9][0-9]?)' + // [3] day\n '(?:[Tt]|[ \\\\t]+)' + // ...\n '([0-9][0-9]?)' + // [4] hour\n ':([0-9][0-9])' + // [5] minute\n ':([0-9][0-9])' + // [6] second\n '(?:\\\\.([0-9]*))?' + // [7] fraction\n '(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour\n '(?::([0-9][0-9]))?))?$'); // [11] tz_minute\n\nfunction resolveYamlTimestamp(data) {\n if (data === null) return false;\n if (YAML_DATE_REGEXP.exec(data) !== null) return true;\n if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true;\n return false;\n}\n\nfunction constructYamlTimestamp(data) {\n var match, year, month, day, hour, minute, second, fraction = 0,\n delta = null, tz_hour, tz_minute, date;\n\n match = YAML_DATE_REGEXP.exec(data);\n if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data);\n\n if (match === null) throw new Error('Date resolve error');\n\n // match: [1] year [2] month [3] day\n\n year = +(match[1]);\n month = +(match[2]) - 1; // JS month starts with 0\n day = +(match[3]);\n\n if (!match[4]) { // no hour\n return new Date(Date.UTC(year, month, day));\n }\n\n // match: [4] hour [5] minute [6] second [7] fraction\n\n hour = +(match[4]);\n minute = +(match[5]);\n second = +(match[6]);\n\n if (match[7]) {\n fraction = match[7].slice(0, 3);\n while (fraction.length < 3) { // milli-seconds\n fraction += '0';\n }\n fraction = +fraction;\n }\n\n // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute\n\n if (match[9]) {\n tz_hour = +(match[10]);\n tz_minute = +(match[11] || 0);\n delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds\n if (match[9] === '-') delta = -delta;\n }\n\n date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));\n\n if (delta) date.setTime(date.getTime() - delta);\n\n return date;\n}\n\nfunction representYamlTimestamp(object /*, style*/) {\n return object.toISOString();\n}\n\nvar timestamp = new type('tag:yaml.org,2002:timestamp', {\n kind: 'scalar',\n resolve: resolveYamlTimestamp,\n construct: constructYamlTimestamp,\n instanceOf: Date,\n represent: representYamlTimestamp\n});\n\nfunction resolveYamlMerge(data) {\n return data === '<<' || data === null;\n}\n\nvar merge = new type('tag:yaml.org,2002:merge', {\n kind: 'scalar',\n resolve: resolveYamlMerge\n});\n\n/*eslint-disable no-bitwise*/\n\n\n\n\n\n// [ 64, 65, 66 ] -> [ padding, CR, LF ]\nvar BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r';\n\n\nfunction resolveYamlBinary(data) {\n if (data === null) return false;\n\n var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP;\n\n // Convert one by one.\n for (idx = 0; idx < max; idx++) {\n code = map.indexOf(data.charAt(idx));\n\n // Skip CR/LF\n if (code > 64) continue;\n\n // Fail on illegal characters\n if (code < 0) return false;\n\n bitlen += 6;\n }\n\n // If there are any bits left, source was corrupted\n return (bitlen % 8) === 0;\n}\n\nfunction constructYamlBinary(data) {\n var idx, tailbits,\n input = data.replace(/[\\r\\n=]/g, ''), // remove CR/LF & padding to simplify scan\n max = input.length,\n map = BASE64_MAP,\n bits = 0,\n result = [];\n\n // Collect by 6*4 bits (3 bytes)\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 4 === 0) && idx) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n }\n\n bits = (bits << 6) | map.indexOf(input.charAt(idx));\n }\n\n // Dump tail\n\n tailbits = (max % 4) * 6;\n\n if (tailbits === 0) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n } else if (tailbits === 18) {\n result.push((bits >> 10) & 0xFF);\n result.push((bits >> 2) & 0xFF);\n } else if (tailbits === 12) {\n result.push((bits >> 4) & 0xFF);\n }\n\n return new Uint8Array(result);\n}\n\nfunction representYamlBinary(object /*, style*/) {\n var result = '', bits = 0, idx, tail,\n max = object.length,\n map = BASE64_MAP;\n\n // Convert every three bytes to 4 ASCII characters.\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 3 === 0) && idx) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n }\n\n bits = (bits << 8) + object[idx];\n }\n\n // Dump tail\n\n tail = max % 3;\n\n if (tail === 0) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n } else if (tail === 2) {\n result += map[(bits >> 10) & 0x3F];\n result += map[(bits >> 4) & 0x3F];\n result += map[(bits << 2) & 0x3F];\n result += map[64];\n } else if (tail === 1) {\n result += map[(bits >> 2) & 0x3F];\n result += map[(bits << 4) & 0x3F];\n result += map[64];\n result += map[64];\n }\n\n return result;\n}\n\nfunction isBinary(obj) {\n return Object.prototype.toString.call(obj) === '[object Uint8Array]';\n}\n\nvar binary = new type('tag:yaml.org,2002:binary', {\n kind: 'scalar',\n resolve: resolveYamlBinary,\n construct: constructYamlBinary,\n predicate: isBinary,\n represent: representYamlBinary\n});\n\nvar _hasOwnProperty$3 = Object.prototype.hasOwnProperty;\nvar _toString$2 = Object.prototype.toString;\n\nfunction resolveYamlOmap(data) {\n if (data === null) return true;\n\n var objectKeys = [], index, length, pair, pairKey, pairHasKey,\n object = data;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n pairHasKey = false;\n\n if (_toString$2.call(pair) !== '[object Object]') return false;\n\n for (pairKey in pair) {\n if (_hasOwnProperty$3.call(pair, pairKey)) {\n if (!pairHasKey) pairHasKey = true;\n else return false;\n }\n }\n\n if (!pairHasKey) return false;\n\n if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey);\n else return false;\n }\n\n return true;\n}\n\nfunction constructYamlOmap(data) {\n return data !== null ? data : [];\n}\n\nvar omap = new type('tag:yaml.org,2002:omap', {\n kind: 'sequence',\n resolve: resolveYamlOmap,\n construct: constructYamlOmap\n});\n\nvar _toString$1 = Object.prototype.toString;\n\nfunction resolveYamlPairs(data) {\n if (data === null) return true;\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n if (_toString$1.call(pair) !== '[object Object]') return false;\n\n keys = Object.keys(pair);\n\n if (keys.length !== 1) return false;\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return true;\n}\n\nfunction constructYamlPairs(data) {\n if (data === null) return [];\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n keys = Object.keys(pair);\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return result;\n}\n\nvar pairs = new type('tag:yaml.org,2002:pairs', {\n kind: 'sequence',\n resolve: resolveYamlPairs,\n construct: constructYamlPairs\n});\n\nvar _hasOwnProperty$2 = Object.prototype.hasOwnProperty;\n\nfunction resolveYamlSet(data) {\n if (data === null) return true;\n\n var key, object = data;\n\n for (key in object) {\n if (_hasOwnProperty$2.call(object, key)) {\n if (object[key] !== null) return false;\n }\n }\n\n return true;\n}\n\nfunction constructYamlSet(data) {\n return data !== null ? data : {};\n}\n\nvar set = new type('tag:yaml.org,2002:set', {\n kind: 'mapping',\n resolve: resolveYamlSet,\n construct: constructYamlSet\n});\n\nvar _default = core.extend({\n implicit: [\n timestamp,\n merge\n ],\n explicit: [\n binary,\n omap,\n pairs,\n set\n ]\n});\n\n/*eslint-disable max-len,no-use-before-define*/\n\n\n\n\n\n\n\nvar _hasOwnProperty$1 = Object.prototype.hasOwnProperty;\n\n\nvar CONTEXT_FLOW_IN = 1;\nvar CONTEXT_FLOW_OUT = 2;\nvar CONTEXT_BLOCK_IN = 3;\nvar CONTEXT_BLOCK_OUT = 4;\n\n\nvar CHOMPING_CLIP = 1;\nvar CHOMPING_STRIP = 2;\nvar CHOMPING_KEEP = 3;\n\n\nvar PATTERN_NON_PRINTABLE = /[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\nvar PATTERN_NON_ASCII_LINE_BREAKS = /[\\x85\\u2028\\u2029]/;\nvar PATTERN_FLOW_INDICATORS = /[,\\[\\]\\{\\}]/;\nvar PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\\-]+!)$/i;\nvar PATTERN_TAG_URI = /^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;\n\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\n\nfunction is_EOL(c) {\n return (c === 0x0A/* LF */) || (c === 0x0D/* CR */);\n}\n\nfunction is_WHITE_SPACE(c) {\n return (c === 0x09/* Tab */) || (c === 0x20/* Space */);\n}\n\nfunction is_WS_OR_EOL(c) {\n return (c === 0x09/* Tab */) ||\n (c === 0x20/* Space */) ||\n (c === 0x0A/* LF */) ||\n (c === 0x0D/* CR */);\n}\n\nfunction is_FLOW_INDICATOR(c) {\n return c === 0x2C/* , */ ||\n c === 0x5B/* [ */ ||\n c === 0x5D/* ] */ ||\n c === 0x7B/* { */ ||\n c === 0x7D/* } */;\n}\n\nfunction fromHexCode(c) {\n var lc;\n\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n /*eslint-disable no-bitwise*/\n lc = c | 0x20;\n\n if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) {\n return lc - 0x61 + 10;\n }\n\n return -1;\n}\n\nfunction escapedHexLen(c) {\n if (c === 0x78/* x */) { return 2; }\n if (c === 0x75/* u */) { return 4; }\n if (c === 0x55/* U */) { return 8; }\n return 0;\n}\n\nfunction fromDecimalCode(c) {\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n return -1;\n}\n\nfunction simpleEscapeSequence(c) {\n /* eslint-disable indent */\n return (c === 0x30/* 0 */) ? '\\x00' :\n (c === 0x61/* a */) ? '\\x07' :\n (c === 0x62/* b */) ? '\\x08' :\n (c === 0x74/* t */) ? '\\x09' :\n (c === 0x09/* Tab */) ? '\\x09' :\n (c === 0x6E/* n */) ? '\\x0A' :\n (c === 0x76/* v */) ? '\\x0B' :\n (c === 0x66/* f */) ? '\\x0C' :\n (c === 0x72/* r */) ? '\\x0D' :\n (c === 0x65/* e */) ? '\\x1B' :\n (c === 0x20/* Space */) ? ' ' :\n (c === 0x22/* \" */) ? '\\x22' :\n (c === 0x2F/* / */) ? '/' :\n (c === 0x5C/* \\ */) ? '\\x5C' :\n (c === 0x4E/* N */) ? '\\x85' :\n (c === 0x5F/* _ */) ? '\\xA0' :\n (c === 0x4C/* L */) ? '\\u2028' :\n (c === 0x50/* P */) ? '\\u2029' : '';\n}\n\nfunction charFromCodepoint(c) {\n if (c <= 0xFFFF) {\n return String.fromCharCode(c);\n }\n // Encode UTF-16 surrogate pair\n // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF\n return String.fromCharCode(\n ((c - 0x010000) >> 10) + 0xD800,\n ((c - 0x010000) & 0x03FF) + 0xDC00\n );\n}\n\nvar simpleEscapeCheck = new Array(256); // integer, for fast access\nvar simpleEscapeMap = new Array(256);\nfor (var i = 0; i < 256; i++) {\n simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;\n simpleEscapeMap[i] = simpleEscapeSequence(i);\n}\n\n\nfunction State$1(input, options) {\n this.input = input;\n\n this.filename = options['filename'] || null;\n this.schema = options['schema'] || _default;\n this.onWarning = options['onWarning'] || null;\n // (Hidden) Remove? makes the loader to expect YAML 1.1 documents\n // if such documents have no explicit %YAML directive\n this.legacy = options['legacy'] || false;\n\n this.json = options['json'] || false;\n this.listener = options['listener'] || null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.typeMap = this.schema.compiledTypeMap;\n\n this.length = input.length;\n this.position = 0;\n this.line = 0;\n this.lineStart = 0;\n this.lineIndent = 0;\n\n // position of first leading tab in the current line,\n // used to make sure there are no tabs in the indentation\n this.firstTabInLine = -1;\n\n this.documents = [];\n\n /*\n this.version;\n this.checkLineBreaks;\n this.tagMap;\n this.anchorMap;\n this.tag;\n this.anchor;\n this.kind;\n this.result;*/\n\n}\n\n\nfunction generateError(state, message) {\n var mark = {\n name: state.filename,\n buffer: state.input.slice(0, -1), // omit trailing \\0\n position: state.position,\n line: state.line,\n column: state.position - state.lineStart\n };\n\n mark.snippet = snippet(mark);\n\n return new exception(message, mark);\n}\n\nfunction throwError(state, message) {\n throw generateError(state, message);\n}\n\nfunction throwWarning(state, message) {\n if (state.onWarning) {\n state.onWarning.call(null, generateError(state, message));\n }\n}\n\n\nvar directiveHandlers = {\n\n YAML: function handleYamlDirective(state, name, args) {\n\n var match, major, minor;\n\n if (state.version !== null) {\n throwError(state, 'duplication of %YAML directive');\n }\n\n if (args.length !== 1) {\n throwError(state, 'YAML directive accepts exactly one argument');\n }\n\n match = /^([0-9]+)\\.([0-9]+)$/.exec(args[0]);\n\n if (match === null) {\n throwError(state, 'ill-formed argument of the YAML directive');\n }\n\n major = parseInt(match[1], 10);\n minor = parseInt(match[2], 10);\n\n if (major !== 1) {\n throwError(state, 'unacceptable YAML version of the document');\n }\n\n state.version = args[0];\n state.checkLineBreaks = (minor < 2);\n\n if (minor !== 1 && minor !== 2) {\n throwWarning(state, 'unsupported YAML version of the document');\n }\n },\n\n TAG: function handleTagDirective(state, name, args) {\n\n var handle, prefix;\n\n if (args.length !== 2) {\n throwError(state, 'TAG directive accepts exactly two arguments');\n }\n\n handle = args[0];\n prefix = args[1];\n\n if (!PATTERN_TAG_HANDLE.test(handle)) {\n throwError(state, 'ill-formed tag handle (first argument) of the TAG directive');\n }\n\n if (_hasOwnProperty$1.call(state.tagMap, handle)) {\n throwError(state, 'there is a previously declared suffix for \"' + handle + '\" tag handle');\n }\n\n if (!PATTERN_TAG_URI.test(prefix)) {\n throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive');\n }\n\n try {\n prefix = decodeURIComponent(prefix);\n } catch (err) {\n throwError(state, 'tag prefix is malformed: ' + prefix);\n }\n\n state.tagMap[handle] = prefix;\n }\n};\n\n\nfunction captureSegment(state, start, end, checkJson) {\n var _position, _length, _character, _result;\n\n if (start < end) {\n _result = state.input.slice(start, end);\n\n if (checkJson) {\n for (_position = 0, _length = _result.length; _position < _length; _position += 1) {\n _character = _result.charCodeAt(_position);\n if (!(_character === 0x09 ||\n (0x20 <= _character && _character <= 0x10FFFF))) {\n throwError(state, 'expected valid JSON character');\n }\n }\n } else if (PATTERN_NON_PRINTABLE.test(_result)) {\n throwError(state, 'the stream contains non-printable characters');\n }\n\n state.result += _result;\n }\n}\n\nfunction mergeMappings(state, destination, source, overridableKeys) {\n var sourceKeys, key, index, quantity;\n\n if (!common.isObject(source)) {\n throwError(state, 'cannot merge mappings; the provided source object is unacceptable');\n }\n\n sourceKeys = Object.keys(source);\n\n for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {\n key = sourceKeys[index];\n\n if (!_hasOwnProperty$1.call(destination, key)) {\n destination[key] = source[key];\n overridableKeys[key] = true;\n }\n }\n}\n\nfunction storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode,\n startLine, startLineStart, startPos) {\n\n var index, quantity;\n\n // The output is a plain object here, so keys can only be strings.\n // We need to convert keyNode to a string, but doing so can hang the process\n // (deeply nested arrays that explode exponentially using aliases).\n if (Array.isArray(keyNode)) {\n keyNode = Array.prototype.slice.call(keyNode);\n\n for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {\n if (Array.isArray(keyNode[index])) {\n throwError(state, 'nested arrays are not supported inside keys');\n }\n\n if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') {\n keyNode[index] = '[object Object]';\n }\n }\n }\n\n // Avoid code execution in load() via toString property\n // (still use its own toString for arrays, timestamps,\n // and whatever user schema extensions happen to have @@toStringTag)\n if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') {\n keyNode = '[object Object]';\n }\n\n\n keyNode = String(keyNode);\n\n if (_result === null) {\n _result = {};\n }\n\n if (keyTag === 'tag:yaml.org,2002:merge') {\n if (Array.isArray(valueNode)) {\n for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {\n mergeMappings(state, _result, valueNode[index], overridableKeys);\n }\n } else {\n mergeMappings(state, _result, valueNode, overridableKeys);\n }\n } else {\n if (!state.json &&\n !_hasOwnProperty$1.call(overridableKeys, keyNode) &&\n _hasOwnProperty$1.call(_result, keyNode)) {\n state.line = startLine || state.line;\n state.lineStart = startLineStart || state.lineStart;\n state.position = startPos || state.position;\n throwError(state, 'duplicated mapping key');\n }\n\n // used for this specific key only because Object.defineProperty is slow\n if (keyNode === '__proto__') {\n Object.defineProperty(_result, keyNode, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: valueNode\n });\n } else {\n _result[keyNode] = valueNode;\n }\n delete overridableKeys[keyNode];\n }\n\n return _result;\n}\n\nfunction readLineBreak(state) {\n var ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x0A/* LF */) {\n state.position++;\n } else if (ch === 0x0D/* CR */) {\n state.position++;\n if (state.input.charCodeAt(state.position) === 0x0A/* LF */) {\n state.position++;\n }\n } else {\n throwError(state, 'a line break is expected');\n }\n\n state.line += 1;\n state.lineStart = state.position;\n state.firstTabInLine = -1;\n}\n\nfunction skipSeparationSpace(state, allowComments, checkIndent) {\n var lineBreaks = 0,\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n if (ch === 0x09/* Tab */ && state.firstTabInLine === -1) {\n state.firstTabInLine = state.position;\n }\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (allowComments && ch === 0x23/* # */) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0);\n }\n\n if (is_EOL(ch)) {\n readLineBreak(state);\n\n ch = state.input.charCodeAt(state.position);\n lineBreaks++;\n state.lineIndent = 0;\n\n while (ch === 0x20/* Space */) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n } else {\n break;\n }\n }\n\n if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {\n throwWarning(state, 'deficient indentation');\n }\n\n return lineBreaks;\n}\n\nfunction testDocumentSeparator(state) {\n var _position = state.position,\n ch;\n\n ch = state.input.charCodeAt(_position);\n\n // Condition state.position === state.lineStart is tested\n // in parent on each call, for efficiency. No needs to test here again.\n if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) &&\n ch === state.input.charCodeAt(_position + 1) &&\n ch === state.input.charCodeAt(_position + 2)) {\n\n _position += 3;\n\n ch = state.input.charCodeAt(_position);\n\n if (ch === 0 || is_WS_OR_EOL(ch)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction writeFoldedLines(state, count) {\n if (count === 1) {\n state.result += ' ';\n } else if (count > 1) {\n state.result += common.repeat('\\n', count - 1);\n }\n}\n\n\nfunction readPlainScalar(state, nodeIndent, withinFlowCollection) {\n var preceding,\n following,\n captureStart,\n captureEnd,\n hasPendingContent,\n _line,\n _lineStart,\n _lineIndent,\n _kind = state.kind,\n _result = state.result,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (is_WS_OR_EOL(ch) ||\n is_FLOW_INDICATOR(ch) ||\n ch === 0x23/* # */ ||\n ch === 0x26/* & */ ||\n ch === 0x2A/* * */ ||\n ch === 0x21/* ! */ ||\n ch === 0x7C/* | */ ||\n ch === 0x3E/* > */ ||\n ch === 0x27/* ' */ ||\n ch === 0x22/* \" */ ||\n ch === 0x25/* % */ ||\n ch === 0x40/* @ */ ||\n ch === 0x60/* ` */) {\n return false;\n }\n\n if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n return false;\n }\n }\n\n state.kind = 'scalar';\n state.result = '';\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n\n while (ch !== 0) {\n if (ch === 0x3A/* : */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n break;\n }\n\n } else if (ch === 0x23/* # */) {\n preceding = state.input.charCodeAt(state.position - 1);\n\n if (is_WS_OR_EOL(preceding)) {\n break;\n }\n\n } else if ((state.position === state.lineStart && testDocumentSeparator(state)) ||\n withinFlowCollection && is_FLOW_INDICATOR(ch)) {\n break;\n\n } else if (is_EOL(ch)) {\n _line = state.line;\n _lineStart = state.lineStart;\n _lineIndent = state.lineIndent;\n skipSeparationSpace(state, false, -1);\n\n if (state.lineIndent >= nodeIndent) {\n hasPendingContent = true;\n ch = state.input.charCodeAt(state.position);\n continue;\n } else {\n state.position = captureEnd;\n state.line = _line;\n state.lineStart = _lineStart;\n state.lineIndent = _lineIndent;\n break;\n }\n }\n\n if (hasPendingContent) {\n captureSegment(state, captureStart, captureEnd, false);\n writeFoldedLines(state, state.line - _line);\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n }\n\n if (!is_WHITE_SPACE(ch)) {\n captureEnd = state.position + 1;\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, captureEnd, false);\n\n if (state.result) {\n return true;\n }\n\n state.kind = _kind;\n state.result = _result;\n return false;\n}\n\nfunction readSingleQuotedScalar(state, nodeIndent) {\n var ch,\n captureStart, captureEnd;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x27/* ' */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x27/* ' */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x27/* ' */) {\n captureStart = state.position;\n state.position++;\n captureEnd = state.position;\n } else {\n return true;\n }\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a single quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a single quoted scalar');\n}\n\nfunction readDoubleQuotedScalar(state, nodeIndent) {\n var captureStart,\n captureEnd,\n hexLength,\n hexResult,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x22/* \" */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x22/* \" */) {\n captureSegment(state, captureStart, state.position, true);\n state.position++;\n return true;\n\n } else if (ch === 0x5C/* \\ */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (is_EOL(ch)) {\n skipSeparationSpace(state, false, nodeIndent);\n\n // TODO: rework to inline fn with no type cast?\n } else if (ch < 256 && simpleEscapeCheck[ch]) {\n state.result += simpleEscapeMap[ch];\n state.position++;\n\n } else if ((tmp = escapedHexLen(ch)) > 0) {\n hexLength = tmp;\n hexResult = 0;\n\n for (; hexLength > 0; hexLength--) {\n ch = state.input.charCodeAt(++state.position);\n\n if ((tmp = fromHexCode(ch)) >= 0) {\n hexResult = (hexResult << 4) + tmp;\n\n } else {\n throwError(state, 'expected hexadecimal character');\n }\n }\n\n state.result += charFromCodepoint(hexResult);\n\n state.position++;\n\n } else {\n throwError(state, 'unknown escape sequence');\n }\n\n captureStart = captureEnd = state.position;\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a double quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a double quoted scalar');\n}\n\nfunction readFlowCollection(state, nodeIndent) {\n var readNext = true,\n _line,\n _lineStart,\n _pos,\n _tag = state.tag,\n _result,\n _anchor = state.anchor,\n following,\n terminator,\n isPair,\n isExplicitPair,\n isMapping,\n overridableKeys = Object.create(null),\n keyNode,\n keyTag,\n valueNode,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x5B/* [ */) {\n terminator = 0x5D;/* ] */\n isMapping = false;\n _result = [];\n } else if (ch === 0x7B/* { */) {\n terminator = 0x7D;/* } */\n isMapping = true;\n _result = {};\n } else {\n return false;\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n while (ch !== 0) {\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === terminator) {\n state.position++;\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = isMapping ? 'mapping' : 'sequence';\n state.result = _result;\n return true;\n } else if (!readNext) {\n throwError(state, 'missed comma between flow collection entries');\n } else if (ch === 0x2C/* , */) {\n // \"flow collection entries can never be completely empty\", as per YAML 1.2, section 7.4\n throwError(state, \"expected the node content, but found ','\");\n }\n\n keyTag = keyNode = valueNode = null;\n isPair = isExplicitPair = false;\n\n if (ch === 0x3F/* ? */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following)) {\n isPair = isExplicitPair = true;\n state.position++;\n skipSeparationSpace(state, true, nodeIndent);\n }\n }\n\n _line = state.line; // Save the current line.\n _lineStart = state.lineStart;\n _pos = state.position;\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n keyTag = state.tag;\n keyNode = state.result;\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) {\n isPair = true;\n ch = state.input.charCodeAt(++state.position);\n skipSeparationSpace(state, true, nodeIndent);\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n valueNode = state.result;\n }\n\n if (isMapping) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos);\n } else if (isPair) {\n _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos));\n } else {\n _result.push(keyNode);\n }\n\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x2C/* , */) {\n readNext = true;\n ch = state.input.charCodeAt(++state.position);\n } else {\n readNext = false;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a flow collection');\n}\n\nfunction readBlockScalar(state, nodeIndent) {\n var captureStart,\n folding,\n chomping = CHOMPING_CLIP,\n didReadContent = false,\n detectedIndent = false,\n textIndent = nodeIndent,\n emptyLines = 0,\n atMoreIndented = false,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x7C/* | */) {\n folding = false;\n } else if (ch === 0x3E/* > */) {\n folding = true;\n } else {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n\n while (ch !== 0) {\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x2B/* + */ || ch === 0x2D/* - */) {\n if (CHOMPING_CLIP === chomping) {\n chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP;\n } else {\n throwError(state, 'repeat of a chomping mode identifier');\n }\n\n } else if ((tmp = fromDecimalCode(ch)) >= 0) {\n if (tmp === 0) {\n throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one');\n } else if (!detectedIndent) {\n textIndent = nodeIndent + tmp - 1;\n detectedIndent = true;\n } else {\n throwError(state, 'repeat of an indentation width identifier');\n }\n\n } else {\n break;\n }\n }\n\n if (is_WHITE_SPACE(ch)) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (is_WHITE_SPACE(ch));\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (!is_EOL(ch) && (ch !== 0));\n }\n }\n\n while (ch !== 0) {\n readLineBreak(state);\n state.lineIndent = 0;\n\n ch = state.input.charCodeAt(state.position);\n\n while ((!detectedIndent || state.lineIndent < textIndent) &&\n (ch === 0x20/* Space */)) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (!detectedIndent && state.lineIndent > textIndent) {\n textIndent = state.lineIndent;\n }\n\n if (is_EOL(ch)) {\n emptyLines++;\n continue;\n }\n\n // End of the scalar.\n if (state.lineIndent < textIndent) {\n\n // Perform the chomping.\n if (chomping === CHOMPING_KEEP) {\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n } else if (chomping === CHOMPING_CLIP) {\n if (didReadContent) { // i.e. only if the scalar is not empty.\n state.result += '\\n';\n }\n }\n\n // Break this `while` cycle and go to the funciton's epilogue.\n break;\n }\n\n // Folded style: use fancy rules to handle line breaks.\n if (folding) {\n\n // Lines starting with white space characters (more-indented lines) are not folded.\n if (is_WHITE_SPACE(ch)) {\n atMoreIndented = true;\n // except for the first content line (cf. Example 8.1)\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n\n // End of more-indented block.\n } else if (atMoreIndented) {\n atMoreIndented = false;\n state.result += common.repeat('\\n', emptyLines + 1);\n\n // Just one line break - perceive as the same line.\n } else if (emptyLines === 0) {\n if (didReadContent) { // i.e. only if we have already read some scalar content.\n state.result += ' ';\n }\n\n // Several line breaks - perceive as different lines.\n } else {\n state.result += common.repeat('\\n', emptyLines);\n }\n\n // Literal style: just add exact number of line breaks between content lines.\n } else {\n // Keep all line breaks except the header line break.\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n }\n\n didReadContent = true;\n detectedIndent = true;\n emptyLines = 0;\n captureStart = state.position;\n\n while (!is_EOL(ch) && (ch !== 0)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, state.position, false);\n }\n\n return true;\n}\n\nfunction readBlockSequence(state, nodeIndent) {\n var _line,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = [],\n following,\n detected = false,\n ch;\n\n // there is a leading tab before this token, so it can't be a block sequence/mapping;\n // it can still be flow sequence/mapping or a scalar\n if (state.firstTabInLine !== -1) return false;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n if (state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, 'tab characters must not be used in indentation');\n }\n\n if (ch !== 0x2D/* - */) {\n break;\n }\n\n following = state.input.charCodeAt(state.position + 1);\n\n if (!is_WS_OR_EOL(following)) {\n break;\n }\n\n detected = true;\n state.position++;\n\n if (skipSeparationSpace(state, true, -1)) {\n if (state.lineIndent <= nodeIndent) {\n _result.push(null);\n ch = state.input.charCodeAt(state.position);\n continue;\n }\n }\n\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);\n _result.push(state.result);\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a sequence entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'sequence';\n state.result = _result;\n return true;\n }\n return false;\n}\n\nfunction readBlockMapping(state, nodeIndent, flowIndent) {\n var following,\n allowCompact,\n _line,\n _keyLine,\n _keyLineStart,\n _keyPos,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = {},\n overridableKeys = Object.create(null),\n keyTag = null,\n keyNode = null,\n valueNode = null,\n atExplicitKey = false,\n detected = false,\n ch;\n\n // there is a leading tab before this token, so it can't be a block sequence/mapping;\n // it can still be flow sequence/mapping or a scalar\n if (state.firstTabInLine !== -1) return false;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n if (!atExplicitKey && state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, 'tab characters must not be used in indentation');\n }\n\n following = state.input.charCodeAt(state.position + 1);\n _line = state.line; // Save the current line.\n\n //\n // Explicit notation case. There are two separate blocks:\n // first for the key (denoted by \"?\") and second for the value (denoted by \":\")\n //\n if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) {\n\n if (ch === 0x3F/* ? */) {\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = true;\n allowCompact = true;\n\n } else if (atExplicitKey) {\n // i.e. 0x3A/* : */ === character after the explicit key.\n atExplicitKey = false;\n allowCompact = true;\n\n } else {\n throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line');\n }\n\n state.position += 1;\n ch = following;\n\n //\n // Implicit notation case. Flow-style node as the key first, then \":\", and the value.\n //\n } else {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n\n if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {\n // Neither implicit nor explicit notation.\n // Reading is done. Go to the epilogue.\n break;\n }\n\n if (state.line === _line) {\n ch = state.input.charCodeAt(state.position);\n\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x3A/* : */) {\n ch = state.input.charCodeAt(++state.position);\n\n if (!is_WS_OR_EOL(ch)) {\n throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping');\n }\n\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = false;\n allowCompact = false;\n keyTag = state.tag;\n keyNode = state.result;\n\n } else if (detected) {\n throwError(state, 'can not read an implicit mapping pair; a colon is missed');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n\n } else if (detected) {\n throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n }\n\n //\n // Common reading code for both explicit and implicit notations.\n //\n if (state.line === _line || state.lineIndent > nodeIndent) {\n if (atExplicitKey) {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n }\n\n if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {\n if (atExplicitKey) {\n keyNode = state.result;\n } else {\n valueNode = state.result;\n }\n }\n\n if (!atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n }\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a mapping entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n //\n // Epilogue.\n //\n\n // Special case: last mapping's node contains only the key in explicit notation.\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n }\n\n // Expose the resulting mapping.\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'mapping';\n state.result = _result;\n }\n\n return detected;\n}\n\nfunction readTagProperty(state) {\n var _position,\n isVerbatim = false,\n isNamed = false,\n tagHandle,\n tagName,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x21/* ! */) return false;\n\n if (state.tag !== null) {\n throwError(state, 'duplication of a tag property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x3C/* < */) {\n isVerbatim = true;\n ch = state.input.charCodeAt(++state.position);\n\n } else if (ch === 0x21/* ! */) {\n isNamed = true;\n tagHandle = '!!';\n ch = state.input.charCodeAt(++state.position);\n\n } else {\n tagHandle = '!';\n }\n\n _position = state.position;\n\n if (isVerbatim) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && ch !== 0x3E/* > */);\n\n if (state.position < state.length) {\n tagName = state.input.slice(_position, state.position);\n ch = state.input.charCodeAt(++state.position);\n } else {\n throwError(state, 'unexpected end of the stream within a verbatim tag');\n }\n } else {\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n\n if (ch === 0x21/* ! */) {\n if (!isNamed) {\n tagHandle = state.input.slice(_position - 1, state.position + 1);\n\n if (!PATTERN_TAG_HANDLE.test(tagHandle)) {\n throwError(state, 'named tag handle cannot contain such characters');\n }\n\n isNamed = true;\n _position = state.position + 1;\n } else {\n throwError(state, 'tag suffix cannot contain exclamation marks');\n }\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n tagName = state.input.slice(_position, state.position);\n\n if (PATTERN_FLOW_INDICATORS.test(tagName)) {\n throwError(state, 'tag suffix cannot contain flow indicator characters');\n }\n }\n\n if (tagName && !PATTERN_TAG_URI.test(tagName)) {\n throwError(state, 'tag name cannot contain such characters: ' + tagName);\n }\n\n try {\n tagName = decodeURIComponent(tagName);\n } catch (err) {\n throwError(state, 'tag name is malformed: ' + tagName);\n }\n\n if (isVerbatim) {\n state.tag = tagName;\n\n } else if (_hasOwnProperty$1.call(state.tagMap, tagHandle)) {\n state.tag = state.tagMap[tagHandle] + tagName;\n\n } else if (tagHandle === '!') {\n state.tag = '!' + tagName;\n\n } else if (tagHandle === '!!') {\n state.tag = 'tag:yaml.org,2002:' + tagName;\n\n } else {\n throwError(state, 'undeclared tag handle \"' + tagHandle + '\"');\n }\n\n return true;\n}\n\nfunction readAnchorProperty(state) {\n var _position,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x26/* & */) return false;\n\n if (state.anchor !== null) {\n throwError(state, 'duplication of an anchor property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an anchor node must contain at least one character');\n }\n\n state.anchor = state.input.slice(_position, state.position);\n return true;\n}\n\nfunction readAlias(state) {\n var _position, alias,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x2A/* * */) return false;\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an alias node must contain at least one character');\n }\n\n alias = state.input.slice(_position, state.position);\n\n if (!_hasOwnProperty$1.call(state.anchorMap, alias)) {\n throwError(state, 'unidentified alias \"' + alias + '\"');\n }\n\n state.result = state.anchorMap[alias];\n skipSeparationSpace(state, true, -1);\n return true;\n}\n\nfunction composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {\n var allowBlockStyles,\n allowBlockScalars,\n allowBlockCollections,\n indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n }\n }\n\n if (indentStatus === 1) {\n while (readTagProperty(state) || readAnchorProperty(state)) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n allowBlockCollections = allowBlockStyles;\n\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n } else {\n allowBlockCollections = false;\n }\n }\n }\n\n if (allowBlockCollections) {\n allowBlockCollections = atNewLine || allowCompact;\n }\n\n if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {\n if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {\n flowIndent = parentIndent;\n } else {\n flowIndent = parentIndent + 1;\n }\n\n blockIndent = state.position - state.lineStart;\n\n if (indentStatus === 1) {\n if (allowBlockCollections &&\n (readBlockSequence(state, blockIndent) ||\n readBlockMapping(state, blockIndent, flowIndent)) ||\n readFlowCollection(state, flowIndent)) {\n hasContent = true;\n } else {\n if ((allowBlockScalars && readBlockScalar(state, flowIndent)) ||\n readSingleQuotedScalar(state, flowIndent) ||\n readDoubleQuotedScalar(state, flowIndent)) {\n hasContent = true;\n\n } else if (readAlias(state)) {\n hasContent = true;\n\n if (state.tag !== null || state.anchor !== null) {\n throwError(state, 'alias node should not have any properties');\n }\n\n } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {\n hasContent = true;\n\n if (state.tag === null) {\n state.tag = '?';\n }\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else if (indentStatus === 0) {\n // Special case: block sequences are allowed to have same indentation level as the parent.\n // http://www.yaml.org/spec/1.2/spec.html#id2799784\n hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);\n }\n }\n\n if (state.tag === null) {\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n\n } else if (state.tag === '?') {\n // Implicit resolving is not allowed for non-scalar types, and '?'\n // non-specific tag is only automatically assigned to plain scalars.\n //\n // We only need to check kind conformity in case user explicitly assigns '?'\n // tag, for example like this: \"!> [0]\"\n //\n if (state.result !== null && state.kind !== 'scalar') {\n throwError(state, 'unacceptable node kind for !> tag; it should be \"scalar\", not \"' + state.kind + '\"');\n }\n\n for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {\n type = state.implicitTypes[typeIndex];\n\n if (type.resolve(state.result)) { // `state.result` updated in resolver if matched\n state.result = type.construct(state.result);\n state.tag = type.tag;\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n break;\n }\n }\n } else if (state.tag !== '!') {\n if (_hasOwnProperty$1.call(state.typeMap[state.kind || 'fallback'], state.tag)) {\n type = state.typeMap[state.kind || 'fallback'][state.tag];\n } else {\n // looking for multi type\n type = null;\n typeList = state.typeMap.multi[state.kind || 'fallback'];\n\n for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) {\n if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) {\n type = typeList[typeIndex];\n break;\n }\n }\n }\n\n if (!type) {\n throwError(state, 'unknown tag !<' + state.tag + '>');\n }\n\n if (state.result !== null && type.kind !== state.kind) {\n throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be \"' + type.kind + '\", not \"' + state.kind + '\"');\n }\n\n if (!type.resolve(state.result, state.tag)) { // `state.result` updated in resolver if matched\n throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag');\n } else {\n state.result = type.construct(state.result, state.tag);\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n }\n\n if (state.listener !== null) {\n state.listener('close', state);\n }\n return state.tag !== null || state.anchor !== null || hasContent;\n}\n\nfunction readDocument(state) {\n var documentStart = state.position,\n _position,\n directiveName,\n directiveArgs,\n hasDirectives = false,\n ch;\n\n state.version = null;\n state.checkLineBreaks = state.legacy;\n state.tagMap = Object.create(null);\n state.anchorMap = Object.create(null);\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if (state.lineIndent > 0 || ch !== 0x25/* % */) {\n break;\n }\n\n hasDirectives = true;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveName = state.input.slice(_position, state.position);\n directiveArgs = [];\n\n if (directiveName.length < 1) {\n throwError(state, 'directive name must not be less than one character in length');\n }\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && !is_EOL(ch));\n break;\n }\n\n if (is_EOL(ch)) break;\n\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveArgs.push(state.input.slice(_position, state.position));\n }\n\n if (ch !== 0) readLineBreak(state);\n\n if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) {\n directiveHandlers[directiveName](state, directiveName, directiveArgs);\n } else {\n throwWarning(state, 'unknown document directive \"' + directiveName + '\"');\n }\n }\n\n skipSeparationSpace(state, true, -1);\n\n if (state.lineIndent === 0 &&\n state.input.charCodeAt(state.position) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 1) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 2) === 0x2D/* - */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n\n } else if (hasDirectives) {\n throwError(state, 'directives end mark is expected');\n }\n\n composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);\n skipSeparationSpace(state, true, -1);\n\n if (state.checkLineBreaks &&\n PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) {\n throwWarning(state, 'non-ASCII line breaks are interpreted as content');\n }\n\n state.documents.push(state.result);\n\n if (state.position === state.lineStart && testDocumentSeparator(state)) {\n\n if (state.input.charCodeAt(state.position) === 0x2E/* . */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n }\n return;\n }\n\n if (state.position < (state.length - 1)) {\n throwError(state, 'end of the stream or a document separator is expected');\n } else {\n return;\n }\n}\n\n\nfunction loadDocuments(input, options) {\n input = String(input);\n options = options || {};\n\n if (input.length !== 0) {\n\n // Add tailing `\\n` if not exists\n if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ &&\n input.charCodeAt(input.length - 1) !== 0x0D/* CR */) {\n input += '\\n';\n }\n\n // Strip BOM\n if (input.charCodeAt(0) === 0xFEFF) {\n input = input.slice(1);\n }\n }\n\n var state = new State$1(input, options);\n\n var nullpos = input.indexOf('\\0');\n\n if (nullpos !== -1) {\n state.position = nullpos;\n throwError(state, 'null byte is not allowed in input');\n }\n\n // Use 0 as string terminator. That significantly simplifies bounds check.\n state.input += '\\0';\n\n while (state.input.charCodeAt(state.position) === 0x20/* Space */) {\n state.lineIndent += 1;\n state.position += 1;\n }\n\n while (state.position < (state.length - 1)) {\n readDocument(state);\n }\n\n return state.documents;\n}\n\n\nfunction loadAll$1(input, iterator, options) {\n if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') {\n options = iterator;\n iterator = null;\n }\n\n var documents = loadDocuments(input, options);\n\n if (typeof iterator !== 'function') {\n return documents;\n }\n\n for (var index = 0, length = documents.length; index < length; index += 1) {\n iterator(documents[index]);\n }\n}\n\n\nfunction load$1(input, options) {\n var documents = loadDocuments(input, options);\n\n if (documents.length === 0) {\n /*eslint-disable no-undefined*/\n return undefined;\n } else if (documents.length === 1) {\n return documents[0];\n }\n throw new exception('expected a single document in the stream, but found more');\n}\n\n\nvar loadAll_1 = loadAll$1;\nvar load_1 = load$1;\n\nvar loader = {\n\tloadAll: loadAll_1,\n\tload: load_1\n};\n\n/*eslint-disable no-use-before-define*/\n\n\n\n\n\nvar _toString = Object.prototype.toString;\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar CHAR_BOM = 0xFEFF;\nvar CHAR_TAB = 0x09; /* Tab */\nvar CHAR_LINE_FEED = 0x0A; /* LF */\nvar CHAR_CARRIAGE_RETURN = 0x0D; /* CR */\nvar CHAR_SPACE = 0x20; /* Space */\nvar CHAR_EXCLAMATION = 0x21; /* ! */\nvar CHAR_DOUBLE_QUOTE = 0x22; /* \" */\nvar CHAR_SHARP = 0x23; /* # */\nvar CHAR_PERCENT = 0x25; /* % */\nvar CHAR_AMPERSAND = 0x26; /* & */\nvar CHAR_SINGLE_QUOTE = 0x27; /* ' */\nvar CHAR_ASTERISK = 0x2A; /* * */\nvar CHAR_COMMA = 0x2C; /* , */\nvar CHAR_MINUS = 0x2D; /* - */\nvar CHAR_COLON = 0x3A; /* : */\nvar CHAR_EQUALS = 0x3D; /* = */\nvar CHAR_GREATER_THAN = 0x3E; /* > */\nvar CHAR_QUESTION = 0x3F; /* ? */\nvar CHAR_COMMERCIAL_AT = 0x40; /* @ */\nvar CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */\nvar CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */\nvar CHAR_GRAVE_ACCENT = 0x60; /* ` */\nvar CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */\nvar CHAR_VERTICAL_LINE = 0x7C; /* | */\nvar CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */\n\nvar ESCAPE_SEQUENCES = {};\n\nESCAPE_SEQUENCES[0x00] = '\\\\0';\nESCAPE_SEQUENCES[0x07] = '\\\\a';\nESCAPE_SEQUENCES[0x08] = '\\\\b';\nESCAPE_SEQUENCES[0x09] = '\\\\t';\nESCAPE_SEQUENCES[0x0A] = '\\\\n';\nESCAPE_SEQUENCES[0x0B] = '\\\\v';\nESCAPE_SEQUENCES[0x0C] = '\\\\f';\nESCAPE_SEQUENCES[0x0D] = '\\\\r';\nESCAPE_SEQUENCES[0x1B] = '\\\\e';\nESCAPE_SEQUENCES[0x22] = '\\\\\"';\nESCAPE_SEQUENCES[0x5C] = '\\\\\\\\';\nESCAPE_SEQUENCES[0x85] = '\\\\N';\nESCAPE_SEQUENCES[0xA0] = '\\\\_';\nESCAPE_SEQUENCES[0x2028] = '\\\\L';\nESCAPE_SEQUENCES[0x2029] = '\\\\P';\n\nvar DEPRECATED_BOOLEANS_SYNTAX = [\n 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON',\n 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF'\n];\n\nvar DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\\.[0-9_]*)?$/;\n\nfunction compileStyleMap(schema, map) {\n var result, keys, index, length, tag, style, type;\n\n if (map === null) return {};\n\n result = {};\n keys = Object.keys(map);\n\n for (index = 0, length = keys.length; index < length; index += 1) {\n tag = keys[index];\n style = String(map[tag]);\n\n if (tag.slice(0, 2) === '!!') {\n tag = 'tag:yaml.org,2002:' + tag.slice(2);\n }\n type = schema.compiledTypeMap['fallback'][tag];\n\n if (type && _hasOwnProperty.call(type.styleAliases, style)) {\n style = type.styleAliases[style];\n }\n\n result[tag] = style;\n }\n\n return result;\n}\n\nfunction encodeHex(character) {\n var string, handle, length;\n\n string = character.toString(16).toUpperCase();\n\n if (character <= 0xFF) {\n handle = 'x';\n length = 2;\n } else if (character <= 0xFFFF) {\n handle = 'u';\n length = 4;\n } else if (character <= 0xFFFFFFFF) {\n handle = 'U';\n length = 8;\n } else {\n throw new exception('code point within a string may not be greater than 0xFFFFFFFF');\n }\n\n return '\\\\' + handle + common.repeat('0', length - string.length) + string;\n}\n\n\nvar QUOTING_TYPE_SINGLE = 1,\n QUOTING_TYPE_DOUBLE = 2;\n\nfunction State(options) {\n this.schema = options['schema'] || _default;\n this.indent = Math.max(1, (options['indent'] || 2));\n this.noArrayIndent = options['noArrayIndent'] || false;\n this.skipInvalid = options['skipInvalid'] || false;\n this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']);\n this.styleMap = compileStyleMap(this.schema, options['styles'] || null);\n this.sortKeys = options['sortKeys'] || false;\n this.lineWidth = options['lineWidth'] || 80;\n this.noRefs = options['noRefs'] || false;\n this.noCompatMode = options['noCompatMode'] || false;\n this.condenseFlow = options['condenseFlow'] || false;\n this.quotingType = options['quotingType'] === '\"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE;\n this.forceQuotes = options['forceQuotes'] || false;\n this.replacer = typeof options['replacer'] === 'function' ? options['replacer'] : null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.explicitTypes = this.schema.compiledExplicit;\n\n this.tag = null;\n this.result = '';\n\n this.duplicates = [];\n this.usedDuplicates = null;\n}\n\n// Indents every line in a string. Empty lines (\\n only) are not indented.\nfunction indentString(string, spaces) {\n var ind = common.repeat(' ', spaces),\n position = 0,\n next = -1,\n result = '',\n line,\n length = string.length;\n\n while (position < length) {\n next = string.indexOf('\\n', position);\n if (next === -1) {\n line = string.slice(position);\n position = length;\n } else {\n line = string.slice(position, next + 1);\n position = next + 1;\n }\n\n if (line.length && line !== '\\n') result += ind;\n\n result += line;\n }\n\n return result;\n}\n\nfunction generateNextLine(state, level) {\n return '\\n' + common.repeat(' ', state.indent * level);\n}\n\nfunction testImplicitResolving(state, str) {\n var index, length, type;\n\n for (index = 0, length = state.implicitTypes.length; index < length; index += 1) {\n type = state.implicitTypes[index];\n\n if (type.resolve(str)) {\n return true;\n }\n }\n\n return false;\n}\n\n// [33] s-white ::= s-space | s-tab\nfunction isWhitespace(c) {\n return c === CHAR_SPACE || c === CHAR_TAB;\n}\n\n// Returns true if the character can be printed without escaping.\n// From YAML 1.2: \"any allowed characters known to be non-printable\n// should also be escaped. [However,] This isn’t mandatory\"\n// Derived from nb-char - \\t - #x85 - #xA0 - #x2028 - #x2029.\nfunction isPrintable(c) {\n return (0x00020 <= c && c <= 0x00007E)\n || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029)\n || ((0x0E000 <= c && c <= 0x00FFFD) && c !== CHAR_BOM)\n || (0x10000 <= c && c <= 0x10FFFF);\n}\n\n// [34] ns-char ::= nb-char - s-white\n// [27] nb-char ::= c-printable - b-char - c-byte-order-mark\n// [26] b-char ::= b-line-feed | b-carriage-return\n// Including s-white (for some reason, examples doesn't match specs in this aspect)\n// ns-char ::= c-printable - b-line-feed - b-carriage-return - c-byte-order-mark\nfunction isNsCharOrWhitespace(c) {\n return isPrintable(c)\n && c !== CHAR_BOM\n // - b-char\n && c !== CHAR_CARRIAGE_RETURN\n && c !== CHAR_LINE_FEED;\n}\n\n// [127] ns-plain-safe(c) ::= c = flow-out ⇒ ns-plain-safe-out\n// c = flow-in ⇒ ns-plain-safe-in\n// c = block-key ⇒ ns-plain-safe-out\n// c = flow-key ⇒ ns-plain-safe-in\n// [128] ns-plain-safe-out ::= ns-char\n// [129] ns-plain-safe-in ::= ns-char - c-flow-indicator\n// [130] ns-plain-char(c) ::= ( ns-plain-safe(c) - “:” - “#” )\n// | ( /* An ns-char preceding */ “#” )\n// | ( “:” /* Followed by an ns-plain-safe(c) */ )\nfunction isPlainSafe(c, prev, inblock) {\n var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c);\n var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c);\n return (\n // ns-plain-safe\n inblock ? // c = flow-in\n cIsNsCharOrWhitespace\n : cIsNsCharOrWhitespace\n // - c-flow-indicator\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n )\n // ns-plain-char\n && c !== CHAR_SHARP // false on '#'\n && !(prev === CHAR_COLON && !cIsNsChar) // false on ': '\n || (isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP) // change to true on '[^ ]#'\n || (prev === CHAR_COLON && cIsNsChar); // change to true on ':[^ ]'\n}\n\n// Simplified test for values allowed as the first character in plain style.\nfunction isPlainSafeFirst(c) {\n // Uses a subset of ns-char - c-indicator\n // where ns-char = nb-char - s-white.\n // No support of ( ( “?” | “:” | “-” ) /* Followed by an ns-plain-safe(c)) */ ) part\n return isPrintable(c) && c !== CHAR_BOM\n && !isWhitespace(c) // - s-white\n // - (c-indicator ::=\n // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}”\n && c !== CHAR_MINUS\n && c !== CHAR_QUESTION\n && c !== CHAR_COLON\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “\"”\n && c !== CHAR_SHARP\n && c !== CHAR_AMPERSAND\n && c !== CHAR_ASTERISK\n && c !== CHAR_EXCLAMATION\n && c !== CHAR_VERTICAL_LINE\n && c !== CHAR_EQUALS\n && c !== CHAR_GREATER_THAN\n && c !== CHAR_SINGLE_QUOTE\n && c !== CHAR_DOUBLE_QUOTE\n // | “%” | “@” | “`”)\n && c !== CHAR_PERCENT\n && c !== CHAR_COMMERCIAL_AT\n && c !== CHAR_GRAVE_ACCENT;\n}\n\n// Simplified test for values allowed as the last character in plain style.\nfunction isPlainSafeLast(c) {\n // just not whitespace or colon, it will be checked to be plain character later\n return !isWhitespace(c) && c !== CHAR_COLON;\n}\n\n// Same as 'string'.codePointAt(pos), but works in older browsers.\nfunction codePointAt(string, pos) {\n var first = string.charCodeAt(pos), second;\n if (first >= 0xD800 && first <= 0xDBFF && pos + 1 < string.length) {\n second = string.charCodeAt(pos + 1);\n if (second >= 0xDC00 && second <= 0xDFFF) {\n // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n return first;\n}\n\n// Determines whether block indentation indicator is required.\nfunction needIndentIndicator(string) {\n var leadingSpaceRe = /^\\n* /;\n return leadingSpaceRe.test(string);\n}\n\nvar STYLE_PLAIN = 1,\n STYLE_SINGLE = 2,\n STYLE_LITERAL = 3,\n STYLE_FOLDED = 4,\n STYLE_DOUBLE = 5;\n\n// Determines which scalar styles are possible and returns the preferred style.\n// lineWidth = -1 => no limit.\n// Pre-conditions: str.length > 0.\n// Post-conditions:\n// STYLE_PLAIN or STYLE_SINGLE => no \\n are in the string.\n// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1).\n// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1).\nfunction chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth,\n testAmbiguousType, quotingType, forceQuotes, inblock) {\n\n var i;\n var char = 0;\n var prevChar = null;\n var hasLineBreak = false;\n var hasFoldableLine = false; // only checked if shouldTrackWidth\n var shouldTrackWidth = lineWidth !== -1;\n var previousLineBreak = -1; // count the first line correctly\n var plain = isPlainSafeFirst(codePointAt(string, 0))\n && isPlainSafeLast(codePointAt(string, string.length - 1));\n\n if (singleLineOnly || forceQuotes) {\n // Case: no block styles.\n // Check for disallowed characters to rule out plain and single.\n for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n } else {\n // Case: block styles permitted.\n for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (char === CHAR_LINE_FEED) {\n hasLineBreak = true;\n // Check if any line can be folded.\n if (shouldTrackWidth) {\n hasFoldableLine = hasFoldableLine ||\n // Foldable line = too long, and not more-indented.\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' ');\n previousLineBreak = i;\n }\n } else if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n // in case the end is missing a \\n\n hasFoldableLine = hasFoldableLine || (shouldTrackWidth &&\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' '));\n }\n // Although every style can represent \\n without escaping, prefer block styles\n // for multiline, since they're more readable and they don't add empty lines.\n // Also prefer folding a super-long line.\n if (!hasLineBreak && !hasFoldableLine) {\n // Strings interpretable as another type have to be quoted;\n // e.g. the string 'true' vs. the boolean true.\n if (plain && !forceQuotes && !testAmbiguousType(string)) {\n return STYLE_PLAIN;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n }\n // Edge case: block indentation indicator can only have one digit.\n if (indentPerLevel > 9 && needIndentIndicator(string)) {\n return STYLE_DOUBLE;\n }\n // At this point we know block styles are valid.\n // Prefer literal style unless we want to fold.\n if (!forceQuotes) {\n return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n}\n\n// Note: line breaking/folding is implemented for only the folded style.\n// NB. We drop the last trailing newline (if any) of a returned block scalar\n// since the dumper adds its own newline. This always works:\n// • No ending newline => unaffected; already using strip \"-\" chomping.\n// • Ending newline => removed then restored.\n// Importantly, this keeps the \"+\" chomp indicator from gaining an extra line.\nfunction writeScalar(state, string, level, iskey, inblock) {\n state.dump = (function () {\n if (string.length === 0) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? '\"\"' : \"''\";\n }\n if (!state.noCompatMode) {\n if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? ('\"' + string + '\"') : (\"'\" + string + \"'\");\n }\n }\n\n var indent = state.indent * Math.max(1, level); // no 0-indent scalars\n // As indentation gets deeper, let the width decrease monotonically\n // to the lower bound min(state.lineWidth, 40).\n // Note that this implies\n // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound.\n // state.lineWidth > 40 + state.indent: width decreases until the lower bound.\n // This behaves better than a constant minimum width which disallows narrower options,\n // or an indent threshold which causes the width to suddenly increase.\n var lineWidth = state.lineWidth === -1\n ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent);\n\n // Without knowing if keys are implicit/explicit, assume implicit for safety.\n var singleLineOnly = iskey\n // No block styles in flow mode.\n || (state.flowLevel > -1 && level >= state.flowLevel);\n function testAmbiguity(string) {\n return testImplicitResolving(state, string);\n }\n\n switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth,\n testAmbiguity, state.quotingType, state.forceQuotes && !iskey, inblock)) {\n\n case STYLE_PLAIN:\n return string;\n case STYLE_SINGLE:\n return \"'\" + string.replace(/'/g, \"''\") + \"'\";\n case STYLE_LITERAL:\n return '|' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(string, indent));\n case STYLE_FOLDED:\n return '>' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(foldString(string, lineWidth), indent));\n case STYLE_DOUBLE:\n return '\"' + escapeString(string) + '\"';\n default:\n throw new exception('impossible error: invalid scalar style');\n }\n }());\n}\n\n// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9.\nfunction blockHeader(string, indentPerLevel) {\n var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : '';\n\n // note the special case: the string '\\n' counts as a \"trailing\" empty line.\n var clip = string[string.length - 1] === '\\n';\n var keep = clip && (string[string.length - 2] === '\\n' || string === '\\n');\n var chomp = keep ? '+' : (clip ? '' : '-');\n\n return indentIndicator + chomp + '\\n';\n}\n\n// (See the note for writeScalar.)\nfunction dropEndingNewline(string) {\n return string[string.length - 1] === '\\n' ? string.slice(0, -1) : string;\n}\n\n// Note: a long line without a suitable break point will exceed the width limit.\n// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0.\nfunction foldString(string, width) {\n // In folded style, $k$ consecutive newlines output as $k+1$ newlines—\n // unless they're before or after a more-indented line, or at the very\n // beginning or end, in which case $k$ maps to $k$.\n // Therefore, parse each chunk as newline(s) followed by a content line.\n var lineRe = /(\\n+)([^\\n]*)/g;\n\n // first line (possibly an empty line)\n var result = (function () {\n var nextLF = string.indexOf('\\n');\n nextLF = nextLF !== -1 ? nextLF : string.length;\n lineRe.lastIndex = nextLF;\n return foldLine(string.slice(0, nextLF), width);\n }());\n // If we haven't reached the first content line yet, don't add an extra \\n.\n var prevMoreIndented = string[0] === '\\n' || string[0] === ' ';\n var moreIndented;\n\n // rest of the lines\n var match;\n while ((match = lineRe.exec(string))) {\n var prefix = match[1], line = match[2];\n moreIndented = (line[0] === ' ');\n result += prefix\n + (!prevMoreIndented && !moreIndented && line !== ''\n ? '\\n' : '')\n + foldLine(line, width);\n prevMoreIndented = moreIndented;\n }\n\n return result;\n}\n\n// Greedy line breaking.\n// Picks the longest line under the limit each time,\n// otherwise settles for the shortest line over the limit.\n// NB. More-indented lines *cannot* be folded, as that would add an extra \\n.\nfunction foldLine(line, width) {\n if (line === '' || line[0] === ' ') return line;\n\n // Since a more-indented line adds a \\n, breaks can't be followed by a space.\n var breakRe = / [^ ]/g; // note: the match index will always be <= length-2.\n var match;\n // start is an inclusive index. end, curr, and next are exclusive.\n var start = 0, end, curr = 0, next = 0;\n var result = '';\n\n // Invariants: 0 <= start <= length-1.\n // 0 <= curr <= next <= max(0, length-2). curr - start <= width.\n // Inside the loop:\n // A match implies length >= 2, so curr and next are <= length-2.\n while ((match = breakRe.exec(line))) {\n next = match.index;\n // maintain invariant: curr - start <= width\n if (next - start > width) {\n end = (curr > start) ? curr : next; // derive end <= length-2\n result += '\\n' + line.slice(start, end);\n // skip the space that was output as \\n\n start = end + 1; // derive start <= length-1\n }\n curr = next;\n }\n\n // By the invariants, start <= length-1, so there is something left over.\n // It is either the whole string or a part starting from non-whitespace.\n result += '\\n';\n // Insert a break if the remainder is too long and there is a break available.\n if (line.length - start > width && curr > start) {\n result += line.slice(start, curr) + '\\n' + line.slice(curr + 1);\n } else {\n result += line.slice(start);\n }\n\n return result.slice(1); // drop extra \\n joiner\n}\n\n// Escapes a double-quoted string.\nfunction escapeString(string) {\n var result = '';\n var char = 0;\n var escapeSeq;\n\n for (var i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n escapeSeq = ESCAPE_SEQUENCES[char];\n\n if (!escapeSeq && isPrintable(char)) {\n result += string[i];\n if (char >= 0x10000) result += string[i + 1];\n } else {\n result += escapeSeq || encodeHex(char);\n }\n }\n\n return result;\n}\n\nfunction writeFlowSequence(state, level, object) {\n var _result = '',\n _tag = state.tag,\n index,\n length,\n value;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n\n // Write only valid elements, put null instead of invalid elements.\n if (writeNode(state, level, value, false, false) ||\n (typeof value === 'undefined' &&\n writeNode(state, level, null, false, false))) {\n\n if (_result !== '') _result += ',' + (!state.condenseFlow ? ' ' : '');\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = '[' + _result + ']';\n}\n\nfunction writeBlockSequence(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n index,\n length,\n value;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n\n // Write only valid elements, put null instead of invalid elements.\n if (writeNode(state, level + 1, value, true, true, false, true) ||\n (typeof value === 'undefined' &&\n writeNode(state, level + 1, null, true, true, false, true))) {\n\n if (!compact || _result !== '') {\n _result += generateNextLine(state, level);\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n _result += '-';\n } else {\n _result += '- ';\n }\n\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = _result || '[]'; // Empty sequence if no valid values.\n}\n\nfunction writeFlowMapping(state, level, object) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n pairBuffer;\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n\n pairBuffer = '';\n if (_result !== '') pairBuffer += ', ';\n\n if (state.condenseFlow) pairBuffer += '\"';\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n\n if (!writeNode(state, level, objectKey, false, false)) {\n continue; // Skip this pair because of invalid key;\n }\n\n if (state.dump.length > 1024) pairBuffer += '? ';\n\n pairBuffer += state.dump + (state.condenseFlow ? '\"' : '') + ':' + (state.condenseFlow ? '' : ' ');\n\n if (!writeNode(state, level, objectValue, false, false)) {\n continue; // Skip this pair because of invalid value.\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = '{' + _result + '}';\n}\n\nfunction writeBlockMapping(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n explicitPair,\n pairBuffer;\n\n // Allow sorting keys so that the output file is deterministic\n if (state.sortKeys === true) {\n // Default sorting\n objectKeyList.sort();\n } else if (typeof state.sortKeys === 'function') {\n // Custom sort function\n objectKeyList.sort(state.sortKeys);\n } else if (state.sortKeys) {\n // Something is wrong\n throw new exception('sortKeys must be a boolean or a function');\n }\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n pairBuffer = '';\n\n if (!compact || _result !== '') {\n pairBuffer += generateNextLine(state, level);\n }\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n\n if (!writeNode(state, level + 1, objectKey, true, true, true)) {\n continue; // Skip this pair because of invalid key.\n }\n\n explicitPair = (state.tag !== null && state.tag !== '?') ||\n (state.dump && state.dump.length > 1024);\n\n if (explicitPair) {\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += '?';\n } else {\n pairBuffer += '? ';\n }\n }\n\n pairBuffer += state.dump;\n\n if (explicitPair) {\n pairBuffer += generateNextLine(state, level);\n }\n\n if (!writeNode(state, level + 1, objectValue, true, explicitPair)) {\n continue; // Skip this pair because of invalid value.\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += ':';\n } else {\n pairBuffer += ': ';\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = _result || '{}'; // Empty mapping if no valid pairs.\n}\n\nfunction detectType(state, object, explicit) {\n var _result, typeList, index, length, type, style;\n\n typeList = explicit ? state.explicitTypes : state.implicitTypes;\n\n for (index = 0, length = typeList.length; index < length; index += 1) {\n type = typeList[index];\n\n if ((type.instanceOf || type.predicate) &&\n (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) &&\n (!type.predicate || type.predicate(object))) {\n\n if (explicit) {\n if (type.multi && type.representName) {\n state.tag = type.representName(object);\n } else {\n state.tag = type.tag;\n }\n } else {\n state.tag = '?';\n }\n\n if (type.represent) {\n style = state.styleMap[type.tag] || type.defaultStyle;\n\n if (_toString.call(type.represent) === '[object Function]') {\n _result = type.represent(object, style);\n } else if (_hasOwnProperty.call(type.represent, style)) {\n _result = type.represent[style](object, style);\n } else {\n throw new exception('!<' + type.tag + '> tag resolver accepts not \"' + style + '\" style');\n }\n\n state.dump = _result;\n }\n\n return true;\n }\n }\n\n return false;\n}\n\n// Serializes `object` and writes it to global `result`.\n// Returns true on success, or false on invalid object.\n//\nfunction writeNode(state, level, object, block, compact, iskey, isblockseq) {\n state.tag = null;\n state.dump = object;\n\n if (!detectType(state, object, false)) {\n detectType(state, object, true);\n }\n\n var type = _toString.call(state.dump);\n var inblock = block;\n var tagStr;\n\n if (block) {\n block = (state.flowLevel < 0 || state.flowLevel > level);\n }\n\n var objectOrArray = type === '[object Object]' || type === '[object Array]',\n duplicateIndex,\n duplicate;\n\n if (objectOrArray) {\n duplicateIndex = state.duplicates.indexOf(object);\n duplicate = duplicateIndex !== -1;\n }\n\n if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) {\n compact = false;\n }\n\n if (duplicate && state.usedDuplicates[duplicateIndex]) {\n state.dump = '*ref_' + duplicateIndex;\n } else {\n if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) {\n state.usedDuplicates[duplicateIndex] = true;\n }\n if (type === '[object Object]') {\n if (block && (Object.keys(state.dump).length !== 0)) {\n writeBlockMapping(state, level, state.dump, compact);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowMapping(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object Array]') {\n if (block && (state.dump.length !== 0)) {\n if (state.noArrayIndent && !isblockseq && level > 0) {\n writeBlockSequence(state, level - 1, state.dump, compact);\n } else {\n writeBlockSequence(state, level, state.dump, compact);\n }\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowSequence(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object String]') {\n if (state.tag !== '?') {\n writeScalar(state, state.dump, level, iskey, inblock);\n }\n } else if (type === '[object Undefined]') {\n return false;\n } else {\n if (state.skipInvalid) return false;\n throw new exception('unacceptable kind of an object to dump ' + type);\n }\n\n if (state.tag !== null && state.tag !== '?') {\n // Need to encode all characters except those allowed by the spec:\n //\n // [35] ns-dec-digit ::= [#x30-#x39] /* 0-9 */\n // [36] ns-hex-digit ::= ns-dec-digit\n // | [#x41-#x46] /* A-F */ | [#x61-#x66] /* a-f */\n // [37] ns-ascii-letter ::= [#x41-#x5A] /* A-Z */ | [#x61-#x7A] /* a-z */\n // [38] ns-word-char ::= ns-dec-digit | ns-ascii-letter | “-”\n // [39] ns-uri-char ::= “%” ns-hex-digit ns-hex-digit | ns-word-char | “#”\n // | “;” | “/” | “?” | “:” | “@” | “&” | “=” | “+” | “$” | “,”\n // | “_” | “.” | “!” | “~” | “*” | “'” | “(” | “)” | “[” | “]”\n //\n // Also need to encode '!' because it has special meaning (end of tag prefix).\n //\n tagStr = encodeURI(\n state.tag[0] === '!' ? state.tag.slice(1) : state.tag\n ).replace(/!/g, '%21');\n\n if (state.tag[0] === '!') {\n tagStr = '!' + tagStr;\n } else if (tagStr.slice(0, 18) === 'tag:yaml.org,2002:') {\n tagStr = '!!' + tagStr.slice(18);\n } else {\n tagStr = '!<' + tagStr + '>';\n }\n\n state.dump = tagStr + ' ' + state.dump;\n }\n }\n\n return true;\n}\n\nfunction getDuplicateReferences(object, state) {\n var objects = [],\n duplicatesIndexes = [],\n index,\n length;\n\n inspectNode(object, objects, duplicatesIndexes);\n\n for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) {\n state.duplicates.push(objects[duplicatesIndexes[index]]);\n }\n state.usedDuplicates = new Array(length);\n}\n\nfunction inspectNode(object, objects, duplicatesIndexes) {\n var objectKeyList,\n index,\n length;\n\n if (object !== null && typeof object === 'object') {\n index = objects.indexOf(object);\n if (index !== -1) {\n if (duplicatesIndexes.indexOf(index) === -1) {\n duplicatesIndexes.push(index);\n }\n } else {\n objects.push(object);\n\n if (Array.isArray(object)) {\n for (index = 0, length = object.length; index < length; index += 1) {\n inspectNode(object[index], objects, duplicatesIndexes);\n }\n } else {\n objectKeyList = Object.keys(object);\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes);\n }\n }\n }\n }\n}\n\nfunction dump$1(input, options) {\n options = options || {};\n\n var state = new State(options);\n\n if (!state.noRefs) getDuplicateReferences(input, state);\n\n var value = input;\n\n if (state.replacer) {\n value = state.replacer.call({ '': value }, '', value);\n }\n\n if (writeNode(state, 0, value, true, true)) return state.dump + '\\n';\n\n return '';\n}\n\nvar dump_1 = dump$1;\n\nvar dumper = {\n\tdump: dump_1\n};\n\nfunction renamed(from, to) {\n return function () {\n throw new Error('Function yaml.' + from + ' is removed in js-yaml 4. ' +\n 'Use yaml.' + to + ' instead, which is now safe by default.');\n };\n}\n\n\nvar Type = type;\nvar Schema = schema;\nvar FAILSAFE_SCHEMA = failsafe;\nvar JSON_SCHEMA = json;\nvar CORE_SCHEMA = core;\nvar DEFAULT_SCHEMA = _default;\nvar load = loader.load;\nvar loadAll = loader.loadAll;\nvar dump = dumper.dump;\nvar YAMLException = exception;\n\n// Re-export all types in case user wants to create custom schema\nvar types = {\n binary: binary,\n float: float,\n map: map,\n null: _null,\n pairs: pairs,\n set: set,\n timestamp: timestamp,\n bool: bool,\n int: int,\n merge: merge,\n omap: omap,\n seq: seq,\n str: str\n};\n\n// Removed functions from JS-YAML 3.0.x\nvar safeLoad = renamed('safeLoad', 'load');\nvar safeLoadAll = renamed('safeLoadAll', 'loadAll');\nvar safeDump = renamed('safeDump', 'dump');\n\nvar jsYaml = {\n\tType: Type,\n\tSchema: Schema,\n\tFAILSAFE_SCHEMA: FAILSAFE_SCHEMA,\n\tJSON_SCHEMA: JSON_SCHEMA,\n\tCORE_SCHEMA: CORE_SCHEMA,\n\tDEFAULT_SCHEMA: DEFAULT_SCHEMA,\n\tload: load,\n\tloadAll: loadAll,\n\tdump: dump,\n\tYAMLException: YAMLException,\n\ttypes: types,\n\tsafeLoad: safeLoad,\n\tsafeLoadAll: safeLoadAll,\n\tsafeDump: safeDump\n};\n\nexport default jsYaml;\nexport { CORE_SCHEMA, DEFAULT_SCHEMA, FAILSAFE_SCHEMA, JSON_SCHEMA, Schema, Type, YAMLException, dump, load, loadAll, safeDump, safeLoad, safeLoadAll, types };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/js-yaml/dist/js-yaml.mjs\n// module id = 111\n// module chunks = 0","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/process/browser.js\n// module id = 112\n// module chunks = 0","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/5/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n function doFold(cm, pos, options, force) {\n if (options && options.call) {\n var finder = options;\n options = null;\n } else {\n var finder = getOption(cm, options, \"rangeFinder\");\n }\n if (typeof pos == \"number\") pos = CodeMirror.Pos(pos, 0);\n var minSize = getOption(cm, options, \"minFoldSize\");\n\n function getRange(allowFolded) {\n var range = finder(cm, pos);\n if (!range || range.to.line - range.from.line < minSize) return null;\n if (force === \"fold\") return range;\n\n var marks = cm.findMarksAt(range.from);\n for (var i = 0; i < marks.length; ++i) {\n if (marks[i].__isFold) {\n if (!allowFolded) return null;\n range.cleared = true;\n marks[i].clear();\n }\n }\n return range;\n }\n\n var range = getRange(true);\n if (getOption(cm, options, \"scanUp\")) while (!range && pos.line > cm.firstLine()) {\n pos = CodeMirror.Pos(pos.line - 1, 0);\n range = getRange(false);\n }\n if (!range || range.cleared || force === \"unfold\") return;\n\n var myWidget = makeWidget(cm, options, range);\n CodeMirror.on(myWidget, \"mousedown\", function(e) {\n myRange.clear();\n CodeMirror.e_preventDefault(e);\n });\n var myRange = cm.markText(range.from, range.to, {\n replacedWith: myWidget,\n clearOnEnter: getOption(cm, options, \"clearOnEnter\"),\n __isFold: true\n });\n myRange.on(\"clear\", function(from, to) {\n CodeMirror.signal(cm, \"unfold\", cm, from, to);\n });\n CodeMirror.signal(cm, \"fold\", cm, range.from, range.to);\n }\n\n function makeWidget(cm, options, range) {\n var widget = getOption(cm, options, \"widget\");\n\n if (typeof widget == \"function\") {\n widget = widget(range.from, range.to);\n }\n\n if (typeof widget == \"string\") {\n var text = document.createTextNode(widget);\n widget = document.createElement(\"span\");\n widget.appendChild(text);\n widget.className = \"CodeMirror-foldmarker\";\n } else if (widget) {\n widget = widget.cloneNode(true)\n }\n return widget;\n }\n\n // Clumsy backwards-compatible interface\n CodeMirror.newFoldFunction = function(rangeFinder, widget) {\n return function(cm, pos) { doFold(cm, pos, {rangeFinder: rangeFinder, widget: widget}); };\n };\n\n // New-style interface\n CodeMirror.defineExtension(\"foldCode\", function(pos, options, force) {\n doFold(this, pos, options, force);\n });\n\n CodeMirror.defineExtension(\"isFolded\", function(pos) {\n var marks = this.findMarksAt(pos);\n for (var i = 0; i < marks.length; ++i)\n if (marks[i].__isFold) return true;\n });\n\n CodeMirror.commands.toggleFold = function(cm) {\n cm.foldCode(cm.getCursor());\n };\n CodeMirror.commands.fold = function(cm) {\n cm.foldCode(cm.getCursor(), null, \"fold\");\n };\n CodeMirror.commands.unfold = function(cm) {\n cm.foldCode(cm.getCursor(), { scanUp: false }, \"unfold\");\n };\n CodeMirror.commands.foldAll = function(cm) {\n cm.operation(function() {\n for (var i = cm.firstLine(), e = cm.lastLine(); i <= e; i++)\n cm.foldCode(CodeMirror.Pos(i, 0), { scanUp: false }, \"fold\");\n });\n };\n CodeMirror.commands.unfoldAll = function(cm) {\n cm.operation(function() {\n for (var i = cm.firstLine(), e = cm.lastLine(); i <= e; i++)\n cm.foldCode(CodeMirror.Pos(i, 0), { scanUp: false }, \"unfold\");\n });\n };\n\n CodeMirror.registerHelper(\"fold\", \"combine\", function() {\n var funcs = Array.prototype.slice.call(arguments, 0);\n return function(cm, start) {\n for (var i = 0; i < funcs.length; ++i) {\n var found = funcs[i](cm, start);\n if (found) return found;\n }\n };\n });\n\n CodeMirror.registerHelper(\"fold\", \"auto\", function(cm, start) {\n var helpers = cm.getHelpers(start, \"fold\");\n for (var i = 0; i < helpers.length; i++) {\n var cur = helpers[i](cm, start);\n if (cur) return cur;\n }\n });\n\n var defaultOptions = {\n rangeFinder: CodeMirror.fold.auto,\n widget: \"\\u2194\",\n minFoldSize: 0,\n scanUp: false,\n clearOnEnter: true\n };\n\n CodeMirror.defineOption(\"foldOptions\", null);\n\n function getOption(cm, options, name) {\n if (options && options[name] !== undefined)\n return options[name];\n var editorOptions = cm.options.foldOptions;\n if (editorOptions && editorOptions[name] !== undefined)\n return editorOptions[name];\n return defaultOptions[name];\n }\n\n CodeMirror.defineExtension(\"foldOption\", function(options, name) {\n return getOption(this, options, name);\n });\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/node_modules/codemirror/addon/fold/foldcode.js\n// module id = 113\n// module chunks = 0","import $ from 'jquery';\nimport _ from 'underscore';\n\nimport {wrap} from '@girder/core/utilities/PluginUtils';\nimport eventStream from '@girder/core/utilities/EventStream';\nimport ItemView from '@girder/core/views/body/ItemView';\nimport View from '@girder/core/views/View';\n\nimport largeImageConfig from './configView';\nimport * as viewers from './imageViewerWidget';\n\nimport imageViewerSelectWidget from '../templates/imageViewerSelectWidget.pug';\nimport '../stylesheets/imageViewerSelectWidget.styl';\nimport FrameSelector from '../vue/components/FrameSelector.vue';\n\nwrap(ItemView, 'render', function (render) {\n // ItemView is a special case in which rendering is done asynchronously,\n // so we must listen for a render event.\n this.once('g:rendered', function () {\n if (this.model.get('largeImage') &&\n this.model.get('largeImage').fileId) {\n this.imageViewerSelect = new ImageViewerSelectWidget({\n el: $('
', {class: 'g-item-image-viewer-select'})\n .insertAfter(this.$('.g-item-info')),\n parentView: this,\n imageModel: this.model\n });\n }\n }, this);\n render.call(this);\n});\n\nvar ImageViewerSelectWidget = View.extend({\n events: {\n 'change select.image-viewer-control': function (event) {\n this._selectViewer(event.target.value);\n },\n 'keyup select.image-viewer-control': function (event) {\n this._selectViewer(event.target.value);\n },\n 'input #image-frame,#image-frame-number': function (event) {\n this.frameUpdate(event.target);\n }\n },\n\n initialize: function (settings) {\n this.itemId = settings.imageModel.id;\n this.model = settings.imageModel;\n this.currentViewer = null;\n largeImageConfig.getSettings(() => {\n largeImageConfig.getConfigFile(this.model.get('folderId')).done((config) => {\n this._liConfig = config || {};\n this.render();\n });\n });\n },\n\n render: function () {\n if (largeImageConfig.settings['large_image.show_viewer'] === false) {\n return this;\n }\n this.$el.html(imageViewerSelectWidget({\n viewers: largeImageConfig.viewers\n }));\n var name = largeImageConfig.settings['large_image.default_viewer'];\n if (_.findWhere(largeImageConfig.viewers, {name: name}) === undefined) {\n name = largeImageConfig.viewers[0].name;\n }\n this.$('select.form-control.image-viewer-control').val(name);\n this._selectViewer(name);\n return this;\n },\n\n _createVue(imageMetadata, frameUpdate) {\n const el = this.$('#vue-container').get(0);\n const vm = new FrameSelector({\n el,\n propsData: {\n itemId: this.itemId,\n imageMetadata: imageMetadata,\n frameUpdate: frameUpdate,\n liConfig: this._liConfig\n }\n });\n this.vueApp = vm;\n },\n\n _selectViewer: function (viewerName) {\n if (this.currentViewer && this.currentViewer.name === viewerName) {\n return;\n }\n if (this.currentViewer) {\n this.currentViewer.destroy();\n this.currentViewer = null;\n }\n // hide general image controls; individual viewers must enable them\n this.$('.image-controls>div').toggleClass('hidden', true);\n this._frameUpdate = null;\n this.$('.image-viewer').toggleClass('hidden', true);\n\n var viewer = _.findWhere(largeImageConfig.viewers,\n {name: viewerName});\n var ViewerType = viewers[viewer.type];\n // use dedicated elements for each viewer for now in case they aren't\n // fully cleaned up\n var viewerEl = this.$('#' + viewerName);\n viewerEl.toggleClass('hidden', false);\n this.currentViewer = new ViewerType({\n el: viewerEl,\n parentView: this,\n itemId: this.itemId,\n model: this.model,\n setFrames: _.bind(this.setFrames, this)\n });\n this.currentViewer.name = viewerName;\n },\n\n /**\n * If a viewer supports handling multi-frame images, call this as part of\n * this initial render to expose frame controls.\n *\n * @param {object} metadata A dictionary of metadata that might contain a\n * list of frames.\n * @param {function} frameUpdate a function to call with the current frame\n * number when it changes. This is called with an initial frame\n * number if the frame controls are available. It is never called if\n * there is only one frame.\n */\n setFrames: function (metadata, frameUpdate) {\n this.$('.image-controls>div').toggleClass('hidden', false);\n // Vue frame control\n this._createVue(metadata, frameUpdate);\n },\n\n /**\n * Handle a change in a frame control.\n */\n frameUpdate: function (ctrl) {\n ctrl = $(ctrl);\n var frame = ctrl.val();\n this.$('#image-frame,#image-frame-number').val(frame);\n if (this._frameUpdate) {\n this._frameUpdate(frame);\n }\n }\n});\n\nwrap(ItemView, 'initialize', function (initialize) {\n this.listenTo(eventStream, 'g:event.large_image.finished_image_item', () => {\n this.model.unset('largeImage');\n this.model.fetch();\n });\n initialize.apply(this, _.rest(arguments));\n});\n\nexport default ImageViewerSelectWidget;\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/@girder/large_image/views/imageViewerSelectWidget.js","import geojs from './geojs';\nimport leaflet from './leaflet';\nimport openlayers from './openlayers';\nimport openseadragon from './openseadragon';\nimport slideatlas from './slideatlas';\n\nexport {\n geojs,\n leaflet,\n openlayers,\n openseadragon,\n slideatlas\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/@girder/large_image/views/imageViewerWidget/index.js","import mod from \"-!../../../../babel-loader/lib/index.js??ref--10-0!../../../../../../../../large_image/girder/girder_large_image/web_client/node_modules/vue-loader/lib/index.js??vue-loader-options!./FrameSelector.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../babel-loader/lib/index.js??ref--10-0!../../../../../../../../large_image/girder/girder_large_image/web_client/node_modules/vue-loader/lib/index.js??vue-loader-options!./FrameSelector.vue?vue&type=script&lang=js&\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@girder/large_image/vue/components/FrameSelector.vue?vue&type=script&lang=js&\n// module id = 116\n// module chunks = 0","\n\n\n
\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// node_modules/@girder/large_image/vue/components/FrameSelector.vue","/*!\n * Vue.js v2.6.14\n * (c) 2014-2021 Evan You\n * Released under the MIT License.\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.Vue = factory());\n}(this, function () { 'use strict';\n\n /* */\n\n var emptyObject = Object.freeze({});\n\n // These helpers produce better VM code in JS engines due to their\n // explicitness and function inlining.\n function isUndef (v) {\n return v === undefined || v === null\n }\n\n function isDef (v) {\n return v !== undefined && v !== null\n }\n\n function isTrue (v) {\n return v === true\n }\n\n function isFalse (v) {\n return v === false\n }\n\n /**\n * Check if value is primitive.\n */\n function isPrimitive (value) {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean'\n )\n }\n\n /**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\n function isObject (obj) {\n return obj !== null && typeof obj === 'object'\n }\n\n /**\n * Get the raw type string of a value, e.g., [object Object].\n */\n var _toString = Object.prototype.toString;\n\n function toRawType (value) {\n return _toString.call(value).slice(8, -1)\n }\n\n /**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\n function isPlainObject (obj) {\n return _toString.call(obj) === '[object Object]'\n }\n\n function isRegExp (v) {\n return _toString.call(v) === '[object RegExp]'\n }\n\n /**\n * Check if val is a valid array index.\n */\n function isValidArrayIndex (val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val)\n }\n\n function isPromise (val) {\n return (\n isDef(val) &&\n typeof val.then === 'function' &&\n typeof val.catch === 'function'\n )\n }\n\n /**\n * Convert a value to a string that is actually rendered.\n */\n function toString (val) {\n return val == null\n ? ''\n : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\n ? JSON.stringify(val, null, 2)\n : String(val)\n }\n\n /**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\n function toNumber (val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n\n }\n\n /**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\n function makeMap (\n str,\n expectsLowerCase\n ) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase\n ? function (val) { return map[val.toLowerCase()]; }\n : function (val) { return map[val]; }\n }\n\n /**\n * Check if a tag is a built-in tag.\n */\n var isBuiltInTag = makeMap('slot,component', true);\n\n /**\n * Check if an attribute is a reserved attribute.\n */\n var isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n\n /**\n * Remove an item from an array.\n */\n function remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n }\n\n /**\n * Check whether an object has the property.\n */\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n function hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n }\n\n /**\n * Create a cached version of a pure function.\n */\n function cached (fn) {\n var cache = Object.create(null);\n return (function cachedFn (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str))\n })\n }\n\n /**\n * Camelize a hyphen-delimited string.\n */\n var camelizeRE = /-(\\w)/g;\n var camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n });\n\n /**\n * Capitalize a string.\n */\n var capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n });\n\n /**\n * Hyphenate a camelCase string.\n */\n var hyphenateRE = /\\B([A-Z])/g;\n var hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n });\n\n /**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n\n /* istanbul ignore next */\n function polyfillBind (fn, ctx) {\n function boundFn (a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx)\n }\n\n boundFn._length = fn.length;\n return boundFn\n }\n\n function nativeBind (fn, ctx) {\n return fn.bind(ctx)\n }\n\n var bind = Function.prototype.bind\n ? nativeBind\n : polyfillBind;\n\n /**\n * Convert an Array-like object to a real Array.\n */\n function toArray (list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret\n }\n\n /**\n * Mix properties into target object.\n */\n function extend (to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to\n }\n\n /**\n * Merge an Array of Objects into a single Object.\n */\n function toObject (arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res\n }\n\n /* eslint-disable no-unused-vars */\n\n /**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\n function noop (a, b, c) {}\n\n /**\n * Always return false.\n */\n var no = function (a, b, c) { return false; };\n\n /* eslint-enable no-unused-vars */\n\n /**\n * Return the same value.\n */\n var identity = function (_) { return _; };\n\n /**\n * Generate a string containing static keys from compiler modules.\n */\n function genStaticKeys (modules) {\n return modules.reduce(function (keys, m) {\n return keys.concat(m.staticKeys || [])\n }, []).join(',')\n }\n\n /**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\n function looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime()\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n }\n\n /**\n * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\n function looseIndexOf (arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) { return i }\n }\n return -1\n }\n\n /**\n * Ensure a function is called only once.\n */\n function once (fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n }\n }\n\n var SSR_ATTR = 'data-server-rendered';\n\n var ASSET_TYPES = [\n 'component',\n 'directive',\n 'filter'\n ];\n\n var LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured',\n 'serverPrefetch'\n ];\n\n /* */\n\n\n\n var config = ({\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n\n /**\n * Show production mode tip message on boot?\n */\n productionTip: \"development\" !== 'production',\n\n /**\n * Whether to enable devtools\n */\n devtools: \"development\" !== 'production',\n\n /**\n * Whether to record perf\n */\n performance: false,\n\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n\n /**\n * Perform updates asynchronously. Intended to be used by Vue Test Utils\n * This will significantly reduce performance if set to false.\n */\n async: true,\n\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n });\n\n /* */\n\n /**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\n var unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n\n /**\n * Check if a string starts with $ or _\n */\n function isReserved (str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F\n }\n\n /**\n * Define a property.\n */\n function def (obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n }\n\n /**\n * Parse simple path.\n */\n var bailRE = new RegExp((\"[^\" + (unicodeRegExp.source) + \".$_\\\\d]\"));\n function parsePath (path) {\n if (bailRE.test(path)) {\n return\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj) { return }\n obj = obj[segments[i]];\n }\n return obj\n }\n }\n\n /* */\n\n // can we use __proto__?\n var hasProto = '__proto__' in {};\n\n // Browser environment sniffing\n var inBrowser = typeof window !== 'undefined';\n var inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\n var weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\n var UA = inBrowser && window.navigator.userAgent.toLowerCase();\n var isIE = UA && /msie|trident/.test(UA);\n var isIE9 = UA && UA.indexOf('msie 9.0') > 0;\n var isEdge = UA && UA.indexOf('edge/') > 0;\n var isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\n var isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\n var isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\n var isPhantomJS = UA && /phantomjs/.test(UA);\n var isFF = UA && UA.match(/firefox\\/(\\d+)/);\n\n // Firefox has a \"watch\" function on Object.prototype...\n var nativeWatch = ({}).watch;\n\n var supportsPassive = false;\n if (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', ({\n get: function get () {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n })); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n }\n\n // this needs to be lazy-evaled because vue may be required before\n // vue-server-renderer can set VUE_ENV\n var _isServer;\n var isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && !inWeex && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer = global['process'] && global['process'].env.VUE_ENV === 'server';\n } else {\n _isServer = false;\n }\n }\n return _isServer\n };\n\n // detect devtools\n var devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n /* istanbul ignore next */\n function isNative (Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n }\n\n var hasSymbol =\n typeof Symbol !== 'undefined' && isNative(Symbol) &&\n typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\n var _Set;\n /* istanbul ignore if */ // $flow-disable-line\n if (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n } else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = /*@__PURE__*/(function () {\n function Set () {\n this.set = Object.create(null);\n }\n Set.prototype.has = function has (key) {\n return this.set[key] === true\n };\n Set.prototype.add = function add (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function clear () {\n this.set = Object.create(null);\n };\n\n return Set;\n }());\n }\n\n /* */\n\n var warn = noop;\n var tip = noop;\n var generateComponentTrace = (noop); // work around flow check\n var formatComponentName = (noop);\n\n {\n var hasConsole = typeof console !== 'undefined';\n var classifyRE = /(?:^|[-_])(\\w)/g;\n var classify = function (str) { return str\n .replace(classifyRE, function (c) { return c.toUpperCase(); })\n .replace(/[-_]/g, ''); };\n\n warn = function (msg, vm) {\n var trace = vm ? generateComponentTrace(vm) : '';\n\n if (config.warnHandler) {\n config.warnHandler.call(null, msg, vm, trace);\n } else if (hasConsole && (!config.silent)) {\n console.error((\"[Vue warn]: \" + msg + trace));\n }\n };\n\n tip = function (msg, vm) {\n if (hasConsole && (!config.silent)) {\n console.warn(\"[Vue tip]: \" + msg + (\n vm ? generateComponentTrace(vm) : ''\n ));\n }\n };\n\n formatComponentName = function (vm, includeFile) {\n if (vm.$root === vm) {\n return ''\n }\n var options = typeof vm === 'function' && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm;\n var name = options.name || options._componentTag;\n var file = options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n\n return (\n (name ? (\"<\" + (classify(name)) + \">\") : \"\") +\n (file && includeFile !== false ? (\" at \" + file) : '')\n )\n };\n\n var repeat = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1) { res += str; }\n if (n > 1) { str += str; }\n n >>= 1;\n }\n return res\n };\n\n generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm) {\n if (tree.length > 0) {\n var last = tree[tree.length - 1];\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++;\n vm = vm.$parent;\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence];\n currentRecursiveSequence = 0;\n }\n }\n tree.push(vm);\n vm = vm.$parent;\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n : formatComponentName(vm))); })\n .join('\\n')\n } else {\n return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n }\n };\n }\n\n /* */\n\n var uid = 0;\n\n /**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\n var Dep = function Dep () {\n this.id = uid++;\n this.subs = [];\n };\n\n Dep.prototype.addSub = function addSub (sub) {\n this.subs.push(sub);\n };\n\n Dep.prototype.removeSub = function removeSub (sub) {\n remove(this.subs, sub);\n };\n\n Dep.prototype.depend = function depend () {\n if (Dep.target) {\n Dep.target.addDep(this);\n }\n };\n\n Dep.prototype.notify = function notify () {\n // stabilize the subscriber list first\n var subs = this.subs.slice();\n if (!config.async) {\n // subs aren't sorted in scheduler if not running async\n // we need to sort them now to make sure they fire in correct\n // order\n subs.sort(function (a, b) { return a.id - b.id; });\n }\n for (var i = 0, l = subs.length; i < l; i++) {\n subs[i].update();\n }\n };\n\n // The current target watcher being evaluated.\n // This is globally unique because only one watcher\n // can be evaluated at a time.\n Dep.target = null;\n var targetStack = [];\n\n function pushTarget (target) {\n targetStack.push(target);\n Dep.target = target;\n }\n\n function popTarget () {\n targetStack.pop();\n Dep.target = targetStack[targetStack.length - 1];\n }\n\n /* */\n\n var VNode = function VNode (\n tag,\n data,\n children,\n text,\n elm,\n context,\n componentOptions,\n asyncFactory\n ) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.fnContext = undefined;\n this.fnOptions = undefined;\n this.fnScopeId = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n };\n\n var prototypeAccessors = { child: { configurable: true } };\n\n // DEPRECATED: alias for componentInstance for backwards compat.\n /* istanbul ignore next */\n prototypeAccessors.child.get = function () {\n return this.componentInstance\n };\n\n Object.defineProperties( VNode.prototype, prototypeAccessors );\n\n var createEmptyVNode = function (text) {\n if ( text === void 0 ) text = '';\n\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node\n };\n\n function createTextVNode (val) {\n return new VNode(undefined, undefined, undefined, String(val))\n }\n\n // optimized shallow clone\n // used for static nodes and slot nodes because they may be reused across\n // multiple renders, cloning them avoids errors when DOM manipulations rely\n // on their elm reference.\n function cloneVNode (vnode) {\n var cloned = new VNode(\n vnode.tag,\n vnode.data,\n // #7975\n // clone children array to avoid mutating original in case of cloning\n // a child.\n vnode.children && vnode.children.slice(),\n vnode.text,\n vnode.elm,\n vnode.context,\n vnode.componentOptions,\n vnode.asyncFactory\n );\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.asyncMeta = vnode.asyncMeta;\n cloned.isCloned = true;\n return cloned\n }\n\n /*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\n var arrayProto = Array.prototype;\n var arrayMethods = Object.create(arrayProto);\n\n var methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n ];\n\n /**\n * Intercept mutating methods and emit events\n */\n methodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break\n case 'splice':\n inserted = args.slice(2);\n break\n }\n if (inserted) { ob.observeArray(inserted); }\n // notify change\n ob.dep.notify();\n return result\n });\n });\n\n /* */\n\n var arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n /**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\n var shouldObserve = true;\n\n function toggleObserving (value) {\n shouldObserve = value;\n }\n\n /**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\n var Observer = function Observer (value) {\n this.value = value;\n this.dep = new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (Array.isArray(value)) {\n if (hasProto) {\n protoAugment(value, arrayMethods);\n } else {\n copyAugment(value, arrayMethods, arrayKeys);\n }\n this.observeArray(value);\n } else {\n this.walk(value);\n }\n };\n\n /**\n * Walk through all properties and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\n Observer.prototype.walk = function walk (obj) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n defineReactive$$1(obj, keys[i]);\n }\n };\n\n /**\n * Observe a list of Array items.\n */\n Observer.prototype.observeArray = function observeArray (items) {\n for (var i = 0, l = items.length; i < l; i++) {\n observe(items[i]);\n }\n };\n\n // helpers\n\n /**\n * Augment a target Object or Array by intercepting\n * the prototype chain using __proto__\n */\n function protoAugment (target, src) {\n /* eslint-disable no-proto */\n target.__proto__ = src;\n /* eslint-enable no-proto */\n }\n\n /**\n * Augment a target Object or Array by defining\n * hidden properties.\n */\n /* istanbul ignore next */\n function copyAugment (target, src, keys) {\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n def(target, key, src[key]);\n }\n }\n\n /**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\n function observe (value, asRootData) {\n if (!isObject(value) || value instanceof VNode) {\n return\n }\n var ob;\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n ob = value.__ob__;\n } else if (\n shouldObserve &&\n !isServerRendering() &&\n (Array.isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value._isVue\n ) {\n ob = new Observer(value);\n }\n if (asRootData && ob) {\n ob.vmCount++;\n }\n return ob\n }\n\n /**\n * Define a reactive property on an Object.\n */\n function defineReactive$$1 (\n obj,\n key,\n val,\n customSetter,\n shallow\n ) {\n var dep = new Dep();\n\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return\n }\n\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n var setter = property && property.set;\n if ((!getter || setter) && arguments.length === 2) {\n val = obj[key];\n }\n\n var childOb = !shallow && observe(val);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter () {\n var value = getter ? getter.call(obj) : val;\n if (Dep.target) {\n dep.depend();\n if (childOb) {\n childOb.dep.depend();\n if (Array.isArray(value)) {\n dependArray(value);\n }\n }\n }\n return value\n },\n set: function reactiveSetter (newVal) {\n var value = getter ? getter.call(obj) : val;\n /* eslint-disable no-self-compare */\n if (newVal === value || (newVal !== newVal && value !== value)) {\n return\n }\n /* eslint-enable no-self-compare */\n if (customSetter) {\n customSetter();\n }\n // #7981: for accessor properties without setter\n if (getter && !setter) { return }\n if (setter) {\n setter.call(obj, newVal);\n } else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal);\n dep.notify();\n }\n });\n }\n\n /**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\n function set (target, key, val) {\n if (isUndef(target) || isPrimitive(target)\n ) {\n warn((\"Cannot set reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n return val\n }\n if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n warn(\n 'Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.'\n );\n return val\n }\n if (!ob) {\n target[key] = val;\n return val\n }\n defineReactive$$1(ob.value, key, val);\n ob.dep.notify();\n return val\n }\n\n /**\n * Delete a property and trigger change if necessary.\n */\n function del (target, key) {\n if (isUndef(target) || isPrimitive(target)\n ) {\n warn((\"Cannot delete reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n warn(\n 'Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.'\n );\n return\n }\n if (!hasOwn(target, key)) {\n return\n }\n delete target[key];\n if (!ob) {\n return\n }\n ob.dep.notify();\n }\n\n /**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\n function dependArray (value) {\n for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n e = value[i];\n e && e.__ob__ && e.__ob__.dep.depend();\n if (Array.isArray(e)) {\n dependArray(e);\n }\n }\n }\n\n /* */\n\n /**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\n var strats = config.optionMergeStrategies;\n\n /**\n * Options with restrictions\n */\n {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn(\n \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n 'creation with the `new` keyword.'\n );\n }\n return defaultStrat(parent, child)\n };\n }\n\n /**\n * Helper that recursively merges two data objects together.\n */\n function mergeData (to, from) {\n if (!from) { return to }\n var key, toVal, fromVal;\n\n var keys = hasSymbol\n ? Reflect.ownKeys(from)\n : Object.keys(from);\n\n for (var i = 0; i < keys.length; i++) {\n key = keys[i];\n // in case the object is already observed...\n if (key === '__ob__') { continue }\n toVal = to[key];\n fromVal = from[key];\n if (!hasOwn(to, key)) {\n set(to, key, fromVal);\n } else if (\n toVal !== fromVal &&\n isPlainObject(toVal) &&\n isPlainObject(fromVal)\n ) {\n mergeData(toVal, fromVal);\n }\n }\n return to\n }\n\n /**\n * Data\n */\n function mergeDataOrFn (\n parentVal,\n childVal,\n vm\n ) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal\n }\n if (!parentVal) {\n return childVal\n }\n // when parentVal & childVal are both present,\n // we need to return a function that returns the\n // merged result of both functions... no need to\n // check if parentVal is a function here because\n // it has to be a function to pass previous merges.\n return function mergedDataFn () {\n return mergeData(\n typeof childVal === 'function' ? childVal.call(this, this) : childVal,\n typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal\n )\n }\n } else {\n return function mergedInstanceDataFn () {\n // instance merge\n var instanceData = typeof childVal === 'function'\n ? childVal.call(vm, vm)\n : childVal;\n var defaultData = typeof parentVal === 'function'\n ? parentVal.call(vm, vm)\n : parentVal;\n if (instanceData) {\n return mergeData(instanceData, defaultData)\n } else {\n return defaultData\n }\n }\n }\n }\n\n strats.data = function (\n parentVal,\n childVal,\n vm\n ) {\n if (!vm) {\n if (childVal && typeof childVal !== 'function') {\n warn(\n 'The \"data\" option should be a function ' +\n 'that returns a per-instance value in component ' +\n 'definitions.',\n vm\n );\n\n return parentVal\n }\n return mergeDataOrFn(parentVal, childVal)\n }\n\n return mergeDataOrFn(parentVal, childVal, vm)\n };\n\n /**\n * Hooks and props are merged as arrays.\n */\n function mergeHook (\n parentVal,\n childVal\n ) {\n var res = childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : Array.isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal;\n return res\n ? dedupeHooks(res)\n : res\n }\n\n function dedupeHooks (hooks) {\n var res = [];\n for (var i = 0; i < hooks.length; i++) {\n if (res.indexOf(hooks[i]) === -1) {\n res.push(hooks[i]);\n }\n }\n return res\n }\n\n LIFECYCLE_HOOKS.forEach(function (hook) {\n strats[hook] = mergeHook;\n });\n\n /**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\n function mergeAssets (\n parentVal,\n childVal,\n vm,\n key\n ) {\n var res = Object.create(parentVal || null);\n if (childVal) {\n assertObjectType(key, childVal, vm);\n return extend(res, childVal)\n } else {\n return res\n }\n }\n\n ASSET_TYPES.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n });\n\n /**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\n strats.watch = function (\n parentVal,\n childVal,\n vm,\n key\n ) {\n // work around Firefox's Object.prototype.watch...\n if (parentVal === nativeWatch) { parentVal = undefined; }\n if (childVal === nativeWatch) { childVal = undefined; }\n /* istanbul ignore if */\n if (!childVal) { return Object.create(parentVal || null) }\n {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = {};\n extend(ret, parentVal);\n for (var key$1 in childVal) {\n var parent = ret[key$1];\n var child = childVal[key$1];\n if (parent && !Array.isArray(parent)) {\n parent = [parent];\n }\n ret[key$1] = parent\n ? parent.concat(child)\n : Array.isArray(child) ? child : [child];\n }\n return ret\n };\n\n /**\n * Other object hashes.\n */\n strats.props =\n strats.methods =\n strats.inject =\n strats.computed = function (\n parentVal,\n childVal,\n vm,\n key\n ) {\n if (childVal && \"development\" !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = Object.create(null);\n extend(ret, parentVal);\n if (childVal) { extend(ret, childVal); }\n return ret\n };\n strats.provide = mergeDataOrFn;\n\n /**\n * Default strategy.\n */\n var defaultStrat = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n };\n\n /**\n * Validate component names\n */\n function checkComponents (options) {\n for (var key in options.components) {\n validateComponentName(key);\n }\n }\n\n function validateComponentName (name) {\n if (!new RegExp((\"^[a-zA-Z][\\\\-\\\\.0-9_\" + (unicodeRegExp.source) + \"]*$\")).test(name)) {\n warn(\n 'Invalid component name: \"' + name + '\". Component names ' +\n 'should conform to valid custom element name in html5 specification.'\n );\n }\n if (isBuiltInTag(name) || config.isReservedTag(name)) {\n warn(\n 'Do not use built-in or reserved HTML elements as component ' +\n 'id: ' + name\n );\n }\n }\n\n /**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\n function normalizeProps (options, vm) {\n var props = options.props;\n if (!props) { return }\n var res = {};\n var i, val, name;\n if (Array.isArray(props)) {\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = { type: null };\n } else {\n warn('props must be strings when using array syntax.');\n }\n }\n } else if (isPlainObject(props)) {\n for (var key in props) {\n val = props[key];\n name = camelize(key);\n res[name] = isPlainObject(val)\n ? val\n : { type: val };\n }\n } else {\n warn(\n \"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(props)) + \".\",\n vm\n );\n }\n options.props = res;\n }\n\n /**\n * Normalize all injections into Object-based format\n */\n function normalizeInject (options, vm) {\n var inject = options.inject;\n if (!inject) { return }\n var normalized = options.inject = {};\n if (Array.isArray(inject)) {\n for (var i = 0; i < inject.length; i++) {\n normalized[inject[i]] = { from: inject[i] };\n }\n } else if (isPlainObject(inject)) {\n for (var key in inject) {\n var val = inject[key];\n normalized[key] = isPlainObject(val)\n ? extend({ from: key }, val)\n : { from: val };\n }\n } else {\n warn(\n \"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(inject)) + \".\",\n vm\n );\n }\n }\n\n /**\n * Normalize raw function directives into object format.\n */\n function normalizeDirectives (options) {\n var dirs = options.directives;\n if (dirs) {\n for (var key in dirs) {\n var def$$1 = dirs[key];\n if (typeof def$$1 === 'function') {\n dirs[key] = { bind: def$$1, update: def$$1 };\n }\n }\n }\n }\n\n function assertObjectType (name, value, vm) {\n if (!isPlainObject(value)) {\n warn(\n \"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" +\n \"but got \" + (toRawType(value)) + \".\",\n vm\n );\n }\n }\n\n /**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\n function mergeOptions (\n parent,\n child,\n vm\n ) {\n {\n checkComponents(child);\n }\n\n if (typeof child === 'function') {\n child = child.options;\n }\n\n normalizeProps(child, vm);\n normalizeInject(child, vm);\n normalizeDirectives(child);\n\n // Apply extends and mixins on the child options,\n // but only if it is a raw options object that isn't\n // the result of another mergeOptions call.\n // Only merged options has the _base property.\n if (!child._base) {\n if (child.extends) {\n parent = mergeOptions(parent, child.extends, vm);\n }\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n parent = mergeOptions(parent, child.mixins[i], vm);\n }\n }\n }\n\n var options = {};\n var key;\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField (key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options\n }\n\n /**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\n function resolveAsset (\n options,\n type,\n id,\n warnMissing\n ) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return\n }\n var assets = options[type];\n // check local registration variations first\n if (hasOwn(assets, id)) { return assets[id] }\n var camelizedId = camelize(id);\n if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n var PascalCaseId = capitalize(camelizedId);\n if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n // fallback to prototype chain\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n if (warnMissing && !res) {\n warn(\n 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n options\n );\n }\n return res\n }\n\n /* */\n\n\n\n function validateProp (\n key,\n propOptions,\n propsData,\n vm\n ) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key];\n // boolean casting\n var booleanIndex = getTypeIndex(Boolean, prop.type);\n if (booleanIndex > -1) {\n if (absent && !hasOwn(prop, 'default')) {\n value = false;\n } else if (value === '' || value === hyphenate(key)) {\n // only cast empty string / same name to boolean if\n // boolean has higher priority\n var stringIndex = getTypeIndex(String, prop.type);\n if (stringIndex < 0 || booleanIndex < stringIndex) {\n value = true;\n }\n }\n }\n // check default value\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key);\n // since the default value is a fresh copy,\n // make sure to observe it.\n var prevShouldObserve = shouldObserve;\n toggleObserving(true);\n observe(value);\n toggleObserving(prevShouldObserve);\n }\n {\n assertProp(prop, key, value, vm, absent);\n }\n return value\n }\n\n /**\n * Get the default value of a prop.\n */\n function getPropDefaultValue (vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined\n }\n var def = prop.default;\n // warn against non-factory defaults for Object & Array\n if (isObject(def)) {\n warn(\n 'Invalid default value for prop \"' + key + '\": ' +\n 'Props with type Object/Array must use a factory function ' +\n 'to return the default value.',\n vm\n );\n }\n // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n if (vm && vm.$options.propsData &&\n vm.$options.propsData[key] === undefined &&\n vm._props[key] !== undefined\n ) {\n return vm._props[key]\n }\n // call factory function for non-Function types\n // a value is Function if its prototype is function even across different execution context\n return typeof def === 'function' && getType(prop.type) !== 'Function'\n ? def.call(vm)\n : def\n }\n\n /**\n * Assert whether a prop is valid.\n */\n function assertProp (\n prop,\n name,\n value,\n vm,\n absent\n ) {\n if (prop.required && absent) {\n warn(\n 'Missing required prop: \"' + name + '\"',\n vm\n );\n return\n }\n if (value == null && !prop.required) {\n return\n }\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n if (type) {\n if (!Array.isArray(type)) {\n type = [type];\n }\n for (var i = 0; i < type.length && !valid; i++) {\n var assertedType = assertType(value, type[i], vm);\n expectedTypes.push(assertedType.expectedType || '');\n valid = assertedType.valid;\n }\n }\n\n var haveExpectedTypes = expectedTypes.some(function (t) { return t; });\n if (!valid && haveExpectedTypes) {\n warn(\n getInvalidTypeMessage(name, value, expectedTypes),\n vm\n );\n return\n }\n var validator = prop.validator;\n if (validator) {\n if (!validator(value)) {\n warn(\n 'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n vm\n );\n }\n }\n }\n\n var simpleCheckRE = /^(String|Number|Boolean|Function|Symbol|BigInt)$/;\n\n function assertType (value, type, vm) {\n var valid;\n var expectedType = getType(type);\n if (simpleCheckRE.test(expectedType)) {\n var t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value);\n } else if (expectedType === 'Array') {\n valid = Array.isArray(value);\n } else {\n try {\n valid = value instanceof type;\n } catch (e) {\n warn('Invalid prop type: \"' + String(type) + '\" is not a constructor', vm);\n valid = false;\n }\n }\n return {\n valid: valid,\n expectedType: expectedType\n }\n }\n\n var functionTypeCheckRE = /^\\s*function (\\w+)/;\n\n /**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\n function getType (fn) {\n var match = fn && fn.toString().match(functionTypeCheckRE);\n return match ? match[1] : ''\n }\n\n function isSameType (a, b) {\n return getType(a) === getType(b)\n }\n\n function getTypeIndex (type, expectedTypes) {\n if (!Array.isArray(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1\n }\n for (var i = 0, len = expectedTypes.length; i < len; i++) {\n if (isSameType(expectedTypes[i], type)) {\n return i\n }\n }\n return -1\n }\n\n function getInvalidTypeMessage (name, value, expectedTypes) {\n var message = \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" +\n \" Expected \" + (expectedTypes.map(capitalize).join(', '));\n var expectedType = expectedTypes[0];\n var receivedType = toRawType(value);\n // check if we need to specify expected value\n if (\n expectedTypes.length === 1 &&\n isExplicable(expectedType) &&\n isExplicable(typeof value) &&\n !isBoolean(expectedType, receivedType)\n ) {\n message += \" with value \" + (styleValue(value, expectedType));\n }\n message += \", got \" + receivedType + \" \";\n // check if we need to specify received value\n if (isExplicable(receivedType)) {\n message += \"with value \" + (styleValue(value, receivedType)) + \".\";\n }\n return message\n }\n\n function styleValue (value, type) {\n if (type === 'String') {\n return (\"\\\"\" + value + \"\\\"\")\n } else if (type === 'Number') {\n return (\"\" + (Number(value)))\n } else {\n return (\"\" + value)\n }\n }\n\n var EXPLICABLE_TYPES = ['string', 'number', 'boolean'];\n function isExplicable (value) {\n return EXPLICABLE_TYPES.some(function (elem) { return value.toLowerCase() === elem; })\n }\n\n function isBoolean () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; })\n }\n\n /* */\n\n function handleError (err, vm, info) {\n // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.\n // See: https://github.com/vuejs/vuex/issues/1505\n pushTarget();\n try {\n if (vm) {\n var cur = vm;\n while ((cur = cur.$parent)) {\n var hooks = cur.$options.errorCaptured;\n if (hooks) {\n for (var i = 0; i < hooks.length; i++) {\n try {\n var capture = hooks[i].call(cur, err, vm, info) === false;\n if (capture) { return }\n } catch (e) {\n globalHandleError(e, cur, 'errorCaptured hook');\n }\n }\n }\n }\n }\n globalHandleError(err, vm, info);\n } finally {\n popTarget();\n }\n }\n\n function invokeWithErrorHandling (\n handler,\n context,\n args,\n vm,\n info\n ) {\n var res;\n try {\n res = args ? handler.apply(context, args) : handler.call(context);\n if (res && !res._isVue && isPromise(res) && !res._handled) {\n res.catch(function (e) { return handleError(e, vm, info + \" (Promise/async)\"); });\n // issue #9511\n // avoid catch triggering multiple times when nested calls\n res._handled = true;\n }\n } catch (e) {\n handleError(e, vm, info);\n }\n return res\n }\n\n function globalHandleError (err, vm, info) {\n if (config.errorHandler) {\n try {\n return config.errorHandler.call(null, err, vm, info)\n } catch (e) {\n // if the user intentionally throws the original error in the handler,\n // do not log it twice\n if (e !== err) {\n logError(e, null, 'config.errorHandler');\n }\n }\n }\n logError(err, vm, info);\n }\n\n function logError (err, vm, info) {\n {\n warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n }\n /* istanbul ignore else */\n if ((inBrowser || inWeex) && typeof console !== 'undefined') {\n console.error(err);\n } else {\n throw err\n }\n }\n\n /* */\n\n var isUsingMicroTask = false;\n\n var callbacks = [];\n var pending = false;\n\n function flushCallbacks () {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n }\n\n // Here we have async deferring wrappers using microtasks.\n // In 2.5 we used (macro) tasks (in combination with microtasks).\n // However, it has subtle problems when state is changed right before repaint\n // (e.g. #6813, out-in transitions).\n // Also, using (macro) tasks in event handler would cause some weird behaviors\n // that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).\n // So we now use microtasks everywhere, again.\n // A major drawback of this tradeoff is that there are some scenarios\n // where microtasks have too high a priority and fire in between supposedly\n // sequential events (e.g. #4521, #6690, which have workarounds)\n // or even between bubbling of the same event (#6566).\n var timerFunc;\n\n // The nextTick behavior leverages the microtask queue, which can be accessed\n // via either native Promise.then or MutationObserver.\n // MutationObserver has wider support, however it is seriously bugged in\n // UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\n // completely stops working after triggering a few times... so, if native\n // Promise is available, we will use it:\n /* istanbul ignore next, $flow-disable-line */\n if (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p = Promise.resolve();\n timerFunc = function () {\n p.then(flushCallbacks);\n // In problematic UIWebViews, Promise.then doesn't completely break, but\n // it can get stuck in a weird state where callbacks are pushed into the\n // microtask queue but the queue isn't being flushed, until the browser\n // needs to do some other work, e.g. handle a timer. Therefore we can\n // \"force\" the microtask queue to be flushed by adding an empty timer.\n if (isIOS) { setTimeout(noop); }\n };\n isUsingMicroTask = true;\n } else if (!isIE && typeof MutationObserver !== 'undefined' && (\n isNative(MutationObserver) ||\n // PhantomJS and iOS 7.x\n MutationObserver.toString() === '[object MutationObserverConstructor]'\n )) {\n // Use MutationObserver where native Promise is not available,\n // e.g. PhantomJS, iOS7, Android 4.4\n // (#6466 MutationObserver is unreliable in IE11)\n var counter = 1;\n var observer = new MutationObserver(flushCallbacks);\n var textNode = document.createTextNode(String(counter));\n observer.observe(textNode, {\n characterData: true\n });\n timerFunc = function () {\n counter = (counter + 1) % 2;\n textNode.data = String(counter);\n };\n isUsingMicroTask = true;\n } else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n // Fallback to setImmediate.\n // Technically it leverages the (macro) task queue,\n // but it is still a better choice than setTimeout.\n timerFunc = function () {\n setImmediate(flushCallbacks);\n };\n } else {\n // Fallback to setTimeout.\n timerFunc = function () {\n setTimeout(flushCallbacks, 0);\n };\n }\n\n function nextTick (cb, ctx) {\n var _resolve;\n callbacks.push(function () {\n if (cb) {\n try {\n cb.call(ctx);\n } catch (e) {\n handleError(e, ctx, 'nextTick');\n }\n } else if (_resolve) {\n _resolve(ctx);\n }\n });\n if (!pending) {\n pending = true;\n timerFunc();\n }\n // $flow-disable-line\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve) {\n _resolve = resolve;\n })\n }\n }\n\n /* */\n\n var mark;\n var measure;\n\n {\n var perf = inBrowser && window.performance;\n /* istanbul ignore if */\n if (\n perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n perf.clearMeasures\n ) {\n mark = function (tag) { return perf.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n // perf.clearMeasures(name)\n };\n }\n }\n\n /* not type checking this file because flow doesn't play well with Proxy */\n\n var initProxy;\n\n {\n var allowedGlobals = makeMap(\n 'Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,' +\n 'require' // for Webpack/Browserify\n );\n\n var warnNonPresent = function (target, key) {\n warn(\n \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n 'referenced during render. Make sure that this property is reactive, ' +\n 'either in the data option, or for class-based components, by ' +\n 'initializing the property. ' +\n 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',\n target\n );\n };\n\n var warnReservedPrefix = function (target, key) {\n warn(\n \"Property \\\"\" + key + \"\\\" must be accessed with \\\"$data.\" + key + \"\\\" because \" +\n 'properties starting with \"$\" or \"_\" are not proxied in the Vue instance to ' +\n 'prevent conflicts with Vue internals. ' +\n 'See: https://vuejs.org/v2/api/#data',\n target\n );\n };\n\n var hasProxy =\n typeof Proxy !== 'undefined' && isNative(Proxy);\n\n if (hasProxy) {\n var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function set (target, key, value) {\n if (isBuiltInModifier(key)) {\n warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n return false\n } else {\n target[key] = value;\n return true\n }\n }\n });\n }\n\n var hasHandler = {\n has: function has (target, key) {\n var has = key in target;\n var isAllowed = allowedGlobals(key) ||\n (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data));\n if (!has && !isAllowed) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return has || !isAllowed\n }\n };\n\n var getHandler = {\n get: function get (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return target[key]\n }\n };\n\n initProxy = function initProxy (vm) {\n if (hasProxy) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped\n ? getHandler\n : hasHandler;\n vm._renderProxy = new Proxy(vm, handlers);\n } else {\n vm._renderProxy = vm;\n }\n };\n }\n\n /* */\n\n var seenObjects = new _Set();\n\n /**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\n function traverse (val) {\n _traverse(val, seenObjects);\n seenObjects.clear();\n }\n\n function _traverse (val, seen) {\n var i, keys;\n var isA = Array.isArray(val);\n if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {\n return\n }\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n if (seen.has(depId)) {\n return\n }\n seen.add(depId);\n }\n if (isA) {\n i = val.length;\n while (i--) { _traverse(val[i], seen); }\n } else {\n keys = Object.keys(val);\n i = keys.length;\n while (i--) { _traverse(val[keys[i]], seen); }\n }\n }\n\n /* */\n\n var normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once$$1 ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once$$1,\n capture: capture,\n passive: passive\n }\n });\n\n function createFnInvoker (fns, vm) {\n function invoker () {\n var arguments$1 = arguments;\n\n var fns = invoker.fns;\n if (Array.isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n invokeWithErrorHandling(cloned[i], null, arguments$1, vm, \"v-on handler\");\n }\n } else {\n // return handler return value for single handlers\n return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\")\n }\n }\n invoker.fns = fns;\n return invoker\n }\n\n function updateListeners (\n on,\n oldOn,\n add,\n remove$$1,\n createOnceHandler,\n vm\n ) {\n var name, def$$1, cur, old, event;\n for (name in on) {\n def$$1 = cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n if (isUndef(cur)) {\n warn(\n \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n vm\n );\n } else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur, vm);\n }\n if (isTrue(event.once)) {\n cur = on[name] = createOnceHandler(event.name, cur, event.capture);\n }\n add(event.name, cur, event.capture, event.passive, event.params);\n } else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove$$1(event.name, oldOn[name], event.capture);\n }\n }\n }\n\n /* */\n\n function mergeVNodeHook (def, hookKey, hook) {\n if (def instanceof VNode) {\n def = def.data.hook || (def.data.hook = {});\n }\n var invoker;\n var oldHook = def[hookKey];\n\n function wrappedHook () {\n hook.apply(this, arguments);\n // important: remove merged hook to ensure it's called only once\n // and prevent memory leak\n remove(invoker.fns, wrappedHook);\n }\n\n if (isUndef(oldHook)) {\n // no existing hook\n invoker = createFnInvoker([wrappedHook]);\n } else {\n /* istanbul ignore if */\n if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\n // already a merged invoker\n invoker = oldHook;\n invoker.fns.push(wrappedHook);\n } else {\n // existing plain hook\n invoker = createFnInvoker([oldHook, wrappedHook]);\n }\n }\n\n invoker.merged = true;\n def[hookKey] = invoker;\n }\n\n /* */\n\n function extractPropsFromVNodeData (\n data,\n Ctor,\n tag\n ) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n return\n }\n var res = {};\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n {\n var keyInLowerCase = key.toLowerCase();\n if (\n key !== keyInLowerCase &&\n attrs && hasOwn(attrs, keyInLowerCase)\n ) {\n tip(\n \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n \" \\\"\" + key + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n );\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n return res\n }\n\n function checkProp (\n res,\n hash,\n key,\n altKey,\n preserve\n ) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true\n } else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true\n }\n }\n return false\n }\n\n /* */\n\n // The template compiler attempts to minimize the need for normalization by\n // statically analyzing the template at compile time.\n //\n // For plain HTML markup, normalization can be completely skipped because the\n // generated render function is guaranteed to return Array. There are\n // two cases where extra normalization is needed:\n\n // 1. When the children contains components - because a functional component\n // may return an Array instead of a single root. In this case, just a simple\n // normalization is needed - if any child is an Array, we flatten the whole\n // thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n // because functional components already normalize their own children.\n function simpleNormalizeChildren (children) {\n for (var i = 0; i < children.length; i++) {\n if (Array.isArray(children[i])) {\n return Array.prototype.concat.apply([], children)\n }\n }\n return children\n }\n\n // 2. When the children contains constructs that always generated nested Arrays,\n // e.g. , , v-for, or when the children is provided by user\n // with hand-written render functions / JSX. In such cases a full normalization\n // is needed to cater to all possible types of children values.\n function normalizeChildren (children) {\n return isPrimitive(children)\n ? [createTextVNode(children)]\n : Array.isArray(children)\n ? normalizeArrayChildren(children)\n : undefined\n }\n\n function isTextNode (node) {\n return isDef(node) && isDef(node.text) && isFalse(node.isComment)\n }\n\n function normalizeArrayChildren (children, nestedIndex) {\n var res = [];\n var i, c, lastIndex, last;\n for (i = 0; i < children.length; i++) {\n c = children[i];\n if (isUndef(c) || typeof c === 'boolean') { continue }\n lastIndex = res.length - 1;\n last = res[lastIndex];\n // nested\n if (Array.isArray(c)) {\n if (c.length > 0) {\n c = normalizeArrayChildren(c, ((nestedIndex || '') + \"_\" + i));\n // merge adjacent text nodes\n if (isTextNode(c[0]) && isTextNode(last)) {\n res[lastIndex] = createTextVNode(last.text + (c[0]).text);\n c.shift();\n }\n res.push.apply(res, c);\n }\n } else if (isPrimitive(c)) {\n if (isTextNode(last)) {\n // merge adjacent text nodes\n // this is necessary for SSR hydration because text nodes are\n // essentially merged when rendered to HTML strings\n res[lastIndex] = createTextVNode(last.text + c);\n } else if (c !== '') {\n // convert primitive to vnode\n res.push(createTextVNode(c));\n }\n } else {\n if (isTextNode(c) && isTextNode(last)) {\n // merge adjacent text nodes\n res[lastIndex] = createTextVNode(last.text + c.text);\n } else {\n // default key for nested array children (likely generated by v-for)\n if (isTrue(children._isVList) &&\n isDef(c.tag) &&\n isUndef(c.key) &&\n isDef(nestedIndex)) {\n c.key = \"__vlist\" + nestedIndex + \"_\" + i + \"__\";\n }\n res.push(c);\n }\n }\n }\n return res\n }\n\n /* */\n\n function initProvide (vm) {\n var provide = vm.$options.provide;\n if (provide) {\n vm._provided = typeof provide === 'function'\n ? provide.call(vm)\n : provide;\n }\n }\n\n function initInjections (vm) {\n var result = resolveInject(vm.$options.inject, vm);\n if (result) {\n toggleObserving(false);\n Object.keys(result).forEach(function (key) {\n /* istanbul ignore else */\n {\n defineReactive$$1(vm, key, result[key], function () {\n warn(\n \"Avoid mutating an injected value directly since the changes will be \" +\n \"overwritten whenever the provided component re-renders. \" +\n \"injection being mutated: \\\"\" + key + \"\\\"\",\n vm\n );\n });\n }\n });\n toggleObserving(true);\n }\n }\n\n function resolveInject (inject, vm) {\n if (inject) {\n // inject is :any because flow is not smart enough to figure out cached\n var result = Object.create(null);\n var keys = hasSymbol\n ? Reflect.ownKeys(inject)\n : Object.keys(inject);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n // #6574 in case the inject object is observed...\n if (key === '__ob__') { continue }\n var provideKey = inject[key].from;\n var source = vm;\n while (source) {\n if (source._provided && hasOwn(source._provided, provideKey)) {\n result[key] = source._provided[provideKey];\n break\n }\n source = source.$parent;\n }\n if (!source) {\n if ('default' in inject[key]) {\n var provideDefault = inject[key].default;\n result[key] = typeof provideDefault === 'function'\n ? provideDefault.call(vm)\n : provideDefault;\n } else {\n warn((\"Injection \\\"\" + key + \"\\\" not found\"), vm);\n }\n }\n }\n return result\n }\n }\n\n /* */\n\n\n\n /**\n * Runtime helper for resolving raw children VNodes into a slot object.\n */\n function resolveSlots (\n children,\n context\n ) {\n if (!children || !children.length) {\n return {}\n }\n var slots = {};\n for (var i = 0, l = children.length; i < l; i++) {\n var child = children[i];\n var data = child.data;\n // remove slot attribute if the node is resolved as a Vue slot node\n if (data && data.attrs && data.attrs.slot) {\n delete data.attrs.slot;\n }\n // named slots should only be respected if the vnode was rendered in the\n // same context.\n if ((child.context === context || child.fnContext === context) &&\n data && data.slot != null\n ) {\n var name = data.slot;\n var slot = (slots[name] || (slots[name] = []));\n if (child.tag === 'template') {\n slot.push.apply(slot, child.children || []);\n } else {\n slot.push(child);\n }\n } else {\n (slots.default || (slots.default = [])).push(child);\n }\n }\n // ignore slots that contains only whitespace\n for (var name$1 in slots) {\n if (slots[name$1].every(isWhitespace)) {\n delete slots[name$1];\n }\n }\n return slots\n }\n\n function isWhitespace (node) {\n return (node.isComment && !node.asyncFactory) || node.text === ' '\n }\n\n /* */\n\n function isAsyncPlaceholder (node) {\n return node.isComment && node.asyncFactory\n }\n\n /* */\n\n function normalizeScopedSlots (\n slots,\n normalSlots,\n prevSlots\n ) {\n var res;\n var hasNormalSlots = Object.keys(normalSlots).length > 0;\n var isStable = slots ? !!slots.$stable : !hasNormalSlots;\n var key = slots && slots.$key;\n if (!slots) {\n res = {};\n } else if (slots._normalized) {\n // fast path 1: child component re-render only, parent did not change\n return slots._normalized\n } else if (\n isStable &&\n prevSlots &&\n prevSlots !== emptyObject &&\n key === prevSlots.$key &&\n !hasNormalSlots &&\n !prevSlots.$hasNormal\n ) {\n // fast path 2: stable scoped slots w/ no normal slots to proxy,\n // only need to normalize once\n return prevSlots\n } else {\n res = {};\n for (var key$1 in slots) {\n if (slots[key$1] && key$1[0] !== '$') {\n res[key$1] = normalizeScopedSlot(normalSlots, key$1, slots[key$1]);\n }\n }\n }\n // expose normal slots on scopedSlots\n for (var key$2 in normalSlots) {\n if (!(key$2 in res)) {\n res[key$2] = proxyNormalSlot(normalSlots, key$2);\n }\n }\n // avoriaz seems to mock a non-extensible $scopedSlots object\n // and when that is passed down this would cause an error\n if (slots && Object.isExtensible(slots)) {\n (slots)._normalized = res;\n }\n def(res, '$stable', isStable);\n def(res, '$key', key);\n def(res, '$hasNormal', hasNormalSlots);\n return res\n }\n\n function normalizeScopedSlot(normalSlots, key, fn) {\n var normalized = function () {\n var res = arguments.length ? fn.apply(null, arguments) : fn({});\n res = res && typeof res === 'object' && !Array.isArray(res)\n ? [res] // single vnode\n : normalizeChildren(res);\n var vnode = res && res[0];\n return res && (\n !vnode ||\n (res.length === 1 && vnode.isComment && !isAsyncPlaceholder(vnode)) // #9658, #10391\n ) ? undefined\n : res\n };\n // this is a slot using the new v-slot syntax without scope. although it is\n // compiled as a scoped slot, render fn users would expect it to be present\n // on this.$slots because the usage is semantically a normal slot.\n if (fn.proxy) {\n Object.defineProperty(normalSlots, key, {\n get: normalized,\n enumerable: true,\n configurable: true\n });\n }\n return normalized\n }\n\n function proxyNormalSlot(slots, key) {\n return function () { return slots[key]; }\n }\n\n /* */\n\n /**\n * Runtime helper for rendering v-for lists.\n */\n function renderList (\n val,\n render\n ) {\n var ret, i, l, keys, key;\n if (Array.isArray(val) || typeof val === 'string') {\n ret = new Array(val.length);\n for (i = 0, l = val.length; i < l; i++) {\n ret[i] = render(val[i], i);\n }\n } else if (typeof val === 'number') {\n ret = new Array(val);\n for (i = 0; i < val; i++) {\n ret[i] = render(i + 1, i);\n }\n } else if (isObject(val)) {\n if (hasSymbol && val[Symbol.iterator]) {\n ret = [];\n var iterator = val[Symbol.iterator]();\n var result = iterator.next();\n while (!result.done) {\n ret.push(render(result.value, ret.length));\n result = iterator.next();\n }\n } else {\n keys = Object.keys(val);\n ret = new Array(keys.length);\n for (i = 0, l = keys.length; i < l; i++) {\n key = keys[i];\n ret[i] = render(val[key], key, i);\n }\n }\n }\n if (!isDef(ret)) {\n ret = [];\n }\n (ret)._isVList = true;\n return ret\n }\n\n /* */\n\n /**\n * Runtime helper for rendering \n */\n function renderSlot (\n name,\n fallbackRender,\n props,\n bindObject\n ) {\n var scopedSlotFn = this.$scopedSlots[name];\n var nodes;\n if (scopedSlotFn) {\n // scoped slot\n props = props || {};\n if (bindObject) {\n if (!isObject(bindObject)) {\n warn('slot v-bind without argument expects an Object', this);\n }\n props = extend(extend({}, bindObject), props);\n }\n nodes =\n scopedSlotFn(props) ||\n (typeof fallbackRender === 'function' ? fallbackRender() : fallbackRender);\n } else {\n nodes =\n this.$slots[name] ||\n (typeof fallbackRender === 'function' ? fallbackRender() : fallbackRender);\n }\n\n var target = props && props.slot;\n if (target) {\n return this.$createElement('template', { slot: target }, nodes)\n } else {\n return nodes\n }\n }\n\n /* */\n\n /**\n * Runtime helper for resolving filters\n */\n function resolveFilter (id) {\n return resolveAsset(this.$options, 'filters', id, true) || identity\n }\n\n /* */\n\n function isKeyNotMatch (expect, actual) {\n if (Array.isArray(expect)) {\n return expect.indexOf(actual) === -1\n } else {\n return expect !== actual\n }\n }\n\n /**\n * Runtime helper for checking keyCodes from config.\n * exposed as Vue.prototype._k\n * passing in eventKeyName as last argument separately for backwards compat\n */\n function checkKeyCodes (\n eventKeyCode,\n key,\n builtInKeyCode,\n eventKeyName,\n builtInKeyName\n ) {\n var mappedKeyCode = config.keyCodes[key] || builtInKeyCode;\n if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {\n return isKeyNotMatch(builtInKeyName, eventKeyName)\n } else if (mappedKeyCode) {\n return isKeyNotMatch(mappedKeyCode, eventKeyCode)\n } else if (eventKeyName) {\n return hyphenate(eventKeyName) !== key\n }\n return eventKeyCode === undefined\n }\n\n /* */\n\n /**\n * Runtime helper for merging v-bind=\"object\" into a VNode's data.\n */\n function bindObjectProps (\n data,\n tag,\n value,\n asProp,\n isSync\n ) {\n if (value) {\n if (!isObject(value)) {\n warn(\n 'v-bind without argument expects an Object or Array value',\n this\n );\n } else {\n if (Array.isArray(value)) {\n value = toObject(value);\n }\n var hash;\n var loop = function ( key ) {\n if (\n key === 'class' ||\n key === 'style' ||\n isReservedAttribute(key)\n ) {\n hash = data;\n } else {\n var type = data.attrs && data.attrs.type;\n hash = asProp || config.mustUseProp(tag, type, key)\n ? data.domProps || (data.domProps = {})\n : data.attrs || (data.attrs = {});\n }\n var camelizedKey = camelize(key);\n var hyphenatedKey = hyphenate(key);\n if (!(camelizedKey in hash) && !(hyphenatedKey in hash)) {\n hash[key] = value[key];\n\n if (isSync) {\n var on = data.on || (data.on = {});\n on[(\"update:\" + key)] = function ($event) {\n value[key] = $event;\n };\n }\n }\n };\n\n for (var key in value) loop( key );\n }\n }\n return data\n }\n\n /* */\n\n /**\n * Runtime helper for rendering static trees.\n */\n function renderStatic (\n index,\n isInFor\n ) {\n var cached = this._staticTrees || (this._staticTrees = []);\n var tree = cached[index];\n // if has already-rendered static tree and not inside v-for,\n // we can reuse the same tree.\n if (tree && !isInFor) {\n return tree\n }\n // otherwise, render a fresh tree.\n tree = cached[index] = this.$options.staticRenderFns[index].call(\n this._renderProxy,\n null,\n this // for render fns generated for functional component templates\n );\n markStatic(tree, (\"__static__\" + index), false);\n return tree\n }\n\n /**\n * Runtime helper for v-once.\n * Effectively it means marking the node as static with a unique key.\n */\n function markOnce (\n tree,\n index,\n key\n ) {\n markStatic(tree, (\"__once__\" + index + (key ? (\"_\" + key) : \"\")), true);\n return tree\n }\n\n function markStatic (\n tree,\n key,\n isOnce\n ) {\n if (Array.isArray(tree)) {\n for (var i = 0; i < tree.length; i++) {\n if (tree[i] && typeof tree[i] !== 'string') {\n markStaticNode(tree[i], (key + \"_\" + i), isOnce);\n }\n }\n } else {\n markStaticNode(tree, key, isOnce);\n }\n }\n\n function markStaticNode (node, key, isOnce) {\n node.isStatic = true;\n node.key = key;\n node.isOnce = isOnce;\n }\n\n /* */\n\n function bindObjectListeners (data, value) {\n if (value) {\n if (!isPlainObject(value)) {\n warn(\n 'v-on without argument expects an Object value',\n this\n );\n } else {\n var on = data.on = data.on ? extend({}, data.on) : {};\n for (var key in value) {\n var existing = on[key];\n var ours = value[key];\n on[key] = existing ? [].concat(existing, ours) : ours;\n }\n }\n }\n return data\n }\n\n /* */\n\n function resolveScopedSlots (\n fns, // see flow/vnode\n res,\n // the following are added in 2.6\n hasDynamicKeys,\n contentHashKey\n ) {\n res = res || { $stable: !hasDynamicKeys };\n for (var i = 0; i < fns.length; i++) {\n var slot = fns[i];\n if (Array.isArray(slot)) {\n resolveScopedSlots(slot, res, hasDynamicKeys);\n } else if (slot) {\n // marker for reverse proxying v-slot without scope on this.$slots\n if (slot.proxy) {\n slot.fn.proxy = true;\n }\n res[slot.key] = slot.fn;\n }\n }\n if (contentHashKey) {\n (res).$key = contentHashKey;\n }\n return res\n }\n\n /* */\n\n function bindDynamicKeys (baseObj, values) {\n for (var i = 0; i < values.length; i += 2) {\n var key = values[i];\n if (typeof key === 'string' && key) {\n baseObj[values[i]] = values[i + 1];\n } else if (key !== '' && key !== null) {\n // null is a special value for explicitly removing a binding\n warn(\n (\"Invalid value for dynamic directive argument (expected string or null): \" + key),\n this\n );\n }\n }\n return baseObj\n }\n\n // helper to dynamically append modifier runtime markers to event names.\n // ensure only append when value is already string, otherwise it will be cast\n // to string and cause the type check to miss.\n function prependModifier (value, symbol) {\n return typeof value === 'string' ? symbol + value : value\n }\n\n /* */\n\n function installRenderHelpers (target) {\n target._o = markOnce;\n target._n = toNumber;\n target._s = toString;\n target._l = renderList;\n target._t = renderSlot;\n target._q = looseEqual;\n target._i = looseIndexOf;\n target._m = renderStatic;\n target._f = resolveFilter;\n target._k = checkKeyCodes;\n target._b = bindObjectProps;\n target._v = createTextVNode;\n target._e = createEmptyVNode;\n target._u = resolveScopedSlots;\n target._g = bindObjectListeners;\n target._d = bindDynamicKeys;\n target._p = prependModifier;\n }\n\n /* */\n\n function FunctionalRenderContext (\n data,\n props,\n children,\n parent,\n Ctor\n ) {\n var this$1 = this;\n\n var options = Ctor.options;\n // ensure the createElement function in functional components\n // gets a unique context - this is necessary for correct named slot check\n var contextVm;\n if (hasOwn(parent, '_uid')) {\n contextVm = Object.create(parent);\n // $flow-disable-line\n contextVm._original = parent;\n } else {\n // the context vm passed in is a functional context as well.\n // in this case we want to make sure we are able to get a hold to the\n // real context instance.\n contextVm = parent;\n // $flow-disable-line\n parent = parent._original;\n }\n var isCompiled = isTrue(options._compiled);\n var needNormalization = !isCompiled;\n\n this.data = data;\n this.props = props;\n this.children = children;\n this.parent = parent;\n this.listeners = data.on || emptyObject;\n this.injections = resolveInject(options.inject, parent);\n this.slots = function () {\n if (!this$1.$slots) {\n normalizeScopedSlots(\n data.scopedSlots,\n this$1.$slots = resolveSlots(children, parent)\n );\n }\n return this$1.$slots\n };\n\n Object.defineProperty(this, 'scopedSlots', ({\n enumerable: true,\n get: function get () {\n return normalizeScopedSlots(data.scopedSlots, this.slots())\n }\n }));\n\n // support for compiled functional template\n if (isCompiled) {\n // exposing $options for renderStatic()\n this.$options = options;\n // pre-resolve slots for renderSlot()\n this.$slots = this.slots();\n this.$scopedSlots = normalizeScopedSlots(data.scopedSlots, this.$slots);\n }\n\n if (options._scopeId) {\n this._c = function (a, b, c, d) {\n var vnode = createElement(contextVm, a, b, c, d, needNormalization);\n if (vnode && !Array.isArray(vnode)) {\n vnode.fnScopeId = options._scopeId;\n vnode.fnContext = parent;\n }\n return vnode\n };\n } else {\n this._c = function (a, b, c, d) { return createElement(contextVm, a, b, c, d, needNormalization); };\n }\n }\n\n installRenderHelpers(FunctionalRenderContext.prototype);\n\n function createFunctionalComponent (\n Ctor,\n propsData,\n data,\n contextVm,\n children\n ) {\n var options = Ctor.options;\n var props = {};\n var propOptions = options.props;\n if (isDef(propOptions)) {\n for (var key in propOptions) {\n props[key] = validateProp(key, propOptions, propsData || emptyObject);\n }\n } else {\n if (isDef(data.attrs)) { mergeProps(props, data.attrs); }\n if (isDef(data.props)) { mergeProps(props, data.props); }\n }\n\n var renderContext = new FunctionalRenderContext(\n data,\n props,\n children,\n contextVm,\n Ctor\n );\n\n var vnode = options.render.call(null, renderContext._c, renderContext);\n\n if (vnode instanceof VNode) {\n return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options, renderContext)\n } else if (Array.isArray(vnode)) {\n var vnodes = normalizeChildren(vnode) || [];\n var res = new Array(vnodes.length);\n for (var i = 0; i < vnodes.length; i++) {\n res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options, renderContext);\n }\n return res\n }\n }\n\n function cloneAndMarkFunctionalResult (vnode, data, contextVm, options, renderContext) {\n // #7817 clone node before setting fnContext, otherwise if the node is reused\n // (e.g. it was from a cached normal slot) the fnContext causes named slots\n // that should not be matched to match.\n var clone = cloneVNode(vnode);\n clone.fnContext = contextVm;\n clone.fnOptions = options;\n {\n (clone.devtoolsMeta = clone.devtoolsMeta || {}).renderContext = renderContext;\n }\n if (data.slot) {\n (clone.data || (clone.data = {})).slot = data.slot;\n }\n return clone\n }\n\n function mergeProps (to, from) {\n for (var key in from) {\n to[camelize(key)] = from[key];\n }\n }\n\n /* */\n\n /* */\n\n /* */\n\n /* */\n\n // inline hooks to be invoked on component VNodes during patch\n var componentVNodeHooks = {\n init: function init (vnode, hydrating) {\n if (\n vnode.componentInstance &&\n !vnode.componentInstance._isDestroyed &&\n vnode.data.keepAlive\n ) {\n // kept-alive components, treat as a patch\n var mountedNode = vnode; // work around flow\n componentVNodeHooks.prepatch(mountedNode, mountedNode);\n } else {\n var child = vnode.componentInstance = createComponentInstanceForVnode(\n vnode,\n activeInstance\n );\n child.$mount(hydrating ? vnode.elm : undefined, hydrating);\n }\n },\n\n prepatch: function prepatch (oldVnode, vnode) {\n var options = vnode.componentOptions;\n var child = vnode.componentInstance = oldVnode.componentInstance;\n updateChildComponent(\n child,\n options.propsData, // updated props\n options.listeners, // updated listeners\n vnode, // new parent vnode\n options.children // new children\n );\n },\n\n insert: function insert (vnode) {\n var context = vnode.context;\n var componentInstance = vnode.componentInstance;\n if (!componentInstance._isMounted) {\n componentInstance._isMounted = true;\n callHook(componentInstance, 'mounted');\n }\n if (vnode.data.keepAlive) {\n if (context._isMounted) {\n // vue-router#1212\n // During updates, a kept-alive component's child components may\n // change, so directly walking the tree here may call activated hooks\n // on incorrect children. Instead we push them into a queue which will\n // be processed after the whole patch process ended.\n queueActivatedComponent(componentInstance);\n } else {\n activateChildComponent(componentInstance, true /* direct */);\n }\n }\n },\n\n destroy: function destroy (vnode) {\n var componentInstance = vnode.componentInstance;\n if (!componentInstance._isDestroyed) {\n if (!vnode.data.keepAlive) {\n componentInstance.$destroy();\n } else {\n deactivateChildComponent(componentInstance, true /* direct */);\n }\n }\n }\n };\n\n var hooksToMerge = Object.keys(componentVNodeHooks);\n\n function createComponent (\n Ctor,\n data,\n context,\n children,\n tag\n ) {\n if (isUndef(Ctor)) {\n return\n }\n\n var baseCtor = context.$options._base;\n\n // plain options object: turn it into a constructor\n if (isObject(Ctor)) {\n Ctor = baseCtor.extend(Ctor);\n }\n\n // if at this stage it's not a constructor or an async component factory,\n // reject.\n if (typeof Ctor !== 'function') {\n {\n warn((\"Invalid Component definition: \" + (String(Ctor))), context);\n }\n return\n }\n\n // async component\n var asyncFactory;\n if (isUndef(Ctor.cid)) {\n asyncFactory = Ctor;\n Ctor = resolveAsyncComponent(asyncFactory, baseCtor);\n if (Ctor === undefined) {\n // return a placeholder node for async component, which is rendered\n // as a comment node but preserves all the raw information for the node.\n // the information will be used for async server-rendering and hydration.\n return createAsyncPlaceholder(\n asyncFactory,\n data,\n context,\n children,\n tag\n )\n }\n }\n\n data = data || {};\n\n // resolve constructor options in case global mixins are applied after\n // component constructor creation\n resolveConstructorOptions(Ctor);\n\n // transform component v-model data into props & events\n if (isDef(data.model)) {\n transformModel(Ctor.options, data);\n }\n\n // extract props\n var propsData = extractPropsFromVNodeData(data, Ctor, tag);\n\n // functional component\n if (isTrue(Ctor.options.functional)) {\n return createFunctionalComponent(Ctor, propsData, data, context, children)\n }\n\n // extract listeners, since these needs to be treated as\n // child component listeners instead of DOM listeners\n var listeners = data.on;\n // replace with listeners with .native modifier\n // so it gets processed during parent component patch.\n data.on = data.nativeOn;\n\n if (isTrue(Ctor.options.abstract)) {\n // abstract components do not keep anything\n // other than props & listeners & slot\n\n // work around flow\n var slot = data.slot;\n data = {};\n if (slot) {\n data.slot = slot;\n }\n }\n\n // install component management hooks onto the placeholder node\n installComponentHooks(data);\n\n // return a placeholder vnode\n var name = Ctor.options.name || tag;\n var vnode = new VNode(\n (\"vue-component-\" + (Ctor.cid) + (name ? (\"-\" + name) : '')),\n data, undefined, undefined, undefined, context,\n { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children },\n asyncFactory\n );\n\n return vnode\n }\n\n function createComponentInstanceForVnode (\n // we know it's MountedComponentVNode but flow doesn't\n vnode,\n // activeInstance in lifecycle state\n parent\n ) {\n var options = {\n _isComponent: true,\n _parentVnode: vnode,\n parent: parent\n };\n // check inline-template render functions\n var inlineTemplate = vnode.data.inlineTemplate;\n if (isDef(inlineTemplate)) {\n options.render = inlineTemplate.render;\n options.staticRenderFns = inlineTemplate.staticRenderFns;\n }\n return new vnode.componentOptions.Ctor(options)\n }\n\n function installComponentHooks (data) {\n var hooks = data.hook || (data.hook = {});\n for (var i = 0; i < hooksToMerge.length; i++) {\n var key = hooksToMerge[i];\n var existing = hooks[key];\n var toMerge = componentVNodeHooks[key];\n if (existing !== toMerge && !(existing && existing._merged)) {\n hooks[key] = existing ? mergeHook$1(toMerge, existing) : toMerge;\n }\n }\n }\n\n function mergeHook$1 (f1, f2) {\n var merged = function (a, b) {\n // flow complains about extra args which is why we use any\n f1(a, b);\n f2(a, b);\n };\n merged._merged = true;\n return merged\n }\n\n // transform component v-model info (value and callback) into\n // prop and event handler respectively.\n function transformModel (options, data) {\n var prop = (options.model && options.model.prop) || 'value';\n var event = (options.model && options.model.event) || 'input'\n ;(data.attrs || (data.attrs = {}))[prop] = data.model.value;\n var on = data.on || (data.on = {});\n var existing = on[event];\n var callback = data.model.callback;\n if (isDef(existing)) {\n if (\n Array.isArray(existing)\n ? existing.indexOf(callback) === -1\n : existing !== callback\n ) {\n on[event] = [callback].concat(existing);\n }\n } else {\n on[event] = callback;\n }\n }\n\n /* */\n\n var SIMPLE_NORMALIZE = 1;\n var ALWAYS_NORMALIZE = 2;\n\n // wrapper function for providing a more flexible interface\n // without getting yelled at by flow\n function createElement (\n context,\n tag,\n data,\n children,\n normalizationType,\n alwaysNormalize\n ) {\n if (Array.isArray(data) || isPrimitive(data)) {\n normalizationType = children;\n children = data;\n data = undefined;\n }\n if (isTrue(alwaysNormalize)) {\n normalizationType = ALWAYS_NORMALIZE;\n }\n return _createElement(context, tag, data, children, normalizationType)\n }\n\n function _createElement (\n context,\n tag,\n data,\n children,\n normalizationType\n ) {\n if (isDef(data) && isDef((data).__ob__)) {\n warn(\n \"Avoid using observed data object as vnode data: \" + (JSON.stringify(data)) + \"\\n\" +\n 'Always create fresh vnode data objects in each render!',\n context\n );\n return createEmptyVNode()\n }\n // object syntax in v-bind\n if (isDef(data) && isDef(data.is)) {\n tag = data.is;\n }\n if (!tag) {\n // in case of component :is set to falsy value\n return createEmptyVNode()\n }\n // warn against non-primitive key\n if (isDef(data) && isDef(data.key) && !isPrimitive(data.key)\n ) {\n {\n warn(\n 'Avoid using non-primitive value as key, ' +\n 'use string/number value instead.',\n context\n );\n }\n }\n // support single function children as default scoped slot\n if (Array.isArray(children) &&\n typeof children[0] === 'function'\n ) {\n data = data || {};\n data.scopedSlots = { default: children[0] };\n children.length = 0;\n }\n if (normalizationType === ALWAYS_NORMALIZE) {\n children = normalizeChildren(children);\n } else if (normalizationType === SIMPLE_NORMALIZE) {\n children = simpleNormalizeChildren(children);\n }\n var vnode, ns;\n if (typeof tag === 'string') {\n var Ctor;\n ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);\n if (config.isReservedTag(tag)) {\n // platform built-in elements\n if (isDef(data) && isDef(data.nativeOn) && data.tag !== 'component') {\n warn(\n (\"The .native modifier for v-on is only valid on components but it was used on <\" + tag + \">.\"),\n context\n );\n }\n vnode = new VNode(\n config.parsePlatformTagName(tag), data, children,\n undefined, undefined, context\n );\n } else if ((!data || !data.pre) && isDef(Ctor = resolveAsset(context.$options, 'components', tag))) {\n // component\n vnode = createComponent(Ctor, data, context, children, tag);\n } else {\n // unknown or unlisted namespaced elements\n // check at runtime because it may get assigned a namespace when its\n // parent normalizes children\n vnode = new VNode(\n tag, data, children,\n undefined, undefined, context\n );\n }\n } else {\n // direct component options / constructor\n vnode = createComponent(tag, data, context, children);\n }\n if (Array.isArray(vnode)) {\n return vnode\n } else if (isDef(vnode)) {\n if (isDef(ns)) { applyNS(vnode, ns); }\n if (isDef(data)) { registerDeepBindings(data); }\n return vnode\n } else {\n return createEmptyVNode()\n }\n }\n\n function applyNS (vnode, ns, force) {\n vnode.ns = ns;\n if (vnode.tag === 'foreignObject') {\n // use default namespace inside foreignObject\n ns = undefined;\n force = true;\n }\n if (isDef(vnode.children)) {\n for (var i = 0, l = vnode.children.length; i < l; i++) {\n var child = vnode.children[i];\n if (isDef(child.tag) && (\n isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {\n applyNS(child, ns, force);\n }\n }\n }\n }\n\n // ref #5318\n // necessary to ensure parent re-render when deep bindings like :style and\n // :class are used on slot nodes\n function registerDeepBindings (data) {\n if (isObject(data.style)) {\n traverse(data.style);\n }\n if (isObject(data.class)) {\n traverse(data.class);\n }\n }\n\n /* */\n\n function initRender (vm) {\n vm._vnode = null; // the root of the child tree\n vm._staticTrees = null; // v-once cached trees\n var options = vm.$options;\n var parentVnode = vm.$vnode = options._parentVnode; // the placeholder node in parent tree\n var renderContext = parentVnode && parentVnode.context;\n vm.$slots = resolveSlots(options._renderChildren, renderContext);\n vm.$scopedSlots = emptyObject;\n // bind the createElement fn to this instance\n // so that we get proper render context inside it.\n // args order: tag, data, children, normalizationType, alwaysNormalize\n // internal version is used by render functions compiled from templates\n vm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); };\n // normalization is always applied for the public version, used in\n // user-written render functions.\n vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); };\n\n // $attrs & $listeners are exposed for easier HOC creation.\n // they need to be reactive so that HOCs using them are always updated\n var parentData = parentVnode && parentVnode.data;\n\n /* istanbul ignore else */\n {\n defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, function () {\n !isUpdatingChildComponent && warn(\"$attrs is readonly.\", vm);\n }, true);\n defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, function () {\n !isUpdatingChildComponent && warn(\"$listeners is readonly.\", vm);\n }, true);\n }\n }\n\n var currentRenderingInstance = null;\n\n function renderMixin (Vue) {\n // install runtime convenience helpers\n installRenderHelpers(Vue.prototype);\n\n Vue.prototype.$nextTick = function (fn) {\n return nextTick(fn, this)\n };\n\n Vue.prototype._render = function () {\n var vm = this;\n var ref = vm.$options;\n var render = ref.render;\n var _parentVnode = ref._parentVnode;\n\n if (_parentVnode) {\n vm.$scopedSlots = normalizeScopedSlots(\n _parentVnode.data.scopedSlots,\n vm.$slots,\n vm.$scopedSlots\n );\n }\n\n // set parent vnode. this allows render functions to have access\n // to the data on the placeholder node.\n vm.$vnode = _parentVnode;\n // render self\n var vnode;\n try {\n // There's no need to maintain a stack because all render fns are called\n // separately from one another. Nested component's render fns are called\n // when parent component is patched.\n currentRenderingInstance = vm;\n vnode = render.call(vm._renderProxy, vm.$createElement);\n } catch (e) {\n handleError(e, vm, \"render\");\n // return error render result,\n // or previous vnode to prevent render error causing blank component\n /* istanbul ignore else */\n if (vm.$options.renderError) {\n try {\n vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);\n } catch (e) {\n handleError(e, vm, \"renderError\");\n vnode = vm._vnode;\n }\n } else {\n vnode = vm._vnode;\n }\n } finally {\n currentRenderingInstance = null;\n }\n // if the returned array contains only a single node, allow it\n if (Array.isArray(vnode) && vnode.length === 1) {\n vnode = vnode[0];\n }\n // return empty vnode in case the render function errored out\n if (!(vnode instanceof VNode)) {\n if (Array.isArray(vnode)) {\n warn(\n 'Multiple root nodes returned from render function. Render function ' +\n 'should return a single root node.',\n vm\n );\n }\n vnode = createEmptyVNode();\n }\n // set parent\n vnode.parent = _parentVnode;\n return vnode\n };\n }\n\n /* */\n\n function ensureCtor (comp, base) {\n if (\n comp.__esModule ||\n (hasSymbol && comp[Symbol.toStringTag] === 'Module')\n ) {\n comp = comp.default;\n }\n return isObject(comp)\n ? base.extend(comp)\n : comp\n }\n\n function createAsyncPlaceholder (\n factory,\n data,\n context,\n children,\n tag\n ) {\n var node = createEmptyVNode();\n node.asyncFactory = factory;\n node.asyncMeta = { data: data, context: context, children: children, tag: tag };\n return node\n }\n\n function resolveAsyncComponent (\n factory,\n baseCtor\n ) {\n if (isTrue(factory.error) && isDef(factory.errorComp)) {\n return factory.errorComp\n }\n\n if (isDef(factory.resolved)) {\n return factory.resolved\n }\n\n var owner = currentRenderingInstance;\n if (owner && isDef(factory.owners) && factory.owners.indexOf(owner) === -1) {\n // already pending\n factory.owners.push(owner);\n }\n\n if (isTrue(factory.loading) && isDef(factory.loadingComp)) {\n return factory.loadingComp\n }\n\n if (owner && !isDef(factory.owners)) {\n var owners = factory.owners = [owner];\n var sync = true;\n var timerLoading = null;\n var timerTimeout = null\n\n ;(owner).$on('hook:destroyed', function () { return remove(owners, owner); });\n\n var forceRender = function (renderCompleted) {\n for (var i = 0, l = owners.length; i < l; i++) {\n (owners[i]).$forceUpdate();\n }\n\n if (renderCompleted) {\n owners.length = 0;\n if (timerLoading !== null) {\n clearTimeout(timerLoading);\n timerLoading = null;\n }\n if (timerTimeout !== null) {\n clearTimeout(timerTimeout);\n timerTimeout = null;\n }\n }\n };\n\n var resolve = once(function (res) {\n // cache resolved\n factory.resolved = ensureCtor(res, baseCtor);\n // invoke callbacks only if this is not a synchronous resolve\n // (async resolves are shimmed as synchronous during SSR)\n if (!sync) {\n forceRender(true);\n } else {\n owners.length = 0;\n }\n });\n\n var reject = once(function (reason) {\n warn(\n \"Failed to resolve async component: \" + (String(factory)) +\n (reason ? (\"\\nReason: \" + reason) : '')\n );\n if (isDef(factory.errorComp)) {\n factory.error = true;\n forceRender(true);\n }\n });\n\n var res = factory(resolve, reject);\n\n if (isObject(res)) {\n if (isPromise(res)) {\n // () => Promise\n if (isUndef(factory.resolved)) {\n res.then(resolve, reject);\n }\n } else if (isPromise(res.component)) {\n res.component.then(resolve, reject);\n\n if (isDef(res.error)) {\n factory.errorComp = ensureCtor(res.error, baseCtor);\n }\n\n if (isDef(res.loading)) {\n factory.loadingComp = ensureCtor(res.loading, baseCtor);\n if (res.delay === 0) {\n factory.loading = true;\n } else {\n timerLoading = setTimeout(function () {\n timerLoading = null;\n if (isUndef(factory.resolved) && isUndef(factory.error)) {\n factory.loading = true;\n forceRender(false);\n }\n }, res.delay || 200);\n }\n }\n\n if (isDef(res.timeout)) {\n timerTimeout = setTimeout(function () {\n timerTimeout = null;\n if (isUndef(factory.resolved)) {\n reject(\n \"timeout (\" + (res.timeout) + \"ms)\"\n );\n }\n }, res.timeout);\n }\n }\n }\n\n sync = false;\n // return in case resolved synchronously\n return factory.loading\n ? factory.loadingComp\n : factory.resolved\n }\n }\n\n /* */\n\n function getFirstComponentChild (children) {\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n var c = children[i];\n if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {\n return c\n }\n }\n }\n }\n\n /* */\n\n /* */\n\n function initEvents (vm) {\n vm._events = Object.create(null);\n vm._hasHookEvent = false;\n // init parent attached events\n var listeners = vm.$options._parentListeners;\n if (listeners) {\n updateComponentListeners(vm, listeners);\n }\n }\n\n var target;\n\n function add (event, fn) {\n target.$on(event, fn);\n }\n\n function remove$1 (event, fn) {\n target.$off(event, fn);\n }\n\n function createOnceHandler (event, fn) {\n var _target = target;\n return function onceHandler () {\n var res = fn.apply(null, arguments);\n if (res !== null) {\n _target.$off(event, onceHandler);\n }\n }\n }\n\n function updateComponentListeners (\n vm,\n listeners,\n oldListeners\n ) {\n target = vm;\n updateListeners(listeners, oldListeners || {}, add, remove$1, createOnceHandler, vm);\n target = undefined;\n }\n\n function eventsMixin (Vue) {\n var hookRE = /^hook:/;\n Vue.prototype.$on = function (event, fn) {\n var vm = this;\n if (Array.isArray(event)) {\n for (var i = 0, l = event.length; i < l; i++) {\n vm.$on(event[i], fn);\n }\n } else {\n (vm._events[event] || (vm._events[event] = [])).push(fn);\n // optimize hook:event cost by using a boolean flag marked at registration\n // instead of a hash lookup\n if (hookRE.test(event)) {\n vm._hasHookEvent = true;\n }\n }\n return vm\n };\n\n Vue.prototype.$once = function (event, fn) {\n var vm = this;\n function on () {\n vm.$off(event, on);\n fn.apply(vm, arguments);\n }\n on.fn = fn;\n vm.$on(event, on);\n return vm\n };\n\n Vue.prototype.$off = function (event, fn) {\n var vm = this;\n // all\n if (!arguments.length) {\n vm._events = Object.create(null);\n return vm\n }\n // array of events\n if (Array.isArray(event)) {\n for (var i$1 = 0, l = event.length; i$1 < l; i$1++) {\n vm.$off(event[i$1], fn);\n }\n return vm\n }\n // specific event\n var cbs = vm._events[event];\n if (!cbs) {\n return vm\n }\n if (!fn) {\n vm._events[event] = null;\n return vm\n }\n // specific handler\n var cb;\n var i = cbs.length;\n while (i--) {\n cb = cbs[i];\n if (cb === fn || cb.fn === fn) {\n cbs.splice(i, 1);\n break\n }\n }\n return vm\n };\n\n Vue.prototype.$emit = function (event) {\n var vm = this;\n {\n var lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {\n tip(\n \"Event \\\"\" + lowerCaseEvent + \"\\\" is emitted in component \" +\n (formatComponentName(vm)) + \" but the handler is registered for \\\"\" + event + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and you cannot use \" +\n \"v-on to listen to camelCase events when using in-DOM templates. \" +\n \"You should probably use \\\"\" + (hyphenate(event)) + \"\\\" instead of \\\"\" + event + \"\\\".\"\n );\n }\n }\n var cbs = vm._events[event];\n if (cbs) {\n cbs = cbs.length > 1 ? toArray(cbs) : cbs;\n var args = toArray(arguments, 1);\n var info = \"event handler for \\\"\" + event + \"\\\"\";\n for (var i = 0, l = cbs.length; i < l; i++) {\n invokeWithErrorHandling(cbs[i], vm, args, vm, info);\n }\n }\n return vm\n };\n }\n\n /* */\n\n var activeInstance = null;\n var isUpdatingChildComponent = false;\n\n function setActiveInstance(vm) {\n var prevActiveInstance = activeInstance;\n activeInstance = vm;\n return function () {\n activeInstance = prevActiveInstance;\n }\n }\n\n function initLifecycle (vm) {\n var options = vm.$options;\n\n // locate first non-abstract parent\n var parent = options.parent;\n if (parent && !options.abstract) {\n while (parent.$options.abstract && parent.$parent) {\n parent = parent.$parent;\n }\n parent.$children.push(vm);\n }\n\n vm.$parent = parent;\n vm.$root = parent ? parent.$root : vm;\n\n vm.$children = [];\n vm.$refs = {};\n\n vm._watcher = null;\n vm._inactive = null;\n vm._directInactive = false;\n vm._isMounted = false;\n vm._isDestroyed = false;\n vm._isBeingDestroyed = false;\n }\n\n function lifecycleMixin (Vue) {\n Vue.prototype._update = function (vnode, hydrating) {\n var vm = this;\n var prevEl = vm.$el;\n var prevVnode = vm._vnode;\n var restoreActiveInstance = setActiveInstance(vm);\n vm._vnode = vnode;\n // Vue.prototype.__patch__ is injected in entry points\n // based on the rendering backend used.\n if (!prevVnode) {\n // initial render\n vm.$el = vm.__patch__(vm.$el, vnode, hydrating, false /* removeOnly */);\n } else {\n // updates\n vm.$el = vm.__patch__(prevVnode, vnode);\n }\n restoreActiveInstance();\n // update __vue__ reference\n if (prevEl) {\n prevEl.__vue__ = null;\n }\n if (vm.$el) {\n vm.$el.__vue__ = vm;\n }\n // if parent is an HOC, update its $el as well\n if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {\n vm.$parent.$el = vm.$el;\n }\n // updated hook is called by the scheduler to ensure that children are\n // updated in a parent's updated hook.\n };\n\n Vue.prototype.$forceUpdate = function () {\n var vm = this;\n if (vm._watcher) {\n vm._watcher.update();\n }\n };\n\n Vue.prototype.$destroy = function () {\n var vm = this;\n if (vm._isBeingDestroyed) {\n return\n }\n callHook(vm, 'beforeDestroy');\n vm._isBeingDestroyed = true;\n // remove self from parent\n var parent = vm.$parent;\n if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {\n remove(parent.$children, vm);\n }\n // teardown watchers\n if (vm._watcher) {\n vm._watcher.teardown();\n }\n var i = vm._watchers.length;\n while (i--) {\n vm._watchers[i].teardown();\n }\n // remove reference from data ob\n // frozen object may not have observer.\n if (vm._data.__ob__) {\n vm._data.__ob__.vmCount--;\n }\n // call the last hook...\n vm._isDestroyed = true;\n // invoke destroy hooks on current rendered tree\n vm.__patch__(vm._vnode, null);\n // fire destroyed hook\n callHook(vm, 'destroyed');\n // turn off all instance listeners.\n vm.$off();\n // remove __vue__ reference\n if (vm.$el) {\n vm.$el.__vue__ = null;\n }\n // release circular reference (#6759)\n if (vm.$vnode) {\n vm.$vnode.parent = null;\n }\n };\n }\n\n function mountComponent (\n vm,\n el,\n hydrating\n ) {\n vm.$el = el;\n if (!vm.$options.render) {\n vm.$options.render = createEmptyVNode;\n {\n /* istanbul ignore if */\n if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||\n vm.$options.el || el) {\n warn(\n 'You are using the runtime-only build of Vue where the template ' +\n 'compiler is not available. Either pre-compile the templates into ' +\n 'render functions, or use the compiler-included build.',\n vm\n );\n } else {\n warn(\n 'Failed to mount component: template or render function not defined.',\n vm\n );\n }\n }\n }\n callHook(vm, 'beforeMount');\n\n var updateComponent;\n /* istanbul ignore if */\n if (config.performance && mark) {\n updateComponent = function () {\n var name = vm._name;\n var id = vm._uid;\n var startTag = \"vue-perf-start:\" + id;\n var endTag = \"vue-perf-end:\" + id;\n\n mark(startTag);\n var vnode = vm._render();\n mark(endTag);\n measure((\"vue \" + name + \" render\"), startTag, endTag);\n\n mark(startTag);\n vm._update(vnode, hydrating);\n mark(endTag);\n measure((\"vue \" + name + \" patch\"), startTag, endTag);\n };\n } else {\n updateComponent = function () {\n vm._update(vm._render(), hydrating);\n };\n }\n\n // we set this to vm._watcher inside the watcher's constructor\n // since the watcher's initial patch may call $forceUpdate (e.g. inside child\n // component's mounted hook), which relies on vm._watcher being already defined\n new Watcher(vm, updateComponent, noop, {\n before: function before () {\n if (vm._isMounted && !vm._isDestroyed) {\n callHook(vm, 'beforeUpdate');\n }\n }\n }, true /* isRenderWatcher */);\n hydrating = false;\n\n // manually mounted instance, call mounted on self\n // mounted is called for render-created child components in its inserted hook\n if (vm.$vnode == null) {\n vm._isMounted = true;\n callHook(vm, 'mounted');\n }\n return vm\n }\n\n function updateChildComponent (\n vm,\n propsData,\n listeners,\n parentVnode,\n renderChildren\n ) {\n {\n isUpdatingChildComponent = true;\n }\n\n // determine whether component has slot children\n // we need to do this before overwriting $options._renderChildren.\n\n // check if there are dynamic scopedSlots (hand-written or compiled but with\n // dynamic slot names). Static scoped slots compiled from template has the\n // \"$stable\" marker.\n var newScopedSlots = parentVnode.data.scopedSlots;\n var oldScopedSlots = vm.$scopedSlots;\n var hasDynamicScopedSlot = !!(\n (newScopedSlots && !newScopedSlots.$stable) ||\n (oldScopedSlots !== emptyObject && !oldScopedSlots.$stable) ||\n (newScopedSlots && vm.$scopedSlots.$key !== newScopedSlots.$key) ||\n (!newScopedSlots && vm.$scopedSlots.$key)\n );\n\n // Any static slot children from the parent may have changed during parent's\n // update. Dynamic scoped slots may also have changed. In such cases, a forced\n // update is necessary to ensure correctness.\n var needsForceUpdate = !!(\n renderChildren || // has new static slots\n vm.$options._renderChildren || // has old static slots\n hasDynamicScopedSlot\n );\n\n vm.$options._parentVnode = parentVnode;\n vm.$vnode = parentVnode; // update vm's placeholder node without re-render\n\n if (vm._vnode) { // update child tree's parent\n vm._vnode.parent = parentVnode;\n }\n vm.$options._renderChildren = renderChildren;\n\n // update $attrs and $listeners hash\n // these are also reactive so they may trigger child update if the child\n // used them during render\n vm.$attrs = parentVnode.data.attrs || emptyObject;\n vm.$listeners = listeners || emptyObject;\n\n // update props\n if (propsData && vm.$options.props) {\n toggleObserving(false);\n var props = vm._props;\n var propKeys = vm.$options._propKeys || [];\n for (var i = 0; i < propKeys.length; i++) {\n var key = propKeys[i];\n var propOptions = vm.$options.props; // wtf flow?\n props[key] = validateProp(key, propOptions, propsData, vm);\n }\n toggleObserving(true);\n // keep a copy of raw propsData\n vm.$options.propsData = propsData;\n }\n\n // update listeners\n listeners = listeners || emptyObject;\n var oldListeners = vm.$options._parentListeners;\n vm.$options._parentListeners = listeners;\n updateComponentListeners(vm, listeners, oldListeners);\n\n // resolve slots + force update if has children\n if (needsForceUpdate) {\n vm.$slots = resolveSlots(renderChildren, parentVnode.context);\n vm.$forceUpdate();\n }\n\n {\n isUpdatingChildComponent = false;\n }\n }\n\n function isInInactiveTree (vm) {\n while (vm && (vm = vm.$parent)) {\n if (vm._inactive) { return true }\n }\n return false\n }\n\n function activateChildComponent (vm, direct) {\n if (direct) {\n vm._directInactive = false;\n if (isInInactiveTree(vm)) {\n return\n }\n } else if (vm._directInactive) {\n return\n }\n if (vm._inactive || vm._inactive === null) {\n vm._inactive = false;\n for (var i = 0; i < vm.$children.length; i++) {\n activateChildComponent(vm.$children[i]);\n }\n callHook(vm, 'activated');\n }\n }\n\n function deactivateChildComponent (vm, direct) {\n if (direct) {\n vm._directInactive = true;\n if (isInInactiveTree(vm)) {\n return\n }\n }\n if (!vm._inactive) {\n vm._inactive = true;\n for (var i = 0; i < vm.$children.length; i++) {\n deactivateChildComponent(vm.$children[i]);\n }\n callHook(vm, 'deactivated');\n }\n }\n\n function callHook (vm, hook) {\n // #7573 disable dep collection when invoking lifecycle hooks\n pushTarget();\n var handlers = vm.$options[hook];\n var info = hook + \" hook\";\n if (handlers) {\n for (var i = 0, j = handlers.length; i < j; i++) {\n invokeWithErrorHandling(handlers[i], vm, null, vm, info);\n }\n }\n if (vm._hasHookEvent) {\n vm.$emit('hook:' + hook);\n }\n popTarget();\n }\n\n /* */\n\n var MAX_UPDATE_COUNT = 100;\n\n var queue = [];\n var activatedChildren = [];\n var has = {};\n var circular = {};\n var waiting = false;\n var flushing = false;\n var index = 0;\n\n /**\n * Reset the scheduler's state.\n */\n function resetSchedulerState () {\n index = queue.length = activatedChildren.length = 0;\n has = {};\n {\n circular = {};\n }\n waiting = flushing = false;\n }\n\n // Async edge case #6566 requires saving the timestamp when event listeners are\n // attached. However, calling performance.now() has a perf overhead especially\n // if the page has thousands of event listeners. Instead, we take a timestamp\n // every time the scheduler flushes and use that for all event listeners\n // attached during that flush.\n var currentFlushTimestamp = 0;\n\n // Async edge case fix requires storing an event listener's attach timestamp.\n var getNow = Date.now;\n\n // Determine what event timestamp the browser is using. Annoyingly, the\n // timestamp can either be hi-res (relative to page load) or low-res\n // (relative to UNIX epoch), so in order to compare time we have to use the\n // same timestamp type when saving the flush timestamp.\n // All IE versions use low-res event timestamps, and have problematic clock\n // implementations (#9632)\n if (inBrowser && !isIE) {\n var performance = window.performance;\n if (\n performance &&\n typeof performance.now === 'function' &&\n getNow() > document.createEvent('Event').timeStamp\n ) {\n // if the event timestamp, although evaluated AFTER the Date.now(), is\n // smaller than it, it means the event is using a hi-res timestamp,\n // and we need to use the hi-res version for event listener timestamps as\n // well.\n getNow = function () { return performance.now(); };\n }\n }\n\n /**\n * Flush both queues and run the watchers.\n */\n function flushSchedulerQueue () {\n currentFlushTimestamp = getNow();\n flushing = true;\n var watcher, id;\n\n // Sort queue before flush.\n // This ensures that:\n // 1. Components are updated from parent to child. (because parent is always\n // created before the child)\n // 2. A component's user watchers are run before its render watcher (because\n // user watchers are created before the render watcher)\n // 3. If a component is destroyed during a parent component's watcher run,\n // its watchers can be skipped.\n queue.sort(function (a, b) { return a.id - b.id; });\n\n // do not cache length because more watchers might be pushed\n // as we run existing watchers\n for (index = 0; index < queue.length; index++) {\n watcher = queue[index];\n if (watcher.before) {\n watcher.before();\n }\n id = watcher.id;\n has[id] = null;\n watcher.run();\n // in dev build, check and stop circular updates.\n if (has[id] != null) {\n circular[id] = (circular[id] || 0) + 1;\n if (circular[id] > MAX_UPDATE_COUNT) {\n warn(\n 'You may have an infinite update loop ' + (\n watcher.user\n ? (\"in watcher with expression \\\"\" + (watcher.expression) + \"\\\"\")\n : \"in a component render function.\"\n ),\n watcher.vm\n );\n break\n }\n }\n }\n\n // keep copies of post queues before resetting state\n var activatedQueue = activatedChildren.slice();\n var updatedQueue = queue.slice();\n\n resetSchedulerState();\n\n // call component updated and activated hooks\n callActivatedHooks(activatedQueue);\n callUpdatedHooks(updatedQueue);\n\n // devtool hook\n /* istanbul ignore if */\n if (devtools && config.devtools) {\n devtools.emit('flush');\n }\n }\n\n function callUpdatedHooks (queue) {\n var i = queue.length;\n while (i--) {\n var watcher = queue[i];\n var vm = watcher.vm;\n if (vm._watcher === watcher && vm._isMounted && !vm._isDestroyed) {\n callHook(vm, 'updated');\n }\n }\n }\n\n /**\n * Queue a kept-alive component that was activated during patch.\n * The queue will be processed after the entire tree has been patched.\n */\n function queueActivatedComponent (vm) {\n // setting _inactive to false here so that a render function can\n // rely on checking whether it's in an inactive tree (e.g. router-view)\n vm._inactive = false;\n activatedChildren.push(vm);\n }\n\n function callActivatedHooks (queue) {\n for (var i = 0; i < queue.length; i++) {\n queue[i]._inactive = true;\n activateChildComponent(queue[i], true /* true */);\n }\n }\n\n /**\n * Push a watcher into the watcher queue.\n * Jobs with duplicate IDs will be skipped unless it's\n * pushed when the queue is being flushed.\n */\n function queueWatcher (watcher) {\n var id = watcher.id;\n if (has[id] == null) {\n has[id] = true;\n if (!flushing) {\n queue.push(watcher);\n } else {\n // if already flushing, splice the watcher based on its id\n // if already past its id, it will be run next immediately.\n var i = queue.length - 1;\n while (i > index && queue[i].id > watcher.id) {\n i--;\n }\n queue.splice(i + 1, 0, watcher);\n }\n // queue the flush\n if (!waiting) {\n waiting = true;\n\n if (!config.async) {\n flushSchedulerQueue();\n return\n }\n nextTick(flushSchedulerQueue);\n }\n }\n }\n\n /* */\n\n\n\n var uid$2 = 0;\n\n /**\n * A watcher parses an expression, collects dependencies,\n * and fires callback when the expression value changes.\n * This is used for both the $watch() api and directives.\n */\n var Watcher = function Watcher (\n vm,\n expOrFn,\n cb,\n options,\n isRenderWatcher\n ) {\n this.vm = vm;\n if (isRenderWatcher) {\n vm._watcher = this;\n }\n vm._watchers.push(this);\n // options\n if (options) {\n this.deep = !!options.deep;\n this.user = !!options.user;\n this.lazy = !!options.lazy;\n this.sync = !!options.sync;\n this.before = options.before;\n } else {\n this.deep = this.user = this.lazy = this.sync = false;\n }\n this.cb = cb;\n this.id = ++uid$2; // uid for batching\n this.active = true;\n this.dirty = this.lazy; // for lazy watchers\n this.deps = [];\n this.newDeps = [];\n this.depIds = new _Set();\n this.newDepIds = new _Set();\n this.expression = expOrFn.toString();\n // parse expression for getter\n if (typeof expOrFn === 'function') {\n this.getter = expOrFn;\n } else {\n this.getter = parsePath(expOrFn);\n if (!this.getter) {\n this.getter = noop;\n warn(\n \"Failed watching path: \\\"\" + expOrFn + \"\\\" \" +\n 'Watcher only accepts simple dot-delimited paths. ' +\n 'For full control, use a function instead.',\n vm\n );\n }\n }\n this.value = this.lazy\n ? undefined\n : this.get();\n };\n\n /**\n * Evaluate the getter, and re-collect dependencies.\n */\n Watcher.prototype.get = function get () {\n pushTarget(this);\n var value;\n var vm = this.vm;\n try {\n value = this.getter.call(vm, vm);\n } catch (e) {\n if (this.user) {\n handleError(e, vm, (\"getter for watcher \\\"\" + (this.expression) + \"\\\"\"));\n } else {\n throw e\n }\n } finally {\n // \"touch\" every property so they are all tracked as\n // dependencies for deep watching\n if (this.deep) {\n traverse(value);\n }\n popTarget();\n this.cleanupDeps();\n }\n return value\n };\n\n /**\n * Add a dependency to this directive.\n */\n Watcher.prototype.addDep = function addDep (dep) {\n var id = dep.id;\n if (!this.newDepIds.has(id)) {\n this.newDepIds.add(id);\n this.newDeps.push(dep);\n if (!this.depIds.has(id)) {\n dep.addSub(this);\n }\n }\n };\n\n /**\n * Clean up for dependency collection.\n */\n Watcher.prototype.cleanupDeps = function cleanupDeps () {\n var i = this.deps.length;\n while (i--) {\n var dep = this.deps[i];\n if (!this.newDepIds.has(dep.id)) {\n dep.removeSub(this);\n }\n }\n var tmp = this.depIds;\n this.depIds = this.newDepIds;\n this.newDepIds = tmp;\n this.newDepIds.clear();\n tmp = this.deps;\n this.deps = this.newDeps;\n this.newDeps = tmp;\n this.newDeps.length = 0;\n };\n\n /**\n * Subscriber interface.\n * Will be called when a dependency changes.\n */\n Watcher.prototype.update = function update () {\n /* istanbul ignore else */\n if (this.lazy) {\n this.dirty = true;\n } else if (this.sync) {\n this.run();\n } else {\n queueWatcher(this);\n }\n };\n\n /**\n * Scheduler job interface.\n * Will be called by the scheduler.\n */\n Watcher.prototype.run = function run () {\n if (this.active) {\n var value = this.get();\n if (\n value !== this.value ||\n // Deep watchers and watchers on Object/Arrays should fire even\n // when the value is the same, because the value may\n // have mutated.\n isObject(value) ||\n this.deep\n ) {\n // set new value\n var oldValue = this.value;\n this.value = value;\n if (this.user) {\n var info = \"callback for watcher \\\"\" + (this.expression) + \"\\\"\";\n invokeWithErrorHandling(this.cb, this.vm, [value, oldValue], this.vm, info);\n } else {\n this.cb.call(this.vm, value, oldValue);\n }\n }\n }\n };\n\n /**\n * Evaluate the value of the watcher.\n * This only gets called for lazy watchers.\n */\n Watcher.prototype.evaluate = function evaluate () {\n this.value = this.get();\n this.dirty = false;\n };\n\n /**\n * Depend on all deps collected by this watcher.\n */\n Watcher.prototype.depend = function depend () {\n var i = this.deps.length;\n while (i--) {\n this.deps[i].depend();\n }\n };\n\n /**\n * Remove self from all dependencies' subscriber list.\n */\n Watcher.prototype.teardown = function teardown () {\n if (this.active) {\n // remove self from vm's watcher list\n // this is a somewhat expensive operation so we skip it\n // if the vm is being destroyed.\n if (!this.vm._isBeingDestroyed) {\n remove(this.vm._watchers, this);\n }\n var i = this.deps.length;\n while (i--) {\n this.deps[i].removeSub(this);\n }\n this.active = false;\n }\n };\n\n /* */\n\n var sharedPropertyDefinition = {\n enumerable: true,\n configurable: true,\n get: noop,\n set: noop\n };\n\n function proxy (target, sourceKey, key) {\n sharedPropertyDefinition.get = function proxyGetter () {\n return this[sourceKey][key]\n };\n sharedPropertyDefinition.set = function proxySetter (val) {\n this[sourceKey][key] = val;\n };\n Object.defineProperty(target, key, sharedPropertyDefinition);\n }\n\n function initState (vm) {\n vm._watchers = [];\n var opts = vm.$options;\n if (opts.props) { initProps(vm, opts.props); }\n if (opts.methods) { initMethods(vm, opts.methods); }\n if (opts.data) {\n initData(vm);\n } else {\n observe(vm._data = {}, true /* asRootData */);\n }\n if (opts.computed) { initComputed(vm, opts.computed); }\n if (opts.watch && opts.watch !== nativeWatch) {\n initWatch(vm, opts.watch);\n }\n }\n\n function initProps (vm, propsOptions) {\n var propsData = vm.$options.propsData || {};\n var props = vm._props = {};\n // cache prop keys so that future props updates can iterate using Array\n // instead of dynamic object key enumeration.\n var keys = vm.$options._propKeys = [];\n var isRoot = !vm.$parent;\n // root instance props should be converted\n if (!isRoot) {\n toggleObserving(false);\n }\n var loop = function ( key ) {\n keys.push(key);\n var value = validateProp(key, propsOptions, propsData, vm);\n /* istanbul ignore else */\n {\n var hyphenatedKey = hyphenate(key);\n if (isReservedAttribute(hyphenatedKey) ||\n config.isReservedAttr(hyphenatedKey)) {\n warn(\n (\"\\\"\" + hyphenatedKey + \"\\\" is a reserved attribute and cannot be used as component prop.\"),\n vm\n );\n }\n defineReactive$$1(props, key, value, function () {\n if (!isRoot && !isUpdatingChildComponent) {\n warn(\n \"Avoid mutating a prop directly since the value will be \" +\n \"overwritten whenever the parent component re-renders. \" +\n \"Instead, use a data or computed property based on the prop's \" +\n \"value. Prop being mutated: \\\"\" + key + \"\\\"\",\n vm\n );\n }\n });\n }\n // static props are already proxied on the component's prototype\n // during Vue.extend(). We only need to proxy props defined at\n // instantiation here.\n if (!(key in vm)) {\n proxy(vm, \"_props\", key);\n }\n };\n\n for (var key in propsOptions) loop( key );\n toggleObserving(true);\n }\n\n function initData (vm) {\n var data = vm.$options.data;\n data = vm._data = typeof data === 'function'\n ? getData(data, vm)\n : data || {};\n if (!isPlainObject(data)) {\n data = {};\n warn(\n 'data functions should return an object:\\n' +\n 'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function',\n vm\n );\n }\n // proxy data on instance\n var keys = Object.keys(data);\n var props = vm.$options.props;\n var methods = vm.$options.methods;\n var i = keys.length;\n while (i--) {\n var key = keys[i];\n {\n if (methods && hasOwn(methods, key)) {\n warn(\n (\"Method \\\"\" + key + \"\\\" has already been defined as a data property.\"),\n vm\n );\n }\n }\n if (props && hasOwn(props, key)) {\n warn(\n \"The data property \\\"\" + key + \"\\\" is already declared as a prop. \" +\n \"Use prop default value instead.\",\n vm\n );\n } else if (!isReserved(key)) {\n proxy(vm, \"_data\", key);\n }\n }\n // observe data\n observe(data, true /* asRootData */);\n }\n\n function getData (data, vm) {\n // #7573 disable dep collection when invoking data getters\n pushTarget();\n try {\n return data.call(vm, vm)\n } catch (e) {\n handleError(e, vm, \"data()\");\n return {}\n } finally {\n popTarget();\n }\n }\n\n var computedWatcherOptions = { lazy: true };\n\n function initComputed (vm, computed) {\n // $flow-disable-line\n var watchers = vm._computedWatchers = Object.create(null);\n // computed properties are just getters during SSR\n var isSSR = isServerRendering();\n\n for (var key in computed) {\n var userDef = computed[key];\n var getter = typeof userDef === 'function' ? userDef : userDef.get;\n if (getter == null) {\n warn(\n (\"Getter is missing for computed property \\\"\" + key + \"\\\".\"),\n vm\n );\n }\n\n if (!isSSR) {\n // create internal watcher for the computed property.\n watchers[key] = new Watcher(\n vm,\n getter || noop,\n noop,\n computedWatcherOptions\n );\n }\n\n // component-defined computed properties are already defined on the\n // component prototype. We only need to define computed properties defined\n // at instantiation here.\n if (!(key in vm)) {\n defineComputed(vm, key, userDef);\n } else {\n if (key in vm.$data) {\n warn((\"The computed property \\\"\" + key + \"\\\" is already defined in data.\"), vm);\n } else if (vm.$options.props && key in vm.$options.props) {\n warn((\"The computed property \\\"\" + key + \"\\\" is already defined as a prop.\"), vm);\n } else if (vm.$options.methods && key in vm.$options.methods) {\n warn((\"The computed property \\\"\" + key + \"\\\" is already defined as a method.\"), vm);\n }\n }\n }\n }\n\n function defineComputed (\n target,\n key,\n userDef\n ) {\n var shouldCache = !isServerRendering();\n if (typeof userDef === 'function') {\n sharedPropertyDefinition.get = shouldCache\n ? createComputedGetter(key)\n : createGetterInvoker(userDef);\n sharedPropertyDefinition.set = noop;\n } else {\n sharedPropertyDefinition.get = userDef.get\n ? shouldCache && userDef.cache !== false\n ? createComputedGetter(key)\n : createGetterInvoker(userDef.get)\n : noop;\n sharedPropertyDefinition.set = userDef.set || noop;\n }\n if (sharedPropertyDefinition.set === noop) {\n sharedPropertyDefinition.set = function () {\n warn(\n (\"Computed property \\\"\" + key + \"\\\" was assigned to but it has no setter.\"),\n this\n );\n };\n }\n Object.defineProperty(target, key, sharedPropertyDefinition);\n }\n\n function createComputedGetter (key) {\n return function computedGetter () {\n var watcher = this._computedWatchers && this._computedWatchers[key];\n if (watcher) {\n if (watcher.dirty) {\n watcher.evaluate();\n }\n if (Dep.target) {\n watcher.depend();\n }\n return watcher.value\n }\n }\n }\n\n function createGetterInvoker(fn) {\n return function computedGetter () {\n return fn.call(this, this)\n }\n }\n\n function initMethods (vm, methods) {\n var props = vm.$options.props;\n for (var key in methods) {\n {\n if (typeof methods[key] !== 'function') {\n warn(\n \"Method \\\"\" + key + \"\\\" has type \\\"\" + (typeof methods[key]) + \"\\\" in the component definition. \" +\n \"Did you reference the function correctly?\",\n vm\n );\n }\n if (props && hasOwn(props, key)) {\n warn(\n (\"Method \\\"\" + key + \"\\\" has already been defined as a prop.\"),\n vm\n );\n }\n if ((key in vm) && isReserved(key)) {\n warn(\n \"Method \\\"\" + key + \"\\\" conflicts with an existing Vue instance method. \" +\n \"Avoid defining component methods that start with _ or $.\"\n );\n }\n }\n vm[key] = typeof methods[key] !== 'function' ? noop : bind(methods[key], vm);\n }\n }\n\n function initWatch (vm, watch) {\n for (var key in watch) {\n var handler = watch[key];\n if (Array.isArray(handler)) {\n for (var i = 0; i < handler.length; i++) {\n createWatcher(vm, key, handler[i]);\n }\n } else {\n createWatcher(vm, key, handler);\n }\n }\n }\n\n function createWatcher (\n vm,\n expOrFn,\n handler,\n options\n ) {\n if (isPlainObject(handler)) {\n options = handler;\n handler = handler.handler;\n }\n if (typeof handler === 'string') {\n handler = vm[handler];\n }\n return vm.$watch(expOrFn, handler, options)\n }\n\n function stateMixin (Vue) {\n // flow somehow has problems with directly declared definition object\n // when using Object.defineProperty, so we have to procedurally build up\n // the object here.\n var dataDef = {};\n dataDef.get = function () { return this._data };\n var propsDef = {};\n propsDef.get = function () { return this._props };\n {\n dataDef.set = function () {\n warn(\n 'Avoid replacing instance root $data. ' +\n 'Use nested data properties instead.',\n this\n );\n };\n propsDef.set = function () {\n warn(\"$props is readonly.\", this);\n };\n }\n Object.defineProperty(Vue.prototype, '$data', dataDef);\n Object.defineProperty(Vue.prototype, '$props', propsDef);\n\n Vue.prototype.$set = set;\n Vue.prototype.$delete = del;\n\n Vue.prototype.$watch = function (\n expOrFn,\n cb,\n options\n ) {\n var vm = this;\n if (isPlainObject(cb)) {\n return createWatcher(vm, expOrFn, cb, options)\n }\n options = options || {};\n options.user = true;\n var watcher = new Watcher(vm, expOrFn, cb, options);\n if (options.immediate) {\n var info = \"callback for immediate watcher \\\"\" + (watcher.expression) + \"\\\"\";\n pushTarget();\n invokeWithErrorHandling(cb, vm, [watcher.value], vm, info);\n popTarget();\n }\n return function unwatchFn () {\n watcher.teardown();\n }\n };\n }\n\n /* */\n\n var uid$3 = 0;\n\n function initMixin (Vue) {\n Vue.prototype._init = function (options) {\n var vm = this;\n // a uid\n vm._uid = uid$3++;\n\n var startTag, endTag;\n /* istanbul ignore if */\n if (config.performance && mark) {\n startTag = \"vue-perf-start:\" + (vm._uid);\n endTag = \"vue-perf-end:\" + (vm._uid);\n mark(startTag);\n }\n\n // a flag to avoid this being observed\n vm._isVue = true;\n // merge options\n if (options && options._isComponent) {\n // optimize internal component instantiation\n // since dynamic options merging is pretty slow, and none of the\n // internal component options needs special treatment.\n initInternalComponent(vm, options);\n } else {\n vm.$options = mergeOptions(\n resolveConstructorOptions(vm.constructor),\n options || {},\n vm\n );\n }\n /* istanbul ignore else */\n {\n initProxy(vm);\n }\n // expose real self\n vm._self = vm;\n initLifecycle(vm);\n initEvents(vm);\n initRender(vm);\n callHook(vm, 'beforeCreate');\n initInjections(vm); // resolve injections before data/props\n initState(vm);\n initProvide(vm); // resolve provide after data/props\n callHook(vm, 'created');\n\n /* istanbul ignore if */\n if (config.performance && mark) {\n vm._name = formatComponentName(vm, false);\n mark(endTag);\n measure((\"vue \" + (vm._name) + \" init\"), startTag, endTag);\n }\n\n if (vm.$options.el) {\n vm.$mount(vm.$options.el);\n }\n };\n }\n\n function initInternalComponent (vm, options) {\n var opts = vm.$options = Object.create(vm.constructor.options);\n // doing this because it's faster than dynamic enumeration.\n var parentVnode = options._parentVnode;\n opts.parent = options.parent;\n opts._parentVnode = parentVnode;\n\n var vnodeComponentOptions = parentVnode.componentOptions;\n opts.propsData = vnodeComponentOptions.propsData;\n opts._parentListeners = vnodeComponentOptions.listeners;\n opts._renderChildren = vnodeComponentOptions.children;\n opts._componentTag = vnodeComponentOptions.tag;\n\n if (options.render) {\n opts.render = options.render;\n opts.staticRenderFns = options.staticRenderFns;\n }\n }\n\n function resolveConstructorOptions (Ctor) {\n var options = Ctor.options;\n if (Ctor.super) {\n var superOptions = resolveConstructorOptions(Ctor.super);\n var cachedSuperOptions = Ctor.superOptions;\n if (superOptions !== cachedSuperOptions) {\n // super option changed,\n // need to resolve new options.\n Ctor.superOptions = superOptions;\n // check if there are any late-modified/attached options (#4976)\n var modifiedOptions = resolveModifiedOptions(Ctor);\n // update base extend options\n if (modifiedOptions) {\n extend(Ctor.extendOptions, modifiedOptions);\n }\n options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);\n if (options.name) {\n options.components[options.name] = Ctor;\n }\n }\n }\n return options\n }\n\n function resolveModifiedOptions (Ctor) {\n var modified;\n var latest = Ctor.options;\n var sealed = Ctor.sealedOptions;\n for (var key in latest) {\n if (latest[key] !== sealed[key]) {\n if (!modified) { modified = {}; }\n modified[key] = latest[key];\n }\n }\n return modified\n }\n\n function Vue (options) {\n if (!(this instanceof Vue)\n ) {\n warn('Vue is a constructor and should be called with the `new` keyword');\n }\n this._init(options);\n }\n\n initMixin(Vue);\n stateMixin(Vue);\n eventsMixin(Vue);\n lifecycleMixin(Vue);\n renderMixin(Vue);\n\n /* */\n\n function initUse (Vue) {\n Vue.use = function (plugin) {\n var installedPlugins = (this._installedPlugins || (this._installedPlugins = []));\n if (installedPlugins.indexOf(plugin) > -1) {\n return this\n }\n\n // additional parameters\n var args = toArray(arguments, 1);\n args.unshift(this);\n if (typeof plugin.install === 'function') {\n plugin.install.apply(plugin, args);\n } else if (typeof plugin === 'function') {\n plugin.apply(null, args);\n }\n installedPlugins.push(plugin);\n return this\n };\n }\n\n /* */\n\n function initMixin$1 (Vue) {\n Vue.mixin = function (mixin) {\n this.options = mergeOptions(this.options, mixin);\n return this\n };\n }\n\n /* */\n\n function initExtend (Vue) {\n /**\n * Each instance constructor, including Vue, has a unique\n * cid. This enables us to create wrapped \"child\n * constructors\" for prototypal inheritance and cache them.\n */\n Vue.cid = 0;\n var cid = 1;\n\n /**\n * Class inheritance\n */\n Vue.extend = function (extendOptions) {\n extendOptions = extendOptions || {};\n var Super = this;\n var SuperId = Super.cid;\n var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});\n if (cachedCtors[SuperId]) {\n return cachedCtors[SuperId]\n }\n\n var name = extendOptions.name || Super.options.name;\n if (name) {\n validateComponentName(name);\n }\n\n var Sub = function VueComponent (options) {\n this._init(options);\n };\n Sub.prototype = Object.create(Super.prototype);\n Sub.prototype.constructor = Sub;\n Sub.cid = cid++;\n Sub.options = mergeOptions(\n Super.options,\n extendOptions\n );\n Sub['super'] = Super;\n\n // For props and computed properties, we define the proxy getters on\n // the Vue instances at extension time, on the extended prototype. This\n // avoids Object.defineProperty calls for each instance created.\n if (Sub.options.props) {\n initProps$1(Sub);\n }\n if (Sub.options.computed) {\n initComputed$1(Sub);\n }\n\n // allow further extension/mixin/plugin usage\n Sub.extend = Super.extend;\n Sub.mixin = Super.mixin;\n Sub.use = Super.use;\n\n // create asset registers, so extended classes\n // can have their private assets too.\n ASSET_TYPES.forEach(function (type) {\n Sub[type] = Super[type];\n });\n // enable recursive self-lookup\n if (name) {\n Sub.options.components[name] = Sub;\n }\n\n // keep a reference to the super options at extension time.\n // later at instantiation we can check if Super's options have\n // been updated.\n Sub.superOptions = Super.options;\n Sub.extendOptions = extendOptions;\n Sub.sealedOptions = extend({}, Sub.options);\n\n // cache constructor\n cachedCtors[SuperId] = Sub;\n return Sub\n };\n }\n\n function initProps$1 (Comp) {\n var props = Comp.options.props;\n for (var key in props) {\n proxy(Comp.prototype, \"_props\", key);\n }\n }\n\n function initComputed$1 (Comp) {\n var computed = Comp.options.computed;\n for (var key in computed) {\n defineComputed(Comp.prototype, key, computed[key]);\n }\n }\n\n /* */\n\n function initAssetRegisters (Vue) {\n /**\n * Create asset registration methods.\n */\n ASSET_TYPES.forEach(function (type) {\n Vue[type] = function (\n id,\n definition\n ) {\n if (!definition) {\n return this.options[type + 's'][id]\n } else {\n /* istanbul ignore if */\n if (type === 'component') {\n validateComponentName(id);\n }\n if (type === 'component' && isPlainObject(definition)) {\n definition.name = definition.name || id;\n definition = this.options._base.extend(definition);\n }\n if (type === 'directive' && typeof definition === 'function') {\n definition = { bind: definition, update: definition };\n }\n this.options[type + 's'][id] = definition;\n return definition\n }\n };\n });\n }\n\n /* */\n\n\n\n\n\n function getComponentName (opts) {\n return opts && (opts.Ctor.options.name || opts.tag)\n }\n\n function matches (pattern, name) {\n if (Array.isArray(pattern)) {\n return pattern.indexOf(name) > -1\n } else if (typeof pattern === 'string') {\n return pattern.split(',').indexOf(name) > -1\n } else if (isRegExp(pattern)) {\n return pattern.test(name)\n }\n /* istanbul ignore next */\n return false\n }\n\n function pruneCache (keepAliveInstance, filter) {\n var cache = keepAliveInstance.cache;\n var keys = keepAliveInstance.keys;\n var _vnode = keepAliveInstance._vnode;\n for (var key in cache) {\n var entry = cache[key];\n if (entry) {\n var name = entry.name;\n if (name && !filter(name)) {\n pruneCacheEntry(cache, key, keys, _vnode);\n }\n }\n }\n }\n\n function pruneCacheEntry (\n cache,\n key,\n keys,\n current\n ) {\n var entry = cache[key];\n if (entry && (!current || entry.tag !== current.tag)) {\n entry.componentInstance.$destroy();\n }\n cache[key] = null;\n remove(keys, key);\n }\n\n var patternTypes = [String, RegExp, Array];\n\n var KeepAlive = {\n name: 'keep-alive',\n abstract: true,\n\n props: {\n include: patternTypes,\n exclude: patternTypes,\n max: [String, Number]\n },\n\n methods: {\n cacheVNode: function cacheVNode() {\n var ref = this;\n var cache = ref.cache;\n var keys = ref.keys;\n var vnodeToCache = ref.vnodeToCache;\n var keyToCache = ref.keyToCache;\n if (vnodeToCache) {\n var tag = vnodeToCache.tag;\n var componentInstance = vnodeToCache.componentInstance;\n var componentOptions = vnodeToCache.componentOptions;\n cache[keyToCache] = {\n name: getComponentName(componentOptions),\n tag: tag,\n componentInstance: componentInstance,\n };\n keys.push(keyToCache);\n // prune oldest entry\n if (this.max && keys.length > parseInt(this.max)) {\n pruneCacheEntry(cache, keys[0], keys, this._vnode);\n }\n this.vnodeToCache = null;\n }\n }\n },\n\n created: function created () {\n this.cache = Object.create(null);\n this.keys = [];\n },\n\n destroyed: function destroyed () {\n for (var key in this.cache) {\n pruneCacheEntry(this.cache, key, this.keys);\n }\n },\n\n mounted: function mounted () {\n var this$1 = this;\n\n this.cacheVNode();\n this.$watch('include', function (val) {\n pruneCache(this$1, function (name) { return matches(val, name); });\n });\n this.$watch('exclude', function (val) {\n pruneCache(this$1, function (name) { return !matches(val, name); });\n });\n },\n\n updated: function updated () {\n this.cacheVNode();\n },\n\n render: function render () {\n var slot = this.$slots.default;\n var vnode = getFirstComponentChild(slot);\n var componentOptions = vnode && vnode.componentOptions;\n if (componentOptions) {\n // check pattern\n var name = getComponentName(componentOptions);\n var ref = this;\n var include = ref.include;\n var exclude = ref.exclude;\n if (\n // not included\n (include && (!name || !matches(include, name))) ||\n // excluded\n (exclude && name && matches(exclude, name))\n ) {\n return vnode\n }\n\n var ref$1 = this;\n var cache = ref$1.cache;\n var keys = ref$1.keys;\n var key = vnode.key == null\n // same constructor may get registered as different local components\n // so cid alone is not enough (#3269)\n ? componentOptions.Ctor.cid + (componentOptions.tag ? (\"::\" + (componentOptions.tag)) : '')\n : vnode.key;\n if (cache[key]) {\n vnode.componentInstance = cache[key].componentInstance;\n // make current key freshest\n remove(keys, key);\n keys.push(key);\n } else {\n // delay setting the cache until update\n this.vnodeToCache = vnode;\n this.keyToCache = key;\n }\n\n vnode.data.keepAlive = true;\n }\n return vnode || (slot && slot[0])\n }\n };\n\n var builtInComponents = {\n KeepAlive: KeepAlive\n };\n\n /* */\n\n function initGlobalAPI (Vue) {\n // config\n var configDef = {};\n configDef.get = function () { return config; };\n {\n configDef.set = function () {\n warn(\n 'Do not replace the Vue.config object, set individual fields instead.'\n );\n };\n }\n Object.defineProperty(Vue, 'config', configDef);\n\n // exposed util methods.\n // NOTE: these are not considered part of the public API - avoid relying on\n // them unless you are aware of the risk.\n Vue.util = {\n warn: warn,\n extend: extend,\n mergeOptions: mergeOptions,\n defineReactive: defineReactive$$1\n };\n\n Vue.set = set;\n Vue.delete = del;\n Vue.nextTick = nextTick;\n\n // 2.6 explicit observable API\n Vue.observable = function (obj) {\n observe(obj);\n return obj\n };\n\n Vue.options = Object.create(null);\n ASSET_TYPES.forEach(function (type) {\n Vue.options[type + 's'] = Object.create(null);\n });\n\n // this is used to identify the \"base\" constructor to extend all plain-object\n // components with in Weex's multi-instance scenarios.\n Vue.options._base = Vue;\n\n extend(Vue.options.components, builtInComponents);\n\n initUse(Vue);\n initMixin$1(Vue);\n initExtend(Vue);\n initAssetRegisters(Vue);\n }\n\n initGlobalAPI(Vue);\n\n Object.defineProperty(Vue.prototype, '$isServer', {\n get: isServerRendering\n });\n\n Object.defineProperty(Vue.prototype, '$ssrContext', {\n get: function get () {\n /* istanbul ignore next */\n return this.$vnode && this.$vnode.ssrContext\n }\n });\n\n // expose FunctionalRenderContext for ssr runtime helper installation\n Object.defineProperty(Vue, 'FunctionalRenderContext', {\n value: FunctionalRenderContext\n });\n\n Vue.version = '2.6.14';\n\n /* */\n\n // these are reserved for web because they are directly compiled away\n // during template compilation\n var isReservedAttr = makeMap('style,class');\n\n // attributes that should be using props for binding\n var acceptValue = makeMap('input,textarea,option,select,progress');\n var mustUseProp = function (tag, type, attr) {\n return (\n (attr === 'value' && acceptValue(tag)) && type !== 'button' ||\n (attr === 'selected' && tag === 'option') ||\n (attr === 'checked' && tag === 'input') ||\n (attr === 'muted' && tag === 'video')\n )\n };\n\n var isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck');\n\n var isValidContentEditableValue = makeMap('events,caret,typing,plaintext-only');\n\n var convertEnumeratedValue = function (key, value) {\n return isFalsyAttrValue(value) || value === 'false'\n ? 'false'\n // allow arbitrary string value for contenteditable\n : key === 'contenteditable' && isValidContentEditableValue(value)\n ? value\n : 'true'\n };\n\n var isBooleanAttr = makeMap(\n 'allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,' +\n 'default,defaultchecked,defaultmuted,defaultselected,defer,disabled,' +\n 'enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,' +\n 'muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,' +\n 'required,reversed,scoped,seamless,selected,sortable,' +\n 'truespeed,typemustmatch,visible'\n );\n\n var xlinkNS = 'http://www.w3.org/1999/xlink';\n\n var isXlink = function (name) {\n return name.charAt(5) === ':' && name.slice(0, 5) === 'xlink'\n };\n\n var getXlinkProp = function (name) {\n return isXlink(name) ? name.slice(6, name.length) : ''\n };\n\n var isFalsyAttrValue = function (val) {\n return val == null || val === false\n };\n\n /* */\n\n function genClassForVnode (vnode) {\n var data = vnode.data;\n var parentNode = vnode;\n var childNode = vnode;\n while (isDef(childNode.componentInstance)) {\n childNode = childNode.componentInstance._vnode;\n if (childNode && childNode.data) {\n data = mergeClassData(childNode.data, data);\n }\n }\n while (isDef(parentNode = parentNode.parent)) {\n if (parentNode && parentNode.data) {\n data = mergeClassData(data, parentNode.data);\n }\n }\n return renderClass(data.staticClass, data.class)\n }\n\n function mergeClassData (child, parent) {\n return {\n staticClass: concat(child.staticClass, parent.staticClass),\n class: isDef(child.class)\n ? [child.class, parent.class]\n : parent.class\n }\n }\n\n function renderClass (\n staticClass,\n dynamicClass\n ) {\n if (isDef(staticClass) || isDef(dynamicClass)) {\n return concat(staticClass, stringifyClass(dynamicClass))\n }\n /* istanbul ignore next */\n return ''\n }\n\n function concat (a, b) {\n return a ? b ? (a + ' ' + b) : a : (b || '')\n }\n\n function stringifyClass (value) {\n if (Array.isArray(value)) {\n return stringifyArray(value)\n }\n if (isObject(value)) {\n return stringifyObject(value)\n }\n if (typeof value === 'string') {\n return value\n }\n /* istanbul ignore next */\n return ''\n }\n\n function stringifyArray (value) {\n var res = '';\n var stringified;\n for (var i = 0, l = value.length; i < l; i++) {\n if (isDef(stringified = stringifyClass(value[i])) && stringified !== '') {\n if (res) { res += ' '; }\n res += stringified;\n }\n }\n return res\n }\n\n function stringifyObject (value) {\n var res = '';\n for (var key in value) {\n if (value[key]) {\n if (res) { res += ' '; }\n res += key;\n }\n }\n return res\n }\n\n /* */\n\n var namespaceMap = {\n svg: 'http://www.w3.org/2000/svg',\n math: 'http://www.w3.org/1998/Math/MathML'\n };\n\n var isHTMLTag = makeMap(\n 'html,body,base,head,link,meta,style,title,' +\n 'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' +\n 'div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,' +\n 'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' +\n 's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' +\n 'embed,object,param,source,canvas,script,noscript,del,ins,' +\n 'caption,col,colgroup,table,thead,tbody,td,th,tr,' +\n 'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' +\n 'output,progress,select,textarea,' +\n 'details,dialog,menu,menuitem,summary,' +\n 'content,element,shadow,template,blockquote,iframe,tfoot'\n );\n\n // this map is intentionally selective, only covering SVG elements that may\n // contain child elements.\n var isSVG = makeMap(\n 'svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,' +\n 'foreignobject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,' +\n 'polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view',\n true\n );\n\n var isPreTag = function (tag) { return tag === 'pre'; };\n\n var isReservedTag = function (tag) {\n return isHTMLTag(tag) || isSVG(tag)\n };\n\n function getTagNamespace (tag) {\n if (isSVG(tag)) {\n return 'svg'\n }\n // basic support for MathML\n // note it doesn't support other MathML elements being component roots\n if (tag === 'math') {\n return 'math'\n }\n }\n\n var unknownElementCache = Object.create(null);\n function isUnknownElement (tag) {\n /* istanbul ignore if */\n if (!inBrowser) {\n return true\n }\n if (isReservedTag(tag)) {\n return false\n }\n tag = tag.toLowerCase();\n /* istanbul ignore if */\n if (unknownElementCache[tag] != null) {\n return unknownElementCache[tag]\n }\n var el = document.createElement(tag);\n if (tag.indexOf('-') > -1) {\n // http://stackoverflow.com/a/28210364/1070244\n return (unknownElementCache[tag] = (\n el.constructor === window.HTMLUnknownElement ||\n el.constructor === window.HTMLElement\n ))\n } else {\n return (unknownElementCache[tag] = /HTMLUnknownElement/.test(el.toString()))\n }\n }\n\n var isTextInputType = makeMap('text,number,password,search,email,tel,url');\n\n /* */\n\n /**\n * Query an element selector if it's not an element already.\n */\n function query (el) {\n if (typeof el === 'string') {\n var selected = document.querySelector(el);\n if (!selected) {\n warn(\n 'Cannot find element: ' + el\n );\n return document.createElement('div')\n }\n return selected\n } else {\n return el\n }\n }\n\n /* */\n\n function createElement$1 (tagName, vnode) {\n var elm = document.createElement(tagName);\n if (tagName !== 'select') {\n return elm\n }\n // false or null will remove the attribute but undefined will not\n if (vnode.data && vnode.data.attrs && vnode.data.attrs.multiple !== undefined) {\n elm.setAttribute('multiple', 'multiple');\n }\n return elm\n }\n\n function createElementNS (namespace, tagName) {\n return document.createElementNS(namespaceMap[namespace], tagName)\n }\n\n function createTextNode (text) {\n return document.createTextNode(text)\n }\n\n function createComment (text) {\n return document.createComment(text)\n }\n\n function insertBefore (parentNode, newNode, referenceNode) {\n parentNode.insertBefore(newNode, referenceNode);\n }\n\n function removeChild (node, child) {\n node.removeChild(child);\n }\n\n function appendChild (node, child) {\n node.appendChild(child);\n }\n\n function parentNode (node) {\n return node.parentNode\n }\n\n function nextSibling (node) {\n return node.nextSibling\n }\n\n function tagName (node) {\n return node.tagName\n }\n\n function setTextContent (node, text) {\n node.textContent = text;\n }\n\n function setStyleScope (node, scopeId) {\n node.setAttribute(scopeId, '');\n }\n\n var nodeOps = /*#__PURE__*/Object.freeze({\n createElement: createElement$1,\n createElementNS: createElementNS,\n createTextNode: createTextNode,\n createComment: createComment,\n insertBefore: insertBefore,\n removeChild: removeChild,\n appendChild: appendChild,\n parentNode: parentNode,\n nextSibling: nextSibling,\n tagName: tagName,\n setTextContent: setTextContent,\n setStyleScope: setStyleScope\n });\n\n /* */\n\n var ref = {\n create: function create (_, vnode) {\n registerRef(vnode);\n },\n update: function update (oldVnode, vnode) {\n if (oldVnode.data.ref !== vnode.data.ref) {\n registerRef(oldVnode, true);\n registerRef(vnode);\n }\n },\n destroy: function destroy (vnode) {\n registerRef(vnode, true);\n }\n };\n\n function registerRef (vnode, isRemoval) {\n var key = vnode.data.ref;\n if (!isDef(key)) { return }\n\n var vm = vnode.context;\n var ref = vnode.componentInstance || vnode.elm;\n var refs = vm.$refs;\n if (isRemoval) {\n if (Array.isArray(refs[key])) {\n remove(refs[key], ref);\n } else if (refs[key] === ref) {\n refs[key] = undefined;\n }\n } else {\n if (vnode.data.refInFor) {\n if (!Array.isArray(refs[key])) {\n refs[key] = [ref];\n } else if (refs[key].indexOf(ref) < 0) {\n // $flow-disable-line\n refs[key].push(ref);\n }\n } else {\n refs[key] = ref;\n }\n }\n }\n\n /**\n * Virtual DOM patching algorithm based on Snabbdom by\n * Simon Friis Vindum (@paldepind)\n * Licensed under the MIT License\n * https://github.com/paldepind/snabbdom/blob/master/LICENSE\n *\n * modified by Evan You (@yyx990803)\n *\n * Not type-checking this because this file is perf-critical and the cost\n * of making flow understand it is not worth it.\n */\n\n var emptyNode = new VNode('', {}, []);\n\n var hooks = ['create', 'activate', 'update', 'remove', 'destroy'];\n\n function sameVnode (a, b) {\n return (\n a.key === b.key &&\n a.asyncFactory === b.asyncFactory && (\n (\n a.tag === b.tag &&\n a.isComment === b.isComment &&\n isDef(a.data) === isDef(b.data) &&\n sameInputType(a, b)\n ) || (\n isTrue(a.isAsyncPlaceholder) &&\n isUndef(b.asyncFactory.error)\n )\n )\n )\n }\n\n function sameInputType (a, b) {\n if (a.tag !== 'input') { return true }\n var i;\n var typeA = isDef(i = a.data) && isDef(i = i.attrs) && i.type;\n var typeB = isDef(i = b.data) && isDef(i = i.attrs) && i.type;\n return typeA === typeB || isTextInputType(typeA) && isTextInputType(typeB)\n }\n\n function createKeyToOldIdx (children, beginIdx, endIdx) {\n var i, key;\n var map = {};\n for (i = beginIdx; i <= endIdx; ++i) {\n key = children[i].key;\n if (isDef(key)) { map[key] = i; }\n }\n return map\n }\n\n function createPatchFunction (backend) {\n var i, j;\n var cbs = {};\n\n var modules = backend.modules;\n var nodeOps = backend.nodeOps;\n\n for (i = 0; i < hooks.length; ++i) {\n cbs[hooks[i]] = [];\n for (j = 0; j < modules.length; ++j) {\n if (isDef(modules[j][hooks[i]])) {\n cbs[hooks[i]].push(modules[j][hooks[i]]);\n }\n }\n }\n\n function emptyNodeAt (elm) {\n return new VNode(nodeOps.tagName(elm).toLowerCase(), {}, [], undefined, elm)\n }\n\n function createRmCb (childElm, listeners) {\n function remove$$1 () {\n if (--remove$$1.listeners === 0) {\n removeNode(childElm);\n }\n }\n remove$$1.listeners = listeners;\n return remove$$1\n }\n\n function removeNode (el) {\n var parent = nodeOps.parentNode(el);\n // element may have already been removed due to v-html / v-text\n if (isDef(parent)) {\n nodeOps.removeChild(parent, el);\n }\n }\n\n function isUnknownElement$$1 (vnode, inVPre) {\n return (\n !inVPre &&\n !vnode.ns &&\n !(\n config.ignoredElements.length &&\n config.ignoredElements.some(function (ignore) {\n return isRegExp(ignore)\n ? ignore.test(vnode.tag)\n : ignore === vnode.tag\n })\n ) &&\n config.isUnknownElement(vnode.tag)\n )\n }\n\n var creatingElmInVPre = 0;\n\n function createElm (\n vnode,\n insertedVnodeQueue,\n parentElm,\n refElm,\n nested,\n ownerArray,\n index\n ) {\n if (isDef(vnode.elm) && isDef(ownerArray)) {\n // This vnode was used in a previous render!\n // now it's used as a new node, overwriting its elm would cause\n // potential patch errors down the road when it's used as an insertion\n // reference node. Instead, we clone the node on-demand before creating\n // associated DOM element for it.\n vnode = ownerArray[index] = cloneVNode(vnode);\n }\n\n vnode.isRootInsert = !nested; // for transition enter check\n if (createComponent(vnode, insertedVnodeQueue, parentElm, refElm)) {\n return\n }\n\n var data = vnode.data;\n var children = vnode.children;\n var tag = vnode.tag;\n if (isDef(tag)) {\n {\n if (data && data.pre) {\n creatingElmInVPre++;\n }\n if (isUnknownElement$$1(vnode, creatingElmInVPre)) {\n warn(\n 'Unknown custom element: <' + tag + '> - did you ' +\n 'register the component correctly? For recursive components, ' +\n 'make sure to provide the \"name\" option.',\n vnode.context\n );\n }\n }\n\n vnode.elm = vnode.ns\n ? nodeOps.createElementNS(vnode.ns, tag)\n : nodeOps.createElement(tag, vnode);\n setScope(vnode);\n\n /* istanbul ignore if */\n {\n createChildren(vnode, children, insertedVnodeQueue);\n if (isDef(data)) {\n invokeCreateHooks(vnode, insertedVnodeQueue);\n }\n insert(parentElm, vnode.elm, refElm);\n }\n\n if (data && data.pre) {\n creatingElmInVPre--;\n }\n } else if (isTrue(vnode.isComment)) {\n vnode.elm = nodeOps.createComment(vnode.text);\n insert(parentElm, vnode.elm, refElm);\n } else {\n vnode.elm = nodeOps.createTextNode(vnode.text);\n insert(parentElm, vnode.elm, refElm);\n }\n }\n\n function createComponent (vnode, insertedVnodeQueue, parentElm, refElm) {\n var i = vnode.data;\n if (isDef(i)) {\n var isReactivated = isDef(vnode.componentInstance) && i.keepAlive;\n if (isDef(i = i.hook) && isDef(i = i.init)) {\n i(vnode, false /* hydrating */);\n }\n // after calling the init hook, if the vnode is a child component\n // it should've created a child instance and mounted it. the child\n // component also has set the placeholder vnode's elm.\n // in that case we can just return the element and be done.\n if (isDef(vnode.componentInstance)) {\n initComponent(vnode, insertedVnodeQueue);\n insert(parentElm, vnode.elm, refElm);\n if (isTrue(isReactivated)) {\n reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm);\n }\n return true\n }\n }\n }\n\n function initComponent (vnode, insertedVnodeQueue) {\n if (isDef(vnode.data.pendingInsert)) {\n insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert);\n vnode.data.pendingInsert = null;\n }\n vnode.elm = vnode.componentInstance.$el;\n if (isPatchable(vnode)) {\n invokeCreateHooks(vnode, insertedVnodeQueue);\n setScope(vnode);\n } else {\n // empty component root.\n // skip all element-related modules except for ref (#3455)\n registerRef(vnode);\n // make sure to invoke the insert hook\n insertedVnodeQueue.push(vnode);\n }\n }\n\n function reactivateComponent (vnode, insertedVnodeQueue, parentElm, refElm) {\n var i;\n // hack for #4339: a reactivated component with inner transition\n // does not trigger because the inner node's created hooks are not called\n // again. It's not ideal to involve module-specific logic in here but\n // there doesn't seem to be a better way to do it.\n var innerNode = vnode;\n while (innerNode.componentInstance) {\n innerNode = innerNode.componentInstance._vnode;\n if (isDef(i = innerNode.data) && isDef(i = i.transition)) {\n for (i = 0; i < cbs.activate.length; ++i) {\n cbs.activate[i](emptyNode, innerNode);\n }\n insertedVnodeQueue.push(innerNode);\n break\n }\n }\n // unlike a newly created component,\n // a reactivated keep-alive component doesn't insert itself\n insert(parentElm, vnode.elm, refElm);\n }\n\n function insert (parent, elm, ref$$1) {\n if (isDef(parent)) {\n if (isDef(ref$$1)) {\n if (nodeOps.parentNode(ref$$1) === parent) {\n nodeOps.insertBefore(parent, elm, ref$$1);\n }\n } else {\n nodeOps.appendChild(parent, elm);\n }\n }\n }\n\n function createChildren (vnode, children, insertedVnodeQueue) {\n if (Array.isArray(children)) {\n {\n checkDuplicateKeys(children);\n }\n for (var i = 0; i < children.length; ++i) {\n createElm(children[i], insertedVnodeQueue, vnode.elm, null, true, children, i);\n }\n } else if (isPrimitive(vnode.text)) {\n nodeOps.appendChild(vnode.elm, nodeOps.createTextNode(String(vnode.text)));\n }\n }\n\n function isPatchable (vnode) {\n while (vnode.componentInstance) {\n vnode = vnode.componentInstance._vnode;\n }\n return isDef(vnode.tag)\n }\n\n function invokeCreateHooks (vnode, insertedVnodeQueue) {\n for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {\n cbs.create[i$1](emptyNode, vnode);\n }\n i = vnode.data.hook; // Reuse variable\n if (isDef(i)) {\n if (isDef(i.create)) { i.create(emptyNode, vnode); }\n if (isDef(i.insert)) { insertedVnodeQueue.push(vnode); }\n }\n }\n\n // set scope id attribute for scoped CSS.\n // this is implemented as a special case to avoid the overhead\n // of going through the normal attribute patching process.\n function setScope (vnode) {\n var i;\n if (isDef(i = vnode.fnScopeId)) {\n nodeOps.setStyleScope(vnode.elm, i);\n } else {\n var ancestor = vnode;\n while (ancestor) {\n if (isDef(i = ancestor.context) && isDef(i = i.$options._scopeId)) {\n nodeOps.setStyleScope(vnode.elm, i);\n }\n ancestor = ancestor.parent;\n }\n }\n // for slot content they should also get the scopeId from the host instance.\n if (isDef(i = activeInstance) &&\n i !== vnode.context &&\n i !== vnode.fnContext &&\n isDef(i = i.$options._scopeId)\n ) {\n nodeOps.setStyleScope(vnode.elm, i);\n }\n }\n\n function addVnodes (parentElm, refElm, vnodes, startIdx, endIdx, insertedVnodeQueue) {\n for (; startIdx <= endIdx; ++startIdx) {\n createElm(vnodes[startIdx], insertedVnodeQueue, parentElm, refElm, false, vnodes, startIdx);\n }\n }\n\n function invokeDestroyHook (vnode) {\n var i, j;\n var data = vnode.data;\n if (isDef(data)) {\n if (isDef(i = data.hook) && isDef(i = i.destroy)) { i(vnode); }\n for (i = 0; i < cbs.destroy.length; ++i) { cbs.destroy[i](vnode); }\n }\n if (isDef(i = vnode.children)) {\n for (j = 0; j < vnode.children.length; ++j) {\n invokeDestroyHook(vnode.children[j]);\n }\n }\n }\n\n function removeVnodes (vnodes, startIdx, endIdx) {\n for (; startIdx <= endIdx; ++startIdx) {\n var ch = vnodes[startIdx];\n if (isDef(ch)) {\n if (isDef(ch.tag)) {\n removeAndInvokeRemoveHook(ch);\n invokeDestroyHook(ch);\n } else { // Text node\n removeNode(ch.elm);\n }\n }\n }\n }\n\n function removeAndInvokeRemoveHook (vnode, rm) {\n if (isDef(rm) || isDef(vnode.data)) {\n var i;\n var listeners = cbs.remove.length + 1;\n if (isDef(rm)) {\n // we have a recursively passed down rm callback\n // increase the listeners count\n rm.listeners += listeners;\n } else {\n // directly removing\n rm = createRmCb(vnode.elm, listeners);\n }\n // recursively invoke hooks on child component root node\n if (isDef(i = vnode.componentInstance) && isDef(i = i._vnode) && isDef(i.data)) {\n removeAndInvokeRemoveHook(i, rm);\n }\n for (i = 0; i < cbs.remove.length; ++i) {\n cbs.remove[i](vnode, rm);\n }\n if (isDef(i = vnode.data.hook) && isDef(i = i.remove)) {\n i(vnode, rm);\n } else {\n rm();\n }\n } else {\n removeNode(vnode.elm);\n }\n }\n\n function updateChildren (parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) {\n var oldStartIdx = 0;\n var newStartIdx = 0;\n var oldEndIdx = oldCh.length - 1;\n var oldStartVnode = oldCh[0];\n var oldEndVnode = oldCh[oldEndIdx];\n var newEndIdx = newCh.length - 1;\n var newStartVnode = newCh[0];\n var newEndVnode = newCh[newEndIdx];\n var oldKeyToIdx, idxInOld, vnodeToMove, refElm;\n\n // removeOnly is a special flag used only by \n // to ensure removed elements stay in correct relative positions\n // during leaving transitions\n var canMove = !removeOnly;\n\n {\n checkDuplicateKeys(newCh);\n }\n\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (isUndef(oldStartVnode)) {\n oldStartVnode = oldCh[++oldStartIdx]; // Vnode has been moved left\n } else if (isUndef(oldEndVnode)) {\n oldEndVnode = oldCh[--oldEndIdx];\n } else if (sameVnode(oldStartVnode, newStartVnode)) {\n patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\n oldStartVnode = oldCh[++oldStartIdx];\n newStartVnode = newCh[++newStartIdx];\n } else if (sameVnode(oldEndVnode, newEndVnode)) {\n patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);\n oldEndVnode = oldCh[--oldEndIdx];\n newEndVnode = newCh[--newEndIdx];\n } else if (sameVnode(oldStartVnode, newEndVnode)) { // Vnode moved right\n patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);\n canMove && nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm));\n oldStartVnode = oldCh[++oldStartIdx];\n newEndVnode = newCh[--newEndIdx];\n } else if (sameVnode(oldEndVnode, newStartVnode)) { // Vnode moved left\n patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\n canMove && nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);\n oldEndVnode = oldCh[--oldEndIdx];\n newStartVnode = newCh[++newStartIdx];\n } else {\n if (isUndef(oldKeyToIdx)) { oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx); }\n idxInOld = isDef(newStartVnode.key)\n ? oldKeyToIdx[newStartVnode.key]\n : findIdxInOld(newStartVnode, oldCh, oldStartIdx, oldEndIdx);\n if (isUndef(idxInOld)) { // New element\n createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\n } else {\n vnodeToMove = oldCh[idxInOld];\n if (sameVnode(vnodeToMove, newStartVnode)) {\n patchVnode(vnodeToMove, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\n oldCh[idxInOld] = undefined;\n canMove && nodeOps.insertBefore(parentElm, vnodeToMove.elm, oldStartVnode.elm);\n } else {\n // same key but different element. treat as new element\n createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\n }\n }\n newStartVnode = newCh[++newStartIdx];\n }\n }\n if (oldStartIdx > oldEndIdx) {\n refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm;\n addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);\n } else if (newStartIdx > newEndIdx) {\n removeVnodes(oldCh, oldStartIdx, oldEndIdx);\n }\n }\n\n function checkDuplicateKeys (children) {\n var seenKeys = {};\n for (var i = 0; i < children.length; i++) {\n var vnode = children[i];\n var key = vnode.key;\n if (isDef(key)) {\n if (seenKeys[key]) {\n warn(\n (\"Duplicate keys detected: '\" + key + \"'. This may cause an update error.\"),\n vnode.context\n );\n } else {\n seenKeys[key] = true;\n }\n }\n }\n }\n\n function findIdxInOld (node, oldCh, start, end) {\n for (var i = start; i < end; i++) {\n var c = oldCh[i];\n if (isDef(c) && sameVnode(node, c)) { return i }\n }\n }\n\n function patchVnode (\n oldVnode,\n vnode,\n insertedVnodeQueue,\n ownerArray,\n index,\n removeOnly\n ) {\n if (oldVnode === vnode) {\n return\n }\n\n if (isDef(vnode.elm) && isDef(ownerArray)) {\n // clone reused vnode\n vnode = ownerArray[index] = cloneVNode(vnode);\n }\n\n var elm = vnode.elm = oldVnode.elm;\n\n if (isTrue(oldVnode.isAsyncPlaceholder)) {\n if (isDef(vnode.asyncFactory.resolved)) {\n hydrate(oldVnode.elm, vnode, insertedVnodeQueue);\n } else {\n vnode.isAsyncPlaceholder = true;\n }\n return\n }\n\n // reuse element for static trees.\n // note we only do this if the vnode is cloned -\n // if the new node is not cloned it means the render functions have been\n // reset by the hot-reload-api and we need to do a proper re-render.\n if (isTrue(vnode.isStatic) &&\n isTrue(oldVnode.isStatic) &&\n vnode.key === oldVnode.key &&\n (isTrue(vnode.isCloned) || isTrue(vnode.isOnce))\n ) {\n vnode.componentInstance = oldVnode.componentInstance;\n return\n }\n\n var i;\n var data = vnode.data;\n if (isDef(data) && isDef(i = data.hook) && isDef(i = i.prepatch)) {\n i(oldVnode, vnode);\n }\n\n var oldCh = oldVnode.children;\n var ch = vnode.children;\n if (isDef(data) && isPatchable(vnode)) {\n for (i = 0; i < cbs.update.length; ++i) { cbs.update[i](oldVnode, vnode); }\n if (isDef(i = data.hook) && isDef(i = i.update)) { i(oldVnode, vnode); }\n }\n if (isUndef(vnode.text)) {\n if (isDef(oldCh) && isDef(ch)) {\n if (oldCh !== ch) { updateChildren(elm, oldCh, ch, insertedVnodeQueue, removeOnly); }\n } else if (isDef(ch)) {\n {\n checkDuplicateKeys(ch);\n }\n if (isDef(oldVnode.text)) { nodeOps.setTextContent(elm, ''); }\n addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);\n } else if (isDef(oldCh)) {\n removeVnodes(oldCh, 0, oldCh.length - 1);\n } else if (isDef(oldVnode.text)) {\n nodeOps.setTextContent(elm, '');\n }\n } else if (oldVnode.text !== vnode.text) {\n nodeOps.setTextContent(elm, vnode.text);\n }\n if (isDef(data)) {\n if (isDef(i = data.hook) && isDef(i = i.postpatch)) { i(oldVnode, vnode); }\n }\n }\n\n function invokeInsertHook (vnode, queue, initial) {\n // delay insert hooks for component root nodes, invoke them after the\n // element is really inserted\n if (isTrue(initial) && isDef(vnode.parent)) {\n vnode.parent.data.pendingInsert = queue;\n } else {\n for (var i = 0; i < queue.length; ++i) {\n queue[i].data.hook.insert(queue[i]);\n }\n }\n }\n\n var hydrationBailed = false;\n // list of modules that can skip create hook during hydration because they\n // are already rendered on the client or has no need for initialization\n // Note: style is excluded because it relies on initial clone for future\n // deep updates (#7063).\n var isRenderedModule = makeMap('attrs,class,staticClass,staticStyle,key');\n\n // Note: this is a browser-only function so we can assume elms are DOM nodes.\n function hydrate (elm, vnode, insertedVnodeQueue, inVPre) {\n var i;\n var tag = vnode.tag;\n var data = vnode.data;\n var children = vnode.children;\n inVPre = inVPre || (data && data.pre);\n vnode.elm = elm;\n\n if (isTrue(vnode.isComment) && isDef(vnode.asyncFactory)) {\n vnode.isAsyncPlaceholder = true;\n return true\n }\n // assert node match\n {\n if (!assertNodeMatch(elm, vnode, inVPre)) {\n return false\n }\n }\n if (isDef(data)) {\n if (isDef(i = data.hook) && isDef(i = i.init)) { i(vnode, true /* hydrating */); }\n if (isDef(i = vnode.componentInstance)) {\n // child component. it should have hydrated its own tree.\n initComponent(vnode, insertedVnodeQueue);\n return true\n }\n }\n if (isDef(tag)) {\n if (isDef(children)) {\n // empty element, allow client to pick up and populate children\n if (!elm.hasChildNodes()) {\n createChildren(vnode, children, insertedVnodeQueue);\n } else {\n // v-html and domProps: innerHTML\n if (isDef(i = data) && isDef(i = i.domProps) && isDef(i = i.innerHTML)) {\n if (i !== elm.innerHTML) {\n /* istanbul ignore if */\n if (typeof console !== 'undefined' &&\n !hydrationBailed\n ) {\n hydrationBailed = true;\n console.warn('Parent: ', elm);\n console.warn('server innerHTML: ', i);\n console.warn('client innerHTML: ', elm.innerHTML);\n }\n return false\n }\n } else {\n // iterate and compare children lists\n var childrenMatch = true;\n var childNode = elm.firstChild;\n for (var i$1 = 0; i$1 < children.length; i$1++) {\n if (!childNode || !hydrate(childNode, children[i$1], insertedVnodeQueue, inVPre)) {\n childrenMatch = false;\n break\n }\n childNode = childNode.nextSibling;\n }\n // if childNode is not null, it means the actual childNodes list is\n // longer than the virtual children list.\n if (!childrenMatch || childNode) {\n /* istanbul ignore if */\n if (typeof console !== 'undefined' &&\n !hydrationBailed\n ) {\n hydrationBailed = true;\n console.warn('Parent: ', elm);\n console.warn('Mismatching childNodes vs. VNodes: ', elm.childNodes, children);\n }\n return false\n }\n }\n }\n }\n if (isDef(data)) {\n var fullInvoke = false;\n for (var key in data) {\n if (!isRenderedModule(key)) {\n fullInvoke = true;\n invokeCreateHooks(vnode, insertedVnodeQueue);\n break\n }\n }\n if (!fullInvoke && data['class']) {\n // ensure collecting deps for deep class bindings for future updates\n traverse(data['class']);\n }\n }\n } else if (elm.data !== vnode.text) {\n elm.data = vnode.text;\n }\n return true\n }\n\n function assertNodeMatch (node, vnode, inVPre) {\n if (isDef(vnode.tag)) {\n return vnode.tag.indexOf('vue-component') === 0 || (\n !isUnknownElement$$1(vnode, inVPre) &&\n vnode.tag.toLowerCase() === (node.tagName && node.tagName.toLowerCase())\n )\n } else {\n return node.nodeType === (vnode.isComment ? 8 : 3)\n }\n }\n\n return function patch (oldVnode, vnode, hydrating, removeOnly) {\n if (isUndef(vnode)) {\n if (isDef(oldVnode)) { invokeDestroyHook(oldVnode); }\n return\n }\n\n var isInitialPatch = false;\n var insertedVnodeQueue = [];\n\n if (isUndef(oldVnode)) {\n // empty mount (likely as component), create new root element\n isInitialPatch = true;\n createElm(vnode, insertedVnodeQueue);\n } else {\n var isRealElement = isDef(oldVnode.nodeType);\n if (!isRealElement && sameVnode(oldVnode, vnode)) {\n // patch existing root node\n patchVnode(oldVnode, vnode, insertedVnodeQueue, null, null, removeOnly);\n } else {\n if (isRealElement) {\n // mounting to a real element\n // check if this is server-rendered content and if we can perform\n // a successful hydration.\n if (oldVnode.nodeType === 1 && oldVnode.hasAttribute(SSR_ATTR)) {\n oldVnode.removeAttribute(SSR_ATTR);\n hydrating = true;\n }\n if (isTrue(hydrating)) {\n if (hydrate(oldVnode, vnode, insertedVnodeQueue)) {\n invokeInsertHook(vnode, insertedVnodeQueue, true);\n return oldVnode\n } else {\n warn(\n 'The client-side rendered virtual DOM tree is not matching ' +\n 'server-rendered content. This is likely caused by incorrect ' +\n 'HTML markup, for example nesting block-level elements inside ' +\n '
, or missing
. Bailing hydration and performing ' +\n 'full client-side render.'\n );\n }\n }\n // either not server-rendered, or hydration failed.\n // create an empty node and replace it\n oldVnode = emptyNodeAt(oldVnode);\n }\n\n // replacing existing element\n var oldElm = oldVnode.elm;\n var parentElm = nodeOps.parentNode(oldElm);\n\n // create new node\n createElm(\n vnode,\n insertedVnodeQueue,\n // extremely rare edge case: do not insert if old element is in a\n // leaving transition. Only happens when combining transition +\n // keep-alive + HOCs. (#4590)\n oldElm._leaveCb ? null : parentElm,\n nodeOps.nextSibling(oldElm)\n );\n\n // update parent placeholder node element, recursively\n if (isDef(vnode.parent)) {\n var ancestor = vnode.parent;\n var patchable = isPatchable(vnode);\n while (ancestor) {\n for (var i = 0; i < cbs.destroy.length; ++i) {\n cbs.destroy[i](ancestor);\n }\n ancestor.elm = vnode.elm;\n if (patchable) {\n for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {\n cbs.create[i$1](emptyNode, ancestor);\n }\n // #6513\n // invoke insert hooks that may have been merged by create hooks.\n // e.g. for directives that uses the \"inserted\" hook.\n var insert = ancestor.data.hook.insert;\n if (insert.merged) {\n // start at index 1 to avoid re-invoking component mounted hook\n for (var i$2 = 1; i$2 < insert.fns.length; i$2++) {\n insert.fns[i$2]();\n }\n }\n } else {\n registerRef(ancestor);\n }\n ancestor = ancestor.parent;\n }\n }\n\n // destroy old node\n if (isDef(parentElm)) {\n removeVnodes([oldVnode], 0, 0);\n } else if (isDef(oldVnode.tag)) {\n invokeDestroyHook(oldVnode);\n }\n }\n }\n\n invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch);\n return vnode.elm\n }\n }\n\n /* */\n\n var directives = {\n create: updateDirectives,\n update: updateDirectives,\n destroy: function unbindDirectives (vnode) {\n updateDirectives(vnode, emptyNode);\n }\n };\n\n function updateDirectives (oldVnode, vnode) {\n if (oldVnode.data.directives || vnode.data.directives) {\n _update(oldVnode, vnode);\n }\n }\n\n function _update (oldVnode, vnode) {\n var isCreate = oldVnode === emptyNode;\n var isDestroy = vnode === emptyNode;\n var oldDirs = normalizeDirectives$1(oldVnode.data.directives, oldVnode.context);\n var newDirs = normalizeDirectives$1(vnode.data.directives, vnode.context);\n\n var dirsWithInsert = [];\n var dirsWithPostpatch = [];\n\n var key, oldDir, dir;\n for (key in newDirs) {\n oldDir = oldDirs[key];\n dir = newDirs[key];\n if (!oldDir) {\n // new directive, bind\n callHook$1(dir, 'bind', vnode, oldVnode);\n if (dir.def && dir.def.inserted) {\n dirsWithInsert.push(dir);\n }\n } else {\n // existing directive, update\n dir.oldValue = oldDir.value;\n dir.oldArg = oldDir.arg;\n callHook$1(dir, 'update', vnode, oldVnode);\n if (dir.def && dir.def.componentUpdated) {\n dirsWithPostpatch.push(dir);\n }\n }\n }\n\n if (dirsWithInsert.length) {\n var callInsert = function () {\n for (var i = 0; i < dirsWithInsert.length; i++) {\n callHook$1(dirsWithInsert[i], 'inserted', vnode, oldVnode);\n }\n };\n if (isCreate) {\n mergeVNodeHook(vnode, 'insert', callInsert);\n } else {\n callInsert();\n }\n }\n\n if (dirsWithPostpatch.length) {\n mergeVNodeHook(vnode, 'postpatch', function () {\n for (var i = 0; i < dirsWithPostpatch.length; i++) {\n callHook$1(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode);\n }\n });\n }\n\n if (!isCreate) {\n for (key in oldDirs) {\n if (!newDirs[key]) {\n // no longer present, unbind\n callHook$1(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy);\n }\n }\n }\n }\n\n var emptyModifiers = Object.create(null);\n\n function normalizeDirectives$1 (\n dirs,\n vm\n ) {\n var res = Object.create(null);\n if (!dirs) {\n // $flow-disable-line\n return res\n }\n var i, dir;\n for (i = 0; i < dirs.length; i++) {\n dir = dirs[i];\n if (!dir.modifiers) {\n // $flow-disable-line\n dir.modifiers = emptyModifiers;\n }\n res[getRawDirName(dir)] = dir;\n dir.def = resolveAsset(vm.$options, 'directives', dir.name, true);\n }\n // $flow-disable-line\n return res\n }\n\n function getRawDirName (dir) {\n return dir.rawName || ((dir.name) + \".\" + (Object.keys(dir.modifiers || {}).join('.')))\n }\n\n function callHook$1 (dir, hook, vnode, oldVnode, isDestroy) {\n var fn = dir.def && dir.def[hook];\n if (fn) {\n try {\n fn(vnode.elm, dir, vnode, oldVnode, isDestroy);\n } catch (e) {\n handleError(e, vnode.context, (\"directive \" + (dir.name) + \" \" + hook + \" hook\"));\n }\n }\n }\n\n var baseModules = [\n ref,\n directives\n ];\n\n /* */\n\n function updateAttrs (oldVnode, vnode) {\n var opts = vnode.componentOptions;\n if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) {\n return\n }\n if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) {\n return\n }\n var key, cur, old;\n var elm = vnode.elm;\n var oldAttrs = oldVnode.data.attrs || {};\n var attrs = vnode.data.attrs || {};\n // clone observed objects, as the user probably wants to mutate it\n if (isDef(attrs.__ob__)) {\n attrs = vnode.data.attrs = extend({}, attrs);\n }\n\n for (key in attrs) {\n cur = attrs[key];\n old = oldAttrs[key];\n if (old !== cur) {\n setAttr(elm, key, cur, vnode.data.pre);\n }\n }\n // #4391: in IE9, setting type can reset value for input[type=radio]\n // #6666: IE/Edge forces progress value down to 1 before setting a max\n /* istanbul ignore if */\n if ((isIE || isEdge) && attrs.value !== oldAttrs.value) {\n setAttr(elm, 'value', attrs.value);\n }\n for (key in oldAttrs) {\n if (isUndef(attrs[key])) {\n if (isXlink(key)) {\n elm.removeAttributeNS(xlinkNS, getXlinkProp(key));\n } else if (!isEnumeratedAttr(key)) {\n elm.removeAttribute(key);\n }\n }\n }\n }\n\n function setAttr (el, key, value, isInPre) {\n if (isInPre || el.tagName.indexOf('-') > -1) {\n baseSetAttr(el, key, value);\n } else if (isBooleanAttr(key)) {\n // set attribute for blank value\n // e.g. \n if (isFalsyAttrValue(value)) {\n el.removeAttribute(key);\n } else {\n // technically allowfullscreen is a boolean attribute for