{"version":3,"sources":["webpack:///webpack/bootstrap 56669f073e69687a58bc","webpack:///./node_modules/pug-runtime/index.js","webpack:///./src/views/View.js","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///./node_modules/underscore/modules/index-all.js","webpack:///./src/rest.js","webpack:///./src/events.js","webpack:///./src/dialog.js","webpack:///./node_modules/underscore/modules/_setup.js","webpack:///./src/constants.js","webpack:///./src/router.js","webpack:///./src/auth.js","webpack:///./src/misc.js","webpack:///./src/utilities/jquery/girderModal.js","webpack:///./node_modules/underscore/modules/keys.js","webpack:///./node_modules/underscore/modules/_tagTester.js","webpack:///./node_modules/underscore/modules/_cb.js","webpack:///./src/models/UserModel.js","webpack:///./node_modules/underscore/modules/restArguments.js","webpack:///./node_modules/underscore/modules/underscore.js","webpack:///./node_modules/underscore/modules/_isArrayLike.js","webpack:///./src/utilities/jquery/girderEnable.js","webpack:///./node_modules/underscore/modules/isFunction.js","webpack:///./node_modules/underscore/modules/_getLength.js","webpack:///./node_modules/moment/moment.js","webpack:///./node_modules/backbone/backbone.js","webpack:///./node_modules/tslib/tslib.es6.js","webpack:///./node_modules/bootstrap/js/dropdown.js","webpack:///./src/collections/Collection.js","webpack:///./src/models/FolderModel.js","webpack:///./src/views/widgets/SearchFieldWidget.js","webpack:///./node_modules/underscore/modules/_has.js","webpack:///./node_modules/underscore/modules/isObject.js","webpack:///./node_modules/underscore/modules/isArray.js","webpack:///./node_modules/underscore/modules/each.js","webpack:///./src/models/Model.js","webpack:///./node_modules/autolinker/dist/es2015/match/match.js","webpack:///./node_modules/autolinker/dist/es2015/matcher/matcher.js","webpack:///./node_modules/autolinker/dist/es2015/regex-lib.js","webpack:///./node_modules/qrcode/lib/core/utils.js","webpack:///./node_modules/qrcode/lib/core/mode.js","webpack:///./node_modules/underscore/modules/values.js","webpack:///./node_modules/underscore/modules/_flatten.js","webpack:///./node_modules/underscore/modules/map.js","webpack:///./src/models/AccessControlledModel.js","webpack:///./node_modules/autolinker/dist/es2015/utils.js","webpack:///./src/models/CollectionModel.js","webpack:///./src/models/ItemModel.js","webpack:///./src/models/GroupModel.js","webpack:///./src/views/widgets/HierarchyWidget.js","webpack:///./src/views/widgets/PaginateWidget.js","webpack:///./node_modules/qrcode/lib/utils/typedarray-buffer.js","webpack:///./node_modules/get-intrinsic/index.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/underscore/modules/_stringTagBug.js","webpack:///./node_modules/underscore/modules/allKeys.js","webpack:///./node_modules/underscore/modules/_toPath.js","webpack:///./node_modules/underscore/modules/_optimizeCb.js","webpack:///./node_modules/underscore/modules/filter.js","webpack:///./node_modules/underscore/modules/contains.js","webpack:///./src/utilities/EventStream.js","webpack:///./src/collections/UserCollection.js","webpack:///./src/views/widgets/LoadingAnimation.js","webpack:///./node_modules/es-errors/type.js","webpack:///./node_modules/underscore/modules/matcher.js","webpack:///./node_modules/underscore/modules/partial.js","webpack:///./node_modules/underscore/modules/_group.js","webpack:///./src/models/AssetstoreModel.js","webpack:///./src/models/MetadataMixin.js","webpack:///./src/models/FileModel.js","webpack:///./src/views/widgets/AccessWidget.js","webpack:///./src/views/widgets/EditCollectionWidget.js","webpack:///./src/views/widgets/MarkdownWidget.js","webpack:///./src/views/widgets/UploadWidget.js","webpack:///./src/views/body/UserView.js","webpack:///./node_modules/underscore/modules/index.js","webpack:///./node_modules/underscore/modules/isString.js","webpack:///./node_modules/underscore/modules/isDataView.js","webpack:///./node_modules/underscore/modules/isArguments.js","webpack:///./node_modules/underscore/modules/_getByteLength.js","webpack:///./node_modules/underscore/modules/_methodFingerprint.js","webpack:///./node_modules/underscore/modules/_createAssigner.js","webpack:///./node_modules/underscore/modules/extendOwn.js","webpack:///./node_modules/underscore/modules/_deepGet.js","webpack:///./node_modules/underscore/modules/identity.js","webpack:///./node_modules/underscore/modules/property.js","webpack:///./node_modules/underscore/modules/now.js","webpack:///./node_modules/underscore/modules/negate.js","webpack:///./node_modules/underscore/modules/findIndex.js","webpack:///./node_modules/underscore/modules/pluck.js","webpack:///./src/models/ApiKeyModel.js","webpack:///./node_modules/autolinker/dist/es2015/html-tag.js","webpack:///./node_modules/autolinker/dist/es2015/match/email-match.js","webpack:///./node_modules/autolinker/dist/es2015/match/hashtag-match.js","webpack:///./node_modules/autolinker/dist/es2015/match/mention-match.js","webpack:///./node_modules/autolinker/dist/es2015/match/phone-match.js","webpack:///./node_modules/autolinker/dist/es2015/match/url-match.js","webpack:///./src/collections/CollectionCollection.js","webpack:///./src/collections/FileCollection.js","webpack:///./node_modules/bootstrap/js/tooltip.js","webpack:///./node_modules/bootstrap/js/popover.js","webpack:///./src/views/layout/RegisterView.js","webpack:///./node_modules/bootstrap/js/collapse.js","webpack:///./node_modules/bootstrap/js/transition.js","webpack:///./src/views/widgets/BrowserWidget.js","webpack:///./node_modules/bootstrap/js/tab.js","webpack:///./src/views/widgets/EditItemWidget.js","webpack:///./src/views/widgets/MetadataWidget.js","webpack:///./src/views/widgets/EditGroupWidget.js","webpack:///./src/views/body/UsersView.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/qrcode/lib/core/error-correction-level.js","webpack:///./node_modules/function-bind/index.js","webpack:///./node_modules/es-define-property/index.js","webpack:///./node_modules/qs/lib/formats.js","webpack:///./node_modules/underscore/modules/isUndefined.js","webpack:///./node_modules/underscore/modules/isBoolean.js","webpack:///./node_modules/underscore/modules/isNumber.js","webpack:///./node_modules/underscore/modules/isSymbol.js","webpack:///./node_modules/underscore/modules/isArrayBuffer.js","webpack:///./node_modules/underscore/modules/isNaN.js","webpack:///./node_modules/underscore/modules/isTypedArray.js","webpack:///./node_modules/underscore/modules/constant.js","webpack:///./node_modules/underscore/modules/_createSizePropertyCheck.js","webpack:///./node_modules/underscore/modules/_shallowProperty.js","webpack:///./node_modules/underscore/modules/_collectNonEnumProps.js","webpack:///./node_modules/underscore/modules/isMatch.js","webpack:///./node_modules/underscore/modules/invert.js","webpack:///./node_modules/underscore/modules/functions.js","webpack:///./node_modules/underscore/modules/extend.js","webpack:///./node_modules/underscore/modules/defaults.js","webpack:///./node_modules/underscore/modules/_baseCreate.js","webpack:///./node_modules/underscore/modules/get.js","webpack:///./node_modules/underscore/modules/toPath.js","webpack:///./node_modules/underscore/modules/_baseIteratee.js","webpack:///./node_modules/underscore/modules/iteratee.js","webpack:///./node_modules/underscore/modules/noop.js","webpack:///./node_modules/underscore/modules/random.js","webpack:///./node_modules/underscore/modules/_createEscaper.js","webpack:///./node_modules/underscore/modules/_escapeMap.js","webpack:///./node_modules/underscore/modules/templateSettings.js","webpack:///./node_modules/underscore/modules/_executeBound.js","webpack:///./node_modules/underscore/modules/bind.js","webpack:///./node_modules/underscore/modules/delay.js","webpack:///./node_modules/underscore/modules/before.js","webpack:///./node_modules/underscore/modules/findKey.js","webpack:///./node_modules/underscore/modules/_createPredicateIndexFinder.js","webpack:///./node_modules/underscore/modules/findLastIndex.js","webpack:///./node_modules/underscore/modules/sortedIndex.js","webpack:///./node_modules/underscore/modules/indexOf.js","webpack:///./node_modules/underscore/modules/_createIndexFinder.js","webpack:///./node_modules/underscore/modules/find.js","webpack:///./node_modules/underscore/modules/_createReduce.js","webpack:///./node_modules/underscore/modules/max.js","webpack:///./node_modules/underscore/modules/sample.js","webpack:///./node_modules/underscore/modules/toArray.js","webpack:///./node_modules/underscore/modules/pick.js","webpack:///./node_modules/underscore/modules/initial.js","webpack:///./node_modules/underscore/modules/rest.js","webpack:///./node_modules/underscore/modules/difference.js","webpack:///./node_modules/underscore/modules/uniq.js","webpack:///./node_modules/underscore/modules/unzip.js","webpack:///./node_modules/underscore/modules/_chainResult.js","webpack:///./src/collections/ApiKeyCollection.js","webpack:///./node_modules/autolinker/dist/es2015/autolinker.js","webpack:///./node_modules/autolinker/dist/es2015/anchor-tag-builder.js","webpack:///./node_modules/autolinker/dist/es2015/matcher/email-matcher.js","webpack:///./node_modules/autolinker/dist/es2015/matcher/tld-regex.js","webpack:///./node_modules/autolinker/dist/es2015/matcher/url-matcher.js","webpack:///./node_modules/autolinker/dist/es2015/matcher/hashtag-matcher.js","webpack:///./node_modules/autolinker/dist/es2015/matcher/phone-matcher.js","webpack:///./node_modules/autolinker/dist/es2015/matcher/mention-matcher.js","webpack:///./src/collections/AssetstoreCollection.js","webpack:///./src/utilities/S3UploadHandler.js","webpack:///./src/collections/FolderCollection.js","webpack:///./src/collections/GroupCollection.js","webpack:///./src/collections/ItemCollection.js","webpack:///./src/models/index.js","webpack:///./src/utilities/PluginUtils.js","webpack:///./src/views/layout/FooterView.js","webpack:///./src/views/layout/GlobalNavView.js","webpack:///./src/views/layout/HeaderView.js","webpack:///./src/views/layout/HeaderUserView.js","webpack:///./src/views/layout/LoginView.js","webpack:///./src/views/layout/ProgressListView.js","webpack:///./src/views/widgets/TaskProgressWidget.js","webpack:///./src/views/layout/ResetPasswordView.js","webpack:///./src/views/body/AdminView.js","webpack:///./src/views/body/AssetstoresView.js","webpack:///./src/views/widgets/EditAssetstoreWidget.js","webpack:///./src/views/widgets/NewAssetstoreWidget.js","webpack:///./src/views/body/FilesystemImportView.js","webpack:///./src/views/widgets/CheckedMenuWidget.js","webpack:///./src/views/widgets/CollectionInfoWidget.js","webpack:///./src/views/widgets/EditFolderWidget.js","webpack:///./src/views/widgets/FolderInfoWidget.js","webpack:///./src/views/widgets/FolderListWidget.js","webpack:///./src/views/widgets/ItemListWidget.js","webpack:///./src/views/widgets/RootSelectorWidget.js","webpack:///./src/views/body/S3ImportView.js","webpack:///./src/views/body/CollectionsView.js","webpack:///./src/templates/widgets/paginateWidget.pug","webpack:///./src/views/body/CollectionView.js","webpack:///./src/views/body/FolderView.js","webpack:///./src/views/body/FrontPageView.js","webpack:///./src/version.js","webpack:///./src/views/body/GroupsView.js","webpack:///./src/views/body/GroupView.js","webpack:///./src/views/widgets/GroupAdminsWidget.js","webpack:///./src/views/widgets/GroupInvitesWidget.js","webpack:///./src/views/widgets/GroupMembersWidget.js","webpack:///./src/views/widgets/GroupModsWidget.js","webpack:///./src/views/body/ItemView.js","webpack:///./src/views/widgets/FileListWidget.js","webpack:///./src/views/widgets/EditFileWidget.js","webpack:///./src/views/widgets/FileInfoWidget.js","webpack:///./src/views/widgets/ItemBreadcrumbWidget.js","webpack:///./src/views/body/PluginsView.js","webpack:///./src/views/body/SystemConfigurationView.js","webpack:///./src/views/body/UserAccountView.js","webpack:///./src/views/widgets/ApiKeyListWidget.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/moment/locale/en-au.js","webpack:///./node_modules/moment/locale/en-ca.js","webpack:///./node_modules/moment/locale/en-gb.js","webpack:///./node_modules/moment/locale/en-ie.js","webpack:///./node_modules/moment/locale/en-il.js","webpack:///./node_modules/moment/locale/en-in.js","webpack:///./node_modules/moment/locale/en-nz.js","webpack:///./node_modules/moment/locale/en-sg.js","webpack:///./src/views/widgets/EditApiKeyWidget.js","webpack:///./node_modules/qrcode/lib/core/error-correction-code.js","webpack:///./node_modules/qrcode/lib/core/version-check.js","webpack:///./node_modules/qrcode/lib/core/regex.js","webpack:///./node_modules/qrcode/lib/renderer/utils.js","webpack:///./node_modules/es-errors/syntax.js","webpack:///./node_modules/gopd/index.js","webpack:///./node_modules/qs/lib/utils.js","webpack:///./src/views/body/SearchResultsView.js","webpack:///./node_modules/eonasdan-bootstrap-datetimepicker/src/js/bootstrap-datetimepicker.js","webpack:///./node_modules/eonasdan-bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.css","webpack:///./src/index.js","webpack:///./node_modules/underscore/modules/index-default.js","webpack:///./node_modules/underscore/modules/isNull.js","webpack:///./node_modules/underscore/modules/isElement.js","webpack:///./node_modules/underscore/modules/isDate.js","webpack:///./node_modules/underscore/modules/isRegExp.js","webpack:///./node_modules/underscore/modules/isError.js","webpack:///./node_modules/underscore/modules/_hasObjectTag.js","webpack:///./node_modules/underscore/modules/isFinite.js","webpack:///./node_modules/underscore/modules/_isBufferLike.js","webpack:///./node_modules/underscore/modules/isEmpty.js","webpack:///./node_modules/underscore/modules/isEqual.js","webpack:///./node_modules/underscore/modules/_toBufferView.js","webpack:///./node_modules/underscore/modules/isMap.js","webpack:///./node_modules/underscore/modules/isWeakMap.js","webpack:///./node_modules/underscore/modules/isSet.js","webpack:///./node_modules/underscore/modules/isWeakSet.js","webpack:///./node_modules/underscore/modules/pairs.js","webpack:///./node_modules/underscore/modules/create.js","webpack:///./node_modules/underscore/modules/clone.js","webpack:///./node_modules/underscore/modules/tap.js","webpack:///./node_modules/underscore/modules/has.js","webpack:///./node_modules/underscore/modules/mapObject.js","webpack:///./node_modules/underscore/modules/propertyOf.js","webpack:///./node_modules/underscore/modules/times.js","webpack:///./node_modules/underscore/modules/escape.js","webpack:///./node_modules/underscore/modules/unescape.js","webpack:///./node_modules/underscore/modules/_unescapeMap.js","webpack:///./node_modules/underscore/modules/template.js","webpack:///./node_modules/underscore/modules/result.js","webpack:///./node_modules/underscore/modules/uniqueId.js","webpack:///./node_modules/underscore/modules/chain.js","webpack:///./node_modules/underscore/modules/bindAll.js","webpack:///./node_modules/underscore/modules/memoize.js","webpack:///./node_modules/underscore/modules/defer.js","webpack:///./node_modules/underscore/modules/throttle.js","webpack:///./node_modules/underscore/modules/debounce.js","webpack:///./node_modules/underscore/modules/wrap.js","webpack:///./node_modules/underscore/modules/compose.js","webpack:///./node_modules/underscore/modules/after.js","webpack:///./node_modules/underscore/modules/once.js","webpack:///./node_modules/underscore/modules/lastIndexOf.js","webpack:///./node_modules/underscore/modules/findWhere.js","webpack:///./node_modules/underscore/modules/reduce.js","webpack:///./node_modules/underscore/modules/reduceRight.js","webpack:///./node_modules/underscore/modules/reject.js","webpack:///./node_modules/underscore/modules/every.js","webpack:///./node_modules/underscore/modules/some.js","webpack:///./node_modules/underscore/modules/invoke.js","webpack:///./node_modules/underscore/modules/where.js","webpack:///./node_modules/underscore/modules/min.js","webpack:///./node_modules/underscore/modules/shuffle.js","webpack:///./node_modules/underscore/modules/sortBy.js","webpack:///./node_modules/underscore/modules/groupBy.js","webpack:///./node_modules/underscore/modules/indexBy.js","webpack:///./node_modules/underscore/modules/countBy.js","webpack:///./node_modules/underscore/modules/partition.js","webpack:///./node_modules/underscore/modules/size.js","webpack:///./node_modules/underscore/modules/_keyInObj.js","webpack:///./node_modules/underscore/modules/omit.js","webpack:///./node_modules/underscore/modules/first.js","webpack:///./node_modules/underscore/modules/last.js","webpack:///./node_modules/underscore/modules/compact.js","webpack:///./node_modules/underscore/modules/flatten.js","webpack:///./node_modules/underscore/modules/without.js","webpack:///./node_modules/underscore/modules/union.js","webpack:///./node_modules/underscore/modules/intersection.js","webpack:///./node_modules/underscore/modules/zip.js","webpack:///./node_modules/underscore/modules/object.js","webpack:///./node_modules/underscore/modules/range.js","webpack:///./node_modules/underscore/modules/chunk.js","webpack:///./node_modules/underscore/modules/mixin.js","webpack:///./node_modules/underscore/modules/underscore-array-methods.js","webpack:///./src/collections/index.js","webpack:///./node_modules/remarkable/dist/esm/index.browser.js","webpack:///./node_modules/remarkable/dist/esm/linkify.js","webpack:///./node_modules/autolinker/dist/es2015/index.js","webpack:///./node_modules/autolinker/dist/es2015/version.js","webpack:///./node_modules/autolinker/dist/es2015/truncate/truncate-smart.js","webpack:///./node_modules/autolinker/dist/es2015/truncate/truncate-middle.js","webpack:///./node_modules/autolinker/dist/es2015/truncate/truncate-end.js","webpack:///./node_modules/autolinker/dist/es2015/matcher/url-match-validator.js","webpack:///./node_modules/autolinker/dist/es2015/htmlParser/parse-html.js","webpack:///./node_modules/autolinker/dist/es2015/match/index.js","webpack:///./node_modules/autolinker/dist/es2015/matcher/index.js","webpack:///./node_modules/bootstrap/js/modal.js","webpack:///./src/templates/widgets/confirmDialog.pug","webpack:///fs (ignored)","webpack:///./src/utilities/index.js","webpack:///./src/views/index.js","webpack:///./src/views/App.js","webpack:///./node_modules/typeface-open-sans/index.css","webpack:///./node_modules/bootstrap/dist/css/bootstrap.css","webpack:///./node_modules/bootstrap/js/alert.js","webpack:///./node_modules/@girder/fontello/dist/css/animation.css","webpack:///./node_modules/@girder/fontello/dist/css/fontello.css","webpack:///./src/templates/layout/layoutFooter.pug","webpack:///./src/stylesheets/layout/footer.styl","webpack:///./src/templates/layout/layoutGlobalNav.pug","webpack:///./src/stylesheets/layout/globalNav.styl","webpack:///./src/templates/layout/layoutHeaderUser.pug","webpack:///./src/stylesheets/layout/headerUser.styl","webpack:///./src/templates/widgets/searchField.pug","webpack:///./src/templates/widgets/searchHelp.pug","webpack:///./src/templates/widgets/searchModeSelect.pug","webpack:///./src/templates/widgets/searchResults.pug","webpack:///./src/stylesheets/widgets/searchFieldWidget.styl","webpack:///./src/templates/layout/layoutHeader.pug","webpack:///./src/stylesheets/layout/header.styl","webpack:///./src/templates/layout/loginDialog.pug","webpack:///./node_modules/sprintf-js/src/sprintf.js","webpack:///./src/templates/widgets/taskProgress.pug","webpack:///./src/stylesheets/widgets/taskProgress.styl","webpack:///./src/templates/layout/layoutProgressArea.pug","webpack:///./src/stylesheets/layout/progressArea.styl","webpack:///./src/templates/layout/registerDialog.pug","webpack:///./src/templates/layout/resetPasswordDialog.pug","webpack:///./src/templates/layout/alert.pug","webpack:///./src/templates/layout/layout.pug","webpack:///./src/routes.js","webpack:///./src/templates/body/adminConsole.pug","webpack:///./src/stylesheets/body/adminConsole.styl","webpack:///./src/templates/widgets/editAssetstoreWidget.pug","webpack:///./src/templates/widgets/newAssetstore.pug","webpack:///./src/templates/body/assetstores.pug","webpack:///./src/stylesheets/body/assetstores.styl","webpack:///./node_modules/as-jqplot/dist/jquery.jqplot.js","webpack:///./node_modules/as-jqplot/dist/jquery.jqplot.css","webpack:///./node_modules/as-jqplot/dist/plugins/jqplot.pieRenderer.js","webpack:///./src/templates/widgets/accessEditorNonModal.pug","webpack:///./src/templates/widgets/accessEditor.pug","webpack:///./src/templates/widgets/accessEntry.pug","webpack:///./src/templates/widgets/loadingAnimation.pug","webpack:///./src/stylesheets/layout/loading.styl","webpack:///./src/stylesheets/widgets/accessWidget.styl","webpack:///./src/templates/widgets/checkedActionsMenu.pug","webpack:///./src/templates/widgets/collectionInfoDialog.pug","webpack:///./src/templates/widgets/markdownWidget.pug","webpack:///./src/stylesheets/widgets/markdownWidget.styl","webpack:///./src/templates/widgets/editCollectionWidget.pug","webpack:///./src/templates/widgets/editFolderWidget.pug","webpack:///./src/templates/widgets/editItemWidget.pug","webpack:///./src/templates/widgets/folderInfoDialog.pug","webpack:///./src/templates/widgets/folderList.pug","webpack:///./src/templates/widgets/itemList.pug","webpack:///./src/templates/widgets/jsonMetadatumEditWidget.pug","webpack:///./src/templates/widgets/jsonMetadatumView.pug","webpack:///./src/templates/widgets/metadataWidget.pug","webpack:///./src/templates/widgets/metadatumEditWidget.pug","webpack:///./src/templates/widgets/metadatumView.pug","webpack:///./src/stylesheets/widgets/metadataWidget.styl","webpack:///./node_modules/jsoneditor/dist/jsoneditor.js","webpack:///./node_modules/jsoneditor/dist/jsoneditor.css","webpack:///./src/templates/widgets/uploadWidget.pug","webpack:///./src/templates/widgets/uploadWidgetNonModal.pug","webpack:///./src/stylesheets/widgets/uploadWidget.styl","webpack:///./src/templates/widgets/hierarchyBreadcrumb.pug","webpack:///./src/templates/widgets/hierarchyPaginated.pug","webpack:///./src/templates/widgets/hierarchyWidget.pug","webpack:///./src/stylesheets/widgets/hierarchyWidget.styl","webpack:///./src/templates/widgets/rootSelectorWidget.pug","webpack:///./src/templates/widgets/browserWidget.pug","webpack:///./src/stylesheets/widgets/browserWidget.styl","webpack:///./src/templates/body/filesystemImport.pug","webpack:///./src/templates/body/s3Import.pug","webpack:///./src/templates/body/collectionList.pug","webpack:///./src/stylesheets/body/collectionList.styl","webpack:///./src/templates/body/collectionPage.pug","webpack:///./src/stylesheets/body/collectionPage.styl","webpack:///./src/templates/body/frontPage.pug","webpack:///./src/assets/Girder_Mark.png","webpack:///./src/stylesheets/body/frontPage.styl","webpack:///./src/templates/widgets/editGroupWidget.pug","webpack:///./src/templates/body/groupList.pug","webpack:///./src/stylesheets/body/groupList.styl","webpack:///./src/views/widgets/SortCollectionWidget.js","webpack:///./src/templates/widgets/sortCollectionWidget.pug","webpack:///./src/templates/body/userList.pug","webpack:///./src/stylesheets/body/userList.styl","webpack:///./src/templates/body/userPage.pug","webpack:///./src/stylesheets/body/userPage.styl","webpack:///./src/templates/widgets/groupAdminList.pug","webpack:///./src/templates/widgets/groupInviteList.pug","webpack:///./src/templates/widgets/groupInviteDialog.pug","webpack:///./src/templates/widgets/groupMemberList.pug","webpack:///./src/templates/widgets/groupModList.pug","webpack:///./src/templates/body/groupPage.pug","webpack:///./src/stylesheets/body/groupPage.styl","webpack:///./src/templates/widgets/editFileWidget.pug","webpack:///./src/templates/widgets/fileInfoDialog.pug","webpack:///./src/templates/widgets/fileList.pug","webpack:///./src/templates/widgets/itemBreadcrumb.pug","webpack:///./src/templates/body/itemPage.pug","webpack:///./src/stylesheets/body/itemPage.styl","webpack:///./src/templates/body/plugins.pug","webpack:///./src/stylesheets/body/plugins.styl","webpack:///./src/models/CollectionCreationPolicyModel.js","webpack:///./src/templates/body/systemConfiguration.pug","webpack:///./src/stylesheets/body/systemConfig.styl","webpack:///./node_modules/bootstrap-switch/dist/js/bootstrap-switch.js","webpack:///./node_modules/bootstrap-switch/dist/css/bootstrap3/bootstrap-switch.css","webpack:///./node_modules/moment/locale en","webpack:///./src/templates/widgets/editApiKeyWidget.pug","webpack:///./src/templates/widgets/apiKeyList.pug","webpack:///./src/views/widgets/UserOtpManagementWidget.js","webpack:///./node_modules/qrcode/lib/browser.js","webpack:///./node_modules/qrcode/lib/can-promise.js","webpack:///./node_modules/qrcode/lib/core/qrcode.js","webpack:///./node_modules/qrcode/lib/core/bit-buffer.js","webpack:///./node_modules/qrcode/lib/core/bit-matrix.js","webpack:///./node_modules/qrcode/lib/core/alignment-pattern.js","webpack:///./node_modules/qrcode/lib/core/finder-pattern.js","webpack:///./node_modules/qrcode/lib/core/mask-pattern.js","webpack:///./node_modules/qrcode/lib/core/reed-solomon-encoder.js","webpack:///./node_modules/qrcode/lib/core/polynomial.js","webpack:///./node_modules/qrcode/lib/core/galois-field.js","webpack:///./node_modules/node-libs-browser/node_modules/buffer/index.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/node-libs-browser/node_modules/isarray/index.js","webpack:///./node_modules/qrcode/lib/core/version.js","webpack:///./node_modules/qrcode/lib/core/format-info.js","webpack:///./node_modules/qrcode/lib/core/segments.js","webpack:///./node_modules/qrcode/lib/core/numeric-data.js","webpack:///./node_modules/qrcode/lib/core/alphanumeric-data.js","webpack:///./node_modules/qrcode/lib/core/byte-data.js","webpack:///./node_modules/qrcode/lib/core/kanji-data.js","webpack:///./node_modules/dijkstrajs/dijkstra.js","webpack:///./node_modules/qrcode/lib/renderer/canvas.js","webpack:///./node_modules/qrcode/lib/renderer/svg-tag.js","webpack:///./node_modules/url-otpauth/index.js","webpack:///./node_modules/url/url.js","webpack:///./node_modules/punycode/punycode.js","webpack:///./node_modules/qs/lib/index.js","webpack:///./node_modules/qs/lib/stringify.js","webpack:///./node_modules/side-channel/index.js","webpack:///./node_modules/es-errors/index.js","webpack:///./node_modules/es-errors/eval.js","webpack:///./node_modules/es-errors/range.js","webpack:///./node_modules/es-errors/ref.js","webpack:///./node_modules/es-errors/uri.js","webpack:///./node_modules/has-symbols/index.js","webpack:///./node_modules/has-symbols/shams.js","webpack:///./node_modules/has-proto/index.js","webpack:///./node_modules/function-bind/implementation.js","webpack:///./node_modules/hasown/index.js","webpack:///./node_modules/call-bind/callBound.js","webpack:///./node_modules/call-bind/index.js","webpack:///./node_modules/set-function-length/index.js","webpack:///./node_modules/define-data-property/index.js","webpack:///./node_modules/has-property-descriptors/index.js","webpack:///./node_modules/object-inspect/index.js","webpack:///./util.inspect (ignored)","webpack:///./node_modules/qs/lib/parse.js","webpack:///./src/templates/widgets/userOtpBegin.pug","webpack:///./src/templates/widgets/userOtpEnable.pug","webpack:///./src/templates/widgets/userOtpDisable.pug","webpack:///./src/stylesheets/widgets/userOtpManagementWidget.styl","webpack:///./src/templates/body/userAccount.pug","webpack:///./src/stylesheets/body/userAccount.styl","webpack:///./src/views/widgets/SearchPaginateWidget.js","webpack:///./src/templates/body/searchResults.pug","webpack:///./src/templates/body/searchResultsType.pug","webpack:///./src/stylesheets/body/searchResultsList.styl","webpack:///./src/stylesheets/layout/global.styl","webpack:///./src/stylesheets/layout/layout.styl","webpack:///./src/views/body/index.js","webpack:///./src/views/layout/index.js","webpack:///./src/views/widgets/index.js","webpack:///./src/views/widgets/DateTimeRangeWidget.js","webpack:///./src/templates/widgets/dateTimeRangeWidget.pug","webpack:///./src/views/widgets/DateTimeWidget.js","webpack:///./src/templates/widgets/dateTimeWidget.pug","webpack:///./src/views/widgets/PluginConfigBreadcrumbWidget.js","webpack:///./src/templates/widgets/pluginConfigBreadcrumb.pug","webpack:///./src/views/widgets/TimelineWidget.js","webpack:///./src/templates/widgets/timeline.pug","webpack:///./src/stylesheets/widgets/timelineWidget.styl"],"names":["View","Backbone","extend","constructor","opts","_","has","parentView","registerChildView","console","error","prototype","apply","arguments","destroy","each","_childViews","child","undelegateEvents","stopListening","off","events","eventStream","unregisterChildView","$el","is","el","data","isShown","on","empty","removeData","modal","push","without","apiRoot","uploadHandlers","uploadChunkSize","getApiRoot","setApiRoot","root","replace","text","window","location","origin","restRequest","defaults","girderToken","localStorage","getItem","status","info","trigger","type","timeout","icon","statusText","responseJSON","message","responseText","args","url","Error","substring","headers","$","ajax","restXhrPool","restXhrCount","document","ajaxSend","event","xhr","girderXhrNumber","ajaxComplete","num","numberOutstandingRestRequests","category","filter","girder","length","size","cancelRestRequests","abort","getUploadChunkSize","setUploadChunkSize","val","girderEvents","clone","Events","handleClose","name","options","nameId","router","enabled","curRoute","history","fragment","routeParts","queryString","dialogName","dialog","dialogId","dialogid","unparsedQueryString","param","navigate","base","handleOpen","confirm","params","yesText","yesClass","noText","escapedHtml","msgConfirmation","additionalText","html","girderModal","one","find","key","toUpperCase","msg","confirmCallback","css","SORT_ASC","SORT_DESC","MONTHS","AccessType","NONE","READ","WRITE","ADMIN","AssetstoreType","FILESYSTEM","GRIDFS","S3","Layout","DEFAULT","EMPTY","Router","initialize","_enabled","execute","callback","pop","route","slice","corsAuth","cookie","findAll","cookies","split","chain","map","m","c","arr","value","join","foundCookie","list","currentUser","currentToken","getCurrentUser","setCurrentUser","user","getCurrentToken","setCurrentToken","token","fetchCurrentUser","method","basicAuthEncode","username","password","encoder","TextEncoder","encode","btoa","String","fromCharCode","login","cors","otpToken","auth","Authorization","isString","then","response","authToken","UserModel","setItem","fail","jqxhr","logout","done","removeItem","DATE_MONTH","DATE_DAY","DATE_MINUTE","DATE_SECOND","formatDate","datestr","resolution","date","Date","output","getMonth","getDate","getFullYear","getHours","getMinutes","getSeconds","formatSize","sizeBytes","i","sizeVal","precision","toFixed","Math","min","formatCount","n","sep","maxLen","max","localeComparator","model1","model2","a1","get","sortField","a2","undefined","localeCompare","result","sortDir","secondarySortField","localeSort","getModelClassByName","className","charAt","substr","parseQueryString","aux","decodeURIComponent","defineFlags","allOption","obj","opt","renderMarkdown","md","Remarkable","use","linkify","render","capitalize","str","splitRoute","firstIndex","indexOf","lastIndex","lastIndexOf","baseRoute","_whenAll","promises","when","results","fn","view","elem","$element","hasFade","hasClass","removeClass","toggleClass","setTimeout","delegateEvents","Model","resourceName","current","set","clear","addToGroup","groupId","groups","removeFromGroup","index","splice","addInvitation","level","invites","removeInvitation","filtered","reject","matcher","changePassword","oldPassword","newPassword","old","new","err","adminChangePassword","id","initializeEnableOtp","resp","totpUri","finializeEnableOtp","disableOtp","fromTemporaryToken","userId","close","open","sendVerificationEmail","girderEnable","enable","selection","prop","addClass","Collection","model","comparator","pageLimit","offset","altUrl","append","filterFunc","pageOffsetStack","_totalCount","hasPreviousPage","hasNextPage","_hasMorePages","getTotalCount","fetchPreviousPage","fetch","fetchNextPage","pageNum","ceil","fetchPage","pageNumber","reset","limit","finalList","fetchListFragment","sort","sortdir","getResponseHeader","offsetDelta","x","tuple","numUsed","wantMorePages","newNumUsed","concat","add","FolderModel","AccessControlledModel","getRootPath","removeContents","MetadataMixin","SearchFieldWidget","e","currentMode","target","hideResults","search","popover","_resultClicked","currentTarget","code","keyCode","which","pos","noResourceSelected","preventDefault","noResultsPage","_goToResultPage","eq","link","settings","ajaxLock","pending","placeholder","getInfoCallback","types","modes","getModes","isArray","_animatePending","debounce","q","_doSearch","query","mode","resetState","trim","viewport","selector","padding","content","modeHelp","getModeHelp","sanitize","getModeDescription","clearText","isPending","JSON","stringify","intersection","getModeTypes","resources","firstName","lastName","res","_id","_allowedSearchMode","addMode","description","help","keys","removeMode","idAttribute","increment","attr","amount","save","path","isObject","restOpts","extraPath","ignoreError","downloadUrl","download","assign","progress","throwError","collection","remove","getAccessLevel","updateAccess","access","public","publicFlags","fetchAccess","force","Deferred","resolve","promise","CollectionModel","ItemModel","noop","parent","once","getFiles","fileCollection","FileCollection","GroupModel","sendInvitation","accessType","request","joinGroup","requestInvitation","promoteUser","role","demoteUser","removeMember","mayAddMembers","groupAddAllowed","addToGroupPolicy","addAllowed","allModels","pickedResources","HierarchyBreadcrumbView","parseInt","objects","active","descriptionText","links","HierarchyPaginatedView","Number","itemListWidget","getNumPages","disabled","setPage","totalPages","currentPage","getCurrentPage","HierarchyWidget","folderListView","checkAll","checked","itemListView","parentModel","upload","_showActions","showActions","_showItems","showItems","_itemFilter","itemFilter","_checkboxes","checkboxes","_downloadLinks","downloadLinks","_viewLinks","viewLinks","_showSizes","showSizes","_showMetadata","showMetadata","_routing","routing","_appendPages","appendPages","_onItemClick","onItemClick","item","_defaultSelectedResource","defaultSelectedResource","_highlightItem","highlightItem","_paginated","paginated","_onFolderSelect","onFolderSelect","folderAccess","folderCreate","folderEdit","itemCreate","breadcrumbs","breadcrumbView","idx","setCurrentModel","_setRoute","checkedMenuWidget","CheckedMenuWidget","pickedCount","getPickedCount","pickedCopyAllowed","getPickedCopyAllowed","pickedMoveAllowed","getPickedMoveAllowed","pickedDesc","getPickedDescription","FolderListWidget","folderFilter","parentType","parentId","folder","descend","uploadWidget","updateChecked","folderCount","_childCountCheck","_fetchToRoot","itemCount","resetPickedResources","container","_initFolderViewSubwidgets","ItemListWidget","folderId","accessLevel","selectedItem","listenTo","hierarchyPaginated","setElement","top","bottom","metadataWidget","MetadataWidget","r","object","unshift","dropdownToggle","uploadDialog","editAccess","createFolderDialog","editFolderDialog","createItemDialog","fetchAndShowChildCount","upOneLevel","selectFolder","isFunction","EditFolderWidget","insertFolder","EditItemWidget","insertItem","EditCollectionWidget","deleteFolderDialog","escape","showInfoDialog","CollectionInfoWidget","FolderInfoWidget","showCounts","folderTooltip","itemTooltip","setRoute","_describeResources","kinds","desc","kind","deleteCheckedDialog","folders","items","_getCheckedResourceParam","resourceSize","_getCheckedResourceSize","UploadWidget","files","totalSize","minFolderLevel","every","cid","minItemLevel","anyChecked","update","asObject","downloadChecked","redirectViaForm","pickChecked","pickDesc","existing","resource","union","totalPickDesc","_incrementCounts","nFolders","nItems","movePickedResources","clearPickedResources","copyPickedResources","form","action","appendTo","AccessWidget","modelType","recurse","refreshFolderList","selectItem","getSelectedItem","checkboxListener","checkbox","_lastCheckbox","shiftKey","from","to","recomputeChecked","getPickedResources","PaginateWidget","EventStream","streamPath","_state","_eventSource","_onVisibilityStateChange","bind","_onMessage","_onError","visibilityState","_start","_stop","parse","setLastTimestamp","_girderTime","jqXHR","EventSource","warn","addEventListener","timestamp","getLastTimestamp","isNumber","since","onmessage","onerror","removeEventListener","_lastTimestamp","isNaN","UserCollection","nUsers","LoadingAnimation","AssetstoreModel","capacityKnown","cap","free","total","capacityString","import","toString","call","_sendMetadata","metadata","successCallback","errorCallback","contentType","field","meta","addMetadata","datum","removeMetadata","editMetadata","newKey","oldKey","metas","FileModel","resumeInfo","_wrapData","wrapped","Blob","updateContents","_uploadToContainer","uploadToFolder","parentFolder","uploadToItem","parentItem","file","_restParams","otherParams","startByte","uploadHandler","mimeType","behavior","loaded","_uploadChunk","identifier","resumeUpload","resume","uploadId","abortUpload","endByte","chunkLength","sliceFn","webkitSlice","blob","processData","success","bytes","XMLHttpRequest","_uploadProgress","lengthComputable","saveAccessList","parents","hideRecurseOption","hideSaveButton","hidePrivacyEditor","hideAccessType","noAccessFlag","isAdmin","searchWidget","addEntry","flagListPromise","flagList","closeFunction","template","accessEditorTemplate","accessEditorNonModalTemplate","publicFlag","groupAccess","accessTypes","entry","title","subtitle","users","userAccess","_makeTooltips","privacyChanged","placement","_addUserEntry","_addGroupEntry","exists","acList","getAccessList","flags","removeAccessEntry","sel","selected","_toggleAccessFlag","flag","_updateFlagCount","_togglePublicAccessFlag","nChecked","countEl","fields","descriptionEditor","saveText","_saveCollection","always","create","MarkdownWidget","prefix","enableUploads","Event","relatedTarget","filesAdded","stopPropagation","originalEvent","dataTransfer","dropEffect","maxUploadSize","allowedExtensions","validateFiles","fileModel","currentProgress","ext","toLowerCase","contains","startUpload","currentFile","uploadNextFile","filesChanged","allowed","effectAllowed","noParent","multiFile","overrideStart","_browseText","_noneSelectedText","templateParams","browseText","noneSelectedText","filesDropped","_isFile","setUploadEnabled","currentIndex","overallProgress","state","getAsEntry","webkitGetAsEntry","isFile","UserView","editUrl","_setAndSave","hierarchyWidget","fetchAndInit","UsersView","ApiKeyModel","setActive","scope","silent","CollectionCollection","RegisterView","email","BrowserWidget","_validate","titleText","validate","constant","helpText","showPreview","isUndefined","submitText","input","_selected","rootSelectorSettings","selectByResource","_rootSelectionView","RootSelectorWidget","evt","_renderHierarchyView","_calculateDefaultSelectedRoot","defaultResourcename","preview","submit","_renderRootSelection","selectedModel","_hierarchyView","_selectItem","_selectModel","_resetSelection","inputValidation","selectedValidation","invalidInputElement","invalidSelectedModel","catch","failMessage","modelTypes","modelId","updateItem","createItem","MetadatumWidget","fieldName","apiPath","onMetadataEdited","onMetadataAdded","newMode","validation","toggleEditor","newEditorMode","existingEditor","overrides","fromEditorMode","JsonMetadatumEditWidget","newValue","row","newDatum","editor","jsonValue","displayValue","MetadatumEditWidget","editorType","getCurrentValue","editTemplate","MetadatumEditWidgetTemplate","deleteMetadatum","stopImmediatePropagation","metadataList","cancelEdit","curRow","tempKey","tempValue","saveCallback","out","JsonMetadatumEditWidgetTemplate","getText","jsonEditorEl","JSONEditor","onError","setText","expandAll","simple","MetadatumViewTemplate","json","JsonMetadatumViewTemplate","getModeFromValue","EditWidget","widget","metaDict","metaKeys","Object","metaKey","EditGroupWidget","updateGroup","createGroup","pub","group","promiseArray","paginateWidget","sortCollectionWidget","SortCollectionWidget","created","_gotoUser","userCountPromise","count","usersCount","register","toArray","createUserDialog","ApiKeyCollection","AssetstoreCollection","s3","_xhrProgress","payloadLength","s3Info","v","k","setRequestHeader","chunked","_multiChunkUpload","onload","send","_sendNextChunk","eTagList","chunkN","s3UploadId","match","chunk","partNumber","contentLength","_finalizeMultiChunkUpload","doc","implementation","createDocument","createElement","etag","partEl","partNumberEl","etagEl","appendChild","createTextNode","req","s3FinalizeRequest","XMLSerializer","serializeToString","FolderCollection","GroupCollection","ItemCollection","wrap","funcName","wrapper","_pluginConfigRoutes","exposePluginConfig","pluginName","getPluginConfigRoute","LayoutFooterView","contactEmail","contactHref","privacyNoticeHref","privacyNoticeLink","LayoutGlobalNavView","selectForView","navItems","defaultNavItems","viewName","deactivateAll","LayoutHeaderView","brandName","bannerColor","userView","LayoutHeaderUserView","registrationPolicy","textColor","_getTextColor","hexRed","hexGreen","hexBlue","sRGB","hexComponent","linearRBG","component","pow","L","LoginView","loginName","extra","enablePasswordLogin","showOtp","ProgressListView","_handleProgress","_clearProgress","_map","_onUpdate","TaskProgressWidget","p","needsUpdate","isEmpty","progressWidget","progressId","toggle","width","barClass","progressClass","percentText","timeLeftText","percent","round","timeLeft","estimatedTotalTime","updatedTime","startTime","_scheduleHide","ms","fadeOut","ResetPasswordView","AdminView","assetstoreImportViewMap","FilesystemImportView","S3ImportView","AssetstoresView","plots","assetstoreEdit","importableTypes","newAssetstoreWidget","NewAssetstoreWidget","addAssetstore","_destroyPlots","plot","assetstores","getAssetstoreImportRoute","capacityChart","editAssetstoreDialog","assetstore","capacity","used","jqplot","seriesDefaults","renderer","PieRenderer","rendererOptions","sliceMargin","shadow","highlightMouseOver","showDataLabels","startAngle","legend","show","background","border","grid","borderWidth","gridPadding","right","left","setCurrentAssetstore","deleteAssetstore","editAssetstore","editAssetstoreWidget","EditAssetstoreWidget","assetstoreId","fieldsMap","updateAssetstore","oldfields","perms","permStr","db","mongohost","replicaset","bucket","accessKeyId","secret","service","region","readOnly","inferCredentials","serverSideEncryption","createAssetstore","destId","destType","foldersAsItems","importPath","leafFoldersAsItems","destinationId","destinationType","_browserWidgetView","isValid","_openBrowser","_fetchAndInit","needToFetch","updateFolder","createFolder","hasMore","_selectedItem","_totalPages","calculatedPage","bindOnChanged","changedFunc","scrollPositionObserver","isParentPublic","selectedItemId","page","scrollTop","centerSelected","widgetcontainer","folderHeight","height","breadcrumbHeight","selectedTop","position","scrollingPos","centerPos","outerHeight","scrollPos","tempScrollPos","CustomEvent","detail","dispatchEvent","MutationObserver","observer","disconnect","onLoadImage","mutations","mutation","addedNodes","node","requestIdleCallback","getElementsByTagName","observe","childList","subtree","unbindDisconnect","unbind","Collections","Users","_updateGroup","home","display","_home","setRootByBaseParent","format","_formatName","baseParentId","attributes","_selectRoot","CollectionsView","_gotoCollection","createCollectionDialog","collections","_toggleDescription","dest","pug","require","locals","pug_html","pug_mixins","pug_interp","pug_debug_filename","pug_debug_line","pug_debug_sources","locals_for_with","rethrow","module","exports","CollectionView","edit","editCollection","editCollectionWidget","hide","deleteConfirmation","FolderView","FrontPageView","version","GroupsView","createGroupDialog","_gotoGroup","userGroups","GroupView","tab","editGroup","editGroupWidget","deleteGroup","isMember","isInvited","isRequested","isModerator","inv","invitees","_renderInvitesWidget","updatePendingStatus","_updateRolesLists","tabLink","GroupInvitesWidget","leaveGroup","acceptMembershipRequest","denyMembershipRequest","mods","admins","adminsWidget","GroupAdminsWidget","modsWidget","GroupModsWidget","moderators","membersWidget","GroupMembersWidget","li","userid","InviteUserDialog","_sendInvitation","mayAdd","membersColl","modsAndAdmins","pluck","members","models","member","inArray","userSearch","_inviteUser","ItemView","fileEdit","uploadIntoItem","fileListWidget","editItem","editItemWidget","deleteItem","parentRoute","FileListWidget","breadcrumbWidget","ItemBreadcrumbWidget","parentChain","itemId","FileInfoWidget","editFileDialog","editFileWidget","EditFileWidget","insertFile","PluginsView","all","allPlugins","configRoute","_sortPlugins","plugins","sortedPlugins","a","b","SystemConfigurationView","_covertCollectionCreationPolicy","settingsKeys","element","routes","routeKeys","sortBy","enableCollectionCreationPolicy","bootstrapSwitch","_renderCollectionCreationPolicyAccessWidget","accessWidget","collectionCreationPolicyModel","CollectionCreationPolicyModel","settingValue","accessList","UserAccountView","admin","isCurrentUser","temporary","apiKeyListWidget","ApiKeyListWidget","userOtpManagementWidget","UserOtpManagementWidget","temporaryToken","apiKey","_getModelFromEvent","toggleActive","_renderEditWidget","fetched","apiKeys","moment","editApiKeyWidget","EditApiKeyWidget","tokenDuration","_getSelectedScopeMode","saveModel","scopeInfo","_shouldRender","tokenScopes","custom","adminCustom","SearchResultsView","_query","_mode","_sizeOneElement","_request","_getTypeOrdering","resultTypes","builtinOrdering","orderedKnownTypes","orderedUnknownTypes","difference","_subviews","orderedTypes","SearchResultsTypeView","initResults","sizeOneElement","_type","_initResults","_pageLimit","_paginateWidget","SearchPaginateWidget","_results","_getTypeName","names","_getTypeIcon","icons","collectionName","constants","misc","rest","utilities","views","classes","PluginUtils","S3UploadHandler","body","layout","widgets","App","_started","start","afterFetch","_createLayout","stop","pushState","bindGirderEvents","navigateTo","loginDialog","registerDialog","resetPasswordDialog","alert","headerView","globalNavView","footerView","progressListView","layoutRenderMap","_defaultLayout","_emptyLayout","_layout","bodyView","renderNow","closeDialogIfUser","loginView","registerView","resetPasswordView","fadeIn","$$obj","pug_index0","$$l","navItem","style","typeName","block","flagLen","intro","property","contentDisposition","rows","groupName","pug_index1","pug_index2","label","default","userTooltip","plugin","experimental","tokenScope","lastUse","fromNow","_renderBegin","_renderConfirmation","_renderDisable","totpInfo","OTPAuth","QRCode","toCanvas","errorCorrectionLevel","issuer","account","_updateHasNextPage","_updateHasPreviousPage","_limit","_offset","_currentPage","_hasNextPage","_hasPreviousPage","_fetchPreviousPage","_fetchNextPage","_fetch","FooterView","GlobalNavView","HeaderUserView","HeaderView","DateTimeWidget","DateTimeRangeWidget","PluginConfigBreadcrumbWidget","TimelineWidget","defaultFromDate","defaultToDate","showIcon","fromLabel","toLabel","showClear","showTodayButton","time","up","down","previous","next","today","useCurrent","defaultDate","datetimepicker","picker","_picker","minDate","maxDate","setFromDate","_setDate","setToDate","localDate","utc","local","fromDate","_date","toDate","fromDateString","_dateString","toDateString","setDate","dateString","endTime","segments","points","numeric","startLabel","endLabel","defaultSegmentClass","defaultPointClass","_processData","_processedSegments","_processedPoints","range","segment","end","class","color","tooltip","_segmentTooltip","point","_pointTooltip","toISOString"],"mappings":";;QAAA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,KAAK;QACL;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;QAEA;QACA;;;;;;;;AC7Da;;AAEb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,iDAAiD,aAAa;AAC9D;AACA,iDAAiD,aAAa;AAC9D;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,iDAAiD;AAC5D,WAAW,gBAAgB;AAC3B,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;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;;AAEA;AACA;AACA;AACA,WAAW,iCAAiC;AAC5C,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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ACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,CAAC;AACD;AACA;;;AAGA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,YAAY;;AAEpB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF,oBAAoB;;AAEpB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF,6CAA6C;AAC7C;AACA;AACA,kBAAkB,kCAAkC;AACpD,EAAE;;AAEF;AACA;;AAEA;AACA;AACA,UAAU,YAAY;AACtB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,SAAS;AAClB;AACA;;AAEA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS,YAAY;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU,YAAY;AACtB;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;;AAEA;;AAEA;AACA;;;AAGA;;;AAGA;;;AAGA;;;AAGA;AACA;AACA;AACA;;;;;AAKA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;AAKA;AACA;;AAEA;;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,EAAE;;AAEF;AACA;;AAEA;;AAEA;AACA,kCAAkC,IAAI;AACtC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,0BAA0B;AAC1B;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,0CAA0C,IAAI;AAC9C;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,gBAAgB;AAClB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa,yBAAyB;AACtC;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ,6BAA6B;AAChD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;;AAEA;AACA;AACA,WAAW,gBAAgB;AAC3B,aAAa,uBAAuB;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,eAAe;AAC1B,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;;AAEA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,UAAU;AACrB;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;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,eAAe;;AAEf,SAAS;;AAET;AACA,QAAQ,iCAAiC;AACzC,QAAQ,oBAAoB;AAC5B,QAAQ,sCAAsC;AAC9C,QAAQ;AACR,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;;AAEJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;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;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,iEAAiE;AACjE;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;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,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA,iEAAiE,UAAU;AAC3E,sCAAsC,2BAA2B;AACjE;AACA,gCAAgC,MAAM;AACtC;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,UAAU,YAAY;AACtB;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,UAAU,YAAY;AACtB;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;;AAEA,UAAU,UAAU;AACpB;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,UAAU,cAAc;AACxB;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA,YAAY,uEAAuE;AACnF;AACA;AACA,YAAY,4BAA4B;AACxC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ,SAAS;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,4DAA4D;;AAE5D;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA,OAAO;;AAEP;AACA;;AAEA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,QAAQ,SAAS;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,SAAS;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH,QAAQ,SAAS;AACjB;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,iDAAiD;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA,iDAAiD;AACjD;AACA,UAAU,4CAA4C;AACtD;AACA;;AAEA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B;AACA,WAAW,QAAQ;AACnB,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;;AAGD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA,QAAQ,GAAG;AACX;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;;AAEA,cAAc,SAAS;AACvB;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;;AAEA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,OAAO;AACjB;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,OAAO;AACjB,0BAA0B,wBAAwB;;AAElD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA,0CAA0C;AAC1C,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;;;;AAIA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;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,mBAAmB;;AAEnB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAU,cAAc;AACxB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;;AAER;AACA;AACA;AACA,OAAO;AACP,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,wCAAwC,sCAAsC;AAC9E,oCAAoC,uCAAuC;AAC3E,oCAAoC,sCAAsC;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,OAAO;AACP;AACA,MAAM;AACN,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW;;AAEX;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU;;AAEV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;;AAER;AACA;AACA;AACA;;AAEA;AACA;AACA,2DAA2D;AAC3D;AACA,SAAS;AACT;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oCAAoC;AACpC,qCAAqC;AACrC,oCAAoC;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;;AAGD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA;AACA;AACA,EAAE;AACF;;;;;AAKA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU,SAAS;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,uBAAuB,aAAa;AACpC,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,SAAS;AAC7B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;AACJ,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;AAGD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA,EAAE;;AAEF;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,CAAC;AACD;;AAEA;;;AAGA;;AAEA;;;;AAIA;AACA;AACA,GAAG;AACH,cAAc;;AAEd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,GAAG;AACH;AACA,CAAC;AACD;;AAEA;;AAEA;;;;AAIA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,EAAE;AACF;;AAEA,EAAE;AACF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA,QAAQ,OAAO;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,OAAO;AACf;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;;AAEA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;;AAEA,WAAW;;AAEX;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,cAAc,sBAAsB;AACpC;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,+DAA+D;AAC/D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU,cAAc;;AAExB;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAmB;AACpC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uCAAuC;AACjE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,uDAAuD;AAC9E;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,+CAA+C;AACpD;AACA;;AAEA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC;AACtC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;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,CAAC;;AAED,cAAc,qCAAqC;;AAEnD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,wDAAwD;AACxD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;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,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;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;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;AAGD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU,OAAO;AACjB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,QAAQ,+BAA+B;AACvC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,uCAAuC,OAAO;AAC9C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,wCAAwC,OAAO;AAC/C;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA,SAAS,qCAAqC;AAC9C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;;AAEA,SAAS,8BAA8B;AACvC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA,6BAA6B;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,YAAY,OAAO;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,WAAW;AACpB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;;AAEA;;;AAGA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;;;;AAIA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,+CAA+C,cAAc,WAAW;AACxE,mBAAmB,UAAU;AAC7B;AACA,sBAAsB,cAAc,sBAAsB,gBAAgB;AAC1E,gBAAgB,WAAW,YAAY;AACvC,cAAc;AACd;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6CAA6C,cAAc;AAC3D,+CAA+C;;AAE/C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF,CAAC;;;AAGD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,sDAAsD;AACtD;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;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA,YAAY,+DAA+D;AAC3E;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,QAAQ,OAAO;;AAEf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;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,EAAE;;AAEF;AACA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;;AAEH;AACA;AACA;;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;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;;AAEA,UAAU,OAAO;AACjB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;;AAEA,WAAW,SAAS;AACpB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;AAGD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;;;;;AAKA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA,QAAQ,OAAO;AACf;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ,gBAAgB;AACxB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,iDAAiD,0BAA0B;AAC3E;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU,gBAAgB;AAC1B;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,2BAA2B;AAC3B;AACA,qBAAqB;AACrB;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B;AACA;;AAEA,6CAA6C;AAC7C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA,SAAS,gBAAgB;AACzB;AACA;AACA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;AAED;AACA,iEAAiE;AACjE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,EAAE;AACF;AACA;AACA;;AAEA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,cAAc;AAClC,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA,iDAAiD;;AAEjD;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA,+BAA+B,SAAS;AACxC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,+BAA+B,SAAS;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,UAAU,kBAAkB;AAC5B,WAAW,kBAAkB;AAC7B,cAAc;AACd,CAAC;AACD;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;;AAEA,QAAQ,mBAAmB;AAC3B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;;AAGA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,uBAAuB;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iBAAiB,uBAAuB;AACxC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA,gBAAgB,uBAAuB;AACvC;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;;;;AAKD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA,iCAAiC;AACjC;AACA;;AAEA,IAAI;AACJ;;AAEA,IAAI;AACJ;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,KAAK;AACL;AACA;;AAEA;AACA,WAAW,SAAS;AACpB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD;AACA;;AAEA,aAAa;;AAEb;;;;AAIA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,sCAAsC;AACtC;AACA;AACA;;AAEA;;AAEA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,2CAA2C;AAC3C;;AAEA;AACA;AACA;AACA;AACA,UAAU,KAAK;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,CAAC;;AAED;;AAEA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH,EAAE;;AAEF;AACA;AACA;AACA;;AAEA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb,KAAK;AACL;;AAEA,WAAW;AACX,GAAG;AACH;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB,oDAAoD;AACpD;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;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,iBAAiB;;AAEjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA,IAAI;;AAEJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS;AACT;;AAEA;;AAEA;AACA;;AAEA;AACA,iBAAiB;AACjB,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,2BAA2B;;AAE3B;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC;;AAElC;AACA,sBAAsB;AACtB,2BAA2B;;AAE3B;AACA;;AAEA;AACA;AACA;;AAEA;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;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,EAAE;AACF;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,IAAI;AACJ;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;;AAEA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA;AACA;AACA,EAAE;AACF;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;;AAER;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA,mDAAmD;AACnD;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,uBAAuB;AAClC,WAAW,yBAAyB;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,aAAa,uCAAuC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA,CAAC;;;;;AAKD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,IAAI;AACJ,GAAG;AACH;;AAEA;AACA;;;;;AAKA;AACA;AACA;AACA,EAAE;AACF;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA,qDAAqD;AACrD;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB;;AAEnB;AACA;;AAEA;AACA;;AAEA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA,cAAc,sDAAsD;AACpE;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,IAAI;AACJ;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA,cAAc,mCAAmC;AACjD;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,EAAE;AACF,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;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;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,KAAK,IAA0C;AAC/C,CAAC,iCAAkB,EAAE,mCAAE;AACvB;AACA,EAAE;AAAA,oGAAE;AACJ;;;;;AAKA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA,CAAC;;;;;;;;AC39UD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC6C;AAClB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjB3B;;;;AACA;;;;AACA;;;;AAEA;;;;AACA;;;;AAEA,IAAImC,gBAAJ;AACA,IAAIC,wC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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzDf;;;;AAEA;;;;AACA;;;;AACA;;;;;;AAEA;AACA;AACA,IAAIw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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACTA;;;;AAEA;;AACA;;;;AACA;;;;AACA;;AACA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CPA;AAAA;AAAA;AAAwC;AACL;;AAEnC,iBAAiB,8DAAS;;AAE1B;AACA;AACA,eAAe,+CAAI,aAAa,+CAAI;AACpC;AACA;AACA;AACA;AACA;;AAEe,yEAAU,EAAC;;;;;;;;ACd1B;AAAA;AAAoD;;AAEpD;AACe,mIAAe,UAAU,EAAC;;;;;;;ACHzC;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAA4D;AAChE;AACA;AACA,CAAC,qBAAqB;;AAEtB;;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;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;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,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;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;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,YAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,IAAI;AACxB;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wGAAwG,IAAI,wBAAwB,IAAI,uDAAuD,IAAI;AACnM,qEAAqE,IAAI;AACzE,4BAA4B;AAC5B;;AAEA;AACA;AACA;AACA,8BAA8B;AAC9B;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;;AAEA;AACA;AACA;AACA;;AAEA,0CAA0C,YAAY;AACtD;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,YAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,4CAA4C,IAAI;;AAEhD;AACA;AACA;;AAEA;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;;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;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC;AAChC;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mCAAmC;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA,qBAAqB,EAAE;AACvB,qBAAqB,EAAE;AACvB,0BAA0B,EAAE;AAC5B;AACA;AACA;AACA,wBAAwB,IAAI;AAC5B,wBAAwB,IAAI;AAC5B,6BAA6B,IAAI;AACjC;AACA;AACA;AACA;AACA,wCAAwC,IAAI;AAC5C;AACA;AACA;AACA,mBAAmB,MAAM,wEAAwE,MAAM,mBAAmB,MAAM,qBAAqB,MAAM,EAAE,IAAI;AACjK;AACA;AACA;;AAEA;;AAEA;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;;AAEA;AACA,8CAA8C;AAC9C;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;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;AACA,2BAA2B;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;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;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,OAAO;AAC1B;;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,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB;AACpB,2BAA2B;AAC3B;;AAEA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;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;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,gBAAgB,6BAA0B,OAAO,CAAC;AAClD;AACA,aAAa;AACb;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,4BAA4B,EAAE,IAAI,EAAE;AACpC;AACA,4BAA4B,EAAE,IAAI,EAAE;AACpC;AACA;AACA,qCAAqC,EAAE;AACvC,+BAA+B,EAAE;AACjC,iCAAiC,EAAE;AACnC,+BAA+B,EAAE;AACjC,6BAA6B,EAAE,IAAI,EAAE;AACrC,4BAA4B,EAAE;AAC9B,mCAAmC,GAAG;AACtC,6BAA6B,EAAE;AAC/B,+BAA+B,EAAE,IAAI,EAAE;AACvC,8BAA8B,EAAE,IAAI,EAAE;AACtC,4BAA4B,EAAE;AAC9B,2BAA2B,EAAE;AAC7B,yBAAyB,EAAE;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,IAAI,0DAA0D,IAAI,qEAAqE,EAAE;AACjM;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,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,OAAO;AACnD;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;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;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA,SAAS;AACT;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD;AACA;;AAEA;AACA,cAAc,OAAO;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,gBAAgB;AACnC;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,kCAAkC,kBAAkB;AACpD;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;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;;AAEA,mBAAmB,cAAc;AACjC;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;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,aAAa;AACb;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;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;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,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB;AACpB;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,2GAA2G;AAC3G;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,mBAAmB,iBAAiB;AACpC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;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;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC,uBAAuB;AAC1D;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC,uBAAuB;AAC1D;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;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;AACA;AACA;AACA;AACA;AACA;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;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;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB;AACxB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oCAAoC,OAAO;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;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;;AAEA,oCAAoC,OAAO;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;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;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,mBAAmB;AACxC;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;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;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,OAAO;AAC1B;AACA;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,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;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;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;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;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;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;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;;AAEA;AACA;AACA;AACA;;AAEA;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;;AAEA;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;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;;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;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;;;;;;;ACvjLD;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,MAAM,IAA0C;AAChD,IAAI,iCAAO,CAAC,sBAAY,EAAE,sBAAQ,EAAE,OAAS,CAAC,mCAAE;AAChD;AACA;AACA;AACA,KAAK;AAAA,oGAAC;;AAEN;AACA,GAAG;AACH;AACA,SAAS,uBAAuB,EAAE;AAClC;;AAEA;AACA,GAAG;AACH,oCAAoC;AACpC;;AAEA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,wCAAwC,mBAAmB,EAAE;AAC7D;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAY,gBAAgB;AAC5B;AACA;AACA;AACA;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA,KAAK;AACL;AACA,6CAA6C,kBAAkB;AAC/D;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA,KAAK;;AAEL;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,gFAAgF;AACrG;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,gBAAgB;AACnC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qCAAqC,kBAAkB;AACvD;AACA;AACA;AACA;;AAEA;AACA,UAAU,kBAAkB;AAC5B;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qBAAqB,qBAAqB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,8BAA8B,YAAY;AAC1C,sCAAsC;AACtC;AACA;AACA;;AAEA;AACA;AACA,8BAA8B,YAAY;AAC1C,sCAAsC;AACtC;AACA;;AAEA,iDAAiD,mBAAmB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,YAAY;;AAE/B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE,yEAAyE;AACzE,6EAA6E;AAC7E,iFAAiF;AACjF,6EAA6E;AAC7E;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC;;AAElC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B;;AAE/B;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA,0CAA0C,WAAW;AACrD;AACA;AACA;AACA;AACA,OAAO;AACP,mBAAmB;AACnB;;AAEA,8BAA8B;;AAE9B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,+CAA+C,YAAY,YAAY;AACvE,KAAK;;AAEL;AACA;AACA;AACA;AACA,wCAAwC,YAAY,YAAY;AAChE,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,0BAA0B,YAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,0CAA0C,WAAW;AACrD;AACA;AACA;AACA;AACA,OAAO;AACP,mBAAmB;AACnB;;AAEA,0BAA0B,4BAA4B;AACtD;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;;AAEA,uCAAuC,WAAW;AAClD,sDAAsD;;AAEtD;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,8BAA8B,aAAa,YAAY,eAAe;AACtE,KAAK;;AAEL;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,8DAA8D,uBAAuB;AACrF;AACA;;AAEA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA,6CAA6C,aAAa;AAC1D;;AAEA;AACA,oBAAoB;AACpB,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC,eAAe,YAAY;AAC3B,eAAe,iBAAiB;AAChC;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA,+BAA+B;;AAE/B;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA,uCAAuC,8BAA8B,EAAE;AACvE,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,wCAAwC,aAAa;AACrD,KAAK;;AAEL;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,mBAAmB;AACpC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA,2BAA2B,aAAa;;AAExC;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,wBAAwB;AAC7C;AACA;AACA;AACA;AACA,0CAA0C,aAAa;AACvD;AACA;AACA,KAAK;;AAEL;AACA;AACA,uCAAuC,gBAAgB;AACvD,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,uCAAuC,MAAM;AAC7C,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;;AAE9B;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,0BAA0B,YAAY;AACtC;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,qBAAqB,mBAAmB;AACxC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;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;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;;AAEA,YAAY;AACZ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,+BAA+B;;AAE/B;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,SAAS,6BAA6B;AACtC;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA,GAAG;;AAEH;AACA;AACA;AACA,wCAAwC,+BAA+B;AACvE;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,KAAK;AACL;;AAEA,oEAAoE,MAAM;AAC1E;AACA;AACA;AACA,sDAAsD,4BAA4B;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,sBAAsB;AACtB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO,IAAI;AACX;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC;AACvC;AACA;AACA,KAAK;;AAEL;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mCAAmC,mBAAmB;AACtD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;;AAEA;AACA;AACA,+BAA+B;;AAE/B;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;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,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wCAAwC,UAAU;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT,yCAAyC,cAAc;AACvD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,6BAA6B,iCAAiC;AAC9D,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;;AAEnD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,uEAAuE;;AAEvE;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA,GAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,yBAAyB,sCAAsC;AAC/D;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA,YAAY;AACZ;;AAEA;AACA,CAAC;;;;;;;;;AC1mED;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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AO,KAAKhN,GAAL,CAAS,cAAT,CAAP;AACH;;AA5K6B,CAAtB,CAAR,CAAJ;;kBAgLegD,K;;;;;;;AC1Lf;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA,IAAI,qCAAqC;AACzC;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,YAAY,iBAAiB,sCAAsC,qCAAqC;AACxG;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA,iBAAiB,4BAA4B;AAC7C;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA,iBAAiB,OAAO;AACxB;AACA,sDAAsD,iCAAiC;AACvF;AACA,8BAA8B;AAC9B;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,iBAAiB,cAAc;AAC/B;AACA,UAAU,iCAAiC;AAC3C;AACA;AACA,6CAA6C,uBAAuB;AACpE,uBAAuB,iCAAiC;AACxD;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,2BAA2B;AACzE,YAAY,kCAAkC;AAC9C;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA,QAAQ,2BAA2B;AACnC,kDAAkD;AAClD;AACA;AACA;AACA,QAAQ,oBAAoB;AAC5B;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,8BAA8B,yBAAyB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,yBAAyB,2BAA2B;AACpD;AACA;AACA;AACA,8CAA8C,iBAAiB,yBAAyB;AACxF;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACgB;AACjB,iC;;;;;;;AC1JA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,uBAAuB;AACzE;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA,iBAAiB,4BAA4B;AAC7C;AACA;AACA,gBAAgB,qCAAqC;AACrD;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA,CAAC;AACkB;AACnB,mC;;;;;;;AC9BA;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;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,EAAE;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,YAAY;AACZ;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,EAAE;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,EAAE,GAAG,EAAE;AAC7E;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,sEAAsE,GAAG;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,EAAE,GAAG,GAAG;AAChB;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,EAAE,GAAG,EAAE,GAAG,GAAG;AACrB;AACA;AACO;AACP;AACA;AACA,IAAI,oCAAoC;AACxC;AACO;AACP;AACA,4CAA4C,IAAI,KAAK,EAAE,4BAA4B,IAAI;AACvF;AACA;AACA,0GAA0G,KAAK;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,2FAA2F,MAAM;AACjG;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP,qC;;;;;;ACjLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;AC9DA,mBAAmB,mBAAO,CAAC,GAAiB;AAC5C,YAAY,mBAAO,CAAC,GAAS;;AAE7B;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,KAAK;AACjB,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,KAAK;AAC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A;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACO;AACP;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,YAAY,OAAO;AACnB;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,SAAS;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA,WAAW,SAAS;AACpB;AACA,YAAY,MAAM;AAClB;AACO;AACP,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACO;AACP;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,iC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7HA;;;;AAEA;;;;AACA;;;;;;AAEA,IAAI4F,0CAAkB5F,gCAAsBrW,MAAtB,CAA6B;AAC/CwR,kBAAc;AADiC,CAA7B,CAAlB,CAAJ;;;AAIArR,qBAAEH,MAAF,CAASic,gBAAgBxb,SAAzB,EAAoC+V,uBAApC;;kBAEeyF,e;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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ACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,YAAY;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA,GAAG;AACH;AACA,eAAe,SAAS;AACxB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;ACvgBa;;AAEb;;AAEA,aAAa,mBAAO,CAAC,GAAW;AAChC,iBAAiB,mBAAO,CAAC,GAAgB;AACzC,kBAAkB,mBAAO,CAAC,GAAiB;AAC3C,sBAAsB,mBAAO,CAAC,GAAe;AAC7C,mBAAmB,mBAAO,CAAC,GAAkB;AAC7C,iBAAiB,mBAAO,CAAC,EAAgB;AACzC,gBAAgB,mBAAO,CAAC,GAAe;;AAEvC;;AAEA;AACA;AACA;AACA,iCAAiC,+CAA+C;AAChF,EAAE;AACF;;AAEA;AACA;AACA;AACA,UAAU;AACV,EAAE;AACF,eAAe;AACf;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,GAAG;AACH;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,EAAE;AACF;;AAEA,iBAAiB,mBAAO,CAAC,GAAa;AACtC,eAAe,mBAAO,CAAC,GAAW;;AAElC;AACA;AACA,kBAAkB,oBAAoB,EAAE;AACxC;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,aAAa;AACb,EAAE;AACF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qDAAqD;AACrD,EAAE;AACF,gDAAgD;AAChD,EAAE;AACF,sDAAsD;AACtD,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,WAAW,mBAAO,CAAC,GAAe;AAClC,aAAa,mBAAO,CAAC,GAAQ;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,8BAA8B,kBAAkB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACtWA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;;ACpBA;AAAA;AAAA;AAAA;AAAA;AAA+C;AACD;;AAE9C;AACA;AACA;AACO;AACP,MAAM,2DAAgB,IAAI,iEAAY;AACtC;AACA,4CAA4C,iEAAY;;;;;;;;ACTxD;AAAA;AAAA;AAAA;AAAA;AAAqC;AACI;AACmB;;AAE5D;AACe;AACf,OAAO,6DAAQ;AACf;AACA;AACA;AACA,MAAM,qDAAU,EAAE,wEAAmB;AACrC;AACA;;;;;;;;ACZA;AAAA;AAAA;AAAA;AAAgC;AACX;;AAErB;AACA;AACe;AACf,SAAS,uDAAC;AACV;;;;;;;;ACPA;AAAA;AAAA;AACA;AACA;AACe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AAAA;AAAA;AAAA;AAA0B;AACG;;AAE7B;AACe;AACf;AACA,cAAc,uDA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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvFf;;;;AAEA;;;;AACA;;;;AACA;;;;AACA;;AACA;;;;AAAiD;;AAEjD,IAAIuV,oCAAYxa,gBAAMvR,MAAN,CAAa;AACzBwR,kBAAc,MADW;AAEzBwa,gBAAY,IAFa;;AAIzBC,eAAW,mBAAUxqB,IAAV,EAAgB2B,IAAhB,EAAsB;AAAA;;AAC7B,YAAI8oB,kCAAUzqB,IAAV,CAAJ;;AAD6B;AAG7B,YAAI,EAAEA,gBAAgB0qB,IAAlB,CAAJ,EAA6B;AAAA;AAAA;;AACzB,gBAAI,CAAChsB,qBAAEiY,OAAF,CAAU3W,IAAV,CAAL,EAAsB;AAAA;AAAA;;AAClByqB,0BAAU,CAACzqB,IAAD,CAAV;AACH,aAFD;AAAA;AAAA;AADyB;AAIzByqB,sBAAU,IAAIC,IAAJ,CAASD,OAAT,EAAkB;AACxB9oB,sBAAMA;AADkB,aAAlB,CAAV;AAGH,SAPD;AAAA;AAAA;;AAH6B;AAY7B,eAAO8oB,OAAP;AACH,KAjBwB;;AAmBzB;;;;;;AAMAE,oBAAgB,wBAAU3qB,IAAV,EAAgB;AAAA;AAAA;;AAC5BA,eAAO,KAAKwqB,SAAL,CAAexqB,IAAf,CAAP;;AAD4B;AAG5B,aAAKqd,MAAL,CAAY,IAAZ,EAAkBrd,IAAlB,EAAwB;AACpBmC,2BAAa,KAAKoP,EAAlB,cADoB;AAEpBpI,oBAAQ,KAFY;AAGpBnJ,kBAAM;AACFuD,sBAAMvD,KAAKuD;AADT;AAHc,SAAxB;AAOH,KAnCwB;;AAqCzB;;;;;;;;AAQAqnB,wBAAoB,4BAAU9a,KAAV,EAAiB0C,KAAjB,EAAwBxS,IAAxB,EAA8BiE,IAA9B,EAAoCtC,IAApC,EAA0C;AAAA;AAAA;;AAC1D,YAAIjD,qBAAEwL,QAAF,CAAWsI,KAAX,CAAJ,EAAuB;AAAA;AAAA;;AACnBA,oBAAQ,IAAI1C,KAAJ,CAAU;AACdwI,qBAAK9F;AADS,aAAV,CAAR;AAGH,SAJD;AAAA;AAAA;;AAD0D;AAO1DxS,eAAO,KAAKwqB,SAAL,CAAexqB,IAAf,EAAqB2B,IAArB,CAAP;AAP0D;AAQ1D3B,aAAKiE,IAAL,GAAYA,IAAZ;;AAR0D;AAU1D,aAAKoZ,MAAL,CAAY7K,KAAZ,EAAmBxS,IAAnB;AACH,KAxDwB;;AA0DzB;;;;;;;AAOA6qB,oBAAgB,wBAAUC,YAAV,EAAwB9qB,IAAxB,EAA8BiE,IAA9B,EAAoCtC,IAApC,EAA0C;AAAA;AAAA;;AACtD,aAAKipB,kBAAL,CAAwBjW,qBAAxB,EAAqCmW,YAArC,EAAmD9qB,IAAnD,EAAyDiE,IAAzD,EAA+DtC,IAA/D;AACH,KAnEwB;;AAqEzB;;;;;;;AAOAopB,kBAAc,sBAAUC,UAAV,EAAsBhrB,IAAtB,EAA4BiE,IAA5B,EAAkCtC,IAAlC,EAAwC;AAAA;AAAA;;AAClD,aAAKipB,kBAAL,CAAwBnQ,mBAAxB,EAAmCuQ,UAAnC,EAA+ChrB,IAA/C,EAAqDiE,IAArD,EAA2DtC,IAA3D;AACH,KA9EwB;;AAgFzB;;;;;;;;;AASA0b,YAAQ,gBAAUD,WAAV,EAAuB6N,IAAvB,EAA6BC,WAA7B,EAA0CC,WAA1C,EAAuD;AAAA;;AAAA;AAAA;;AAC3D,aAAKC,SAAL,GAAiB,CAAjB;AAD2D;AAE3D,aAAKb,UAAL,GAAkB,IAAlB;AAF2D;AAG3D,aAAKc,aAAL,GAAqB,IAArB;AAH2D;AAI3DH,sBAAc,sEAAe;AACzB/oB,iBAAK,MADoB;AAEzBgH,oBAAQ,MAFiB;AAGzBnJ,kBAAMtB,qBAAEH,MAAF,CAAS;AACXmiB,4BAAYtD,YAAYrN,YADb;AAEX4Q,0BAAUvD,YAAYtQ,GAAZ,CAAgB,KAAhB,CAFC;AAGX7I,sBAAMgnB,KAAKhnB,IAHA;AAIXV,sBAAM0nB,KAAK1nB,IAJA;AAKX+nB,0BAAUL,KAAKtpB;AALJ,aAAT,EAMHwpB,WANG;AAHmB,SAAf,CAAd;;AAYA;AAhB2D;AAiB3D,+BAAYD,WAAZ,EAAyBvgB,IAAzB,CAA8B,UAAC0S,MAAD,EAAY;AAAA;;AACtC,gBAAIkO,oCAAWlO,OAAOkO,QAAlB,CAAJ;AADsC;AAEtC,gBAAI,mEAAY9qB,qBAAe8qB,QAAf,CAAZ,CAAJ,EAA0C;AAAA;AAAA;;AACtC,sBAAKF,aAAL,GAAqB,IAAI5qB,qBAAe8qB,QAAf,CAAJ,CAA6B;AAC9ClO,4BAAQA,MADsC;AAE9CD,iCAAaA,WAFiC;AAG9C6N,0BAAMA;AAHwC,iBAA7B,CAArB;AADsC;AAMtC,sBAAKI,aAAL,CAAmBnrB,EAAnB,CAAsB;AAClB,yCAAqB,yBAAUmF,MAAV,EAAkB;AAAA;AAAA;;AACnC,6BAAK4K,GAAL,CAAS5K,MAAT;AADmC;AAEnC,6BAAK3D,OAAL,CAAa,mBAAb,EAAkC2D,MAAlC;AAFmC;AAGnC,6BAAKgmB,aAAL,GAAqB,IAArB;AACH,qBALiB;AAMlB,0CAAsB,0BAAUhmB,MAAV,EAAkB;AAAA;AAAA;;AACpC,6BAAK3D,OAAL,CAAa,oBAAb,EAAmC2D,MAAnC;AACH,qBARiB;AASlB,sCAAkB,sBAAUA,MAAV,EAAkB;AAAA;AAAA;;AAChC,6BAAK3D,OAAL,CAAa,gBAAb,EAA+B2D,MAA/B;AACH,qBAXiB;AAYlB,8CAA0B,8BAAUA,MAAV,EAAkB;AAAA;AAAA;;AACxC,6BAAK3D,OAAL,CAAa,wBAAb,EAAuC2D,MAAvC;AACH,qBAdiB;AAelB,yCAAqB,yBAAUA,MAAV,EAAkB;AAAA;AAAA;;AACnC,6BAAK3D,OAAL,CAAa,mBAAb,EAAkC;AAC9B0pB,uCAAW/lB,OAAO+lB,SADY;AAE9BI,oCAAQnmB,OAAOmmB,MAFe;AAG9BrC,mCAAO9jB,OAAO4lB,IAAP,CAAY1nB,IAHW;AAI9B0nB,kCAAM5lB,OAAO4lB;AAJiB,yBAAlC;AAMH;AAtBiB,iBAAtB,EAuBG,KAvBH;AANsC;AA8BtC,uBAAO,MAAKI,aAAL,CAAmB9jB,OAAnB,EAAP;AACH,aA/BD;AAAA;AAAA;;AAFsC;AAmCtC,gBAAI0jB,KAAK1nB,IAAL,GAAY,CAAhB,EAAmB;AAAA;AAAA;;AACf;AACA,sBAAKkoB,YAAL,CAAkBR,IAAlB,EAAwB5N,OAAO/E,GAA/B;AACH,aAHD,MAGO;AAAA;AAAA;;AACH;AACA,sBAAKrI,GAAL,CAASoN,MAAT;AAFG;AAGH,sBAAK3b,OAAL,CAAa,mBAAb;AACH;AACJ,SA3CD,EA2CG8I,IA3CH,CA2CQ,UAACiH,IAAD,EAAU;AAAA;;AACd,gBAAI1Q,gCAAO,SAAP,CAAJ;AAAA,gBAAsB2qB,UAAtB;;AADc;AAGd,gBAAIja,KAAKjQ,MAAL,KAAgB,CAApB,EAAuB;AAAA;AAAA;;AACnBT,wBAAQ,uCAAR;AACH,aAFD,MAEO;AAAA;AAAA;;AACHA,wBAAQ0Q,KAAK1P,YAAL,CAAkBC,OAA1B;AADG;AAEH0pB,6BAAaja,KAAK1P,YAAL,CAAkB2pB,UAA/B;AACH;AARa;AASd,kBAAKhqB,OAAL,CAAa,wBAAb,EAAuC;AACnCM,yBAASjB,IAD0B;AAEnC2qB,4BAAYA,UAFuB;AAGnCthB,0BAAUqH;AAHyB,aAAvC;AAKH,SAzDD;AA0DH,KApKwB;;AAsKzB;;;;AAIAka,kBAAc,wBAAY;AAAA;;AAAA;AAAA;;AACtB,YAAI,gCAAKN,aAAL,KAAuB,IAAvB,gCAA+B,KAAKA,aAAL,CAAmBO,MAAlD,CAAJ,EAA8D;AAAA;AAAA;;AAC1D,mBAAO,KAAKP,aAAL,CAAmBO,MAAnB,EAAP;AACH,SAFD;AAAA;AAAA;;AAIA;AALsB;AAMtB,+BAAY;AACRzpB,iBAAK,aADG;AAERgH,oBAAQ,KAFA;AAGRnJ,kBAAM;AACF6rB,0BAAU,KAAKtB,UAAL,CAAgBsB;AADxB,aAHE;AAMR9sB,mBAAO;AANC,SAAZ,EAOG4L,IAPH,CAOQ,UAAC8G,IAAD,EAAU;AAAA;AAAA;;AACd,mBAAK2Z,SAAL,GAAiB3Z,KAAKkB,MAAtB;AADc;AAEd,mBAAK8Y,YAAL,CAAkB,OAAKlB,UAAL,CAAgBU,IAAlC,EAAwC,OAAKV,UAAL,CAAgBsB,QAAxD;AACH,SAVD,EAUGrhB,IAVH,CAUQ,UAACiH,IAAD,EAAU;AAAA;;AACd,gBAAIvL,GAAJ;;AADc;AAGd,gBAAIuL,KAAKjQ,MAAL,KAAgB,CAApB,EAAuB;AAAA;AAAA;;AACnB0E,sBAAM,kCAAN;AACH,aAFD,MAEO;AAAA;AAAA;;AACHA,sBAAM,wDAAN;AACH;AAPa;AAQd,mBAAKxE,OAAL,CAAa,gBAAb,EAA+B;AAC3BM,yBAASkE,GADkB;AAE3BkE,0BAAUqH;AAFiB,aAA/B;AAIH,SAtBD;AAuBH,KAvMwB;;AAyMzBqa,iBAAa,uBAAY;AAAA;AAAA;;AACrB,YAAI,6BAAC,KAAKvB,UAAN,iCAAoB,CAAC,KAAKA,UAAL,CAAgBsB,QAArC,CAAJ,EAAmD;AAAA;AAAA;;AAC/C;AACH,SAFD;AAAA;AAAA;AADqB;AAIrB,+BAAY;AACR1pB,iBAAK,gBADG;AAERgH,oBAAQ,QAFA;AAGRnJ,kBAAM;AACF6rB,0BAAU,KAAKtB,UAAL,CAAgBsB;AADxB,aAHE;AAMR9sB,mBAAO,IANC;AAOR4L,kBAAM;AAPE,SAAZ;AASH,KAtNwB;;AAwNzB8gB,kBAAc,sBAAUR,IAAV,EAAgBY,QAAhB,EAA0B;AAAA;;AAAA;;AACpC,YAAIE,mCAAU5f,KAAKC,GAAL,CAAS,KAAKgf,SAAL,GAAiB,+BAA1B,EAAgDH,KAAK1nB,IAArD,CAAV,CAAJ;;AADoC;AAGpC,aAAKyoB,WAAL,GAAmBD,UAAU,KAAKX,SAAlC;AACA,YAAIa,mCAAUhB,KAAKiB,WAAL,+BAAmB,aAAnB,gCAAmC,OAAnC,CAAV,CAAJ;AACA,YAAIC,gCAAOlB,KAAKgB,OAAL,EAAc,KAAKb,SAAnB,EAA8BW,OAA9B,CAAP,CAAJ;;AALoC;AAOpC,+BAAY;AACR5pB,wCAA0B,KAAKipB,SAA/B,kBAAqDS,QAD7C;AAER1iB,oBAAQ,MAFA;AAGRnJ,kBAAMmsB,IAHE;AAIRvC,yBAAa,KAJL;AAKRwC,yBAAa,KALL;AAMRC,qBAAS,iBAAC5a,IAAD,EAAU;AAAA;AAAA;;AACf,uBAAK/P,OAAL,CAAa,oBAAb,EAAmC;AAC/B4qB,2BAAOP,UAAU,OAAKX;AADS,iBAAnC;;AADe;AAKf,oBAAIW,YAAYd,KAAK1nB,IAArB,EAA2B;AAAA;AAAA;;AACvB,2BAAK6nB,SAAL,GAAiB,CAAjB;AADuB;AAEvB,2BAAKb,UAAL,GAAkB,IAAlB;AAFuB;AAGvB,2BAAKta,GAAL,CAASwB,IAAT;AAHuB;AAIvB,2BAAK/P,OAAL,CAAa,mBAAb;AACH,iBALD,MAKO;AAAA;AAAA;;AACH,2BAAK0pB,SAAL,GAAiBW,OAAjB;AADG;AAEH,2BAAKN,YAAL,CAAkBR,IAAlB,EAAwBY,QAAxB;AACH;AACJ,aApBO;AAqBR9sB,mBAAO,eAAC0S,IAAD,EAAU;AAAA;;AACb,oBAAI1Q,gCAAO,SAAP,CAAJ;AAAA,oBAAsB2qB,UAAtB;;AADa;AAGb,oBAAIja,KAAKjQ,MAAL,KAAgB,CAApB,EAAuB;AAAA;AAAA;;AACnBT,4BAAQ,uCAAR;AACH,iBAFD,MAEO;AAAA;AAAA;;AACHA,4BAAQ0Q,KAAK1P,YAAL,CAAkBC,OAA1B;AADG;AAEH0pB,iCAAaja,KAAK1P,YAAL,CAAkB2pB,UAA/B;AACH;;AARY;AAUb,uBAAKnB,UAAL,GAAkB;AACdsB,8BAAUA,QADI;AAEdZ,0BAAMA;AAFQ,iBAAlB;;AAVa;AAeb,uBAAKvpB,OAAL,CAAa,gBAAb,EAA+B;AAC3BM,6BAASjB,IADkB;AAE3B2qB,gCAAYA,UAFe;AAG3BthB,8BAAUqH;AAHiB,iBAA/B;AAKH,aAzCO;AA0CR3O,iBAAK,eAAM;AAAA;;AACP;AACA,oBAAIA,+BAAM,IAAI9B,OAAOurB,cAAX,EAAN,CAAJ;AAFO;AAGPzpB,oBAAIua,MAAJ,CAAW6K,gBAAX,CAA4B,UAA5B,EAAwC,UAACjT,CAAD,EAAO;AAAA;AAAA;;AAC3C,2BAAKuX,eAAL,CAAqBvB,IAArB,EAA2BhW,CAA3B;AACH,iBAFD;AAHO;AAMP,uBAAOnS,GAAP;AACH;AAjDO,SAAZ;AAmDH,KAlRwB;;AAoRzB;;;;AAIA0pB,qBAAiB,yBAAUvB,IAAV,EAAgBpoB,KAAhB,EAAuB;AAAA;AAAA;;AACpC,YAAI,CAACA,MAAM4pB,gBAAX,EAA6B;AAAA;AAAA;;AACzB;AACH,SAFD;AAAA;AAAA;;AAIA;AACA;AACA;AACA,YAAIjB,kCAAS,KAAKQ,WAAL,GAAmBnpB,MAAM2oB,MAAzB,GAAkC3oB,MAAMsmB,KAAjD,CAAJ;;AARoC;AAUpC,YAAIqC,UAAU,CAAd,EAAiB;AAAA;AAAA;;AACb,iBAAK9pB,OAAL,CAAa,mBAAb,EAAkC;AAC9B0pB,2BAAW,KAAKA,SADc;AAE9BI,wBAAQA,MAFsB;AAG9BrC,uBAAO8B,KAAK1nB,IAHkB;AAI9B0nB,sBAAMA;AAJwB,aAAlC;AAMH,SAPD;AAAA;AAAA;AAQH;AA1SwB,CAAb,CAAZ,CAAJ;;kBA6SeX,S;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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xB0C,CAA7B,CAAd,CAAJ;;kBA2BekY,W;;;;;;;AC9Bf;AAAA;AAAA;AAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,qCAAqC;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,wDAAwD;AAC9E;AACA,QAAQ;AACR;AACA,4BAA4B;AAC5B;AACA;AACA,wBAAwB;AACxB,6BAA6B;AAC7B,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,6BAA6B;AAC7B,uCAAuC;AACvC;AACA,4BAA4B;AAC5B;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,0CAA0C,iBAAiB,yBAAyB;AACpF;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,gDAAgD;AAC9E;AACA,gBAAgB;AAChB;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA,6BAA6B,UAAU;AACvC;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,wEAAwE,kBAAkB,SAAS;AACnG;AACA;AACA,0BAA0B;AAC1B;AACA,iBAAiB,wBAAwB;AACzC;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,gBAAgB,mBAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,gBAAgB,mBAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wBAAwB;AACvC,gBAAgB,mBAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wBAAwB;AACxC;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,gBAAgB,mBAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,gBAAgB,mBAAmB;AACnC;AACA;AACA;AACA;AACA,gBAAgB,uDAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,gBAAgB,mBAAmB;AACnC;AACA;AACA;AACA;AACA,sBAAsB,uDAAO;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,gBAAgB,mBAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,gBAAgB,mBAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA,2BAA2B,sBAAsB;AACjD;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACkB;AACnB,oC;;;;;;;AC1SA;AAAA;AAAA;AAAA;AAAkC;AACF;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,6BAA6B;AAC9D;AACA;AACA,IAAI,wDAAS;AACb;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,6CAAK;AACe;AACtB,uC;;;;;;;AChEA;AAAA;AAAA;AAAA;AAAkC;AACF;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,6BAA6B;AAC9D;AACA;AACA;AACA,IAAI,wDAAS;AACb;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA,yDAAyD;AACzD;AACA;AACA,+BAA+B;AAC/B;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,+BAA+B,mBAAmB;AAClD;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;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;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,6CAAK;AACiB;AACxB,yC;;;;;;;AChGA;AAAA;AAAA;AAAA;AAAkC;AACF;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,6BAA6B;AAC9D;AACA;AACA,IAAI,wDAAS;AACb;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA,yDAAyD;AACzD;AACA;AACA,sCAAsC;AACtC;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,+BAA+B,mBAAmB;AAClD;AACA;AACA,gBAAgB;AAChB;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;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iDAAiD;AACxE;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,6CAAK;AACiB;AACxB,yC;;;;;;;AC3GA;AAAA;AAAA;AAAA;AAAkC;AACF;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,6BAA6B;AAC9D;AACA;AACA;AACA,IAAI,wDAAS;AACb;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,iBAAiB,sBAAsB;AACvC;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,6CAAK;AACe;AACtB,uC;;;;;;;AC9FA;AAAA;AAAA;AAAA;AAAkC;AACF;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,6BAA6B;AAC9D;AACA;AACA,IAAI,wDAAS;AACb;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,uBAAuB;AACvB;AACA,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,iBAAiB,OAAO;AACxB;AACA,+BAA+B,iCAAiC;AAChE;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA,wCAAwC;AACxC;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA,2CAA2C;AAC3C;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA,sFAAsF,WAAW;AACjG,eAAe,qBAAqB;AACpC;AACA;AACA;AACA;AACA,sBAAsB,QAAQ;AAC9B;AACA,sFAAsF,WAAW;AACjG,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,iCAAiC,SAAS,aAAa,6EAA6E;AACpI;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,gBAAgB,OAAO;AACvB;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,oCAAoC;AACpC,oCAAoC;AACpC,mCAAmC;AACnC,mCAAmC,GAAG;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,6CAAK;AACa;AACpB,qC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtQA;;;;AACA;;;;;;AAEA,IAAII,+CAAuBtgB,qBAAWhU,MAAX,CAAkB;AACzCwR,kBAAc,YAD2B;AAEzCyC,WAAOgI;AAFkC,CAAlB,CAAvB,CAAJ;;kBAKeqY,oB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACRf;;;;AACA;;;;;;AAEA,IAAI9X,yCAAiBxI,qBAAWhU,MAAX,CAAkB;AACnCwR,kBAAc,MADqB;AAEnCyC,WAAO8X,mBAF4B;;AAInC5X,eAAW;AAJwB,CAAlB,CAAjB,CAAJ;;kBAOeqI,c;;;;;;ACVf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;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;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,uIAAuI;;AAEvI;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA,sCAAsC,OAAO;AAC7C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,2DAA2D,WAAW;AACtE;;AAEA,0CAA0C,SAAS;AACnD;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,8DAA8D,YAAY;AAC1E;;AAEA,kDAAkD,UAAU;AAC5D;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;;AAEA;;AAEA,iCAAiC,KAAK;AACtC;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,iBAAiB,kCAAkC;AACrF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,cAAc,oCAAoC;AAClD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,uEAAuE;AACvE,0BAA0B,WAAW,wEAAwE;AAC7G;AACA;AACA;AACA;AACA,8BAA8B,kBAAkB;AAChD,qBAAqB;AACrB,8BAA8B,uDAAuD;;AAErF,sBAAsB;AACtB;;AAEA;AACA,oCAAoC,gFAAgF;AACpH,oCAAoC,gFAAgF;AACpH,oCAAoC,iFAAiF;AACrH,oCAAoC;;AAEpC;;AAEA;AACA,iBAAiB;AACjB;;AAEA;AACA;;AAEA;AACA;AACA;AACA,mDAAmD;AACnD;AACA,OAAO,kFAAkF;AACzF;AACA;AACA,KAAK;AACL;AACA;AACA,qDAAqD;AACrD;AACA,OAAO,uDAAuD;AAC9D;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,CAAC;;;;;;;;ACpqBD;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;;AAEA,iCAAiC;;AAEjC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;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CAAO,UAAP,EAAmBb,OAAnB,CAA2B,OAA3B;;AAVgB;AAYhB,gCAAW,UAAX,EAAuB,EAAEZ,SAAS,IAAX,EAAvB;;AAZgB;AAchB,eAAO,IAAP;AACH;;AAlF0B,CAAZ,CAAf,CAAJ;;kBAsFegyB,Y;;;;;;ACpGf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA,+BAA+B;;AAE/B;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH,CAAC;;;;;;;;ACnND;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD,gBAAgB;AAChE,gCAAgC;AAChC;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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A;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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,CAAJ;;kBAKegH,gB;;;;;;;ACRf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAoC;AACwB;AACJ;AAClB;AACW;AACI;AACA;AACJ;AACJ;AACD;AACP;AACkB;AACJ;AACyB;AACrB;AACI;AACP;AACpD;AACA;AACA;AACA;AACA;AACA,+BAA+B,KAAK;AACpC;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,QAAQ,iCAAiC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,mDAAmD;AAC3F,wBAAwB;AACxB,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,yBAAyB;AAClC;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA,6BAA6B,UAAU;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,eAAe;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,iBAAiB,eAAe;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,iBAAiB,eAAe;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,iBAAiB,eAAe;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA,iBAAiB,cAAc;AAC/B;AACA;AACA;AACA;AACA;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,iBAAiB,OAAO;AACxB;AACA,iBAAiB,uBAAuB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,wCAAwC;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,eAAe;AAChD;AACA;AACA;AACA,iBAAiB,uBAAuB;AACxC;AACA,2CAA2C,6BAA6B;AACxE;AACA;AACA,8BAA8B;AAC9B;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA,gFAAgF;AAChF,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA,sBAAsB,6BAA6B;AACnD;AACA,gBAAgB,iCAAiC;AACjD;AACA;AACA,sCAAsC,mBAAmB;AACzD;AACA;AACA;AACA;AACA,sBAAsB,4BAA4B;AAClD;AACA;AACA,qDAAqD,qBAAqB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,0EAAe;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,iCAAiC,wBAAwB,MAAM;AACpH;AACA;AACA;AACA,kEAAkE,mBAAmB;AACrF;AACA;AACA;AACA,eAAe,OAAO;AACtB,oBAAoB,YAAY,GAAG,aAAa,GAAG,aAAa,GAAG,eAAe;AAClF,UAAU,eAAe,OAAO,eAAe;AAC/C,eAAe,OAAO;AACtB;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA,qEAAqE;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,yCAAyC;AACzC,iDAAiD;AACjD,gDAAgD;AAChD,iDAAiD;AACjD,kDAAkD;AAClD;AACA;AACA,eAAe,OAAO;AACtB,+BAA+B,YAAY,GAAG,aAAa,GAAG,aAAa;AAC3E,UAAU,eAAe,OAAO,eAAe;AAC/C,eAAe,OAAO;AACtB;AACA;AACA,gBAAgB,yBAAyB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,YAAY;AACnC;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA,eAAe,eAAe;AAC9B,gBAAgB;AAChB;AACA;AACA;AACA,wBAAwB;AACxB;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA,YAAY,mBAAmB;AAC/B;AACA;AACA,eAAe,eAAe;AAC9B,gBAAgB;AAChB;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA,YAAY,gBAAgB;AAC5B;AACA;AACA,eAAe,cAAc;AAC7B,gBAAgB;AAChB;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,mBAAmB,wDAAQ,eAAe;AAC1C;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA,mCAAmC,YAAY;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,yCAAyC;AACzC,iDAAiD;AACjD,gDAAgD;AAChD,iDAAiD;AACjD,kDAAkD;AAClD;AACA,eAAe,OAAO;AACtB,+BAA+B,YAAY,GAAG,aAAa,GAAG,aAAa;AAC3E,UAAU,eAAe,OAAO,eAAe;AAC/C,gBAAgB,yBAAyB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0EAAS;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,qEAAqE;AACrE;AACA;AACA;AACA,iEAAiE;AACjE,6DAA6D,OAAO,KAAK,MAAM,KAAK,MAAM,OAAO,MAAM,MAAM;AAC7G,oCAAoC,+DAAe;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;AACA;AACA,6EAA6E;AAC7E;AACA,aAAa;AACb,0CAA0C,EAAE;AAC5C,0CAA0C,EAAE;AAC5C,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yBAAyB;AACxC,gBAAgB;AAChB;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,oBAAoB,wBAAwB;AAC5C;AACA;AACA;AACA,0DAA0D,4BAA4B;AACtF;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yBAAyB;AACxC;AACA;AACA,gBAAgB,yBAAyB;AACzC;AACA;AACA;AACA,YAAY,sDAAM;AAClB;AACA,aAAa;AACb;AACA,YAAY,sDAAM;AAClB;AACA,aAAa;AACb;AACA,YAAY,sDAAM;AAClB;AACA,aAAa;AACb;AACA,YAAY,sDAAM;AAClB;AACA,aAAa;AACb;AACA,YAAY,sDAAM;AAClB;AACA,aAAa;AACb;AACA;AACA,YAAY,sDAAM,wBAAwB,+DAA+D,EAAE;AAC3G;AACA;AACA,YAAY,sDAAM,wBAAwB,+DAA+D,EAAE;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;AACA;AACA,eAAe,OAAO;AACtB,UAAU,YAAY,GAAG,aAAa,GAAG,aAAa;AACtD,UAAU,eAAe,OAAO,eAAe;AAC/C,eAAe,OAAO;AACtB,8DAA8D;AAC9D,wDAAwD;AACxD;AACA,gBAAgB,yBAAyB;AACzC;AACA;AACA;AACA,gCAAgC,YAAY;AAC5C;AACA;AACA,sDAAsD,iBAAiB;AACvE;AACA;AACA;AACA;AACA;AACA,gEAAgE,oBAAoB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,iCAAiC,wBAAwB,MAAM;AAC1E;AACA;AACA;AACA;AACA,sBAAsB,KAAK;AAC3B;AACA,eAAe,OAAO;AACtB,+BAA+B,YAAY,GAAG,aAAa,GAAG,aAAa,GAAG,eAAe,OAAO,eAAe;AACnH,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,uDAAuD,sBAAsB;AAC7E;AACA;AACA,6CAA6C,SAAS;AACtD;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA,eAAe,uBAAuB;AACtC;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE;AACvE;AACA;AACA,mCAAmC;AACnC;AACA;AACA,0CAA0C;AAC1C;AACA,4CAA4C,mDAAO;AACnD;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,oBAAoB,yEAAc;AAClC;AACA;AACA,iBAAiB;AACjB,oBAAoB,qEAAY,EAAE,yBAAyB;AAC3D,oBAAoB,qEAAY,EAAE,yBAAyB;AAC3D,oBAAoB,yEAAc;AAClC;AACA;AACA,iBAAiB;AACjB,oBAAoB,iEAAU;AAC9B;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,+CAA+C,qEAAgB;AAC/D;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA,yBAAyB,iDAAO;AAChC;AACA;AACA;AACA;AACA,kCAAkC,qEAAgB;AAClD;AACA;AACA;AACA;AACA,yBAAyB,mDAAO;AAChC;AACA;AACA;AACA;AACA;AACA,eAAe,qEAAY;AAC3B,iBAAiB,yEAAc;AAC/B,iBAAiB,yDAAO;AACxB,iBAAiB,yEAAc;AAC/B,eAAe,qEAAY;AAC3B,aAAa,iEAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8DAAU;AACzB,iBAAiB,kEAAY;AAC7B,eAAe,mDAAK;AACpB,iBAAiB,kEAAY;AAC7B,eAAe,8DAAU;AACzB,aAAa,0DAAQ;AACrB;AACA;AACA,CAAC;AACc,yEAAU,EAAC;AAC1B,sC;;;;;;;ACp7BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqC;AACqB;AACE;AACN;AACtD;AACA;AACA;AACA;AACA;AACA,sBAAsB,KAAK;AAC3B;AACA;AACA;AACA,IAAI,iBAAiB;AACrB,IAAI,qCAAqC,YAAY;AACrD;AACA,IAAI,qCAAqC;AACzC;AACA;AACA;AACA,0CAA0C,iBAAiB,yBAAyB;AACpF;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA,6BAA6B,UAAU;AACvC;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA,+BAA+B;AAC/B;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,2BAA2B;AAC3B;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA,wCAAwC,KAAK;AAC7C;AACA;AACA,eAAe,uBAAuB;AACtC;AACA,gBAAgB,mBAAmB;AACnC;AACA;AACA,mBAAmB,kDAAO;AAC1B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,2EAA2E,KAAK;AAChF;AACA;AACA;AACA,eAAe,uBAAuB;AACtC;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,uBAAuB;AACtC;AACA,gBAAgB,OAAO;AACvB,qCAAqC,iBAAiB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,SAAS;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gBAAgB;AACxB;AACA;AACA,eAAe,OAAO;AACtB;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE;AACA,QAAQ,gBAAgB;AACxB,iCAAiC,gBAAgB;AACjD;AACA;AACA,eAAe,OAAO;AACtB;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,+EAAa;AAChC;AACA;AACA,mBAAmB,iFAAc;AACjC;AACA;AACA,mBAAmB,2EAAW;AAC9B;AACA;AACA;AACA,CAAC;AAC2B;AAC5B,8C;;;;;;;AC9KA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA4C;AACR;AAC6C;AAC/B;AACC;AACZ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,wEAA4B,kBAAkB,EAAE;AAC/F,2CAA2C,oDAAQ;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,iCAAiC;AAClE;AACA;AACA,IAAI,wDAAS;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,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,oBAAoB,uEAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,uDAAQ,CAAC,uDAAQ,GAAG,uBAAuB,wBAAwB;AACjI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,+DAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,+DAAmB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,+DAAmB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,+DAAmB;AACxC;AACA;AACA;AACA;AACA;AACA,0DAA0D,uDAAQ,CAAC,uDAAQ,GAAG,uBAAuB,qBAAqB;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,8BAA8B;AACpE;AACA,uDAAuD,eAAe;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,8DAAU;AAC/C;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,iDAAO;AACe;AACxB;AACA;AACA,6BAA6B,UAAU;AACvC;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,yC;;;;;;;ACtTA;AAAA;AAAA;AACA;AACO;AACP,qC;;;;;;;ACHA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkC;AACE;AACgE;AAC7D;AACO;AACY;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,KAAK,2BAA2B,KAAK;AACtF;AACA,0GAA0G;AAC1G;AACA,8CAA8C,wEAA4B,+BAA+B,MAAM,cAAc,wEAA4B,+BAA+B;AACxL;AACA;AACA;AACA;AACA,QAAQ,oEAAgB;AACxB;AACA;AACA;AACA;AACA;AACA,QAAQ,oEAAgB;AACxB;AACA;AACA;AACA;AACA,QAAQ,oEAAgB;AACxB,QAAQ,oDAAQ;AAChB,kBAAkB,gEAAoB;AACtC;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,sCAAsC,wEAA4B;AAClE;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,iCAAiC;AAClE;AACA;AACA,IAAI,wDAAS;AACb;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA,+BAA+B,iCAAiC;AAChE;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA,wCAAwC;AACxC;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA,2CAA2C;AAC3C;AACA;AACA,sBAAsB,OAAO;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,uEAAiB;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,mEAAmE;AACnE;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0FAA0F,wEAAwE,EAAE;AACpK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAQ;AACrC;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,eAAe,OAAO,0CAA0C,oBAAoB;AACpF,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,0BAA0B;AAC1B;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,iDAAiD;AACjD;AACA,kDAAkD,SAAS;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,eAAe,OAAO;AACtB;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,wEAA4B,YAAY,wEAA4B,cAAc,wEAA4B;AAC7J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,iDAAO;AACa;AACtB,uC;;;;;;;AC/TA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkC;AACE;AACoD;AAClC;AACH;AACnD;AACA;AACA,+CAA+C,wEAA4B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wDAAS;AACb;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;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,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uEAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sEAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sEAA0B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sEAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sEAA0B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,kEAAY;AAC5C;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,iDAAO;AACiB;AACnB;AACP,2C;;;;;;;AChKA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkC;AACE;AACc;AACR;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,IAAI,iBAAiB,EAAE,eAAe,EAAE,YAAY,EAAE,mLAAmL,KAAK,SAAS;AAChS;AACA,gCAAgC,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE;AACxJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,iCAAiC;AAClE;AACA;AACA;AACA,IAAI,wDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF;AAClF;AACA;AACA;AACA,iCAAiC,8DAAU;AAC3C;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,eAAe,sDAAU;AACzB;AACA;AACA,CAAC,CAAC,iDAAO;AACe;AACxB,yC;;;;;;;AC9EA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkC;AACE;AACwB;AACN;AACtD;AACA;AACA;AACA;AACA;AACA,2CAA2C,wEAA4B,KAAK,KAAK,eAAe,wEAA4B,cAAc;AAC1I,8CAA8C,wEAA4B,KAAK,KAAK,eAAe,wEAA4B,cAAc;AAC7I,gDAAgD,wEAA4B,KAAK,KAAK,gBAAgB,wEAA4B,cAAc;AAChJ;AACA;AACA,2CAA2C,wEAA4B,KAAK,KAAK,YAAY,wEAA4B,mBAAmB,wEAA4B,cAAc;AACtL,yCAAyC,wEAA4B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wDAAS;AACb;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA,iBAAiB,mCAAmC;AACpD;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,iCAAiC,kEAAY;AAC7C;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,iDAAO;AACiB;AAC1B,2C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChGA;;;;AACA;;;;;;AAEA,IAAIC,+CAAuBnnB,qBAAWhU,MAAX,CAAkB;AACzCwR,kBAAc,YAD2B;AAEzCyC,WAAOuW;AAFkC,CAAlB,CAAvB,CAAJ;;kBAKe2Q,oB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KCzDY;;;;;;;AAf3B;;;;AACA;;;;AAEA;;;;AACA;;;;AACA;;;;AACA;;AACA;;;;AAEA;;;;AAEA;;AAEA;;AACA;;AACA;;AACA;;;;AAEA;;;AAGA,I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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnMf;;;;AACA;;;;AAEA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;AACA;;;;AACA;;AACA;;AAEA;;;;AAEA;;AAEA;;;;AAEA;;;AAGA,IAAIe,0CAAkBnxC,eAAKE,MAAL,CAAY;AAC9BmB,YAAQ;AACJ,oCAA4B,6BAAUmD,KAAV,EAAiB;AAAA;AAAA;;AACzCA,kBAAMiT,cAAN;AADyC;AAEzC,iBAAKvT,CAAL,CAAO,wBAAP,EAAiCpC,KAAjC;;AAEA,gBAAIkF,iCAAS;AACT0tB,uBAAO,KAAKxwB,CAAL,CAAO,UAAP,EAAmBqB,GAAnB,EADE;AAETuU,2BAAW,KAAK5V,CAAL,CAAO,cAAP,EAAuBqB,GAAvB,EAFF;AAGTwU,0BAAU,KAAK7V,CAAL,CAAO,aAAP,EAAsBqB,GAAtB;AAHD,aAAT,CAAJ;;AAJyC;AAUzC,gBAAI,KAAKrB,CAAL,CAAO,UAAP,EAAmBe,MAAnB,GAA4B,CAAhC,EAAmC;AAAA;AAAA;;AAC/B+B,uBAAOoqC,KAAP,GAAe,KAAKltC,CAAL,CAAO,UAAP,EAAmBzC,EAAnB,CAAsB,UAAtB,CAAf;AACH,aAFD;AAAA;AAAA;;AAVyC;AAczC,iBAAKgJ,IAAL,CAAUmH,GAAV,CAAc5K,MAAd;;AAdyC;AAgBzC,iBAAKyD,IAAL,CAAUrJ,GAAV,CAAc,SAAd,EAAyBS,EAAzB,CAA4B,SAA5B,EAAuC,UAAUmR,GAAV,EAAe;AAAA;;AAClD,oBAAInL,8BAAMmL,IAAItP,YAAJ,CAAiBC,OAAvB,CAAJ;AADkD;AAElD,qBAAKO,CAAL,CAAO,QAAQ8O,IAAItP,YAAJ,CAAiB8nB,KAAhC,EAAuCnoB,OAAvC,CAA+C,OAA/C;AAFkD;AAGlD,qBAAKa,CAAL,CAAO,wBAAP,EAAiCxB,IAAjC,CAAsCmF,GAAtC;AACH,aAJD,EAIG,IAJH,EAISzG,GAJT,CAIa,SAJb,EAKKS,EALL,CAKQ,SALR,EAKmB,YAAY;AAAA;AAAA;;AACvBR,iCAAOgC,OAAP,CAAe,SAAf,EAA0B;AACtBG,0BAAM,IADgB;AAEtBd,0BAAM,aAFgB;AAGtBY,0BAAM,SAHgB;AAItBC,6BAAS;AAJa,iBAA1B;AAMH,aAZL,EAYO,IAZP,EAYaqX,IAZb;AAaH,SA9BG;AA+BJ,0CAAkC,mCAAUpW,KAAV,EAAiB;AAAA;AAAA;;AAC/CA,kBAAMiT,cAAN;AAD+C;AAE/C,iBAAKvT,CAAL,CAAO,8BAAP,EAAuCpC,KAAvC;;AAF+C;AAI/C,gBAAI,KAAKoC,CAAL,CAAO,iBAAP,EAA0BqB,GAA1B,OACI,KAAKrB,CAAL,CAAO,oBAAP,EAA6BqB,GAA7B,EADR,EAC4C;AAAA;AAAA;;AACxC,qBAAKrB,CAAL,CAAO,8BAAP,EAAuCxB,IAAvC,CACI,oCADJ;AADwC;AAIxC,qBAAKwB,CAAL,CAAO,oCAAP,EAA6CqB,GAA7C,CAAiD,EAAjD;AAJwC;AAKxC,qBAAKrB,CAAL,CAAO,iBAAP,EAA0Bb,OAA1B,CAAkC,OAAlC;AALwC;AAMxC;AACH,aARD;AAAA;AAAA;;AAJ+C;AAc/C,iBAAKoH,IAAL,CAAUrJ,GAAV,CAAc,SAAd,EAAyBS,EAAzB,CAA4B,SAA5B,EAAuC,UAAUmR,GAAV,EAAe;AAAA;;AAClD,oBAAInL,+BAAMmL,IAAItP,YAAJ,CAAiBC,OAAvB,CAAJ;AADkD;AAElD,qBAAKO,CAAL,CAAO,8BAAP,EAAuCxB,IAAvC,CAA4CmF,GAA5C;AACH,aAHD,EAGG,IAHH,EAGSzG,GAHT,CAGa,mBAHb,EAIKS,EAJL,CAIQ,mBAJR,EAI6B,YAAY;AAAA;AAAA;;AACjCR,iCAAOgC,OAAP,CAAe,SAAf,EAA0B;AACtBG,0BAAM,IADgB;AAEtBd,0BAAM,mBAFgB;AAGtBY,0BAAM,SAHgB;AAItBC,6BAAS;AAJa,iBAA1B;AADiC;AAOjC,qBAAKW,CAAL,CAAO,oDAAP,EAA6DqB,GAA7D,CAAiE,EAAjE;AACH,aAZL,EAYO,IAZP;;AAcA;AACA;AACA;AA9B+C;AA+B/C,gBAAI,KAAK8rC,aAAT,EAAwB;AAAA;AAAA;;AACpB,qBAAK5mC,IAAL,CAAUkI,cAAV,CACI,KAAKzO,CAAL,CAAO,iBAAP,EAA0BqB,GAA1B,EADJ,EAEI,KAAKrB,CAAL,CAAO,iBAAP,EAA0BqB,GAA1B,EAFJ;AAIH,aALD,MAKO;AAAA;AAAA;;AACH,qBAAKkF,IAAL,CAAUwI,mBAAV,CAA8B,KAAK/O,CAAL,CAAO,iBAAP,EAA0BqB,GAA1B,EAA9B;AACH;AACJ;AAtEG,KADsB;;AA0E9ByD,gBAAY,oBAAU8O,QAAV,EAAoB;AAAA;AAAA;;AAC5B,aAAKk0B,GAAL,GAAW,oCAASA,GAAT,gCAAgB,MAAhB,CAAX;AAD4B;AAE5B,aAAKvhC,IAAL,GAAY,oCAASA,IAAT,gCAAiB,2BAAjB,CAAZ;AAF4B;AAG5B,aAAK4mC,aAAL,GAAqB,sFACjBv5B,SAASrN,IAAT,CAAcyI,EAAd,KAAqB,4BAAiBA,EADrB,CAArB;;AAH4B;AAM5B,aAAKiB,KAAL,GAAa,KAAK1J,IAAlB;AAN4B;AAO5B,aAAK6mC,SAAL,GAAiBx5B,SAASw5B,SAA1B;;AAP4B;AAS5B,YAAI,4BAAC,KAAK7mC,IAAN,gCAAc,KAAKA,IAAL,CAAUgR,cAAV,KAA6BtT,sBAAWG,KAAtD,CAAJ,EAAiE;AAAA;AAAA;;AAC7DvC,6BAAOa,QAAP,CAAgB,EAAhB,EAAoB,EAAEvD,SAAS,IAAX,EAApB;AAD6D;AAE7D;AACH,SAHD;AAAA;AAAA;;AAT4B;AAc5B,sCAAmB,OAAnB;;AAd4B;AAgB5B,aAAKkuC,gBAAL,GAAwB,IAAIC,0BAAJ,CAAqB;AACzC/mC,kBAAM,KAAKA,IAD8B;AAEzClK,wBAAY;AAF6B,SAArB,CAAxB;;AAhB4B;AAqB5B,aAAKkxC,uBAAL,GAA+B,IAAIC,iCAAJ,CAA4B;AACvDjnC,kBAAM,KAAKA,IAD4C;AAEvDlK,wBAAY;AAF2C,SAA5B,CAA/B;;AArB4B;AA0B5B,aAAK2P,MAAL;AACH,KArG6B;;AAuG9BA,YAAQ,kBAAY;AAAA;AAAA;;AAChB,YAAI,gCAAqB,IAAzB,EAA+B;AAAA;AAAA;;AAC3BnK,6BAAOa,QAAP,CAAgB,EAAhB,EAAoB,EAAEvD,SAAS,IAAX,EAApB;AAD2B;AAE3B;AACH,SAHD;AAAA;AAAA;;AADgB;AAMhB,aAAK7B,GAAL,CAAS+F,IAAT,CAAc,2BAAoB;AAC9BkD,kBAAM,KAAK0J,KADmB;AAE9Bk9B,2BAAe,KAAKA,aAFU;AAG9B9mC,4BAAgBA,oBAHc;AAI9BonC,4BAAgB,KAAKL;AAJS,SAApB,CAAd;;AANgB;AAahBjxC,6BAAEU,IAAF,CAAO,sBAAE,sBAAF,CAAP,EAAkC,UAAUW,EAAV,EAAc;AAAA;;AAAA;;AAC5C,gBAAImrC,mCAAU,sBAAEnrC,EAAF,CAAV,CAAJ;AAD4C;AAE5CmrC,oBAAQb,GAAR,GAAcnqC,EAAd,CAAiB,cAAjB,EAAiC,UAAC+U,CAAD,EAAO;AAAA;AAAA;;AACpC,sBAAKo1B,GAAL,GAAW,sBAAEp1B,EAAEO,aAAJ,EAAmBuD,IAAnB,CAAwB,MAAxB,CAAX;AADoC;AAEpC3U,iCAAOa,QAAP,CAAgB,iBAAiB,MAAKuN,KAAL,CAAWjB,EAA5B,GAAiC,GAAjC,GAAuC,MAAK84B,GAA5D;;AAFoC;AAIpC,oBAAI,MAAKA,GAAL,KAAa,SAAjB,EAA4B;AAAA;AAAA;;AACxB,0BAAKuF,gBAAL,CAAsB/tB,UAAtB,CACI,MAAKtf,CAAL,CAAO,4BAAP,CADJ,EAC0CgM,MAD1C;AAEH,iBAHD,MAGO;AAAA;AAAA;AAAA,4BAAI,MAAK87B,GAAL,KAAa,KAAjB,EAAwB;AAAA;AAAA;;AAC3B,kCAAKyF,uBAAL,CACKjuB,UADL,CACgB,MAAKtf,CAAL,CAAO,0BAAP,CADhB,EAEKgM,MAFL;AAGH,yBAJM;AAAA;AAAA;AAIN;AACJ,aAZD;;AAF4C;AAgB5C,gBAAI28B,QAAQnyB,IAAR,CAAa,MAAb,MAAyB,KAAKsxB,GAAlC,EAAuC;AAAA;AAAA;;AACnCa,wBAAQb,GAAR,CAAY,MAAZ;AACH,aAFD;AAAA;AAAA;AAGH,SAnBD,EAmBG,IAnBH;;AAbgB;AAkChB,eAAO,IAAP;AACH;AA1I6B,CAAZ,EA2InB;AACC;;;AAGA9X,kBAAc,sBAAUhhB,EAAV,EAAc84B,GAAd,EAAmB;AAAA;;AAC7B,YAAIvhC,gCAAO,IAAIwB,mBAAJ,EAAP,CAAJ;AAD6B;AAE7BxB,aAAKmH,GAAL,CAAS,EAAEqI,KAAK/G,EAAP,EAAT,EAAsBrR,EAAtB,CAAyB,WAAzB,EAAsC,YAAY;AAAA;AAAA;;AAC9CR,6BAAOgC,OAAP,CAAe,cAAf,EAA+B8tC,eAA/B,EAAgD;AAC5C1mC,sBAAMA,IADsC;AAE5CuhC,qBAAKA;AAFuC,aAAhD;AAIH,SALD,EAKG,IALH,EAKSnqC,EALT,CAKY,SALZ,EAKuB,YAAY;AAAA;AAAA;;AAC/BkE,6BAAOa,QAAP,CAAgB,EAAhB,EAAoB,EAAEvD,SAAS,IAAX,EAApB;AACH,SAPD,EAOG,IAPH,EAOS4R,KAPT;AAQH;AAdF,CA3ImB,CAAlB,CAAJ;;kBA4Jek8B,e;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChLf;;;;;;;AAFA;;;;AACA;;;;AAEA;;AACA;;AAEA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;AACA;;;;AAEA;;;;;;AAEA,IAAIK,0CAAmBxxC,eAAKE,MAAL,CAAY;AAC/BmB,YAAQ;AACJ,0CAAkC,kCAAUuV,CAAV,EAAa;AAAA;;AAAA;;AAC3C,gBAAIg7B,gCAAS,KAAKC,kBAAL,CAAwBj7B,CAAxB,CAAT,CAAJ;AAD2C;AAE3C,gBAAIk7B,eAAe,SAAfA,YAAe,GAAM;AAAA;AAAA;;AACrBF,uBAAOr1B,IAAP,CAAY,aAAZ,EAA2B,YAAY;AAAA;AAAA;;AACnC,yBAAKrM,MAAL;AACH,iBAFD,EAEG,KAFH,EAESmkB,SAFT,CAEmB,CAACud,OAAOnjC,GAAP,CAAW,QAAX,CAFpB;AAGH,aAJD;;AAF2C;AAQ3C,gBAAImjC,OAAOnjC,GAAP,CAAW,QAAX,CAAJ,EAA0B;AAAA;AAAA;;AACtB,qCAAQ;AACJ/L,0BAAM,+DACA,gEADA,GAEA,gDAHF;AAIJuE,6BAAS,KAJL;AAKJC,8BAAU,aALN;AAMJE,iCAAa,IANT;AAOJU,qCAAiBgqC;AAPb,iBAAR;AASH,aAVD,MAUO;AAAA;AAAA;;AACHA;AACH;AACJ,SAtBG;;AAwBJ,gCAAwB,yBAAUl7B,CAAV,EAAa;AAAA;AAAA;;AACjC,iBAAKm7B,iBAAL;AACH,SA1BG;;AA4BJ,iCAAyB,0BAAUn7B,CAAV,EAAa;AAAA;;AAClC,gBAAIg7B,gCAAS,KAAKC,kBAAL,CAAwBj7B,CAAxB,CAAT,CAAJ;AADkC;AAElC,iBAAKm7B,iBAAL,CAAuBH,MAAvB;AACH,SA/BG;;AAiCJ,mCAA2B,4BAAUh7B,CAAV,EAAa;AAAA;;AAAA;;AACpC,gBAAIg7B,iCAAS,KAAKC,kBAAL,CAAwBj7B,CAAxB,CAAT,CAAJ;;AADoC;AAGpC,iCAAQ;AACJlU,sBAAM,oDACAkvC,OAAO5sB,MAAP,CAAc,MAAd,CADA,GACwB,sCADxB,GAEA,kDAHF;AAIJ/d,yBAAS,QAJL;AAKJG,6BAAa,IALT;AAMJU,iCAAiB,2BAAM;AAAA;AAAA;;AACnB8pC,2BAAO/vC,EAAP,CAAU,WAAV,EAAuB,YAAY;AAAA;AAAA;;AAC/BR,yCAAOgC,OAAP,CAAe,SAAf,EAA0B;AACtBG,kCAAM,IADgB;AAEtBd,kCAAM,kBAFgB;AAGtBY,kCAAM,SAHgB;AAItBC,qCAAS;AAJa,yBAA1B;AAD+B;AAO/B,6BAAK2M,MAAL;AACH,qBARD,EAQG,MARH,EAQSpP,OART;AASH;AAhBG,aAAR;AAkBH;AAtDG,KADuB;;AA0D/B;;;;;AAKAkI,gBAAY,oBAAU8O,QAAV,EAAoB;AAAA;AAAA;;AAC5B,aAAK3D,KAAL,GAAa2D,SAASrN,IAAtB;AAD4B;AAE5B,aAAKunC,OAAL,GAAe,KAAf;;AAF4B;AAI5B,aAAKz2B,UAAL,GAAkB,IAAI6f,0BAAJ,EAAlB;AAJ4B;AAK5B,aAAK7f,UAAL,CAAgB1Z,EAAhB,CAAmB,WAAnB,EAAgC,YAAY;AAAA;AAAA;;AACxC,iBAAKmwC,OAAL,GAAe,IAAf;AADwC;AAExC,iBAAK9hC,MAAL;AAFwC;AAGxC,iBAAK7M,OAAL,CAAa,WAAb;AACH,SAJD,EAIG,IAJH,EAIS4R,KAJT,CAIe;AACXxB,oBAAQ,KAAKU,KAAL,CAAWjB;AADR,SAJf;;AAL4B;AAa5B,aAAKunB,cAAL,GAAsB,IAAI9R,wBAAJ,CAAmB;AACrCpN,wBAAY,KAAKA,UADoB;AAErChb,wBAAY;AAFyB,SAAnB,CAAtB;AAIH,KAhF8B;;AAkF/B2P,YAAQ,kBAAY;AAAA;AAAA;;AAChB,YAAI,CAAC,KAAK8hC,OAAV,EAAmB;AAAA;AAAA;;AACf;AACH,SAFD;AAAA;AAAA;;AADgB;AAKhB,aAAKxwC,GAAL,CAAS+F,IAAT,CAAc,0BAAmB;AAC7B0qC,qBAAS,KAAK12B,UAAL,CAAgB2f,OAAhB,EADoB;AAE7BgX,oBAAQA;AAFqB,SAAnB,CAAd;;AALgB;AAUhB,aAAKhuC,CAAL,CAAO,iBAAP,EAA0B+S,OAA1B,CAAkC;AAC9B+L,uBAAW,KAAK9e,CAAL,CAAO,kBAAP,CADmB;AAE9B6rB,uBAAW;AAFmB,SAAlC;;AAVgB;AAehB,aAAK0K,cAAL,CAAoBjX,UAApB,CAA+B,KAAKtf,CAAL,CAAO,uBAAP,CAA/B,EAAgEgM,MAAhE;;AAfgB;AAiBhB,eAAO,IAAP;AACH,KApG8B;;AAsG/B2hC,wBAAoB,4BAAUj7B,CAAV,EAAa;AAAA;;AAC7B,YAAI2P,8BAAM,sBAAE3P,EAAEO,aAAJ,EAAmBmX,OAAnB,CAA2B,sBAA3B,EAAmD5T,IAAnD,CAAwD,KAAxD,CAAN,CAAJ;AAD6B;AAE7B,eAAO,KAAKa,UAAL,CAAgB9M,GAAhB,CAAoB8X,GAApB,CAAP;AACH,KAzG8B;;AA2G/BwrB,uBAAmB,2BAAUH,MAAV,EAAkB;AAAA;AAAA;;AACjC,YAAI,CAAC,KAAKO,gBAAV,EAA4B;AAAA;AAAA;;AACxB,iBAAKA,gBAAL,GAAwB,IAAIC,0BAAJ,CAAqB;AACzC1wC,oBAAI,sBAAE,qBAAF,CADqC;AAEzCnB,4BAAY;AAF6B,aAArB,EAGrBsB,EAHqB,CAGlB,SAHkB,EAGP,UAAUsS,KAAV,EAAiB;AAAA;AAAA;;AAC9B,oBAAI,CAAC,KAAKoH,UAAL,CAAgB9M,GAAhB,CAAoB0F,MAAMoS,GAA1B,CAAL,EAAqC;AAAA;AAAA;;AACjC,yBAAKhL,UAAL,CAAgBlF,GAAhB,CAAoBlC,KAApB;AACH,iBAFD;AAAA;AAAA;AAD8B;AAI9B,qBAAKjE,MAAL;AACH,aARuB,EAQrB,IARqB,CAAxB;AASH,SAVD;AAAA;AAAA;AADiC;AAYjC,aAAKiiC,gBAAL,CAAsBh+B,KAAtB,GAA8B,+DAAU,IAAV,CAA9B;AAZiC;AAajC,aAAKg+B,gBAAL,CAAsBjiC,MAAtB;AACH;AAzH8B,CAAZ,CAAnB,CAAJ;;kBA4HeshC,gB;;;;;;AC3If;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;;;;;ACrBA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,EAAW;AACrE;AACA;AACA,CAAC,2BAA2B;;AAE5B;;AAEA;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,EAAW;AACrE;AACA;AACA,CAAC,2BAA2B;;AAE5B;;AAEA;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;AC1ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,EAAW;AACrE;AACA;AACA,CAAC,2BAA2B;;AAE5B;;AAEA;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,EAAW;AACrE;AACA;AACA,CAAC,2BAA2B;;AAE5B;;AAEA;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,EAAW;AACrE;AACA;AACA,CAAC,2BAA2B;;AAE5B;;AAEA;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;AC1ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,EAAW;AACrE;AACA;AACA,CAAC,2BAA2B;;AAE5B;;AAEA;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,EAAW;AACrE;AACA;AACA,CAAC,2BAA2B;;AAE5B;;AAEA;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,EAAW;AACrE;AACA;AACA,CAAC,2BAA2B;;AAE5B;;AAEA;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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AA;AAAA;;AAC9B,iBAAK/a,GAAL,CAASQ,KAAT,CAAe,MAAf;AAD8B;AAE9B,iBAAKqB,OAAL,CAAa,SAAb,EAAwB8Q,KAAxB;AACH,SAHD,EAGG,IAHH,EAGS/S,GAHT,CAGa,SAHb,EAGwB,IAHxB,EAG8B,IAH9B,EAGoCS,EAHpC,CAGuC,SAHvC,EAGkD,UAAUmR,GAAV,EAAe;AAAA;AAAA;;AAC7D,iBAAK9O,CAAL,CAAO,8BAAP,EAAuCxB,IAAvC,CAA4CsQ,IAAItP,YAAJ,CAAiBC,OAA7D;AAD6D;AAE7D,iBAAKO,CAAL,CAAO,uBAAP,EAAgC2P,YAAhC,CAA6C,IAA7C;AACH,SAND,EAMG,IANH,EAMS+G,IANT;AAOH,KAlG8B;;AAoG/B03B,2BAAuB,iCAAY;AAAA;AAAA;;AAC/B,eAAO,KAAKpuC,CAAL,CAAO,mDAAP,EAA4DwW,IAA5D,CAAiE,OAAjE,CAAP;AACH;AAtG8B,CAAZ,CAAnB,CAAJ;;kBAyGe03B,gB;;;;;;ACzHf,cAAc,mBAAO,CAAC,GAA0B;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACtIA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;AC9BA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,gBAAgB;AACjC,mBAAmB,gBAAgB;AACnC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChGa;;AAEb,WAAW,mBAAmB;AAC9B;;;;;;;;ACHa;;AAEb,mBAAmB,mBAAO,CAAC,EAAe;;AAE1C;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;;;;;;;;ACfa;;AAEb,cAAc,mBAAO,CAAC,GAAW;;AAEjC;AACA;;AAEA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;;AAEA,2BAA2B,gBAAgB;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,iDAAiD,EAAE;AACnD;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,kDAAkD,EAAE;AACpD;AACA,SAAS;AACT;;AAEA;AACA,mBAAmB,mBAAmB;AACtC;AACA;;AAEA,uBAAuB,oBAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,OAAO,WAAW,aAAa;AACjD;;AAEA,mBAAmB,kBAAkB;AACrC;AACA;;AAEA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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xwB,UADL,CACgB,KAAKtf,CAAL,OAAW,KAAK2vC,KAAhB,cADhB,EAEK3jC,MAFL;;AAbgB;AAiBhB,eAAO,IAAP;AACH;AAlEmC,CAAZ,CAAxB,CAAJ;;kBAqEe2iC,iB;;;;;;ACjKf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAA0C;AAClD;AACA,QAAQ,iCAAO,CAAC,sBAAQ,EAAE,uBAAQ,CAAC,oCAAE,OAAO;AAAA;AAAA;AAAA,oGAAC;AAC7C,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA,4CAA4C;AAC5C,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB,0BAA0B;AAC3C;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;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,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA,+CAA+C,qEAAqE;AACpH;AACA,8EAA8E,qEAAqE;AACnJ;AACA,+CAA+C,qEAAqE;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,uEAAuE;AACtH;AACA;AACA,gFAAgF,yEAAyE;AACzJ;AACA,+CAA+C,uEAAuE;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,uEAAuE;AACtH;AACA;AACA,gFAAgF,yEAAyE;AACzJ;AACA,+CAA+C,uEAAuE;AACtH;AACA;;AAEA;AACA;AACA;AACA,gFAAgF,wFAAwF;AACxK;AACA;;AAEA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA,6DAA6D,0DAA0D;AACvH;AACA;AACA,6DAA6D,sEAAsE;AACnI;AACA;AACA,6DAA6D,0DAA0D;AACvH;AACA;AACA,6DAA6D,0DAA0D;AACvH;AACA;AACA,aAAa;;AAEb;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;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACrB;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA,0CAA0C,mDAAmD;AAC7F;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,+CAA+C,UAAU;AACzD;AACA;;AAEA;;AAEA,+CAA+C,UAAU;AACzD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE;;AAElE;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,2BAA2B,QAAQ,OAAO;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,qBAAqB;AACrB;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;;AAEjB;;AAEA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA,yBAAyB,OAAO;AAChC;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,iBAAiB;;AAEjB;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,8DAA8D;AAC9D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iEAAiE,aAAa;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;;AAEb;AACA;;AAEA,mFAAmF,IAAI;AACvF;AACA,iFAAiF,IAAI,8BAA8B;AACnH;AACA,qBAAqB;AACrB,iBAAiB;;;AAGjB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;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;;AAEA;AACA;AACA,wCAAwC;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA,kCAAkC;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC;AAClC;;AAEA,mBAAmB;AACnB;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;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;;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,mBAAmB,gDAAgD;AACnE,qBAAqB;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;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;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA;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;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,SAAS;AACT;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,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AA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E;AACA;;;;;;;;ACpGA;AAAA;AAAA;AAAA;AAAyC;AACP;;AAElC;AACA;AACA;AACe;AACf,SAAS,2DAAM;AACf;AACA;AACA,WAAW,+DAAU;AACrB;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA,iBAAiB;AACjB;AACA,UAAU,+DAAU;AACpB;AACA;AACA;;;;;;;;ACrBA;AAAA;AAAA;AACA;AACA;AACe;AACf;AACA;AACA;;;;;;;;ACNA;AAAA;AAAA;AAAgC;;AAEhC;AACe;AACf,iBAAiB,+DAAC;AAClB;AACA;AACA;;;;;;;;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;AA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CA;AACA,mCAAmC,cAAc;AACjD;AACA,mCAAmC,cAAc;AACjD,2DAA2D,cAAc;AACzE;AACA,+BAA+B,cAAc;AAC7C,mBAAmB,cAAc;AACjC,+BAA+B,cAAc;AAC7C,+BAA+B,cAAc;AAC7C;AACA,qBAAqB,cAAc;AACnC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,0CAA0C,KAAK,EAAE;AACjD,8CAA8C,IAAI,OAAO,IAAI;;AAE7D;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B,YAAY;;AAEzC;AACA;;AAEA;;AAEA;AACA;AACA;AACA,aAAa;AACb,YAAY;AACZ,YAAY;AACZ,cAAc;AACd;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;;AAEA;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;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,MAAM;AAClB,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB;;AAExB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,MAAM;AAClB,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,MAAM;AAClB,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY;AACZ,YAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,YAAY,SAAS;AACrB,YAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,YAAY,SAAS;AACrB,YAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,SAAS;AACrB,YAAY,OAAO;AACnB,YAAY;AACZ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA,YAAY,aAAa;AACzB,YAAY,QAAQ;AACpB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;;AAGA;AACA;AACA;AACA,YAAY,aAAa;AACzB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,mBAAmB,aAAa;AAClD;;AAEA;;AAEA,yBAAyB;AACzB;AACA;;AAEA,qBAAqB;AACrB;;AAEA,wBAAwB;;AAExB,gCAAgC;AAChC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC;AAClC;AACA;AACA,iCAAiC,UAAU;AAC3C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,WAAW;;AAEnC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;;AAGA;AACA;;AAEA,0CAA0C,WAAW;AACrD,0CAA0C,WAAW;;AAErD,iCAAiC,WAAW;;AAE5C;AACA;;AAEA,qEAAqE,WAAW;;AAEhF;;AAEA;AACA,0BAA0B,WAAW;AACrC,6CAA6C,OAAO;AACpD;;AAEA;AACA;AACA,2BAA2B,WAAW;AACtC,2BAA2B,wBAAwB;AACnD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oCAAoC,OAAO;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mCAAmC,cAAc;AACjD;AACA;AACA,+CAA+C,cAAc;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,yBAAyB,OAAO;;AAEhC;AACA;AACA;;AAEA,wBAAwB,OAAO;;AAE/B;AACA,uCAAuC,OAAO;;AAE9C;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,OAAO;AAC7B;;AAEA;AACA;AACA,sBAAsB,OAAO;AAC7B;;AAEA;AACA;;AAEA,sBAAsB,cAAc;;AAEpC;AACA,yCAAyC,cAAc;;AAEvD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,sFAAsF,cAAc;;AAEpG;;AAEA;AACA,wBAAwB,eAAe;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,0CAA0C,WAAW;;AAErD,iCAAiC,WAAW;;AAE5C;AACA;;AAEA,qEAAqE,WAAW;;AAEhF;;AAEA;AACA;AACA,0BAA0B,WAAW;AACrC;AACA,yCAAyC,OAAO;AAChD;;AAEA;AACA;AACA,0CAA0C,WAAW;AACrD;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,WAAW;AAChC;AACA,yCAAyC,OAAO;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA,sEAAsE,OAAO;AAC7E,wDAAwD,WAAW;;AAEnE;AACA;AACA,6BAA6B;AAC7B;;AAEA;AACA;;;AAGA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,oCAAoC,OAAO;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gCAAgC,OAAO;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,6BAA6B,QAAQ;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA,GAAG;;AAEH,kCAAkC,QAAQ;AAC1C;;AAEA;AACA;AACA;AACA,GAAG;AACH,8BAA8B,OAAO;AACrC;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA,+BAA+B;AAC/B;;;AAGA;AACA;AACA;;AAEA,iCAAiC,QAAQ;AACzC;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA,qCAAqC,OAAO;AAC5C,2CAA2C,UAAU;AACrD;;AAEA;AACA,+BAA+B,QAAQ;AACvC;AACA,kCAAkC,UAAU;;AAE5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA,0BAA0B,UAAU;;AAEpC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B,YAAY;;AAEzC;AACA;AACA,GAAG;AACH;;;AAGA;AACA;;AAEA,mCAAmC,QAAQ;;AAE3C,wCAAwC,aAAa;;AAErD,iDAAiD,UAAU;;AAE3D;;AAEA,qCAAqC,QAAQ;AAC7C;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB,GAAG;AAC5B,6BAA6B,GAAG,yBAAyB,GAAG;AAC5D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qCAAqC,cAAc;AACnD;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA,mCAAmC,QAAQ;;AAE3C;;AAEA,wCAAwC,aAAa;;AAErD,iDAAiD,UAAU;;AAE3D;AACA;;AAEA,eAAe,mBAAmB;AAClC;;AAEA,oEAAoE,UAAU;;AAE9E;;AAEA,gCAAgC,QAAQ;AACxC,0CAA0C,OAAO;AACjD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;;AAExB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oCAAoC,QAAQ;AAC5C;AACA,6CAA6C,OAAO;AACpD;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;AACA,+BAA+B,OAAO;AACtC;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA,mBAAmB;AACnB,mBAAmB;AACnB,mBAAmB;;AAEnB;AACA,sBAAsB;AACtB;AACA,sBAAsB;AACtB,sBAAsB;AACtB,0BAA0B;AAC1B,2BAA2B;AAC3B,uBAAuB;;AAEvB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,gDAAgD,WAAW;AAC3D;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,wCAAwC;AACxC;;AAEA;AACA;AACA;;AAEA;AACA,8BAA8B,YAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iCAAiC,WAAW;AAC5C,uDAAuD,OAAO;AAC9D;AACA;AACA;;AAEA;AACA;AACA,iCAAiC,WAAW;AAC5C,4CAA4C,OAAO;AACnD;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,YAAY;;AAE/B;AACA,8CAA8C,gBAAgB;AAC9D;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,aAAa,YAAY;AACzB;AACA,yBAAyB,gBAAgB;AACzC,oBAAoB,WAAW;;AAE/B;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA,sDAAsD,cAAc;;AAEpE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,cAAc;;AAEpC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,gBAAgB,cAAc;;AAE9B;;AAEA,iCAAiC,cAAc;;AAE/C;AACA,eAAe,aAAa;;AAE5B;AACA;;AAEA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,+CAA+C,UAAU;;AAEzD;AACA;AACA;AACA;;AAEA;;AAEA;AACA,0BAA0B,UAAU;;AAEpC;AACA;;AAEA,oBAAoB,UAAU;;AAE9B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,cAAc;;AAEhC;AACA,oDAAoD,cAAc;;AAElE,gDAAgD,cAAc;;AAE9D;AACA;AACA,eAAe,aAAa;;AAE5B;AACA,2CAA2C,OAAO;;AAElD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oBAAoB;AACpD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,+CAA+C,OAAO;;AAEtD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,OAAO;;AAE/B;AACA;AACA,2CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;;AAE3B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA,6BAA6B;AAC7B;AACA,aAAa,sBAAsB;AACnC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,kBAAkB,cAAc;;AAEhC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,kDAAkD,cAAc;AAChE,wBAAwB,OAAO;AAC/B;;AAEA,gBAAgB,cAAc;;AAE9B,eAAe,aAAa;;AAE5B;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB,WAAW;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,WAAW;;AAElC;;AAEA,6CAA6C,WAAW;;AAExD,SAAS;AACT;AACA,qBAAqB,WAAW;;AAEhC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gDAAgD,OAAO;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;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,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA,gDAAgD,cAAc;;AAE9D;AACA;;AAEA;AACA,eAAe,aAAa;;AAE5B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,gCAAgC,uBAAuB;;AAEvD;AACA;AACA,gCAAgC,uBAAuB;;AAEvD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA,8BAA8B,OAAO;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA,mDAAmD,OAAO;;AAE1D;AACA;AACA,2CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;;AAE3B;AACA;AACA;AACA,+BAA+B,OAAO;AACtC,KAAK;AACL;AACA,+BAA+B,OAAO;AACtC;;AAEA,sEAAsE,OAAO;AAC7E;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,cAAc;;AAEtC,oDAAoD,cAAc;AAClE,wDAAwD,cAAc;AACtE,gDAAgD,cAAc;;AAE9D,uBAAuB,WAAW;AAClC,6CAA6C,cAAc;AAC3D;AACA;AACA;AACA;;AAEA,0BAA0B,cAAc,EAAE;AAC1C,uEAAuE,cAAc;AACrF,eAAe,aAAa;AAC5B;;AAEA,6BAA6B,0BAA0B;AACvD,kCAAkC,+BAA+B;AACjE;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,mBAAmB,cAAc;;AAEjC;;AAEA,yCAAyC,cAAc;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2DAA2D,cAAc;;AAEzE,eAAe,aAAa;;AAE5B;;AAEA,4CAA4C;AAC5C,4CAA4C;AAC5C;AACA;AACA;;AAEA;;AAEA,qBAAqB;AACrB;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,qBAAqB,2DAA2D;;AAEhF;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,wBAAwB,cAAc;AACtC,6CAA6C,cAAc;;AAE3D;;AAEA,iDAAiD,cAAc;;AAE/D;AACA;;AAEA,mBAAmB,cAAc;;AAEjC;;AAEA,yDAAyD,cAAc;;AAEvE;;AAEA;;AAEA,kBAAkB,cAAc;;AAEhC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0BAA0B,EAAE;;AAEvD;;;AAGA,oCAAoC,KAAK;AACzC,uCAAuC,KAAK;;AAE5C;AACA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,4BAA4B,cAAc;;AAE1C,oCAAoC,cAAc;;AAElD,kDAAkD,cAAc;;AAEhE;;AAEA;AACA;AACA,iBAAiB,aAAa;;AAE9B,GAAG;;AAEH;AACA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC,KAAK;AACL;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA,uDAAuD,cAAc;AACrE,iBAAiB,aAAa;;AAE9B,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gCAAgC,cAAc;;AAE9C;;AAEA,iDAAiD,cAAc;;AAE/D;;AAEA;AACA,sCAAsC,cAAc;;AAEpD;AACA,uEAAuE,cAAc;;AAErF;AACA,oCAAoC,cAAc;;AAElD;AACA,kBAAkB,cAAc;AAChC;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA,8BAA8B,cAAc;AAC5C;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,qCAAqC,cAAc;AACnD;AACA,sCAAsC,cAAc;AACpD,eAAe,aAAa;;AAE5B;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;AACH,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,uBAAuB,yCAAyC;AAChE;AACA,qBAAqB,yCAAyC;AAC9D,qBAAqB,4CAA4C;;AAEjE;AACA;AACA;AACA;AACA,GAAG;;AAEH,gCAAgC,oBAAoB;AACpD,mDAAmD,OAAO;;AAE1D;AACA,uCAAuC,OAAO;AAC9C;;AAEA,uBAAuB,wCAAwC;AAC/D,eAAe,iBAAiB;AAChC,yBAAyB,0DAA0D;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,yBAAyB,yCAAyC;AAClE;AACA,uBAAuB,yCAAyC;AAChE;AACA,qBAAqB,4CAA4C;AACjE,qBAAqB,4CAA4C;;AAEjE;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,WAAW;;AAEhC;AACA;AACA,yDAAyD,WAAW;;AAEpE;;AAEA;AACA,sBAAsB,WAAW;;AAEjC;AACA,mBAAmB,WAAW;;AAE9B;AACA;;AAEA;AACA;AACA;;AAEA,gDAAgD,OAAO;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,6BAA6B,cAAc;AAC3C;AACA;;AAEA;AACA;AACA,+BAA+B,cAAc;AAC7C;;AAEA,iDAAiD,cAAc;AAC/D;AACA,yBAAyB,cAAc;;AAEvC,gDAAgD,cAAc;;AAE9D;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;;AAEL,WAAW;AACX;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;;AAEP;;AAEA,gCAAgC,aAAa;;AAE7C,qDAAqD,aAAa;AAClE;AACA,6BAA6B,OAAO;;AAEpC;;AAEA;AACA;AACA;;AAEA,8BAA8B,OAAO;AACrC;;AAEA,gCAAgC,OAAO;AACvC,iDAAiD,OAAO;;AAExD;AACA,4BAA4B,OAAO;AACnC,gCAAgC,UAAU;AAC1C,4BAA4B,OAAO;;AAEnC,iDAAiD,OAAO;AACxD;AACA,2BAA2B,OAAO;;AAElC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,UAAU,gDAAgD;AAC1D;AACA;AACA,yDAAyD,UAAU;;AAEnE;AACA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,qBAAqB;AACtC;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,iFAAiF,OAAO;AACxF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,YAAY,MAAM;AAClB;AACA;;AAEA;AACA;AACA,aAAa,WAAW;;AAExB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,0BAA0B,cAAc;;AAExC,gBAAgB,kDAAkD;;AAElE;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA,mDAAmD,cAAc;;AAEjE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,QAAQ;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA,2DAA2D,OAAO;;AAElE;AACA;AACA;;AAEA;;AAEA;;AAEA,eAAe,SAAS,OAAO,iBAAiB;;AAEhD,oBAAoB,WAAW,EAAE;AACjC,mCAAmC,+BAA+B,EAAE;;;AAGpE;AACA;;AAEA,kDAAkD,cAAc;;AAEhE;;AAEA;AACA;;AAEA;AACA,oBAAoB,iCAAiC;AACrD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA,+DAA+D,OAAO;;AAEtE;AACA;AACA;AACA;;AAEA,gBAAgB,uBAAuB;AACvC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,2BAA2B,cAAc;;AAEzC;AACA;AACA;;AAEA,kEAAkE,OAAO;;AAEzE;;AAEA;;AAEA;AACA;;AAEA,8EAA8E,YAAY;;AAE1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,yBAAyB;AACzC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oDAAoD,cAAc;AAClE,eAAe,cAAc,EAAE;AAC/B,yBAAyB,cAAc;AACvC,wDAAwD,cAAc;AACtE,gDAAgD,cAAc;;AAE9D;AACA;;AAEA,iCAAiC,cAAc;AAC/C,iCAAiC,cAAc;AAC/C,+CAA+C,cAAc;;AAE7D;AACA,kEAAkE,OAAO;AACzE;AACA;AACA;AACA,kBAAkB,8CAA8C;AAChE;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,yCAAyC;AACzD;AACA,gBAAgB,0CAA0C;AAC1D;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oDAAoD,cAAc;AAClE,eAAe,cAAc,EAAE;AAC/B,yBAAyB,cAAc;AACvC,wDAAwD,cAAc;AACtE,gDAAgD,cAAc;;AAE9D;AACA;;AAEA,iCAAiC,cAAc;AAC/C,iCAAiC,cAAc;AAC/C,+CAA+C,cAAc;;AAE7D;AACA,kEAAkE,OAAO;AACzE;AACA;AACA;AACA,kBAAkB,8CAA8C;AAChE;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,yCAAyC;AACzD;AACA,gBAAgB,0CAA0C;AAC1D;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oDAAoD,cAAc;AAClE,eAAe,cAAc,EAAE;AAC/B,yBAAyB,cAAc;AACvC,wDAAwD,cAAc;AACtE,gDAAgD,cAAc;;AAE9D;AACA;;AAEA,iCAAiC,cAAc;AAC/C,iCAAiC,cAAc;AAC/C,+CAA+C,cAAc;;AAE7D;AACA,kEAAkE,OAAO;AACzE;AACA;AACA;AACA,kBAAkB,8CAA8C;AAChE;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,0CAA0C;AAC1D;AACA,gBAAgB,2CAA2C;AAC3D;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,6DAA6D,OAAO;AACpE,mBAAmB,kBAAkB;AACrC;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA,iDAAiD,kBAAkB;AACnE,iDAAiD,mBAAmB;;AAEpE;AACA;AACA,iCAAiC,kBAAkB;AACnD,iCAAiC,mBAAmB;AACpD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0DAA0D,cAAc;AACxE,eAAe,cAAc,EAAE;;AAE/B;AACA;AACA;AACA;AACA,kBAAkB,oDAAoD;AACtE;AACA;;AAEA,gDAAgD,cAAc;;AAE9D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,mCAAmC,OAAO;AAC1C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB,mBAAmB;AAC5C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,4CAA4C;AAC9D;AACA;AACA,kBAAkB,wCAAwC;AAC1D;;AAEA;;AAEA;AACA,kBAAkB,yCAAyC;AAC3D;AACA;AACA,kBAAkB,6CAA6C;AAC/D;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,2CAA2C,YAAY,EAAE;;AAEzD;AACA;AACA;AACA;AACA;;AAEA,oDAAoD,cAAc;AAClE,eAAe,cAAc,EAAE;AAC/B,yBAAyB,cAAc;AACvC,gDAAgD,cAAc;;AAE9D;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,6CAA6C,YAAY,EAAE;;AAE3D;AACA;AACA;AACA;AACA;;AAEA,oDAAoD,cAAc;AAClE,eAAe,cAAc,EAAE;AAC/B,yBAAyB,cAAc;AACvC,gDAAgD,cAAc;;AAE9D;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,+BAA+B,cAAc;AAC7C,gDAAgD,cAAc;;AAE9D;AACA;;AAEA;AACA,qBAAqB,cAAc;;AAEnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU,WAAW;AACrB;AACA,2CAA2C,OAAO;AAClD;AACA,qBAAqB,cAAc;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,UAAU,WAAW;AACrB;AACA,2CAA2C,OAAO;AAClD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,WAAW;AACvB;AACA,6CAA6C,OAAO;AACpD;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA,8BAA8B,cAAc;;AAE5C;AACA;AACA,UAAU,WAAW;AACrB;AACA,2CAA2C,OAAO;AAClD;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,kBAAkB,2CAA2C;AAC7D;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB,cAAc;AACvC,oDAAoD,cAAc;AAClE,wDAAwD,cAAc;AACtE,gDAAgD,cAAc;;AAE9D;AACA;;AAEA;AACA,qBAAqB,cAAc;;AAEnC;AACA;AACA;AACA;AACA,+BAA+B,0BAA0B;AACzD,oCAAoC,+BAA+B;AACnE;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,cAAc;;AAEtC,0DAA0D,cAAc;AACxE,oDAAoD,cAAc;AAClE,wDAAwD,cAAc;AACtE,gDAAgD,cAAc;;AAE9D,uBAAuB,WAAW;AAClC,6CAA6C,cAAc;AAC3D,6CAA6C,cAAc;AAC3D;AACA;AACA;AACA;;AAEA,0BAA0B,cAAc,EAAE;AAC1C,mBAAmB,cAAc;AACjC;;AAEA;AACA,qEAAqE,cAAc;;AAEnF;AACA,oCAAoC,+BAA+B;;AAEnE;AACA;AACA,8CAA8C;AAC9C;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;;AAGA;AACA,iDAAiD,EAAE,gCAAgC,KAAK,6CAA6C,KAAK;AAC1I,kCAAkC,KAAK;;;AAGvC;AACA;;AAEA,kDAAkD,cAAc;;AAEhE;;AAEA,8BAA8B,cAAc;;AAE5C;;AAEA;AACA,8DAA8D,cAAc;;AAE5E;AACA;AACA,0CAA0C,cAAc;;AAExD;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP,kBAAkB,yCAAyC;AAC3D;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA,8CAA8C,cAAc;;AAE5D;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP,kBAAkB,yCAAyC;AAC3D;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA,qBAAqB;AACrB;AACA;;;AAGA;AACA;;AAEA,4BAA4B,cAAc;;AAE1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,cAAc;;AAE7B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA,+BAA+B,QAAQ,QAAQ;;;AAG/C,mCAAmC,IAAI,OAAO,IAAI,GAAG;AACrD,mCAAmC,KAAK,EAAE;;;AAG1C;AACA;;AAEA,kDAAkD,cAAc;;AAEhE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,sBAAsB;AACtC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;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,iBAAiB,qBAAqB;AACtC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;;AAEA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B,OAAO;AACpC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,YAAY,MAAM;AAClB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY;AACZ;;AAEA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iCAAiC,WAAW;AAC5C;AACA;;AAEA;AACA,GAAG;;AAEH;;AAEA;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;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iCAAiC,WAAW;AAC5C;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA,YAAY;AACZ,aAAa;AACb;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iCAAiC,WAAW;AAC5C;AACA;;AAEA;AACA,GAAG;;AAEH;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6CAA6C;AAC7C,kDAAkD;AAClD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAkB;AAC7B;AACA,WAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB;;AAEA;AACA;;AAEA,iBAAiB,kEAAkE;AACnF,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,YAAY,MAAM;AAClB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,YAAY,MAAM;AAClB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,YAAY;AACZ;;AAEA;AACA;AACA;AACA;;AAE6B;;;;;;;;AC3iK7B;AAAA;AAAA;AAAoC;;AAEpC;;;AAGA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mDAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA,qCAAqC,OAAO;AAC5C,2CAA2C,UAAU;AACrD;;AAEA;;AAEA;AACA;AACA,+BAA+B,QAAQ;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,UAAU;;AAExC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,4BAA4B,UAAU;;AAEtC;AACA;AACA;;AAEA,oBAAoB,mBAAmB;;AAEvC,0DAA0D,UAAU;;AAEpE;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEmB;;;;;;;;AC5JnB;AAAA;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;AACsC;AACvB,mHAAU,EAAC;AACJ;AACO;AACQ;AACV;AACG;AACE;AAChC,iC;;;;;;;ACZA;AAAA;AAAA;AACA;AACO;AACP,mC;;;;;;;ACHA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACO;AACP;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0C;;;;;;;ACnKA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2C;;;;;;;ACjCA;AAAA;AAAA;AAAoC;AACpC;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACO;AACP,WAAW,wDAAQ;AACnB;AACA,wC;;;;;;;ACZA;AAAA;AAAA;AAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wCAAwC;AAC5C;AACA;AACA;AACA;AACA;AACA,IAAI,wCAAwC;AAC5C;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA,gBAAgB,QAAQ;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,eAAe,OAAO;AACtB;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA,gFAAgF,yDAAa;AAC7F;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA,CAAC;AAC4B;AAC7B,+C;;;;;;;ACtKA;AAAA;AAAA;AAAA;AAAA;AAAiC;AACuD;AACrC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;AACA,WAAW,SAAS;AACpB;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACO;AACP;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,uEAAuB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,uDAAQ,CAAC,uDAAQ,GAAG,gBAAgB,kBAAkB;AAC9F;AACA;AACA;AACA;AACA;AACA,iBAAiB,oDAAQ;AACzB;AACA;AACA,wCAAwC,uDAAQ,CAAC,uDAAQ,GAAG,gBAAgB,kBAAkB;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wDAAY;AACxB,wCAAwC,uDAAQ,CAAC,uDAAQ,GAAG,gBAAgB,yBAAyB;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,uDAAQ,CAAC,uDAAQ,GAAG,gBAAgB,yBAAyB;AACrG;AACA;AACA;AACA,wCAAwC,uDAAQ,CAAC,uDAAQ,GAAG,gBAAgB,yBAAyB;AACrG,yCAAyC;AACzC;AACA,kBAAkB,oDAAQ,gBAAgB,mDAAO;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,oDAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wDAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA,iCAAiC,mDAAO,eAAe,0DAAc;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wDAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA,iBAAiB,mDAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wDAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,mDAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wDAAY;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;AACA;AACA;AACA;AACA,YAAY,wDAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wDAAY;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,wCAAwC,uDAAQ,CAAC,uDAAQ,GAAG,gBAAgB,kBAAkB;AAC9F,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,wCAAwC,uDAAQ,CAAC,uDAAQ,GAAG,gBAAgB,kBAAkB;AAC9F;AACA;AACA;AACA,yBAAyB;AACzB,wCAAwC,uDAAQ,CAAC,uDAAQ,GAAG,gBAAgB,kBAAkB;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,eAAe;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,UAAU;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,sC;;;;;;;ACxnBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8B;AACE;AACR;AACQ;AACF;AACF;AAC5B,iC;;;;;;;ACNA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAgC;AACE;AACR;AACQ;AACF;AACF;AAC9B,iC;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,sCAAsC,gCAAgC;;AAEtE;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA,yCAAyC,gCAAgC;;AAEzE;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA,+BAA+B;;AAE/B;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,iEAAiE,kCAAkC;;AAEnG;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA,GAAG;;AAEH,CAAC;;;;;;;;;;;ACrWD,IAAI8f,MAAMC,mBAAOA,CAAC,CAAR,CAAV;;AAEA,SAASpb,QAAT,CAAkBqb,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,yEAAgH,ykBAAjH,EAAxB;AACtH,KAAC,IAAIC,kBAAmBP,UAAU,EAAjC,CAAsC,WAAUvjC,MAAV,EAAkB;AAAC,OAAC4jC,iBAAiB,CAAjB,CAAmBD,qBAAqB,uEAArB;AAC9EH,iBAAWA,WAAW,8BAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,uEAArB;AACpBH,iBAAWA,WAAW,+BAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,uEAArB;AACpBH,iBAAWA,WAAW,4BAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,uEAArB;AACpBH,iBAAWA,WAAW,SAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,uEAArB;AACpB,UAAI3jC,OAAOK,eAAX,EAA4B;AAC5B,SAACujC,iBAAiB,CAAjB,CAAmBD,qBAAqB,uEAArB;AACpBH,mBAAWA,WAAW,qCAAtB;AACA,SAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,uEAArB;AACpBH,mBAAWA,WAAW,wCAAtB;AACA,SAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,uEAArB;AACpBH,mBAAWA,WAAW,qBAAtB;AACA,SAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,uEAArB;AACpBH,mBAAWA,WAAYH,IAAIrlB,MAAJ,CAAW,SAAS0lB,aAAa1jC,OAAOC,OAAP,CAAeW,WAAf,EAAtB,IAAsD,EAAtD,GAA2D8iC,UAAtE,CAAvB;AACA,SAACE,iBAAiB,CAAjB,CAAmBD,qBAAqB,uEAArB;AACpBH,mBAAWA,WAAW,GAAtB;AACA,SAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,uEAArB;AACpBH,mBAAWA,WAAYH,IAAIrlB,MAAJ,CAAW,SAAS0lB,aAAa1jC,OAAOpB,IAA7B,IAAqC,EAArC,GAA0C8kC,UAArD,CAAvB;AACA,SAACE,iBAAiB,CAAjB,CAAmBD,qBAAqB,uEAArB;AACpBH,mBAAWA,WAAW,GAAtB;AACA,SAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,uEAArB;AACpBH,mBAAWA,WAAW,IAAtB;AACA,SAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,uEAArB;AACpBH,mBAAWA,WAAW,0BAAtB;AACA,SAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,uEAArB;AACpBH,mBAAWA,WAAYH,IAAIrlB,MAAJ,CAAW,SAAS0lB,aAAa1jC,OAAOC,OAA7B,IAAwC,EAAxC,GAA6CyjC,UAAxD,CAAvB;AACA,SAACE,iBAAiB,CAAjB,CAAmBD,qBAAqB,uEAArB;AACpBH,mBAAWA,WAAW,eAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,mBAAWA,WAAW,iGAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,mBAAWA,WAAW,qCAAtB;AACC;AACDA,iBAAWA,WAAW,QAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,iBAAWA,WAAW,8BAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,iBAAWA,WAAW,gEAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,iBAAWA,WAAYH,IAAIrlB,MAAJ,CAAW,SAAS0lB,aAAa1jC,OAAOG,MAA7B,IAAuC,EAAvC,GAA4CujC,UAAvD,CAAZ,GAAkF,MAA7F;AACA,OAACE,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,iBAAWA,WAAW,IAAX,IAAwBH,IAAI3vB,IAAJ,CAAS,OAAT,EAAkB2vB,IAAIwK,OAAJ,CAAY,CAAC,KAAD,EAAO,WAAP,EAAmB7tC,OAAOE,QAA1B,CAAZ,EAAiD,CAAC,KAAD,EAAO,KAAP,EAAa,IAAb,CAAjD,CAAlB,EAAwF,KAAxF,EAA+F,IAA/F,IAAqG,0BAA7H,IAA2J,GAAtK;AACA,OAAC0jC,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,iBAAWA,WAAYH,IAAIrlB,MAAJ,CAAW,SAAS0lB,aAAa1jC,OAAOC,OAA7B,IAAwC,EAAxC,GAA6CyjC,UAAxD,CAAZ,GAAmF,wBAA9F;AAAoL,KA/C7I,EA+C8Ixf,IA/C9I,CA+CmJ,IA/CnJ,EA+CwJ,YAAY4f,eAAZ,GAA4BA,gBAAgB9jC,MAA5C,GAAmD,OAAOA,MAAP,KAAgB,WAAhB,GAA4BA,MAA5B,GAAmC4H,SA/C9O,CAAD;AA+C4P,GAhDjL,CAgDkL,OAAOoE,GAAP,EAAY;AAACq3B,QAAIU,OAAJ,CAAY/3B,GAAZ,EAAiB23B,kBAAjB,EAAqCC,cAArC,EAAqDC,kBAAkBF,kBAAlB,CAArD;AAA6F,IAAC,OAAOH,QAAP;AAAiB;AAC/ZQ,OAAOC,OAAP,GAAiB/b,QAAjB,C;;;;;;ACnDA,e;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;;;;AACA;;IAAY4lB,W;;AACZ;;IAAYC,e;;;;;;QAGRzzC,W,GAAAA,qB;QACAwzC,W,GAAAA,W;QACAC,e,GAAAA,e;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPJ;;;;AACA;;;;AACA;;IAAYC,I;;AACZ;;IAAYC,M;;AACZ;;IAAYC,O;;;;;;QAGRC,G,GAAAA,a;QACAn1C,I,GAAAA,c;QACAg1C,I,GAAAA,I;QACAC,M,GAAAA,M;QACAC,O,GAAAA,O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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EAAjB,CAAoBD,qBAAqB,oEAArB;AACrBH,iBAAWA,WAAW,0CAAtB;AAA6I,KA5EtG,EA4EuGtf,IA5EvG,CA4E4G,IA5E5G,EA4EiH,yBAAyB4f,eAAzB,GAAyCA,gBAAgB7K,mBAAzD,GAA6E,OAAOA,mBAAP,KAA6B,WAA7B,GAAyCA,mBAAzC,GAA6DrxB,SA5E3P,EA4EqQ,wBAAwBk8B,eAAxB,GAAwCA,gBAAgB5L,kBAAxD,GAA2E,OAAOA,kBAAP,KAA4B,WAA5B,GAAwCA,kBAAxC,GAA2DtwB,SA5E3Y,CAAD;AA4EyZ,GA7E9U,CA6E+U,OAAOoE,GAAP,EAAY;AAACq3B,QAAIU,OAAJ,CAAY/3B,GAAZ,EAAiB23B,kBAAjB,EAAqCC,cAArC,EAAqDC,kBAAkBF,kBAAlB,CAArD;AAA6F,IAAC,OAAOH,QAAP;AAAiB;AAC5jBQ,OAAOC,OAAP,GAAiB/b,QAAjB,C;;;;;;AChFA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,+BAA+B,oBAAoB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA,sBAAsB;AACtB;AACA;;AAEA;AACA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;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;;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,QAAQ,IAA8B;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA,YAAY,IAA6C;AACzD,YAAY,mCAAO;AACnB;AACA;AACA;AACA;AACA,aAAa;AAAA,oGAAC;AACd;AACA;AACA;AACA,CAAC,GAAG;;;;;;;;;;ACtOJ,IAAImb,MAAMC,mBAAOA,CAAC,CAAR,CAAV;;AAEA,SAASpb,QAAT,CAAkBqb,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,wEAA+G,ypBAAhH,EAAxB;AACtH,KAAC,IAAIC,kBAAmBP,UAAU,EAAjC,CAAsC,WAAUvJ,QAAV,EAAoBE,WAApB,EAAiC7lB,QAAjC,EAA2C4lB,aAA3C,EAA0DE,YAA1D,EAAwEJ,KAAxE,EAA+E;AAAC,OAAC6J,iBAAiB,CAAjB,CAAmBD,qBAAqB,sEAArB;AAC3IH,iBAAWA,WAAW,qCAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,sEAArB;AACpBH,iBAAWA,WAAW,MAAX,GAA0BH,IAAI3vB,IAAJ,CAAS,OAAT,EAAkB2vB,IAAIwK,OAAJ,CAAY,CAAC,qBAAD,EAAuB,UAAvB,EAAkC5T,aAAlC,CAAZ,EAA8D,CAAC,KAAD,EAAO,KAAP,EAAa,IAAb,CAA9D,CAAlB,EAAqG,KAArG,EAA4G,IAA5G,CAA1B,GAA+I,GAA1J;AACA,OAAC2J,iBAAiB,CAAjB,CAAmBD,qBAAqB,sEAArB;AACpBH,iBAAWA,WAAW,MAAX,IAA0BH,IAAI3vB,IAAJ,CAAS,OAAT,EAAkB2vB,IAAIwK,OAAJ,CAAY,CAAC,cAAD,EAAgB7T,QAAhB,CAAZ,EAAuC,CAAC,KAAD,EAAO,IAAP,CAAvC,CAAlB,EAAwE,KAAxE,EAA+E,IAA/E,IAAqFqJ,IAAI3vB,IAAJ,CAAS,OAAT,EAAkB2vB,IAAI8M,KAAJ,aAAoBpW,KAApB,OAAlB,EAAiD,IAAjD,EAAuD,IAAvD,CAA/G,IAA+K,GAA1L;AACA,OAAC6J,iBAAiB,CAAjB,CAAmBD,qBAAqB,sEAArB;AACpBH,iBAAWA,WAAW,iCAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,sEAArB;AACpBH,iBAAWA,WAAW,kCAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,sEAArB;AACpBH,iBAAWA,WAAYH,IAAIrlB,MAAJ,CAAW,SAAS0lB,aAAaxJ,WAAtB,IAAqC,EAArC,GAA0CwJ,UAArD,CAAZ,GAAgF,QAA3F;AACA,OAACE,iBAAiB,CAAjB,CAAmBD,qBAAqB,sEAArB;AACpBH,iBAAWA,WAAW,+BAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,sEAArB;AACpBH,iBAAWA,WAAYH,IAAIrlB,MAAJ,CAAW,SAAS0lB,aAAavJ,YAAtB,IAAsC,EAAtC,GAA2CuJ,UAAtD,CAAZ,GAAiF,0BAA5F;AACA,OAACE,iBAAiB,CAAjB,CAAmBD,qBAAqB,sEAArB;AACpBH,iBAAWA,WAAW,MAAX,IAA0B,qCAAmCH,IAAI3vB,IAAJ,CAAS,OAAT,EAAkBW,SAAS1Z,IAAT,CAAc8tB,KAAhC,EAAuC,IAAvC,EAA6C,IAA7C,CAA7D,IAAmH,GAA9H;AACA,OAACmb,iBAAiB,EAAjB,CAAoBD,qBAAqB,sEAArB;AACrB,UAAItvB,SAAS1Z,IAAT,CAAcslB,QAAd,IAA0B5L,SAAS1Z,IAAT,CAAcslB,QAAd,CAAuBhN,GAAjD,IAAwDoB,SAAS1Z,IAAT,CAAc+P,YAA1E,EAAwF;AACxF,SAACk5B,iBAAiB,EAAjB,CAAoBD,qBAAqB,sEAArB;AACrBH,mBAAWA,WAAW,IAAX,IAAwBH,IAAI3vB,IAAJ,CAAS,OAAT,EAAkBW,SAAS1Z,IAAT,CAAc8tB,KAAhC,EAAuC,IAAvC,EAA6C,IAA7C,IAAmD4a,IAAI3vB,IAAJ,CAAS,MAAT,EAAiB,MAAMW,SAAS1Z,IAAT,CAAc+P,YAApB,GAAmC,GAAnC,GAAyC2J,SAAS1Z,IAAT,CAAcslB,QAAd,CAAuBhN,GAAjF,EAAsF,IAAtF,EAA4F,IAA5F,CAA3E,IAAgL,GAA3L;AACA,SAAC2wB,iBAAiB,EAAjB,CAAoBD,qBAAqB,sEAArB;AACrBH,mBAAWA,WAAYH,IAAIrlB,MAAJ,CAAW,SAAS0lB,aAAarvB,SAAS1Z,IAAT,CAAc8tB,KAApC,IAA6C,EAA7C,GAAkDib,UAA7D,CAAZ,GAAwF,MAAnG;AACC,OALD,MAMK;AACL,SAACE,iBAAiB,EAAjB,CAAoBD,qBAAqB,sEAArB;AACrBH,mBAAWA,WAAYH,IAAIrlB,MAAJ,CAAW,SAAS0lB,aAAarvB,SAAS1Z,IAAT,CAAc8tB,KAApC,IAA6C,EAA7C,GAAkDib,UAA7D,CAAvB;AACC;AACDF,iBAAWA,WAAW,cAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,sEAArB;AACrBH,iBAAWA,WAAW,wCAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,sEAArB;AACrBH,iBAAWA,WAAW,yCAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,sEAArB;AACrBH,iBAAWA,WAAYH,IAAIrlB,MAAJ,CAAW,SAAS0lB,aAAarvB,SAAS1Z,IAAT,CAAcgC,OAApC,IAA+C,EAA/C,GAAoD+mC,UAA/D,CAAZ,GAA0F,cAArG;AAAmJ,KAnC5G,EAmC6Gxf,IAnC7G,CAmCkH,IAnClH,EAmCuH,cAAc4f,eAAd,GAA8BA,gBAAgB9J,QAA9C,GAAuD,OAAOA,QAAP,KAAkB,WAAlB,GAA8BA,QAA9B,GAAuCpyB,SAnCrN,EAmC+N,iBAAiBk8B,eAAjB,GAAiCA,gBAAgB5J,WAAjD,GAA6D,OAAOA,WAAP,KAAqB,WAArB,GAAiCA,WAAjC,GAA6CtyB,SAnCzU,EAmCmV,cAAck8B,eAAd,GAA8BA,gBAAgBzvB,QAA9C,GAAuD,OAAOA,QAAP,KAAkB,WAAlB,GAA8BA,QAA9B,GAAuCzM,SAnCjb,EAmC2b,mBAAmBk8B,eAAnB,GAAmCA,gBAAgB7J,aAAnD,GAAiE,OAAOA,aAAP,KAAuB,WAAvB,GAAmCA,aAAnC,GAAiDryB,SAnC7iB,EAmCujB,kBAAkBk8B,eAAlB,GAAkCA,gBAAgB3J,YAAlD,GAA+D,OAAOA,YAAP,KAAsB,WAAtB,GAAkCA,YAAlC,GAA+CvyB,SAnCrqB,EAmC+qB,WAAWk8B,eAAX,GAA2BA,gBAAgB/J,KAA3C,GAAiD,OAAOA,KAAP,KAAe,WAAf,GAA2BA,KAA3B,GAAiCnyB,SAnCjwB,CAAD;AAmC+wB,GApCpsB,CAoCqsB,OAAOoE,GAAP,EAAY;AAACq3B,QAAIU,OAAJ,CAAY/3B,GAAZ,EAAiB23B,kBAAjB,EAAqCC,cAArC,EAAqDC,kBAAkBF,kBAAlB,CAArD;AAA6F,IAAC,OAAOH,QAAP;AAAiB;AACl7BQ,OAAOC,OAAP,GAAiB/b,QAAjB,C;;;;;;ACvCA,yC;;;;;;;;;ACAA,IAAImb,MAAMC,mBAAOA,CAAC,CAAR,CAAV;;AAEA,SAASpb,QAAT,CAAkBqb,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,6EAAoH,8BAArH,EAAxB;AACtH,KAACD,iBAAiB,CAAjB,CAAmBD,qBAAqB,2EAArB;AACpBH,eAAWA,WAAW,iDAAtB;AAAkG,GAFe,CAEd,OAAOx3B,GAAP,EAAY;AAACq3B,QAAIU,OAAJ,CAAY/3B,GAAZ,EAAiB23B,kBAAjB,EAAqCC,cAArC,EAAqDC,kBAAkBF,kBAAlB,CAArD;AAA6F,IAAC,OAAOH,QAAP;AAAiB;AAC/NQ,OAAOC,OAAP,GAAiB/b,QAAjB,C;;;;;;ACLA,yC;;;;;;;;;ACAA,IAAImb,MAAMC,mBAAOA,CAAC,CAAR,CAAV;;AAEA,SAASpb,QAAT,CAAkBqb,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,yEAAgH,4wDAAjH,EAAxB;AACtH,KAAC,IAAIC,kBAAmBP,UAAU,EAAjC,CAAsC,WAAUlgC,WAAV,EAAuBolB,KAAvB,EAA8B;AAAC,OAACmb,iBAAiB,CAAjB,CAAmBD,qBAAqB,uEAArB;AAC1FH,iBAAWA,WAAW,8BAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,uEAArB;AACpBH,iBAAWA,WAAW,+BAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,uEAArB;AACpBH,iBAAWA,WAAW,kEAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,uEAArB;AACpBH,iBAAWA,WAAW,8BAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,uEAArB;AACpBH,iBAAWA,WAAW,sFAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,uEAArB;AACpBH,iBAAWA,WAAW,kBAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,uEAArB;AACpBH,iBAAWA,WAAW,4BAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,uEAArB;AACpBH,iBAAWA,WAAYH,IAAIrlB,MAAJ,CAAW,SAAS0lB,aAAajb,KAAtB,IAA+B,EAA/B,GAAoCib,UAA/C,CAAZ,GAA0E,aAArF;AACA,OAACE,iBAAiB,CAAjB,CAAmBD,qBAAqB,uEAArB;AACpBH,iBAAWA,WAAW,4BAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,uEAArB;AACpBH,iBAAWA,WAAW,iDAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,uEAArB;AACpBH,iBAAWA,WAAW,iDAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,uEAArB;AACpBH,iBAAWA,WAAW,6BAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,iBAAWA,WAAW,kGAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,iBAAWA,WAAW,iDAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,iBAAWA,WAAW,iDAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,iBAAWA,WAAW,6BAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,iBAAWA,WAAW,kGAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,iBAAWA,WAAW,qDAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,iBAAWA,WAAW,qDAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,iBAAWA,WAAW,0BAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,iBAAWA,WAAW,2GAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,iBAAWA,WAAW,oDAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,iBAAWA,WAAW,oDAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,iBAAWA,WAAW,yBAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,iBAAWA,WAAW,yGAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,iBAAWA,WAAW,oDAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,iBAAWA,WAAW,oDAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,iBAAWA,WAAW,2BAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,iBAAWA,WAAW,4GAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,iBAAWA,WAAW,qDAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,iBAAWA,WAAW,qDAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,iBAAWA,WAAW,yBAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,iBAAWA,WAAW,6GAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,iBAAWA,WAAW,mDAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrB,UAAI,CAACtgC,WAAL,EAAkB;AAClB,SAACugC,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,mBAAWA,WAAW,kCAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,mBAAWA,WAAW,0BAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,mBAAWA,WAAW,4BAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,mBAAWA,WAAW,yBAAtB;AACC;AACDA,iBAAWA,WAAW,QAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,iBAAWA,WAAW,8BAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,iBAAWA,WAAW,sDAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,iBAAWA,WAAW,WAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,iBAAWA,WAAW,6EAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,iBAAWA,WAAW,qCAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,iBAAWA,WAAW,6CAAtB;AAAgJ,KA3FzG,EA2F0Gtf,IA3F1G,CA2F+G,IA3F/G,EA2FoH,iBAAiB4f,eAAjB,GAAiCA,gBAAgBzgC,WAAjD,GAA6D,OAAOA,WAAP,KAAqB,WAArB,GAAiCA,WAAjC,GAA6CuE,SA3F9N,EA2FwO,WAAWk8B,eAAX,GAA2BA,gBAAgBrb,KAA3C,GAAiD,OAAOA,KAAP,KAAe,WAAf,GAA2BA,KAA3B,GAAiC7gB,SA3F1T,CAAD;AA2FwU,GA5F7P,CA4F8P,OAAOoE,GAAP,EAAY;AAACq3B,QAAIU,OAAJ,CAAY/3B,GAAZ,EAAiB23B,kBAAjB,EAAqCC,cAArC,EAAqDC,kBAAkBF,kBAAlB,CAArD;AAA6F,IAAC,OAAOH,QAAP;AAAiB;AAC3eQ,OAAOC,OAAP,GAAiB/b,QAAjB,C;;;;;;;;;AC/FA,IAAImb,MAAMC,mBAAOA,CAAC,CAAR,CAAV;;AAEA,SAASpb,QAAT,CAAkBqb,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,8EAAqH,wjCAAtH,EAAxB;AACtH,KAAC,IAAIC,kBAAmBP,UAAU,EAAjC,CAAsC,WAAUrL,kBAAV,EAA8B;AAAC,OAAC0L,iBAAiB,CAAjB,CAAmBD,qBAAqB,4EAArB;AAC1FH,iBAAWA,WAAW,8BAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,4EAArB;AACpBH,iBAAWA,WAAW,+BAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,4EAArB;AACpBH,iBAAWA,WAAW,wEAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,4EAArB;AACpBH,iBAAWA,WAAW,8BAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,4EAArB;AACpBH,iBAAWA,WAAW,sFAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,4EAArB;AACpBH,iBAAWA,WAAW,kBAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,4EAArB;AACpBH,iBAAWA,WAAW,4BAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,4EAArB;AACpBH,iBAAWA,WAAW,+BAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,4EAArB;AACpBH,iBAAWA,WAAW,4BAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,4EAArB;AACpBH,iBAAWA,WAAW,8CAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,4EAArB;AACpBH,iBAAWA,WAAW,qEAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,4EAArB;AACrBH,iBAAWA,WAAW,IAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,4EAArB;AACrBH,iBAAWA,WAAW,8DAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,4EAArB;AACrBH,iBAAWA,WAAW,IAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,4EAArB;AACrBH,iBAAWA,WAAW,0CAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,4EAArB;AACrBH,iBAAWA,WAAW,4BAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,4EAArB;AACrBH,iBAAWA,WAAW,iDAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,4EAArB;AACrBH,iBAAWA,WAAW,eAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,4EAArB;AACrBH,iBAAWA,WAAW,6GAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,4EAArB;AACrBH,iBAAWA,WAAW,mDAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,4EAArB;AACrBH,iBAAWA,WAAW,kCAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,4EAArB;AACrB,UAAIzL,uBAAuB,QAA3B,EAAqC;AACrC,SAAC0L,iBAAiB,EAAjB,CAAoBD,qBAAqB,4EAArB;AACrBH,mBAAWA,WAAW,+BAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,4EAArB;AACrBH,mBAAWA,WAAW,eAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,4EAArB;AACrBH,mBAAWA,WAAW,IAAtB;AACC;AACD,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,4EAArB;AACrBH,iBAAWA,WAAW,4BAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,4EAArB;AACrBH,iBAAWA,WAAW,wBAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,4EAArB;AACrBH,iBAAWA,WAAW,8BAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,4EAArB;AACrBH,iBAAWA,WAAW,sDAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,4EAArB;AACrBH,iBAAWA,WAAW,WAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,4EAArB;AACrBH,iBAAWA,WAAW,mFAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,4EAArB;AACrBH,iBAAWA,WAAW,6BAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,4EAArB;AACrBH,iBAAWA,WAAW,2CAAtB;AAA8I,KAlEvG,EAkEwGtf,IAlExG,CAkE6G,IAlE7G,EAkEkH,wBAAwB4f,eAAxB,GAAwCA,gBAAgB5L,kBAAxD,GAA2E,OAAOA,kBAAP,KAA4B,WAA5B,GAAwCA,kBAAxC,GAA2DtwB,SAlExP,CAAD;AAkEsQ,GAnE3L,CAmE4L,OAAOoE,GAAP,EAAY;AAACq3B,QAAIU,OAAJ,CAAY/3B,GAAZ,EAAiB23B,kBAAjB,EAAqCC,cAArC,EAAqDC,kBAAkBF,kBAAlB,CAArD;AAA6F,IAAC,OAAOH,QAAP;AAAiB;AACzaQ,OAAOC,OAAP,GAAiB/b,QAAjB,C;;;;;;;;;ACtEA,IAAImb,MAAMC,mBAAOA,CAAC,CAAR,CAAV;;AAEA,SAASpb,QAAT,CAAkBqb,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,gEAAuG,gMAAxG,EAAxB;AACtH,KAAC,IAAIC,kBAAmBP,UAAU,EAAjC,CAAsC,WAAU/mC,IAAV,EAAgBd,IAAhB,EAAsBY,IAAtB,EAA4B;AAAC,OAACsnC,iBAAiB,CAAjB,CAAmBD,qBAAqB,8DAArB;AACxFH,iBAAWA,WAAW,MAAX,GAA0BH,IAAI3vB,IAAJ,CAAS,OAAT,EAAkB2vB,IAAIwK,OAAJ,CAAY,CAAC,OAAD,EAAS,mBAAT,aAAsCvxC,IAAtC,CAAZ,EAA2D,CAAC,KAAD,EAAO,KAAP,EAAa,IAAb,CAA3D,CAAlB,EAAkG,KAAlG,EAAyG,IAAzG,CAA1B,GAA4I,GAAvJ;AACA,OAACsnC,iBAAiB,CAAjB,CAAmBD,qBAAqB,8DAArB;AACpBH,iBAAWA,WAAW,sFAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,8DAArB;AACpBH,iBAAWA,WAAW,kBAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,8DAArB;AACpB,UAAInnC,IAAJ,EAAU;AACV,SAAConC,iBAAiB,CAAjB,CAAmBD,qBAAqB,8DAArB;AACpBH,mBAAWA,WAAW,IAAX,GAAwBH,IAAI3vB,IAAJ,CAAS,OAAT,EAAkB2vB,IAAIwK,OAAJ,CAAY,WAASrxC,IAAT,CAAZ,EAA8B,CAAC,IAAD,CAA9B,CAAlB,EAAyD,KAAzD,EAAgE,IAAhE,CAAxB,GAAiG,OAA5G;AACC;AACD,OAAConC,iBAAiB,CAAjB,CAAmBD,qBAAqB,8DAArB;AACpBH,iBAAWA,WAAW,GAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,8DAArB;AACpBH,iBAAWA,WAAYH,IAAIrlB,MAAJ,CAAW,SAAS0lB,aAAahoC,IAAtB,IAA8B,EAA9B,GAAmCgoC,UAA9C,CAAZ,GAAyE,QAApF;AAA6G,KAdtE,EAcuExf,IAdvE,CAc4E,IAd5E,EAciF,UAAU4f,eAAV,GAA0BA,gBAAgBtnC,IAA1C,GAA+C,OAAOA,IAAP,KAAc,WAAd,GAA0BA,IAA1B,GAA+BoL,SAd/J,EAcyK,UAAUk8B,eAAV,GAA0BA,gBAAgBpoC,IAA1C,GAA+C,OAAOA,IAAP,KAAc,WAAd,GAA0BA,IAA1B,GAA+BkM,SAdvP,EAciQ,UAAUk8B,eAAV,GAA0BA,gBAAgBxnC,IAA1C,GAA+C,OAAOA,IAAP,KAAc,WAAd,GAA0BA,IAA1B,GAA+BsL,SAd/U,CAAD;AAc6V,GAflR,CAemR,OAAOoE,GAAP,EAAY;AAACq3B,QAAIU,OAAJ,CAAY/3B,GAAZ,EAAiB23B,kBAAjB,EAAqCC,cAArC,EAAqDC,kBAAkBF,kBAAlB,CAArD;AAA6F,IAAC,OAAOH,QAAP;AAAiB;AAChgBQ,OAAOC,OAAP,GAAiB/b,QAAjB,C;;;;;;;;;AClBA,IAAImb,MAAMC,mBAAOA,CAAC,CAAR,CAAV;;AAEA,SAASpb,QAAT,CAAkBqb,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,iEAAwG,4ZAAzG,EAAxB;AACtH,KAACD,iBAAiB,CAAjB,CAAmBD,qBAAqB,+DAArB;AACpBH,eAAWA,WAAW,2CAAtB;AACA,KAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,+DAArB;AACpBH,eAAWA,WAAW,2CAAtB;AACA,KAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,+DAArB;AACpBH,eAAWA,WAAW,oEAAtB;AACA,KAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,+DAArB;AACpBH,eAAWA,WAAW,2CAAtB;AACA,KAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,+DAArB;AACpBH,eAAWA,WAAW,6CAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+DAArB;AACrBH,eAAWA,WAAW,4EAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,+DAArB;AACrBH,eAAWA,WAAW,uCAAtB;AAAwF,GAdyB,CAcxB,OAAOx3B,GAAP,EAAY;AAACq3B,QAAIU,OAAJ,CAAY/3B,GAAZ,EAAiB23B,kBAAjB,EAAqCC,cAArC,EAAqDC,kBAAkBF,kBAAlB,CAArD;AAA6F,IAAC,OAAOH,QAAP;AAAiB;AACrNQ,OAAOC,OAAP,GAAiB/b,QAAjB,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KCjBA;;AAQA;;;;;AANA;;;;AACA;;;;AACA;;;;AACA;;AACA;;AAKA;;;;AAQA;;;;AAaA;;;;AASA;;;;AAyBA;;;;AAcA;;;;AAQA;;;;AASA;;;;AAgBA;;;;AAYA;;;;AACA;;;;AAQA;;;;AAQA;;;;AACA;;;;AA4DA;;;;AAqBA;;;;;;;;AApNAnpB,iBAAOsD,KAAP,CAAa,OAAb,EAAsB,OAAtB,EAA+B,YAAY;AAAA;AAAA;;AACvChI,qBAAOgC,OAAP,CAAe,cAAf,EAA+By+B,mBAA/B;AACH,CAFD;;AAIA;;;;;AAIA/7B,iBAAOsD,KAAP,CAAa,aAAb,EAA4B,aAA5B,EAA2C,UAAUrC,MAAV,EAAkB;AAAA;AAAA;;AACzD3F,qBAAOgC,OAAP,CAAe,cAAf,EAA+B6+B,yBAA/B,EAAgD;AAC5CE,wBAAgBp7B,OAAOT,MAAP,KAAkB,gBAAlB,8BAAqCS,OAAOP,QAA5C,+BAAuD,KAAvD;AAD4B,KAAhD;AAGH,CAJD;;AAKAV,iBAAOsD,KAAP,CAAa,uBAAb,EAAsC,kBAAtC,EAA0D,UAAUq7B,YAAV,EAAwB;AAAA;AAAA;;AAC9ExC,8BAAgBlX,MAAhB,CAAuB0Z,YAAvB;AACH,CAFD;;AAIA;;;;;AAIA3+B,iBAAOsD,KAAP,CAAa,aAAb,EAA4B,aAA5B,EAA2C,UAAUrC,MAAV,EAAkB;AAAA;AAAA;;AACzD3F,qBAAOgC,OAAP,CAAe,cAAf,EAA+B0mC,yBAA/B,EAAgD,iEAAU,EAAV,CAAhD;AADyD;AAEzD1oC,qBAAOgC,OAAP,CAAe,iBAAf,EAAkC,iBAAlC;AACH,CAHD;;AAKA;;;;;AAIA0C,iBAAOsD,KAAP,CAAa,gBAAb,EAA+B,kBAA/B,EAAmD,UAAUkd,GAAV,EAAevf,MAAf,EAAuB;AAAA;AAAA;;AACtEkkC,6BAAehX,YAAf,CAA4B3N,GAA5B,EAAiC;AAC7B5K,gBAAQ3U,OAAOT,MAAP,KAAkB,QADG;AAE7B4kC,cAAMnkC,OAAOT,MAAP,KAAkB,MAFK;AAG7B0a,sBAAcja,OAAOT,MAAP,KAAkB,cAHH;AAI7BA,gBAAQS,OAAOT;AAJc,KAAjC;AAMH,CAPD;;AAQAR,iBAAOsD,KAAP,CAAa,2BAAb,EAA0C,kBAA1C,EAA8D,UAAUkd,GAAV,EAAepD,QAAf,EAAyBnc,MAAzB,EAAiC;AAAA;AAAA;;AAC3FkkC,6BAAehX,YAAf,CAA4B3N,GAA5B,EAAiC;AAC7BpD,kBAAUA,QADmB;AAE7BnE,gBAAQhY,OAAOT,MAAP,KAAkB,QAFG;AAG7BoV,gBAAQ3U,OAAOT,MAAP,KAAkB,QAHG;AAI7B4kC,cAAMnkC,OAAOT,MAAP,KAAkB,MAJK;AAK7Bya,sBAAcha,OAAOT,MAAP,KAAkB,cALH;AAM7B0a,sBAAcja,OAAOT,MAAP,KAAkB,cANH;AAO7B2a,oBAAYla,OAAOT,MAAP,KAAkB,YAPD;AAQ7B4a,oBAAYna,OAAOT,MAAP,KAAkB;AARD,KAAjC;AAUH,CAXD;;AAaA;;;;;AAIAR,iBAAOsD,KAAP,CAAa,YAAb,EAA2B,QAA3B,EAAqC,UAAU6J,EAAV,EAAclM,MAAd,EAAsB;AAAA;AAAA;;AACvDwkC,yBAAWtX,YAAX,CAAwBhhB,EAAxB,EAA4B;AACxB8L,gBAAQhY,OAAOT,MAAP,KAAkB,QADF;AAExBya,sBAAcha,OAAOT,MAAP,KAAkB,cAFR;AAGxB0a,sBAAcja,OAAOT,MAAP,KAAkB,cAHR;AAIxB2a,oBAAYla,OAAOT,MAAP,KAAkB,YAJN;AAKxB4a,oBAAYna,OAAOT,MAAP,KAAkB;AALN,KAA5B;AAOH,CARD;;AAUA;;;;;AAIAR,iBAAOsD,KAAP,CAAa,EAAb,EAAiB,OAAjB,EAA0B,YAAY;AAAA;AAAA;;AAClChI,qBAAOgC,OAAP,CAAe,cAAf,EAA+BooC,uBAA/B;AACH,CAFD;;AAIA;;;;;AAIA1lC,iBAAOsD,KAAP,CAAa,QAAb,EAAuB,QAAvB,EAAiC,UAAUrC,MAAV,EAAkB;AAAA;AAAA;;AAC/C3F,qBAAOgC,OAAP,CAAe,cAAf,EAA+BsoC,oBAA/B,EAA2C,iEAAU,EAAV,CAA3C;AAD+C;AAE/CtqC,qBAAOgC,OAAP,CAAe,iBAAf,EAAkC,YAAlC;AACH,CAHD;;AAKA;;;;;AAIA0C,iBAAOsD,KAAP,CAAa,WAAb,EAA0B,WAA1B,EAAuC,UAAU0I,OAAV,EAAmB/K,MAAnB,EAA2B;AAAA;AAAA;;AAC9D+kC,wBAAU7X,YAAV,CAAuBniB,OAAvB,EAAgC;AAC5Bo5B,cAAMnkC,OAAOT,MAAP,KAAkB;AADI,KAAhC;AAGH,CAJD;;AAKAR,iBAAOsD,KAAP,CAAa,gBAAb,EAA+B,WAA/B,EAA4C,UAAU0I,OAAV,EAAmBi6B,GAAnB,EAAwBhlC,MAAxB,EAAgC;AAAA;AAAA;;AACxE+kC,wBAAU7X,YAAV,CAAuBniB,OAAvB,EAAgC;AAC5Bo5B,cAAMnkC,OAAOT,MAAP,KAAkB,MADI;AAE5BylC,aAAKA;AAFuB,KAAhC;AAIH,CALD;;AAOA;;;;;AAIAjmC,iBAAOsD,KAAP,CAAa,UAAb,EAAyB,MAAzB,EAAiC,UAAUgmC,MAAV,EAAkBroC,MAAlB,EAA0B;AAAA;AAAA;;AACvDynC,uBAASva,YAAT,CAAsBmb,MAAtB,EAA8B;AAC1BlE,cAAMnkC,OAAOT,MAAP,KAAkB,UADE;AAE1BmoC,kBAAU1nC,OAAOT,MAAP,KAAkB,UAAlB,8BAA+BS,OAAOP,QAAtC,+BAAiD,KAAjD,CAFgB;AAG1BuY,gBAAQhY,OAAOT,MAAP,KAAkB,QAAlB,8BAA6BS,OAAOP,QAApC,+BAA+C,KAA/C;AAHkB,KAA9B;AAKH,CAND;;AAQA;;;;;AAKAV,iBAAOsD,KAAP,CAAa,SAAb,EAAwB,SAAxB,EAAmC,YAAY;AAAA;AAAA;;AAC3ChI,qBAAOgC,OAAP,CAAe,cAAf,EAA+BssC,qBAA/B;AACH,CAFD;;AAIA;;;;;AAIA5pC,iBAAOsD,KAAP,CAAa,UAAb,EAAyB,UAAzB,EAAqC,YAAY;AAAA;AAAA;;AAC7ChI,qBAAOgC,OAAP,CAAe,cAAf,EAA+B+sC,iCAA/B;AACH,CAFD;;AAIA;;;;;AAKArqC,iBAAOsD,KAAP,CAAa,sBAAb,EAAqC,YAArC,EAAmD,UAAU6J,EAAV,EAAc84B,GAAd,EAAmB;AAAA;AAAA;;AAClEmF,8BAAgBjd,YAAhB,CAA6BhhB,EAA7B,EAAiC84B,GAAjC;AACH,CAFD;;AAGAjmC,iBAAOsD,KAAP,CAAa,8BAAb,EAA6C,cAA7C,EAA6D,UAAU6J,EAAV,EAActI,KAAd,EAAqB;AAAA;AAAA;;AAC9EqB,wBAAUuH,kBAAV,CAA6BN,EAA7B,EAAiCtI,KAAjC,EACK0B,IADL,CACU,YAAM;AAAA;AAAA;;AACRjL,yBAAOgC,OAAP,CAAe,cAAf,EAA+B8tC,yBAA/B,EAAgD;AAC5C1mC,kBAAM,2BADsC;AAE5CuhC,iBAAK,UAFuC;AAG5CsF,uBAAW1mC;AAHiC,SAAhD;AAKH,KAPL,EAOOuB,IAPP,CAOY,YAAM;AAAA;AAAA;;AACVpG,yBAAOa,QAAP,CAAgB,EAAhB,EAAoB,EAAEvD,SAAS,IAAX,EAApB;AACH,KATL;AAUH,CAXD;;;AAaA0C,iBAAOsD,KAAP,CAAa,qCAAb,EAAoD,eAApD,EAAqE,UAAU6J,EAAV,EAActI,KAAd,EAAqB;AAAA;AAAA;;AACtF,2BAAY;AACR9G,uBAAaoP,EAAb,kBADQ;AAERpI,gBAAQ,KAFA;AAGRnJ,cAAM,EAAEiJ,OAAOA,KAAT,EAHE;AAIRlK,eAAO;AAJC,KAAZ,EAKG4L,IALH,CAKQ,UAAC8G,IAAD,EAAU;AAAA;AAAA;;AACd,YAAIA,KAAKpH,SAAT,EAAoB;AAAA;AAAA;;AAChBoH,iBAAK3I,IAAL,CAAUG,KAAV,GAAkBwI,KAAKpH,SAAL,CAAepB,KAAjC;AADgB;AAEhBtJ,kCAAYoS,KAAZ;AAFgB;AAGhB,sCAAe,IAAIzH,mBAAJ,CAAcmH,KAAK3I,IAAnB,CAAf;AAHgB;AAIhBnJ,kCAAYqS,IAAZ;AAJgB;AAKhBtS,6BAAOgC,OAAP,CAAe,iBAAf;AACH,SAND;AAAA;AAAA;AADc;AAQdhC,yBAAOgC,OAAP,CAAe,cAAf,EAA+BooC,uBAA/B;AARc;AASdpqC,yBAAOgC,OAAP,CAAe,SAAf,EAA0B;AACtBG,kBAAM,IADgB;AAEtBd,kBAAM,iBAFgB;AAGtBY,kBAAM,SAHgB;AAItBC,qBAAS;AAJa,SAA1B;AAMH,KApBD,EAoBG4I,IApBH,CAoBQ,YAAM;AAAA;AAAA;;AACV9K,yBAAOgC,OAAP,CAAe,cAAf,EAA+BooC,uBAA/B;AADU;AAEVpqC,yBAAOgC,OAAP,CAAe,SAAf,EAA0B;AACtBG,kBAAM,QADgB;AAEtBd,kBAAM,yBAFgB;AAGtBY,kBAAM,QAHgB;AAItBC,qBAAS;AAJa,SAA1B;AAMH,KA5BD;AA6BH,CA9BD;;AAgCA;;;;AAGAwC,iBAAOsD,KAAP,CAAa,OAAb,EAAsB,OAAtB,EAA+B,UAAUrC,MAAV,EAAkB;AAAA;AAAA;;AAC7C3F,qBAAOgC,OAAP,CAAe,cAAf,EAA+B8wB,mBAA/B,EAA0C,iEAAU,EAAV,CAA1C;AAD6C;AAE7C9yB,qBAAOgC,OAAP,CAAe,iBAAf,EAAkC,WAAlC;AACH,CAHD;;AAKA;;;;;AAIA0C,iBAAOsD,KAAP,CAAa,UAAb,EAAyB,MAAzB,EAAiC,UAAUoK,MAAV,EAAkBzM,MAAlB,EAA0B;AAAA;AAAA;;AACvD8sB,uBAASI,YAAT,CAAsBzgB,MAAtB,EAA8B;AAC1BwN,sBAAcja,OAAOT,MAAP,KAAkB,cADN;AAE1BA,gBAAQS,OAAOT;AAFW,KAA9B;AAIH,CALD;;AAMAR,iBAAOsD,KAAP,CAAa,qBAAb,EAAoC,YAApC,EAAkD,UAAUoK,MAAV,EAAkB0P,QAAlB,EAA4Bnc,MAA5B,EAAoC;AAAA;AAAA;;AAClF8sB,uBAASI,YAAT,CAAsBzgB,MAAtB,EAA8B;AAC1B0P,kBAAUA,QADgB;AAE1BnE,gBAAQhY,OAAOT,MAAP,KAAkB,QAFA;AAG1Bya,sBAAcha,OAAOT,MAAP,KAAkB,cAHN;AAI1B0a,sBAAcja,OAAOT,MAAP,KAAkB,cAJN;AAK1B2a,oBAAYla,OAAOT,MAAP,KAAkB,YALJ;AAM1B4a,oBAAYna,OAAOT,MAAP,KAAkB;AANJ,KAA9B;AAQH,CATD;;AAWA;;;;;AAIAR,iBAAOsD,KAAP,CAAa,gBAAb,EAA+B,eAA/B,EAAgD,UAAUrC,MAAV,EAAkB;AAAA;AAAA;;AAC9D3F,qBAAOgC,OAAP,CAAe,cAAf,EAA+BwvC,2BAA/B,EAAkD;AAC9Cl6B,eAAO3R,OAAO2R,KADgC;AAE9CC,cAAM5R,OAAO4R;AAFiC,KAAlD;AAIH,CALD,E;;;;;;;;;ACjOA,IAAIyxB,MAAMC,mBAAOA,CAAC,CAAR,CAAV;;AAEA,SAASpb,QAAT,CAAkBqb,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,qEAA4G,sTAA7G,EAAxB;AACtH,KAACD,iBAAiB,CAAjB,CAAmBD,qBAAqB,mEAArB;AACpBH,eAAWA,WAAW,gCAAtB;AACA,KAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,mEAArB;AACpBH,eAAWA,WAAW,MAAtB;AACA,KAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,mEAArB;AACpBH,eAAWA,WAAW,kDAAtB;AACA,KAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,mEAArB;AACpBH,eAAWA,WAAW,gCAAtB;AACA,KAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,mEAArB;AACpBH,eAAWA,WAAW,gCAAtB;AACA,KAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,mEAArB;AACpBH,eAAWA,WAAW,MAAtB;AACA,KAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,mEAArB;AACpBH,eAAWA,WAAW,kDAAtB;AACA,KAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,mEAArB;AACpBH,eAAWA,WAAW,+BAAtB;AACA,KAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,mEAArB;AACpBH,eAAWA,WAAW,mBAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,mEAArB;AACrBH,eAAWA,WAAW,MAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,mEAArB;AACrBH,eAAWA,WAAW,yDAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,mEAArB;AACrBH,eAAWA,WAAW,8BAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,mEAArB;AACrBH,eAAWA,WAAW,4BAAtB;AAAiG,GA1BgB,CA0Bf,OAAOx3B,GAAP,EAAY;AAACq3B,QAAIU,OAAJ,CAAY/3B,GAAZ,EAAiB23B,kBAAjB,EAAqCC,cAArC,EAAqDC,kBAAkBF,kBAAlB,CAArD;AAA6F,IAAC,OAAOH,QAAP;AAAiB;AAC9NQ,OAAOC,OAAP,GAAiB/b,QAAjB,C;;;;;;AC7BA,yC;;;;;;;;;ACAA,IAAImb,MAAMC,mBAAOA,CAAC,CAAR,CAAV;;AAEA,SAASpb,QAAT,CAAkBqb,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,gFAAuH,41IAAxH,EAAxB;AACtH,KAAC,IAAIC,kBAAmBP,UAAU,EAAjC,CAAsC,WAAUxH,UAAV,EAAsB5qB,KAAtB,EAA6B;AAAC,OAACyyB,iBAAiB,CAAjB,CAAmBD,qBAAqB,8EAArB;AACzFH,iBAAWA,WAAW,8BAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,8EAArB;AACpBH,iBAAWA,WAAW,+BAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,8EAArB;AACpBH,iBAAWA,WAAW,yEAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,8EAArB;AACpBH,iBAAWA,WAAW,8BAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,8EAArB;AACpBH,iBAAWA,WAAW,sFAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,8EAArB;AACpBH,iBAAWA,WAAW,kBAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,8EAArB;AACpBH,iBAAWA,WAAW,4BAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,8EAArB;AACpBH,iBAAWA,WAAW,4BAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,8EAArB;AACpBH,iBAAWA,WAAW,4BAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,8EAArB;AACpBH,iBAAWA,WAAW,0CAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,iBAAWA,WAAW,4BAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,iBAAWA,WAAW,qDAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,iBAAWA,WAAW,yBAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,iBAAWA,WAAW,qGAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrB,UAAI5H,WAAWt0B,GAAX,CAAe,MAAf,MAA2B0J,MAAM1P,UAArC,EAAiD;AACjD,SAACmiC,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,4BAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,wDAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,wBAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,kHAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,4BAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,yDAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,2CAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,wGAAtB;AACC;AACD,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrB,UAAI5H,WAAWt0B,GAAX,CAAe,MAAf,MAA2B0J,MAAMzP,MAArC,EAA6C;AAC7C,SAACkiC,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,4BAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,0DAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,uBAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,mHAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,4BAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,iEAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,wBAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,0SAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,4BAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,kEAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,qBAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,iKAAtB;AACC;AACD,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrB,UAAI5H,WAAWt0B,GAAX,CAAe,MAAf,MAA2B0J,MAAMxP,EAArC,EAAyC;AACzC,SAACiiC,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,4BAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,0DAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,wBAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,4GAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,4BAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,0DAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,gCAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,4GAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,4BAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,iEAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,uBAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,0HAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,4BAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,0DAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,2BAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,uHAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,4BAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,2DAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,iBAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,wMAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,4BAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,0DAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,gBAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,4GAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,0BAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,SAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,6DAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,iCAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,0BAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,SAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,qDAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,yBAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,0BAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,SAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,gDAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,sCAAtB;AACC;AACDA,iBAAWA,WAAW,QAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrB,UAAI5H,WAAWt0B,GAAX,CAAe,UAAf,CAAJ,EAAgC;AAChC,SAACm8B,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,OAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,kCAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,EAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,KAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,cAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,+IAAtB;AACC;AACD,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,iBAAWA,WAAW,yDAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,iBAAWA,WAAW,8BAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,iBAAWA,WAAW,gEAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,iBAAWA,WAAW,YAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrB,UAAI,CAAC5H,WAAWt0B,GAAX,CAAe,UAAf,CAAL,EAAiC;AACjC,SAACm8B,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,gFAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,6BAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,eAAtB;AACC,OAPD,MAQK;AACL,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,2FAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,6BAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,MAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,8EAArB;AACrBH,mBAAWA,WAAW,2CAAtB;AACC;AACDA,iBAAWA,WAAW,2BAAtB;AAA+G,KAhMxE,EAgMyEtf,IAhMzE,CAgM8E,IAhM9E,EAgMmF,gBAAgB4f,eAAhB,GAAgCA,gBAAgB/H,UAAhD,GAA2D,OAAOA,UAAP,KAAoB,WAApB,GAAgCA,UAAhC,GAA2Cn0B,SAhMzL,EAgMmM,WAAWk8B,eAAX,GAA2BA,gBAAgB3yB,KAA3C,GAAiD,OAAOA,KAAP,KAAe,WAAf,GAA2BA,KAA3B,GAAiCvJ,SAhMrR,CAAD;AAgMmS,GAjMxN,CAiMyN,OAAOoE,GAAP,EAAY;AAACq3B,QAAIU,OAAJ,CAAY/3B,GAAZ,EAAiB23B,kBAAjB,EAAqCC,cAArC,EAAqDC,kBAAkBF,kBAAlB,CAArD;AAA6F,IAAC,OAAOH,QAAP;AAAiB;AACtcQ,OAAOC,OAAP,GAAiB/b,QAAjB,C;;;;;;;;;ACpMA,IAAImb,MAAMC,mBAAOA,CAAC,CAAR,CAAV;;AAEA,SAASpb,QAAT,CAAkBqb,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,yEAAgH,89LAAjH,EAAxB;AACtH,KAACD,iBAAiB,CAAjB,CAAmBD,qBAAqB,uEAArB;AACpBH,eAAWA,WAAW,2DAAtB;AACA,KAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,uEAArB;AACpBH,eAAWA,WAAW,qCAAtB;AACA,KAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,uEAArB;AACpBH,eAAWA,WAAW,iIAAtB;AACA,KAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,uEAArB;AACpBH,eAAWA,WAAW,6BAAtB;AACA,KAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,uEAArB;AACpBH,eAAWA,WAAW,KAAtB;AACA,KAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,uEAArB;AACpBH,eAAWA,WAAW,4BAAtB;AACA,KAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,uEAArB;AACpBH,eAAWA,WAAW,QAAtB;AACA,KAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,uEAArB;AACpBH,eAAWA,WAAW,aAAtB;AACA,KAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,uEAArB;AACpBH,eAAWA,WAAW,KAAtB;AACA,KAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,uEAArB;AACpBH,eAAWA,WAAW,gBAAtB;AACA,KAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,uEAArB;AACpBH,eAAWA,WAAW,oCAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,gEAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,4BAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,KAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,gEAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,IAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,kEAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,IAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,mEAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,IAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,sCAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,KAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,oEAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,IAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,gCAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,2CAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,4BAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,uDAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,yBAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,uGAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,4BAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,uDAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,wBAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,iHAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,qEAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,4HAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,qCAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,qIAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,6BAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,KAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,6BAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,QAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,aAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,KAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,YAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,oCAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,oEAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,4BAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,KAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,8BAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,IAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,YAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,4EAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,YAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,EAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,IAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,mEAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,IAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,wEAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,+CAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,4BAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,2DAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,yBAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,2GAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,4BAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,yDAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,uBAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,kHAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,4BAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,gEAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,wBAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,ySAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,4BAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,iEAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,qBAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,gKAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,yEAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,4HAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,qCAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,iIAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,6BAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,KAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,qCAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,QAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,aAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,KAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,eAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,oCAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,gEAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,4BAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,KAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,wCAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,IAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,KAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,0DAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,eAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,EAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,IAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,sEAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,IAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,sEAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,IAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,iDAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,2CAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,4BAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,uDAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,yBAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,uGAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,4BAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,yDAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,wBAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,2GAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,4BAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,yDAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,gCAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,2GAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,4BAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,gEAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,uBAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,yHAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,4BAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,yDAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,2BAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,sHAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,4BAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,0DAAtB;AACA,KAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,uEAArB;AACrBH,eAAWA,WAAW,iBAAtB;AACA,KAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,uEAArB;AACtBH,eAAWA,WAAW,uMAAtB;AACA,KAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,uEAArB;AACtBH,eAAWA,WAAW,4BAAtB;AACA,KAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,uEAArB;AACtBH,eAAWA,WAAW,yDAAtB;AACA,KAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,uEAArB;AACtBH,eAAWA,WAAW,gBAAtB;AACA,KAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,uEAArB;AACtBH,eAAWA,WAAW,2GAAtB;AACA,KAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,uEAArB;AACtBH,eAAWA,WAAW,0BAAtB;AACA,KAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,uEAArB;AACtBH,eAAWA,WAAW,SAAtB;AACA,KAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,uEAArB;AACtBH,eAAWA,WAAW,oDAAtB;AACA,KAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,uEAArB;AACtBH,eAAWA,WAAW,yBAAtB;AACA,KAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,uEAArB;AACtBH,eAAWA,WAAW,0BAAtB;AACA,KAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,uEAArB;AACtBH,eAAWA,WAAW,SAAtB;AACA,KAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,uEAArB;AACtBH,eAAWA,WAAW,4DAAtB;AACA,KAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,uEAArB;AACtBH,eAAWA,WAAW,iCAAtB;AACA,KAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,uEAArB;AACtBH,eAAWA,WAAW,0BAAtB;AACA,KAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,uEAArB;AACtBH,eAAWA,WAAW,SAAtB;AACA,KAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,uEAArB;AACtBH,eAAWA,WAAW,+CAAtB;AACA,KAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,uEAArB;AACtBH,eAAWA,WAAW,sCAAtB;AACA,KAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,uEAArB;AACtBH,eAAWA,WAAW,qEAAtB;AACA,KAACI,iBAAiB,GAAjB,CAAqBD,qBAAqB,uEAArB;AACtBH,eAAWA,WAAW,kIAAtB;AAA+O,GApS9H,CAoS+H,OAAOx3B,GAAP,EAAY;AAACq3B,QAAIU,OAAJ,CAAY/3B,GAAZ,EAAiB23B,kBAAjB,EAAqCC,cAArC,EAAqDC,kBAAkBF,kBAAlB,CAArD;AAA6F,IAAC,OAAOH,QAAP;AAAiB;AAC5WQ,OAAOC,OAAP,GAAiB/b,QAAjB,C;;;;;;;;;ACvSA,IAAImb,MAAMC,mBAAOA,CAAC,CAAR,CAAV;;AAEA,SAASpb,QAAT,CAAkBqb,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,oEAA2G,+mIAA5G,EAAxB;AACtH,KAAC,IAAIC,kBAAmBP,UAAU,EAAjC,CAAsC,WAAU5H,WAAV,EAAuBN,eAAvB,EAAwClqB,KAAxC,EAA+C;AAAC,OAACyyB,iBAAiB,CAAjB,CAAmBD,qBAAqB,kEAArB;AAC3GH,iBAAWA,WAAW,iDAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,kEAArB;AACpBH,iBAAWA,WAAW,8BAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,kEAArB;AACpBH,iBAAWA,WAAW,mBAAtB;AACA,OAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,kEAArB;AACpB,UAAI,CAAChI,YAAY19B,MAAjB,EAAyB;AACzB,SAAC2lC,iBAAiB,CAAjB,CAAmBD,qBAAqB,kEAArB;AACpBH,mBAAWA,WAAW,kCAAtB;AACA,SAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,kEAArB;AACpBH,mBAAWA,WAAW,0EAAtB;AACA,SAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,kEAArB;AACpBH,mBAAWA,WAAW,IAAtB;AACA,SAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,kEAArB;AACpBH,mBAAWA,WAAW,oDAAtB;AACC,OATD,MAUK;AACL,SAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,kEAArB;AACpBH,mBAAWA,WAAW,kCAAtB;AACA,SAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,kEAArB;AACpBH,mBAAWA,WAAW,wEAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,mBAAWA,WAAW,IAAtB;AACA,SAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,mBAAWA,WAAW,iFAAtB;AACC;AACD,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrB;AACA,OAAC,CAAC,YAAU;AACV,YAAIoM,QAAQpU,WAAZ;AACA,YAAI,YAAY,OAAOoU,MAAM9xC,MAA7B,EAAqC;AACjC,eAAK,IAAI+xC,aAAa,CAAjB,EAAoBC,MAAMF,MAAM9xC,MAArC,EAA6C+xC,aAAaC,GAA1D,EAA+DD,YAA/D,EAA6E;AAC3E,gBAAIjU,aAAagU,MAAMC,UAAN,CAAjB;AACR,aAACpM,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,uBAAWA,WAAW,MAAX,GAA0BH,IAAI3vB,IAAJ,CAAS,OAAT,EAAkB2vB,IAAIwK,OAAJ,CAAY,CAAC,wBAAD,EAA0B,OAA1B,EAAkC,eAAlC,EAAkD9R,WAAWt0B,GAAX,CAAe,SAAf,IAA4B,sBAA5B,GAAqDG,SAAvG,CAAZ,EAA+H,CAAC,KAAD,EAAO,KAAP,EAAa,KAAb,EAAmB,IAAnB,CAA/H,CAAlB,EAA4K,KAA5K,EAAmL,IAAnL,CAA1B,GAAsN,GAAjO;AACA,aAACg8B,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,uBAAWA,WAAW,4BAAtB;AACA,aAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,uBAAWA,WAAW,MAAX,IAA0B,yCAAuCH,IAAI3vB,IAAJ,CAAS,iBAAT,EAA4BqoB,WAAWt0B,GAAX,CAAe,MAAf,CAA5B,EAAoD,IAApD,EAA0D,IAA1D,CAAvC,GAAuG47B,IAAI3vB,IAAJ,CAAS,KAAT,EAAgBqoB,WAAWxc,GAA3B,EAAgC,IAAhC,EAAsC,IAAtC,CAAjI,IAAgL,GAA3L;AACA,aAACqkB,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,uBAAWA,WAAW,OAAtB;AACA,aAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,uBAAWA,WAAW,KAAtB;AACA,aAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,uBAAWA,WAAW,WAAtB;AACA,aAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,uBAAWA,WAAW,oCAAtB;AACA,aAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,uBAAWA,WAAW,GAAtB;AACA,aAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,uBAAWA,WAAYH,IAAIrlB,MAAJ,CAAW,SAAS0lB,aAAa3H,WAAWt0B,GAAX,CAAe,MAAf,CAAtB,IAAgD,EAAhD,GAAqDi8B,UAAhE,CAAZ,GAA2F,SAAtG;AACA,aAACE,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrB,gBAAI5H,WAAWt0B,GAAX,CAAe,SAAf,CAAJ,EAA+B;AAC/B,eAACm8B,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,4CAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,8BAAtB;AACC;AACDA,uBAAWA,WAAW,QAAtB;AACA,aAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,uBAAWA,WAAW,OAAtB;AACA,aAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,uBAAWA,WAAW,KAAtB;AACA,aAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,uBAAWA,WAAW,gBAAtB;AACA,aAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,uBAAWA,WAAW,kCAAtB;AACA,aAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,uBAAWA,WAAW,GAAtB;AACA,aAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,uBAAWA,WAAYH,IAAIrlB,MAAJ,CAAW,SAAS0lB,aAAa3H,WAAW7vB,EAAjC,IAAuC,EAAvC,GAA4Cw3B,UAAvD,CAAZ,GAAkF,eAA7F;AACA,aAACE,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrB,gBAAI5H,WAAWt0B,GAAX,CAAe,MAAf,MAA2B0J,MAAM1P,UAArC,EAAiD;AACjD,eAACmiC,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,OAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,KAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,WAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,oCAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,0BAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,OAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,KAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,gBAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,oCAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,GAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAYH,IAAIrlB,MAAJ,CAAW,SAAS0lB,aAAa3H,WAAWt0B,GAAX,CAAe,MAAf,CAAtB,IAAgD,EAAhD,GAAqDi8B,UAAhE,CAAZ,GAA2F,eAAtG;AACA,eAACE,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,OAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,KAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,wCAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,qCAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,GAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAYH,IAAIrlB,MAAJ,CAAW,SAAS0lB,aAAa,CAAC3H,WAAWt0B,GAAX,CAAe,OAAf,KAA2B,GAA5B,EAAmCwc,QAAnC,CAA4C,CAA5C,CAAtB,IAAwE,EAAxE,GAA6Eyf,UAAxF,CAAZ,GAAmH,eAA9H;AACC,aAnCD,MAqCA,IAAI3H,WAAWt0B,GAAX,CAAe,MAAf,MAA2B0J,MAAMzP,MAArC,EAA6C;AAC7C,eAACkiC,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,OAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,KAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,WAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,oCAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,sBAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,OAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,KAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,oBAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,oCAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,GAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAYH,IAAIrlB,MAAJ,CAAW,SAAS0lB,aAAa3H,WAAWt0B,GAAX,CAAe,IAAf,CAAtB,IAA8C,EAA9C,GAAmDi8B,UAA9D,CAAZ,GAAyF,eAApG;AACA,eAACE,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrB,kBAAI5H,WAAWt0B,GAAX,CAAe,WAAf,CAAJ,EAAiC;AACjC,iBAACm8B,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,2BAAWA,WAAW,OAAtB;AACA,iBAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,2BAAWA,WAAW,KAAtB;AACA,iBAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,2BAAWA,WAAW,qBAAtB;AACA,iBAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,2BAAWA,WAAW,yCAAtB;AACA,iBAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,2BAAWA,WAAW,GAAtB;AACA,iBAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,2BAAWA,WAAYH,IAAIrlB,MAAJ,CAAW,SAAS0lB,aAAa3H,WAAWt0B,GAAX,CAAe,WAAf,CAAtB,IAAqD,EAArD,GAA0Di8B,UAArE,CAAZ,GAAgG,eAA3G;AACA,iBAACE,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrB,oBAAI5H,WAAWt0B,GAAX,CAAe,YAAf,CAAJ,EAAkC;AAClC,mBAACm8B,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,6BAAWA,WAAW,OAAtB;AACA,mBAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,6BAAWA,WAAW,KAAtB;AACA,mBAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,6BAAWA,WAAW,kBAAtB;AACA,mBAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,6BAAWA,WAAW,0CAAtB;AACA,mBAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,6BAAWA,WAAW,GAAtB;AACA,mBAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,6BAAWA,WAAYH,IAAIrlB,MAAJ,CAAW,SAAS0lB,aAAa3H,WAAWt0B,GAAX,CAAe,YAAf,CAAtB,IAAsD,EAAtD,GAA2Di8B,UAAtE,CAAZ,GAAiG,eAA5G;AACC;AACA;AACA,aArDD,MAuDA,IAAI3H,WAAWt0B,GAAX,CAAe,MAAf,MAA2B0J,MAAMxP,EAArC,EAAyC;AACzC,eAACiiC,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,OAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,KAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,WAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,oCAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,kBAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,OAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,KAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,aAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,sCAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,GAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAYH,IAAIrlB,MAAJ,CAAW,SAAS0lB,aAAa3H,WAAWt0B,GAAX,CAAe,QAAf,CAAtB,IAAkD,EAAlD,GAAuDi8B,UAAlE,CAAZ,GAA6F,eAAxG;AACA,eAACE,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrB,kBAAI5H,WAAWt0B,GAAX,CAAe,QAAf,CAAJ,EAA8B;AAC9B,iBAACm8B,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,2BAAWA,WAAW,OAAtB;AACA,iBAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,2BAAWA,WAAW,KAAtB;AACA,iBAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,2BAAWA,WAAW,kBAAtB;AACA,iBAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,2BAAWA,WAAW,sCAAtB;AACA,iBAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,2BAAWA,WAAW,GAAtB;AACA,iBAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,2BAAWA,WAAYH,IAAIrlB,MAAJ,CAAW,SAAS0lB,aAAa3H,WAAWt0B,GAAX,CAAe,QAAf,CAAtB,IAAkD,EAAlD,GAAuDi8B,UAAlE,CAAZ,GAA6F,eAAxG;AACC;AACD,eAACE,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,OAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,KAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,oBAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,kCAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,GAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAYH,IAAIrlB,MAAJ,CAAW,SAAS0lB,aAAa3H,WAAWt0B,GAAX,CAAe,aAAf,CAAtB,IAAuD,EAAvD,GAA4Di8B,UAAvE,CAAZ,GAAkG,eAA7G;AACA,eAACE,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,OAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,KAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,wBAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,+BAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,GAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAYH,IAAIrlB,MAAJ,CAAW,SAAS0lB,aAAa3H,WAAWt0B,GAAX,CAAe,QAAf,KAA4B,UAAlD,IAAgE,EAAhE,GAAqEi8B,UAAhF,CAAZ,GAA2G,eAAtH;AACA,eAACE,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,OAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,KAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,cAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,gCAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,GAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAYH,IAAIrlB,MAAJ,CAAW,SAAS0lB,aAAa3H,WAAWt0B,GAAX,CAAe,SAAf,CAAtB,IAAmD,EAAnD,GAAwDi8B,UAAnE,CAAZ,GAA8F,eAAzG;AACA,eAACE,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,OAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,KAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,aAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,+BAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,GAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAYH,IAAIrlB,MAAJ,CAAW,SAAS0lB,aAAa3H,WAAWt0B,GAAX,CAAe,QAAf,CAAtB,IAAkD,EAAlD,GAAuDi8B,UAAlE,CAAZ,GAA6F,eAAxG;AACC;AACDF,uBAAWA,WAAW,QAAtB;AACA,aAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrB,gBAAI5H,WAAWpY,aAAX,EAAJ,EAAgC;AAChC,eAACigB,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,OAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,KAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,eAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,wCAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,GAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAYH,IAAIrlB,MAAJ,CAAW,SAAS0lB,aAAa3H,WAAWhY,cAAX,EAAtB,IAAqD,EAArD,GAA0D2f,UAArE,CAAZ,GAAgG,SAA3G;AACA,eAACE,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,MAAX,IAA0B,2CAAyCH,IAAI3vB,IAAJ,CAAS,KAAT,EAAgBqoB,WAAWxc,GAA3B,EAAgC,IAAhC,EAAsC,IAAtC,CAAnE,IAAkH,eAA7H;AACC;AACD,aAACqkB,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,uBAAWA,WAAW,sCAAtB;AACA,aAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,uBAAWA,WAAW,SAAX,IAA6B,wDAAsDH,IAAI3vB,IAAJ,CAAS,KAAT,EAAgBqoB,WAAWxc,GAA3B,EAAgC,IAAhC,EAAsC,IAAtC,CAAnF,IAAkI,GAA7I;AACA,aAACqkB,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,uBAAWA,WAAW,eAAtB;AACA,aAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrB,gBAAI,CAAC5H,WAAWt0B,GAAX,CAAe,UAAf,CAAL,EAAiC;AACjC,eAACm8B,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,SAAX,IAA6B,yDAAuDH,IAAI3vB,IAAJ,CAAS,KAAT,EAAgBqoB,WAAWxc,GAA3B,EAAgC,IAAhC,EAAsC,IAAtC,CAApF,IAAmI,GAA9I;AACA,eAACqkB,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,iBAAtB;AACC,aALD,MAMK;AACL,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,6IAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,SAAX,IAA6B,kEAAgEH,IAAI3vB,IAAJ,CAAS,KAAT,EAAgBqoB,WAAWxc,GAA3B,EAAgC,IAAhC,EAAsC,IAAtC,CAAhE,GAA4G8jB,IAAI3vB,IAAJ,CAAS,UAAT,EAAqB,IAArB,EAA2B,IAA3B,EAAiC,IAAjC,CAAzI,IAAmL,GAA9L;AACA,eAACkwB,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,uBAAtB;AACC;AACD,aAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrB,gBAAI,CAAC5H,WAAWt0B,GAAX,CAAe,SAAf,CAAD,IAA8B,CAACs0B,WAAWt0B,GAAX,CAAe,UAAf,CAAnC,EAA+D;AAC/D,eAACm8B,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,SAAX,IAA6B,oDAAkDH,IAAI3vB,IAAJ,CAAS,KAAT,EAAgBqoB,WAAWxc,GAA3B,EAAgC,IAAhC,EAAsC,IAAtC,CAA/E,IAA8H,GAAzI;AACA,eAACqkB,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,yBAAtB;AACC;AACD,aAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrB,gBAAItI,gBAAgB9xB,OAAhB,CAAwBwyB,WAAWt0B,GAAX,CAAe,MAAf,CAAxB,MAAoD,CAAC,CAAzD,EAA4D;AAC5D,eAACm8B,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,sDAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,IAAX,IAAwB,sDAAoDH,IAAI3vB,IAAJ,CAAS,MAAT,mBAAgCqoB,WAAW7vB,EAA3C,cAAwD,IAAxD,EAA8D,IAA9D,CAA5E,IAAmJ,GAA9J;AACA,eAAC03B,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,iCAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,wBAAtB;AACC;AACDA,uBAAWA,WAAW,oBAAtB;AACO;AACJ,SAxRD,MAwRO;AACL,cAAIyM,MAAM,CAAV;AACA,eAAK,IAAID,UAAT,IAAuBD,KAAvB,EAA8B;AAC5BE;AACA,gBAAIlU,aAAagU,MAAMC,UAAN,CAAjB;AACN,aAACpM,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,uBAAWA,WAAW,MAAX,GAA0BH,IAAI3vB,IAAJ,CAAS,OAAT,EAAkB2vB,IAAIwK,OAAJ,CAAY,CAAC,wBAAD,EAA0B,OAA1B,EAAkC,eAAlC,EAAkD9R,WAAWt0B,GAAX,CAAe,SAAf,IAA4B,sBAA5B,GAAqDG,SAAvG,CAAZ,EAA+H,CAAC,KAAD,EAAO,KAAP,EAAa,KAAb,EAAmB,IAAnB,CAA/H,CAAlB,EAA4K,KAA5K,EAAmL,IAAnL,CAA1B,GAAsN,GAAjO;AACA,aAACg8B,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,uBAAWA,WAAW,4BAAtB;AACA,aAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,uBAAWA,WAAW,MAAX,IAA0B,yCAAuCH,IAAI3vB,IAAJ,CAAS,iBAAT,EAA4BqoB,WAAWt0B,GAAX,CAAe,MAAf,CAA5B,EAAoD,IAApD,EAA0D,IAA1D,CAAvC,GAAuG47B,IAAI3vB,IAAJ,CAAS,KAAT,EAAgBqoB,WAAWxc,GAA3B,EAAgC,IAAhC,EAAsC,IAAtC,CAAjI,IAAgL,GAA3L;AACA,aAACqkB,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,uBAAWA,WAAW,OAAtB;AACA,aAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,uBAAWA,WAAW,KAAtB;AACA,aAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,uBAAWA,WAAW,WAAtB;AACA,aAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,uBAAWA,WAAW,oCAAtB;AACA,aAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,uBAAWA,WAAW,GAAtB;AACA,aAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,uBAAWA,WAAYH,IAAIrlB,MAAJ,CAAW,SAAS0lB,aAAa3H,WAAWt0B,GAAX,CAAe,MAAf,CAAtB,IAAgD,EAAhD,GAAqDi8B,UAAhE,CAAZ,GAA2F,SAAtG;AACA,aAACE,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrB,gBAAI5H,WAAWt0B,GAAX,CAAe,SAAf,CAAJ,EAA+B;AAC/B,eAACm8B,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,4CAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,8BAAtB;AACC;AACDA,uBAAWA,WAAW,QAAtB;AACA,aAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,uBAAWA,WAAW,OAAtB;AACA,aAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,uBAAWA,WAAW,KAAtB;AACA,aAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,uBAAWA,WAAW,gBAAtB;AACA,aAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,uBAAWA,WAAW,kCAAtB;AACA,aAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,uBAAWA,WAAW,GAAtB;AACA,aAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,uBAAWA,WAAYH,IAAIrlB,MAAJ,CAAW,SAAS0lB,aAAa3H,WAAW7vB,EAAjC,IAAuC,EAAvC,GAA4Cw3B,UAAvD,CAAZ,GAAkF,eAA7F;AACA,aAACE,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrB,gBAAI5H,WAAWt0B,GAAX,CAAe,MAAf,MAA2B0J,MAAM1P,UAArC,EAAiD;AACjD,eAACmiC,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,OAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,KAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,WAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,oCAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,0BAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,OAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,KAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,gBAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,oCAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,GAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAYH,IAAIrlB,MAAJ,CAAW,SAAS0lB,aAAa3H,WAAWt0B,GAAX,CAAe,MAAf,CAAtB,IAAgD,EAAhD,GAAqDi8B,UAAhE,CAAZ,GAA2F,eAAtG;AACA,eAACE,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,OAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,KAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,wCAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,qCAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,GAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAYH,IAAIrlB,MAAJ,CAAW,SAAS0lB,aAAa,CAAC3H,WAAWt0B,GAAX,CAAe,OAAf,KAA2B,GAA5B,EAAmCwc,QAAnC,CAA4C,CAA5C,CAAtB,IAAwE,EAAxE,GAA6Eyf,UAAxF,CAAZ,GAAmH,eAA9H;AACC,aAnCD,MAqCA,IAAI3H,WAAWt0B,GAAX,CAAe,MAAf,MAA2B0J,MAAMzP,MAArC,EAA6C;AAC7C,eAACkiC,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,OAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,KAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,WAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,oCAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,sBAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,OAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,KAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,oBAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,oCAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,GAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAYH,IAAIrlB,MAAJ,CAAW,SAAS0lB,aAAa3H,WAAWt0B,GAAX,CAAe,IAAf,CAAtB,IAA8C,EAA9C,GAAmDi8B,UAA9D,CAAZ,GAAyF,eAApG;AACA,eAACE,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrB,kBAAI5H,WAAWt0B,GAAX,CAAe,WAAf,CAAJ,EAAiC;AACjC,iBAACm8B,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,2BAAWA,WAAW,OAAtB;AACA,iBAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,2BAAWA,WAAW,KAAtB;AACA,iBAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,2BAAWA,WAAW,qBAAtB;AACA,iBAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,2BAAWA,WAAW,yCAAtB;AACA,iBAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,2BAAWA,WAAW,GAAtB;AACA,iBAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,2BAAWA,WAAYH,IAAIrlB,MAAJ,CAAW,SAAS0lB,aAAa3H,WAAWt0B,GAAX,CAAe,WAAf,CAAtB,IAAqD,EAArD,GAA0Di8B,UAArE,CAAZ,GAAgG,eAA3G;AACA,iBAACE,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrB,oBAAI5H,WAAWt0B,GAAX,CAAe,YAAf,CAAJ,EAAkC;AAClC,mBAACm8B,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,6BAAWA,WAAW,OAAtB;AACA,mBAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,6BAAWA,WAAW,KAAtB;AACA,mBAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,6BAAWA,WAAW,kBAAtB;AACA,mBAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,6BAAWA,WAAW,0CAAtB;AACA,mBAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,6BAAWA,WAAW,GAAtB;AACA,mBAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,6BAAWA,WAAYH,IAAIrlB,MAAJ,CAAW,SAAS0lB,aAAa3H,WAAWt0B,GAAX,CAAe,YAAf,CAAtB,IAAsD,EAAtD,GAA2Di8B,UAAtE,CAAZ,GAAiG,eAA5G;AACC;AACA;AACA,aArDD,MAuDA,IAAI3H,WAAWt0B,GAAX,CAAe,MAAf,MAA2B0J,MAAMxP,EAArC,EAAyC;AACzC,eAACiiC,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,OAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,KAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,WAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,oCAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,kBAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,OAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,KAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,aAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,sCAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,GAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAYH,IAAIrlB,MAAJ,CAAW,SAAS0lB,aAAa3H,WAAWt0B,GAAX,CAAe,QAAf,CAAtB,IAAkD,EAAlD,GAAuDi8B,UAAlE,CAAZ,GAA6F,eAAxG;AACA,eAACE,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrB,kBAAI5H,WAAWt0B,GAAX,CAAe,QAAf,CAAJ,EAA8B;AAC9B,iBAACm8B,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,2BAAWA,WAAW,OAAtB;AACA,iBAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,2BAAWA,WAAW,KAAtB;AACA,iBAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,2BAAWA,WAAW,kBAAtB;AACA,iBAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,2BAAWA,WAAW,sCAAtB;AACA,iBAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,2BAAWA,WAAW,GAAtB;AACA,iBAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,2BAAWA,WAAYH,IAAIrlB,MAAJ,CAAW,SAAS0lB,aAAa3H,WAAWt0B,GAAX,CAAe,QAAf,CAAtB,IAAkD,EAAlD,GAAuDi8B,UAAlE,CAAZ,GAA6F,eAAxG;AACC;AACD,eAACE,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,OAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,KAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,oBAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,kCAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,GAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAYH,IAAIrlB,MAAJ,CAAW,SAAS0lB,aAAa3H,WAAWt0B,GAAX,CAAe,aAAf,CAAtB,IAAuD,EAAvD,GAA4Di8B,UAAvE,CAAZ,GAAkG,eAA7G;AACA,eAACE,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,OAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,KAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,wBAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,+BAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,GAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAYH,IAAIrlB,MAAJ,CAAW,SAAS0lB,aAAa3H,WAAWt0B,GAAX,CAAe,QAAf,KAA4B,UAAlD,IAAgE,EAAhE,GAAqEi8B,UAAhF,CAAZ,GAA2G,eAAtH;AACA,eAACE,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,OAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,KAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,cAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,gCAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,GAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAYH,IAAIrlB,MAAJ,CAAW,SAAS0lB,aAAa3H,WAAWt0B,GAAX,CAAe,SAAf,CAAtB,IAAmD,EAAnD,GAAwDi8B,UAAnE,CAAZ,GAA8F,eAAzG;AACA,eAACE,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,OAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,KAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,aAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,+BAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,GAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAYH,IAAIrlB,MAAJ,CAAW,SAAS0lB,aAAa3H,WAAWt0B,GAAX,CAAe,QAAf,CAAtB,IAAkD,EAAlD,GAAuDi8B,UAAlE,CAAZ,GAA6F,eAAxG;AACC;AACDF,uBAAWA,WAAW,QAAtB;AACA,aAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrB,gBAAI5H,WAAWpY,aAAX,EAAJ,EAAgC;AAChC,eAACigB,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,OAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,KAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,eAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,wCAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,GAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAYH,IAAIrlB,MAAJ,CAAW,SAAS0lB,aAAa3H,WAAWhY,cAAX,EAAtB,IAAqD,EAArD,GAA0D2f,UAArE,CAAZ,GAAgG,SAA3G;AACA,eAACE,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,MAAX,IAA0B,2CAAyCH,IAAI3vB,IAAJ,CAAS,KAAT,EAAgBqoB,WAAWxc,GAA3B,EAAgC,IAAhC,EAAsC,IAAtC,CAAnE,IAAkH,eAA7H;AACC;AACD,aAACqkB,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,uBAAWA,WAAW,sCAAtB;AACA,aAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,uBAAWA,WAAW,SAAX,IAA6B,wDAAsDH,IAAI3vB,IAAJ,CAAS,KAAT,EAAgBqoB,WAAWxc,GAA3B,EAAgC,IAAhC,EAAsC,IAAtC,CAAnF,IAAkI,GAA7I;AACA,aAACqkB,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,uBAAWA,WAAW,eAAtB;AACA,aAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrB,gBAAI,CAAC5H,WAAWt0B,GAAX,CAAe,UAAf,CAAL,EAAiC;AACjC,eAACm8B,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,SAAX,IAA6B,yDAAuDH,IAAI3vB,IAAJ,CAAS,KAAT,EAAgBqoB,WAAWxc,GAA3B,EAAgC,IAAhC,EAAsC,IAAtC,CAApF,IAAmI,GAA9I;AACA,eAACqkB,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,iBAAtB;AACC,aALD,MAMK;AACL,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,6IAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,SAAX,IAA6B,kEAAgEH,IAAI3vB,IAAJ,CAAS,KAAT,EAAgBqoB,WAAWxc,GAA3B,EAAgC,IAAhC,EAAsC,IAAtC,CAAhE,GAA4G8jB,IAAI3vB,IAAJ,CAAS,UAAT,EAAqB,IAArB,EAA2B,IAA3B,EAAiC,IAAjC,CAAzI,IAAmL,GAA9L;AACA,eAACkwB,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,uBAAtB;AACC;AACD,aAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrB,gBAAI,CAAC5H,WAAWt0B,GAAX,CAAe,SAAf,CAAD,IAA8B,CAACs0B,WAAWt0B,GAAX,CAAe,UAAf,CAAnC,EAA+D;AAC/D,eAACm8B,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,SAAX,IAA6B,oDAAkDH,IAAI3vB,IAAJ,CAAS,KAAT,EAAgBqoB,WAAWxc,GAA3B,EAAgC,IAAhC,EAAsC,IAAtC,CAA/E,IAA8H,GAAzI;AACA,eAACqkB,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,yBAAtB;AACC;AACD,aAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrB,gBAAItI,gBAAgB9xB,OAAhB,CAAwBwyB,WAAWt0B,GAAX,CAAe,MAAf,CAAxB,MAAoD,CAAC,CAAzD,EAA4D;AAC5D,eAACm8B,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,sDAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,IAAX,IAAwB,sDAAoDH,IAAI3vB,IAAJ,CAAS,MAAT,mBAAgCqoB,WAAW7vB,EAA3C,cAAwD,IAAxD,EAA8D,IAA9D,CAA5E,IAAmJ,GAA9J;AACA,eAAC03B,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,iCAAtB;AACA,eAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,yBAAWA,WAAW,wBAAtB;AACC;AACDA,uBAAWA,WAAW,oBAAtB;AACK;AACF;AACF,OArjBA,EAqjBEtf,IArjBF,CAqjBO,IArjBP;;AAujBDsf,iBAAWA,WAAW,QAAtB;AACA,OAACI,iBAAiB,EAAjB,CAAoBD,qBAAqB,kEAArB;AACrBH,iBAAWA,WAAW,+CAAtB;AAAgG,KAtlBzD,EAslB0Dtf,IAtlB1D,CAslB+D,IAtlB/D,EAslBoE,iBAAiB4f,eAAjB,GAAiCA,gBAAgBnI,WAAjD,GAA6D,OAAOA,WAAP,KAAqB,WAArB,GAAiCA,WAAjC,GAA6C/zB,SAtlB9K,EAslBwL,qBAAqBk8B,eAArB,GAAqCA,gBAAgBzI,eAArD,GAAqE,OAAOA,eAAP,KAAyB,WAAzB,GAAqCA,eAArC,GAAqDzzB,SAtlBlT,EAslB4T,WAAWk8B,eAAX,GAA2BA,gBAAgB3yB,KAA3C,GAAiD,OAAOA,KAAP,KAAe,WAAf,GAA2BA,KAA3B,GAAiCvJ,SAtlB9Y,CAAD;AAslB4Z,GAvlBjV,CAulBkV,OAAOoE,GAAP,EAAY;AAACq3B,QAAIU,OAAJ,CAAY/3B,GAAZ,EAAiB23B,kBAAjB,EAAqCC,cAArC,EAAqDC,kBAAkBF,kBAAlB,CAArD;AAA6F,IAAC,OAAOH,QAAP;AAAiB;AAC/jBQ,OAAOC,OAAP,GAAiB/b,QAAjB,C;;;;;;AC1lBA,yC;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,cAAc;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,uBAAuB,OAAO,kBAAkB;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yCAAyC,KAAK;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;;AAEA;AACA,SAAS;AACT;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;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,c;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,2EAA2E,OAAO;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,a;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gDAAgD,OAAO;AACvD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,a;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gCAAgC;AAC/D;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;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;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,2F;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;;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;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,OAAO;AACnC,4BAA4B,8BAA8B;AAC1D,6BAA6B,SAAS;AACtC,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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,gCAAgC,iCAAiC;AACjE;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gD;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;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B,mFAAmF;AACjH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,uBAAuB;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,yCAAyC,KAAK,O;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wG;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;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;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;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,gD;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,sCAAsC;AAC3D;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kC;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,kDAAkD;AACvE,qBAAqB;AACrB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,2BAA2B,IAAI;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,KAAK;AAClC;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;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;;AAEA;;AAEA;AACA;AACA,iBAAiB,sCAAsC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB,uCAAuC;AACxD;AACA;;AAEA;AACA;;AAEA;AACA,8CAA8C;AAC9C;;AAEA;;AAEA;AACA;AACA,iBAAiB,4CAA4C;AAC7D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB,6CAA6C;AAC9D;AACA;;AAEA;;AAEA;;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;;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;AACA;AACA;AACA;;;;AAIA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;;AAEA;AACA;;AAEA;AACA;AACA,gD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,yEAAyE;;AAEjG;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C,KAAK;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,0CAA0C,KAAK;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,MAAM;AACrC,0BAA0B,gBAAgB;AAC1C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;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,mBAAmB,QAAQ,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,cAAc;AACtJ;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4B;AACA,gCAAgC;AAChC,6BAA6B;AAC7B,oCAAoC;;AAEpC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,gCAAgC;AACzD;AACA;;AAEA,yBAAyB,kCAAkC;AAC3D;AACA;;AAEA;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;AACA;AACA;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,8CAA8C,KAAK;AACnD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oGAAoG;AACpG;AACA;AACA;AACA;AACA;;AAEA,oGAAoG,mBAAmB,kBAAkB,mBAAmB;AAC5J;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB,sBAAsB;AAC/C;AACA;AACA;AACA;AACA;AACA,6BAA6B,sCAAsC;AACnE;AACA;AACA,6BAA6B,wCAAwC;AACrE;AACA;AACA;AACA;AACA;AACA,6BAA6B,uCAAuC;AACpE;AACA;AACA,6BAA6B,yCAAyC;AACtE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8CAA8C,KAAK;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,yBAAyB,iCAAiC;AAC1D;AACA;;AAEA,yBAAyB,mCAAmC;AAC5D;AACA;AACA,U;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2CAA2C;;AAE3C;AACA;;AAEA,yBAAyB,gCAAgC;AACzD;AACA;;AAEA,yBAAyB,kCAAkC;AAC3D;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8CAA8C,KAAK;AACnD;AACA;;AAEA;AACA;AACA,gDAAgD,UAAU;AAC1D;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;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,+CAA+C,KAAK;AACpD;AACA;AACA;AACA;AACA;AACA,6BAA6B,sCAAsC;AACnE;AACA;AACA,6BAA6B,wCAAwC;AACrE;AACA;AACA;AACA;AACA;AACA,6BAA6B,uCAAuC;AACpE;AACA;AACA,6BAA6B,yCAAyC;AACtE;AACA;AACA;AACA;AACA;;AAEA,8CAA8C,KAAK;AACnD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0DAA0D,KAAK;AAC/D;AACA;;AAEA,4DAA4D,KAAK;AACjE;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB,sBAAsB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,yBAAyB,MAAM;AAC/B;AACA;AACA;AACA,+BAA+B,cAAc;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yEAAyE;AACzE;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA,6BAA6B,KAAK;AAClC;AACA;AACA;AACA,uCAAuC,cAAc;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,oBAAoB,EAAE;AACxE;AACA;AACA;AACA,uCAAuC,cAAc;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,oBAAoB,EAAE;AACxE;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA,+CAA+C,SAAS;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;;AAElC;AACA;AACA;AACA;AACA;AACA;;AAEA,gDAAgD,OAAO;AACvD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6CAA6C,KAAK;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iC;AACA;AACA;AACA;;AAEA;AACA;AACA,iCAAiC,sBAAsB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,MAAM;AAClD;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,SAAS;AACtC;AACA,iCAAiC,aAAa;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,mBAAmB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sBAAsB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,MAAM;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,yBAAyB,0CAA0C;AACnE;AACA;AACA,yBAAyB,wCAAwC;AACjE;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,4CAA4C,KAAK;AACjD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,MAAM;AAC/B;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,8BAA8B;AAC9D;AACA,oB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,KAAK;AACjD;AACA,4D;AACA;AACA;AACA;AACA;AACA;AACA,iB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,oBAAoB;AAC7C,4CAA4C,SAAS,GAAG,+EAA+E,wDAAwD,iBAAiB,WAAW,qBAAqB;AAChP;AACA;AACA,6BAA6B,8CAA8C;AAC3E;AACA;AACA,6BAA6B,gDAAgD;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,kDAAkD,2BAA2B;AAC7E,uC;AACA,6BAA6B,+CAA+C;AAC5E;AACA;AACA,6BAA6B,iDAAiD;AAC9E;AACA;AACA;;AAEA;AACA;AACA;AACA,8CAA8C,KAAK;AACnD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB,yCAAyC;AAClE;AACA;AACA,yBAAyB,2CAA2C;AACpE;AACA;AACA;;AAEA;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;;AAEA;;AAEA;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,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;AACA,mDAAmD,OAAO;AAC1D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,KAAK;AAC9D;AACA;AACA,2DAA2D,KAAK;AAChE;AACA;AACA;AACA,kEAAkE,iCAAiC;AACnG;AACA;AACA,iCAAiC,cAAc;;AAE/C;AACA;AACA,oDAAoD;;AAEpD,mCAAmC;;AAEnC;AACA;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,yBAAyB,MAAM;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,KAAK;AAC9B;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;;AAEA,+BAA+B,uGAAuG,GAAG,sEAAsE;AAC/M,+BAA+B,mGAAmG,GAAG,wEAAwE;AAC7M,gCAAgC,kGAAkG,GAAG,sEAAsE;AAC3M,yBAAyB,KAAK;AAC9B,sCAAsC,uEAAuE,GAAG,wEAAwE;AACxL;AACA;AACA,kCAAkC,sEAAsE,GAAG,wEAAwE;;AAEnL;AACA;;AAEA;AACA;AACA;AACA,yCAAyC,KAAK;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yCAAyC,KAAK;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,0C;AACA;AACA;AACA;AACA,yCAAyC,YAAY,wLAAwL;AAC7O;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,oD;AACA;;AAEA;AACA,mEAAmE,KAAK;AACxE;AACA;AACA,oFAAoF,UAAU;AAC9F;;AAEA;AACA,qEAAqE,KAAK;AAC1E;AACA;AACA,sFAAsF,UAAU;AAChG;;AAEA;AACA;AACA;AACA;;AAEA,8DAA8D,KAAK;AACnE;AACA;;AAEA,gEAAgE,KAAK;AACrE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yCAAyC,KAAK;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,mDAAmD;AACrH,wEAAwE,mDAAmD;AAC3H;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;;AAEA;AACA,kDAAkD,UAAU;AAC5D,qDAAqD,UAAU;AAC/D,sDAAsD,UAAU;AAChE,sDAAsD,UAAU;AAChE,uDAAuD,UAAU;AACjE,uDAAuD,UAAU;AACjE;AACA,wDAAwD,UAAU;AAClE;AACA;AACA;AACA;AACA;AACA,wDAAwD,UAAU;AAClE;AACA;;AAEA;AACA;AACA;AACA,2BAA2B;AAC3B,2BAA2B;AAC3B;AACA;AACA;AACA,sBAAsB,KAAK;AAC3B;AACA;AACA;AACA;AACA;;AAEA,oBAAoB;AACpB;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,MAAM;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,uBAAuB;AACxD;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,uBAAuB;AACxD;AACA;AACA;AACA,wCAAwC;AACxC;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,qCAAqC,qBAAqB;AAC1D;AACA;AACA;AACA,4CAA4C;AAC5C;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,qCAAqC,qBAAqB;AAC1D;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yCAAyC,qBAAqB;AAC9D;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iCAAiC,YAAY;AAC7C;AACA;AACA,wCAAwC;AACxC;AACA,yB;AACA,8B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2I;AACA;;AAEA;AACA;AACA;;AAEA,iDAAiD,gBAAgB,Q;AACjE;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,qC;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;;AAEA;;AAEA;AACA;AACA;AACA,6CAA6C,qBAAqB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA,iC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,qBAAqB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA,6B;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;AAIA;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;;AAEA;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;;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;;AAEA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yBAAyB,sBAAsB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iD;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mCAAmC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA,6BAA6B,KAAK;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,KAAK;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mCAAmC,IAAI,wBAAwB,IAAI,wBAAwB,IAAI;AAC/F;AACA;AACA,qBAAqB,KAAK;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC,IAAI,wBAAwB,IAAI,wBAAwB,IAAI;AAC/F;AACA;AACA,qBAAqB,KAAK;AAC1B;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;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;;AAEA,sDAAsD;;AAEtD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wCAAwC;;AAEhE;;AAEA;AACA;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,qBAAqB,KAAK;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,oCAAoC,KAAK;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mGAAmG,mHAAmH;AACtN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sGAAsG,8GAA8G;AACpN;AACA,8DAA8D,6BAA6B;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mGAAmG,mHAAmH;AACtN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sGAAsG,8GAA8G;AACpN;AACA,8DAA8D,6BAA6B;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,KAAK;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,4CAA4C;AAChH;AACA;AACA,kFAAkF,yEAAyE;AAC3J;AACA,wCAAwC,KAAK;AAC7C;AACA;AACA;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,8GAA8G;AAC1L;AACA;AACA,kDAAkD,6BAA6B;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,wFAAwF;AAC9J,0EAA0E,wFAAwF;AAClK,4EAA4E,sFAAsF;AAClK,wEAAwE,sFAAsF;AAC9J;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;;AAE1B;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;;;AAGA,6EAA6E;AAC7E,2EAA2E;AAC3E,8EAA8E,uBAAuB;AACrG,uDAAuD;AACvD,0FAA0F;AAC1F;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;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;AACA;AACA;AACA;AACA;AACA;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;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,qCAAqC;AACrC;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;;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;;;AAGA,qBAAqB;;AAErB;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC,iIAAiI;;AAEnK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA,iDAAiD,KAAK;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,KAAK;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,OAAO;AACnD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,KAAK;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8CAA8C,OAAO;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,sCAAsC,KAAK;AAC3C;AACA;AACA;AACA;AACA,sCAAsC,KAAK;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oCAAoC,KAAK;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C,SAAS;AACnD;AACA;AACA;AACA,2BAA2B,OAAO;AAClC,oCAAoC;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,a;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,sCAAsC,OAAO;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wC;AACA;AACA;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,sCAAsC,OAAO;;AAE7C;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,WAAW;AAChC;AACA;AACA;AACA;AACA,yC;;AAEA,8B;AACA,wD;AACA;AACA,iBAAiB;AACjB,sD;AACA,sD;AACA;AACA,8B;AACA,uD;AACA;AACA,iBAAiB;AACjB,uD;AACA,uD;AACA;;AAEA;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;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,a;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gDAAgD,KAAK;AACrD;AACA;AACA,iDAAiD,KAAK;AACtD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;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,qBAAqB,eAAe;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gDAAgD,KAAK;AACrD;AACA;AACA,iDAAiD,KAAK;AACtD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,6CAA6C,eAAe;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0E;AACA,oF;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,mE;AACA;AACA;AACA;AACA;AACA,mDAAmD,KAAK;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gE;AACA;AACA;AACA;AACA;AACA,mDAAmD,KAAK;AACxD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wE;AACA;AACA;AACA,uDAAuD,SAAS,4BAA4B;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,gBAAgB;AACrD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB,aAAa;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,M;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,K;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,mDAAmD,UAAU,iBAAiB,2BAA2B,EAAE;AAC3G,K;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;;;AAGA;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;;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;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,YAAY;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,YAAY;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wD;AACA;AACA;AACA;AACA,gCAAgC,4CAA4C;AAC5E;AACA;AACA;AACA,gCAAgC,yCAAyC;AACzE;AACA;AACA;AACA,gCAAgC,wCAAwC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,yCAAyC;AACzE;AACA;AACA;AACA;AACA,S;AACA,M;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qBAAqB,oBAAoB;AACzC;AACA;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;;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;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,kH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,iCAAiC,uBAAuB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,eAAe;AACxD;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;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;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;;AAEA;AACA;AACA,qB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,8F;AACA;AACA;AACA;AACA;AACA,sDAAsD,GAAG;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;AAEA;AACA,yBAAyB,oBAAoB;AAC7C;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iCAAiC,mBAAmB;AACpD;AACA,8CAA8C,qBAAqB,qDAAqD;AACxH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,eAAe;AACxC;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;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;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;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,6BAA6B,gBAAgB;AAC7C;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,gBAAgB;AAC7C;AACA,gD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,qB;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oB;AACA;;AAEA;;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;AACA;AACA;AACA;AACA;;AAEA,iCAAiC,KAAK;AACtC;AACA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;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,S;;AAEA,8B;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;AACA;AACA;AACA;AACA,S;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD,qDAAqD;AACrD,sDAAsD;AACtD,4CAA4C;AAC5C,0BAA0B;AAC1B;;AAEA;AACA,gCAAgC;AAChC,mEAAmE;AACnE,kDAAkD;AAClD;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;;AAEA;AACA,gCAAgC;AAChC,mEAAmE;AACnE,kDAAkD;AAClD;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,sDAAsD;AACtD,qDAAqD;AACrD,8DAA8D;AAC9D,4CAA4C;AAC5C,0BAA0B;;AAE1B;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,gCAAgC;AAChC,mCAAmC;AACnC,6BAA6B;AAC7B,+CAA+C;AAC/C,gDAAgD;AAChD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;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;;AAEA;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB;AACrB;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,oCAAoC,iBAAiB,gBAAgB;AACrE;AACA,oDAAoD,gBAAgB;AACpE,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oCAAoC,iBAAiB,gBAAgB;AACrE;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE,oDAAoD,gBAAgB;AACpE;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;;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;AACA;AACA;AACA;AACA;AACA;AACA;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,gD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA,qF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,iBAAiB;AAC9C;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;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA,mC;;AAEA;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,iF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iBAAiB;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;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,oCAAoC;;AAExD;AACA;AACA;AACA;AACA,sBAAsB,2CAA2C;;AAEjE;;AAEA,2EAA2E,mBAAmB;AAC9F,+FAA+F,uBAAuB;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mFAAmF;AACnF;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;;AAEA,sBAAsB;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;;;AAGA;AACA;AACA;AACA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,qCAAqC;AACtE;AACA;AACA;AACA;AACA,yB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,eAAe;AACvD;AACA;AACA;AACA;AACA,wCAAwC,eAAe;AACvD;AACA;AACA;AACA;AACA,wCAAwC,kBAAkB;AAC1D;AACA;AACA;AACA;AACA,wCAAwC,iBAAiB;AACzD;AACA;AACA;AACA;AACA,wCAAwC,iBAAiB;AACzD;AACA;AACA;AACA;AACA,wCAAwC,cAAc;AACtD;AACA;AACA;AACA;AACA,wCAAwC,kBAAkB;AAC1D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,cAAc;AACtD;AACA;AACA;AACA;AACA,wCAAwC,cAAc;AACtD;AACA;AACA;AACA;AACA,wCAAwC,iBAAiB;AACzD;AACA;AACA;AACA;AACA,wCAAwC,cAAc;AACtD;AACA;AACA;AACA;AACA,wCAAwC,kBAAkB;AAC1D;AACA;AACA;AACA;AACA,wCAAwC,eAAe;AACvD;AACA;AACA;AACA;AACA,wCAAwC,kBAAkB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,wBAAwB;AAChE;AACA;AACA;AACA,wCAAwC,yBAAyB;AACjE;AACA;AACA,wCAAwC,yBAAyB;AACjE;AACA;AACA;AACA,wCAAwC,2BAA2B;AACnE;AACA;AACA,wCAAwC,2CAA2C;AACnF;AACA;AACA;AACA,wCAAwC,+BAA+B;AACvE;AACA;AACA,wCAAwC,yCAAyC;AACjF;AACA;AACA;AACA,wCAAwC,yBAAyB;AACjE;AACA;AACA,wCAAwC,2CAA2C;AACnF;AACA;AACA;AACA,S;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,0BAA0B;AAC1B;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,0BAA0B;AAC1B,kBAAkB;AAClB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,qCAAqC,gBAAgB;AACrD;;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;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,kCAAkC,YAAY;;AAE9C;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,qBAAqB,aAAa;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,cAAc;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;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,a;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,oBAAoB;AACzC;AACA;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;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;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;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,S;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,uCAAuC;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kEAAkE,EAAE;AACpE;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;;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;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;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;;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;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA;AACA,sCAAsC;AACtC,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,kBAAkB;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA,oD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB,MAAM;AAC/B;AACA;AACA;AACA;AACA;AACA,iB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,KAAK;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,mGAAmG;AACnG;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;;AAEjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,oDAAoD;AACpD,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA;AACA;AACA;AACA;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,oCAAoC,sBAAsB,OAAO;AACjF;AACA,oDAAoD,+BAA+B;AACnF;;AAEA;;AAEA;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,8BAA8B,oBAAoB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,O;AACjB;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,mCAAmC,kBAAkB,OAAO;AAC3E,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,iBAAiB,OAAO;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,2F;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA,8C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA,gD;AACA,sC;AACA,6B;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;;;AAGA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,sE;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,0CAA0C,EAAE;AAC5C;AACA,M;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA,M;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,uEAAuE;AACvF;AACA;AACA,kEAAkE,+BAA+B;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oBAAoB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB,aAAa,qBAAqB;AAClC,iBAAiB,OAAO;AACxB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,OAAO;AACxB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E;AAC7E;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,6DAA6D,qCAAqC;AAClG,yDAAyD,wBAAwB;AACjF;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,2DAA2D;AAC3D;AACA,6DAA6D,+DAA+D;AAC5H,0EAA0E;AAC1E;AACA,SAAS;;AAET;AACA,2DAA2D;AAC3D;AACA,6DAA6D,+DAA+D;AAC5H,0EAA0E;AAC1E;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;;AAEA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,S;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,S;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sCAAsC,mBAAmB,OAAO;AAC/E,eAAe,OAAO;AACtB,aAAa,qBAAqB;AAClC,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,M;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;;AAEA;AACA,6CAA6C,IAAI,SAAS,IAAI,SAAS,IAAI;;AAE3E;AACA;AACA;AACA;AACA;;AAEA;AACA,kEAAkE,GAAG,UAAU,EAAE;;AAEjF;AACA,iEAAiE,GAAG,UAAU,EAAE;AAChF;AACA;AACA;AACA;;AAEA;AACA,sEAAsE,GAAG,UAAU,EAAE;;AAErF;;AAEA;AACA;AACA;AACA;AACA;AACA,wCAAwC,IAAI,aAAa,IAAI,aAAa,IAAI;;AAE9E;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B;AAC1B;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;;AAEA;AACA,8CAA8C,IAAI,aAAa,IAAI,aAAa,IAAI;;AAEpF;;AAEA;AACA;AACA;;AAEA;AACA,4CAA4C,IAAI,aAAa,IAAI,aAAa,IAAI;;AAElF;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,EAAE;AAChE;AACA,mBAAmB,EAAE;AACrB;AACA,uB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,0DAA0D,EAAE,aAAa,IAAI,aAAa,EAAE;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;;AAEA,sBAAsB;AACtB;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,S;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+CAA+C,YAAY;AAC3D;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;AAEA;;AAEA;AACA;AACA,0BAA0B,KAAK;AAC/B,2EAA2E,EAAE;AAC7E;AACA,6B;AACA;;AAEA;AACA;AACA;AACA;AACA,gCAAgC,iBAAiB,EAAE;AACnD;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C,gCAAgC;AAC1E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,oCAAoC,YAAY;;AAEhD;AACA;AACA,2BAA2B,2BAA2B;AACtD,+CAA+C;AAC/C,+CAA+C;AAC/C,6CAA6C;AAC7C,yCAAyC;AACzC,6CAA6C;AAC7C,2CAA2C;AAC3C,qDAAqD;AACrD;;AAEA;AACA;;AAEA;AACA;AACA,a;AACA;AACA;AACA,a;AACA;AACA;AACA,a;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,a;AACA;AACA;AACA,a;AACA;AACA;AACA,a;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;AACA;AACA;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;;AAEA;AACA;;AAEA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4FAA4F;AAC5G;;AAEA;AACA;AACA;;;;;AAKA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,yBAAyB,gBAAgB;AACzC;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,yBAAyB,gBAAgB;AACzC;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,uCAAuC;;AAEvC;AACA;AACA,6BAA6B,uBAAuB;AACpD,6BAA6B,uBAAuB;AACpD,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,KAAK;;;;;AAKL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB,uBAAuB;AAC7C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;;AAEA,CAAC;;;;;;;;AClpWD,yC;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,4BAA4B;AACrD;AACA;AACA;AACA,6BAA6B,KAAK;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oBAAoB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,eAAe;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,4B;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,iDAAiD,KAAK;AACtD;AACA;AACA;AACA;AACA,iDAAiD,KAAK;AACtD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,a;;AAEA,4B;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;AACA;AACA;AACA;AACA;AACA;AACA;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;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,kCAAkC,KAAK;AACvC;AACA;;AAEA;;AAEA;;AAEA;AACA,wD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,sCAAsC,KAAK;AAC3C;AACA;AACA;AACA;;AAEA,qBAAqB,aAAa;;AAElC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,6GAA6G;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gBAAgB;AAC/C;AACA,S;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA,0B;AACA;;;;;AAKA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA,sBAAsB;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;;AAEA;;AAEA;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;;AAEA;AACA,iC;AACA;AACA,4B;AACA,+B;;AAEA,yBAAyB,MAAM;AAC/B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAA6B,MAAM;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA,qCAAqC,oCAAoC;;AAEzE;AACA;AACA;AACA;AACA,sCAAsC,2CAA2C;AACjF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qB;AACA;AACA;AACA;AACA,0B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,uEAAuE,UAAU;;AAEjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,2BAA2B;AACpD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;;AAEA;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AA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A;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAkB,4BAA4B;AACzD;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,OAAO;AACnB,YAAY,mBAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,mBAAmB;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,mBAAmB;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,mBAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,mBAAmB;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;;AAEjD;AACA;AACA;AACA;;AAEA;AACA,8CAA8C;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,cAAc;AAC1B,YAAY,yBAAyB;AACrC,2CAA2C,4BAA4B;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,iCAAiC;;AAEvE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,oBAAoB;AACpB;AACA;;AAEA;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,YAAY,eAAe;AAC3B;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,kCAAkC;;AAEjF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA,aAAa,cAAc;AAC3B,aAAa,IAAI;AACjB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,YAAY,aAAa;AACzB,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wCAAwC;AAChD,YAAY,sCAAsC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA,wCAAwC,WAAW,EAAE;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,qBAAqB;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;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;;AAEA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,2EAA2E;AACnF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,aAAa,cAAc;AAC3B,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,uBAAuB,sCAAsC;AACzE;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA,gBAAgB,8BAA8B;AAC9C;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB;;AAEnB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;;AAEA;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;;AAEA;AACA,MAAM;AACN;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB,gBAAgB;AAChB;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;;;AAGA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,gBAAgB,6BAA6B;AAC7C;AACA;AACA;AACA;AACA;;;AAGA;AACA,uFAAuF;AACvF;;;AAGA;AACA,sDAAsD;AACtD;;;AAGA;AACA,kFAAkF;AAClF;;;AAGA;AACA,4DAA4D;AAC5D;;;AAGA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,gBAAgB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,kBAAkB;AAClB,oBAAoB;AACpB;AACA;;AAEA,qBAAqB,cAAc;AACnC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,KAAK;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA,2CAA2C,KAAK;AAChD,0CAA0C,KAAK;AAC/C;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4CAA4C,OAAO;AACnD;AACA;AACA;AACA;AACA,2CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,wBAAwB;AAC9C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,2CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;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;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,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;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,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;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;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA,mCAAmC,sDAAsD;AACzF,EAAE;;AAEF;AACA;AACA;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;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,SAAS;AACtB;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB;AACA,eAAe,MAAM;AACrB;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,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,MAAM;AACN,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mCAAmC;AACnE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;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;;AAEA,cAAc,WAAW;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;;AAEzB,0CAA0C,qBAAqB;;AAE/D;AACA;AACA;AACA;AACA;AACA,mCAAmC,oBAAoB;;AAEvD;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,eAAe,iBAAiB;AAChC;;AAEA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B,oBAAoB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,GAAG;AACH,uCAAuC;AACvC;AACA,IAAI,OAAO;AACX;AACA;AACA;AACA;AACA,GAAG,OAAO;AACV;AACA;;AAEA,EAAE;;AAEF,6BAA6B,4DAA4D,aAAa,EAAE;;AAExG,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,SAAS;AAC3B;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,QAAQ;AACR;AACA;AACA,MAAM;;AAEN;;AAEA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gBAAgB,iBAAiB;AACjC;;AAEA,gBAAgB,iBAAiB;AACjC;;AAEA;AACA;;AAEA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,kBAAkB,oBAAoB;AACtC;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;;;AAGA;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;;AAGA,2BAA2B,IAAI;AAC/B,4CAA4C,KAAK;AACjD,gDAAgD,KAAK;AACrD;AACA;AACA;AACA;AACA;;;AAGA;AACA,qCAAqC,oBAAoB,2BAA2B;AACpF,2CAA2C,oBAAoB;AAC/D,yCAAyC;AACzC,2CAA2C,aAAa;AACxD,qDAAqD,6CAA6C;AAClG,sCAAsC;AACtC;AACA,sEAAsE;;AAEtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,mBAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;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;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,cAAc;AACtC;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA,2DAA2D,cAAc;;AAEzE;AACA;AACA;AACA,6BAA6B;AAC7B,6BAA6B;AAC7B;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,+BAA+B;AACrD;AACA,MAAM,GAAG,UAAU;AACnB;;AAEA;AACA,cAAc;AACd;;AAEA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;;AAEN;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,UAAU;AACV;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,sBAAsB;AACtB;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;;AAEN;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;;AAEA;;AAEA;AACA;;AAEA,sBAAsB;AACtB,oBAAoB;AACpB;AACA,0BAA0B;AAC1B,wBAAwB;AACxB,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;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,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE,WAAW;AACnB;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4BAA4B,YAAY;AACxC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,4BAA4B,YAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,uCAAuC;AACvC,eAAe,wDAAwD;AACvE,eAAe,0BAA0B;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,UAAU;AAC/B;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,0EAA0E,gBAAgB;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,+CAA+C;AAC/C;AACA;AACA;AACA,gBAAgB;AAChB;AACA,mBAAmB,2LAA2L;AAC9M;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,QAAQ;AACR,oBAAoB;AACpB;AACA;AACA;AACA,gDAAgD;AAChD;AACA,iEAAiE;AACjE,UAAU;AACV,wDAAwD,cAAc;AACtE;AACA,QAAQ;AACR,4CAA4C,wCAAwC,wBAAwB,UAAU;AACtH;AACA,MAAM;AACN;AACA;AACA,gCAAgC;AAChC,UAAU;AACV,2CAA2C,aAAa;AACxD;AACA,QAAQ;AACR,8CAA8C;AAC9C;AACA;AACA;AACA,iBAAiB,EAAE,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,6BAA6B;AAC7B,0DAA0D;AAC1D,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E;AACA;AACA;AACA,mEAAmE;AACnE;AACA,6HAA6H;AAC7H;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D,oCAAoC;AACpC;AACA;AACA,8FAA8F,2DAA2D,8CAA8C,GAAG;AAC1M;AACA;AACA,iJAAiJ,8DAA8D;AAC/M,cAAc;AACd;AACA;AACA;AACA;AACA,gEAAgE;AAChE,cAAc;AACd,2IAA2I,2FAA2F;AACtO,cAAc;AACd,sIAAsI;AACtI,cAAc;AACd,4MAA4M;AAC5M;AACA;AACA;AACA,mFAAmF;AACnF;AACA;AACA,kBAAkB;AAClB;AACA,qBAAqB,kLAAkL;AACvM;AACA;AACA,YAAY;AACZ;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,UAAU;AACV,sBAAsB;AACtB;AACA;AACA;AACA,kDAAkD;AAClD;AACA,mEAAmE;AACnE,YAAY;AACZ,0DAA0D,cAAc;AACxE;AACA,UAAU;AACV,8CAA8C,wCAAwC,wBAAwB,UAAU;AACxH;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA,4FAA4F,EAAE;AAC9F,QAAQ;AACR;AACA;AACA,kBAAkB;AAClB;AACA,qBAAqB,kLAAkL;AACvM;AACA;AACA,YAAY;AACZ;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,UAAU;AACV,sBAAsB;AACtB;AACA;AACA;AACA,kDAAkD;AAClD;AACA,mEAAmE;AACnE,YAAY;AACZ,0DAA0D,cAAc;AACxE;AACA,UAAU;AACV,8CAA8C,wCAAwC,wBAAwB,UAAU;AACxH;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,QAAQ;AACR;AACA;AACA,kBAAkB;AAClB,4BAA4B;AAC5B;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,2BAA2B,kLAAkL;AAC7M;AACA;AACA,kBAAkB;AAClB;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,gBAAgB;AAChB,4BAA4B;AAC5B;AACA;AACA;AACA,wDAAwD;AACxD;AACA,yEAAyE;AACzE,kBAAkB;AAClB,gEAAgE,cAAc;AAC9E;AACA,gBAAgB;AAChB,oDAAoD,wCAAwC,wBAAwB,UAAU;AAC9H;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,wBAAwB;AACxB,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,wDAAwD;AACxD,MAAM;AACN,0CAA0C;AAC1C,oCAAoC;AACpC;AACA,eAAe,EAAE,iBAAiB;AAClC,IAAI;AACJ,oEAAoE;AACpE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;;AAGA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kBAAkB;AAC9B,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB,aAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,gBAAgB,MAAM;AACtB,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,MAAM;AACtB,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA,YAAY,MAAM;AAClB,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY;AACZ,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA,YAAY,MAAM;AAClB,aAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,aAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,MAAM;AAClB,aAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,MAAM;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,MAAM;AAClB,aAAa;AACb;AACA;;AAEA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,uCAAuC,KAAK,oCAAoC,KAAK;AACrF,wEAAwE,cAAc,EAAE,+BAA+B,IAAI,GAAG,EAAE,eAAe,IAAI,GAAG,EAAE,aAAa,IAAI,gBAAgB,IAAI,GAAG,EAAE,gBAAgB,IAAI,GAAG,IAAI,SAAS,IAAI,gBAAgB,IAAI,GAAG,EAAE,gBAAgB,IAAI,GAAG,IAAI,SAAS,IAAI,gBAAgB,IAAI,GAAG,EAAE,gBAAgB,IAAI,GAAG,IAAI,SAAS,IAAI,aAAa,IAAI,iBAAiB,IAAI,GAAG,IAAI,SAAS,IAAI,iBAAiB,IAAI,UAAU,IAAI,uCAAuC,EAAE,gDAAgD,IAAI,GAAG,IAAI,SAAS,IAAI,aAAa,IAAI,gBAAgB,IAAI,GAAG,IAAI,SAAS,IAAI,2CAA2C,8CAA8C,EAAE,yDAAyD,aAAa,EAAE,0CAA0C,eAAe,EAAE,mCAAmC,eAAe,EAAE,gCAAgC,eAAe,EAAE,gCAAgC,eAAe,EAAE,gCAAgC,eAAe,EAAE,mCAAmC,kBAAkB,EAAE,kCAAkC,kBAAkB,EAAE;AACroC,4EAA4E,cAAc,EAAE,+BAA+B,IAAI,GAAG,EAAE,eAAe,IAAI,GAAG,EAAE,aAAa,IAAI,gBAAgB,IAAI,GAAG,EAAE,gBAAgB,IAAI,GAAG,IAAI,SAAS,IAAI,gBAAgB,IAAI,GAAG,EAAE,gBAAgB,IAAI,GAAG,IAAI,SAAS,IAAI,gBAAgB,IAAI,GAAG,EAAE,gBAAgB,IAAI,GAAG,IAAI,SAAS,IAAI,aAAa,IAAI,iBAAiB,IAAI,GAAG,IAAI,SAAS,IAAI,iBAAiB,IAAI,UAAU,IAAI,uCAAuC,EAAE,gDAAgD,IAAI,GAAG,IAAI,SAAS,IAAI,aAAa,IAAI,gBAAgB,IAAI,GAAG,IAAI,SAAS,IAAI,2CAA2C,8CAA8C,EAAE,0DAA0D,aAAa,EAAE,2CAA2C,eAAe,EAAE,oCAAoC,eAAe,EAAE,iCAAiC,eAAe,EAAE,iCAAiC,eAAe,EAAE,iCAAiC,eAAe,EAAE,qCAAqC,kBAAkB,EAAE,mCAAmC,kBAAkB,EAAE;AAClpC;AACA,gDAAgD,EAAE,YAAY,EAAE,IAAI,OAAO,gCAAgC,EAAE,kBAAkB,IAAI,gCAAgC,EAAE,kBAAkB,IAAI,SAAS;AACpM;AACA;AACA;AACA,yEAAyE,IAAI,EAAE,EAAE,eAAe,IAAI,EAAE,EAAE,oBAAoB,IAAI,EAAE,EAAE,oBAAoB,IAAI,EAAE,EAAE,sCAAsC,IAAI,EAAE,EAAE,gDAAgD,IAAI,oBAAoB,EAAE,uDAAuD,KAAK,IAAI,KAAK,gBAAgB,KAAK,IAAI,KAAK,qBAAqB,KAAK,IAAI,KAAK,gBAAgB,KAAK,IAAI,KAAK,sBAAsB,KAAK,IAAI,KAAK,EAAE,GAAG,UAAU,IAAI;AACnf,2jBAA2jB,IAAI,EAAE,EAAE,kBAAkB,IAAI,EAAE,EAAE,uBAAuB,IAAI,EAAE,EAAE,uBAAuB,IAAI,EAAE,EAAE,2CAA2C,IAAI,EAAE,EAAE,+DAA+D,IAAI,uBAAuB,EAAE,soBAAsoB,GAAG,aAAa,IAAI;AACp8C,uCAAuC,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,GAAG;AACzE,iFAAiF,eAAe,EAAE;AAClG;;;AAGA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,EAAE,0BAA0B,KAAK,oCAAoC,KAAK;AAC9G;AACA;AACA,iDAAiD,EAAE;AACnD;AACA,gCAAgC,IAAI,GAAG,EAAE,YAAY,IAAI,oBAAoB,IAAI,GAAG,EAAE,aAAa,IAAI,iFAAiF,EAAE,qBAAqB,IAAI,GAAG,EAAE,mBAAmB,IAAI,EAAE,IAAI,mFAAmF,EAAE,qBAAqB,IAAI,GAAG,EAAE,mBAAmB,IAAI,EAAE,IAAI,kBAAkB,IAAI,mFAAmF,EAAE,sBAAsB,IAAI,GAAG,EAAE,mBAAmB,IAAI,EAAE,IAAI,kBAAkB,IAAI,EAAE,IAAI,iFAAiF,EAAE,sBAAsB,IAAI,GAAG,EAAE,mBAAmB,IAAI,EAAE,IAAI,kBAAkB,IAAI,EAAE,IAAI,iFAAiF,EAAE,sBAAsB,IAAI,GAAG,EAAE,mBAAmB,IAAI,EAAE,IAAI,kBAAkB,IAAI,EAAE,IAAI,iFAAiF,EAAE,8BAA8B,IAAI,EAAE,IAAI,kBAAkB,IAAI,EAAE,IAAI,iFAAiF,EAAE;AACxoC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,EAAE,iCAAiC,EAAE;AACxE;AACA,iDAAiD,EAAE;AACnD,gCAAgC,IAAI,GAAG,EAAE,YAAY,IAAI,oBAAoB,IAAI,GAAG,EAAE,aAAa,IAAI,iFAAiF,EAAE,qBAAqB,IAAI,GAAG,EAAE,mBAAmB,IAAI,EAAE,IAAI,mFAAmF,EAAE,qBAAqB,IAAI,GAAG,EAAE,mBAAmB,IAAI,EAAE,IAAI,kBAAkB,IAAI,mFAAmF,EAAE,sBAAsB,IAAI,GAAG,EAAE,mBAAmB,IAAI,EAAE,IAAI,kBAAkB,IAAI,EAAE,IAAI,iFAAiF,EAAE,sBAAsB,IAAI,GAAG,EAAE,mBAAmB,IAAI,EAAE,IAAI,kBAAkB,IAAI,EAAE,IAAI,iFAAiF,EAAE,sBAAsB,IAAI,GAAG,EAAE,mBAAmB,IAAI,EAAE,IAAI,kBAAkB,IAAI,EAAE,IAAI,iFAAiF,EAAE,8BAA8B,IAAI,EAAE,IAAI,kBAAkB,IAAI,EAAE,IAAI,iFAAiF,EAAE;AACxoC;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN,iBAAiB,kCAAkC;AACnD,iBAAiB,kCAAkC,2BAA2B;AAC9E,MAAM;AACN,iEAAiE;AACjE,MAAM;AACN,8EAA8E;AAC9E,MAAM;AACN;AACA,iBAAiB,8DAA8D,IAAI;AACnF,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA,IAAI;;AAEJ;AACA;;AAEA;AACA;;;AAGA,OAAO;AACP;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;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,qBAAqB,iKAAiK,mDAAmD;AACzO;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,UAAU;AACV,sBAAsB;AACtB;AACA;AACA;AACA,kDAAkD;AAClD;AACA,mEAAmE;AACnE,YAAY;AACZ,0DAA0D,cAAc;AACxE;AACA,UAAU;AACV,8CAA8C,wCAAwC,wBAAwB,UAAU;AACxH;AACA;AACA,gCAAgC;AAChC;AACA,QAAQ;AACR;AACA;AACA,+BAA+B;AAC/B;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA,qBAAqB,kDAAkD;AACvE;AACA,0CAA0C;AAC1C;AACA,iBAAiB,YAAY,8CAA8C,0CAA0C,yCAAyC,yBAAyB;AACvL;AACA,2CAA2C;AAC3C;AACA,iBAAiB;AACjB;AACA,yCAAyC;AACzC;AACA,MAAM;AACN,gDAAgD,2DAA2D,0DAA0D,yBAAyB,EAAE;AAChM;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;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,+CAA+C;AAC/C,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,2CAA2C,8BAA8B;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,yBAAyB;AACvG,6BAA6B;AAC7B;AACA;AACA;AACA,+DAA+D,iBAAiB;AAChF;AACA,iBAAiB,mKAAmK;AACpL;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,MAAM;AACN,kBAAkB;AAClB;AACA,cAAc,wCAAwC,wBAAwB,UAAU;AACxF,8CAA8C;AAC9C;AACA,qDAAqD;AACrD,QAAQ;AACR,4CAA4C,cAAc;AAC1D;AACA;AACA,eAAe,OAAO,2BAA2B,wBAAwB,uDAAuD,qBAAqB,EAAE;AACvJ;AACA,iBAAiB;AACjB;AACA;AACA,IAAI;AACJ;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4GAA4G;AAC5G;AACA,IAAI;AACJ;AACA;AACA;AACA,8EAA8E;AAC9E;AACA,+EAA+E,yBAAyB;AACxG;AACA;AACA,YAAY;AACZ;AACA,eAAe,mKAAmK;AAClL;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,IAAI;AACJ,gBAAgB;AAChB;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,6DAA6D;AAC7D,MAAM;AACN,oDAAoD,cAAc;AAClE;AACA,IAAI;AACJ,wCAAwC,wCAAwC,wBAAwB,UAAU;AAClH;AACA,aAAa;AACb;AACA,oBAAoB;AACpB;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,qBAAqB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,6BAA6B,yCAAyC,oBAAoB;AACzI;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,8DAA8D;AAC9D;AACA,8CAA8C,EAAE;AAChD;AACA,mEAAmE;AACnE,IAAI;AACJ,gDAAgD;AAChD;AACA;AACA;AACA,YAAY;AACZ;AACA,eAAe,sKAAsK;AACrL;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,IAAI;AACJ,gBAAgB;AAChB;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,6DAA6D;AAC7D,MAAM;AACN,oDAAoD,cAAc;AAClE;AACA,IAAI;AACJ,wCAAwC,wCAAwC,wBAAwB,UAAU;AAClH;AACA,aAAa,OAAO;AACpB;AACA,wCAAwC,wBAAwB,uDAAuD,qBAAqB,EAAE;AAC9I;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA,qCAAqC;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,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,qBAAqB,yKAAyK,yOAAyO;AACva;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,UAAU;AACV,sBAAsB;AACtB;AACA;AACA;AACA,kDAAkD;AAClD;AACA,mEAAmE;AACnE,YAAY;AACZ,0DAA0D,cAAc;AACxE;AACA,UAAU;AACV,8CAA8C,wCAAwC,wBAAwB,UAAU;AACxH;AACA,QAAQ;AACR,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA,yBAAyB,yKAAyK,yOAAyO;AAC3a;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,cAAc;AACd,0BAA0B;AAC1B;AACA,sBAAsB,wCAAwC,wBAAwB,UAAU,EAAE;AAClG;AACA;AACA;AACA,iBAAiB;AACjB;AACA,6BAA6B;AAC7B,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,6CAA6C;AAC7C,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,yEAAyE;AACzE;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4GAA4G;AAC5G;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,4EAA4E;AAC5E;AACA,gCAAgC;AAChC;AACA,8EAA8E,yEAAyE,OAAO;AAC9J;AACA,oCAAoC,wBAAwB,wCAAwC,gFAAgF,yBAAyB,OAAO,EAAE;AACtN;AACA,gBAAgB;AAChB;AACA,oCAAoC;AACpC;AACA;AACA,YAAY;AACZ;AACA,eAAe,iKAAiK,sCAAsC;AACtN;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,IAAI;AACJ,gBAAgB;AAChB;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,6DAA6D;AAC7D,MAAM;AACN,oDAAoD,cAAc;AAClE;AACA,IAAI;AACJ,wCAAwC,wCAAwC,wBAAwB,UAAU;AAClH;AACA,aAAa;AACb;AACA,oBAAoB;AACpB;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,4GAA4G;AAC5G;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,0IAA0I,yFAAyF,2BAA2B;AACpU;AACA,kEAAkE;AAClE;AACA,6DAA6D,EAAE;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,6DAA6D;AAC7D,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,QAAQ;AACR;AACA,+BAA+B;AAC/B;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF;AACvF,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,eAAe,mKAAmK;AAClL;AACA;AACA,MAAM;AACN;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,eAAe;AACf,IAAI;AACJ,gBAAgB;AAChB;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,6DAA6D;AAC7D,MAAM;AACN,oDAAoD,cAAc;AAClE;AACA,IAAI;AACJ,wCAAwC,wCAAwC,wBAAwB,UAAU;AAClH;AACA,aAAa;AACb;AACA,oBAAoB;AACpB;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,qBAAqB;AAC7D;AACA;AACA;AACA,sFAAsF;AACtF;AACA;AACA,yCAAyC;AACzC;AACA;AACA,gBAAgB;AAChB;AACA,mBAAmB,4KAA4K,kCAAkC;AACjO;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,QAAQ;AACR,oBAAoB;AACpB;AACA;AACA;AACA,gDAAgD;AAChD;AACA,iEAAiE;AACjE,UAAU;AACV,wDAAwD,cAAc;AACtE;AACA,QAAQ;AACR,4CAA4C,wCAAwC,wBAAwB,UAAU;AACtH;AACA,iBAAiB;AACjB;AACA;AACA,6BAA6B;AAC7B,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,6CAA6C;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,oEAAoE;AACpE;AACA,qBAAqB;AACrB;AACA,iDAAiD;AACjD,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,yDAAyD,qDAAqD,yCAAyC,oBAAoB;AACvN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,gEAAgE;AAChE;AACA;AACA,mDAAmD;AACnD;AACA,iBAAiB,EAAE;AACnB;AACA,6CAA6C;AAC7C,6BAA6B;AAC7B;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,qDAAqD,yCAAyC,oBAAoB;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,8DAA8D;AAC9D;AACA;AACA,iDAAiD;AACjD;AACA,eAAe;AACf;AACA;AACA,uEAAuE;AACvE;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4GAA4G;AAC5G;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE;AACxE;AACA,uCAAuC,6DAA6D,uHAAuH;AAC3N;AACA;AACA;AACA,cAAc;AACd;AACA,iBAAiB,8LAA8L;AAC/M;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,MAAM;AACN,kBAAkB;AAClB;AACA;AACA;AACA,8CAA8C;AAC9C;AACA,+DAA+D;AAC/D,QAAQ;AACR,sDAAsD,cAAc;AACpE;AACA,MAAM;AACN,0CAA0C,wCAAwC,wBAAwB,UAAU;AACpH;AACA,eAAe;AACf;AACA;AACA;AACA,khBAAkhB,sFAAsF;AACxmB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qRAAqR;AACrR,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iHAAiH;AACjH;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,eAAe,oLAAoL,gGAAgG;AACnS;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,eAAe;AACf,IAAI;AACJ,gBAAgB;AAChB;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,6DAA6D;AAC7D,MAAM;AACN,oDAAoD,cAAc;AAClE;AACA,IAAI;AACJ,wCAAwC,wCAAwC,wBAAwB,UAAU;AAClH;AACA,aAAa;AACb;AACA,oBAAoB;AACpB;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4GAA4G;AAC5G;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E;AAC1E;AACA;AACA;AACA,YAAY;AACZ;AACA,eAAe,yLAAyL,gCAAgC;AACxO;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,eAAe;AACf,IAAI;AACJ,gBAAgB;AAChB;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,6DAA6D;AAC7D,MAAM;AACN,oDAAoD,cAAc;AAClE;AACA,IAAI;AACJ,wCAAwC,wCAAwC,wBAAwB,UAAU;AAClH;AACA,YAAY;AACZ;AACA,oBAAoB;AACpB;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4GAA4G;AAC5G;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA,YAAY;AACZ;AACA,eAAe,0LAA0L,gCAAgC;AACzO;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,eAAe;AACf,IAAI;AACJ,gBAAgB;AAChB;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,6DAA6D;AAC7D,MAAM;AACN,oDAAoD,cAAc;AAClE;AACA,IAAI;AACJ,wCAAwC,wCAAwC,wBAAwB,UAAU;AAClH;AACA,YAAY;AACZ;AACA,oBAAoB;AACpB;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4GAA4G;AAC5G;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF;AACvF;AACA;AACA;AACA,YAAY;AACZ;AACA,eAAe,8LAA8L,gCAAgC;AAC7O;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,eAAe;AACf,IAAI;AACJ,gBAAgB;AAChB;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,6DAA6D;AAC7D,MAAM;AACN,oDAAoD,cAAc;AAClE;AACA,IAAI;AACJ,wCAAwC,wCAAwC,wBAAwB,UAAU;AAClH;AACA,YAAY;AACZ;AACA,oBAAoB;AACpB;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4GAA4G;AAC5G;AACA,IAAI;AACJ;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,YAAY;AACZ;AACA,eAAe,uKAAuK,qCAAqC;AAC3N;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,eAAe;AACf,IAAI;AACJ,gBAAgB;AAChB;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,6DAA6D;AAC7D,MAAM;AACN,oDAAoD,cAAc;AAClE;AACA,IAAI;AACJ,wCAAwC,wCAAwC,wBAAwB,UAAU;AAClH;AACA,YAAY;AACZ;AACA,oBAAoB;AACpB;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA,cAAc;AACd;AACA,iBAAiB,iKAAiK;AAClL;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,MAAM;AACN,kBAAkB;AAClB;AACA;AACA;AACA,8CAA8C;AAC9C;AACA,+DAA+D;AAC/D,QAAQ;AACR,sDAAsD,cAAc;AACpE;AACA,MAAM;AACN,0CAA0C,wCAAwC,wBAAwB,UAAU;AACpH;AACA,eAAe,OAAO,2BAA2B,wBAAwB,uDAAuD,qBAAqB,EAAE;AACvJ;AACA,iBAAiB;AACjB;AACA,IAAI;AACJ,6BAA6B;AAC7B;AACA,iBAAiB,iKAAiK;AAClL;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,MAAM;AACN,kBAAkB;AAClB;AACA,cAAc,wCAAwC,wBAAwB,UAAU;AACxF;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oCAAoC,6BAA6B;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,kDAAkD;AAClD;AACA;AACA,gGAAgG,OAAO;AACvG,6BAA6B;AAC7B;AACA,4FAA4F;AAC5F;AACA;AACA;AACA,2DAA2D,iBAAiB;AAC5E;AACA,eAAe,mKAAmK;AAClL;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,IAAI;AACJ,gBAAgB;AAChB;AACA,YAAY,wCAAwC,wBAAwB,UAAU;AACtF,4CAA4C;AAC5C;AACA,mDAAmD;AACnD,MAAM;AACN,0CAA0C,cAAc;AACxD;AACA;AACA,YAAY,OAAO,2BAA2B,wBAAwB,uDAAuD,qBAAqB,EAAE;AACpJ;AACA,eAAe;AACf;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4GAA4G;AAC5G;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA,YAAY;AACZ;AACA,eAAe,oKAAoK;AACnL;AACA;AACA,MAAM;AACN;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,eAAe;AACf,IAAI;AACJ,gBAAgB;AAChB;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,6DAA6D;AAC7D,MAAM;AACN,oDAAoD,cAAc;AAClE;AACA,IAAI;AACJ,wCAAwC,wCAAwC,wBAAwB,UAAU;AAClH;AACA,YAAY;AACZ;AACA,oBAAoB;AACpB;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA,wCAAwC,gCAAgC;AACxE;AACA,wDAAwD;AACxD;AACA;AACA;AACA,sGAAsG,2BAA2B,iDAAiD,oBAAoB,gEAAgE;AACtQ,MAAM;AACN,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,kCAAkC;AACpD;AACA;AACA,uDAAuD;AACvD,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,UAAU;AACV,iDAAiD;AACjD;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,uBAAuB,iLAAiL,wDAAwD;AAChQ;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,YAAY;AACZ,wBAAwB;AACxB;AACA;AACA;AACA,oDAAoD;AACpD;AACA,qEAAqE;AACrE,cAAc;AACd,4DAA4D,cAAc;AAC1E;AACA,YAAY;AACZ,gDAAgD,wCAAwC,wBAAwB,UAAU;AAC1H;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,QAAQ;AACR;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,oEAAoE;AACpE;AACA,gDAAgD,0BAA0B,gCAAgC,6CAA6C,6BAA6B,EAAE,wCAAwC,EAAE;AAChO;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,oEAAoE;AACpE;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,eAAe;AACf;AACA,2CAA2C;AAC3C,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,oEAAoE;AACpE;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,0BAA0B,8BAA8B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,2BAA2B,qKAAqK,kDAAkD;AAClP;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,gBAAgB;AAChB,4BAA4B;AAC5B;AACA;AACA;AACA,wDAAwD;AACxD;AACA,yEAAyE;AACzE,kBAAkB;AAClB,gEAAgE,cAAc;AAC9E;AACA,gBAAgB;AAChB,oDAAoD,wCAAwC,wBAAwB,UAAU;AAC9H;AACA;AACA;AACA,yBAAyB,OAAO;AAChC,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,4BAA4B,6BAA6B,EAAE,OAAO;AAClE,gBAAgB;AAChB;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA,+CAA+C;AAC/C,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4GAA4G,2BAA2B,iDAAiD,oBAAoB,gEAAgE;AAC5Q,YAAY;AACZ,mEAAmE;AACnE;AACA,mFAAmF;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,oEAAoE;AACpE;AACA;AACA,uDAAuD;AACvD;AACA,qBAAqB;AACrB;AACA,uDAAuD;AACvD;AACA,qBAAqB;AACrB;AACA,iDAAiD;AACjD,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA,4GAA4G,2BAA2B,iDAAiD,oBAAoB,gEAAgE;AAC5Q,YAAY;AACZ,mEAAmE;AACnE;AACA,oFAAoF,6BAA6B;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,oEAAoE;AACpE;AACA;AACA,uDAAuD;AACvD;AACA,qBAAqB;AACrB;AACA,uDAAuD;AACvD;AACA,qBAAqB;AACrB;AACA,iDAAiD;AACjD,iCAAiC;AACjC;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA,yFAAyF;AACzF;AACA,iDAAiD;AACjD;AACA;AACA,wBAAwB;AACxB;AACA,2BAA2B,0KAA0K,mHAAmH;AACxT;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,gBAAgB;AAChB,4BAA4B;AAC5B;AACA;AACA;AACA,wDAAwD;AACxD;AACA,yEAAyE;AACzE,kBAAkB;AAClB,gEAAgE,cAAc;AAC9E;AACA,gBAAgB;AAChB,oDAAoD,wCAAwC,wBAAwB,UAAU;AAC9H;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF;AACzF;AACA,iDAAiD;AACjD;AACA;AACA,wBAAwB;AACxB;AACA,2BAA2B,0KAA0K,mHAAmH;AACxT;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,gBAAgB;AAChB,4BAA4B;AAC5B;AACA;AACA;AACA,wDAAwD;AACxD;AACA,yEAAyE;AACzE,kBAAkB;AAClB,gEAAgE,cAAc;AAC9E;AACA,gBAAgB;AAChB,oDAAoD,wCAAwC,wBAAwB,UAAU;AAC9H;AACA,yBAAyB;AACzB;AACA;AACA;AACA,+CAA+C;AAC/C,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE;AACvE;AACA;AACA;AACA;;;AAGA,OAAO;AACP;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,2CAA2C;AAC3C;AACA,0DAA0D;AAC1D;AACA;AACA,sGAAsG,2BAA2B,iDAAiD,oBAAoB,gEAAgE;AACtQ,MAAM;AACN,6DAA6D;AAC7D;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,8DAA8D;AAC9D;AACA;AACA,0CAA0C,+CAA+C,qBAAqB,kBAAkB,qDAAqD,EAAE,iBAAiB;AACxM;AACA,iBAAiB,0KAA0K,2CAA2C;AACtO;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,MAAM;AACN,kBAAkB;AAClB;AACA,cAAc,wCAAwC,wBAAwB,UAAU;AACxF,8CAA8C;AAC9C;AACA,qDAAqD;AACrD,QAAQ;AACR,4CAA4C,cAAc;AAC1D;AACA;AACA;AACA,sBAAsB;AACtB;AACA,eAAe,EAAE;AACjB;AACA;AACA,uEAAuE;AACvE;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4GAA4G;AAC5G;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA,kFAAkF;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA,oFAAoF,yEAAyE,OAAO;AACpK;AACA,4CAA4C,0CAA0C,kBAAkB;AACxG;AACA;AACA;AACA,kBAAkB,8BAA8B,EAAE;AAClD;AACA,sBAAsB;AACtB;AACA,2CAA2C;AAC3C;AACA;AACA,kBAAkB;AAClB;AACA,qBAAqB,qKAAqK,kDAAkD;AAC5O;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,UAAU;AACV,sBAAsB;AACtB;AACA;AACA;AACA,kDAAkD;AAClD;AACA,mEAAmE;AACnE,YAAY;AACZ,0DAA0D,cAAc;AACxE;AACA,UAAU;AACV,8CAA8C,wCAAwC,wBAAwB,UAAU;AACxH;AACA,mBAAmB,OAAO;AAC1B,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,qBAAqB,qKAAqK,kDAAkD;AAC5O;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,UAAU;AACV,sBAAsB;AACtB;AACA;AACA;AACA,kDAAkD;AAClD;AACA,mEAAmE;AACnE,YAAY;AACZ,0DAA0D,cAAc;AACxE;AACA,UAAU;AACV,8CAA8C,wCAAwC,wBAAwB,UAAU;AACxH;AACA,mBAAmB,OAAO;AAC1B;AACA,MAAM;AACN;AACA;AACA,kFAAkF;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,gBAAgB;AACnG;AACA,uBAAuB,qKAAqK,kDAAkD;AAC9O;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,YAAY;AACZ,wBAAwB;AACxB;AACA,oBAAoB,wCAAwC,wBAAwB,UAAU,EAAE,6CAA6C;AAC7I;AACA,4CAA4C,0CAA0C,kBAAkB;AACxG;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA,qBAAqB,qKAAqK,kDAAkD;AAC5O;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,UAAU;AACV,sBAAsB;AACtB;AACA,kBAAkB,wCAAwC,wBAAwB,UAAU,EAAE,EAAE;AAChG;AACA,sBAAsB;AACtB;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA,yBAAyB,qKAAqK,kDAAkD;AAChP;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,cAAc;AACd,0BAA0B;AAC1B;AACA,sBAAsB,wCAAwC,wBAAwB,UAAU,EAAE;AAClG;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,yBAAyB;AACzB;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4GAA4G;AAC5G;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,qCAAqC,uGAAuG,iFAAiF,OAAO;AACpO;AACA,0CAA0C,kCAAkC,mCAAmC,cAAc,IAAI,GAAG,YAAY,KAAK,GAAG,qDAAqD,0BAA0B,aAAa,EAAE,EAAE,EAAE,EAAE;AAC5P;AACA,kBAAkB;AAClB;AACA,sCAAsC;AACtC;AACA;AACA,cAAc;AACd;AACA,iBAAiB,wKAAwK,aAAa;AACtM;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,iBAAiB;AACjB,MAAM;AACN,kBAAkB;AAClB;AACA;AACA;AACA,8CAA8C;AAC9C;AACA,+DAA+D;AAC/D,QAAQ;AACR,sDAAsD,cAAc;AACpE;AACA,MAAM;AACN,0CAA0C,wCAAwC,wBAAwB,UAAU;AACpH;AACA,eAAe;AACf;AACA,sBAAsB;AACtB;AACA,IAAI;AACJ;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,+BAA+B;AAC/C;AACA;AACA;AACA;AACA,cAAc,mBAAmB;AACjC;;AAEA,cAAc,mBAAmB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,4BAA4B;AAC5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,YAAY;AACZ;AACA,UAAU;AACV;AACA;AACA;AACA,IAAI;AACJ;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,QAAQ,4CAA4C;AAChE,YAAY,SAAS;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA,oBAAoB,mBAAmB,EAAE;AACzC;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA,wCAAwC,gBAAgB;AACxD;AACA;;;AAGA;AACA,UAAU,iCAAiC;AAC3C;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,QAAQ;AACR;AACA,QAAQ;;AAER;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,YAAY,OAAO;AACnB,aAAa,eAAe;AAC5B;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4GAA4G;AAC5G;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0FAA0F,8DAA8D;AACxJ,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA,wCAAwC,qBAAqB;AAC7D;AACA,yBAAyB;AACzB,yDAAyD,yBAAyB,EAAE,OAAO;AAC3F;AACA,2BAA2B;AAC3B,gGAAgG,wBAAwB;AACxH;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,oEAAoE;AACpE;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,MAAM;AACN;AACA;AACA,iDAAiD,MAAM,qEAAqE,EAAE,YAAY,0BAA0B,kEAAkE,cAAc,EAAE;AACtP,QAAQ;AACR,6CAA6C,mDAAmD;AAChG;AACA;AACA;AACA;AACA,gHAAgH;AAChH;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,iBAAiB,oLAAoL,uCAAuC;AAC5O;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,MAAM;AACN,kBAAkB;AAClB;AACA;AACA;AACA,8CAA8C;AAC9C;AACA,+DAA+D;AAC/D,QAAQ;AACR,sDAAsD,cAAc;AACpE;AACA,MAAM;AACN,0CAA0C,wCAAwC,wBAAwB,UAAU;AACpH;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,qBAAqB,kBAAkB,gDAAgD,0HAA0H,mDAAmD,4DAA4D,EAAE;AAC7X;AACA,yEAAyE,2CAA2C;AACpH;AACA,qBAAqB;AACrB;AACA,QAAQ;AACR;AACA;AACA,UAAU;AACV,oDAAoD,4BAA4B,OAAO,wCAAwC,qBAAqB,kBAAkB,gDAAgD,0HAA0H,mDAAmD,4DAA4D,EAAE;AACjc;AACA,yEAAyE,2CAA2C;AACpH;AACA,qBAAqB,EAAE;AACvB;AACA;AACA,MAAM;AACN,gCAAgC;AAChC;AACA,mBAAmB,oLAAoL,uCAAuC;AAC9O;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,QAAQ;AACR,oBAAoB;AACpB;AACA,gBAAgB,wCAAwC,wBAAwB,UAAU;AAC1F,gDAAgD;AAChD;AACA,uDAAuD;AACvD,UAAU;AACV,8CAA8C,cAAc;AAC5D;AACA;AACA,MAAM;AACN;AACA;AACA,QAAQ;AACR,2DAA2D,qDAAqD,oDAAoD,yBAAyB,wCAAwC,qBAAqB,kBAAkB,gDAAgD,0HAA0H,6DAA6D;AACnf;AACA,uEAAuE,2CAA2C;AAClH;AACA,mBAAmB,EAAE,OAAO,4BAA4B;AACxD;AACA;AACA,eAAe;AACf;AACA,sBAAsB;AACtB;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ,gBAAgB;AAChB;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ,cAAc;AACd;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,OAAO;AACnB,mCAAmC,OAAO;AAC1C;AACA;AACA,mCAAmC,QAAQ;AAC3C;AACA,mCAAmC,QAAQ;AAC3C;AACA,mCAAmC,SAAS;AAC5C;AACA,mCAAmC,OAAO;AAC1C,mCAAmC,QAAQ;AAC3C;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,8BAA8B;AAC9B;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,YAAY,mBAAmB;AAC/B,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,0CAA0C;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,0CAA0C;AAC1C;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,mBAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;;AAEA;AACA,6CAA6C;AAC7C;AACA;;AAEA;AACA;AACA,YAAY,mBAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,mBAAmB;AAChC;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;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,KAAK;AACjB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,aAAa,SAAS;AACtB;AACA,mCAAmC,KAAK;AACxC,mCAAmC,OAAO;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA,0CAA0C;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA,0CAA0C;AAC1C;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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,MAAM;AACN;;AAEA;AACA,eAAe;AACf;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,QAAQ;AACR;;AAEA;AACA;AACA;AACA;AACA;AACA,0BAA0B,cAAc;AACxC;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,YAAY,OAAO;AACnB,gCAAgC,oBAAoB;AACpD;AACA,gCAAgC,kBAAkB;AAClD,gCAAgC,OAAO;AACvC,gCAAgC,OAAO;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,gCAAgC,oBAAoB;AACpD;AACA,gCAAgC,kBAAkB;AAClD,gCAAgC,OAAO;AACvC,gCAAgC,OAAO;AACvC;AACA;AACA;AACA,qDAAqD;AACrD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,kBAAkB;AAC9B;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;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;;AAE/B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC,mCAAmC;;AAEnC;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;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;;AAEA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;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;;AAEA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,cAAc;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,KAAK;AACjB,YAAY,KAAK;AACjB,aAAa,aAAa;AAC1B;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;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,YAAY;AACZ,Q;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAY,YAAY;AACxB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ,sCAAsC,eAAe;AACrD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,KAAK;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA,UAAU;AACV,QAAQ;AACR;AACA;AACA;AACA,UAAU;AACV;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,UAAU;AACV,QAAQ;AACR;AACA;AACA;AACA,UAAU;AACV;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,UAAU;AACV,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,QAAQ;AACR;AACA;AACA;AACA,UAAU;AACV;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,UAAU;AACV,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,UAAU;AACV,QAAQ;AACR;AACA;AACA;AACA,UAAU;AACV;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sDAAsD,YAAY,OAAO;AACzE,WAAW,cAAc,SAAS;AAClC,YAAY,OAAO;AACnB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,2DAA2D,QAAQ,IAAI,MAAM,QAAQ;AACrF,8FAA8F;AAC9F;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,2BAA2B;AAChD,qBAAqB,+BAA+B;AACpD,qBAAqB,+BAA+B;;AAEpD;AACA;AACA;;AAEA;AACA;AACA,qEAAqE;AACrE;AACA;AACA;AACA;;AAEA;AACA;;AAEA;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;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;;AAEA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC,8CAA8C,IAAI;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,OAAO;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,EAAE;AACd,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,EAAE;AACd,cAAc,QAAQ;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,QAAQ;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,QAAQ;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;;AAEA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA,wCAAwC,UAAU;AAClD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA,oCAAoC;AACpC,sDAAsD;AACtD,2BAA2B;AAC3B,uCAAuC;AACvC,iCAAiC;AACjC,+BAA+B;AAC/B;AACA;;AAEA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,yBAAyB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,yBAAyB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,kCAAkC,OAAO;AACzC,kCAAkC,OAAO;AACzC,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAY,OAAO;AACnB,kCAAkC,QAAQ;AAC1C,kCAAkC,OAAO;AACzC,kCAAkC,OAAO;AACzC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,OAAO;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8CAA8C,UAAU;AACxD;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,yCAAyC,GAAG,QAAQ,GAAG;AACvD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,OAAO;AACnB;AACA,YAAY,SAAS;AACrB,YAAY,QAAQ;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA,iCAAiC;AACjC;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,OAAO;AACnB,YAAY,SAAS;AACrB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA,iCAAiC;AACjC;;AAEA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,OAAO;AACnB,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAY,OAAO;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;;AAER;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,cAAc,4BAA4B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,MAAM;AACN,IAAI;AACJ;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO;AACP;AACA;;AAEA;AACA;AACA,eAAe,yBAAyB,EAAE;AAC1C,OAAO;AACP,YAAY,8MAA8M,OAAO,+GAA+G;AAChV,cAAc,4EAA4E,OAAO,8BAA8B;AAC/H;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,qBAAqB;AACrB;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,EAAE;AACF,UAAU,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;AAC3wC,kBAAkB,SAAS;AAC3B;AACA;AACA,EAAE;AACF;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,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA,8DAA8D;AAC9D;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,sBAAsB,4HAA4H;AAClJ;;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,qCAAqC;AACrC,6BAA6B;AAC7B;AACA;AACA,4BAA4B;AAC5B;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,uCAAuC;AACvC;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;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,UAAU;AACV;AACA,sBAAsB,2CAA2C;AACjE;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,OAAO;AACP;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA,+HAA+H,EAAE,oCAAoC,UAAU;AAC/K,qBAAqB,WAAW;;;AAGhC;AACA,eAAe;AACf;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA,YAAY,WAAW;AACvB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB;AACpB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;AAEA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,uDAAuD,SAAS;AAChE,sDAAsD,QAAQ;AAC9D,oEAAoE,SAAS;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA,sBAAsB;AACtB,gCAAgC;AAChC;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA,sCAAsC;AACtC,kCAAkC;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,aAAa,KAAK;AAClB,aAAa,KAAK;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,SAAS;AACrB;AACA,YAAY,OAAO;AACnB,gCAAgC,SAAS;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB;;AAElB;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;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;;AAEA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA,aAAa,oBAAoB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,IAAI;;AAEJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAY,YAAY;AACxB;AACA,YAAY,YAAY;AACxB;AACA;AACA;;AAEA;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;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;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;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,OAAO;AACb;AACA;;AAEA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,0BAA0B;AAC1B,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;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,2BAA2B;AAC3B;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;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,WAAW;AACvB,YAAY,OAAO;AACnB,8BAA8B,OAAO;AACrC,8BAA8B,QAAQ;AACtC,8BAA8B,EAAE;AAChC,8BAA8B,OAAO;AACrC;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;;AAER;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,OAAO;AACnB,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,uFAAuF,QAAQ;AAC5G,YAAY,KAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB,uBAAuB;AAC7C;AACA;;AAEA;AACA;AACA,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;;AAEV;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,KAAK;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAY,EAAE;AACd,YAAY,OAAO;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yCAAyC,UAAU;AACnD;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa,EAAE;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,MAAM;;AAEN;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;;;AAGA;AACA;AACA;AACA,YAAY,KAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,qBAAqB,sBAAsB;AAC3C,qBAAqB,gBAAgB;AACrC;AACA;;;AAGA;AACA;AACA;AACA,YAAY,KAAK;AACjB,YAAY,KAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,KAAK;AACjB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,KAAK;AACjB,YAAY,KAAK;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,qBAAqB,sBAAsB;AAC3C,qBAAqB,gBAAgB;AACrC;AACA;;AAEA;AACA;AACA;AACA,YAAY,KAAK;AACjB,YAAY,KAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAY,kBAAkB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;;AAEA;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;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,KAAK;AACjB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C,UAAU;AACpD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAY,KAAK;AACjB,YAAY,KAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,KAAK;AACjB,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,uBAAuB,sBAAsB;;AAE7C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,KAAK;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;;AAER;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;;AAER;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;;AAEA;AACA;;AAEA,mBAAmB,sBAAsB;AACzC;;AAEA;AACA;AACA,YAAY,QAAQ;AACpB;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;;AAEA;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,IAAI;;AAEJ;AACA;;AAEA;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,IAAI;;AAEJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;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;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ,oBAAoB,iBAAiB,EAAE;AAC5D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,wBAAwB;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA,oBAAoB,wBAAwB;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,6CAA6C;AAC7C;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;;AAEA,mBAAmB,sBAAsB;;AAEzC;AACA;;AAEA;AACA;AACA,YAAY,cAAc;AAC1B,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAY,cAAc;AAC1B,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;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;;AAEA;AACA;AACA;AACA;AACA,mDAAmD;AACnD,6CAA6C;;AAE7C;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY;;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAY,cAAc;AAC1B,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAY,KAAK;AACjB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,iCAAiC;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,OAAO;AACnB,8BAA8B,QAAQ;AACtC;AACA;AACA,8BAA8B,QAAQ;AACtC;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;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,cAAc;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;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;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oDAAoD,kBAAkB;AACtE;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,wBAAwB;AACpC,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kBAAkB,uBAAuB;AACzC;;AAEA,oBAAoB,gCAAgC;AACpD;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAY,MAAM;AAClB;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,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4CAA4C;AAC5C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4CAA4C;AAC5C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;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;AACA,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mDAAmD;AACnD,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,+BAA+B;AAC/B;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,mBAAmB;AACnB,gCAAgC;AAChC,sBAAsB;AACtB;AACA;AACA;AACA,uCAAuC;AACvC,mBAAmB;AACnB;AACA;AACA;AACA;AACA,uCAAuC;AACvC,mBAAmB;AACnB;AACA;AACA;AACA;AACA,uCAAuC;AACvC,gCAAgC;AAChC;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iCAAiC;AACjC;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iCAAiC;AACjC;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,cAAc;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;;AAGA;AACA;AACA;AACA,YAAY,cAAc;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,EAAE;AACd,YAAY,OAAO;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,EAAE;AACd,YAAY,OAAO;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,EAAE;AACd,YAAY,OAAO;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;;AAEA;AACA;AACA,aAAa,wBAAwB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,KAAK;AACjB,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,QAAQ;AACpB,aAAa,eAAe;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;;AAEA;AACA;AACA,YAAY,QAAQ;AACpB,aAAa,eAAe;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;;AAEA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;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,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,MAAM;AACN;;AAEA;AACA;AACA,YAAY,YAAY;AACxB;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,UAAU;AACV;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;;AAER;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA,sCAAsC,eAAe;AACrD;AACA;;AAEA;AACA;AACA,YAAY,EAAE;AACd,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA,kCAAkC;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,OAAO;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,6BAA6B;AAC7B,6BAA6B;AAC7B,iCAAiC;AACjC,+BAA+B;AAC/B,+BAA+B,GAAG;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,OAAO;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB,qBAAqB;AACrB,uBAAuB;AACvB,sBAAsB,SAAS;AAC/B;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,IAAI,SAAS,IAAI,SAAS,IAAI,mBAAmB,EAAE;AACvH;AACA;AACA,oBAAoB,oEAAoE,EAAE;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,WAAW;AAC9B,wBAAwB,UAAU;AAClC;AACA;AACA,sDAAsD,aAAa;AACnE;AACA;AACA;AACA;AACA,yCAAyC,iCAAiC;AAC1E;AACA;AACA;AACA;AACA;AACA,yBAAyB,WAAW;AACpC,yBAAyB,UAAU;AACnC;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,YAAY,KAAK;AACjB;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;;AAEA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,YAAY;AAC1B,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA,wCAAwC,eAAe;AACvD;AACA;;AAEA;AACA;AACA,cAAc,MAAM;AACpB;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,QAAQ;AACR;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,YAAY,YAAY;AACxB,YAAY,SAAS;AACrB,YAAY,OAAO;AACnB,YAAY,uBAAuB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,yB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA,wCAAwC,uCAAuC;AAC/E,uCAAuC,0BAA0B;AACjE,wCAAwC,UAAU,uCAAuC;;AAEzF;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD,8DAA8D;;AAE9D;AACA,gCAAgC,kBAAkB;AAClD,yDAAyD,UAAU;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,4BAA4B;AAC5B;;AAEA;AACA;;AAEA,4DAA4D;AAC5D,iEAAiE;AACjE;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,sD;AACA;AACA,cAAc;AACd,oCAAoC;AACpC,mEAAmE;AACnE,2FAA2F;AAC3F;AACA;AACA,wCAAwC;AACxC,cAAc;AACd,4CAA4C,EAAE;AAC9C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C,8DAA8D;AAC9D,mCAAmC;AACnC,+CAA+C;AAC/C,yCAAyC;AACzC,uCAAuC;AACvC;AACA;AACA;AACA,qDAAqD;AACrD,6DAA6D;AAC7D,mCAAmC;AACnC,4BAA4B;AAC5B;AACA;;AAEA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,6DAA6D;AAC7D,mCAAmC;AACnC,kCAAkC;AAClC,iCAAiC;AACjC,iCAAiC;AACjC;AACA;;AAEA;AACA,mCAAmC,EAAE;AACrC,iCAAiC,EAAE;AACnC,+BAA+B,EAAE;AACjC,6BAA6B,EAAE;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qDAAqD,sBAAsB,EAAE;;;;AAI7E;AACA;AACA;AACA;AACA,6E;AACA,c;;AAEA;AACA;AACA;;;AAGA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,4BAA4B,mBAAmB;AAC/C;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,6BAA6B,QAAQ,EAAE;AACvC,6BAA6B,QAAQ,EAAE;;AAEvC,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA,wDAAwD;AACxD,gC;AACA;AACA,gC;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA,wC;AACA;AACA;AACA;AACA;AACA,kB;AACA;AACA;AACA;;AAEA,6BAA6B;AAC7B,0DAA0D;AAC1D;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA6B;AAC7B;AACA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;AACA;;AAEA,6BAA6B;AAC7B;AACA,2BAA2B,gBAAgB;AAC3C;AACA;AACA;AACA;AACA;;AAEA,MAAM;;AAEN;AACA;AACA;AACA,MAAM;;AAEN;AACA,2E;AACA,2B;AACA;AACA;AACA,iD;AACA,UAAU,K;AACV;;AAEA;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB;;AAEpB;;AAEA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,OAAO;AACnB,iCAAiC,OAAO;AACxC;AACA;AACA,iCAAiC,OAAO;AACxC;AACA,iCAAiC,SAAS;AAC1C;AACA,iCAAiC,SAAS;AAC1C;AACA,iCAAiC,SAAS;AAC1C;AACA,iCAAiC,OAAO;AACxC;AACA,iCAAiC,QAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8BAA8B;AAC9B,6BAA6B;AAC7B;;AAEA;AACA;;AAEA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,0CAA0C;AAC1C,yCAAyC;AACzC;;AAEA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD,mDAAmD;AACnD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,QAAQ;AACR;;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;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;;AAEA;AACA,6BAA6B;AAC7B;;AAEA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;AACP;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,kCAAkC;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,2BAA2B,aAAa,EAAE;AAC1C,8DAA8D;;;AAG9D;AACA;;;AAGA;AACA;AACA;AACA;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,MAAM;AACN;AACA,2CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA;AACA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,0BAA0B;AAC9D;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,gCAAgC,kBAAkB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oEAAoE;AACpE;AACA;;AAEA;AACA;AACA;AACA,gCAAgC,kBAAkB;AAClD;AACA;AACA;AACA;AACA;;AAEA,EAAE;;AAEF;;AAEA;;AAEA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc;AACd;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,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,qCAAqC;AACrC,mCAAmC;;AAEnC;;AAEA;AACA,yBAAyB;AACzB;AACA,MAAM,KAAK;AACX;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,OAAO;AACb;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qC;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA,+CAA+C;AAC/C,oCAAoC,eAAe;AACnD;AACA;AACA,kBAAkB,oCAAoC;AACtD,wCAAwC,KAAK;AAC7C;AACA;AACA,kBAAkB;;AAElB;AACA,qDAAqD;AACrD;AACA,kBAAkB;AAClB,2DAA2D;AAC3D,gCAAgC,SAAS;AACzC;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,mCAAmC;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,eAAe,YAAY;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;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,wBAAwB;AACxB;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,qBAAqB;AACrB;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qDAAqD;AACrD;AACA,MAAM;AACN;AACA;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,UAAU;AACV;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,iCAAiC;AACjC,EAAE;AACF;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,iBAAiB;AACvC;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kDAAkD,QAAQ;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB;AACnB;AACA,MAAM;AACN;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA,EAAE;;AAEF;AACA;;AAEA;AACA;;AAEA,EAAE;;AAEF;AACA;;AAEA;;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;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;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,EAAE;;AAEF;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;AAEV;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+CAA+C,KAAK,G;AACpD;AACA;AACA,cAAc;AACd;AACA,MAAM;;AAEN;AACA;;AAEA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D,wDAAwD,kCAAkC;;AAE1F;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,EAAE;;AAEF;AACA;;AAEA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,cAAc;AAC/B;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,UAAU;AACV,M;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,UAAU;AACV,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU;AACV,MAAM;AACN;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA,+B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,aAAa;;AAEzD;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,aAAa;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;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;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA;AACA;AACA,UAAU;;AAEV;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC,KAAK;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,kBAAkB;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,cAAc;AAChC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mBAAmB;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA,mCAAmC;AACnC;;AAEA;AACA,oCAAoC,uBAAuB,uBAAuB,uBAAuB;AACzG;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU,iDAAiD,EAAE;;AAE7D;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,UAAU;;AAEV;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA,0CAA0C;AAC1C,wCAAwC;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,0CAA0C,cAAc;AACxD;AACA,gDAAgD,cAAc;AAC9D,UAAU;AACV;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,cAAc;AACd;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;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;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;;AAEA;AACA;AACA,oDAAoD,2BAA2B;AAC/E,MAAM;AACN,qDAAqD,2BAA2B;AAChF,uDAAuD,2BAA2B;AAClF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C,0BAA0B;AACpE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D,iDAAiD;AACjD,8CAA8C;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,W;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB;;AAErB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;;AAEN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;;AAEA;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;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,cAAc;AACd;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;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAE;;AAEF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;;AAEA,EAAE;;AAEF;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAE;;AAEF;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;;AAGN;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,MAAM;;AAEN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV,MAAM;;AAEN;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAE;;;;AAIF;;AAEA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,c;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,8BAA8B;AACrD,uBAAuB,8BAA8B;;AAErD,EAAE;;AAEF,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,sCAAsC;AACtC;AACA,+CAA+C,WAAW,eAAe,MAAM,OAAO,mBAAmB,UAAU;;AAEnH;;AAEA;AACA;AACA,MAAM;AACN;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;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;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;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;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,wCAAwC;AACxC,UAAU;AACV;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;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,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;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;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAE;;;AAGF;AACA;AACA;;AAEA;;AAEA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAE;;AAEF;AACA;;AAEA;AACA,mCAAmC,gCAAgC;AACnE,kCAAkC,8BAA8B;;AAEhE;AACA;AACA,qDAAqD;AACrD,yDAAyD;;AAEzD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,oBAAoB;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA,kBAAkB,oBAAoB;AACtC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;;;AAGA;AACA;AACA;AACA,6CAA6C;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,EAAE;;AAEF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV,MAAM;AACN;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4BAA4B,SAAS,EAAE;AACvC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA,kFAAkF;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;;AAEA,EAAE;;AAEF;;AAEA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,2CAA2C,iCAAiC;AAC5E;AACA;AACA;AACA;AACA,cAAc;AACd,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA,YAAY;;AAEZ;AACA;;AAEA;;AAEA;AACA;AACA,8EAA8E;AAC9E;;AAEA;AACA,kBAAkB,kBAAkB;AACpC;;AAEA;AACA;AACA;;AAEA;AACA,2CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,kDAAkD,yBAAyB,EAAE;AAC7E;;AAEA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,2CAA2C,kBAAkB;AAC7D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,EAAE;;AAEF;AACA,mBAAmB,gBAAgB;AACnC,iBAAiB,0CAA0C;AAC3D,mBAAmB,mBAAmB;AACtC,mBAAmB,gBAAgB;AACnC,2BAA2B;AAC3B,EAAE;;;AAGF;AACA,EAAE;;AAEF;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;;AAEN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB;AAClB;AACA,2DAA2D,gCAAgC;AAC3F;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;;AAEA,EAAE;;AAEF;AACA;;AAEA;AACA;;AAEA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;;AAEA,4CAA4C,KAAK;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,EAAE;;AAEF;AACA,EAAE;;AAEF;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;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;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,wBAAwB;;AAExB;AACA,0BAA0B;AAC1B;AACA,0BAA0B;;AAE1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,wBAAwB;;AAExB;AACA;;AAEA;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,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA,MAAM;AACN;;AAEA;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;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;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;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;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;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,cAAc;;AAEd;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;;AAEd;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;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;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,0CAA0C,KAAK;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,yCAAyC,KAAK;AAC9C;AACA;AACA;AACA;AACA;;AAEA,EAAE;;AAEF;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;;AAEA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,4F;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,kBAAkB;AAClB;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;;AAEV;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,wBAAwB;;AAE9C;AACA,0CAA0C,OAAO;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,OAAO;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;;AAEd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,8BAA8B;AAC9B;AACA;;AAEA,4BAA4B,oBAAoB;AAChD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,kCAAkC;AAClC;AACA,kBAAkB;AAClB;AACA;AACA,8BAA8B;AAC9B,oCAAoC,iBAAiB;AACrD;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,EAAE;;AAEF;AACA,EAAE;;AAEF;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yDAAyD,gBAAgB;AACzE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,KAAK;AAC3C;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,gCAAgC;AAChC;;AAEA;AACA;AACA;;AAEA,EAAE;;AAEF;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAE;;AAEF;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,c;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,O;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,O;AACA;AACA;AACA,O;AACA;AACA;AACA,O;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,uB;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,EAAE;;AAEF;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;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,uBAAuB;AACvB;AACA;AACA;AACA,mDAAmD;AACnD,0DAA0D,KAAK;AAC/D,cAAc;AACd,2BAA2B;AAC3B,yEAAyE;AACzE;AACA,kCAAkC;AAClC;AACA;AACA,kBAAkB;AAClB,0EAA0E;AAC1E;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,UAAU,oBAAoB;AAC9B;AACA;AACA,gCAAgC;AAChC,8DAA8D,IAAI,2CAA2C;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA,iCAAiC;AACjC,iEAAiE,yCAAyC,IAAI;AAC9G;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,MAAM;;AAEN;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,kEAAkE,2CAA2C;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,kEAAkE,2CAA2C;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,qCAAqC;AACrC;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,4CAA4C,GAAG;AAC/C,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;;AAEA;AACA,EAAE;;AAEF;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,EAAE;;AAEF;AACA,yBAAyB,EAAE;AAC3B;AACA;AACA;;AAEA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,uCAAuC,4BAA4B;AACnE,uCAAuC,0BAA0B;AACjE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,0BAA0B;AACrE;AACA,2CAA2C,0BAA0B;AACrE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mCAAmC,aAAa;AAChD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;;AAEA;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,oDAAoD,OAAO;AAC3D;AACA;AACA;AACA;AACA;AACA,2EAA2E,aAAa,O;AACxF;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,UAAU;AACV;;AAEA;AACA,EAAE;;AAEF;AACA,EAAE;;AAEF;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;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kDAAkD,mCAAmC;AACrF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,EAAE;;AAEF,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN,iCAAiC,kBAAkB;AACnD,MAAM;AACN,sBAAsB,iBAAiB;AACvC;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,kBAAkB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;;AAGA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;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,UAAU;;AAEV;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA,iBAAiB;AACjB;;AAEA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,iCAAiC,yBAAyB;AAC1D,O;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,uBAAuB;AAClE,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2CAA2C,uBAAuB;AAClE,UAAU;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6G;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA,oCAAoC,MAAM;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,sDAAsD,OAAO;AAC7D;AACA;AACA,yBAAyB;AACzB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,SAAS;AAC7C;;AAEA;AACA;;AAEA,EAAE;;AAEF;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,6BAA6B,QAAQ;;AAErC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,iF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,WAAW;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA,EAAE;;AAEF;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,4BAA4B,UAAU;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;;AAEA,wCAAwC,MAAM;AAC9C;AACA;AACA;AACA;AACA;;AAEA,EAAE;;AAEF;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,wBAAwB,kBAAkB;AAC1C;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;;AAEA,wBAAwB,uBAAuB;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,sCAAsC,iBAAiB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC,KAAK;AACvC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;;AAEV;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,iCAAiC,yBAAyB;AAC1D;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA,2CAA2C,yBAAyB;AACpE;AACA;AACA,yCAAyC,uBAAuB;AAChE;AACA;;AAEA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,2CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAE;;AAEF;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC,0BAA0B;AAC5D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kCAAkC,0BAA0B;AAC5D;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,sBAAsB;AAC9C,4BAA4B,+BAA+B;AAC3D;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB;AACnB;AACA;AACA,wBAAwB,2BAA2B;AACnD;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;AACA,gBAAgB,qBAAqB;AACrC;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC,4BAA4B;;AAEjE;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,+BAA+B;AACpE;;AAEA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,UAAU;;AAEV;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,cAAc,iDAAiD,2CAA2C;AAC1G;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,cAAc;AACd;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,oBAAoB;AACpB;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;;;AAIA;AACA;AACA;AACA,mDAAmD;;AAEnD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,EAAE;;AAEF;AACA;;AAEA;AACA;;;AAGA;;AAEA;AACA;;AAEA;AACA;;AAEA,qDAAqD,WAAW;AAChE;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,+CAA+C,WAAW;AAC1D;AACA;AACA,oBAAoB;AACpB,+CAA+C,WAAW;AAC1D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;;AAEd;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;;AAEd;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,EAAE;;AAEF;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;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;;AAEA;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,UAAU;AACV,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B;AAC5B,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;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,4CAA4C;AAC5C;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,eAAe;AACrC;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,wCAAwC;AACtF,qCAAqC,wBAAwB;AAC7D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,UAAU;AACV;AACA;;AAEA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B,SAAS;AACrC;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wCAAwC,SAAS;AACjD;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;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,UAAU;AACV;AACA;AACA;;AAEA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;AACA;AACA,+BAA+B,aAAa;AAC5C,oCAAoC,oBAAoB;AACxD;AACA;AACA;AACA;AACA;;AAEA,yCAAyC,uBAAuB;AAChE;;AAEA;AACA;AACA,4BAA4B,UAAU;AACtC;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;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,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;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;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B,wBAAwB;AAClD;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B,wBAAwB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,uBAAuB;AACnE;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mBAAmB;AACnD;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,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wBAAwB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB,qBAAqB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;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,4BAA4B,qBAAqB;AACjD;AACA;AACA;AACA,UAAU;AACV;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;;AAEA;AACA,6BAA6B,qBAAqB;AAClD;AACA;AACA;AACA,kBAAkB;AAClB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAE;;AAEF;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,MAAM;AACN,wBAAwB,qBAAqB;AAC7C;AACA,0BAA0B,kCAAkC;AAC5D;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA,MAAM;AACN,mBAAmB,mBAAmB;AACtC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,MAAM;AACN;AACA,6BAA6B,iCAAiC;AAC9D;AACA,MAAM;AACN;AACA,6BAA6B,6BAA6B;AAC1D,0BAA0B,iCAAiC;AAC3D;AACA,MAAM;AACN;AACA,6BAA6B,oBAAoB;AACjD,0BAA0B;AAC1B;AACA,EAAE;;AAEF;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;;AAEA;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,cAAc;AACd;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,eAAe;AACjE,gCAAgC,SAAS;AACzC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,4BAA4B,kBAAkB;AAC9C;AACA,gCAAgC,oBAAoB;AACpD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2CAA2C,OAAO;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,+DAA+D,KAAK;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,SAAS;AACzC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,gCAAgC,oBAAoB;AACpD;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,4BAA4B,iBAAiB;AAC7C;AACA;;AAEA;AACA;;AAEA,0DAA0D,iBAAiB;AAC3E;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;;AAEA,kCAAkC,gBAAgB;AAClD;AACA;;AAEA;AACA;;AAEA,0DAA0D,gBAAgB;AAC1E;AACA;AACA;;AAEA,iBAAiB;AACjB;;AAEA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;;AAGA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,uDAAuD;;AAE5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B;;AAE5B;AACA;;AAEA;AACA;;AAEA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA,oFAAoF,SAAS;AAC7F;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;;AAErB;AACA,mCAAmC,KAAK;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;;AAEA;AACA;AACA,2EAA2E;AAC3E;AACA,qCAAqC;AACrC;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;;AAEA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qDAAqD;AACrD,MAAM;AACN;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,yCAAyC,KAAK;AAC9C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,kBAAkB;AAClB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA,EAAE;;AAEF;;AAEA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,MAAM;AACN;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,MAAM;AACN;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,MAAM;AACN;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,oBAAoB,EAAE;AACnD;AACA,EAAE;AACF;AACA;AACA,6BAA6B,0BAA0B,EAAE;AACzD;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,EAAE;AACF;AACA;AACA,6BAA6B,kCAAkC,EAAE;AACjE;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,iCAAiC,EAAE;AAChE;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,mCAAmC,EAAE;AAClE;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,uCAAuC,EAAE;AACtE;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,0BAA0B,EAAE;AACzD;AACA;AACA,EAAE;AACF;AACA;AACA,6B;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,yBAAyB,EAAE;AACxD;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,mBAAmB,EAAE;AAClD;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,uBAAuB,EAAE;AACtD;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,+B;AACA,MAAM;AACN;AACA,EAAE;AACF;AACA;AACA,6B;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,EAAE;AACF;AACA;AACA;AACA,6DAA6D,iBAAiB;AAC9E,MAAM;AACN;AACA,EAAE;AACF;AACA;AACA,6BAA6B,0BAA0B,EAAE;AACzD;AACA,EAAE;AACF;AACA;AACA,6BAA6B,yCAAyC,EAAE;AACxE;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,4BAA4B,EAAE;AAC3D;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,kCAAkC,EAAE;AACjE;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,mCAAmC,+BAA+B,EAAE;AACpE;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,uCAAuC,EAAE;AACtE;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,0BAA0B,EAAE;AACzD;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,oCAAoC,EAAE;AACnE;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,mCAAmC,iCAAiC,EAAE;AACtE;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,wCAAwC,EAAE;AACvE;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,2BAA2B,EAAE;AAC1D;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,yCAAyC,EAAE;AACxE;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,4BAA4B,EAAE;AAC3D;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,oCAAoC,EAAE;AACnE;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,mCAAmC,iCAAiC,EAAE;AACtE;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,yCAAyC,EAAE;AACxE;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,4BAA4B,EAAE;AAC3D;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,uCAAuC,EAAE;AACtE;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,0BAA0B,EAAE;AACzD;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,qCAAqC,EAAE;AACpE;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,mCAAmC,kCAAkC,EAAE;AACvE;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,yBAAyB,EAAE;AACxD;AACA,EAAE;AACF;AACA;AACA,6BAA6B,yBAAyB,EAAE;AACxD;AACA,EAAE;AACF;AACA;AACA,6BAA6B,uBAAuB,EAAE;AACtD;AACA,EAAE;AACF;AACA;AACA,6BAA6B,uBAAuB,EAAE;AACtD;AACA,EAAE;AACF;AACA;AACA,6BAA6B,uBAAuB,EAAE;AACtD;AACA,EAAE;AACF;AACA;AACA,6BAA6B,qBAAqB,EAAE;AACpD;AACA,EAAE;AACF;AACA;AACA,wBAAwB,gEAAgE,EAAE;AAC1F;AACA,EAAE;AACF;AACA;AACA,wBAAwB,+DAA+D,EAAE;AACzF;AACA,EAAE;AACF;AACA;AACA,6BAA6B,yCAAyC,EAAE;AACxE;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,uCAAuC,EAAE;AACtE;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,yCAAyC,EAAE;AACxE;AACA,EAAE;AACF;AACA;AACA,6BAA6B,gCAAgC,EAAE;AAC/D;AACA,EAAE;AACF;AACA;AACA,6BAA6B,yBAAyB,EAAE;AACxD;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,6BAA6B,EAAE;AAC5D;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,mCAAmC,EAAE;AAClE;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,wBAAwB;AACxB;AACA;AACA,EAAE;AACF;AACA;AACA,MAAM;AACN;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,MAAM;AACN;AACA,EAAE;AACF;AACA;AACA,6BAA6B,sBAAsB,EAAE;AACrD;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,6BAA6B,EAAE;AAC5D;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,oBAAoB,EAAE;AACnD;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,6BAA6B,EAAE;AAC5D;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,6BAA6B,EAAE;AAC5D;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,wBAAwB,EAAE;AACvD;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,yBAAyB,EAAE;AACxD;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,6DAA6D,uBAAuB;AACpF;AACA,EAAE;AACF;AACA;AACA,6BAA6B,eAAe;AAC5C,EAAE;AACF;AACA;AACA,6BAA6B,eAAe;AAC5C,EAAE;AACF;AACA;AACA,6BAA6B,sBAAsB,EAAE;AACrD;AACA,EAAE;AACF;AACA;AACA,6BAA6B,sBAAsB,EAAE;AACrD;AACA,EAAE;AACF;AACA;AACA,6BAA6B,wBAAwB,EAAE;AACvD;AACA,EAAE;AACF;AACA;AACA,6BAA6B,wBAAwB,EAAE;AACvD;AACA,EAAE;AACF;AACA;AACA,6BAA6B,wBAAwB,EAAE;AACvD;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,6BAA6B,uBAAuB,EAAE;AACtD;AACA;AACA,EAAE;AACF;AACA;AACA,6B;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,MAAM;AACN;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,4BAA4B,EAAE;AAC3D;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,0BAA0B,EAAE;AACzD;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,yBAAyB,EAAE;AACxD;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,0BAA0B,EAAE;AACzD;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,uBAAuB,EAAE;AACtD;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,iBAAiB,EAAE;AAChD;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,uBAAuB,EAAE;AACtD;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,sBAAsB,EAAE;AACrD;AACA;AACA,EAAE;AACF;AACA,kCAAkC,oBAAoB,EAAE;AACxD;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,oBAAoB,EAAE;AACnD;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,2BAA2B,EAAE;AAC1D,0CAA0C,8BAA8B,EAAE;AAC1E;AACA,EAAE;AACF;AACA;AACA,6BAA6B,sBAAsB,EAAE;AACrD;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,sBAAsB,EAAE;AACrD;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6CAA6C,2BAA2B;AACxE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;;AAEA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,MAAM;AACN;AACA;AACA,EAAE;;AAEF,EAAE;;AAEF;AACA;;AAEA;;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;;AAEA;AACA;AACA;AACA,MAAM;;AAEN;AACA;;AAEA;;AAEA;AACA,iCAAiC;AACjC;AACA;AACA,MAAM;;AAEN;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,2BAA2B;;AAE3B;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+CAA+C;AAC/C;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+DAA+D;;AAE/D;AACA,UAAU;AACV;AACA,qEAAqE;AACrE;;AAEA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,UAAU;AACV;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;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;;AAEV;;AAEA,2DAA2D,gBAAgB;AAC3E,qDAAqD,aAAa;AAClE;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;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;;AAEA,kBAAkB;AAClB,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;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;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;;AAEV;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA,wCAAwC,KAAK;AAC7C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;AACA;;AAEA;AACA,mDAAmD;AACnD;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,6BAA6B,6BAA6B;AAC1D;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;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;;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;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;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;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;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;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;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B,gBAAgB;AAC7C;;AAEA;AACA;AACA;AACA;AACA,UAAU;;AAEV;AACA,iCAAiC,gBAAgB;AACjD;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;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,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA,4BAA4B,OAAO;AACnC;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;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;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,cAAc;AACd,UAAU;AACV;AACA;AACA;AACA;;AAEA;;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;AACA;AACA;AACA;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,eAAe,KAAK;AACpB,eAAe,KAAK;AACpB;;AAEA;AACA,uCAAuC;AACvC,uBAAuB,kCAAkC;AACzD;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,gCAAgC;AAChC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;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;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,yCAAyC;;AAEvE;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,wCAAwC,QAAQ;AAChD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C;;AAEA;AACA;AACA,+BAA+B,aAAa;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oCAAoC;AACxD;AACA;AACA,6BAA6B,mCAAmC;AAChE;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAE;;;;AAIF;AACA;AACA;AACA;AACA,mDAAmD,YAAY;AAC/D,UAAU;AACV;AACA,MAAM;AACN;AACA,0BAA0B,mCAAmC;AAC7D;AACA,MAAM;AACN;AACA,yCAAyC,2BAA2B;AACpE;AACA,MAAM;AACN;AACA;AACA,sC;AACA,UAAU;AACV;AACA,MAAM;AACN;AACA,6BAA6B,0BAA0B,EAAE;AACzD;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM;AACN,yBAAyB,mBAAmB;AAC5C,6BAA6B,mBAAmB;AAChD;AACA,6BAA6B;AAC7B,MAAM;AACN;AACA,6BAA6B,8BAA8B,EAAE;AAC7D,0BAA0B,0BAA0B,EAAE;AACtD;AACA,MAAM;;AAEN;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,EAAE;;AAEF;AACA,EAAE;;AAEF;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;AACA;AACA;AACA;AACA;AACA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA,iCAAiC;;AAEjC,4BAA4B,gCAAgC;AAC5D;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,EAAE;;AAEF;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA,qDAAqD;;AAErD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;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;AACA;;AAEA;AACA;AACA,yBAAyB;AACzB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,mCAAmC,UAAU;AAC7C,kCAAkC;AAClC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAE;;AAEF;;AAEA,EAAE;;AAEF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sB;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oCAAoC;AACpC,sBAAsB;AACtB,8BAA8B;AAC9B,gCAAgC;AAChC;AACA;AACA;;AAEA;AACA;AACA,oCAAoC;AACpC,kCAAkC;AAClC,8BAA8B;AAC9B,mCAAmC;AACnC;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,oCAAoC;AACpC,sBAAsB;AACtB,8BAA8B;AAC9B,mCAAmC;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oCAAoC;AACpC,kCAAkC;AAClC,8BAA8B;AAC9B,gCAAgC;AAChC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oCAAoC;AACpC,8BAA8B;AAC9B,qBAAqB,QAAQ;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oCAAoC;AACpC,8BAA8B;AAC9B,qBAAqB,QAAQ;AAC7B;AACA;;AAEA,EAAE;;AAEF;;AAEA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,wCAAwC,aAAa;AACrD;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,kGAAkG,OAAO;AACzG;;AAEA;AACA,gGAAgG,OAAO;AACvG;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,qCAAqC;;AAErC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,8BAA8B;AAC9B,cAAc;AACd,8BAA8B;AAC9B,cAAc;AACd,8BAA8B;AAC9B,cAAc;AACd;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,oGAAoG;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA,UAAU;;AAEV;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAE;;AAEF;;AAEA,EAAE;;AAEF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,qCAAqC,KAAK;AAC1C;AACA;AACA;AACA;AACA,qCAAqC,KAAK;AAC1C;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;AACA,cAAc;AACd,UAAU;;AAEV;AACA;AACA;AACA,UAAU;;AAEV;AACA;;AAEA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB;AACjB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,aAAa;AACzC;;AAEA,+CAA+C,OAAO;AACtD;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,EAAE;;AAEF;;AAEA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,qBAAqB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,mCAAmC,sBAAsB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAE;;;AAGF,gCAAgC;AAChC,iCAAiC;AACjC,iCAAiC;;AAEjC;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA,EAAE;;AAEF;AACA,EAAE;;AAEF;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,4BAA4B;AAC5B;AACA;;AAEA;;AAEA;;AAEA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,WAAW;AAC3D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kB;AACA;AACA,cAAc;AACd,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,EAAE;;AAEF,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,oBAAoB;AACpB,kBAAkB;AAClB,8FAA8F;AAC9F,gBAAgB;AAChB,kBAAkB;AAClB,EAAE;AACF,gBAAgB;AAChB,oBAAoB;AACpB,kBAAkB;AAClB,QAAQ;AACR,WAAW;AACX,2BAA2B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ACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;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;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;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;;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;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,gG;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;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;;AAEA;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;;AAEA;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;;AAEA;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;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;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;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oB;AACA,U;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;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;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,kDAAkD,QAAQ;AAC1D,8CAA8C,QAAQ;AACtD;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;;AAEA;AACA;AACA;AACA,uDAAuD,qBAAqB;AAC5E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC;;AAElC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;AAEA;AACA;AACA;;AAEA,iBAAiB;AACjB;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;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;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,YAAY;;AAEzD;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kDAAkD;AAClD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kDAAkD,aAAa;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAE;;;AAGF;AACA,sBAAsB,oBAAoB;AAC1C;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,MAAM;AACN;AACA,0BAA0B,2BAA2B,EAAE;AACvD;AACA,MAAM;AACN;AACA,0BAA0B,2BAA2B,EAAE;AACvD;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,qE;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,MAAM;AACN;AACA;AACA;AACA,UAAU;AACV;AACA,MAAM;AACN;AACA,8BAA8B,2CAA2C;AACzE;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,UAAU;AACV;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,6BAA6B,qBAAqB;AAClD,0BAA0B,oCAAoC,EAAE;AAChE;AACA;AACA;AACA,EAAE;;AAEF;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA,yCAAyC,iCAAiC;AAC1E;;AAEA;;AAEA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,yCAAyC,eAAe;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mCAAmC,yBAAyB;AAC5D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uCAAuC,qBAAqB,iBAAiB;AAC7E;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,kCAAkC,QAAQ;AAC1C;;AAEA;AACA,0EAA0E;AAC1E;AACA,wCAAwC,iCAAiC;AACzE,UAAU,YAAY;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAE;;;AAGF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,UAAU;AACpC;AACA;AACA,2BAA2B,yCAAyC;AACpE;AACA;AACA,2BAA2B,sCAAsC;AACjE;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;;AAEA;AACA;;AAEA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA,oGAAoG;AACpG;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,qDAAqD,QAAQ;AAC7D;AACA,mCAAmC;AACnC;AACA;AACA,cAAc;AACd,qDAAqD,QAAQ;AAC7D;AACA,mCAAmC;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,yCAAyC,KAAK;AAC9C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,KAAK;AAC9C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,O;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA,EAAE;;;AAGF;AACA,EAAE;;AAEF;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB;;AAEpB;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;;AAEV,MAAM;AACN;AACA,8C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA,6E;AACA;AACA;AACA;;AAEA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,+CAA+C,uBAAuB;;AAEtE;AACA;AACA;;;AAGA;;AAEA,EAAE;;AAEF;AACA;AACA;AACA,6BAA6B,4BAA4B,EAAE;AAC3D,eAAe,uCAAuC;AACtD;AACA;AACA,EAAE;AACF;AACA,6BAA6B,2BAA2B,EAAE;AAC1D,eAAe,2CAA2C;AAC1D;AACA;AACA,EAAE;AACF;AACA,6BAA6B,kCAAkC,EAAE;AACjE,eAAe,mDAAmD;AAClE;AACA;AACA,EAAE;AACF;AACA,6BAA6B,iCAAiC,EAAE;AAChE,eAAe,uDAAuD;AACtE;AACA;AACA,EAAE;AACF;AACA,6BAA6B,uBAAuB,EAAE;AACtD,eAAe,2CAA2C;AAC1D;AACA;AACA,EAAE;AACF;AACA,6BAA6B,sBAAsB,EAAE;AACrD,eAAe,6CAA6C;AAC5D;AACA;AACA,EAAE;AACF;AACA,6BAA6B,6BAA6B,EAAE;AAC5D,eAAe,uDAAuD;AACtE;AACA;AACA,EAAE;AACF;AACA,6BAA6B,4BAA4B,EAAE;AAC3D,eAAe,yDAAyD;AACxE;AACA;AACA,EAAE;AACF;AACA,6BAA6B,qCAAqC,EAAE;AACpE,eAAe,qCAAqC;AACpD;AACA,EAAE;AACF;AACA,6BAA6B,uBAAuB,EAAE;AACtD,eAAe,qCAAqC;AACpD;AACA,EAAE;AACF;AACA,6BAA6B,kBAAkB,EAAE;AACjD,eAAe,qCAAqC;AACpD;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,6BAA6B,8BAA8B,EAAE;AAC7D;AACA;AACA,oCAAoC;AACpC,EAAE;;AAEF;AACA;;AAEA,EAAE;;AAEF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mCAAmC,aAAa;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC,KAAK;AAC1C;AACA;AACA;;AAEA,sCAAsC,gBAAgB;;AAEtD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,uCAAuC,YAAY;AACnD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iCAAiC,eAAe;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,YAAY;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oCAAoC,KAAK;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA,uDAAuD;AACvD,UAAU;AACV,oEAAoE;AACpE;AACA;AACA,O;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wDAAwD,wBAAwB;;AAEhF;AACA;;AAEA;AACA;AACA,oCAAoC,KAAK;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,wBAAwB;AACzF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;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,U;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oCAAoC,KAAK;AACzC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC,KAAK;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iCAAiC,KAAK;AACtC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iCAAiC,KAAK;AACtC;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA,kCAAkC,mBAAmB;AACrD;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,cAAc;;AAEd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU;AACV;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;;AAGF;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;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,UAAU;AACV;AACA,MAAM;AACN;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,EAAE;;;;AAIF,EAAE;;AAEF;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB;AACtB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB;AACpB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF,EAAE;;AAEF;AACA;;AAEA;AACA;AACA,yCAAyC;AACzC,qBAAqB;AACrB,aAAa;AACb,EAAE;AACF,4BAA4B;AAC5B,YAAY;AACZ,qBAAqB;AACrB,EAAE;AACF,oBAAoB;AACpB,2BAA2B;AAC3B,EAAE;AACF,UAAU;AACV,2BAA2B;AAC3B,cAAc;AACd,EAAE;AACF,sBAAsB;AACtB,cAAc;AACd,EAAE;AACF,yBAAyB;AACzB,2BAA2B;AAC3B,EAAE;AACF;AACA,uBAAuB;AACvB,aAAa;AACb,EAAE;AACF,wBAAwB;AACxB,wBAAwB;AACxB,EAAE;AACF,oCAAoC;AACpC,yBAAyB;AACzB,EAAE;AACF,qCAAqC;AACrC,yBAAyB;AACzB,EAAE;AACF,oCAAoC;AACpC,wBAAwB;AACxB,EAAE;AACF,uBAAuB;AACvB,wCAAwC;AACxC,YAAY;AACZ,EAAE;AACF,oCAAoC;AACpC,yBAAyB;AACzB,EAAE;AACF,oCAAoC;AACpC,wBAAwB;AACxB,EAAE;AACF;AACA,iCAAiC;AACjC,2BAA2B;AAC3B,EAAE;AACF,oCAAoC;AACpC,2BAA2B;AAC3B,EAAE;AACF,sBAAsB;AACtB,uBAAuB;AACvB,EAAE;AACF,uBAAuB;AACvB,0BAA0B;AAC1B,EAAE;AACF,+BAA+B;AAC/B,yBAAyB;AACzB,EAAE;AACF,uCAAuC;AACvC,2BAA2B;AAC3B,EAAE;AACF,oCAAoC;AACpC,uBAAuB;AACvB,EAAE;AACF,wBAAwB;AACxB,0BAA0B;AAC1B,EAAE;AACF,sBAAsB;AACtB,0BAA0B;AAC1B,EAAE;AACF,4CAA4C;AAC5C,gBAAgB;AAChB,EAAE;AACF,uBAAuB;AACvB,wBAAwB;AACxB,EAAE;AACF,oBAAoB;AACpB,wBAAwB;AACxB,EAAE;AACF,4BAA4B;AAC5B,uBAAuB;AACvB,EAAE;AACF,gCAAgC;AAChC;AACA,EAAE;AACF,2CAA2C;AAC3C,gCAAgC;AAChC,EAAE;AACF,mDAAmD;AACnD,+BAA+B;AAC/B,EAAE;AACF,sCAAsC;AACtC,8BAA8B;AAC9B,EAAE;AACF,uCAAuC;AACvC,gCAAgC;AAChC,EAAE;AACF,yCAAyC;AACzC,uBAAuB;AACvB,sCAAsC;AACtC,EAAE;AACF,6CAA6C;AAC7C,iCAAiC;AACjC,EAAE;AACF,kCAAkC;AAClC,4BAA4B;AAC5B,EAAE;AACF,+CAA+C;AAC/C,gCAAgC;AAChC,sCAAsC;AACtC,EAAE;AACF,4BAA4B;AAC5B,kCAAkC,kIAAkI;AACpK,EAAE;AACF;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,O;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,SAAS;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,UAAU;AACV;AACA;AACA;AACA,cAAc;AACd;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;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;AACA;AACA;AACA;;AAEA,2CAA2C,MAAM,OAAO,aAAa;;AAErE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,MAAM,OAAO,aAAa;AACrE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,MAAM,OAAO,WAAW;AACvE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,WAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,iBAAiB;AAChF;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA,EAAE;;;AAGF;;AAEA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,wCAAwC,qBAAqB;AAC7D;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,sDAAsD,0BAA0B;AAChF;;;AAGA;AACA,4BAA4B;AAC5B,6BAA6B;AAC7B,wBAAwB;AACxB;AACA,MAAM;AACN,oBAAoB;AACpB,+BAA+B;AAC/B,kCAAkC;AAClC,uBAAuB;AACvB,4BAA4B;AAC5B,+BAA+B;AAC/B,MAAM;AACN,4DAA4D;AAC5D;AACA,MAAM;AACN,gEAAgE;AAChE;AACA,MAAM;AACN,0DAA0D;AAC1D;AACA,MAAM;AACN,sDAAsD;AACtD;AACA,MAAM;AACN,0BAA0B;AAC1B,4BAA4B;AAC5B,2BAA2B;AAC3B,iDAAiD;AACjD,mDAAmD;AACnD,kDAAkD;AAClD,mBAAmB;AACnB,MAAM;AACN;;AAEA,EAAE;;AAEF;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,cAAc;;AAEd;;AAEA,OAAO;AACP;AACA;;AAEA,8BAA8B,mDAAmD;;;AAGjF,OAAO;AACP;AACA;;AAEA,+CAA+C;;AAE/C;AACA;AACA;AACA,2BAA2B,mBAAmB;AAC9C;AACA,MAAM;AACN;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,mDAAmD,SAAS;AAC5D;AACA,MAAM,wCAAwC,SAAS;AACvD;AACA;;AAEA;AACA;AACA;;AAEA,6BAA6B,4BAA4B,aAAa,EAAE;;AAExE,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,cAAc;AACd;AACA;AACA,cAAc;AACd;AACA;AACA,cAAc;AACd;AACA;AACA,cAAc;AACd;AACA;AACA,cAAc;AACd;AACA,8BAA8B;AAC9B,cAAc;AACd;AACA,gCAAgC;AAChC,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,EAAE,cAAc,EAAE;AAC9D,cAAc;AACd;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,EAAE;;AAEF;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA,uBAAuB;AACvB;;AAEA;AACA;AACA,wCAAwC;;AAExC;;AAEA;AACA,qDAAqD,yBAAyB;;AAE9E;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,EAAE;;AAEF;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,mCAAmC,QAAQ;AAC3C,sCAAsC,KAAK;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,4BAA4B;;AAE5B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;A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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;;AAEV;AACA;AACA,UAAU;;AAEV;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA,oCAAoC,YAAY;AAChD,UAAU;AACV;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA,mBAAmB,iDAAiD;AACpE;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,mBAAmB,iDAAiD;AACpE;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,mBAAmB,iDAAiD;AACpE;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,6CAA6C,kBAAkB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kE;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,6CAA6C,kBAAkB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,O;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;AACA;AACA;;AAEA,EAAE;AACF;AACA,sEAAsE;AACtE,kBAAkB;;;AAGlB,OAAO;AACP;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,kCAAkC;AAClC;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,iDAAiD;AACjD,qBAAqB;AACrB;AACA,EAAE;AACF;AACA,6BAA6B;AAC7B,qFAAqF;AACrF,kBAAkB;AAClB,wBAAwB;AACxB,EAAE;AACF,oCAAoC;AACpC,YAAY;AACZ;AACA,EAAE;AACF,gCAAgC;AAChC;AACA,EAAE;AACF,kCAAkC;AAClC;AACA,EAAE;AACF,gCAAgC;AAChC;AACA,EAAE;AACF,8BAA8B;AAC9B;AACA,EAAE;AACF,qDAAqD;AACrD,kBAAkB;AAClB;AACA,EAAE;AACF,mDAAmD;AACnD;AACA,EAAE;AACF,2DAA2D;AAC3D,iCAAiC;AACjC;AACA,EAAE;AACF,8CAA8C;AAC9C;AACA,EAAE;AACF,iDAAiD;AACjD,uBAAuB;AACvB;AACA,EAAE;AACF,qDAAqD;AACrD;AACA,EAAE;AACF,0CAA0C;AAC1C;AACA,EAAE;AACF,uDAAuD;AACvD;AACA,EAAE;AACF,iCAAiC;AACjC;AACA,EAAE;AACF;AACA;AACA,+DAA+D;AAC/D;AACA,EAAE;AACF,4CAA4C;AAC5C;AACA,EAAE;AACF,kDAAkD;AAClD;AACA,EAAE;AACF,6CAA6C;AAC7C;AACA,EAAE;AACF,4CAA4C;AAC5C;AACA,EAAE;AACF,yDAAyD;AACzD;AACA,EAAE;AACF,+BAA+B;AAC/B,gBAAgB;AAChB,2BAA2B;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,EAAqCC,cAArC,EAAqDC,kBAAkBF,kBAAlB,CAArD;AAA6F,IAAC,OAAOH,QAAP;AAAiB;AACjrBQ,OAAOC,OAAP,GAAiB/b,QAAjB,C;;;;;;ACzcA,yC;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,IAA0C;AAChD,IAAI,iCAAO,CAAC,sBAAQ,CAAC,oCAAE,OAAO;AAAA;AAAA;AAAA,oGAAC;AAC/B,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,sBAAsB;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,kBAAkB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH,8BAA8B,oCAAa;;AAE3C;AACA;AACA;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;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;;;AAGP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP,oCAAoC,6CAA6C;AACjF;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA,OAAO;AACP;AACA,uEAAuE,aAAa;AACpF;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;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;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,KAAK;AACL;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;AACA;AACA;AACA;AACA,KAAK;AACL;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,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,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,KAAK;AACL;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;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,KAAK;AACL;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;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,GAAG;;AAEH;AACA,0FAA0F,eAAe;AACzG;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA,CAAC;;;;;;;;AC9vBD,yC;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wB;;;;;;;;;AChCA,IAAImb,MAAMC,mBAAOA,CAAC,CAAR,CAAV;;AAEA,SAASpb,QAAT,CAAkBqb,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,4EAAmH,y1DAApH,EAAxB;AACtH,KAAC,IAAIC,kBAAmBP,UAAU,EAAjC,CAAsC,WAAUqH,MAAV,EAAkBc,WAAlB,EAA+B;AAAC,OAAC9H,iBAAiB,CAAjB,CAAmBD,qBAAqB,0EAArB;AAC3FH,iBAAWA,WAAW,8BAAtB;AA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A;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,UAAU;AACtB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,QAAQ;AACzB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,UAAU;AACtB,YAAY,qBAAqB;AACjC,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;;AAEA,aAAa,QAAQ;AACrB;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,UAAU;AACtB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B,SAAS;AACnC;;AAEA;AACA,qBAAqB,OAAO;AAC5B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,qBAAqB;AACjC,YAAY,SAAS;AACrB,YAAY,OAAO;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iCAAiC;AAC9C;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAmB;AACpC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,UAAU;AACtB,YAAY,OAAO;AACnB,YAAY,qBAAqB;AACjC,YAAY,OAAO;AACnB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,mBAAmB;AACpC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,iBAAiB;AAC9B,eAAe,mBAAmB;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,aAAa;AAC1B,eAAe,mBAAmB;AAClC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,YAAY,oBAAoB;AAChC,YAAY,YAAY;AACxB,YAAY,OAAO;AACnB;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,gEAAgE;AAChE;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,eAAe;AAC1B,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;AClfA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;ACpCA,iBAAiB,mBAAO,CAAC,EAAiB;;AAE1C;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;;;;;;;AClEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,mBAAO,CAAC,EAAS;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,YAAY,OAAO;AACnB,YAAY,MAAM;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iBAAiB,kBAAkB;AACnC;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,gFAAgF;AAChF;AACA;AACA;AACA,2BAA2B,sBAAsB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,eAAe;AAChC,mBAAmB,eAAe;AAClC;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;AClFA,oBAAoB,mBAAO,CAAC,EAAS;AACrC;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,MAAM;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACrBA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,cAAc;AAC1B,YAAY,OAAO;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,YAAY;AAC/B;AACA;;AAEA,qBAAqB,YAAY;AACjC;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,gBAAgB;AACnC,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,YAAY;AAC/B;AACA,qBAAqB,YAAY;AACjC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,kBAAkB;;AAEnC;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,UAAU;AACtB;AACA;AACA;;AAEA,mBAAmB,YAAY;AAC/B,qBAAqB,YAAY;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,UAAU;AACtB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,iBAAiB;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;ACzOA,iBAAiB,mBAAO,CAAC,EAAiB;AAC1C,iBAAiB,mBAAO,CAAC,GAAc;AACvC,aAAa,mBAAO,CAAC,GAAQ;;AAE7B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;;;;;;ACzDA,iBAAiB,mBAAO,CAAC,EAAiB;AAC1C,SAAS,mBAAO,CAAC,GAAgB;;AAEjC;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB;AACA;AACA;;AAEA,iBAAiB,eAAe;AAChC,mBAAmB,eAAe;AAClC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB,oBAAoB;AACvC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;;AAEA;AACA;;;;;;;AC9DA,iBAAiB,mBAAO,CAAC,EAAiB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,CAAC;AACD;AACA,iBAAiB,SAAS;AAC1B;AACA;;AAEA;;AAEA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX,eAAe,SAAS;AACxB;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,YAAY;AACZ;AACA;AACA;;AAEA;AACA,WAAW;AACX;AACA;;;;;;;;ACtEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEY;;AAEZ,aAAa,mBAAO,CAAC,GAAW;AAChC,cAAc,mBAAO,CAAC,GAAS;AAC/B,cAAc,mBAAO,CAAC,GAAS;;AAE/B;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;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,mDAAmD;AACxE;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;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,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,uCAAuC,SAAS;AAChD;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;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;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;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD,EAAE;AAClD;AACA;AACA;AACA;;AAEA;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;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,eAAe;AACvC;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,wBAAwB,QAAQ;AAChC;AACA,qBAAqB,eAAe;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;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,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;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;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD,OAAO;AAC9D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD,OAAO;AAC9D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA,GAAG;AACH;AACA,eAAe,SAAS;AACxB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;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,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,YAAY;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;AC5vDY;;AAEZ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC,SAAS;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C,UAAU;AACpD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,QAAQ,WAAW;;AAEnB;AACA;AACA;AACA,QAAQ,WAAW;;AAEnB;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA,QAAQ,WAAW;;AAEnB;AACA;AACA,QAAQ,UAAU;;AAElB;AACA;;;;;;;ACpFA,iBAAiB;;AAEjB;AACA;AACA;;;;;;;ACJA,YAAY,mBAAO,CAAC,EAAS;AAC7B,aAAa,mBAAO,CAAC,GAAyB;AAC9C,cAAc,mBAAO,CAAC,GAA0B;AAChD,WAAW,mBAAO,CAAC,EAAQ;AAC3B,mBAAmB,mBAAO,CAAC,GAAiB;AAC5C,cAAc,mBAAO,CAAC,GAAS;;AAE/B;AACA;AACA;;AAEA;AACA,8BAA8B,sBAAsB;AACpD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA,8BAA8B,sBAAsB;AACpD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,cAAc;AAC1B,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,YAAY,KAAK;AACjB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,OAAO;AACnB,YAAY,KAAK;AACjB,YAAY,OAAO;AACnB;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;ACnKA,YAAY,mBAAO,CAAC,EAAS;;AAE7B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;AC5BA,WAAW,mBAAO,CAAC,EAAQ;AAC3B,kBAAkB,mBAAO,CAAC,GAAgB;AAC1C,uBAAuB,mBAAO,CAAC,GAAqB;AACpD,eAAe,mBAAO,CAAC,GAAa;AACpC,gBAAgB,mBAAO,CAAC,GAAc;AACtC,YAAY,mBAAO,CAAC,GAAS;AAC7B,YAAY,mBAAO,CAAC,EAAS;AAC7B,eAAe,mBAAO,CAAC,GAAY;;AAEnC;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,KAAK;AACjB,YAAY,OAAO;AACnB,YAAY,MAAM;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,KAAK;AACjB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;;AAEA;AACA;AACA;AACA,WAAW,8DAA8D;AACzE,WAAW;AACX;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,MAAM;AAClB,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB;AACA;AACA;AACA,eAAe;AACf;;AAEA,iBAAiB,kBAAkB;AACnC;AACA;;AAEA,mBAAmB,sBAAsB;AACzC;AACA;;AAEA;AACA,oBAAoB;AACpB;;AAEA,qBAAqB,wBAAwB;AAC7C;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,aAAa,wBAAwB;AACrC;AACA;;AAEA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,cAAc;AAC1B,YAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,YAAY,MAAM;AAClB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,qBAAqB;AACtC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;;;;;;;ACzUA,WAAW,mBAAO,CAAC,EAAQ;;AAE3B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa,2BAA2B;AACxC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;AC1CA,WAAW,mBAAO,CAAC,EAAQ;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa,2BAA2B;AACxC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC1DA,iBAAiB,mBAAO,CAAC,EAAiB;AAC1C,WAAW,mBAAO,CAAC,EAAQ;;AAE3B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,uCAAuC,OAAO;AAC9C;AACA;AACA;;AAEA;;;;;;;AC1BA,WAAW,mBAAO,CAAC,EAAQ;AAC3B,YAAY,mBAAO,CAAC,EAAS;;AAE7B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,sBAAsB;AACnC;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;;ACrDa;;AAEb;AACA;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,+DAA+D;AAC/D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;;AAGA;AACA,IAAI,IAA6B;AACjC;AACA;;;;;;;ACpKA,YAAY,mBAAO,CAAC,GAAS;;AAE7B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;;;;;;AC9DA,YAAY,mBAAO,CAAC,GAAS;;AAE7B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,iBAAiB;AAClC;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,UAAU,mBAAO,CAAC,GAAK;;AAEvB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B,iBAAiB,OAAO;AACxB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,eAAe,mBAAO,CAAC,GAAU;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM,KAAK;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,yCAAyC,KAAK;AAC9C,wCAAwC,KAAK;AAC7C;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,gBAAgB,mBAAO,CAAC,GAAI;;AAE5B;AACA,6DAA6D,YAAY;;AAEzE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;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,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,4BAA4B;AAC/C;AACA,4DAA4D,eAAe;AAC3E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA,4DAA4D,eAAe;AAC3E;AACA;AACA,yBAAyB,uBAAuB;;AAEhD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2CAA2C,OAAO;AAClD;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA,0CAA0C,OAAO;AACjD;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;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,0CAA0C,OAAO;AACjD;AACA,oCAAoC,UAAU;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,aAAa,sBAAsB;AACnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qBAAqB;AACrD,8BAA8B,uCAAuC;AACrE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA,gDAAgD,iBAAiB;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,2BAA2B;AAC5E,GAAG;AACH;AACA;;AAEA,uCAAuC,mBAAmB;AAC1D,2CAA2C,uBAAuB;;AAElE;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,iBAAiB;AACjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,mBAAmB;AACrC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA,gCAAgC,+BAA+B;AAC/D;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oEAAoE;AACpE,2BAA2B,oBAAoB;AAC/C,+BAA+B,wBAAwB;AACvD,8BAA8B,qBAAqB;AACnD,+BAA+B,qBAAqB;AACpD;AACA,KAAK;AACL;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;AACA;AACA;AACA;AACA;AACA,8BAA8B,0BAA0B,EAAE,OAAO,8BAA8B;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,4BAA4B,EAAE,OAAO,gCAAgC;AACrG;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,8BAA8B,QAAQ;AACtC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,MAAM;AAChB;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;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sBAAsB;AACnC;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;ACvwBA;AACA,CAAC;;AAED;AACA;AACA;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;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,cAAc,MAAM;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,MAAM;AAClB,YAAY,SAAS;AACrB;AACA,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,SAAS;AACrB;AACA,cAAc,MAAM;AACpB;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,YAAY,OAAO;AACnB,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA,KAAK;AACL,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,MAAM;AAClB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,cAAc,OAAO;AACrB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,mCAAmC;AAClE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,cAAc,OAAO;AACrB;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;;AAEA,aAAa,WAAW;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB;;AAExB,yCAAyC,qBAAqB;;AAE9D;AACA;AACA;AACA;AACA;AACA,kCAAkC,oBAAoB;;AAEtD;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,cAAc,iBAAiB;AAC/B;;AAEA;AACA;AACA;;AAEA;AACA;AACA,8BAA8B,oBAAoB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE,IAEU;AACZ;AACA,EAAE,mCAAmB;AACrB;AACA,GAAG;AAAA,oGAAC;AACJ,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA,CAAC;;;;;;;;;ACphBY;;AAEb,gBAAgB,mBAAO,CAAC,GAAa;AACrC,YAAY,mBAAO,CAAC,GAAS;AAC7B,cAAc,mBAAO,CAAC,GAAW;;AAEjC;AACA;AACA;AACA;AACA;;;;;;;;ACVa;;AAEb,qBAAqB,mBAAO,CAAC,GAAc;AAC3C,YAAY,mBAAO,CAAC,GAAS;AAC7B,cAAc,mBAAO,CAAC,GAAW;AACjC;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;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,KAAK;AACL;AACA;AACA;;AAEA;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;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iEAAiE;AACrF,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA,mBAAmB,oBAAoB;AACvC;AACA;;AAEA;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;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;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;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mBAAmB,oBAAoB;AACvC;;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;;AAEA;AACA;AACA,2CAA2C;AAC3C;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;AC9Va;;AAEb,mBAAmB,mBAAO,CAAC,EAAe;AAC1C,gBAAgB,mBAAO,CAAC,GAAqB;AAC7C,cAAc,mBAAO,CAAC,GAAgB;;AAEtC,iBAAiB,mBAAO,CAAC,EAAgB;AACzC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,wBAAwB;AACnC,wCAAwC;AACxC,YAAY,iDAAiD;AAC7D;AACA,YAAY,sBAAsB;AAClC;AACA,OAAO,6BAA6B;AACpC;AACA;AACA;AACA,0BAA0B,8BAA8B;AACxD,oBAAoB;AACpB;AACA;AACA;AACA;;AAEA,WAAW,oBAAoB;AAC/B;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B;AACA;AACA;AACA;AACA,EAA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AAW,mBAAO,CAAC,GAAM;;AAEzB,iBAAiB,mBAAO,CAAC,EAAgB;AACzC;;AAEA,WAAW,YAAY;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,sBAAsB;AAC3C,GAAG;AACH,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;;;;;;;;ACzCa;;AAEb,sBAAsB,mBAAO,CAAC,GAAoB;;AAElD,mBAAmB,mBAAO,CAAC,GAAkB;AAC7C,iBAAiB,mBAAO,CAAC,EAAgB;;AAEzC,WAAW,mBAAO,CAAC,GAAM;;AAEzB,WAAW,YAAY;AACvB;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,WAAW,yCAAyC;AACpD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA,wBAAwB;AACxB,EAAE;AACF;AACA;AACA;;;;;;;;ACvDa;;AAEb,sBAAsB,mBAAO,CAAC,GAAoB;;AAElD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,WAAW;AACnD,EAAE;AACF;AACA;AACA;AACA;;AAEA;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,+BAA+B;AAC/B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,EAAE;AACvC;AACA,wDAAwD;AACxD;AACA;AACA;AACA,2GAA2G,EAAE;AAC7G;AACA;AACA;AACA;;AAEA,kBAAkB,mBAAO,CAAC,GAAgB;AAC1C;AACA;;AAEA;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;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,WAAW;AAClD;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sDAAsD;AACtD;AACA;AACA,iGAAiG,iCAAiC;AAClI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA,sDAAsD,YAAY;AAClE;AACA;AACA;AACA;AACA,+BAA+B,aAAa;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,wGAAwG;AAC7H;AACA,iCAAiC,gCAAgC;AACjE,iBAAiB,wDAAwD;AACzE;AACA;AACA;AACA,qCAAqC,0BAA0B;AAC/D,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;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,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA,iBAAiB,sBAAsB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,iBAAiB,EAAE;AACjD;AACA,2BAA2B,iCAAiC;AAC5D;AACA,uBAAuB,+BAA+B;AACtD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iDAAiD;AACjD;;AAEA,uBAAuB,8GAA8G;AACrI,sBAAsB,6GAA6G;AACnI,wBAAwB,+GAA+G;AACvI,uBAAuB,8GAA8G;AACrI,wBAAwB,+GAA+G;AACvI,wBAAwB,+GAA+G;AACvI,yBAAyB,gHAAgH;;AAEzI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA,gEAAgE,oBAAoB;AACpF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,eAAe;AAChC;AACA,YAAY,aAAa;AACzB;AACA;;AAEA;AACA,qBAAqB,sBAAsB;AAC3C,kCAAkC,OAAO;AACzC,0BAA0B,UAAU;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,gCAAgC;AAChC,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oCAAoC;AACpC,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,gCAAgC;AAChC,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oCAAoC;AACpC,KAAK;AACL;AACA;;AAEA;AACA,sCAAsC,cAAc;AACpD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,YAAY,iBAAiB;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qBAAqB,IAAI;AACzB;;AAEA;AACA;AACA,oCAAoC,sBAAsB;AAC1D;;AAEA;AACA,mBAAmB,eAAe;AAClC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,WAAW;AACrC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;;AAEA,0BAA0B;AAC1B,6BAA6B,UAAU,EAAE;AACzC,uEAAuE,UAAU,EAAE;AACnF;AACA;AACA,qBAAqB;AACrB,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9gBA,e;;;;;;;ACAa;;AAEb,YAAY,mBAAO,CAAC,GAAS;;AAE7B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC;AAChC;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wCAAwC,gCAAgC;;AAExE;AACA,uCAAuC;;AAEvC;AACA,eAAe;;AAEf;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;;AAEA,eAAe,kBAAkB;AACjC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,kCAAkC,QAAQ;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;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;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;AClSA,IAAIrH,MAAMC,mBAAOA,CAAC,CAAR,CAAV;;AAEA,SAASpb,QAAT,CAAkBqb,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,wEAA+G,2HAAhH,EAAxB;AACtH,KAACD,iBAAiB,CAAjB,CAAmBD,qBAAqB,sEAArB;AACpBH,eAAWA,WAAW,MAAtB;AACA,KAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,sEAArB;AACpBH,eAAWA,WAAW,uCAAtB;AACA,KAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB,sEAArB;AACpBH,eAAWA,WAAW,wFAAtB;AACA,KAACI,iBAAiB,CAAjB,CAAmBD,qBAAqB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","file":"girder_lib.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// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 240);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 56669f073e69687a58bc","'use strict';\n\nvar pug_has_own_property = Object.prototype.hasOwnProperty;\n\n/**\n * Merge two attribute objects giving precedence\n * to values in object `b`. Classes are special-cased\n * allowing for arrays and merging/joining appropriately\n * resulting in a string.\n *\n * @param {Object} a\n * @param {Object} b\n * @return {Object} a\n * @api private\n */\n\nexports.merge = pug_merge;\nfunction pug_merge(a, b) {\n if (arguments.length === 1) {\n var attrs = a[0];\n for (var i = 1; i < a.length; i++) {\n attrs = pug_merge(attrs, a[i]);\n }\n return attrs;\n }\n\n for (var key in b) {\n if (key === 'class') {\n var valA = a[key] || [];\n a[key] = (Array.isArray(valA) ? valA : [valA]).concat(b[key] || []);\n } else if (key === 'style') {\n var valA = pug_style(a[key]);\n valA = valA && valA[valA.length - 1] !== ';' ? valA + ';' : valA;\n var valB = pug_style(b[key]);\n valB = valB && valB[valB.length - 1] !== ';' ? valB + ';' : valB;\n a[key] = valA + valB;\n } else {\n a[key] = b[key];\n }\n }\n\n return a;\n};\n\n/**\n * Process array, object, or string as a string of classes delimited by a space.\n *\n * If `val` is an array, all members of it and its subarrays are counted as\n * classes. If `escaping` is an array, then whether or not the item in `val` is\n * escaped depends on the corresponding item in `escaping`. If `escaping` is\n * not an array, no escaping is done.\n *\n * If `val` is an object, all the keys whose value is truthy are counted as\n * classes. No escaping is done.\n *\n * If `val` is a string, it is counted as a class. No escaping is done.\n *\n * @param {(Array.|Object.|string)} val\n * @param {?Array.} escaping\n * @return {String}\n */\nexports.classes = pug_classes;\nfunction pug_classes_array(val, escaping) {\n var classString = '', className, padding = '', escapeEnabled = Array.isArray(escaping);\n for (var i = 0; i < val.length; i++) {\n className = pug_classes(val[i]);\n if (!className) continue;\n escapeEnabled && escaping[i] && (className = pug_escape(className));\n classString = classString + padding + className;\n padding = ' ';\n }\n return classString;\n}\nfunction pug_classes_object(val) {\n var classString = '', padding = '';\n for (var key in val) {\n if (key && val[key] && pug_has_own_property.call(val, key)) {\n classString = classString + padding + key;\n padding = ' ';\n }\n }\n return classString;\n}\nfunction pug_classes(val, escaping) {\n if (Array.isArray(val)) {\n return pug_classes_array(val, escaping);\n } else if (val && typeof val === 'object') {\n return pug_classes_object(val);\n } else {\n return val || '';\n }\n}\n\n/**\n * Convert object or string to a string of CSS styles delimited by a semicolon.\n *\n * @param {(Object.|string)} val\n * @return {String}\n */\n\nexports.style = pug_style;\nfunction pug_style(val) {\n if (!val) return '';\n if (typeof val === 'object') {\n var out = '';\n for (var style in val) {\n /* istanbul ignore else */\n if (pug_has_own_property.call(val, style)) {\n out = out + style + ':' + val[style] + ';';\n }\n }\n return out;\n } else {\n return val + '';\n }\n};\n\n/**\n * Render the given attribute.\n *\n * @param {String} key\n * @param {String} val\n * @param {Boolean} escaped\n * @param {Boolean} terse\n * @return {String}\n */\nexports.attr = pug_attr;\nfunction pug_attr(key, val, escaped, terse) {\n if (val === false || val == null || !val && (key === 'class' || key === 'style')) {\n return '';\n }\n if (val === true) {\n return ' ' + (terse ? key : key + '=\"' + key + '\"');\n }\n var type = typeof val;\n if ((type === 'object' || type === 'function') && typeof val.toJSON === 'function') {\n val = val.toJSON();\n }\n if (typeof val !== 'string') {\n val = JSON.stringify(val);\n if (!escaped && val.indexOf('\"') !== -1) {\n return ' ' + key + '=\\'' + val.replace(/'/g, ''') + '\\'';\n }\n }\n if (escaped) val = pug_escape(val);\n return ' ' + key + '=\"' + val + '\"';\n};\n\n/**\n * Render the given attributes object.\n *\n * @param {Object} obj\n * @param {Object} terse whether to use HTML5 terse boolean attributes\n * @return {String}\n */\nexports.attrs = pug_attrs;\nfunction pug_attrs(obj, terse){\n var attrs = '';\n\n for (var key in obj) {\n if (pug_has_own_property.call(obj, key)) {\n var val = obj[key];\n\n if ('class' === key) {\n val = pug_classes(val);\n attrs = pug_attr(key, val, false, terse) + attrs;\n continue;\n }\n if ('style' === key) {\n val = pug_style(val);\n }\n attrs += pug_attr(key, val, false, terse);\n }\n }\n\n return attrs;\n};\n\n/**\n * Escape the given string of `html`.\n *\n * @param {String} html\n * @return {String}\n * @api private\n */\n\nvar pug_match_html = /[\"&<>]/;\nexports.escape = pug_escape;\nfunction pug_escape(_html){\n var html = '' + _html;\n var regexResult = pug_match_html.exec(html);\n if (!regexResult) return _html;\n\n var result = '';\n var i, lastIndex, escape;\n for (i = regexResult.index, lastIndex = 0; i < html.length; i++) {\n switch (html.charCodeAt(i)) {\n case 34: escape = '"'; break;\n case 38: escape = '&'; break;\n case 60: escape = '<'; break;\n case 62: escape = '>'; break;\n default: continue;\n }\n if (lastIndex !== i) result += html.substring(lastIndex, i);\n lastIndex = i + 1;\n result += escape;\n }\n if (lastIndex !== i) return result + html.substring(lastIndex, i);\n else return result;\n};\n\n/**\n * Re-throw the given `err` in context to the\n * the pug in `filename` at the given `lineno`.\n *\n * @param {Error} err\n * @param {String} filename\n * @param {String} lineno\n * @param {String} str original source\n * @api private\n */\n\nexports.rethrow = pug_rethrow;\nfunction pug_rethrow(err, filename, lineno, str){\n if (!(err instanceof Error)) throw err;\n if ((typeof window != 'undefined' || !filename) && !str) {\n err.message += ' on line ' + lineno;\n throw err;\n }\n try {\n str = str || require('fs').readFileSync(filename, 'utf8')\n } catch (ex) {\n pug_rethrow(err, null, lineno)\n }\n var context = 3\n , lines = str.split('\\n')\n , start = Math.max(lineno - context, 0)\n , end = Math.min(lines.length, lineno + context);\n\n // Error context\n var context = lines.slice(start, end).map(function(line, i){\n var curr = i + start + 1;\n return (curr == lineno ? ' > ' : ' ')\n + curr\n + '| '\n + line;\n }).join('\\n');\n\n // Alter exception message\n err.path = filename;\n err.message = (filename || 'Pug') + ':' + lineno\n + '\\n' + context + '\\n\\n' + err.message;\n throw err;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/pug-runtime/index.js\n// module id = 0\n// module chunks = 0","import _ from 'underscore';\nimport Backbone from 'backbone';\n\nimport events from '@girder/core/events';\nimport eventStream from '@girder/core/utilities/EventStream';\n\nvar View = Backbone.View.extend({\n constructor: function (opts) { // eslint-disable-line backbone/no-constructor\n if (opts && _.has(opts, 'parentView')) {\n if (opts.parentView) {\n opts.parentView.registerChildView(this);\n this.parentView = opts.parentView;\n }\n } else {\n console.error('View created with no parentView property set. ' +\n 'This view may not be garbage collected.');\n }\n Backbone.View.prototype.constructor.apply(this, arguments);\n },\n\n /**\n * Remove a view, unbinding its events and removing its listeners on\n * events so that it can be garbage collected.\n */\n destroy: function () {\n _.each(this._childViews, function (child) {\n child.destroy();\n });\n this._childViews = null;\n\n this.undelegateEvents();\n this.stopListening();\n this.off();\n events.off(null, null, this);\n eventStream.off(null, null, this);\n\n if (this.parentView) {\n this.parentView.unregisterChildView(this);\n }\n\n // Modal views need special cleanup.\n if (this.$el.is('.modal')) {\n var el = this.$el;\n if (el.data('bs.modal') && el.data('bs.modal').isShown) {\n el.on('hidden.bs.modal', function () {\n el.empty().off().removeData();\n }).modal('hide');\n el.modal('removeBackdrop');\n } else {\n el.modal('hideModal');\n el.modal('removeBackdrop');\n el.empty().off().removeData();\n }\n } else {\n this.$el.empty().off().removeData();\n }\n },\n\n /**\n * It's typically not necessary to call this directly. Instead, instantiate\n * child views with the \"parentView\" field.\n */\n registerChildView: function (child) {\n this._childViews = this._childViews || [];\n this._childViews.push(child);\n },\n\n /**\n * Typically, you will not need to call this method directly. Calling\n * destroy on a child element will automatically unregister it from its\n * parent view if the parent view was specified.\n */\n unregisterChildView: function (child) {\n this._childViews = _.without(this._childViews, child);\n }\n});\n\nexport default View;\n\n\n\n// WEBPACK FOOTER //\n// ./src/views/View.js","/*!\n * jQuery JavaScript Library v3.7.1\n * https://jquery.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2023-08-28T13:37Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket trac-14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n\t\t// Support: Chrome <=57, Firefox <=52\n\t\t// In some browsers, typeof returns \"function\" for HTML elements\n\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n\t\t// We don't want to classify *any* DOM node as a function.\n\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\n\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\n\t\t\ttypeof obj.item !== \"function\";\n\t};\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar version = \"3.7.1\",\n\n\trhtmlSuffix = /HTML$/i,\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\n\t// Retrieve the text value of an array of DOM nodes\n\ttext: function( elem ) {\n\t\tvar node,\n\t\t\tret = \"\",\n\t\t\ti = 0,\n\t\t\tnodeType = elem.nodeType;\n\n\t\tif ( !nodeType ) {\n\n\t\t\t// If no nodeType, this is expected to be an array\n\t\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t\t// Do not traverse comment nodes\n\t\t\t\tret += jQuery.text( node );\n\t\t\t}\n\t\t}\n\t\tif ( nodeType === 1 || nodeType === 11 ) {\n\t\t\treturn elem.textContent;\n\t\t}\n\t\tif ( nodeType === 9 ) {\n\t\t\treturn elem.documentElement.textContent;\n\t\t}\n\t\tif ( nodeType === 3 || nodeType === 4 ) {\n\t\t\treturn elem.nodeValue;\n\t\t}\n\n\t\t// Do not include comment or processing instruction nodes\n\n\t\treturn ret;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\tisXMLDoc: function( elem ) {\n\t\tvar namespace = elem && elem.namespaceURI,\n\t\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t\t// Assume HTML when documentElement doesn't yet exist, such as inside\n\t\t// document fragments.\n\t\treturn !rhtmlSuffix.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\n\n\nfunction nodeName( elem, name ) {\n\n\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n}\nvar pop = arr.pop;\n\n\nvar sort = arr.sort;\n\n\nvar splice = arr.splice;\n\n\nvar whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\";\n\n\nvar rtrimCSS = new RegExp(\n\t\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\",\n\t\"g\"\n);\n\n\n\n\n// Note: an element does not contain itself\njQuery.contains = function( a, b ) {\n\tvar bup = b && b.parentNode;\n\n\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\n\t\t// Support: IE 9 - 11+\n\t\t// IE doesn't have `contains` on SVG.\n\t\ta.contains ?\n\t\t\ta.contains( bup ) :\n\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t) );\n};\n\n\n\n\n// CSS string/identifier serialization\n// https://drafts.csswg.org/cssom/#common-serializing-idioms\nvar rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g;\n\nfunction fcssescape( ch, asCodePoint ) {\n\tif ( asCodePoint ) {\n\n\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\tif ( ch === \"\\0\" ) {\n\t\t\treturn \"\\uFFFD\";\n\t\t}\n\n\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\treturn ch.slice( 0, -1 ) + \"\\\\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t}\n\n\t// Other potentially-special ASCII characters get backslash-escaped\n\treturn \"\\\\\" + ch;\n}\n\njQuery.escapeSelector = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\n\n\n\nvar preferredDoc = document,\n\tpushNative = push;\n\n( function() {\n\nvar i,\n\tExpr,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\tpush = pushNative,\n\n\t// Local document vars\n\tdocument,\n\tdocumentElement,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\tmatches,\n\n\t// Instance-specific data\n\texpando = jQuery.expando,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|\" +\n\t\t\"loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: https://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trleadingCombinator = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" +\n\t\twhitespace + \"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\tID: new RegExp( \"^#(\" + identifier + \")\" ),\n\t\tCLASS: new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\tTAG: new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\tATTR: new RegExp( \"^\" + attributes ),\n\t\tPSEUDO: new RegExp( \"^\" + pseudos ),\n\t\tCHILD: new RegExp(\n\t\t\t\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\tbool: new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\tneedsContext: new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// https://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\tif ( nonHex ) {\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\treturn nonHex;\n\t\t}\n\n\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t// Support: IE <=11+\n\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t// surrogate pair\n\t\treturn high < 0 ?\n\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// Used for iframes; see `setDocument`.\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE/Edge.\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && nodeName( elem, \"fieldset\" );\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android <=4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = {\n\t\tapply: function( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t},\n\t\tcall: function( target ) {\n\t\t\tpushNative.apply( target, slice.call( arguments, 1 ) );\n\t\t}\n\t};\n}\n\nfunction find( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE 9 only\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tpush.call( results, elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE 9 only\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tfind.contains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tpush.call( results, elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && context.getElementsByClassName ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( !nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rleadingCombinator.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when\n\t\t\t\t\t// strict-comparing two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( newContext != context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = jQuery.escapeSelector( nid );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrimCSS, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties\n\t\t// (see https://github.com/jquery/sizzle/issues/157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by jQuery selector module\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\treturn nodeName( elem, \"input\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\treturn ( nodeName( elem, \"input\" ) || nodeName( elem, \"button\" ) ) &&\n\t\t\telem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11+\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a jQuery selector context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [node] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nfunction setDocument( node ) {\n\tvar subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocumentElement = document.documentElement;\n\tdocumentIsHTML = !jQuery.isXMLDoc( document );\n\n\t// Support: iOS 7 only, IE 9 - 11+\n\t// Older browsers didn't support unprefixed `matches`.\n\tmatches = documentElement.matches ||\n\t\tdocumentElement.webkitMatchesSelector ||\n\t\tdocumentElement.msMatchesSelector;\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors\n\t// (see trac-13936).\n\t// Limit the fix to IE & Edge Legacy; despite Edge 15+ implementing `matches`,\n\t// all IE 9+ and Edge Legacy versions implement `msMatchesSelector` as well.\n\tif ( documentElement.msMatchesSelector &&\n\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tpreferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t\tsubWindow.addEventListener( \"unload\", unloadHandler );\n\t}\n\n\t// Support: IE <10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocumentElement.appendChild( el ).id = jQuery.expando;\n\t\treturn !document.getElementsByName ||\n\t\t\t!document.getElementsByName( jQuery.expando ).length;\n\t} );\n\n\t// Support: IE 9 only\n\t// Check to see if it's possible to do matchesSelector\n\t// on a disconnected node.\n\tsupport.disconnectedMatch = assert( function( el ) {\n\t\treturn matches.call( el, \"*\" );\n\t} );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// IE/Edge don't support the :scope pseudo-class.\n\tsupport.scope = assert( function() {\n\t\treturn document.querySelectorAll( \":scope\" );\n\t} );\n\n\t// Support: Chrome 105 - 111 only, Safari 15.4 - 16.3 only\n\t// Make sure the `:has()` argument is parsed unforgivingly.\n\t// We include `*` in the test to detect buggy implementations that are\n\t// _selectively_ forgiving (specifically when the list includes at least\n\t// one valid selector).\n\t// Note that we treat complete lack of support for `:has()` as if it were\n\t// spec-compliant support, which is fine because use of `:has()` in such\n\t// environments will fail in the qSA path and fall back to jQuery traversal\n\t// anyway.\n\tsupport.cssHas = assert( function() {\n\t\ttry {\n\t\t\tdocument.querySelector( \":has(*,:jqfake)\" );\n\t\t\treturn false;\n\t\t} catch ( e ) {\n\t\t\treturn true;\n\t\t}\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter.ID = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find.ID = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter.ID = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find.ID = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find.TAG = function( tag, context ) {\n\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t// DocumentFragment nodes don't have gEBTN\n\t\t} else {\n\t\t\treturn context.querySelectorAll( tag );\n\t\t}\n\t};\n\n\t// Class\n\tExpr.find.CLASS = function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\trbuggyQSA = [];\n\n\t// Build QSA regex\n\t// Regex strategy adopted from Diego Perini\n\tassert( function( el ) {\n\n\t\tvar input;\n\n\t\tdocumentElement.appendChild( el ).innerHTML =\n\t\t\t\"\" +\n\t\t\t\"\";\n\n\t\t// Support: iOS <=7 - 8 only\n\t\t// Boolean attributes and \"value\" are not treated correctly in some XML documents\n\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t}\n\n\t\t// Support: iOS <=7 - 8 only\n\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\trbuggyQSA.push( \"~=\" );\n\t\t}\n\n\t\t// Support: iOS 8 only\n\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t}\n\n\t\t// Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+\n\t\t// In some of the document kinds, these selectors wouldn't work natively.\n\t\t// This is probably OK but for backwards compatibility we want to maintain\n\t\t// handling them through jQuery traversal in jQuery 3.x.\n\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\trbuggyQSA.push( \":checked\" );\n\t\t}\n\n\t\t// Support: Windows 8 Native Apps\n\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\tinput = document.createElement( \"input\" );\n\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t// Support: IE 9 - 11+\n\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t// Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+\n\t\t// In some of the document kinds, these selectors wouldn't work natively.\n\t\t// This is probably OK but for backwards compatibility we want to maintain\n\t\t// handling them through jQuery traversal in jQuery 3.x.\n\t\tdocumentElement.appendChild( el ).disabled = true;\n\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t}\n\n\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t// Adding a temporary attribute to the document before the selection works\n\t\t// around the issue.\n\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\tinput = document.createElement( \"input\" );\n\t\tinput.setAttribute( \"name\", \"\" );\n\t\tel.appendChild( input );\n\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t}\n\t} );\n\n\tif ( !support.cssHas ) {\n\n\t\t// Support: Chrome 105 - 110+, Safari 15.4 - 16.3+\n\t\t// Our regular `try-catch` mechanism fails to detect natively-unsupported\n\t\t// pseudo-classes inside `:has()` (such as `:has(:contains(\"Foo\"))`)\n\t\t// in browsers that parse the `:has()` argument as a forgiving selector list.\n\t\t// https://drafts.csswg.org/selectors/#relational now requires the argument\n\t\t// to be parsed unforgivingly, but browsers have not yet fully adjusted.\n\t\trbuggyQSA.push( \":has\" );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = function( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a === document || a.ownerDocument == preferredDoc &&\n\t\t\t\tfind.contains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b === document || b.ownerDocument == preferredDoc &&\n\t\t\t\tfind.contains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t};\n\n\treturn document;\n}\n\nfind.matches = function( expr, elements ) {\n\treturn find( expr, null, null, elements );\n};\n\nfind.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn find( expr, document, null, [ elem ] ).length > 0;\n};\n\nfind.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn jQuery.contains( context, elem );\n};\n\n\nfind.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (see trac-13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\tif ( val !== undefined ) {\n\t\treturn val;\n\t}\n\n\treturn elem.getAttribute( name );\n};\n\nfind.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\njQuery.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\t//\n\t// Support: Android <=4.0+\n\t// Testing for detecting duplicates is unpredictable so instead assume we can't\n\t// depend on duplicate detection in all browsers without a stable sort.\n\thasDuplicate = !support.sortStable;\n\tsortInput = !support.sortStable && slice.call( results, 0 );\n\tsort.call( results, sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tsplice.call( results, duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\njQuery.fn.uniqueSort = function() {\n\treturn this.pushStack( jQuery.uniqueSort( slice.apply( this ) ) );\n};\n\nExpr = jQuery.expr = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\tATTR: function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] || match[ 5 ] || \"\" )\n\t\t\t\t.replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\tCHILD: function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tfind.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" )\n\t\t\t\t);\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tfind.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\tPSEUDO: function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr.CHILD.test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\tTAG: function( nodeNameSelector ) {\n\t\t\tvar expectedNodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn nodeName( elem, expectedNodeName );\n\t\t\t\t};\n\t\t},\n\n\t\tCLASS: function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace + \")\" + className +\n\t\t\t\t\t\"(\" + whitespace + \"|$)\" ) ) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\tATTR: function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = find.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\tif ( operator === \"=\" ) {\n\t\t\t\t\treturn result === check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"!=\" ) {\n\t\t\t\t\treturn result !== check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"^=\" ) {\n\t\t\t\t\treturn check && result.indexOf( check ) === 0;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"*=\" ) {\n\t\t\t\t\treturn check && result.indexOf( check ) > -1;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"$=\" ) {\n\t\t\t\t\treturn check && result.slice( -check.length ) === check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"~=\" ) {\n\t\t\t\t\treturn ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" )\n\t\t\t\t\t\t.indexOf( check ) > -1;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"|=\" ) {\n\t\t\t\t\treturn result === check || result.slice( 0, check.length + 1 ) === check + \"-\";\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t};\n\t\t},\n\n\t\tCHILD: function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnodeName( node, name ) :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\t\t\t\t\t\t\touterCache = parent[ expando ] || ( parent[ expando ] = {} );\n\t\t\t\t\t\t\tcache = outerCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\touterCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\t\t\t\t\t\t\t\tcache = outerCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnodeName( node, name ) :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\t\t\t\t\t\t\t\t\t\t\touterCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\tPSEUDO: function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// https://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tfind.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as jQuery does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf.call( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\tnot: markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrimCSS, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element\n\t\t\t\t\t// (see https://github.com/jquery/sizzle/issues/299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\thas: markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn find( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\tcontains: markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || jQuery.text( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// https://www.w3.org/TR/selectors/#lang-pseudo\n\t\tlang: markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tfind.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\ttarget: function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\troot: function( elem ) {\n\t\t\treturn elem === documentElement;\n\t\t},\n\n\t\tfocus: function( elem ) {\n\t\t\treturn elem === safeActiveElement() &&\n\t\t\t\tdocument.hasFocus() &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\tenabled: createDisabledPseudo( false ),\n\t\tdisabled: createDisabledPseudo( true ),\n\n\t\tchecked: function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// https://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\treturn ( nodeName( elem, \"input\" ) && !!elem.checked ) ||\n\t\t\t\t( nodeName( elem, \"option\" ) && !!elem.selected );\n\t\t},\n\n\t\tselected: function( elem ) {\n\n\t\t\t// Support: IE <=11+\n\t\t\t// Accessing the selectedIndex property\n\t\t\t// forces the browser to treat the default option as\n\t\t\t// selected when in an optgroup.\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\tempty: function( elem ) {\n\n\t\t\t// https://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\tparent: function( elem ) {\n\t\t\treturn !Expr.pseudos.empty( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\theader: function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\tinput: function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\tbutton: function( elem ) {\n\t\t\treturn nodeName( elem, \"input\" ) && elem.type === \"button\" ||\n\t\t\t\tnodeName( elem, \"button\" );\n\t\t},\n\n\t\ttext: function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn nodeName( elem, \"input\" ) && elem.type === \"text\" &&\n\n\t\t\t\t// Support: IE <10 only\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear\n\t\t\t\t// with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\tfirst: createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\tlast: createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\teq: createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\teven: createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\todd: createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\tlt: createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i;\n\n\t\t\tif ( argument < 0 ) {\n\t\t\t\ti = argument + length;\n\t\t\t} else if ( argument > length ) {\n\t\t\t\ti = length;\n\t\t\t} else {\n\t\t\t\ti = argument;\n\t\t\t}\n\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\tgt: createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos.nth = Expr.pseudos.eq;\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\nfunction tokenize( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rleadingCombinator.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrimCSS, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\tif ( parseOnly ) {\n\t\treturn soFar.length;\n\t}\n\n\treturn soFar ?\n\t\tfind.error( selector ) :\n\n\t\t// Cache the tokens\n\t\ttokenCache( selector, groups ).slice( 0 );\n}\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\tif ( skip && nodeName( elem, skip ) ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = outerCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\touterCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tfind( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem, matcherOut,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed ||\n\t\t\t\tmultipleContexts( selector || \"*\",\n\t\t\t\t\tcontext.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems;\n\n\t\tif ( matcher ) {\n\n\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter\n\t\t\t// or preexisting results,\n\t\t\tmatcherOut = postFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t[] :\n\n\t\t\t\t// ...otherwise use results directly\n\t\t\t\tresults;\n\n\t\t\t// Find primary matches\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t} else {\n\t\t\tmatcherOut = matcherIn;\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf.call( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf.call( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tvar ret = ( !leadingRelative && ( xml || context != outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element\n\t\t\t// (see https://github.com/jquery/sizzle/issues/299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 )\n\t\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrimCSS, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find.TAG( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: iOS <=7 - 9 only\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching\n\t\t\t// elements by id. (see trac-14142)\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tpush.call( results, elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tjQuery.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\nfunction compile( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n}\n\n/**\n * A low-level selection function that works with jQuery's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with jQuery selector compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nfunction select( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find.ID(\n\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\tcontext\n\t\t\t) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr.needsContext.test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) &&\n\t\t\t\t\t\ttestContext( context.parentNode ) || context\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n}\n\n// One-time assignments\n\n// Support: Android <=4.0 - 4.1+\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Android <=4.0 - 4.1+\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\njQuery.find = find;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.unique = jQuery.uniqueSort;\n\n// These have always been private, but they used to be documented as part of\n// Sizzle so let's maintain them for now for backwards compatibility purposes.\nfind.compile = compile;\nfind.select = select;\nfind.setDocument = setDocument;\nfind.tokenize = tokenize;\n\nfind.escape = jQuery.escapeSelector;\nfind.getText = jQuery.text;\nfind.isXML = jQuery.isXMLDoc;\nfind.selectors = jQuery.expr;\nfind.support = jQuery.support;\nfind.uniqueSort = jQuery.uniqueSort;\n\n\t/* eslint-enable */\n\n} )();\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over to avoid XSS via location.hash (trac-9521)\n\t// Strict HTML recognition (trac-11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to jQuery#find\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.error );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the error, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getErrorHook ) {\n\t\t\t\t\t\t\t\t\tprocess.error = jQuery.Deferred.getErrorHook();\n\n\t\t\t\t\t\t\t\t// The deprecated alias of the above. While the name suggests\n\t\t\t\t\t\t\t\t// returning the stack, not an error instance, jQuery just passes\n\t\t\t\t\t\t\t\t// it directly to `console.warn` so both will work; an instance\n\t\t\t\t\t\t\t\t// just better cooperates with source maps.\n\t\t\t\t\t\t\t\t} else if ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.error = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the primary Deferred\n\t\t\tprimary = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tprimary.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( primary.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn primary.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );\n\t\t}\n\n\t\treturn primary.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\n// If `jQuery.Deferred.getErrorHook` is defined, `asyncError` is an error\n// captured before the async barrier to get the original error cause\n// which may otherwise be hidden.\njQuery.Deferred.exceptionHook = function( error, asyncError ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message,\n\t\t\terror.stack, asyncError );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See trac-6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\t\tvalue :\n\t\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (trac-9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see trac-8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (trac-14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (trac-11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (trac-14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces \";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (trac-13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting or other required elements.\n\tthead: [ 1, \"\", \"
\" ],\n\tcol: [ 2, \"\", \"
\" ],\n\ttr: [ 2, \"\", \"
\" ],\n\ttd: [ 3, \"\", \"
\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (trac-15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (trac-12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (trac-13208)\n\t\t\t\t// Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (trac-13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", true );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, isSetup ) {\n\n\t// Missing `isSetup` indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !isSetup ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\tif ( !saved ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tdataPriv.set( this, type, false );\n\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering\n\t\t\t\t// the native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, jQuery.event.trigger(\n\t\t\t\t\tsaved[ 0 ],\n\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\tthis\n\t\t\t\t) );\n\n\t\t\t\t// Abort handling of the native event by all jQuery handlers while allowing\n\t\t\t\t// native handlers on the same element to run. On target, this is achieved\n\t\t\t\t// by stopping immediate propagation just on the jQuery event. However,\n\t\t\t\t// the native event is re-wrapped by a jQuery one on each level of the\n\t\t\t\t// propagation so the only way to stop it for jQuery is to stop it for\n\t\t\t\t// everyone via native `stopPropagation()`. This is not a problem for\n\t\t\t\t// focus/blur which don't bubble, but it does also stop click on checkboxes\n\t\t\t\t// and radios. We accept this limitation.\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tevent.isImmediatePropagationStopped = returnTrue;\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (trac-504, trac-13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\twhich: true\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\n\tfunction focusMappedHandler( nativeEvent ) {\n\t\tif ( document.documentMode ) {\n\n\t\t\t// Support: IE 11+\n\t\t\t// Attach a single focusin/focusout handler on the document while someone wants\n\t\t\t// focus/blur. This is because the former are synchronous in IE while the latter\n\t\t\t// are async. In other browsers, all those handlers are invoked synchronously.\n\n\t\t\t// `handle` from private data would already wrap the event, but we need\n\t\t\t// to change the `type` here.\n\t\t\tvar handle = dataPriv.get( this, \"handle\" ),\n\t\t\t\tevent = jQuery.event.fix( nativeEvent );\n\t\t\tevent.type = nativeEvent.type === \"focusin\" ? \"focus\" : \"blur\";\n\t\t\tevent.isSimulated = true;\n\n\t\t\t// First, handle focusin/focusout\n\t\t\thandle( nativeEvent );\n\n\t\t\t// ...then, handle focus/blur\n\t\t\t//\n\t\t\t// focus/blur don't bubble while focusin/focusout do; simulate the former by only\n\t\t\t// invoking the handler at the lower level.\n\t\t\tif ( event.target === event.currentTarget ) {\n\n\t\t\t\t// The setup part calls `leverageNative`, which, in turn, calls\n\t\t\t\t// `jQuery.event.add`, so event handle will already have been set\n\t\t\t\t// by this point.\n\t\t\t\thandle( event );\n\t\t\t}\n\t\t} else {\n\n\t\t\t// For non-IE browsers, attach a single capturing handler on the document\n\t\t\t// while someone wants focusin/focusout.\n\t\t\tjQuery.event.simulate( delegateType, nativeEvent.target,\n\t\t\t\tjQuery.event.fix( nativeEvent ) );\n\t\t}\n\t}\n\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\tvar attaches;\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, true );\n\n\t\t\tif ( document.documentMode ) {\n\n\t\t\t\t// Support: IE 9 - 11+\n\t\t\t\t// We use the same native handler for focusin & focus (and focusout & blur)\n\t\t\t\t// so we need to coordinate setup & teardown parts between those events.\n\t\t\t\t// Use `delegateType` as the key as `type` is already used by `leverageNative`.\n\t\t\t\tattaches = dataPriv.get( this, delegateType );\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tthis.addEventListener( delegateType, focusMappedHandler );\n\t\t\t\t}\n\t\t\t\tdataPriv.set( this, delegateType, ( attaches || 0 ) + 1 );\n\t\t\t} else {\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\tteardown: function() {\n\t\t\tvar attaches;\n\n\t\t\tif ( document.documentMode ) {\n\t\t\t\tattaches = dataPriv.get( this, delegateType ) - 1;\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tthis.removeEventListener( delegateType, focusMappedHandler );\n\t\t\t\t\tdataPriv.remove( this, delegateType );\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.set( this, delegateType, attaches );\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Return false to indicate standard teardown should be applied\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\n\t\t// Suppress native focus or blur if we're currently inside\n\t\t// a leveraged native-event stack\n\t\t_default: function( event ) {\n\t\t\treturn dataPriv.get( event.target, type );\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n\n\t// Support: Firefox <=44\n\t// Firefox doesn't have focus(in | out) events\n\t// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n\t//\n\t// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n\t// focus(in | out) events fire after focus & blur events,\n\t// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n\t// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\n\t//\n\t// Support: IE 9 - 11+\n\t// To preserve relative focusin/focus & focusout/blur event order guaranteed on the 3.x branch,\n\t// attach a single handler for both events in IE.\n\tjQuery.event.special[ delegateType ] = {\n\t\tsetup: function() {\n\n\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\tdataHolder = document.documentMode ? this : doc,\n\t\t\t\tattaches = dataPriv.get( dataHolder, delegateType );\n\n\t\t\t// Support: IE 9 - 11+\n\t\t\t// We use the same native handler for focusin & focus (and focusout & blur)\n\t\t\t// so we need to coordinate setup & teardown parts between those events.\n\t\t\t// Use `delegateType` as the key as `type` is already used by `leverageNative`.\n\t\t\tif ( !attaches ) {\n\t\t\t\tif ( document.documentMode ) {\n\t\t\t\t\tthis.addEventListener( delegateType, focusMappedHandler );\n\t\t\t\t} else {\n\t\t\t\t\tdoc.addEventListener( type, focusMappedHandler, true );\n\t\t\t\t}\n\t\t\t}\n\t\t\tdataPriv.set( dataHolder, delegateType, ( attaches || 0 ) + 1 );\n\t\t},\n\t\tteardown: function() {\n\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\tdataHolder = document.documentMode ? this : doc,\n\t\t\t\tattaches = dataPriv.get( dataHolder, delegateType ) - 1;\n\n\t\t\tif ( !attaches ) {\n\t\t\t\tif ( document.documentMode ) {\n\t\t\t\t\tthis.removeEventListener( delegateType, focusMappedHandler );\n\t\t\t\t} else {\n\t\t\t\t\tdoc.removeEventListener( type, focusMappedHandler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( dataHolder, delegateType );\n\t\t\t} else {\n\t\t\t\tdataPriv.set( dataHolder, delegateType, attaches );\n\t\t\t}\n\t\t}\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (trac-8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Re-enable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Unwrap a CDATA section containing script contents. This shouldn't be\n\t\t\t\t\t\t\t// needed as in XML documents they're already not visible when\n\t\t\t\t\t\t\t// inspecting element contents and in HTML documents they have no\n\t\t\t\t\t\t\t// meaning but we're preserving that logic for backwards compatibility.\n\t\t\t\t\t\t\t// This will be removed completely in 4.0. See gh-4904.\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew jQuery#find here for performance reasons:\n\t\t\t// https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar rcustomProp = /^--/;\n\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (trac-15098, trac-14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (trac-8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\t//\n\t\t// Support: Firefox 70+\n\t\t// Only Firefox includes border widths\n\t\t// in computed dimensions. (gh-4529)\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n\t\t\t\ttr.style.cssText = \"box-sizing:content-box;border:1px solid\";\n\n\t\t\t\t// Support: Chrome 86+\n\t\t\t\t// Height set through cssText does not get applied.\n\t\t\t\t// Computed height then comes back as 0.\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\t// Support: Android 8 Chrome 86+\n\t\t\t\t// In our bodyBackground.html iframe,\n\t\t\t\t// display for all div elements is set to \"inline\",\n\t\t\t\t// which causes a problem only in Android 8 Chrome 86.\n\t\t\t\t// Ensuring the div is `display: block`\n\t\t\t\t// gets around this issue.\n\t\t\t\ttrChild.style.display = \"block\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderTopWidth, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\t\tisCustomProp = rcustomProp.test( name ),\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t// .css('filter') (IE 9 only, trac-12537)\n\t// .css('--customProperty) (gh-3144)\n\tif ( computed ) {\n\n\t\t// Support: IE <=9 - 11+\n\t\t// IE only supports `\"float\"` in `getPropertyValue`; in computed styles\n\t\t// it's only available as `\"cssFloat\"`. We no longer modify properties\n\t\t// sent to `.css()` apart from camelCasing, so we need to check both.\n\t\t// Normally, this would create difference in behavior: if\n\t\t// `getPropertyValue` returns an empty string, the value returned\n\t\t// by `.css()` would be `undefined`. This is usually the case for\n\t\t// disconnected elements. However, in IE even disconnected elements\n\t\t// with no styles return `\"none\"` for `getPropertyValue( \"float\" )`\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( isCustomProp && ret ) {\n\n\t\t\t// Support: Firefox 105+, Chrome <=105+\n\t\t\t// Spec requires trimming whitespace for custom properties (gh-4926).\n\t\t\t// Firefox only trims leading whitespace. Chrome just collapses\n\t\t\t// both leading & trailing whitespace to a single space.\n\t\t\t//\n\t\t\t// Fall back to `undefined` if empty string returned.\n\t\t\t// This collapses a missing definition with property defined\n\t\t\t// and set to an empty string but there's no standard API\n\t\t\t// allowing us to differentiate them without a performance penalty\n\t\t\t// and returning `undefined` aligns with older jQuery.\n\t\t\t//\n\t\t\t// rtrimCSS treats U+000D CARRIAGE RETURN and U+000C FORM FEED\n\t\t\t// as whitespace while CSS does not, but this is not a problem\n\t\t\t// because CSS preprocessing replaces them with U+000A LINE FEED\n\t\t\t// (which *is* CSS whitespace)\n\t\t\t// https://www.w3.org/TR/css-syntax-3/#input-preprocessing\n\t\t\tret = ret.replace( rtrimCSS, \"$1\" ) || undefined;\n\t\t}\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0,\n\t\tmarginDelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\t// Count margin delta separately to only add it after scroll gutter adjustment.\n\t\t// This is needed to make negative margins work with `outerHeight( true )` (gh-3982).\n\t\tif ( box === \"margin\" ) {\n\t\t\tmarginDelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta + marginDelta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\tanimationIterationCount: true,\n\t\taspectRatio: true,\n\t\tborderImageSlice: true,\n\t\tcolumnCount: true,\n\t\tflexGrow: true,\n\t\tflexShrink: true,\n\t\tfontWeight: true,\n\t\tgridArea: true,\n\t\tgridColumn: true,\n\t\tgridColumnEnd: true,\n\t\tgridColumnStart: true,\n\t\tgridRow: true,\n\t\tgridRowEnd: true,\n\t\tgridRowStart: true,\n\t\tlineHeight: true,\n\t\topacity: true,\n\t\torder: true,\n\t\torphans: true,\n\t\tscale: true,\n\t\twidows: true,\n\t\tzIndex: true,\n\t\tzoom: true,\n\n\t\t// SVG-related\n\t\tfillOpacity: true,\n\t\tfloodOpacity: true,\n\t\tstopOpacity: true,\n\t\tstrokeMiterlimit: true,\n\t\tstrokeOpacity: true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (trac-7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug trac-9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (trac-7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t} ) :\n\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (trac-12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\n\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// Use proper attribute retrieval (trac-12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classNames, cur, curValue, className, i, finalValue;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tcurValue = getClass( this );\n\t\t\t\tcur = this.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\t\tclassName = classNames[ i ];\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + className + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += className + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\tthis.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classNames, cur, curValue, className, i, finalValue;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tcurValue = getClass( this );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = this.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\t\tclassName = classNames[ i ];\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + className + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + className + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\tthis.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar classNames, className, i, self,\n\t\t\ttype = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\treturn this.each( function() {\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\tself = jQuery( this );\n\n\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\tclassName = classNames[ i ];\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (trac-14686, trac-14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (trac-2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\nvar location = window.location;\n\nvar nonce = { guid: Date.now() };\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml, parserErrorElem;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {}\n\n\tparserErrorElem = xml && xml.getElementsByTagName( \"parsererror\" )[ 0 ];\n\tif ( !xml || parserErrorElem ) {\n\t\tjQuery.error( \"Invalid XML: \" + (\n\t\t\tparserErrorElem ?\n\t\t\t\tjQuery.map( parserErrorElem.childNodes, function( el ) {\n\t\t\t\t\treturn el.textContent;\n\t\t\t\t} ).join( \"\\n\" ) :\n\t\t\t\tdata\n\t\t) );\n\t}\n\treturn xml;\n};\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (trac-9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (trac-9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || Object.create( null ) )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (trac-6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} ).filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} ).map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// trac-7653, trac-8125, trac-8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (trac-10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\noriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes trac-9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (trac-10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket trac-12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (trac-15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// trac-9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\n\t\t\t\t\tuncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Use a noop converter for missing script but not if jsonp\n\t\t\tif ( !isSuccess &&\n\t\t\t\tjQuery.inArray( \"script\", s.dataTypes ) > -1 &&\n\t\t\t\tjQuery.inArray( \"json\", s.dataTypes ) < 0 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\n\njQuery._evalUrl = function( url, options, doc ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (trac-11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options, doc );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// trac-1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see trac-8605, trac-14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// trac-14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"\n * > \n * > \n * \n * jqPlot can be customized by overriding the defaults of any of the objects which make\n * up the plot. The general usage of jqplot is:\n * \n * > chart = $.jqplot('targetElemId', [dataArray,...], {optionsObject});\n * \n * The options available to jqplot are detailed in in the jqPlotOptions.txt file.\n * \n * An actual call to $.jqplot() may look like the \n * examples below:\n * \n * > chart = $.jqplot('chartdiv', [[[1, 2],[3,5.12],[5,13.1],[7,33.6],[9,85.9],[11,219.9]]]);\n * \n * or\n * \n * > dataArray = [34,12,43,55,77];\n * > chart = $.jqplot('targetElemId', [dataArray, ...], {title:'My Plot', axes:{yaxis:{min:20, max:100}}});\n * \n * For more inforrmation, see .\n * \n * About: Usage\n * \n * See \n * \n * About: Available Options \n * \n * See for a list of options available thorugh the options object (not complete yet!)\n * \n * About: Options Usage\n * \n * See \n * \n * About: Changes\n * \n * See \n * \n */\n\n(function($) {\n // make sure undefined is undefined\n var undefined;\n \n $.fn.emptyForce = function() {\n for ( var i = 0, elem; (elem = $(this)[i]) != null; i++ ) {\n // Remove element nodes and prevent memory leaks\n if ( elem.nodeType === 1 ) {\n $.cleanData( elem.getElementsByTagName(\"*\") );\n }\n \n // Remove any remaining nodes\n if ($.jqplot.use_excanvas) {\n elem.outerHTML = \"\";\n }\n else {\n while ( elem.firstChild ) {\n elem.removeChild( elem.firstChild );\n }\n }\n\n elem = null;\n }\n \n return $(this);\n };\n \n $.fn.removeChildForce = function(parent) {\n while ( parent.firstChild ) {\n this.removeChildForce( parent.firstChild );\n parent.removeChild( parent.firstChild );\n }\n };\n\n $.fn.jqplot = function() {\n var datas = [];\n var options = [];\n // see how many data arrays we have\n for (var i=0, l=arguments.length; i'+msg+'');\n $('#'+target).addClass('jqplot-error');\n document.getElementById(target).style.background = $.jqplot.config.errorBackground;\n document.getElementById(target).style.border = $.jqplot.config.errorBorder;\n document.getElementById(target).style.fontFamily = $.jqplot.config.errorFontFamily;\n document.getElementById(target).style.fontSize = $.jqplot.config.errorFontSize;\n document.getElementById(target).style.fontStyle = $.jqplot.config.errorFontStyle;\n document.getElementById(target).style.fontWeight = $.jqplot.config.errorFontWeight;\n }\n }\n else { \n plot.init(target, _data, _options);\n plot.draw();\n plot.themeEngine.init.call(plot);\n return plot;\n }\n };\n\n $.jqplot.version = \"1.0.8\";\n $.jqplot.revision = \"1250\";\n\n $.jqplot.targetCounter = 1;\n\n // canvas manager to reuse canvases on the plot.\n // Should help solve problem of canvases not being freed and\n // problem of waiting forever for firefox to decide to free memory.\n $.jqplot.CanvasManager = function() {\n // canvases are managed globally so that they can be reused\n // across plots after they have been freed\n if (typeof $.jqplot.CanvasManager.canvases == 'undefined') {\n $.jqplot.CanvasManager.canvases = [];\n $.jqplot.CanvasManager.free = [];\n }\n \n var myCanvases = [];\n \n this.getCanvas = function() {\n var canvas;\n var makeNew = true;\n \n if (!$.jqplot.use_excanvas) {\n for (var i = 0, l = $.jqplot.CanvasManager.canvases.length; i < l; i++) {\n if ($.jqplot.CanvasManager.free[i] === true) {\n makeNew = false;\n canvas = $.jqplot.CanvasManager.canvases[i];\n // $(canvas).removeClass('jqplot-canvasManager-free').addClass('jqplot-canvasManager-inuse');\n $.jqplot.CanvasManager.free[i] = false;\n myCanvases.push(i);\n break;\n }\n }\n }\n\n if (makeNew) {\n canvas = document.createElement('canvas');\n myCanvases.push($.jqplot.CanvasManager.canvases.length);\n $.jqplot.CanvasManager.canvases.push(canvas);\n $.jqplot.CanvasManager.free.push(false);\n } \n \n return canvas;\n };\n \n // this method has to be used after settings the dimesions\n // on the element returned by getCanvas()\n this.initCanvas = function(canvas) {\n if ($.jqplot.use_excanvas) {\n return window.G_vmlCanvasManager.initElement(canvas);\n }\n return canvas;\n };\n\n this.freeAllCanvases = function() {\n for (var i = 0, l=myCanvases.length; i < l; i++) {\n this.freeCanvas(myCanvases[i]);\n }\n myCanvases = [];\n };\n\n this.freeCanvas = function(idx) {\n if ($.jqplot.use_excanvas && window.G_vmlCanvasManager.uninitElement !== undefined) {\n // excanvas can't be reused, but properly unset\n window.G_vmlCanvasManager.uninitElement($.jqplot.CanvasManager.canvases[idx]);\n $.jqplot.CanvasManager.canvases[idx] = null;\n } \n else {\n var canvas = $.jqplot.CanvasManager.canvases[idx];\n canvas.getContext('2d').clearRect(0, 0, canvas.width, canvas.height);\n $(canvas).unbind().removeAttr('class').removeAttr('style');\n // Style attributes seemed to be still hanging around. wierd. Some ticks\n // still retained a left: 0px attribute after reusing a canvas.\n $(canvas).css({left: '', top: '', position: ''});\n // setting size to 0 may save memory of unused canvases?\n canvas.width = 0;\n canvas.height = 0;\n $.jqplot.CanvasManager.free[idx] = true;\n }\n };\n \n };\n\n \n // Convienence function that won't hang IE or FF without FireBug.\n $.jqplot.log = function() {\n if (window.console) {\n window.console.log.apply(window.console, arguments);\n }\n };\n \n $.jqplot.config = {\n addDomReference: false,\n enablePlugins:false,\n defaultHeight:300,\n defaultWidth:400,\n UTCAdjust:false,\n timezoneOffset: new Date(new Date().getTimezoneOffset() * 60000),\n errorMessage: '',\n errorBackground: '',\n errorBorder: '',\n errorFontFamily: '',\n errorFontSize: '',\n errorFontStyle: '',\n errorFontWeight: '',\n catchErrors: false,\n defaultTickFormatString: \"%.1f\",\n defaultColors: [ \"#4bb2c5\", \"#EAA228\", \"#c5b47f\", \"#579575\", \"#839557\", \"#958c12\", \"#953579\", \"#4b5de4\", \"#d8b83f\", \"#ff5800\", \"#0085cc\", \"#c747a3\", \"#cddf54\", \"#FBD178\", \"#26B4E3\", \"#bd70c7\"],\n defaultNegativeColors: [ \"#498991\", \"#C08840\", \"#9F9274\", \"#546D61\", \"#646C4A\", \"#6F6621\", \"#6E3F5F\", \"#4F64B0\", \"#A89050\", \"#C45923\", \"#187399\", \"#945381\", \"#959E5C\", \"#C7AF7B\", \"#478396\", \"#907294\"],\n dashLength: 4,\n gapLength: 4,\n dotGapLength: 2.5,\n srcLocation: 'jqplot/src/',\n pluginLocation: 'jqplot/src/plugins/'\n };\n \n \n $.jqplot.arrayMax = function( array ){\n return Math.max.apply( Math, array );\n };\n \n $.jqplot.arrayMin = function( array ){\n return Math.min.apply( Math, array );\n };\n \n $.jqplot.enablePlugins = $.jqplot.config.enablePlugins;\n \n // canvas related tests taken from modernizer:\n // Copyright (c) 2009 - 2010 Faruk Ates.\n // http://www.modernizr.com\n \n $.jqplot.support_canvas = function() {\n if (typeof $.jqplot.support_canvas.result == 'undefined') {\n $.jqplot.support_canvas.result = !!document.createElement('canvas').getContext; \n }\n return $.jqplot.support_canvas.result;\n };\n \n $.jqplot.support_canvas_text = function() {\n if (typeof $.jqplot.support_canvas_text.result == 'undefined') {\n if (window.G_vmlCanvasManager !== undefined && window.G_vmlCanvasManager._version > 887) {\n $.jqplot.support_canvas_text.result = true;\n }\n else {\n $.jqplot.support_canvas_text.result = !!(document.createElement('canvas').getContext && typeof document.createElement('canvas').getContext('2d').fillText == 'function');\n }\n \n }\n return $.jqplot.support_canvas_text.result;\n };\n \n $.jqplot.use_excanvas = ((!$.support.boxModel || !$.support.objectAll || !$support.leadingWhitespace) && !$.jqplot.support_canvas()) ? true : false;\n \n /**\n * \n * Hooks: jqPlot Pugin Hooks\n * \n * $.jqplot.preInitHooks - called before initialization.\n * $.jqplot.postInitHooks - called after initialization.\n * $.jqplot.preParseOptionsHooks - called before user options are parsed.\n * $.jqplot.postParseOptionsHooks - called after user options are parsed.\n * $.jqplot.preDrawHooks - called before plot draw.\n * $.jqplot.postDrawHooks - called after plot draw.\n * $.jqplot.preDrawSeriesHooks - called before each series is drawn.\n * $.jqplot.postDrawSeriesHooks - called after each series is drawn.\n * $.jqplot.preDrawLegendHooks - called before the legend is drawn.\n * $.jqplot.addLegendRowHooks - called at the end of legend draw, so plugins\n * can add rows to the legend table.\n * $.jqplot.preSeriesInitHooks - called before series is initialized.\n * $.jqplot.postSeriesInitHooks - called after series is initialized.\n * $.jqplot.preParseSeriesOptionsHooks - called before series related options\n * are parsed.\n * $.jqplot.postParseSeriesOptionsHooks - called after series related options\n * are parsed.\n * $.jqplot.eventListenerHooks - called at the end of plot drawing, binds\n * listeners to the event canvas which lays on top of the grid area.\n * $.jqplot.preDrawSeriesShadowHooks - called before series shadows are drawn.\n * $.jqplot.postDrawSeriesShadowHooks - called after series shadows are drawn.\n * \n */\n \n $.jqplot.preInitHooks = [];\n $.jqplot.postInitHooks = [];\n $.jqplot.preParseOptionsHooks = [];\n $.jqplot.postParseOptionsHooks = [];\n $.jqplot.preDrawHooks = [];\n $.jqplot.postDrawHooks = [];\n $.jqplot.preDrawSeriesHooks = [];\n $.jqplot.postDrawSeriesHooks = [];\n $.jqplot.preDrawLegendHooks = [];\n $.jqplot.addLegendRowHooks = [];\n $.jqplot.preSeriesInitHooks = [];\n $.jqplot.postSeriesInitHooks = [];\n $.jqplot.preParseSeriesOptionsHooks = [];\n $.jqplot.postParseSeriesOptionsHooks = [];\n $.jqplot.eventListenerHooks = [];\n $.jqplot.preDrawSeriesShadowHooks = [];\n $.jqplot.postDrawSeriesShadowHooks = [];\n\n // A superclass holding some common properties and methods.\n $.jqplot.ElemContainer = function() {\n this._elem;\n this._plotWidth;\n this._plotHeight;\n this._plotDimensions = {height:null, width:null};\n };\n \n $.jqplot.ElemContainer.prototype.createElement = function(el, offsets, clss, cssopts, attrib) {\n this._offsets = offsets;\n var klass = clss || 'jqplot';\n var elem = document.createElement(el);\n this._elem = $(elem);\n this._elem.addClass(klass);\n this._elem.css(cssopts);\n this._elem.attr(attrib);\n // avoid memory leak;\n elem = null;\n return this._elem;\n };\n \n $.jqplot.ElemContainer.prototype.getWidth = function() {\n if (this._elem) {\n return this._elem.outerWidth(true);\n }\n else {\n return null;\n }\n };\n \n $.jqplot.ElemContainer.prototype.getHeight = function() {\n if (this._elem) {\n return this._elem.outerHeight(true);\n }\n else {\n return null;\n }\n };\n \n $.jqplot.ElemContainer.prototype.getPosition = function() {\n if (this._elem) {\n return this._elem.position();\n }\n else {\n return {top:null, left:null, bottom:null, right:null};\n }\n };\n \n $.jqplot.ElemContainer.prototype.getTop = function() {\n return this.getPosition().top;\n };\n \n $.jqplot.ElemContainer.prototype.getLeft = function() {\n return this.getPosition().left;\n };\n \n $.jqplot.ElemContainer.prototype.getBottom = function() {\n return this._elem.css('bottom');\n };\n \n $.jqplot.ElemContainer.prototype.getRight = function() {\n return this._elem.css('right');\n };\n \n\n /**\n * Class: Axis\n * An individual axis object. Cannot be instantiated directly, but created\n * by the Plot object. Axis properties can be set or overridden by the \n * options passed in from the user.\n * \n */\n function Axis(name) {\n $.jqplot.ElemContainer.call(this);\n // Group: Properties\n //\n // Axes options are specified within an axes object at the top level of the \n // plot options like so:\n // > {\n // > axes: {\n // > xaxis: {min: 5},\n // > yaxis: {min: 2, max: 8, numberTicks:4},\n // > x2axis: {pad: 1.5},\n // > y2axis: {ticks:[22, 44, 66, 88]}\n // > }\n // > }\n // There are 2 x axes, 'xaxis' and 'x2axis', and \n // 9 yaxes, 'yaxis', 'y2axis'. 'y3axis', ... Any or all of which may be specified.\n this.name = name;\n this._series = [];\n // prop: show\n // Wether to display the axis on the graph.\n this.show = false;\n // prop: tickRenderer\n // A class of a rendering engine for creating the ticks labels displayed on the plot, \n // See <$.jqplot.AxisTickRenderer>.\n this.tickRenderer = $.jqplot.AxisTickRenderer;\n // prop: tickOptions\n // Options that will be passed to the tickRenderer, see <$.jqplot.AxisTickRenderer> options.\n this.tickOptions = {};\n // prop: labelRenderer\n // A class of a rendering engine for creating an axis label.\n this.labelRenderer = $.jqplot.AxisLabelRenderer;\n // prop: labelOptions\n // Options passed to the label renderer.\n this.labelOptions = {};\n // prop: label\n // Label for the axis\n this.label = null;\n // prop: showLabel\n // true to show the axis label.\n this.showLabel = true;\n // prop: min\n // minimum value of the axis (in data units, not pixels).\n this.min = null;\n // prop: max\n // maximum value of the axis (in data units, not pixels).\n this.max = null;\n // prop: autoscale\n // DEPRECATED\n // the default scaling algorithm produces superior results.\n this.autoscale = false;\n // prop: pad\n // Padding to extend the range above and below the data bounds.\n // The data range is multiplied by this factor to determine minimum and maximum axis bounds.\n // A value of 0 will be interpreted to mean no padding, and pad will be set to 1.0.\n this.pad = 1.2;\n // prop: padMax\n // Padding to extend the range above data bounds.\n // The top of the data range is multiplied by this factor to determine maximum axis bounds.\n // A value of 0 will be interpreted to mean no padding, and padMax will be set to 1.0.\n this.padMax = null;\n // prop: padMin\n // Padding to extend the range below data bounds.\n // The bottom of the data range is multiplied by this factor to determine minimum axis bounds.\n // A value of 0 will be interpreted to mean no padding, and padMin will be set to 1.0.\n this.padMin = null;\n // prop: ticks\n // 1D [val, val, ...] or 2D [[val, label], [val, label], ...] array of ticks for the axis.\n // If no label is specified, the value is formatted into an appropriate label.\n this.ticks = [];\n // prop: numberTicks\n // Desired number of ticks. Default is to compute automatically.\n this.numberTicks;\n // prop: tickInterval\n // number of units between ticks. Mutually exclusive with numberTicks.\n this.tickInterval;\n // prop: renderer\n // A class of a rendering engine that handles tick generation, \n // scaling input data to pixel grid units and drawing the axis element.\n this.renderer = $.jqplot.LinearAxisRenderer;\n // prop: rendererOptions\n // renderer specific options. See <$.jqplot.LinearAxisRenderer> for options.\n this.rendererOptions = {};\n // prop: showTicks\n // Wether to show the ticks (both marks and labels) or not.\n // Will not override showMark and showLabel options if specified on the ticks themselves.\n this.showTicks = true;\n // prop: showTickMarks\n // Wether to show the tick marks (line crossing grid) or not.\n // Overridden by showTicks and showMark option of tick itself.\n this.showTickMarks = true;\n // prop: showMinorTicks\n // Wether or not to show minor ticks. This is renderer dependent.\n this.showMinorTicks = true;\n // prop: drawMajorGridlines\n // True to draw gridlines for major axis ticks.\n this.drawMajorGridlines = true;\n // prop: drawMinorGridlines\n // True to draw gridlines for minor ticks.\n this.drawMinorGridlines = false;\n // prop: drawMajorTickMarks\n // True to draw tick marks for major axis ticks.\n this.drawMajorTickMarks = true;\n // prop: drawMinorTickMarks\n // True to draw tick marks for minor ticks. This is renderer dependent.\n this.drawMinorTickMarks = true;\n // prop: useSeriesColor\n // Use the color of the first series associated with this axis for the\n // tick marks and line bordering this axis.\n this.useSeriesColor = false;\n // prop: borderWidth\n // width of line stroked at the border of the axis. Defaults\n // to the width of the grid boarder.\n this.borderWidth = null;\n // prop: borderColor\n // color of the border adjacent to the axis. Defaults to grid border color.\n this.borderColor = null;\n // prop: scaleToHiddenSeries\n // True to include hidden series when computing axes bounds and scaling.\n this.scaleToHiddenSeries = false;\n // minimum and maximum values on the axis.\n this._dataBounds = {min:null, max:null};\n // statistics (min, max, mean) as well as actual data intervals for each series attached to axis.\n // holds collection of {intervals:[], min:, max:, mean: } objects for each series on axis.\n this._intervalStats = [];\n // pixel position from the top left of the min value and max value on the axis.\n this._offsets = {min:null, max:null};\n this._ticks=[];\n this._label = null;\n // prop: syncTicks\n // true to try and synchronize tick spacing across multiple axes so that ticks and\n // grid lines line up. This has an impact on autoscaling algorithm, however.\n // In general, autoscaling an individual axis will work better if it does not\n // have to sync ticks.\n this.syncTicks = null;\n // prop: tickSpacing\n // Approximate pixel spacing between ticks on graph. Used during autoscaling.\n // This number will be an upper bound, actual spacing will be less.\n this.tickSpacing = 75;\n // Properties to hold the original values for min, max, ticks, tickInterval and numberTicks\n // so they can be restored if altered by plugins.\n this._min = null;\n this._max = null;\n this._tickInterval = null;\n this._numberTicks = null;\n this.__ticks = null;\n // hold original user options.\n this._options = {};\n }\n \n Axis.prototype = new $.jqplot.ElemContainer();\n Axis.prototype.constructor = Axis;\n \n Axis.prototype.init = function() {\n if ($.isFunction(this.renderer)) {\n this.renderer = new this.renderer(); \n }\n // set the axis name\n this.tickOptions.axis = this.name;\n // if showMark or showLabel tick options not specified, use value of axis option.\n // showTicks overrides showTickMarks.\n if (this.tickOptions.showMark == null) {\n this.tickOptions.showMark = this.showTicks;\n }\n if (this.tickOptions.showMark == null) {\n this.tickOptions.showMark = this.showTickMarks;\n }\n if (this.tickOptions.showLabel == null) {\n this.tickOptions.showLabel = this.showTicks;\n }\n \n if (this.label == null || this.label == '') {\n this.showLabel = false;\n }\n else {\n this.labelOptions.label = this.label;\n }\n if (this.showLabel == false) {\n this.labelOptions.show = false;\n }\n // set the default padMax, padMin if not specified\n // special check, if no padding desired, padding\n // should be set to 1.0\n if (this.pad == 0) {\n this.pad = 1.0;\n }\n if (this.padMax == 0) {\n this.padMax = 1.0;\n }\n if (this.padMin == 0) {\n this.padMin = 1.0;\n }\n if (this.padMax == null) {\n this.padMax = (this.pad-1)/2 + 1;\n }\n if (this.padMin == null) {\n this.padMin = (this.pad-1)/2 + 1;\n }\n // now that padMin and padMax are correctly set, reset pad in case user has supplied \n // padMin and/or padMax\n this.pad = this.padMax + this.padMin - 1;\n if (this.min != null || this.max != null) {\n this.autoscale = false;\n }\n // if not set, sync ticks for y axes but not x by default.\n if (this.syncTicks == null && this.name.indexOf('y') > -1) {\n this.syncTicks = true;\n }\n else if (this.syncTicks == null){\n this.syncTicks = false;\n }\n this.renderer.init.call(this, this.rendererOptions);\n \n };\n \n Axis.prototype.draw = function(ctx, plot) {\n // Memory Leaks patch\n if (this.__ticks) {\n this.__ticks = null;\n }\n\n return this.renderer.draw.call(this, ctx, plot);\n \n };\n \n Axis.prototype.set = function() {\n this.renderer.set.call(this);\n };\n \n Axis.prototype.pack = function(pos, offsets) {\n if (this.show) {\n this.renderer.pack.call(this, pos, offsets);\n }\n // these properties should all be available now.\n if (this._min == null) {\n this._min = this.min;\n this._max = this.max;\n this._tickInterval = this.tickInterval;\n this._numberTicks = this.numberTicks;\n this.__ticks = this._ticks;\n }\n };\n \n // reset the axis back to original values if it has been scaled, zoomed, etc.\n Axis.prototype.reset = function() {\n this.renderer.reset.call(this);\n };\n \n Axis.prototype.resetScale = function(opts) {\n $.extend(true, this, {min: null, max: null, numberTicks: null, tickInterval: null, _ticks: [], ticks: []}, opts);\n this.resetDataBounds();\n };\n \n Axis.prototype.resetDataBounds = function() {\n // Go through all the series attached to this axis and find\n // the min/max bounds for this axis.\n var db = this._dataBounds;\n db.min = null;\n db.max = null;\n var l, s, d;\n // check for when to force min 0 on bar series plots.\n var doforce = (this.show) ? true : false;\n for (var i=0; i db.max) || db.max == null) {\n db.max = d[j][0];\n }\n } \n else {\n if ((d[j][minyidx] != null && d[j][minyidx] < db.min) || db.min == null) {\n db.min = d[j][minyidx];\n }\n if ((d[j][maxyidx] != null && d[j][maxyidx] > db.max) || db.max == null) {\n db.max = d[j][maxyidx];\n }\n } \n }\n\n // Hack to not pad out bottom of bar plots unless user has specified a padding.\n // every series will have a chance to set doforce to false. once it is set to \n // false, it cannot be reset to true.\n // If any series attached to axis is not a bar, wont force 0.\n if (doforce && s.renderer.constructor !== $.jqplot.BarRenderer) {\n doforce = false;\n }\n\n else if (doforce && this._options.hasOwnProperty('forceTickAt0') && this._options.forceTickAt0 == false) {\n doforce = false;\n }\n\n else if (doforce && s.renderer.constructor === $.jqplot.BarRenderer) {\n if (s.barDirection == 'vertical' && this.name != 'xaxis' && this.name != 'x2axis') { \n if (this._options.pad != null || this._options.padMin != null) {\n doforce = false;\n }\n }\n\n else if (s.barDirection == 'horizontal' && (this.name == 'xaxis' || this.name == 'x2axis')) {\n if (this._options.pad != null || this._options.padMin != null) {\n doforce = false;\n }\n }\n\n }\n }\n }\n\n if (doforce && this.renderer.constructor === $.jqplot.LinearAxisRenderer && db.min >= 0) {\n this.padMin = 1.0;\n this.forceTickAt0 = true;\n }\n };\n\n /**\n * Class: Legend\n * Legend object. Cannot be instantiated directly, but created\n * by the Plot object. Legend properties can be set or overridden by the \n * options passed in from the user.\n */\n function Legend(options) {\n $.jqplot.ElemContainer.call(this);\n // Group: Properties\n \n // prop: show\n // Wether to display the legend on the graph.\n this.show = false;\n // prop: location\n // Placement of the legend. one of the compass directions: nw, n, ne, e, se, s, sw, w\n this.location = 'ne';\n // prop: labels\n // Array of labels to use. By default the renderer will look for labels on the series.\n // Labels specified in this array will override labels specified on the series.\n this.labels = [];\n // prop: showLabels\n // true to show the label text on the legend.\n this.showLabels = true;\n // prop: showSwatch\n // true to show the color swatches on the legend.\n this.showSwatches = true;\n // prop: placement\n // \"insideGrid\" places legend inside the grid area of the plot.\n // \"outsideGrid\" places the legend outside the grid but inside the plot container, \n // shrinking the grid to accomodate the legend.\n // \"inside\" synonym for \"insideGrid\", \n // \"outside\" places the legend ouside the grid area, but does not shrink the grid which\n // can cause the legend to overflow the plot container.\n this.placement = \"insideGrid\";\n // prop: xoffset\n // DEPRECATED. Set the margins on the legend using the marginTop, marginLeft, etc. \n // properties or via CSS margin styling of the .jqplot-table-legend class.\n this.xoffset = 0;\n // prop: yoffset\n // DEPRECATED. Set the margins on the legend using the marginTop, marginLeft, etc. \n // properties or via CSS margin styling of the .jqplot-table-legend class.\n this.yoffset = 0;\n // prop: border\n // css spec for the border around the legend box.\n this.border;\n // prop: background\n // css spec for the background of the legend box.\n this.background;\n // prop: textColor\n // css color spec for the legend text.\n this.textColor;\n // prop: fontFamily\n // css font-family spec for the legend text.\n this.fontFamily; \n // prop: fontSize\n // css font-size spec for the legend text.\n this.fontSize ;\n // prop: rowSpacing\n // css padding-top spec for the rows in the legend.\n this.rowSpacing = '0.5em';\n // renderer\n // A class that will create a DOM object for the legend,\n // see <$.jqplot.TableLegendRenderer>.\n this.renderer = $.jqplot.TableLegendRenderer;\n // prop: rendererOptions\n // renderer specific options passed to the renderer.\n this.rendererOptions = {};\n // prop: predraw\n // Wether to draw the legend before the series or not.\n // Used with series specific legend renderers for pie, donut, mekko charts, etc.\n this.preDraw = false;\n // prop: marginTop\n // CSS margin for the legend DOM element. This will set an element \n // CSS style for the margin which will override any style sheet setting.\n // The default will be taken from the stylesheet.\n this.marginTop = null;\n // prop: marginRight\n // CSS margin for the legend DOM element. This will set an element \n // CSS style for the margin which will override any style sheet setting.\n // The default will be taken from the stylesheet.\n this.marginRight = null;\n // prop: marginBottom\n // CSS margin for the legend DOM element. This will set an element \n // CSS style for the margin which will override any style sheet setting.\n // The default will be taken from the stylesheet.\n this.marginBottom = null;\n // prop: marginLeft\n // CSS margin for the legend DOM element. This will set an element \n // CSS style for the margin which will override any style sheet setting.\n // The default will be taken from the stylesheet.\n this.marginLeft = null;\n // prop: escapeHtml\n // True to escape special characters with their html entity equivalents\n // in legend text. \"<\" becomes < and so on, so html tags are not rendered.\n this.escapeHtml = false;\n this._series = [];\n \n $.extend(true, this, options);\n }\n \n Legend.prototype = new $.jqplot.ElemContainer();\n Legend.prototype.constructor = Legend;\n \n Legend.prototype.setOptions = function(options) {\n $.extend(true, this, options);\n \n // Try to emulate deprecated behaviour\n // if user has specified xoffset or yoffset, copy these to\n // the margin properties.\n \n if (this.placement == 'inside') {\n this.placement = 'insideGrid';\n }\n \n if (this.xoffset >0) {\n if (this.placement == 'insideGrid') {\n switch (this.location) {\n case 'nw':\n case 'w':\n case 'sw':\n if (this.marginLeft == null) {\n this.marginLeft = this.xoffset + 'px';\n }\n this.marginRight = '0px';\n break;\n case 'ne':\n case 'e':\n case 'se':\n default:\n if (this.marginRight == null) {\n this.marginRight = this.xoffset + 'px';\n }\n this.marginLeft = '0px';\n break;\n }\n }\n else if (this.placement == 'outside') {\n switch (this.location) {\n case 'nw':\n case 'w':\n case 'sw':\n if (this.marginRight == null) {\n this.marginRight = this.xoffset + 'px';\n }\n this.marginLeft = '0px';\n break;\n case 'ne':\n case 'e':\n case 'se':\n default:\n if (this.marginLeft == null) {\n this.marginLeft = this.xoffset + 'px';\n }\n this.marginRight = '0px';\n break;\n }\n }\n this.xoffset = 0;\n }\n \n if (this.yoffset >0) {\n if (this.placement == 'outside') {\n switch (this.location) {\n case 'sw':\n case 's':\n case 'se':\n if (this.marginTop == null) {\n this.marginTop = this.yoffset + 'px';\n }\n this.marginBottom = '0px';\n break;\n case 'ne':\n case 'n':\n case 'nw':\n default:\n if (this.marginBottom == null) {\n this.marginBottom = this.yoffset + 'px';\n }\n this.marginTop = '0px';\n break;\n }\n }\n else if (this.placement == 'insideGrid') {\n switch (this.location) {\n case 'sw':\n case 's':\n case 'se':\n if (this.marginBottom == null) {\n this.marginBottom = this.yoffset + 'px';\n }\n this.marginTop = '0px';\n break;\n case 'ne':\n case 'n':\n case 'nw':\n default:\n if (this.marginTop == null) {\n this.marginTop = this.yoffset + 'px';\n }\n this.marginBottom = '0px';\n break;\n }\n }\n this.yoffset = 0;\n }\n \n // TO-DO:\n // Handle case where offsets are < 0.\n //\n };\n \n Legend.prototype.init = function() {\n if ($.isFunction(this.renderer)) {\n this.renderer = new this.renderer(); \n }\n this.renderer.init.call(this, this.rendererOptions);\n };\n \n Legend.prototype.draw = function(offsets, plot) {\n for (var i=0; i<$.jqplot.preDrawLegendHooks.length; i++){\n $.jqplot.preDrawLegendHooks[i].call(this, offsets);\n }\n return this.renderer.draw.call(this, offsets, plot);\n };\n \n Legend.prototype.pack = function(offsets) {\n this.renderer.pack.call(this, offsets);\n };\n\n /**\n * Class: Title\n * Plot Title object. Cannot be instantiated directly, but created\n * by the Plot object. Title properties can be set or overridden by the \n * options passed in from the user.\n * \n * Parameters:\n * text - text of the title.\n */\n function Title(text) {\n $.jqplot.ElemContainer.call(this);\n // Group: Properties\n \n // prop: text\n // text of the title;\n this.text = text;\n // prop: show\n // whether or not to show the title\n this.show = true;\n // prop: fontFamily\n // css font-family spec for the text.\n this.fontFamily;\n // prop: fontSize\n // css font-size spec for the text.\n this.fontSize ;\n // prop: textAlign\n // css text-align spec for the text.\n this.textAlign;\n // prop: textColor\n // css color spec for the text.\n this.textColor;\n // prop: renderer\n // A class for creating a DOM element for the title,\n // see <$.jqplot.DivTitleRenderer>.\n this.renderer = $.jqplot.DivTitleRenderer;\n // prop: rendererOptions\n // renderer specific options passed to the renderer.\n this.rendererOptions = {}; \n // prop: escapeHtml\n // True to escape special characters with their html entity equivalents\n // in title text. \"<\" becomes < and so on, so html tags are not rendered.\n this.escapeHtml = false;\n }\n \n Title.prototype = new $.jqplot.ElemContainer();\n Title.prototype.constructor = Title;\n \n Title.prototype.init = function() {\n if ($.isFunction(this.renderer)) {\n this.renderer = new this.renderer(); \n }\n this.renderer.init.call(this, this.rendererOptions);\n };\n \n Title.prototype.draw = function(width) {\n return this.renderer.draw.call(this, width);\n };\n \n Title.prototype.pack = function() {\n this.renderer.pack.call(this);\n };\n\n\n /**\n * Class: Series\n * An individual data series object. Cannot be instantiated directly, but created\n * by the Plot object. Series properties can be set or overridden by the \n * options passed in from the user.\n */\n function Series(options) {\n options = options || {};\n $.jqplot.ElemContainer.call(this);\n // Group: Properties\n // Properties will be assigned from a series array at the top level of the\n // options. If you had two series and wanted to change the color and line\n // width of the first and set the second to use the secondary y axis with\n // no shadow and supply custom labels for each:\n // > {\n // > series:[\n // > {color: '#ff4466', lineWidth: 5, label:'good line'},\n // > {yaxis: 'y2axis', shadow: false, label:'bad line'}\n // > ]\n // > }\n\n // prop: show\n // whether or not to draw the series.\n this.show = true;\n // prop: xaxis\n // which x axis to use with this series, either 'xaxis' or 'x2axis'.\n this.xaxis = 'xaxis';\n this._xaxis;\n // prop: yaxis\n // which y axis to use with this series, either 'yaxis' or 'y2axis'.\n this.yaxis = 'yaxis';\n this._yaxis;\n this.gridBorderWidth = 2.0;\n // prop: renderer\n // A class of a renderer which will draw the series, \n // see <$.jqplot.LineRenderer>.\n this.renderer = $.jqplot.LineRenderer;\n // prop: rendererOptions\n // Options to pass on to the renderer.\n this.rendererOptions = {};\n this.data = [];\n this.gridData = [];\n // prop: label\n // Line label to use in the legend.\n this.label = '';\n // prop: showLabel\n // true to show label for this series in the legend.\n this.showLabel = true;\n // prop: color\n // css color spec for the series\n this.color;\n // prop: negativeColor\n // css color spec used for filled (area) plots that are filled to zero and\n // the \"useNegativeColors\" option is true.\n this.negativeColor;\n // prop: lineWidth\n // width of the line in pixels. May have different meanings depending on renderer.\n this.lineWidth = 2.5;\n // prop: lineJoin\n // Canvas lineJoin style between segments of series.\n this.lineJoin = 'round';\n // prop: lineCap\n // Canvas lineCap style at ends of line.\n this.lineCap = 'round';\n // prop: linePattern\n // line pattern 'dashed', 'dotted', 'solid', some combination\n // of '-' and '.' characters such as '.-.' or a numerical array like \n // [draw, skip, draw, skip, ...] such as [1, 10] to draw a dotted line, \n // [1, 10, 20, 10] to draw a dot-dash line, and so on.\n this.linePattern = 'solid';\n this.shadow = true;\n // prop: shadowAngle\n // Shadow angle in degrees\n this.shadowAngle = 45;\n // prop: shadowOffset\n // Shadow offset from line in pixels\n this.shadowOffset = 1.25;\n // prop: shadowDepth\n // Number of times shadow is stroked, each stroke offset shadowOffset from the last.\n this.shadowDepth = 3;\n // prop: shadowAlpha\n // Alpha channel transparency of shadow. 0 = transparent.\n this.shadowAlpha = '0.1';\n // prop: breakOnNull\n // Wether line segments should be be broken at null value.\n // False will join point on either side of line.\n this.breakOnNull = false;\n // prop: markerRenderer\n // A class of a renderer which will draw marker (e.g. circle, square, ...) at the data points,\n // see <$.jqplot.MarkerRenderer>.\n this.markerRenderer = $.jqplot.MarkerRenderer;\n // prop: markerOptions\n // renderer specific options to pass to the markerRenderer,\n // see <$.jqplot.MarkerRenderer>.\n this.markerOptions = {};\n // prop: showLine\n // whether to actually draw the line or not. Series will still be renderered, even if no line is drawn.\n this.showLine = true;\n // prop: showMarker\n // whether or not to show the markers at the data points.\n this.showMarker = true;\n // prop: index\n // 0 based index of this series in the plot series array.\n this.index;\n // prop: fill\n // true or false, whether to fill under lines or in bars.\n // May not be implemented in all renderers.\n this.fill = false;\n // prop: fillColor\n // CSS color spec to use for fill under line. Defaults to line color.\n this.fillColor;\n // prop: fillAlpha\n // Alpha transparency to apply to the fill under the line.\n // Use this to adjust alpha separate from fill color.\n this.fillAlpha;\n // prop: fillAndStroke\n // If true will stroke the line (with color this.color) as well as fill under it.\n // Applies only when fill is true.\n this.fillAndStroke = false;\n // prop: disableStack\n // true to not stack this series with other series in the plot.\n // To render properly, non-stacked series must come after any stacked series\n // in the plot's data series array. So, the plot's data series array would look like:\n // > [stackedSeries1, stackedSeries2, ..., nonStackedSeries1, nonStackedSeries2, ...]\n // disableStack will put a gap in the stacking order of series, and subsequent\n // stacked series will not fill down through the non-stacked series and will\n // most likely not stack properly on top of the non-stacked series.\n this.disableStack = false;\n // _stack is set by the Plot if the plot is a stacked chart.\n // will stack lines or bars on top of one another to build a \"mountain\" style chart.\n // May not be implemented in all renderers.\n this._stack = false;\n // prop: neighborThreshold\n // how close or far (in pixels) the cursor must be from a point marker to detect the point.\n this.neighborThreshold = 4;\n // prop: fillToZero\n // true will force bar and filled series to fill toward zero on the fill Axis.\n this.fillToZero = false;\n // prop: fillToValue\n // fill a filled series to this value on the fill axis.\n // Works in conjunction with fillToZero, so that must be true.\n this.fillToValue = 0;\n // prop: fillAxis\n // Either 'x' or 'y'. Which axis to fill the line toward if fillToZero is true.\n // 'y' means fill up/down to 0 on the y axis for this series.\n this.fillAxis = 'y';\n // prop: useNegativeColors\n // true to color negative values differently in filled and bar charts.\n this.useNegativeColors = true;\n this._stackData = [];\n // _plotData accounts for stacking. If plots not stacked, _plotData and data are same. If\n // stacked, _plotData is accumulation of stacking data.\n this._plotData = [];\n // _plotValues hold the individual x and y values that will be plotted for this series.\n this._plotValues = {x:[], y:[]};\n // statistics about the intervals between data points. Used for auto scaling.\n this._intervals = {x:{}, y:{}};\n // data from the previous series, for stacked charts.\n this._prevPlotData = [];\n this._prevGridData = [];\n this._stackAxis = 'y';\n this._primaryAxis = '_xaxis';\n // give each series a canvas to draw on. This should allow for redrawing speedups.\n this.canvas = new $.jqplot.GenericCanvas();\n this.shadowCanvas = new $.jqplot.GenericCanvas();\n this.plugins = {};\n // sum of y values in this series.\n this._sumy = 0;\n this._sumx = 0;\n this._type = '';\n }\n \n Series.prototype = new $.jqplot.ElemContainer();\n Series.prototype.constructor = Series;\n \n Series.prototype.init = function(index, gridbw, plot) {\n // weed out any null values in the data.\n this.index = index;\n this.gridBorderWidth = gridbw;\n var d = this.data;\n var temp = [], i, l;\n for (i=0, l=d.length; i.\n this.renderer = $.jqplot.CanvasGridRenderer;\n // prop: rendererOptions\n // Options to pass on to the renderer,\n // see <$.jqplot.CanvasGridRenderer>.\n this.rendererOptions = {};\n this._offsets = {top:null, bottom:null, left:null, right:null};\n }\n \n Grid.prototype = new $.jqplot.ElemContainer();\n Grid.prototype.constructor = Grid;\n \n Grid.prototype.init = function() {\n if ($.isFunction(this.renderer)) {\n this.renderer = new this.renderer(); \n }\n this.renderer.init.call(this, this.rendererOptions);\n };\n \n Grid.prototype.createElement = function(offsets,plot) {\n this._offsets = offsets;\n return this.renderer.createElement.call(this, plot);\n };\n \n Grid.prototype.draw = function() {\n this.renderer.draw.call(this);\n };\n \n $.jqplot.GenericCanvas = function() {\n $.jqplot.ElemContainer.call(this);\n this._ctx; \n };\n \n $.jqplot.GenericCanvas.prototype = new $.jqplot.ElemContainer();\n $.jqplot.GenericCanvas.prototype.constructor = $.jqplot.GenericCanvas;\n \n $.jqplot.GenericCanvas.prototype.createElement = function(offsets, clss, plotDimensions, plot) {\n this._offsets = offsets;\n var klass = 'jqplot';\n if (clss != undefined) {\n klass = clss;\n }\n var elem;\n\n elem = plot.canvasManager.getCanvas();\n \n // if new plotDimensions supplied, use them.\n if (plotDimensions != null) {\n this._plotDimensions = plotDimensions;\n }\n \n elem.width = this._plotDimensions.width - this._offsets.left - this._offsets.right;\n elem.height = this._plotDimensions.height - this._offsets.top - this._offsets.bottom;\n this._elem = $(elem);\n this._elem.css({ position: 'absolute', left: this._offsets.left, top: this._offsets.top });\n \n this._elem.addClass(klass);\n \n elem = plot.canvasManager.initCanvas(elem);\n \n elem = null;\n return this._elem;\n };\n \n $.jqplot.GenericCanvas.prototype.setContext = function() {\n this._ctx = this._elem.get(0).getContext(\"2d\");\n return this._ctx;\n };\n \n // Memory Leaks patch\n $.jqplot.GenericCanvas.prototype.resetCanvas = function() {\n if (this._elem) {\n if ($.jqplot.use_excanvas && window.G_vmlCanvasManager.uninitElement !== undefined) {\n window.G_vmlCanvasManager.uninitElement(this._elem.get(0));\n }\n \n //this._elem.remove();\n this._elem.emptyForce();\n }\n \n this._ctx = null;\n };\n \n $.jqplot.HooksManager = function () {\n this.hooks =[];\n this.args = [];\n };\n \n $.jqplot.HooksManager.prototype.addOnce = function(fn, args) {\n args = args || [];\n var havehook = false;\n for (var i=0, l=this.hooks.length; i {\n // > axesDefaults:{min:0},\n // > series:[{color:'#6633dd'}],\n // > title: 'A Plot'\n // > }\n //\n\n // prop: animate\n // True to animate the series on initial plot draw (renderer dependent).\n // Actual animation functionality must be supported in the renderer.\n this.animate = false;\n // prop: animateReplot\n // True to animate series after a call to the replot() method.\n // Use with caution! Replots can happen very frequently under\n // certain circumstances (e.g. resizing, dragging points) and\n // animation in these situations can cause problems.\n this.animateReplot = false;\n // prop: axes\n // up to 4 axes are supported, each with its own options, \n // See for axis specific options.\n this.axes = {xaxis: new Axis('xaxis'), yaxis: new Axis('yaxis'), x2axis: new Axis('x2axis'), y2axis: new Axis('y2axis'), y3axis: new Axis('y3axis'), y4axis: new Axis('y4axis'), y5axis: new Axis('y5axis'), y6axis: new Axis('y6axis'), y7axis: new Axis('y7axis'), y8axis: new Axis('y8axis'), y9axis: new Axis('y9axis'), yMidAxis: new Axis('yMidAxis')};\n this.baseCanvas = new $.jqplot.GenericCanvas();\n // true to intercept right click events and fire a 'jqplotRightClick' event.\n // this will also block the context menu.\n this.captureRightClick = false;\n // prop: data\n // user's data. Data should *NOT* be specified in the options object,\n // but be passed in as the second argument to the $.jqplot() function.\n // The data property is described here soley for reference. \n // The data should be in the form of an array of 2D or 1D arrays like\n // > [ [[x1, y1], [x2, y2],...], [y1, y2, ...] ].\n this.data = [];\n // prop: dataRenderer\n // A callable which can be used to preprocess data passed into the plot.\n // Will be called with 3 arguments: the plot data, a reference to the plot,\n // and the value of dataRendererOptions.\n this.dataRenderer;\n // prop: dataRendererOptions\n // Options that will be passed to the dataRenderer.\n // Can be of any type.\n this.dataRendererOptions;\n this.defaults = {\n // prop: axesDefaults\n // default options that will be applied to all axes.\n // see for axes options.\n axesDefaults: {},\n axes: {xaxis:{}, yaxis:{}, x2axis:{}, y2axis:{}, y3axis:{}, y4axis:{}, y5axis:{}, y6axis:{}, y7axis:{}, y8axis:{}, y9axis:{}, yMidAxis:{}},\n // prop: seriesDefaults\n // default options that will be applied to all series.\n // see for series options.\n seriesDefaults: {},\n series:[]\n };\n // prop: defaultAxisStart\n // 1-D data series are internally converted into 2-D [x,y] data point arrays\n // by jqPlot. This is the default starting value for the missing x or y value.\n // The added data will be a monotonically increasing series (e.g. [1, 2, 3, ...])\n // starting at this value.\n this.defaultAxisStart = 1;\n // this.doCustomEventBinding = true;\n // prop: drawIfHidden\n // True to execute the draw method even if the plot target is hidden.\n // Generally, this should be false. Most plot elements will not be sized/\n // positioned correclty if renderered into a hidden container. To render into\n // a hidden container, call the replot method when the container is shown.\n this.drawIfHidden = false;\n this.eventCanvas = new $.jqplot.GenericCanvas();\n // prop: fillBetween\n // Fill between 2 line series in a plot.\n // Options object:\n // {\n // series1: first index (0 based) of series in fill\n // series2: second index (0 based) of series in fill\n // color: color of fill [default fillColor of series1]\n // baseSeries: fill will be drawn below this series (0 based index)\n // fill: false to turn off fill [default true].\n // }\n this.fillBetween = {\n series1: null,\n series2: null,\n color: null,\n baseSeries: 0,\n fill: true\n };\n // prop; fontFamily\n // css spec for the font-family attribute. Default for the entire plot.\n this.fontFamily;\n // prop: fontSize\n // css spec for the font-size attribute. Default for the entire plot.\n this.fontSize;\n // prop: grid\n // See for grid specific options.\n this.grid = new Grid();\n // prop: legend\n // see <$.jqplot.TableLegendRenderer>\n this.legend = new Legend();\n // prop: noDataIndicator\n // Options to set up a mock plot with a data loading indicator if no data is specified.\n this.noDataIndicator = { \n show: false,\n indicator: 'Loading Data...',\n axes: {\n xaxis: {\n min: 0,\n max: 10,\n tickInterval: 2,\n show: true\n },\n yaxis: {\n min: 0,\n max: 12,\n tickInterval: 3,\n show: true\n }\n }\n };\n // prop: negativeSeriesColors \n // colors to use for portions of the line below zero.\n this.negativeSeriesColors = $.jqplot.config.defaultNegativeColors;\n // container to hold all of the merged options. Convienence for plugins.\n this.options = {};\n this.previousSeriesStack = [];\n // Namespace to hold plugins. Generally non-renderer plugins add themselves to here.\n this.plugins = {};\n // prop: series\n // Array of series object options.\n // see for series specific options.\n this.series = [];\n // array of series indices. Keep track of order\n // which series canvases are displayed, lowest\n // to highest, back to front.\n this.seriesStack = [];\n // prop: seriesColors\n // Ann array of CSS color specifications that will be applied, in order,\n // to the series in the plot. Colors will wrap around so, if their\n // are more series than colors, colors will be reused starting at the\n // beginning. For pie charts, this specifies the colors of the slices.\n this.seriesColors = $.jqplot.config.defaultColors;\n // prop: sortData\n // false to not sort the data passed in by the user.\n // Many bar, stacked and other graphs as well as many plugins depend on\n // having sorted data.\n this.sortData = true;\n // prop: stackSeries\n // true or false, creates a stack or \"mountain\" plot.\n // Not all series renderers may implement this option.\n this.stackSeries = false;\n // a shortcut for axis syncTicks options. Not implemented yet.\n this.syncXTicks = true;\n // a shortcut for axis syncTicks options. Not implemented yet.\n this.syncYTicks = true;\n // the jquery object for the dom target.\n this.target = null; \n // The id of the dom element to render the plot into\n this.targetId = null;\n // prop textColor\n // css spec for the css color attribute. Default for the entire plot.\n this.textColor;\n // prop: title\n // Title object. See for specific options. As a shortcut, you\n // can specify the title option as just a string like: title: 'My Plot'\n // and this will create a new title object with the specified text.\n this.title = new Title();\n // Count how many times the draw method has been called while the plot is visible.\n // Mostly used to test if plot has never been dran (=0), has been successfully drawn\n // into a visible container once (=1) or draw more than once into a visible container.\n // Can use this in tests to see if plot has been visibly drawn at least one time.\n // After plot has been visibly drawn once, it generally doesn't need redrawing if its\n // container is hidden and shown.\n this._drawCount = 0;\n // sum of y values for all series in plot.\n // used in mekko chart.\n this._sumy = 0;\n this._sumx = 0;\n // array to hold the cumulative stacked series data.\n // used to ajust the individual series data, which won't have access to other\n // series data.\n this._stackData = [];\n // array that holds the data to be plotted. This will be the series data\n // merged with the the appropriate data from _stackData according to the stackAxis.\n this._plotData = [];\n this._width = null;\n this._height = null; \n this._plotDimensions = {height:null, width:null};\n this._gridPadding = {top:null, right:null, bottom:null, left:null};\n this._defaultGridPadding = {top:10, right:10, bottom:23, left:10};\n\n this._addDomReference = $.jqplot.config.addDomReference;\n\n this.preInitHooks = new $.jqplot.HooksManager();\n this.postInitHooks = new $.jqplot.HooksManager();\n this.preParseOptionsHooks = new $.jqplot.HooksManager();\n this.postParseOptionsHooks = new $.jqplot.HooksManager();\n this.preDrawHooks = new $.jqplot.HooksManager();\n this.postDrawHooks = new $.jqplot.HooksManager();\n this.preDrawSeriesHooks = new $.jqplot.HooksManager();\n this.postDrawSeriesHooks = new $.jqplot.HooksManager();\n this.preDrawLegendHooks = new $.jqplot.HooksManager();\n this.addLegendRowHooks = new $.jqplot.HooksManager();\n this.preSeriesInitHooks = new $.jqplot.HooksManager();\n this.postSeriesInitHooks = new $.jqplot.HooksManager();\n this.preParseSeriesOptionsHooks = new $.jqplot.HooksManager();\n this.postParseSeriesOptionsHooks = new $.jqplot.HooksManager();\n this.eventListenerHooks = new $.jqplot.EventListenerManager();\n this.preDrawSeriesShadowHooks = new $.jqplot.HooksManager();\n this.postDrawSeriesShadowHooks = new $.jqplot.HooksManager();\n \n this.colorGenerator = new $.jqplot.ColorGenerator();\n this.negativeColorGenerator = new $.jqplot.ColorGenerator();\n\n this.canvasManager = new $.jqplot.CanvasManager();\n\n this.themeEngine = new $.jqplot.ThemeEngine();\n \n var seriesColorsIndex = 0;\n\n // Group: methods\n //\n // method: init\n // sets the plot target, checks data and applies user\n // options to plot.\n this.init = function(target, data, options) {\n options = options || {};\n for (var i=0; i<$.jqplot.preInitHooks.length; i++) {\n $.jqplot.preInitHooks[i].call(this, target, data, options);\n }\n\n for (var i=0; i<this.preInitHooks.hooks.length; i++) {\n this.preInitHooks.hooks[i].call(this, target, data, options);\n }\n \n this.targetId = '#'+target;\n this.target = $('#'+target);\n\n //////\n // Add a reference to plot\n //////\n if (this._addDomReference) {\n this.target.data('jqplot', this);\n }\n // remove any error class that may be stuck on target.\n this.target.removeClass('jqplot-error');\n if (!this.target.get(0)) {\n throw new Error(\"No plot target specified\");\n }\n \n // make sure the target is positioned by some means and set css\n if (this.target.css('position') == 'static') {\n this.target.css('position', 'relative');\n }\n if (!this.target.hasClass('jqplot-target')) {\n this.target.addClass('jqplot-target');\n }\n \n // if no height or width specified, use a default.\n if (!this.target.height()) {\n var h;\n if (options && options.height) {\n h = parseInt(options.height, 10);\n }\n else if (this.target.attr('data-height')) {\n h = parseInt(this.target.attr('data-height'), 10);\n }\n else {\n h = parseInt($.jqplot.config.defaultHeight, 10);\n }\n this._height = h;\n this.target.css('height', h+'px');\n }\n else {\n this._height = h = this.target.height();\n }\n if (!this.target.width()) {\n var w;\n if (options && options.width) {\n w = parseInt(options.width, 10);\n }\n else if (this.target.attr('data-width')) {\n w = parseInt(this.target.attr('data-width'), 10);\n }\n else {\n w = parseInt($.jqplot.config.defaultWidth, 10);\n }\n this._width = w;\n this.target.css('width', w+'px');\n }\n else {\n this._width = w = this.target.width();\n }\n\n for (var i=0, l=_axisNames.length; i<l; i++) {\n this.axes[_axisNames[i]] = new Axis(_axisNames[i]);\n }\n \n this._plotDimensions.height = this._height;\n this._plotDimensions.width = this._width;\n this.grid._plotDimensions = this._plotDimensions;\n this.title._plotDimensions = this._plotDimensions;\n this.baseCanvas._plotDimensions = this._plotDimensions;\n this.eventCanvas._plotDimensions = this._plotDimensions;\n this.legend._plotDimensions = this._plotDimensions;\n if (this._height <=0 || this._width <=0 || !this._height || !this._width) {\n throw new Error(\"Canvas dimension not set\");\n }\n \n if (options.dataRenderer && $.isFunction(options.dataRenderer)) {\n if (options.dataRendererOptions) {\n this.dataRendererOptions = options.dataRendererOptions;\n }\n this.dataRenderer = options.dataRenderer;\n data = this.dataRenderer(data, this, this.dataRendererOptions);\n }\n \n if (options.noDataIndicator && $.isPlainObject(options.noDataIndicator)) {\n $.extend(true, this.noDataIndicator, options.noDataIndicator);\n }\n \n if (data == null || $.isArray(data) == false || data.length == 0 || $.isArray(data[0]) == false || data[0].length == 0) {\n \n if (this.noDataIndicator.show == false) {\n throw new Error(\"No data specified\");\n }\n \n else {\n // have to be descructive here in order for plot to not try and render series.\n // This means that $.jqplot() will have to be called again when there is data.\n //delete options.series;\n \n for (var ax in this.noDataIndicator.axes) {\n for (var prop in this.noDataIndicator.axes[ax]) {\n this.axes[ax][prop] = this.noDataIndicator.axes[ax][prop];\n }\n }\n \n this.postDrawHooks.add(function() {\n var eh = this.eventCanvas.getHeight();\n var ew = this.eventCanvas.getWidth();\n var temp = $('<div class=\"jqplot-noData-container\" style=\"position:absolute;\"></div>');\n this.target.append(temp);\n temp.height(eh);\n temp.width(ew);\n temp.css('top', this.eventCanvas._offsets.top);\n temp.css('left', this.eventCanvas._offsets.left);\n \n var temp2 = $('<div class=\"jqplot-noData-contents\" style=\"text-align:center; position:relative; margin-left:auto; margin-right:auto;\"></div>');\n temp.append(temp2);\n temp2.html(this.noDataIndicator.indicator);\n var th = temp2.height();\n var tw = temp2.width();\n temp2.height(th);\n temp2.width(tw);\n temp2.css('top', (eh - th)/2 + 'px');\n });\n\n }\n }\n \n // make a copy of the data\n this.data = $.extend(true, [], data);\n \n this.parseOptions(options);\n \n if (this.textColor) {\n this.target.css('color', this.textColor);\n }\n if (this.fontFamily) {\n this.target.css('font-family', this.fontFamily);\n }\n if (this.fontSize) {\n this.target.css('font-size', this.fontSize);\n }\n \n this.title.init();\n this.legend.init();\n this._sumy = 0;\n this._sumx = 0;\n this.computePlotData();\n for (var i=0; i<this.series.length; i++) {\n // set default stacking order for series canvases\n this.seriesStack.push(i);\n this.previousSeriesStack.push(i);\n this.series[i].shadowCanvas._plotDimensions = this._plotDimensions;\n this.series[i].canvas._plotDimensions = this._plotDimensions;\n for (var j=0; j<$.jqplot.preSeriesInitHooks.length; j++) {\n $.jqplot.preSeriesInitHooks[j].call(this.series[i], target, this.data, this.options.seriesDefaults, this.options.series[i], this);\n }\n for (var j=0; j<this.preSeriesInitHooks.hooks.length; j++) {\n this.preSeriesInitHooks.hooks[j].call(this.series[i], target, this.data, this.options.seriesDefaults, this.options.series[i], this);\n }\n // this.populatePlotData(this.series[i], i);\n this.series[i]._plotDimensions = this._plotDimensions;\n this.series[i].init(i, this.grid.borderWidth, this);\n for (var j=0; j<$.jqplot.postSeriesInitHooks.length; j++) {\n $.jqplot.postSeriesInitHooks[j].call(this.series[i], target, this.data, this.options.seriesDefaults, this.options.series[i], this);\n }\n for (var j=0; j<this.postSeriesInitHooks.hooks.length; j++) {\n this.postSeriesInitHooks.hooks[j].call(this.series[i], target, this.data, this.options.seriesDefaults, this.options.series[i], this);\n }\n this._sumy += this.series[i]._sumy;\n this._sumx += this.series[i]._sumx;\n }\n\n var name,\n axis;\n for (var i=0, l=_axisNames.length; i<l; i++) {\n name = _axisNames[i];\n axis = this.axes[name];\n axis._plotDimensions = this._plotDimensions;\n axis.init();\n if (this.axes[name].borderColor == null) {\n if (name.charAt(0) !== 'x' && axis.useSeriesColor === true && axis.show) {\n axis.borderColor = axis._series[0].color;\n }\n else {\n axis.borderColor = this.grid.borderColor;\n }\n }\n }\n \n if (this.sortData) {\n sortData(this.series);\n }\n this.grid.init();\n this.grid._axes = this.axes;\n \n this.legend._series = this.series;\n\n for (var i=0; i<$.jqplot.postInitHooks.length; i++) {\n $.jqplot.postInitHooks[i].call(this, target, this.data, options);\n }\n\n for (var i=0; i<this.postInitHooks.hooks.length; i++) {\n this.postInitHooks.hooks[i].call(this, target, this.data, options);\n }\n }; \n \n // method: resetAxesScale\n // Reset the specified axes min, max, numberTicks and tickInterval properties to null\n // or reset these properties on all axes if no list of axes is provided.\n //\n // Parameters:\n // axes - Boolean to reset or not reset all axes or an array or object of axis names to reset.\n this.resetAxesScale = function(axes, options) {\n var opts = options || {};\n var ax = axes || this.axes;\n if (ax === true) {\n ax = this.axes;\n }\n if ($.isArray(ax)) {\n for (var i = 0; i < ax.length; i++) {\n this.axes[ax[i]].resetScale(opts[ax[i]]);\n }\n }\n else if (typeof(ax) === 'object') {\n for (var name in ax) {\n this.axes[name].resetScale(opts[name]);\n }\n }\n };\n // method: reInitialize\n // reinitialize plot for replotting.\n // not called directly.\n this.reInitialize = function (data, opts) {\n // Plot should be visible and have a height and width.\n // If plot doesn't have height and width for some\n // reason, set it by other means. Plot must not have\n // a display:none attribute, however.\n\n var options = $.extend(true, {}, this.options, opts);\n\n var target = this.targetId.substr(1);\n var tdata = (data == null) ? this.data : data;\n\n for (var i=0; i<$.jqplot.preInitHooks.length; i++) {\n $.jqplot.preInitHooks[i].call(this, target, tdata, options);\n }\n\n for (var i=0; i<this.preInitHooks.hooks.length; i++) {\n this.preInitHooks.hooks[i].call(this, target, tdata, options);\n }\n \n this._height = this.target.height();\n this._width = this.target.width();\n \n if (this._height <=0 || this._width <=0 || !this._height || !this._width) {\n throw new Error(\"Target dimension not set\");\n }\n \n this._plotDimensions.height = this._height;\n this._plotDimensions.width = this._width;\n this.grid._plotDimensions = this._plotDimensions;\n this.title._plotDimensions = this._plotDimensions;\n this.baseCanvas._plotDimensions = this._plotDimensions;\n this.eventCanvas._plotDimensions = this._plotDimensions;\n this.legend._plotDimensions = this._plotDimensions;\n\n var name,\n t, \n j, \n axis;\n\n for (var i=0, l=_axisNames.length; i<l; i++) {\n name = _axisNames[i];\n axis = this.axes[name];\n\n // Memory Leaks patch : clear ticks elements\n t = axis._ticks;\n for (var j = 0, tlen = t.length; j < tlen; j++) {\n var el = t[j]._elem;\n if (el) {\n // if canvas renderer\n if ($.jqplot.use_excanvas && window.G_vmlCanvasManager.uninitElement !== undefined) {\n window.G_vmlCanvasManager.uninitElement(el.get(0));\n }\n el.emptyForce();\n el = null;\n t._elem = null;\n }\n }\n t = null;\n\n delete axis.ticks;\n delete axis._ticks;\n this.axes[name] = new Axis(name);\n this.axes[name]._plotWidth = this._width;\n this.axes[name]._plotHeight = this._height;\n }\n \n if (data) {\n if (options.dataRenderer && $.isFunction(options.dataRenderer)) {\n if (options.dataRendererOptions) {\n this.dataRendererOptions = options.dataRendererOptions;\n }\n this.dataRenderer = options.dataRenderer;\n data = this.dataRenderer(data, this, this.dataRendererOptions);\n }\n \n // make a copy of the data\n this.data = $.extend(true, [], data);\n }\n\n if (opts) {\n this.parseOptions(options);\n }\n \n this.title._plotWidth = this._width;\n \n if (this.textColor) {\n this.target.css('color', this.textColor);\n }\n if (this.fontFamily) {\n this.target.css('font-family', this.fontFamily);\n }\n if (this.fontSize) {\n this.target.css('font-size', this.fontSize);\n }\n\n this.title.init();\n this.legend.init();\n this._sumy = 0;\n this._sumx = 0;\n\n this.seriesStack = [];\n this.previousSeriesStack = [];\n\n this.computePlotData();\n for (var i=0, l=this.series.length; i<l; i++) {\n // set default stacking order for series canvases\n this.seriesStack.push(i);\n this.previousSeriesStack.push(i);\n this.series[i].shadowCanvas._plotDimensions = this._plotDimensions;\n this.series[i].canvas._plotDimensions = this._plotDimensions;\n for (var j=0; j<$.jqplot.preSeriesInitHooks.length; j++) {\n $.jqplot.preSeriesInitHooks[j].call(this.series[i], target, this.data, this.options.seriesDefaults, this.options.series[i], this);\n }\n for (var j=0; j<this.preSeriesInitHooks.hooks.length; j++) {\n this.preSeriesInitHooks.hooks[j].call(this.series[i], target, this.data, this.options.seriesDefaults, this.options.series[i], this);\n }\n // this.populatePlotData(this.series[i], i);\n this.series[i]._plotDimensions = this._plotDimensions;\n this.series[i].init(i, this.grid.borderWidth, this);\n for (var j=0; j<$.jqplot.postSeriesInitHooks.length; j++) {\n $.jqplot.postSeriesInitHooks[j].call(this.series[i], target, this.data, this.options.seriesDefaults, this.options.series[i], this);\n }\n for (var j=0; j<this.postSeriesInitHooks.hooks.length; j++) {\n this.postSeriesInitHooks.hooks[j].call(this.series[i], target, this.data, this.options.seriesDefaults, this.options.series[i], this);\n }\n this._sumy += this.series[i]._sumy;\n this._sumx += this.series[i]._sumx;\n }\n\n for (var i=0, l=_axisNames.length; i<l; i++) {\n name = _axisNames[i];\n axis = this.axes[name];\n\n axis._plotDimensions = this._plotDimensions;\n axis.init();\n if (axis.borderColor == null) {\n if (name.charAt(0) !== 'x' && axis.useSeriesColor === true && axis.show) {\n axis.borderColor = axis._series[0].color;\n }\n else {\n axis.borderColor = this.grid.borderColor;\n }\n }\n }\n \n if (this.sortData) {\n sortData(this.series);\n }\n this.grid.init();\n this.grid._axes = this.axes;\n \n this.legend._series = this.series;\n\n for (var i=0, l=$.jqplot.postInitHooks.length; i<l; i++) {\n $.jqplot.postInitHooks[i].call(this, target, this.data, options);\n }\n\n for (var i=0, l=this.postInitHooks.hooks.length; i<l; i++) {\n this.postInitHooks.hooks[i].call(this, target, this.data, options);\n }\n };\n\n\n\n // method: quickInit\n // \n // Quick reinitialization plot for replotting.\n // Does not parse options ore recreate axes and series.\n // not called directly.\n this.quickInit = function () {\n // Plot should be visible and have a height and width.\n // If plot doesn't have height and width for some\n // reason, set it by other means. Plot must not have\n // a display:none attribute, however.\n \n this._height = this.target.height();\n this._width = this.target.width();\n \n if (this._height <=0 || this._width <=0 || !this._height || !this._width) {\n throw new Error(\"Target dimension not set\");\n }\n \n this._plotDimensions.height = this._height;\n this._plotDimensions.width = this._width;\n this.grid._plotDimensions = this._plotDimensions;\n this.title._plotDimensions = this._plotDimensions;\n this.baseCanvas._plotDimensions = this._plotDimensions;\n this.eventCanvas._plotDimensions = this._plotDimensions;\n this.legend._plotDimensions = this._plotDimensions;\n \n for (var n in this.axes) {\n this.axes[n]._plotWidth = this._width;\n this.axes[n]._plotHeight = this._height;\n }\n \n this.title._plotWidth = this._width;\n \n if (this.textColor) {\n this.target.css('color', this.textColor);\n }\n if (this.fontFamily) {\n this.target.css('font-family', this.fontFamily);\n }\n if (this.fontSize) {\n this.target.css('font-size', this.fontSize);\n }\n \n this._sumy = 0;\n this._sumx = 0;\n this.computePlotData();\n for (var i=0; i<this.series.length; i++) {\n // this.populatePlotData(this.series[i], i);\n if (this.series[i]._type === 'line' && this.series[i].renderer.bands.show) {\n this.series[i].renderer.initBands.call(this.series[i], this.series[i].renderer.options, this);\n }\n this.series[i]._plotDimensions = this._plotDimensions;\n this.series[i].canvas._plotDimensions = this._plotDimensions;\n //this.series[i].init(i, this.grid.borderWidth);\n this._sumy += this.series[i]._sumy;\n this._sumx += this.series[i]._sumx;\n }\n\n var name;\n \n for (var j=0; j<12; j++) {\n name = _axisNames[j];\n // Memory Leaks patch : clear ticks elements\n var t = this.axes[name]._ticks;\n for (var i = 0; i < t.length; i++) {\n var el = t[i]._elem;\n if (el) {\n // if canvas renderer\n if ($.jqplot.use_excanvas && window.G_vmlCanvasManager.uninitElement !== undefined) {\n window.G_vmlCanvasManager.uninitElement(el.get(0));\n }\n el.emptyForce();\n el = null;\n t._elem = null;\n }\n }\n t = null;\n \n this.axes[name]._plotDimensions = this._plotDimensions;\n this.axes[name]._ticks = [];\n // this.axes[name].renderer.init.call(this.axes[name], {});\n }\n \n if (this.sortData) {\n sortData(this.series);\n }\n \n this.grid._axes = this.axes;\n \n this.legend._series = this.series;\n };\n \n // sort the series data in increasing order.\n function sortData(series) {\n var d, sd, pd, ppd, ret;\n for (var i=0; i<series.length; i++) {\n var check;\n var bat = [series[i].data, series[i]._stackData, series[i]._plotData, series[i]._prevPlotData];\n for (var n=0; n<4; n++) {\n check = true;\n d = bat[n];\n if (series[i]._stackAxis == 'x') {\n for (var j = 0; j < d.length; j++) {\n if (typeof(d[j][1]) != \"number\") {\n check = false;\n break;\n }\n }\n if (check) {\n d.sort(function(a,b) { return a[1] - b[1]; });\n }\n }\n else {\n for (var j = 0; j < d.length; j++) {\n if (typeof(d[j][0]) != \"number\") {\n check = false;\n break;\n }\n }\n if (check) {\n d.sort(function(a,b) { return a[0] - b[0]; });\n }\n }\n }\n \n }\n }\n\n this.computePlotData = function() {\n this._plotData = [];\n this._stackData = [];\n var series,\n index,\n l;\n\n\n for (index=0, l=this.series.length; index<l; index++) {\n series = this.series[index];\n this._plotData.push([]);\n this._stackData.push([]);\n var cd = series.data;\n this._plotData[index] = $.extend(true, [], cd);\n this._stackData[index] = $.extend(true, [], cd);\n series._plotData = this._plotData[index];\n series._stackData = this._stackData[index];\n var plotValues = {x:[], y:[]};\n\n if (this.stackSeries && !series.disableStack) {\n series._stack = true;\n ///////////////////////////\n // have to check for nulls\n ///////////////////////////\n var sidx = (series._stackAxis === 'x') ? 0 : 1;\n\n for (var k=0, cdl=cd.length; k<cdl; k++) {\n var temp = cd[k][sidx];\n if (temp == null) {\n temp = 0;\n }\n this._plotData[index][k][sidx] = temp;\n this._stackData[index][k][sidx] = temp;\n\n if (index > 0) {\n for (var j=index; j--;) {\n var prevval = this._plotData[j][k][sidx];\n // only need to sum up the stack axis column of data\n // and only sum if it is of same sign.\n // if previous series isn't same sign, keep looking\n // at earlier series untill we find one of same sign.\n if (temp * prevval >= 0) {\n this._plotData[index][k][sidx] += prevval;\n this._stackData[index][k][sidx] += prevval;\n break;\n } \n }\n }\n }\n\n }\n else {\n for (var i=0; i<series.data.length; i++) {\n plotValues.x.push(series.data[i][0]);\n plotValues.y.push(series.data[i][1]);\n }\n this._stackData.push(series.data);\n this.series[index]._stackData = series.data;\n this._plotData.push(series.data);\n series._plotData = series.data;\n series._plotValues = plotValues;\n }\n if (index>0) {\n series._prevPlotData = this.series[index-1]._plotData;\n }\n series._sumy = 0;\n series._sumx = 0;\n for (i=series.data.length-1; i>-1; i--) {\n series._sumy += series.data[i][1];\n series._sumx += series.data[i][0];\n }\n }\n\n };\n \n // populate the _stackData and _plotData arrays for the plot and the series.\n this.populatePlotData = function(series, index) {\n // if a stacked chart, compute the stacked data\n this._plotData = [];\n this._stackData = [];\n series._stackData = [];\n series._plotData = [];\n var plotValues = {x:[], y:[]};\n if (this.stackSeries && !series.disableStack) {\n series._stack = true;\n var sidx = (series._stackAxis === 'x') ? 0 : 1;\n // var idx = sidx ? 0 : 1;\n // push the current data into stackData\n //this._stackData.push(this.series[i].data);\n var temp = $.extend(true, [], series.data);\n // create the data that will be plotted for this series\n var plotdata = $.extend(true, [], series.data);\n var tempx, tempy, dval, stackval, comparator;\n // for first series, nothing to add to stackData.\n for (var j=0; j<index; j++) {\n var cd = this.series[j].data;\n for (var k=0; k<cd.length; k++) {\n dval = cd[k];\n tempx = (dval[0] != null) ? dval[0] : 0;\n tempy = (dval[1] != null) ? dval[1] : 0;\n temp[k][0] += tempx;\n temp[k][1] += tempy;\n stackval = (sidx) ? tempy : tempx;\n // only need to sum up the stack axis column of data\n // and only sum if it is of same sign.\n if (series.data[k][sidx] * stackval >= 0) {\n plotdata[k][sidx] += stackval;\n }\n }\n }\n for (var i=0; i<plotdata.length; i++) {\n plotValues.x.push(plotdata[i][0]);\n plotValues.y.push(plotdata[i][1]);\n }\n this._plotData.push(plotdata);\n this._stackData.push(temp);\n series._stackData = temp;\n series._plotData = plotdata;\n series._plotValues = plotValues;\n }\n else {\n for (var i=0; i<series.data.length; i++) {\n plotValues.x.push(series.data[i][0]);\n plotValues.y.push(series.data[i][1]);\n }\n this._stackData.push(series.data);\n this.series[index]._stackData = series.data;\n this._plotData.push(series.data);\n series._plotData = series.data;\n series._plotValues = plotValues;\n }\n if (index>0) {\n series._prevPlotData = this.series[index-1]._plotData;\n }\n series._sumy = 0;\n series._sumx = 0;\n for (i=series.data.length-1; i>-1; i--) {\n series._sumy += series.data[i][1];\n series._sumx += series.data[i][0];\n }\n };\n \n // function to safely return colors from the color array and wrap around at the end.\n this.getNextSeriesColor = (function(t) {\n var idx = 0;\n var sc = t.seriesColors;\n \n return function () { \n if (idx < sc.length) {\n return sc[idx++];\n }\n else {\n idx = 0;\n return sc[idx++];\n }\n };\n })(this);\n \n this.parseOptions = function(options){\n for (var i=0; i<this.preParseOptionsHooks.hooks.length; i++) {\n this.preParseOptionsHooks.hooks[i].call(this, options);\n }\n for (var i=0; i<$.jqplot.preParseOptionsHooks.length; i++) {\n $.jqplot.preParseOptionsHooks[i].call(this, options);\n }\n this.options = $.extend(true, {}, this.defaults, options);\n var opts = this.options;\n this.animate = opts.animate;\n this.animateReplot = opts.animateReplot;\n this.stackSeries = opts.stackSeries;\n if ($.isPlainObject(opts.fillBetween)) {\n\n var temp = ['series1', 'series2', 'color', 'baseSeries', 'fill'], \n tempi;\n\n for (var i=0, l=temp.length; i<l; i++) {\n tempi = temp[i];\n if (opts.fillBetween[tempi] != null) {\n this.fillBetween[tempi] = opts.fillBetween[tempi];\n }\n }\n }\n\n if (opts.seriesColors) {\n this.seriesColors = opts.seriesColors;\n }\n if (opts.negativeSeriesColors) {\n this.negativeSeriesColors = opts.negativeSeriesColors;\n }\n if (opts.captureRightClick) {\n this.captureRightClick = opts.captureRightClick;\n }\n this.defaultAxisStart = (options && options.defaultAxisStart != null) ? options.defaultAxisStart : this.defaultAxisStart;\n this.colorGenerator.setColors(this.seriesColors);\n this.negativeColorGenerator.setColors(this.negativeSeriesColors);\n // var cg = new this.colorGenerator(this.seriesColors);\n // var ncg = new this.colorGenerator(this.negativeSeriesColors);\n // this._gridPadding = this.options.gridPadding;\n $.extend(true, this._gridPadding, opts.gridPadding);\n this.sortData = (opts.sortData != null) ? opts.sortData : this.sortData;\n for (var i=0; i<12; i++) {\n var n = _axisNames[i];\n var axis = this.axes[n];\n axis._options = $.extend(true, {}, opts.axesDefaults, opts.axes[n]);\n $.extend(true, axis, opts.axesDefaults, opts.axes[n]);\n axis._plotWidth = this._width;\n axis._plotHeight = this._height;\n }\n // if (this.data.length == 0) {\n // this.data = [];\n // for (var i=0; i<this.options.series.length; i++) {\n // this.data.push(this.options.series.data);\n // } \n // }\n \n var normalizeData = function(data, dir, start) {\n // return data as an array of point arrays,\n // in form [[x1,y1...], [x2,y2...], ...]\n var temp = [];\n var i, l;\n dir = dir || 'vertical';\n if (!$.isArray(data[0])) {\n // we have a series of scalars. One line with just y values.\n // turn the scalar list of data into a data array of form:\n // [[1, data[0]], [2, data[1]], ...]\n for (i=0, l=data.length; i<l; i++) {\n if (dir == 'vertical') {\n temp.push([start + i, data[i]]); \n }\n else {\n temp.push([data[i], start+i]);\n }\n }\n } \n else {\n // we have a properly formatted data series, copy it.\n $.extend(true, temp, data);\n }\n return temp;\n };\n\n var colorIndex = 0;\n this.series = [];\n for (var i=0; i<this.data.length; i++) {\n var sopts = $.extend(true, {index: i}, {seriesColors:this.seriesColors, negativeSeriesColors:this.negativeSeriesColors}, this.options.seriesDefaults, this.options.series[i], {rendererOptions:{animation:{show: this.animate}}});\n // pass in options in case something needs set prior to initialization.\n var temp = new Series(sopts);\n for (var j=0; j<$.jqplot.preParseSeriesOptionsHooks.length; j++) {\n $.jqplot.preParseSeriesOptionsHooks[j].call(temp, this.options.seriesDefaults, this.options.series[i]);\n }\n for (var j=0; j<this.preParseSeriesOptionsHooks.hooks.length; j++) {\n this.preParseSeriesOptionsHooks.hooks[j].call(temp, this.options.seriesDefaults, this.options.series[i]);\n }\n // Now go back and apply the options to the series. Really should just do this during initializaiton, but don't want to\n // mess up preParseSeriesOptionsHooks at this point.\n $.extend(true, temp, sopts);\n var dir = 'vertical';\n if (temp.renderer === $.jqplot.BarRenderer && temp.rendererOptions && temp.rendererOptions.barDirection == 'horizontal') {\n dir = 'horizontal';\n temp._stackAxis = 'x';\n temp._primaryAxis = '_yaxis';\n }\n temp.data = normalizeData(this.data[i], dir, this.defaultAxisStart);\n switch (temp.xaxis) {\n case 'xaxis':\n temp._xaxis = this.axes.xaxis;\n break;\n case 'x2axis':\n temp._xaxis = this.axes.x2axis;\n break;\n default:\n break;\n }\n temp._yaxis = this.axes[temp.yaxis];\n temp._xaxis._series.push(temp);\n temp._yaxis._series.push(temp);\n if (temp.show) {\n temp._xaxis.show = true;\n temp._yaxis.show = true;\n }\n else {\n if (temp._xaxis.scaleToHiddenSeries) {\n temp._xaxis.show = true;\n }\n if (temp._yaxis.scaleToHiddenSeries) {\n temp._yaxis.show = true;\n }\n }\n\n // // parse the renderer options and apply default colors if not provided\n // if (!temp.color && temp.show != false) {\n // temp.color = cg.next();\n // colorIndex = cg.getIndex() - 1;;\n // }\n // if (!temp.negativeColor && temp.show != false) {\n // temp.negativeColor = ncg.get(colorIndex);\n // ncg.setIndex(colorIndex);\n // }\n if (!temp.label) {\n temp.label = 'Series '+ (i+1).toString();\n }\n // temp.rendererOptions.show = temp.show;\n // $.extend(true, temp.renderer, {color:this.seriesColors[i]}, this.rendererOptions);\n this.series.push(temp); \n for (var j=0; j<$.jqplot.postParseSeriesOptionsHooks.length; j++) {\n $.jqplot.postParseSeriesOptionsHooks[j].call(this.series[i], this.options.seriesDefaults, this.options.series[i]);\n }\n for (var j=0; j<this.postParseSeriesOptionsHooks.hooks.length; j++) {\n this.postParseSeriesOptionsHooks.hooks[j].call(this.series[i], this.options.seriesDefaults, this.options.series[i]);\n }\n }\n \n // copy the grid and title options into this object.\n $.extend(true, this.grid, this.options.grid);\n // if axis border properties aren't set, set default.\n for (var i=0, l=_axisNames.length; i<l; i++) {\n var n = _axisNames[i];\n var axis = this.axes[n];\n if (axis.borderWidth == null) {\n axis.borderWidth =this.grid.borderWidth;\n }\n }\n \n if (typeof this.options.title == 'string') {\n this.title.text = this.options.title;\n }\n else if (typeof this.options.title == 'object') {\n $.extend(true, this.title, this.options.title);\n }\n this.title._plotWidth = this._width;\n this.legend.setOptions(this.options.legend);\n \n for (var i=0; i<$.jqplot.postParseOptionsHooks.length; i++) {\n $.jqplot.postParseOptionsHooks[i].call(this, options);\n }\n for (var i=0; i<this.postParseOptionsHooks.hooks.length; i++) {\n this.postParseOptionsHooks.hooks[i].call(this, options);\n }\n };\n \n // method: destroy\n // Releases all resources occupied by the plot\n this.destroy = function() {\n this.canvasManager.freeAllCanvases();\n if (this.eventCanvas && this.eventCanvas._elem) {\n this.eventCanvas._elem.unbind();\n }\n // Couple of posts on Stack Overflow indicate that empty() doesn't\n // always cear up the dom and release memory. Sometimes setting\n // innerHTML property to null is needed. Particularly on IE, may \n // have to directly set it to null, bypassing $.\n this.target.empty();\n\n this.target[0].innerHTML = '';\n };\n \n // method: replot\n // Does a reinitialization of the plot followed by\n // a redraw. Method could be used to interactively\n // change plot characteristics and then replot.\n //\n // Parameters:\n // options - Options used for replotting.\n //\n // Properties:\n // clear - false to not clear (empty) the plot container before replotting (default: true).\n // resetAxes - true to reset all axes min, max, numberTicks and tickInterval setting so axes will rescale themselves.\n // optionally pass in list of axes to reset (e.g. ['xaxis', 'y2axis']) (default: false).\n this.replot = function(options) {\n var opts = options || {};\n var data = opts.data || null;\n var clear = (opts.clear === false) ? false : true;\n var resetAxes = opts.resetAxes || false;\n delete opts.data;\n delete opts.clear;\n delete opts.resetAxes;\n\n this.target.trigger('jqplotPreReplot');\n \n if (clear) {\n this.destroy();\n }\n // if have data or other options, full reinit.\n // otherwise, quickinit.\n if (data || !$.isEmptyObject(opts)) {\n this.reInitialize(data, opts);\n }\n else {\n this.quickInit();\n }\n\n if (resetAxes) {\n this.resetAxesScale(resetAxes, opts.axes);\n }\n this.draw();\n this.target.trigger('jqplotPostReplot');\n };\n \n // method: redraw\n // Empties the plot target div and redraws the plot.\n // This enables plot data and properties to be changed\n // and then to comletely clear the plot and redraw.\n // redraw *will not* reinitialize any plot elements.\n // That is, axes will not be autoscaled and defaults\n // will not be reapplied to any plot elements. redraw\n // is used primarily with zooming. \n //\n // Parameters:\n // clear - false to not clear (empty) the plot container before redrawing (default: true).\n this.redraw = function(clear) {\n clear = (clear != null) ? clear : true;\n this.target.trigger('jqplotPreRedraw');\n if (clear) {\n this.canvasManager.freeAllCanvases();\n this.eventCanvas._elem.unbind();\n // Dont think I bind any events to the target, this shouldn't be necessary.\n // It will remove user's events.\n // this.target.unbind();\n this.target.empty();\n }\n for (var ax in this.axes) {\n this.axes[ax]._ticks = [];\n }\n this.computePlotData();\n // for (var i=0; i<this.series.length; i++) {\n // this.populatePlotData(this.series[i], i);\n // }\n this._sumy = 0;\n this._sumx = 0;\n for (var i=0, tsl = this.series.length; i<tsl; i++) {\n this._sumy += this.series[i]._sumy;\n this._sumx += this.series[i]._sumx;\n }\n this.draw();\n this.target.trigger('jqplotPostRedraw');\n };\n \n // method: draw\n // Draws all elements of the plot into the container.\n // Does not clear the container before drawing.\n this.draw = function(){\n if (this.drawIfHidden || this.target.is(':visible')) {\n this.target.trigger('jqplotPreDraw');\n var i,\n j,\n l,\n tempseries;\n for (i=0, l=$.jqplot.preDrawHooks.length; i<l; i++) {\n $.jqplot.preDrawHooks[i].call(this);\n }\n for (i=0, l=this.preDrawHooks.hooks.length; i<l; i++) {\n this.preDrawHooks.hooks[i].apply(this, this.preDrawSeriesHooks.args[i]);\n }\n // create an underlying canvas to be used for special features.\n this.target.append(this.baseCanvas.createElement({left:0, right:0, top:0, bottom:0}, 'jqplot-base-canvas', null, this));\n this.baseCanvas.setContext();\n this.target.append(this.title.draw());\n this.title.pack({top:0, left:0});\n \n // make room for the legend between the grid and the edge.\n // pass a dummy offsets object and a reference to the plot.\n var legendElem = this.legend.draw({}, this);\n \n var gridPadding = {top:0, left:0, bottom:0, right:0};\n \n if (this.legend.placement == \"outsideGrid\") {\n // temporarily append the legend to get dimensions\n this.target.append(legendElem);\n switch (this.legend.location) {\n case 'n':\n gridPadding.top += this.legend.getHeight();\n break;\n case 's':\n gridPadding.bottom += this.legend.getHeight();\n break;\n case 'ne':\n case 'e':\n case 'se':\n gridPadding.right += this.legend.getWidth();\n break;\n case 'nw':\n case 'w':\n case 'sw':\n gridPadding.left += this.legend.getWidth();\n break;\n default: // same as 'ne'\n gridPadding.right += this.legend.getWidth();\n break;\n }\n legendElem = legendElem.detach();\n }\n \n var ax = this.axes;\n var name;\n // draw the yMidAxis first, so xaxis of pyramid chart can adjust itself if needed.\n for (i=0; i<12; i++) {\n name = _axisNames[i];\n this.target.append(ax[name].draw(this.baseCanvas._ctx, this));\n ax[name].set();\n }\n if (ax.yaxis.show) {\n gridPadding.left += ax.yaxis.getWidth();\n }\n var ra = ['y2axis', 'y3axis', 'y4axis', 'y5axis', 'y6axis', 'y7axis', 'y8axis', 'y9axis'];\n var rapad = [0, 0, 0, 0, 0, 0, 0, 0];\n var gpr = 0;\n var n;\n for (n=0; n<8; n++) {\n if (ax[ra[n]].show) {\n gpr += ax[ra[n]].getWidth();\n rapad[n] = gpr;\n }\n }\n gridPadding.right += gpr;\n if (ax.x2axis.show) {\n gridPadding.top += ax.x2axis.getHeight();\n }\n if (this.title.show) {\n gridPadding.top += this.title.getHeight();\n }\n if (ax.xaxis.show) {\n gridPadding.bottom += ax.xaxis.getHeight();\n }\n \n // end of gridPadding adjustments.\n\n // if user passed in gridDimensions option, check against calculated gridPadding\n if (this.options.gridDimensions && $.isPlainObject(this.options.gridDimensions)) {\n var gdw = parseInt(this.options.gridDimensions.width, 10) || 0;\n var gdh = parseInt(this.options.gridDimensions.height, 10) || 0;\n var widthAdj = (this._width - gridPadding.left - gridPadding.right - gdw)/2;\n var heightAdj = (this._height - gridPadding.top - gridPadding.bottom - gdh)/2;\n\n if (heightAdj >= 0 && widthAdj >= 0) {\n gridPadding.top += heightAdj;\n gridPadding.bottom += heightAdj;\n gridPadding.left += widthAdj;\n gridPadding.right += widthAdj;\n }\n }\n var arr = ['top', 'bottom', 'left', 'right'];\n for (var n in arr) {\n if (this._gridPadding[arr[n]] == null && gridPadding[arr[n]] > 0) {\n this._gridPadding[arr[n]] = gridPadding[arr[n]];\n }\n else if (this._gridPadding[arr[n]] == null) {\n this._gridPadding[arr[n]] = this._defaultGridPadding[arr[n]];\n }\n }\n \n var legendPadding = this._gridPadding;\n \n if (this.legend.placement === 'outsideGrid') {\n legendPadding = {top:this.title.getHeight(), left: 0, right: 0, bottom: 0};\n if (this.legend.location === 's') {\n legendPadding.left = this._gridPadding.left;\n legendPadding.right = this._gridPadding.right;\n }\n }\n \n ax.xaxis.pack({position:'absolute', bottom:this._gridPadding.bottom - ax.xaxis.getHeight(), left:0, width:this._width}, {min:this._gridPadding.left, max:this._width - this._gridPadding.right});\n ax.yaxis.pack({position:'absolute', top:0, left:this._gridPadding.left - ax.yaxis.getWidth(), height:this._height}, {min:this._height - this._gridPadding.bottom, max: this._gridPadding.top});\n ax.x2axis.pack({position:'absolute', top:this._gridPadding.top - ax.x2axis.getHeight(), left:0, width:this._width}, {min:this._gridPadding.left, max:this._width - this._gridPadding.right});\n for (i=8; i>0; i--) {\n ax[ra[i-1]].pack({position:'absolute', top:0, right:this._gridPadding.right - rapad[i-1]}, {min:this._height - this._gridPadding.bottom, max: this._gridPadding.top});\n }\n var ltemp = (this._width - this._gridPadding.left - this._gridPadding.right)/2.0 + this._gridPadding.left - ax.yMidAxis.getWidth()/2.0;\n ax.yMidAxis.pack({position:'absolute', top:0, left:ltemp, zIndex:9, textAlign: 'center'}, {min:this._height - this._gridPadding.bottom, max: this._gridPadding.top});\n \n this.target.append(this.grid.createElement(this._gridPadding, this));\n this.grid.draw();\n \n var series = this.series;\n var seriesLength = series.length;\n // put the shadow canvases behind the series canvases so shadows don't overlap on stacked bars.\n for (i=0, l=seriesLength; i<l; i++) {\n // draw series in order of stacking. This affects only\n // order in which canvases are added to dom.\n j = this.seriesStack[i];\n this.target.append(series[j].shadowCanvas.createElement(this._gridPadding, 'jqplot-series-shadowCanvas', null, this));\n series[j].shadowCanvas.setContext();\n series[j].shadowCanvas._elem.data('seriesIndex', j);\n }\n \n for (i=0, l=seriesLength; i<l; i++) {\n // draw series in order of stacking. This affects only\n // order in which canvases are added to dom.\n j = this.seriesStack[i];\n this.target.append(series[j].canvas.createElement(this._gridPadding, 'jqplot-series-canvas', null, this));\n series[j].canvas.setContext();\n series[j].canvas._elem.data('seriesIndex', j);\n }\n // Need to use filled canvas to capture events in IE.\n // Also, canvas seems to block selection of other elements in document on FF.\n this.target.append(this.eventCanvas.createElement(this._gridPadding, 'jqplot-event-canvas', null, this));\n this.eventCanvas.setContext();\n this.eventCanvas._ctx.fillStyle = 'rgba(0,0,0,0)';\n this.eventCanvas._ctx.fillRect(0,0,this.eventCanvas._ctx.canvas.width, this.eventCanvas._ctx.canvas.height);\n \n // bind custom event handlers to regular events.\n this.bindCustomEvents();\n \n // draw legend before series if the series needs to know the legend dimensions.\n if (this.legend.preDraw) { \n this.eventCanvas._elem.before(legendElem);\n this.legend.pack(legendPadding);\n if (this.legend._elem) {\n this.drawSeries({legendInfo:{location:this.legend.location, placement:this.legend.placement, width:this.legend.getWidth(), height:this.legend.getHeight(), xoffset:this.legend.xoffset, yoffset:this.legend.yoffset}});\n }\n else {\n this.drawSeries();\n }\n }\n else { // draw series before legend\n this.drawSeries();\n if (seriesLength) {\n $(series[seriesLength-1].canvas._elem).after(legendElem);\n }\n this.legend.pack(legendPadding); \n }\n \n // register event listeners on the overlay canvas\n for (var i=0, l=$.jqplot.eventListenerHooks.length; i<l; i++) {\n // in the handler, this will refer to the eventCanvas dom element.\n // make sure there are references back into plot objects.\n this.eventCanvas._elem.bind($.jqplot.eventListenerHooks[i][0], {plot:this}, $.jqplot.eventListenerHooks[i][1]);\n }\n \n // register event listeners on the overlay canvas\n for (var i=0, l=this.eventListenerHooks.hooks.length; i<l; i++) {\n // in the handler, this will refer to the eventCanvas dom element.\n // make sure there are references back into plot objects.\n this.eventCanvas._elem.bind(this.eventListenerHooks.hooks[i][0], {plot:this}, this.eventListenerHooks.hooks[i][1]);\n }\n\n var fb = this.fillBetween;\n if (fb.fill && fb.series1 !== fb.series2 && fb.series1 < seriesLength && fb.series2 < seriesLength && series[fb.series1]._type === 'line' && series[fb.series2]._type === 'line') {\n this.doFillBetweenLines();\n }\n\n for (var i=0, l=$.jqplot.postDrawHooks.length; i<l; i++) {\n $.jqplot.postDrawHooks[i].call(this);\n }\n\n for (var i=0, l=this.postDrawHooks.hooks.length; i<l; i++) {\n this.postDrawHooks.hooks[i].apply(this, this.postDrawHooks.args[i]);\n }\n \n if (this.target.is(':visible')) {\n this._drawCount += 1;\n }\n\n var temps, \n tempr,\n sel,\n _els;\n // ughh. ideally would hide all series then show them.\n for (i=0, l=seriesLength; i<l; i++) {\n temps = series[i];\n tempr = temps.renderer;\n sel = '.jqplot-point-label.jqplot-series-'+i;\n if (tempr.animation && tempr.animation._supported && tempr.animation.show && (this._drawCount < 2 || this.animateReplot)) {\n _els = this.target.find(sel);\n _els.stop(true, true).hide();\n temps.canvas._elem.stop(true, true).hide();\n temps.shadowCanvas._elem.stop(true, true).hide();\n temps.canvas._elem.jqplotEffect('blind', {mode: 'show', direction: tempr.animation.direction}, tempr.animation.speed);\n temps.shadowCanvas._elem.jqplotEffect('blind', {mode: 'show', direction: tempr.animation.direction}, tempr.animation.speed);\n _els.fadeIn(tempr.animation.speed*0.8);\n }\n }\n _els = null;\n \n this.target.trigger('jqplotPostDraw', [this]);\n }\n };\n\n jqPlot.prototype.doFillBetweenLines = function () {\n var fb = this.fillBetween;\n var sid1 = fb.series1;\n var sid2 = fb.series2;\n // first series should always be lowest index\n var id1 = (sid1 < sid2) ? sid1 : sid2;\n var id2 = (sid2 > sid1) ? sid2 : sid1;\n\n var series1 = this.series[id1];\n var series2 = this.series[id2];\n\n if (series2.renderer.smooth) {\n var tempgd = series2.renderer._smoothedData.slice(0).reverse();\n }\n else {\n var tempgd = series2.gridData.slice(0).reverse();\n }\n\n if (series1.renderer.smooth) {\n var gd = series1.renderer._smoothedData.concat(tempgd);\n }\n else {\n var gd = series1.gridData.concat(tempgd);\n }\n\n var color = (fb.color !== null) ? fb.color : this.series[sid1].fillColor;\n var baseSeries = (fb.baseSeries !== null) ? fb.baseSeries : id1;\n\n // now apply a fill to the shape on the lower series shadow canvas,\n // so it is behind both series.\n var sr = this.series[baseSeries].renderer.shapeRenderer;\n var opts = {fillStyle: color, fill: true, closePath: true};\n sr.draw(series1.shadowCanvas._ctx, gd, opts);\n };\n \n this.bindCustomEvents = function() {\n this.eventCanvas._elem.bind('click', {plot:this}, this.onClick);\n this.eventCanvas._elem.bind('dblclick', {plot:this}, this.onDblClick);\n this.eventCanvas._elem.bind('mousedown', {plot:this}, this.onMouseDown);\n this.eventCanvas._elem.bind('mousemove', {plot:this}, this.onMouseMove);\n this.eventCanvas._elem.bind('mouseenter', {plot:this}, this.onMouseEnter);\n this.eventCanvas._elem.bind('mouseleave', {plot:this}, this.onMouseLeave);\n if (this.captureRightClick) {\n this.eventCanvas._elem.bind('mouseup', {plot:this}, this.onRightClick);\n this.eventCanvas._elem.get(0).oncontextmenu = function() {\n return false;\n };\n }\n else {\n this.eventCanvas._elem.bind('mouseup', {plot:this}, this.onMouseUp);\n }\n };\n \n function getEventPosition(ev) {\n var plot = ev.data.plot;\n var go = plot.eventCanvas._elem.offset();\n var gridPos = {x:ev.pageX - go.left, y:ev.pageY - go.top};\n var dataPos = {xaxis:null, yaxis:null, x2axis:null, y2axis:null, y3axis:null, y4axis:null, y5axis:null, y6axis:null, y7axis:null, y8axis:null, y9axis:null, yMidAxis:null};\n var an = ['xaxis', 'yaxis', 'x2axis', 'y2axis', 'y3axis', 'y4axis', 'y5axis', 'y6axis', 'y7axis', 'y8axis', 'y9axis', 'yMidAxis'];\n var ax = plot.axes;\n var n, axis;\n for (n=11; n>0; n--) {\n axis = an[n-1];\n if (ax[axis].show) {\n dataPos[axis] = ax[axis].series_p2u(gridPos[axis.charAt(0)]);\n }\n }\n\n return {offsets:go, gridPos:gridPos, dataPos:dataPos};\n }\n \n \n // function to check if event location is over a area area\n function checkIntersection(gridpos, plot) {\n var series = plot.series;\n var i, j, k, s, r, x, y, theta, sm, sa, minang, maxang;\n var d0, d, p, pp, points, bw, hp;\n var threshold, t;\n for (k=plot.seriesStack.length-1; k>=0; k--) {\n i = plot.seriesStack[k];\n s = series[i];\n hp = s._highlightThreshold;\n switch (s.renderer.constructor) {\n case $.jqplot.BarRenderer:\n x = gridpos.x;\n y = gridpos.y;\n for (j=0; j<s._barPoints.length; j++) {\n points = s._barPoints[j];\n p = s.gridData[j];\n if (x>points[0][0] && x<points[2][0] && y>points[2][1] && y<points[0][1]) {\n return {seriesIndex:s.index, pointIndex:j, gridData:p, data:s.data[j], points:s._barPoints[j]};\n }\n }\n break;\n case $.jqplot.PyramidRenderer:\n x = gridpos.x;\n y = gridpos.y;\n for (j=0; j<s._barPoints.length; j++) {\n points = s._barPoints[j];\n p = s.gridData[j];\n if (x > points[0][0] + hp[0][0] && x < points[2][0] + hp[2][0] && y > points[2][1] && y < points[0][1]) {\n return {seriesIndex:s.index, pointIndex:j, gridData:p, data:s.data[j], points:s._barPoints[j]};\n }\n }\n break;\n \n case $.jqplot.DonutRenderer:\n sa = s.startAngle/180*Math.PI;\n x = gridpos.x - s._center[0];\n y = gridpos.y - s._center[1];\n r = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));\n if (x > 0 && -y >= 0) {\n theta = 2*Math.PI - Math.atan(-y/x);\n }\n else if (x > 0 && -y < 0) {\n theta = -Math.atan(-y/x);\n }\n else if (x < 0) {\n theta = Math.PI - Math.atan(-y/x);\n }\n else if (x == 0 && -y > 0) {\n theta = 3*Math.PI/2;\n }\n else if (x == 0 && -y < 0) {\n theta = Math.PI/2;\n }\n else if (x == 0 && y == 0) {\n theta = 0;\n }\n if (sa) {\n theta -= sa;\n if (theta < 0) {\n theta += 2*Math.PI;\n }\n else if (theta > 2*Math.PI) {\n theta -= 2*Math.PI;\n }\n }\n \n sm = s.sliceMargin/180*Math.PI;\n if (r < s._radius && r > s._innerRadius) {\n for (j=0; j<s.gridData.length; j++) {\n minang = (j>0) ? s.gridData[j-1][1]+sm : sm;\n maxang = s.gridData[j][1];\n if (theta > minang && theta < maxang) {\n return {seriesIndex:s.index, pointIndex:j, gridData:[gridpos.x,gridpos.y], data:s.data[j]};\n }\n }\n }\n break;\n \n case $.jqplot.PieRenderer:\n sa = s.startAngle/180*Math.PI;\n x = gridpos.x - s._center[0];\n y = gridpos.y - s._center[1];\n r = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));\n if (x > 0 && -y >= 0) {\n theta = 2*Math.PI - Math.atan(-y/x);\n }\n else if (x > 0 && -y < 0) {\n theta = -Math.atan(-y/x);\n }\n else if (x < 0) {\n theta = Math.PI - Math.atan(-y/x);\n }\n else if (x == 0 && -y > 0) {\n theta = 3*Math.PI/2;\n }\n else if (x == 0 && -y < 0) {\n theta = Math.PI/2;\n }\n else if (x == 0 && y == 0) {\n theta = 0;\n }\n if (sa) {\n theta -= sa;\n if (theta < 0) {\n theta += 2*Math.PI;\n }\n else if (theta > 2*Math.PI) {\n theta -= 2*Math.PI;\n }\n }\n \n sm = s.sliceMargin/180*Math.PI;\n if (r < s._radius) {\n for (j=0; j<s.gridData.length; j++) {\n minang = (j>0) ? s.gridData[j-1][1]+sm : sm;\n maxang = s.gridData[j][1];\n if (theta > minang && theta < maxang) {\n return {seriesIndex:s.index, pointIndex:j, gridData:[gridpos.x,gridpos.y], data:s.data[j]};\n }\n }\n }\n break;\n \n case $.jqplot.BubbleRenderer:\n x = gridpos.x;\n y = gridpos.y;\n var ret = null;\n \n if (s.show) {\n for (var j=0; j<s.gridData.length; j++) {\n p = s.gridData[j];\n d = Math.sqrt( (x-p[0]) * (x-p[0]) + (y-p[1]) * (y-p[1]) );\n if (d <= p[2] && (d <= d0 || d0 == null)) {\n d0 = d;\n ret = {seriesIndex: i, pointIndex:j, gridData:p, data:s.data[j]};\n }\n }\n if (ret != null) {\n return ret;\n }\n }\n break;\n \n case $.jqplot.FunnelRenderer:\n x = gridpos.x;\n y = gridpos.y;\n var v = s._vertices,\n vfirst = v[0],\n vlast = v[v.length-1],\n lex,\n rex,\n cv;\n \n // equations of right and left sides, returns x, y values given height of section (y value and 2 points)\n \n function findedge (l, p1 , p2) {\n var m = (p1[1] - p2[1])/(p1[0] - p2[0]);\n var b = p1[1] - m*p1[0];\n var y = l + p1[1];\n \n return [(y - b)/m, y];\n }\n \n // check each section\n lex = findedge(y, vfirst[0], vlast[3]);\n rex = findedge(y, vfirst[1], vlast[2]);\n for (j=0; j<v.length; j++) {\n cv = v[j];\n if (y >= cv[0][1] && y <= cv[3][1] && x >= lex[0] && x <= rex[0]) {\n return {seriesIndex:s.index, pointIndex:j, gridData:null, data:s.data[j]};\n }\n } \n break; \n \n case $.jqplot.LineRenderer:\n x = gridpos.x;\n y = gridpos.y;\n r = s.renderer;\n if (s.show) {\n if ((s.fill || (s.renderer.bands.show && s.renderer.bands.fill)) && (!plot.plugins.highlighter || !plot.plugins.highlighter.show)) {\n // first check if it is in bounding box\n var inside = false;\n if (x>s._boundingBox[0][0] && x<s._boundingBox[1][0] && y>s._boundingBox[1][1] && y<s._boundingBox[0][1]) { \n // now check the crossing number \n \n var numPoints = s._areaPoints.length;\n var ii;\n var j = numPoints-1;\n\n for(var ii=0; ii < numPoints; ii++) { \n var vertex1 = [s._areaPoints[ii][0], s._areaPoints[ii][1]];\n var vertex2 = [s._areaPoints[j][0], s._areaPoints[j][1]];\n\n if (vertex1[1] < y && vertex2[1] >= y || vertex2[1] < y && vertex1[1] >= y) {\n if (vertex1[0] + (y - vertex1[1]) / (vertex2[1] - vertex1[1]) * (vertex2[0] - vertex1[0]) < x) {\n inside = !inside;\n }\n }\n\n j = ii;\n } \n }\n if (inside) {\n return {seriesIndex:i, pointIndex:null, gridData:s.gridData, data:s.data, points:s._areaPoints};\n }\n break;\n \n }\n\n else {\n t = s.markerRenderer.size/2+s.neighborThreshold;\n threshold = (t > 0) ? t : 0;\n for (var j=0; j<s.gridData.length; j++) {\n p = s.gridData[j];\n // neighbor looks different to OHLC chart.\n if (r.constructor == $.jqplot.OHLCRenderer) {\n if (r.candleStick) {\n var yp = s._yaxis.series_u2p;\n if (x >= p[0]-r._bodyWidth/2 && x <= p[0]+r._bodyWidth/2 && y >= yp(s.data[j][2]) && y <= yp(s.data[j][3])) {\n return {seriesIndex: i, pointIndex:j, gridData:p, data:s.data[j]};\n }\n }\n // if an open hi low close chart\n else if (!r.hlc){\n var yp = s._yaxis.series_u2p;\n if (x >= p[0]-r._tickLength && x <= p[0]+r._tickLength && y >= yp(s.data[j][2]) && y <= yp(s.data[j][3])) {\n return {seriesIndex: i, pointIndex:j, gridData:p, data:s.data[j]};\n }\n }\n // a hi low close chart\n else {\n var yp = s._yaxis.series_u2p;\n if (x >= p[0]-r._tickLength && x <= p[0]+r._tickLength && y >= yp(s.data[j][1]) && y <= yp(s.data[j][2])) {\n return {seriesIndex: i, pointIndex:j, gridData:p, data:s.data[j]};\n }\n }\n \n }\n else if (p[0] != null && p[1] != null){\n d = Math.sqrt( (x-p[0]) * (x-p[0]) + (y-p[1]) * (y-p[1]) );\n if (d <= threshold && (d <= d0 || d0 == null)) {\n d0 = d;\n return {seriesIndex: i, pointIndex:j, gridData:p, data:s.data[j]};\n }\n }\n } \n }\n }\n break;\n \n default:\n x = gridpos.x;\n y = gridpos.y;\n r = s.renderer;\n if (s.show) {\n t = s.markerRenderer.size/2+s.neighborThreshold;\n threshold = (t > 0) ? t : 0;\n for (var j=0; j<s.gridData.length; j++) {\n p = s.gridData[j];\n // neighbor looks different to OHLC chart.\n if (r.constructor == $.jqplot.OHLCRenderer) {\n if (r.candleStick) {\n var yp = s._yaxis.series_u2p;\n if (x >= p[0]-r._bodyWidth/2 && x <= p[0]+r._bodyWidth/2 && y >= yp(s.data[j][2]) && y <= yp(s.data[j][3])) {\n return {seriesIndex: i, pointIndex:j, gridData:p, data:s.data[j]};\n }\n }\n // if an open hi low close chart\n else if (!r.hlc){\n var yp = s._yaxis.series_u2p;\n if (x >= p[0]-r._tickLength && x <= p[0]+r._tickLength && y >= yp(s.data[j][2]) && y <= yp(s.data[j][3])) {\n return {seriesIndex: i, pointIndex:j, gridData:p, data:s.data[j]};\n }\n }\n // a hi low close chart\n else {\n var yp = s._yaxis.series_u2p;\n if (x >= p[0]-r._tickLength && x <= p[0]+r._tickLength && y >= yp(s.data[j][1]) && y <= yp(s.data[j][2])) {\n return {seriesIndex: i, pointIndex:j, gridData:p, data:s.data[j]};\n }\n }\n \n }\n else {\n d = Math.sqrt( (x-p[0]) * (x-p[0]) + (y-p[1]) * (y-p[1]) );\n if (d <= threshold && (d <= d0 || d0 == null)) {\n d0 = d;\n return {seriesIndex: i, pointIndex:j, gridData:p, data:s.data[j]};\n }\n }\n } \n }\n break;\n }\n }\n \n return null;\n }\n \n \n \n this.onClick = function(ev) {\n // Event passed in is normalized and will have data attribute.\n // Event passed out is unnormalized.\n var positions = getEventPosition(ev);\n var p = ev.data.plot;\n var neighbor = checkIntersection(positions.gridPos, p);\n var evt = $.Event('jqplotClick');\n evt.pageX = ev.pageX;\n evt.pageY = ev.pageY;\n $(this).trigger(evt, [positions.gridPos, positions.dataPos, neighbor, p]);\n };\n \n this.onDblClick = function(ev) {\n // Event passed in is normalized and will have data attribute.\n // Event passed out is unnormalized.\n var positions = getEventPosition(ev);\n var p = ev.data.plot;\n var neighbor = checkIntersection(positions.gridPos, p);\n var evt = $.Event('jqplotDblClick');\n evt.pageX = ev.pageX;\n evt.pageY = ev.pageY;\n $(this).trigger(evt, [positions.gridPos, positions.dataPos, neighbor, p]);\n };\n \n this.onMouseDown = function(ev) {\n var positions = getEventPosition(ev);\n var p = ev.data.plot;\n var neighbor = checkIntersection(positions.gridPos, p);\n var evt = $.Event('jqplotMouseDown');\n evt.pageX = ev.pageX;\n evt.pageY = ev.pageY;\n $(this).trigger(evt, [positions.gridPos, positions.dataPos, neighbor, p]);\n };\n \n this.onMouseUp = function(ev) {\n var positions = getEventPosition(ev);\n var evt = $.Event('jqplotMouseUp');\n evt.pageX = ev.pageX;\n evt.pageY = ev.pageY;\n $(this).trigger(evt, [positions.gridPos, positions.dataPos, null, ev.data.plot]);\n };\n \n this.onRightClick = function(ev) {\n var positions = getEventPosition(ev);\n var p = ev.data.plot;\n var neighbor = checkIntersection(positions.gridPos, p);\n if (p.captureRightClick) {\n if (ev.which == 3) {\n var evt = $.Event('jqplotRightClick');\n evt.pageX = ev.pageX;\n evt.pageY = ev.pageY;\n $(this).trigger(evt, [positions.gridPos, positions.dataPos, neighbor, p]);\n }\n else {\n var evt = $.Event('jqplotMouseUp');\n evt.pageX = ev.pageX;\n evt.pageY = ev.pageY;\n $(this).trigger(evt, [positions.gridPos, positions.dataPos, neighbor, p]);\n }\n }\n };\n \n this.onMouseMove = function(ev) {\n var positions = getEventPosition(ev);\n var p = ev.data.plot;\n var neighbor = checkIntersection(positions.gridPos, p);\n var evt = $.Event('jqplotMouseMove');\n evt.pageX = ev.pageX;\n evt.pageY = ev.pageY;\n $(this).trigger(evt, [positions.gridPos, positions.dataPos, neighbor, p]);\n };\n \n this.onMouseEnter = function(ev) {\n var positions = getEventPosition(ev);\n var p = ev.data.plot;\n var evt = $.Event('jqplotMouseEnter');\n evt.pageX = ev.pageX;\n evt.pageY = ev.pageY;\n evt.relatedTarget = ev.relatedTarget;\n $(this).trigger(evt, [positions.gridPos, positions.dataPos, null, p]);\n };\n \n this.onMouseLeave = function(ev) {\n var positions = getEventPosition(ev);\n var p = ev.data.plot;\n var evt = $.Event('jqplotMouseLeave');\n evt.pageX = ev.pageX;\n evt.pageY = ev.pageY;\n evt.relatedTarget = ev.relatedTarget;\n $(this).trigger(evt, [positions.gridPos, positions.dataPos, null, p]);\n };\n \n // method: drawSeries\n // Redraws all or just one series on the plot. No axis scaling\n // is performed and no other elements on the plot are redrawn.\n // options is an options object to pass on to the series renderers.\n // It can be an empty object {}. idx is the series index\n // to redraw if only one series is to be redrawn.\n this.drawSeries = function(options, idx){\n var i, series, ctx;\n // if only one argument passed in and it is a number, use it ad idx.\n idx = (typeof(options) === \"number\" && idx == null) ? options : idx;\n options = (typeof(options) === \"object\") ? options : {};\n // draw specified series\n if (idx != undefined) {\n series = this.series[idx];\n ctx = series.shadowCanvas._ctx;\n ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height);\n series.drawShadow(ctx, options, this);\n ctx = series.canvas._ctx;\n ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height);\n series.draw(ctx, options, this);\n if (series.renderer.constructor == $.jqplot.BezierCurveRenderer) {\n if (idx < this.series.length - 1) {\n this.drawSeries(idx+1); \n }\n }\n }\n \n else {\n // if call series drawShadow method first, in case all series shadows\n // should be drawn before any series. This will ensure, like for \n // stacked bar plots, that shadows don't overlap series.\n for (i=0; i<this.series.length; i++) {\n // first clear the canvas\n series = this.series[i];\n ctx = series.shadowCanvas._ctx;\n ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height);\n series.drawShadow(ctx, options, this);\n ctx = series.canvas._ctx;\n ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height);\n series.draw(ctx, options, this);\n }\n }\n options = idx = i = series = ctx = null;\n };\n \n // method: moveSeriesToFront\n // This method requires jQuery 1.4+\n // Moves the specified series canvas in front of all other series canvases.\n // This effectively \"draws\" the specified series on top of all other series,\n // although it is performed through DOM manipulation, no redrawing is performed.\n //\n // Parameters:\n // idx - 0 based index of the series to move. This will be the index of the series\n // as it was first passed into the jqplot function.\n this.moveSeriesToFront = function (idx) { \n idx = parseInt(idx, 10);\n var stackIndex = $.inArray(idx, this.seriesStack);\n // if already in front, return\n if (stackIndex == -1) {\n return;\n }\n if (stackIndex == this.seriesStack.length -1) {\n this.previousSeriesStack = this.seriesStack.slice(0);\n return;\n }\n var opidx = this.seriesStack[this.seriesStack.length -1];\n var serelem = this.series[idx].canvas._elem.detach();\n var shadelem = this.series[idx].shadowCanvas._elem.detach();\n this.series[opidx].shadowCanvas._elem.after(shadelem);\n this.series[opidx].canvas._elem.after(serelem);\n this.previousSeriesStack = this.seriesStack.slice(0);\n this.seriesStack.splice(stackIndex, 1);\n this.seriesStack.push(idx);\n };\n \n // method: moveSeriesToBack\n // This method requires jQuery 1.4+\n // Moves the specified series canvas behind all other series canvases.\n //\n // Parameters:\n // idx - 0 based index of the series to move. This will be the index of the series\n // as it was first passed into the jqplot function.\n this.moveSeriesToBack = function (idx) {\n idx = parseInt(idx, 10);\n var stackIndex = $.inArray(idx, this.seriesStack);\n // if already in back, return\n if (stackIndex == 0 || stackIndex == -1) {\n return;\n }\n var opidx = this.seriesStack[0];\n var serelem = this.series[idx].canvas._elem.detach();\n var shadelem = this.series[idx].shadowCanvas._elem.detach();\n this.series[opidx].shadowCanvas._elem.before(shadelem);\n this.series[opidx].canvas._elem.before(serelem);\n this.previousSeriesStack = this.seriesStack.slice(0);\n this.seriesStack.splice(stackIndex, 1);\n this.seriesStack.unshift(idx);\n };\n \n // method: restorePreviousSeriesOrder\n // This method requires jQuery 1.4+\n // Restore the series canvas order to its previous state.\n // Useful to put a series back where it belongs after moving\n // it to the front.\n this.restorePreviousSeriesOrder = function () {\n var i, j, serelem, shadelem, temp, move, keep;\n // if no change, return.\n if (this.seriesStack == this.previousSeriesStack) {\n return;\n }\n for (i=1; i<this.previousSeriesStack.length; i++) {\n move = this.previousSeriesStack[i];\n keep = this.previousSeriesStack[i-1];\n serelem = this.series[move].canvas._elem.detach();\n shadelem = this.series[move].shadowCanvas._elem.detach();\n this.series[keep].shadowCanvas._elem.after(shadelem);\n this.series[keep].canvas._elem.after(serelem);\n }\n temp = this.seriesStack.slice(0);\n this.seriesStack = this.previousSeriesStack.slice(0);\n this.previousSeriesStack = temp;\n };\n \n // method: restoreOriginalSeriesOrder\n // This method requires jQuery 1.4+\n // Restore the series canvas order to its original order\n // when the plot was created.\n this.restoreOriginalSeriesOrder = function () {\n var i, j, arr=[], serelem, shadelem;\n for (i=0; i<this.series.length; i++) {\n arr.push(i);\n }\n if (this.seriesStack == arr) {\n return;\n }\n this.previousSeriesStack = this.seriesStack.slice(0);\n this.seriesStack = arr;\n for (i=1; i<this.seriesStack.length; i++) {\n serelem = this.series[i].canvas._elem.detach();\n shadelem = this.series[i].shadowCanvas._elem.detach();\n this.series[i-1].shadowCanvas._elem.after(shadelem);\n this.series[i-1].canvas._elem.after(serelem);\n }\n };\n \n this.activateTheme = function (name) {\n this.themeEngine.activate(this, name);\n };\n }\n \n \n // conpute a highlight color or array of highlight colors from given colors.\n $.jqplot.computeHighlightColors = function(colors) {\n var ret;\n if ($.isArray(colors)) {\n ret = [];\n for (var i=0; i<colors.length; i++){\n var rgba = $.jqplot.getColorComponents(colors[i]);\n var newrgb = [rgba[0], rgba[1], rgba[2]];\n var sum = newrgb[0] + newrgb[1] + newrgb[2];\n for (var j=0; j<3; j++) {\n // when darkening, lowest color component can be is 60.\n newrgb[j] = (sum > 660) ? newrgb[j] * 0.85 : 0.73 * newrgb[j] + 90;\n newrgb[j] = parseInt(newrgb[j], 10);\n (newrgb[j] > 255) ? 255 : newrgb[j];\n }\n // newrgb[3] = (rgba[3] > 0.4) ? rgba[3] * 0.4 : rgba[3] * 1.5;\n // newrgb[3] = (rgba[3] > 0.5) ? 0.8 * rgba[3] - .1 : rgba[3] + 0.2;\n newrgb[3] = 0.3 + 0.35 * rgba[3];\n ret.push('rgba('+newrgb[0]+','+newrgb[1]+','+newrgb[2]+','+newrgb[3]+')');\n }\n }\n else {\n var rgba = $.jqplot.getColorComponents(colors);\n var newrgb = [rgba[0], rgba[1], rgba[2]];\n var sum = newrgb[0] + newrgb[1] + newrgb[2];\n for (var j=0; j<3; j++) {\n // when darkening, lowest color component can be is 60.\n // newrgb[j] = (sum > 570) ? newrgb[j] * 0.8 : newrgb[j] + 0.3 * (255 - newrgb[j]);\n // newrgb[j] = parseInt(newrgb[j], 10);\n newrgb[j] = (sum > 660) ? newrgb[j] * 0.85 : 0.73 * newrgb[j] + 90;\n newrgb[j] = parseInt(newrgb[j], 10);\n (newrgb[j] > 255) ? 255 : newrgb[j];\n }\n // newrgb[3] = (rgba[3] > 0.4) ? rgba[3] * 0.4 : rgba[3] * 1.5;\n // newrgb[3] = (rgba[3] > 0.5) ? 0.8 * rgba[3] - .1 : rgba[3] + 0.2;\n newrgb[3] = 0.3 + 0.35 * rgba[3];\n ret = 'rgba('+newrgb[0]+','+newrgb[1]+','+newrgb[2]+','+newrgb[3]+')';\n }\n return ret;\n };\n \n $.jqplot.ColorGenerator = function(colors) {\n colors = colors || $.jqplot.config.defaultColors;\n var idx = 0;\n \n this.next = function () { \n if (idx < colors.length) {\n return colors[idx++];\n }\n else {\n idx = 0;\n return colors[idx++];\n }\n };\n \n this.previous = function () { \n if (idx > 0) {\n return colors[idx--];\n }\n else {\n idx = colors.length-1;\n return colors[idx];\n }\n };\n \n // get a color by index without advancing pointer.\n this.get = function(i) {\n var idx = i - colors.length * Math.floor(i/colors.length);\n return colors[idx];\n };\n \n this.setColors = function(c) {\n colors = c;\n };\n \n this.reset = function() {\n idx = 0;\n };\n\n this.getIndex = function() {\n return idx;\n };\n\n this.setIndex = function(index) {\n idx = index;\n };\n };\n\n // convert a hex color string to rgb string.\n // h - 3 or 6 character hex string, with or without leading #\n // a - optional alpha\n $.jqplot.hex2rgb = function(h, a) {\n h = h.replace('#', '');\n if (h.length == 3) {\n h = h.charAt(0)+h.charAt(0)+h.charAt(1)+h.charAt(1)+h.charAt(2)+h.charAt(2);\n }\n var rgb;\n rgb = 'rgba('+parseInt(h.slice(0,2), 16)+', '+parseInt(h.slice(2,4), 16)+', '+parseInt(h.slice(4,6), 16);\n if (a) {\n rgb += ', '+a;\n }\n rgb += ')';\n return rgb;\n };\n \n // convert an rgb color spec to a hex spec. ignore any alpha specification.\n $.jqplot.rgb2hex = function(s) {\n var pat = /rgba?\\( *([0-9]{1,3}\\.?[0-9]*%?) *, *([0-9]{1,3}\\.?[0-9]*%?) *, *([0-9]{1,3}\\.?[0-9]*%?) *(?:, *[0-9.]*)?\\)/;\n var m = s.match(pat);\n var h = '#';\n for (var i=1; i<4; i++) {\n var temp;\n if (m[i].search(/%/) != -1) {\n temp = parseInt(255*m[i]/100, 10).toString(16);\n if (temp.length == 1) {\n temp = '0'+temp;\n }\n }\n else {\n temp = parseInt(m[i], 10).toString(16);\n if (temp.length == 1) {\n temp = '0'+temp;\n }\n }\n h += temp;\n }\n return h;\n };\n \n // given a css color spec, return an rgb css color spec\n $.jqplot.normalize2rgb = function(s, a) {\n if (s.search(/^ *rgba?\\(/) != -1) {\n return s; \n }\n else if (s.search(/^ *#?[0-9a-fA-F]?[0-9a-fA-F]/) != -1) {\n return $.jqplot.hex2rgb(s, a);\n }\n else {\n throw new Error('Invalid color spec');\n }\n };\n \n // extract the r, g, b, a color components out of a css color spec.\n $.jqplot.getColorComponents = function(s) {\n // check to see if a color keyword.\n s = $.jqplot.colorKeywordMap[s] || s;\n var rgb = $.jqplot.normalize2rgb(s);\n var pat = /rgba?\\( *([0-9]{1,3}\\.?[0-9]*%?) *, *([0-9]{1,3}\\.?[0-9]*%?) *, *([0-9]{1,3}\\.?[0-9]*%?) *,? *([0-9.]* *)?\\)/;\n var m = rgb.match(pat);\n var ret = [];\n for (var i=1; i<4; i++) {\n if (m[i].search(/%/) != -1) {\n ret[i-1] = parseInt(255*m[i]/100, 10);\n }\n else {\n ret[i-1] = parseInt(m[i], 10);\n }\n }\n ret[3] = parseFloat(m[4]) ? parseFloat(m[4]) : 1.0;\n return ret;\n };\n \n $.jqplot.colorKeywordMap = {\n aliceblue: 'rgb(240, 248, 255)',\n antiquewhite: 'rgb(250, 235, 215)',\n aqua: 'rgb( 0, 255, 255)',\n aquamarine: 'rgb(127, 255, 212)',\n azure: 'rgb(240, 255, 255)',\n beige: 'rgb(245, 245, 220)',\n bisque: 'rgb(255, 228, 196)',\n black: 'rgb( 0, 0, 0)',\n blanchedalmond: 'rgb(255, 235, 205)',\n blue: 'rgb( 0, 0, 255)',\n blueviolet: 'rgb(138, 43, 226)',\n brown: 'rgb(165, 42, 42)',\n burlywood: 'rgb(222, 184, 135)',\n cadetblue: 'rgb( 95, 158, 160)',\n chartreuse: 'rgb(127, 255, 0)',\n chocolate: 'rgb(210, 105, 30)',\n coral: 'rgb(255, 127, 80)',\n cornflowerblue: 'rgb(100, 149, 237)',\n cornsilk: 'rgb(255, 248, 220)',\n crimson: 'rgb(220, 20, 60)',\n cyan: 'rgb( 0, 255, 255)',\n darkblue: 'rgb( 0, 0, 139)',\n darkcyan: 'rgb( 0, 139, 139)',\n darkgoldenrod: 'rgb(184, 134, 11)',\n darkgray: 'rgb(169, 169, 169)',\n darkgreen: 'rgb( 0, 100, 0)',\n darkgrey: 'rgb(169, 169, 169)',\n darkkhaki: 'rgb(189, 183, 107)',\n darkmagenta: 'rgb(139, 0, 139)',\n darkolivegreen: 'rgb( 85, 107, 47)',\n darkorange: 'rgb(255, 140, 0)',\n darkorchid: 'rgb(153, 50, 204)',\n darkred: 'rgb(139, 0, 0)',\n darksalmon: 'rgb(233, 150, 122)',\n darkseagreen: 'rgb(143, 188, 143)',\n darkslateblue: 'rgb( 72, 61, 139)',\n darkslategray: 'rgb( 47, 79, 79)',\n darkslategrey: 'rgb( 47, 79, 79)',\n darkturquoise: 'rgb( 0, 206, 209)',\n darkviolet: 'rgb(148, 0, 211)',\n deeppink: 'rgb(255, 20, 147)',\n deepskyblue: 'rgb( 0, 191, 255)',\n dimgray: 'rgb(105, 105, 105)',\n dimgrey: 'rgb(105, 105, 105)',\n dodgerblue: 'rgb( 30, 144, 255)',\n firebrick: 'rgb(178, 34, 34)',\n floralwhite: 'rgb(255, 250, 240)',\n forestgreen: 'rgb( 34, 139, 34)',\n fuchsia: 'rgb(255, 0, 255)',\n gainsboro: 'rgb(220, 220, 220)',\n ghostwhite: 'rgb(248, 248, 255)',\n gold: 'rgb(255, 215, 0)',\n goldenrod: 'rgb(218, 165, 32)',\n gray: 'rgb(128, 128, 128)',\n grey: 'rgb(128, 128, 128)',\n green: 'rgb( 0, 128, 0)',\n greenyellow: 'rgb(173, 255, 47)',\n honeydew: 'rgb(240, 255, 240)',\n hotpink: 'rgb(255, 105, 180)',\n indianred: 'rgb(205, 92, 92)',\n indigo: 'rgb( 75, 0, 130)',\n ivory: 'rgb(255, 255, 240)',\n khaki: 'rgb(240, 230, 140)',\n lavender: 'rgb(230, 230, 250)',\n lavenderblush: 'rgb(255, 240, 245)',\n lawngreen: 'rgb(124, 252, 0)',\n lemonchiffon: 'rgb(255, 250, 205)',\n lightblue: 'rgb(173, 216, 230)',\n lightcoral: 'rgb(240, 128, 128)',\n lightcyan: 'rgb(224, 255, 255)',\n lightgoldenrodyellow: 'rgb(250, 250, 210)',\n lightgray: 'rgb(211, 211, 211)',\n lightgreen: 'rgb(144, 238, 144)',\n lightgrey: 'rgb(211, 211, 211)',\n lightpink: 'rgb(255, 182, 193)',\n lightsalmon: 'rgb(255, 160, 122)',\n lightseagreen: 'rgb( 32, 178, 170)',\n lightskyblue: 'rgb(135, 206, 250)',\n lightslategray: 'rgb(119, 136, 153)',\n lightslategrey: 'rgb(119, 136, 153)',\n lightsteelblue: 'rgb(176, 196, 222)',\n lightyellow: 'rgb(255, 255, 224)',\n lime: 'rgb( 0, 255, 0)',\n limegreen: 'rgb( 50, 205, 50)',\n linen: 'rgb(250, 240, 230)',\n magenta: 'rgb(255, 0, 255)',\n maroon: 'rgb(128, 0, 0)',\n mediumaquamarine: 'rgb(102, 205, 170)',\n mediumblue: 'rgb( 0, 0, 205)',\n mediumorchid: 'rgb(186, 85, 211)',\n mediumpurple: 'rgb(147, 112, 219)',\n mediumseagreen: 'rgb( 60, 179, 113)',\n mediumslateblue: 'rgb(123, 104, 238)',\n mediumspringgreen: 'rgb( 0, 250, 154)',\n mediumturquoise: 'rgb( 72, 209, 204)',\n mediumvioletred: 'rgb(199, 21, 133)',\n midnightblue: 'rgb( 25, 25, 112)',\n mintcream: 'rgb(245, 255, 250)',\n mistyrose: 'rgb(255, 228, 225)',\n moccasin: 'rgb(255, 228, 181)',\n navajowhite: 'rgb(255, 222, 173)',\n navy: 'rgb( 0, 0, 128)',\n oldlace: 'rgb(253, 245, 230)',\n olive: 'rgb(128, 128, 0)',\n olivedrab: 'rgb(107, 142, 35)',\n orange: 'rgb(255, 165, 0)',\n orangered: 'rgb(255, 69, 0)',\n orchid: 'rgb(218, 112, 214)',\n palegoldenrod: 'rgb(238, 232, 170)',\n palegreen: 'rgb(152, 251, 152)',\n paleturquoise: 'rgb(175, 238, 238)',\n palevioletred: 'rgb(219, 112, 147)',\n papayawhip: 'rgb(255, 239, 213)',\n peachpuff: 'rgb(255, 218, 185)',\n peru: 'rgb(205, 133, 63)',\n pink: 'rgb(255, 192, 203)',\n plum: 'rgb(221, 160, 221)',\n powderblue: 'rgb(176, 224, 230)',\n purple: 'rgb(128, 0, 128)',\n red: 'rgb(255, 0, 0)',\n rosybrown: 'rgb(188, 143, 143)',\n royalblue: 'rgb( 65, 105, 225)',\n saddlebrown: 'rgb(139, 69, 19)',\n salmon: 'rgb(250, 128, 114)',\n sandybrown: 'rgb(244, 164, 96)',\n seagreen: 'rgb( 46, 139, 87)',\n seashell: 'rgb(255, 245, 238)',\n sienna: 'rgb(160, 82, 45)',\n silver: 'rgb(192, 192, 192)',\n skyblue: 'rgb(135, 206, 235)',\n slateblue: 'rgb(106, 90, 205)',\n slategray: 'rgb(112, 128, 144)',\n slategrey: 'rgb(112, 128, 144)',\n snow: 'rgb(255, 250, 250)',\n springgreen: 'rgb( 0, 255, 127)',\n steelblue: 'rgb( 70, 130, 180)',\n tan: 'rgb(210, 180, 140)',\n teal: 'rgb( 0, 128, 128)',\n thistle: 'rgb(216, 191, 216)',\n tomato: 'rgb(255, 99, 71)',\n turquoise: 'rgb( 64, 224, 208)',\n violet: 'rgb(238, 130, 238)',\n wheat: 'rgb(245, 222, 179)',\n white: 'rgb(255, 255, 255)',\n whitesmoke: 'rgb(245, 245, 245)',\n yellow: 'rgb(255, 255, 0)',\n yellowgreen: 'rgb(154, 205, 50)'\n };\n\n \n\n\n // class: $.jqplot.AxisLabelRenderer\n // Renderer to place labels on the axes.\n $.jqplot.AxisLabelRenderer = function(options) {\n // Group: Properties\n $.jqplot.ElemContainer.call(this);\n // name of the axis associated with this tick\n this.axis;\n // prop: show\n // whether or not to show the tick (mark and label).\n this.show = true;\n // prop: label\n // The text or html for the label.\n this.label = '';\n this.fontFamily = null;\n this.fontSize = null;\n this.textColor = null;\n this._elem;\n // prop: escapeHTML\n // true to escape HTML entities in the label.\n this.escapeHTML = false;\n \n $.extend(true, this, options);\n };\n \n $.jqplot.AxisLabelRenderer.prototype = new $.jqplot.ElemContainer();\n $.jqplot.AxisLabelRenderer.prototype.constructor = $.jqplot.AxisLabelRenderer;\n \n $.jqplot.AxisLabelRenderer.prototype.init = function(options) {\n $.extend(true, this, options);\n };\n \n $.jqplot.AxisLabelRenderer.prototype.draw = function(ctx, plot) {\n // Memory Leaks patch\n if (this._elem) {\n this._elem.emptyForce();\n this._elem = null;\n }\n\n this._elem = $('<div style=\"position:absolute;\" class=\"jqplot-'+this.axis+'-label\"></div>');\n \n if (Number(this.label)) {\n this._elem.css('white-space', 'nowrap');\n }\n \n if (!this.escapeHTML) {\n this._elem.html(this.label);\n }\n else {\n this._elem.text(this.label);\n }\n if (this.fontFamily) {\n this._elem.css('font-family', this.fontFamily);\n }\n if (this.fontSize) {\n this._elem.css('font-size', this.fontSize);\n }\n if (this.textColor) {\n this._elem.css('color', this.textColor);\n }\n \n return this._elem;\n };\n \n $.jqplot.AxisLabelRenderer.prototype.pack = function() {\n };\n\n // class: $.jqplot.AxisTickRenderer\n // A \"tick\" object showing the value of a tick/gridline on the plot.\n $.jqplot.AxisTickRenderer = function(options) {\n // Group: Properties\n $.jqplot.ElemContainer.call(this);\n // prop: mark\n // tick mark on the axis. One of 'inside', 'outside', 'cross', '' or null.\n this.mark = 'outside';\n // name of the axis associated with this tick\n this.axis;\n // prop: showMark\n // whether or not to show the mark on the axis.\n this.showMark = true;\n // prop: showGridline\n // whether or not to draw the gridline on the grid at this tick.\n this.showGridline = true;\n // prop: isMinorTick\n // if this is a minor tick.\n this.isMinorTick = false;\n // prop: size\n // Length of the tick beyond the grid in pixels.\n // DEPRECATED: This has been superceeded by markSize\n this.size = 4;\n // prop: markSize\n // Length of the tick marks in pixels. For 'cross' style, length\n // will be stoked above and below axis, so total length will be twice this.\n this.markSize = 6;\n // prop: show\n // whether or not to show the tick (mark and label).\n // Setting this to false requires more testing. It is recommended\n // to set showLabel and showMark to false instead.\n this.show = true;\n // prop: showLabel\n // whether or not to show the label.\n this.showLabel = true;\n this.label = null;\n this.value = null;\n this._styles = {};\n // prop: formatter\n // A class of a formatter for the tick text. sprintf by default.\n this.formatter = $.jqplot.DefaultTickFormatter;\n // prop: prefix\n // String to prepend to the tick label.\n // Prefix is prepended to the formatted tick label.\n this.prefix = '';\n // prop: suffix\n // String to append to the tick label.\n // Suffix is appended to the formatted tick label.\n this.suffix = '';\n // prop: formatString\n // string passed to the formatter.\n this.formatString = '';\n // prop: fontFamily\n // css spec for the font-family css attribute.\n this.fontFamily;\n // prop: fontSize\n // css spec for the font-size css attribute.\n this.fontSize;\n // prop: textColor\n // css spec for the color attribute.\n this.textColor;\n // prop: escapeHTML\n // true to escape HTML entities in the label.\n this.escapeHTML = false;\n this._elem;\n this._breakTick = false;\n \n $.extend(true, this, options);\n };\n \n $.jqplot.AxisTickRenderer.prototype.init = function(options) {\n $.extend(true, this, options);\n };\n \n $.jqplot.AxisTickRenderer.prototype = new $.jqplot.ElemContainer();\n $.jqplot.AxisTickRenderer.prototype.constructor = $.jqplot.AxisTickRenderer;\n \n $.jqplot.AxisTickRenderer.prototype.setTick = function(value, axisName, isMinor) {\n this.value = value;\n this.axis = axisName;\n if (isMinor) {\n this.isMinorTick = true;\n }\n return this;\n };\n \n $.jqplot.AxisTickRenderer.prototype.draw = function() {\n if (this.label === null) {\n this.label = this.prefix + this.formatter(this.formatString, this.value) + this.suffix;\n }\n var style = {position: 'absolute'};\n if (Number(this.label)) {\n style['whitSpace'] = 'nowrap';\n }\n \n // Memory Leaks patch\n if (this._elem) {\n this._elem.emptyForce();\n this._elem = null;\n }\n\n this._elem = $(document.createElement('div'));\n this._elem.addClass(\"jqplot-\"+this.axis+\"-tick\");\n \n if (!this.escapeHTML) {\n this._elem.html(this.label);\n }\n else {\n this._elem.text(this.label);\n }\n \n this._elem.css(style);\n\n for (var s in this._styles) {\n this._elem.css(s, this._styles[s]);\n }\n if (this.fontFamily) {\n this._elem.css('font-family', this.fontFamily);\n }\n if (this.fontSize) {\n this._elem.css('font-size', this.fontSize);\n }\n if (this.textColor) {\n this._elem.css('color', this.textColor);\n }\n if (this._breakTick) {\n this._elem.addClass('jqplot-breakTick');\n }\n \n return this._elem;\n };\n \n $.jqplot.DefaultTickFormatter = function (format, val) {\n if (typeof val == 'number') {\n if (!format) {\n format = $.jqplot.config.defaultTickFormatString;\n }\n return $.jqplot.sprintf(format, val);\n }\n else {\n return String(val);\n }\n };\n \n $.jqplot.PercentTickFormatter = function (format, val) {\n if (typeof val == 'number') {\n val = 100 * val;\n if (!format) {\n format = $.jqplot.config.defaultTickFormatString;\n }\n return $.jqplot.sprintf(format, val);\n }\n else {\n return String(val);\n }\n };\n \n $.jqplot.AxisTickRenderer.prototype.pack = function() {\n };\n \n // Class: $.jqplot.CanvasGridRenderer\n // The default jqPlot grid renderer, creating a grid on a canvas element.\n // The renderer has no additional options beyond the <Grid> class.\n $.jqplot.CanvasGridRenderer = function(){\n this.shadowRenderer = new $.jqplot.ShadowRenderer();\n };\n \n // called with context of Grid object\n $.jqplot.CanvasGridRenderer.prototype.init = function(options) {\n this._ctx;\n $.extend(true, this, options);\n // set the shadow renderer options\n var sopts = {lineJoin:'miter', lineCap:'round', fill:false, isarc:false, angle:this.shadowAngle, offset:this.shadowOffset, alpha:this.shadowAlpha, depth:this.shadowDepth, lineWidth:this.shadowWidth, closePath:false, strokeStyle:this.shadowColor};\n this.renderer.shadowRenderer.init(sopts);\n };\n \n // called with context of Grid.\n $.jqplot.CanvasGridRenderer.prototype.createElement = function(plot) {\n var elem;\n // Memory Leaks patch\n if (this._elem) {\n if ($.jqplot.use_excanvas && window.G_vmlCanvasManager.uninitElement !== undefined) {\n elem = this._elem.get(0);\n window.G_vmlCanvasManager.uninitElement(elem);\n elem = null;\n }\n \n this._elem.emptyForce();\n this._elem = null;\n }\n \n elem = plot.canvasManager.getCanvas();\n\n var w = this._plotDimensions.width;\n var h = this._plotDimensions.height;\n elem.width = w;\n elem.height = h;\n this._elem = $(elem);\n this._elem.addClass('jqplot-grid-canvas');\n this._elem.css({ position: 'absolute', left: 0, top: 0 });\n \n elem = plot.canvasManager.initCanvas(elem);\n\n this._top = this._offsets.top;\n this._bottom = h - this._offsets.bottom;\n this._left = this._offsets.left;\n this._right = w - this._offsets.right;\n this._width = this._right - this._left;\n this._height = this._bottom - this._top;\n // avoid memory leak\n elem = null;\n return this._elem;\n };\n \n $.jqplot.CanvasGridRenderer.prototype.draw = function() {\n this._ctx = this._elem.get(0).getContext(\"2d\");\n var ctx = this._ctx;\n var axes = this._axes;\n // Add the grid onto the grid canvas. This is the bottom most layer.\n ctx.save();\n ctx.clearRect(0, 0, this._plotDimensions.width, this._plotDimensions.height);\n ctx.fillStyle = this.backgroundColor || this.background;\n ctx.fillRect(this._left, this._top, this._width, this._height);\n \n ctx.save();\n ctx.lineJoin = 'miter';\n ctx.lineCap = 'butt';\n ctx.lineWidth = this.gridLineWidth;\n ctx.strokeStyle = this.gridLineColor;\n var b, e, s, m;\n var ax = ['xaxis', 'yaxis', 'x2axis', 'y2axis'];\n for (var i=4; i>0; i--) {\n var name = ax[i-1];\n var axis = axes[name];\n var ticks = axis._ticks;\n var numticks = ticks.length;\n if (axis.show) {\n if (axis.drawBaseline) {\n var bopts = {};\n if (axis.baselineWidth !== null) {\n bopts.lineWidth = axis.baselineWidth;\n }\n if (axis.baselineColor !== null) {\n bopts.strokeStyle = axis.baselineColor;\n }\n switch (name) {\n case 'xaxis':\n drawLine (this._left, this._bottom, this._right, this._bottom, bopts);\n break;\n case 'yaxis':\n drawLine (this._left, this._bottom, this._left, this._top, bopts);\n break;\n case 'x2axis':\n drawLine (this._left, this._bottom, this._right, this._bottom, bopts);\n break;\n case 'y2axis':\n drawLine (this._right, this._bottom, this._right, this._top, bopts);\n break;\n }\n }\n for (var j=numticks; j>0; j--) {\n var t = ticks[j-1];\n if (t.show) {\n var pos = Math.round(axis.u2p(t.value)) + 0.5;\n switch (name) {\n case 'xaxis':\n // draw the grid line if we should\n if (t.showGridline && this.drawGridlines && ((!t.isMinorTick && axis.drawMajorGridlines) || (t.isMinorTick && axis.drawMinorGridlines)) ) {\n drawLine(pos, this._top, pos, this._bottom);\n }\n // draw the mark\n if (t.showMark && t.mark && ((!t.isMinorTick && axis.drawMajorTickMarks) || (t.isMinorTick && axis.drawMinorTickMarks)) ) {\n s = t.markSize;\n m = t.mark;\n var pos = Math.round(axis.u2p(t.value)) + 0.5;\n switch (m) {\n case 'outside':\n b = this._bottom;\n e = this._bottom+s;\n break;\n case 'inside':\n b = this._bottom-s;\n e = this._bottom;\n break;\n case 'cross':\n b = this._bottom-s;\n e = this._bottom+s;\n break;\n default:\n b = this._bottom;\n e = this._bottom+s;\n break;\n }\n // draw the shadow\n if (this.shadow) {\n this.renderer.shadowRenderer.draw(ctx, [[pos,b],[pos,e]], {lineCap:'butt', lineWidth:this.gridLineWidth, offset:this.gridLineWidth*0.75, depth:2, fill:false, closePath:false});\n }\n // draw the line\n drawLine(pos, b, pos, e);\n }\n break;\n case 'yaxis':\n // draw the grid line\n if (t.showGridline && this.drawGridlines && ((!t.isMinorTick && axis.drawMajorGridlines) || (t.isMinorTick && axis.drawMinorGridlines)) ) {\n drawLine(this._right, pos, this._left, pos);\n }\n // draw the mark\n if (t.showMark && t.mark && ((!t.isMinorTick && axis.drawMajorTickMarks) || (t.isMinorTick && axis.drawMinorTickMarks)) ) {\n s = t.markSize;\n m = t.mark;\n var pos = Math.round(axis.u2p(t.value)) + 0.5;\n switch (m) {\n case 'outside':\n b = this._left-s;\n e = this._left;\n break;\n case 'inside':\n b = this._left;\n e = this._left+s;\n break;\n case 'cross':\n b = this._left-s;\n e = this._left+s;\n break;\n default:\n b = this._left-s;\n e = this._left;\n break;\n }\n // draw the shadow\n if (this.shadow) {\n this.renderer.shadowRenderer.draw(ctx, [[b, pos], [e, pos]], {lineCap:'butt', lineWidth:this.gridLineWidth*1.5, offset:this.gridLineWidth*0.75, fill:false, closePath:false});\n }\n drawLine(b, pos, e, pos, {strokeStyle:axis.borderColor});\n }\n break;\n case 'x2axis':\n // draw the grid line\n if (t.showGridline && this.drawGridlines && ((!t.isMinorTick && axis.drawMajorGridlines) || (t.isMinorTick && axis.drawMinorGridlines)) ) {\n drawLine(pos, this._bottom, pos, this._top);\n }\n // draw the mark\n if (t.showMark && t.mark && ((!t.isMinorTick && axis.drawMajorTickMarks) || (t.isMinorTick && axis.drawMinorTickMarks)) ) {\n s = t.markSize;\n m = t.mark;\n var pos = Math.round(axis.u2p(t.value)) + 0.5;\n switch (m) {\n case 'outside':\n b = this._top-s;\n e = this._top;\n break;\n case 'inside':\n b = this._top;\n e = this._top+s;\n break;\n case 'cross':\n b = this._top-s;\n e = this._top+s;\n break;\n default:\n b = this._top-s;\n e = this._top;\n break;\n }\n // draw the shadow\n if (this.shadow) {\n this.renderer.shadowRenderer.draw(ctx, [[pos,b],[pos,e]], {lineCap:'butt', lineWidth:this.gridLineWidth, offset:this.gridLineWidth*0.75, depth:2, fill:false, closePath:false});\n }\n drawLine(pos, b, pos, e);\n }\n break;\n case 'y2axis':\n // draw the grid line\n if (t.showGridline && this.drawGridlines && ((!t.isMinorTick && axis.drawMajorGridlines) || (t.isMinorTick && axis.drawMinorGridlines)) ) {\n drawLine(this._left, pos, this._right, pos);\n }\n // draw the mark\n if (t.showMark && t.mark && ((!t.isMinorTick && axis.drawMajorTickMarks) || (t.isMinorTick && axis.drawMinorTickMarks)) ) {\n s = t.markSize;\n m = t.mark;\n var pos = Math.round(axis.u2p(t.value)) + 0.5;\n switch (m) {\n case 'outside':\n b = this._right;\n e = this._right+s;\n break;\n case 'inside':\n b = this._right-s;\n e = this._right;\n break;\n case 'cross':\n b = this._right-s;\n e = this._right+s;\n break;\n default:\n b = this._right;\n e = this._right+s;\n break;\n }\n // draw the shadow\n if (this.shadow) {\n this.renderer.shadowRenderer.draw(ctx, [[b, pos], [e, pos]], {lineCap:'butt', lineWidth:this.gridLineWidth*1.5, offset:this.gridLineWidth*0.75, fill:false, closePath:false});\n }\n drawLine(b, pos, e, pos, {strokeStyle:axis.borderColor});\n }\n break;\n default:\n break;\n }\n }\n }\n t = null;\n }\n axis = null;\n ticks = null;\n }\n // Now draw grid lines for additional y axes\n //////\n // TO DO: handle yMidAxis\n //////\n ax = ['y3axis', 'y4axis', 'y5axis', 'y6axis', 'y7axis', 'y8axis', 'y9axis', 'yMidAxis'];\n for (var i=7; i>0; i--) {\n var axis = axes[ax[i-1]];\n var ticks = axis._ticks;\n if (axis.show) {\n var tn = ticks[axis.numberTicks-1];\n var t0 = ticks[0];\n var left = axis.getLeft();\n var points = [[left, tn.getTop() + tn.getHeight()/2], [left, t0.getTop() + t0.getHeight()/2 + 1.0]];\n // draw the shadow\n if (this.shadow) {\n this.renderer.shadowRenderer.draw(ctx, points, {lineCap:'butt', fill:false, closePath:false});\n }\n // draw the line\n drawLine(points[0][0], points[0][1], points[1][0], points[1][1], {lineCap:'butt', strokeStyle:axis.borderColor, lineWidth:axis.borderWidth});\n // draw the tick marks\n for (var j=ticks.length; j>0; j--) {\n var t = ticks[j-1];\n s = t.markSize;\n m = t.mark;\n var pos = Math.round(axis.u2p(t.value)) + 0.5;\n if (t.showMark && t.mark) {\n switch (m) {\n case 'outside':\n b = left;\n e = left+s;\n break;\n case 'inside':\n b = left-s;\n e = left;\n break;\n case 'cross':\n b = left-s;\n e = left+s;\n break;\n default:\n b = left;\n e = left+s;\n break;\n }\n points = [[b,pos], [e,pos]];\n // draw the shadow\n if (this.shadow) {\n this.renderer.shadowRenderer.draw(ctx, points, {lineCap:'butt', lineWidth:this.gridLineWidth*1.5, offset:this.gridLineWidth*0.75, fill:false, closePath:false});\n }\n // draw the line\n drawLine(b, pos, e, pos, {strokeStyle:axis.borderColor});\n }\n t = null;\n }\n t0 = null;\n }\n axis = null;\n ticks = null;\n }\n \n ctx.restore();\n \n function drawLine(bx, by, ex, ey, opts) {\n ctx.save();\n opts = opts || {};\n if (opts.lineWidth == null || opts.lineWidth != 0){\n $.extend(true, ctx, opts);\n ctx.beginPath();\n ctx.moveTo(bx, by);\n ctx.lineTo(ex, ey);\n ctx.stroke();\n ctx.restore();\n }\n }\n \n if (this.shadow) {\n var points = [[this._left, this._bottom], [this._right, this._bottom], [this._right, this._top]];\n this.renderer.shadowRenderer.draw(ctx, points);\n }\n // Now draw border around grid. Use axis border definitions. start at\n // upper left and go clockwise.\n if (this.borderWidth != 0 && this.drawBorder) {\n drawLine (this._left, this._top, this._right, this._top, {lineCap:'round', strokeStyle:axes.x2axis.borderColor, lineWidth:axes.x2axis.borderWidth});\n drawLine (this._right, this._top, this._right, this._bottom, {lineCap:'round', strokeStyle:axes.y2axis.borderColor, lineWidth:axes.y2axis.borderWidth});\n drawLine (this._right, this._bottom, this._left, this._bottom, {lineCap:'round', strokeStyle:axes.xaxis.borderColor, lineWidth:axes.xaxis.borderWidth});\n drawLine (this._left, this._bottom, this._left, this._top, {lineCap:'round', strokeStyle:axes.yaxis.borderColor, lineWidth:axes.yaxis.borderWidth});\n }\n // ctx.lineWidth = this.borderWidth;\n // ctx.strokeStyle = this.borderColor;\n // ctx.strokeRect(this._left, this._top, this._width, this._height);\n \n ctx.restore();\n ctx = null;\n axes = null;\n };\n \n // Class: $.jqplot.DivTitleRenderer\n // The default title renderer for jqPlot. This class has no options beyond the <Title> class. \n $.jqplot.DivTitleRenderer = function() {\n };\n \n $.jqplot.DivTitleRenderer.prototype.init = function(options) {\n $.extend(true, this, options);\n };\n \n $.jqplot.DivTitleRenderer.prototype.draw = function() {\n // Memory Leaks patch\n if (this._elem) {\n this._elem.emptyForce();\n this._elem = null;\n }\n\n var r = this.renderer;\n var elem = document.createElement('div');\n this._elem = $(elem);\n this._elem.addClass('jqplot-title');\n\n if (!this.text) {\n this.show = false;\n this._elem.height(0);\n this._elem.width(0);\n }\n else if (this.text) {\n var color;\n if (this.color) {\n color = this.color;\n }\n else if (this.textColor) {\n color = this.textColor;\n }\n\n // don't trust that a stylesheet is present, set the position.\n var styles = {position:'absolute', top:'0px', left:'0px'};\n\n if (this._plotWidth) {\n styles['width'] = this._plotWidth+'px';\n }\n if (this.fontSize) {\n styles['fontSize'] = this.fontSize;\n }\n if (typeof this.textAlign === 'string') {\n styles['textAlign'] = this.textAlign;\n }\n else {\n styles['textAlign'] = 'center';\n }\n if (color) {\n styles['color'] = color;\n }\n if (this.paddingBottom) {\n styles['paddingBottom'] = this.paddingBottom;\n }\n if (this.fontFamily) {\n styles['fontFamily'] = this.fontFamily;\n }\n\n this._elem.css(styles);\n if (this.escapeHtml) {\n this._elem.text(this.text);\n }\n else {\n this._elem.html(this.text);\n }\n\n\n // styletext += (this._plotWidth) ? 'width:'+this._plotWidth+'px;' : '';\n // styletext += (this.fontSize) ? 'font-size:'+this.fontSize+';' : '';\n // styletext += (this.textAlign) ? 'text-align:'+this.textAlign+';' : 'text-align:center;';\n // styletext += (color) ? 'color:'+color+';' : '';\n // styletext += (this.paddingBottom) ? 'padding-bottom:'+this.paddingBottom+';' : '';\n // this._elem = $('<div class=\"jqplot-title\" style=\"'+styletext+'\">'+this.text+'</div>');\n // if (this.fontFamily) {\n // this._elem.css('font-family', this.fontFamily);\n // }\n }\n\n elem = null;\n \n return this._elem;\n };\n \n $.jqplot.DivTitleRenderer.prototype.pack = function() {\n // nothing to do here\n };\n \n\n var dotlen = 0.1;\n\n $.jqplot.LinePattern = function (ctx, pattern) {\n\n var defaultLinePatterns = {\n dotted: [ dotlen, $.jqplot.config.dotGapLength ],\n dashed: [ $.jqplot.config.dashLength, $.jqplot.config.gapLength ],\n solid: null\n };\n\n if (typeof pattern === 'string') {\n if (pattern[0] === '.' || pattern[0] === '-') {\n var s = pattern;\n pattern = [];\n for (var i=0, imax=s.length; i<imax; i++) {\n if (s[i] === '.') {\n pattern.push( dotlen );\n }\n else if (s[i] === '-') {\n pattern.push( $.jqplot.config.dashLength );\n }\n else {\n continue;\n }\n pattern.push( $.jqplot.config.gapLength );\n }\n }\n else {\n pattern = defaultLinePatterns[pattern];\n }\n }\n\n if (!(pattern && pattern.length)) {\n return ctx;\n }\n\n var patternIndex = 0;\n var patternDistance = pattern[0];\n var px = 0;\n var py = 0;\n var pathx0 = 0;\n var pathy0 = 0;\n\n var moveTo = function (x, y) {\n ctx.moveTo( x, y );\n px = x;\n py = y;\n pathx0 = x;\n pathy0 = y;\n };\n\n var lineTo = function (x, y) {\n var scale = ctx.lineWidth;\n var dx = x - px;\n var dy = y - py;\n var dist = Math.sqrt(dx*dx+dy*dy);\n if ((dist > 0) && (scale > 0)) {\n dx /= dist;\n dy /= dist;\n while (true) {\n var dp = scale * patternDistance;\n if (dp < dist) {\n px += dp * dx;\n py += dp * dy;\n if ((patternIndex & 1) == 0) {\n ctx.lineTo( px, py );\n }\n else {\n ctx.moveTo( px, py );\n }\n dist -= dp;\n patternIndex++;\n if (patternIndex >= pattern.length) {\n patternIndex = 0;\n }\n patternDistance = pattern[patternIndex];\n }\n else {\n px = x;\n py = y;\n if ((patternIndex & 1) == 0) {\n ctx.lineTo( px, py );\n }\n else {\n ctx.moveTo( px, py );\n }\n patternDistance -= dist / scale;\n break;\n }\n }\n }\n };\n\n var beginPath = function () {\n ctx.beginPath();\n };\n\n var closePath = function () {\n lineTo( pathx0, pathy0 );\n };\n\n return {\n moveTo: moveTo,\n lineTo: lineTo,\n beginPath: beginPath,\n closePath: closePath\n };\n };\n\n // Class: $.jqplot.LineRenderer\n // The default line renderer for jqPlot, this class has no options beyond the <Series> class.\n // Draws series as a line.\n $.jqplot.LineRenderer = function(){\n this.shapeRenderer = new $.jqplot.ShapeRenderer();\n this.shadowRenderer = new $.jqplot.ShadowRenderer();\n };\n \n // called with scope of series.\n $.jqplot.LineRenderer.prototype.init = function(options, plot) {\n // Group: Properties\n //\n options = options || {};\n this._type='line';\n this.renderer.animation = {\n show: false,\n direction: 'left',\n speed: 2500,\n _supported: true\n };\n // prop: smooth\n // True to draw a smoothed (interpolated) line through the data points\n // with automatically computed number of smoothing points.\n // Set to an integer number > 2 to specify number of smoothing points\n // to use between each data point.\n this.renderer.smooth = false; // true or a number > 2 for smoothing.\n this.renderer.tension = null; // null to auto compute or a number typically > 6. Fewer points requires higher tension.\n // prop: constrainSmoothing\n // True to use a more accurate smoothing algorithm that will\n // not overshoot any data points. False to allow overshoot but\n // produce a smoother looking line.\n this.renderer.constrainSmoothing = true;\n // this is smoothed data in grid coordinates, like gridData\n this.renderer._smoothedData = [];\n // this is smoothed data in plot units (plot coordinates), like plotData.\n this.renderer._smoothedPlotData = [];\n this.renderer._hiBandGridData = [];\n this.renderer._lowBandGridData = [];\n this.renderer._hiBandSmoothedData = [];\n this.renderer._lowBandSmoothedData = [];\n\n // prop: bandData\n // Data used to draw error bands or confidence intervals above/below a line.\n //\n // bandData can be input in 3 forms. jqPlot will figure out which is the\n // low band line and which is the high band line for all forms:\n // \n // A 2 dimensional array like [[yl1, yl2, ...], [yu1, yu2, ...]] where\n // [yl1, yl2, ...] are y values of the lower line and\n // [yu1, yu2, ...] are y values of the upper line.\n // In this case there must be the same number of y data points as data points\n // in the series and the bands will inherit the x values of the series.\n //\n // A 2 dimensional array like [[[xl1, yl1], [xl2, yl2], ...], [[xh1, yh1], [xh2, yh2], ...]]\n // where [xl1, yl1] are x,y data points for the lower line and\n // [xh1, yh1] are x,y data points for the high line.\n // x values do not have to correspond to the x values of the series and can\n // be of any arbitrary length.\n //\n // Can be of form [[yl1, yu1], [yl2, yu2], [yl3, yu3], ...] where\n // there must be 3 or more arrays and there must be the same number of arrays\n // as there are data points in the series. In this case, \n // [yl1, yu1] specifies the lower and upper y values for the 1st\n // data point and so on. The bands will inherit the x\n // values from the series.\n this.renderer.bandData = [];\n\n // Group: bands\n // Banding around line, e.g error bands or confidence intervals.\n this.renderer.bands = {\n // prop: show\n // true to show the bands. If bandData or interval is\n // supplied, show will be set to true by default.\n show: false,\n hiData: [],\n lowData: [],\n // prop: color\n // color of lines at top and bottom of bands [default: series color].\n color: this.color,\n // prop: showLines\n // True to show lines at top and bottom of bands [default: false].\n showLines: false,\n // prop: fill\n // True to fill area between bands [default: true].\n fill: true,\n // prop: fillColor\n // css color spec for filled area. [default: series color].\n fillColor: null,\n _min: null,\n _max: null,\n // prop: interval\n // User specified interval above and below line for bands [default: '3%''].\n // Can be a value like 3 or a string like '3%' \n // or an upper/lower array like [1, -2] or ['2%', '-1.5%']\n interval: '3%'\n };\n\n\n var lopts = {highlightMouseOver: options.highlightMouseOver, highlightMouseDown: options.highlightMouseDown, highlightColor: options.highlightColor};\n \n delete (options.highlightMouseOver);\n delete (options.highlightMouseDown);\n delete (options.highlightColor);\n \n $.extend(true, this.renderer, options);\n\n this.renderer.options = options;\n\n // if we are given some band data, and bands aren't explicity set to false in options, turn them on.\n if (this.renderer.bandData.length > 1 && (!options.bands || options.bands.show == null)) {\n this.renderer.bands.show = true;\n }\n\n // if we are given an interval, and bands aren't explicity set to false in options, turn them on.\n else if (options.bands && options.bands.show == null && options.bands.interval != null) {\n this.renderer.bands.show = true;\n }\n\n // if plot is filled, turn off bands.\n if (this.fill) {\n this.renderer.bands.show = false;\n }\n\n if (this.renderer.bands.show) {\n this.renderer.initBands.call(this, this.renderer.options, plot);\n }\n\n\n // smoothing is not compatible with stacked lines, disable\n if (this._stack) {\n this.renderer.smooth = false;\n }\n\n // set the shape renderer options\n var opts = {lineJoin:this.lineJoin, lineCap:this.lineCap, fill:this.fill, isarc:false, strokeStyle:this.color, fillStyle:this.fillColor, lineWidth:this.lineWidth, linePattern:this.linePattern, closePath:this.fill};\n this.renderer.shapeRenderer.init(opts);\n\n var shadow_offset = options.shadowOffset;\n // set the shadow renderer options\n if (shadow_offset == null) {\n // scale the shadowOffset to the width of the line.\n if (this.lineWidth > 2.5) {\n shadow_offset = 1.25 * (1 + (Math.atan((this.lineWidth/2.5))/0.785398163 - 1)*0.6);\n // var shadow_offset = this.shadowOffset;\n }\n // for skinny lines, don't make such a big shadow.\n else {\n shadow_offset = 1.25 * Math.atan((this.lineWidth/2.5))/0.785398163;\n }\n }\n \n var sopts = {lineJoin:this.lineJoin, lineCap:this.lineCap, fill:this.fill, isarc:false, angle:this.shadowAngle, offset:shadow_offset, alpha:this.shadowAlpha, depth:this.shadowDepth, lineWidth:this.lineWidth, linePattern:this.linePattern, closePath:this.fill};\n this.renderer.shadowRenderer.init(sopts);\n this._areaPoints = [];\n this._boundingBox = [[],[]];\n \n if (!this.isTrendline && this.fill || this.renderer.bands.show) {\n // Group: Properties\n // \n // prop: highlightMouseOver\n // True to highlight area on a filled plot when moused over.\n // This must be false to enable highlightMouseDown to highlight when clicking on an area on a filled plot.\n this.highlightMouseOver = true;\n // prop: highlightMouseDown\n // True to highlight when a mouse button is pressed over an area on a filled plot.\n // This will be disabled if highlightMouseOver is true.\n this.highlightMouseDown = false;\n // prop: highlightColor\n // color to use when highlighting an area on a filled plot.\n this.highlightColor = null;\n // if user has passed in highlightMouseDown option and not set highlightMouseOver, disable highlightMouseOver\n if (lopts.highlightMouseDown && lopts.highlightMouseOver == null) {\n lopts.highlightMouseOver = false;\n }\n \n $.extend(true, this, {highlightMouseOver: lopts.highlightMouseOver, highlightMouseDown: lopts.highlightMouseDown, highlightColor: lopts.highlightColor});\n \n if (!this.highlightColor) {\n var fc = (this.renderer.bands.show) ? this.renderer.bands.fillColor : this.fillColor;\n this.highlightColor = $.jqplot.computeHighlightColors(fc);\n }\n // turn off (disable) the highlighter plugin\n if (this.highlighter) {\n this.highlighter.show = false;\n }\n }\n \n if (!this.isTrendline && plot) {\n plot.plugins.lineRenderer = {};\n plot.postInitHooks.addOnce(postInit);\n plot.postDrawHooks.addOnce(postPlotDraw);\n plot.eventListenerHooks.addOnce('jqplotMouseMove', handleMove);\n plot.eventListenerHooks.addOnce('jqplotMouseDown', handleMouseDown);\n plot.eventListenerHooks.addOnce('jqplotMouseUp', handleMouseUp);\n plot.eventListenerHooks.addOnce('jqplotClick', handleClick);\n plot.eventListenerHooks.addOnce('jqplotRightClick', handleRightClick);\n }\n\n };\n\n $.jqplot.LineRenderer.prototype.initBands = function(options, plot) {\n // use bandData if no data specified in bands option\n //var bd = this.renderer.bandData;\n var bd = options.bandData || [];\n var bands = this.renderer.bands;\n bands.hiData = [];\n bands.lowData = [];\n var data = this.data;\n bands._max = null;\n bands._min = null;\n // If 2 arrays, and each array greater than 2 elements, assume it is hi and low data bands of y values.\n if (bd.length == 2) {\n // Do we have an array of x,y values?\n // like [[[1,1], [2,4], [3,3]], [[1,3], [2,6], [3,5]]]\n if ($.isArray(bd[0][0])) {\n // since an arbitrary array of points, spin through all of them to determine max and min lines.\n\n var p;\n var bdminidx = 0, bdmaxidx = 0;\n for (var i = 0, l = bd[0].length; i<l; i++) {\n p = bd[0][i];\n if ((p[1] != null && p[1] > bands._max) || bands._max == null) {\n bands._max = p[1];\n }\n if ((p[1] != null && p[1] < bands._min) || bands._min == null) {\n bands._min = p[1];\n }\n }\n for (var i = 0, l = bd[1].length; i<l; i++) {\n p = bd[1][i];\n if ((p[1] != null && p[1] > bands._max) || bands._max == null) {\n bands._max = p[1];\n bdmaxidx = 1;\n }\n if ((p[1] != null && p[1] < bands._min) || bands._min == null) {\n bands._min = p[1];\n bdminidx = 1;\n }\n }\n\n if (bdmaxidx === bdminidx) {\n bands.show = false;\n }\n\n bands.hiData = bd[bdmaxidx];\n bands.lowData = bd[bdminidx];\n }\n // else data is arrays of y values\n // like [[1,4,3], [3,6,5]]\n // must have same number of band data points as points in series\n else if (bd[0].length === data.length && bd[1].length === data.length) {\n var hi = (bd[0][0] > bd[1][0]) ? 0 : 1;\n var low = (hi) ? 0 : 1;\n for (var i=0, l=data.length; i < l; i++) {\n bands.hiData.push([data[i][0], bd[hi][i]]);\n bands.lowData.push([data[i][0], bd[low][i]]);\n }\n }\n\n // we don't have proper data array, don't show bands.\n else {\n bands.show = false;\n }\n }\n\n // if more than 2 arrays, have arrays of [ylow, yhi] values.\n // note, can't distinguish case of [[ylow, yhi], [ylow, yhi]] from [[ylow, ylow], [yhi, yhi]]\n // this is assumed to be of the latter form.\n else if (bd.length > 2 && !$.isArray(bd[0][0])) {\n var hi = (bd[0][0] > bd[0][1]) ? 0 : 1;\n var low = (hi) ? 0 : 1;\n for (var i=0, l=bd.length; i<l; i++) {\n bands.hiData.push([data[i][0], bd[i][hi]]);\n bands.lowData.push([data[i][0], bd[i][low]]);\n }\n }\n\n // don't have proper data, auto calculate\n else {\n var intrv = bands.interval;\n var a = null;\n var b = null;\n var afunc = null;\n var bfunc = null;\n\n if ($.isArray(intrv)) {\n a = intrv[0];\n b = intrv[1];\n }\n else {\n a = intrv;\n }\n\n if (isNaN(a)) {\n // we have a string\n if (a.charAt(a.length - 1) === '%') {\n afunc = 'multiply';\n a = parseFloat(a)/100 + 1;\n }\n }\n\n else {\n a = parseFloat(a);\n afunc = 'add';\n }\n\n if (b !== null && isNaN(b)) {\n // we have a string\n if (b.charAt(b.length - 1) === '%') {\n bfunc = 'multiply';\n b = parseFloat(b)/100 + 1;\n }\n }\n\n else if (b !== null) {\n b = parseFloat(b);\n bfunc = 'add';\n }\n\n if (a !== null) {\n if (b === null) {\n b = -a;\n bfunc = afunc;\n if (bfunc === 'multiply') {\n b += 2;\n }\n }\n\n // make sure a always applies to hi band.\n if (a < b) {\n var temp = a;\n a = b;\n b = temp;\n temp = afunc;\n afunc = bfunc;\n bfunc = temp;\n }\n\n for (var i=0, l = data.length; i < l; i++) {\n switch (afunc) {\n case 'add':\n bands.hiData.push([data[i][0], data[i][1] + a]);\n break;\n case 'multiply':\n bands.hiData.push([data[i][0], data[i][1] * a]);\n break;\n }\n switch (bfunc) {\n case 'add':\n bands.lowData.push([data[i][0], data[i][1] + b]);\n break;\n case 'multiply':\n bands.lowData.push([data[i][0], data[i][1] * b]);\n break;\n }\n }\n }\n\n else {\n bands.show = false;\n }\n }\n\n var hd = bands.hiData;\n var ld = bands.lowData;\n for (var i = 0, l = hd.length; i<l; i++) {\n if ((hd[i][1] != null && hd[i][1] > bands._max) || bands._max == null) {\n bands._max = hd[i][1];\n }\n }\n for (var i = 0, l = ld.length; i<l; i++) {\n if ((ld[i][1] != null && ld[i][1] < bands._min) || bands._min == null) {\n bands._min = ld[i][1];\n }\n }\n\n // one last check for proper data\n // these don't apply any more since allowing arbitrary x,y values\n // if (bands.hiData.length != bands.lowData.length) {\n // bands.show = false;\n // }\n\n // if (bands.hiData.length != this.data.length) {\n // bands.show = false;\n // }\n\n if (bands.fillColor === null) {\n var c = $.jqplot.getColorComponents(bands.color);\n // now adjust alpha to differentiate fill\n c[3] = c[3] * 0.5;\n bands.fillColor = 'rgba(' + c[0] +', '+ c[1] +', '+ c[2] +', '+ c[3] + ')';\n }\n };\n\n function getSteps (d, f) {\n return (3.4182054+f) * Math.pow(d, -0.3534992);\n }\n\n function computeSteps (d1, d2) {\n var s = Math.sqrt(Math.pow((d2[0]- d1[0]), 2) + Math.pow ((d2[1] - d1[1]), 2));\n return 5.7648 * Math.log(s) + 7.4456;\n }\n\n function tanh (x) {\n var a = (Math.exp(2*x) - 1) / (Math.exp(2*x) + 1);\n return a;\n }\n\n //////////\n // computeConstrainedSmoothedData\n // An implementation of the constrained cubic spline interpolation\n // method as presented in:\n //\n // Kruger, CJC, Constrained Cubic Spine Interpolation for Chemical Engineering Applications\n // http://www.korf.co.uk/spline.pdf\n //\n // The implementation below borrows heavily from the sample Visual Basic\n // implementation by CJC Kruger found in http://www.korf.co.uk/spline.xls\n //\n /////////\n\n // called with scope of series\n function computeConstrainedSmoothedData (gd) {\n var smooth = this.renderer.smooth;\n var dim = this.canvas.getWidth();\n var xp = this._xaxis.series_p2u;\n var yp = this._yaxis.series_p2u; \n var steps =null;\n var _steps = null;\n var dist = gd.length/dim;\n var _smoothedData = [];\n var _smoothedPlotData = [];\n\n if (!isNaN(parseFloat(smooth))) {\n steps = parseFloat(smooth);\n }\n else {\n steps = getSteps(dist, 0.5);\n }\n\n var yy = [];\n var xx = [];\n\n for (var i=0, l = gd.length; i<l; i++) {\n yy.push(gd[i][1]);\n xx.push(gd[i][0]);\n }\n\n function dxx(x1, x0) {\n if (x1 - x0 == 0) {\n return Math.pow(10,10);\n }\n else {\n return x1 - x0;\n }\n }\n\n var A, B, C, D;\n // loop through each line segment. Have # points - 1 line segments. Nmber segments starting at 1.\n var nmax = gd.length - 1;\n for (var num = 1, gdl = gd.length; num<gdl; num++) {\n var gxx = [];\n var ggxx = [];\n // point at each end of segment.\n for (var j = 0; j < 2; j++) {\n var i = num - 1 + j; // point number, 0 to # points.\n\n if (i == 0 || i == nmax) {\n gxx[j] = Math.pow(10, 10);\n }\n else if (yy[i+1] - yy[i] == 0 || yy[i] - yy[i-1] == 0) {\n gxx[j] = 0;\n }\n else if (((xx[i+1] - xx[i]) / (yy[i+1] - yy[i]) + (xx[i] - xx[i-1]) / (yy[i] - yy[i-1])) == 0 ) {\n gxx[j] = 0;\n }\n else if ( (yy[i+1] - yy[i]) * (yy[i] - yy[i-1]) < 0 ) {\n gxx[j] = 0;\n }\n\n else {\n gxx[j] = 2 / (dxx(xx[i + 1], xx[i]) / (yy[i + 1] - yy[i]) + dxx(xx[i], xx[i - 1]) / (yy[i] - yy[i - 1]));\n }\n }\n\n // Reset first derivative (slope) at first and last point\n if (num == 1) {\n // First point has 0 2nd derivative\n gxx[0] = 3 / 2 * (yy[1] - yy[0]) / dxx(xx[1], xx[0]) - gxx[1] / 2;\n }\n else if (num == nmax) {\n // Last point has 0 2nd derivative\n gxx[1] = 3 / 2 * (yy[nmax] - yy[nmax - 1]) / dxx(xx[nmax], xx[nmax - 1]) - gxx[0] / 2;\n } \n\n // Calc second derivative at points\n ggxx[0] = -2 * (gxx[1] + 2 * gxx[0]) / dxx(xx[num], xx[num - 1]) + 6 * (yy[num] - yy[num - 1]) / Math.pow(dxx(xx[num], xx[num - 1]), 2);\n ggxx[1] = 2 * (2 * gxx[1] + gxx[0]) / dxx(xx[num], xx[num - 1]) - 6 * (yy[num] - yy[num - 1]) / Math.pow(dxx(xx[num], xx[num - 1]), 2);\n\n // Calc constants for cubic interpolation\n D = 1 / 6 * (ggxx[1] - ggxx[0]) / dxx(xx[num], xx[num - 1]);\n C = 1 / 2 * (xx[num] * ggxx[0] - xx[num - 1] * ggxx[1]) / dxx(xx[num], xx[num - 1]);\n B = (yy[num] - yy[num - 1] - C * (Math.pow(xx[num], 2) - Math.pow(xx[num - 1], 2)) - D * (Math.pow(xx[num], 3) - Math.pow(xx[num - 1], 3))) / dxx(xx[num], xx[num - 1]);\n A = yy[num - 1] - B * xx[num - 1] - C * Math.pow(xx[num - 1], 2) - D * Math.pow(xx[num - 1], 3);\n\n var increment = (xx[num] - xx[num - 1]) / steps;\n var temp, tempx;\n\n for (var j = 0, l = steps; j < l; j++) {\n temp = [];\n tempx = xx[num - 1] + j * increment;\n temp.push(tempx);\n temp.push(A + B * tempx + C * Math.pow(tempx, 2) + D * Math.pow(tempx, 3));\n _smoothedData.push(temp);\n _smoothedPlotData.push([xp(temp[0]), yp(temp[1])]);\n }\n }\n\n _smoothedData.push(gd[i]);\n _smoothedPlotData.push([xp(gd[i][0]), yp(gd[i][1])]);\n\n return [_smoothedData, _smoothedPlotData];\n }\n\n ///////\n // computeHermiteSmoothedData\n // A hermite spline smoothing of the plot data.\n // This implementation is derived from the one posted\n // by krypin on the jqplot-users mailing list:\n //\n // http://groups.google.com/group/jqplot-users/browse_thread/thread/748be6a445723cea?pli=1\n //\n // with a blog post:\n //\n // http://blog.statscollector.com/a-plugin-renderer-for-jqplot-to-draw-a-hermite-spline/\n //\n // and download of the original plugin:\n //\n // http://blog.statscollector.com/wp-content/uploads/2010/02/jqplot.hermiteSplineRenderer.js\n //////////\n\n // called with scope of series\n function computeHermiteSmoothedData (gd) {\n var smooth = this.renderer.smooth;\n var tension = this.renderer.tension;\n var dim = this.canvas.getWidth();\n var xp = this._xaxis.series_p2u;\n var yp = this._yaxis.series_p2u; \n var steps =null;\n var _steps = null;\n var a = null;\n var a1 = null;\n var a2 = null;\n var slope = null;\n var slope2 = null;\n var temp = null;\n var t, s, h1, h2, h3, h4;\n var TiX, TiY, Ti1X, Ti1Y;\n var pX, pY, p;\n var sd = [];\n var spd = [];\n var dist = gd.length/dim;\n var min, max, stretch, scale, shift;\n var _smoothedData = [];\n var _smoothedPlotData = [];\n if (!isNaN(parseFloat(smooth))) {\n steps = parseFloat(smooth);\n }\n else {\n steps = getSteps(dist, 0.5);\n }\n if (!isNaN(parseFloat(tension))) {\n tension = parseFloat(tension);\n }\n\n for (var i=0, l = gd.length-1; i < l; i++) {\n\n if (tension === null) {\n slope = Math.abs((gd[i+1][1] - gd[i][1]) / (gd[i+1][0] - gd[i][0]));\n\n min = 0.3;\n max = 0.6;\n stretch = (max - min)/2.0;\n scale = 2.5;\n shift = -1.4;\n\n temp = slope/scale + shift;\n\n a1 = stretch * tanh(temp) - stretch * tanh(shift) + min;\n\n // if have both left and right line segments, will use minimum tension. \n if (i > 0) {\n slope2 = Math.abs((gd[i][1] - gd[i-1][1]) / (gd[i][0] - gd[i-1][0]));\n }\n temp = slope2/scale + shift;\n\n a2 = stretch * tanh(temp) - stretch * tanh(shift) + min;\n\n a = (a1 + a2)/2.0;\n\n }\n else {\n a = tension;\n }\n for (t=0; t < steps; t++) {\n s = t / steps;\n h1 = (1 + 2*s)*Math.pow((1-s),2);\n h2 = s*Math.pow((1-s),2);\n h3 = Math.pow(s,2)*(3-2*s);\n h4 = Math.pow(s,2)*(s-1); \n \n if (gd[i-1]) { \n TiX = a * (gd[i+1][0] - gd[i-1][0]); \n TiY = a * (gd[i+1][1] - gd[i-1][1]);\n } else {\n TiX = a * (gd[i+1][0] - gd[i][0]); \n TiY = a * (gd[i+1][1] - gd[i][1]); \n }\n if (gd[i+2]) { \n Ti1X = a * (gd[i+2][0] - gd[i][0]); \n Ti1Y = a * (gd[i+2][1] - gd[i][1]);\n } else {\n Ti1X = a * (gd[i+1][0] - gd[i][0]); \n Ti1Y = a * (gd[i+1][1] - gd[i][1]); \n }\n \n pX = h1*gd[i][0] + h3*gd[i+1][0] + h2*TiX + h4*Ti1X;\n pY = h1*gd[i][1] + h3*gd[i+1][1] + h2*TiY + h4*Ti1Y;\n p = [pX, pY];\n\n _smoothedData.push(p);\n _smoothedPlotData.push([xp(pX), yp(pY)]);\n }\n }\n _smoothedData.push(gd[l]);\n _smoothedPlotData.push([xp(gd[l][0]), yp(gd[l][1])]);\n\n return [_smoothedData, _smoothedPlotData];\n }\n \n // setGridData\n // converts the user data values to grid coordinates and stores them\n // in the gridData array.\n // Called with scope of a series.\n $.jqplot.LineRenderer.prototype.setGridData = function(plot) {\n // recalculate the grid data\n var xp = this._xaxis.series_u2p;\n var yp = this._yaxis.series_u2p;\n var data = this._plotData;\n var pdata = this._prevPlotData;\n this.gridData = [];\n this._prevGridData = [];\n this.renderer._smoothedData = [];\n this.renderer._smoothedPlotData = [];\n this.renderer._hiBandGridData = [];\n this.renderer._lowBandGridData = [];\n this.renderer._hiBandSmoothedData = [];\n this.renderer._lowBandSmoothedData = [];\n var bands = this.renderer.bands;\n var hasNull = false;\n for (var i=0, l=data.length; i < l; i++) {\n // if not a line series or if no nulls in data, push the converted point onto the array.\n if (data[i][0] != null && data[i][1] != null) {\n this.gridData.push([xp.call(this._xaxis, data[i][0]), yp.call(this._yaxis, data[i][1])]);\n }\n // else if there is a null, preserve it.\n else if (data[i][0] == null) {\n hasNull = true;\n this.gridData.push([null, yp.call(this._yaxis, data[i][1])]);\n }\n else if (data[i][1] == null) {\n hasNull = true;\n this.gridData.push([xp.call(this._xaxis, data[i][0]), null]);\n }\n // if not a line series or if no nulls in data, push the converted point onto the array.\n if (pdata[i] != null && pdata[i][0] != null && pdata[i][1] != null) {\n this._prevGridData.push([xp.call(this._xaxis, pdata[i][0]), yp.call(this._yaxis, pdata[i][1])]);\n }\n // else if there is a null, preserve it.\n else if (pdata[i] != null && pdata[i][0] == null) {\n this._prevGridData.push([null, yp.call(this._yaxis, pdata[i][1])]);\n } \n else if (pdata[i] != null && pdata[i][0] != null && pdata[i][1] == null) {\n this._prevGridData.push([xp.call(this._xaxis, pdata[i][0]), null]);\n }\n }\n\n // don't do smoothing or bands on broken lines.\n if (hasNull) {\n this.renderer.smooth = false;\n if (this._type === 'line') {\n bands.show = false;\n }\n }\n\n if (this._type === 'line' && bands.show) {\n for (var i=0, l=bands.hiData.length; i<l; i++) {\n this.renderer._hiBandGridData.push([xp.call(this._xaxis, bands.hiData[i][0]), yp.call(this._yaxis, bands.hiData[i][1])]);\n }\n for (var i=0, l=bands.lowData.length; i<l; i++) {\n this.renderer._lowBandGridData.push([xp.call(this._xaxis, bands.lowData[i][0]), yp.call(this._yaxis, bands.lowData[i][1])]);\n }\n }\n\n // calculate smoothed data if enough points and no nulls\n if (this._type === 'line' && this.renderer.smooth && this.gridData.length > 2) {\n var ret;\n if (this.renderer.constrainSmoothing) {\n ret = computeConstrainedSmoothedData.call(this, this.gridData);\n this.renderer._smoothedData = ret[0];\n this.renderer._smoothedPlotData = ret[1];\n\n if (bands.show) {\n ret = computeConstrainedSmoothedData.call(this, this.renderer._hiBandGridData);\n this.renderer._hiBandSmoothedData = ret[0];\n ret = computeConstrainedSmoothedData.call(this, this.renderer._lowBandGridData);\n this.renderer._lowBandSmoothedData = ret[0];\n }\n\n ret = null;\n }\n else {\n ret = computeHermiteSmoothedData.call(this, this.gridData);\n this.renderer._smoothedData = ret[0];\n this.renderer._smoothedPlotData = ret[1];\n\n if (bands.show) {\n ret = computeHermiteSmoothedData.call(this, this.renderer._hiBandGridData);\n this.renderer._hiBandSmoothedData = ret[0];\n ret = computeHermiteSmoothedData.call(this, this.renderer._lowBandGridData);\n this.renderer._lowBandSmoothedData = ret[0];\n }\n\n ret = null;\n }\n }\n };\n \n // makeGridData\n // converts any arbitrary data values to grid coordinates and\n // returns them. This method exists so that plugins can use a series'\n // linerenderer to generate grid data points without overwriting the\n // grid data associated with that series.\n // Called with scope of a series.\n $.jqplot.LineRenderer.prototype.makeGridData = function(data, plot) {\n // recalculate the grid data\n var xp = this._xaxis.series_u2p;\n var yp = this._yaxis.series_u2p;\n var gd = [];\n var pgd = [];\n this.renderer._smoothedData = [];\n this.renderer._smoothedPlotData = [];\n this.renderer._hiBandGridData = [];\n this.renderer._lowBandGridData = [];\n this.renderer._hiBandSmoothedData = [];\n this.renderer._lowBandSmoothedData = [];\n var bands = this.renderer.bands;\n var hasNull = false;\n for (var i=0; i<data.length; i++) {\n // if not a line series or if no nulls in data, push the converted point onto the array.\n if (data[i][0] != null && data[i][1] != null) {\n gd.push([xp.call(this._xaxis, data[i][0]), yp.call(this._yaxis, data[i][1])]);\n }\n // else if there is a null, preserve it.\n else if (data[i][0] == null) {\n hasNull = true;\n gd.push([null, yp.call(this._yaxis, data[i][1])]);\n }\n else if (data[i][1] == null) {\n hasNull = true;\n gd.push([xp.call(this._xaxis, data[i][0]), null]);\n }\n }\n\n // don't do smoothing or bands on broken lines.\n if (hasNull) {\n this.renderer.smooth = false;\n if (this._type === 'line') {\n bands.show = false;\n }\n }\n\n if (this._type === 'line' && bands.show) {\n for (var i=0, l=bands.hiData.length; i<l; i++) {\n this.renderer._hiBandGridData.push([xp.call(this._xaxis, bands.hiData[i][0]), yp.call(this._yaxis, bands.hiData[i][1])]);\n }\n for (var i=0, l=bands.lowData.length; i<l; i++) {\n this.renderer._lowBandGridData.push([xp.call(this._xaxis, bands.lowData[i][0]), yp.call(this._yaxis, bands.lowData[i][1])]);\n }\n }\n\n if (this._type === 'line' && this.renderer.smooth && gd.length > 2) {\n var ret;\n if (this.renderer.constrainSmoothing) {\n ret = computeConstrainedSmoothedData.call(this, gd);\n this.renderer._smoothedData = ret[0];\n this.renderer._smoothedPlotData = ret[1];\n\n if (bands.show) {\n ret = computeConstrainedSmoothedData.call(this, this.renderer._hiBandGridData);\n this.renderer._hiBandSmoothedData = ret[0];\n ret = computeConstrainedSmoothedData.call(this, this.renderer._lowBandGridData);\n this.renderer._lowBandSmoothedData = ret[0];\n }\n\n ret = null;\n }\n else {\n ret = computeHermiteSmoothedData.call(this, gd);\n this.renderer._smoothedData = ret[0];\n this.renderer._smoothedPlotData = ret[1];\n\n if (bands.show) {\n ret = computeHermiteSmoothedData.call(this, this.renderer._hiBandGridData);\n this.renderer._hiBandSmoothedData = ret[0];\n ret = computeHermiteSmoothedData.call(this, this.renderer._lowBandGridData);\n this.renderer._lowBandSmoothedData = ret[0];\n }\n\n ret = null;\n }\n }\n return gd;\n };\n \n\n // called within scope of series.\n $.jqplot.LineRenderer.prototype.draw = function(ctx, gd, options, plot) {\n var i;\n // get a copy of the options, so we don't modify the original object.\n var opts = $.extend(true, {}, options);\n var shadow = (opts.shadow != undefined) ? opts.shadow : this.shadow;\n var showLine = (opts.showLine != undefined) ? opts.showLine : this.showLine;\n var fill = (opts.fill != undefined) ? opts.fill : this.fill;\n var fillAndStroke = (opts.fillAndStroke != undefined) ? opts.fillAndStroke : this.fillAndStroke;\n var xmin, ymin, xmax, ymax;\n ctx.save();\n if (gd.length) {\n if (showLine) {\n // if we fill, we'll have to add points to close the curve.\n if (fill) {\n if (this.fillToZero) { \n // have to break line up into shapes at axis crossings\n var negativeColor = this.negativeColor;\n if (! this.useNegativeColors) {\n negativeColor = opts.fillStyle;\n }\n var isnegative = false;\n var posfs = opts.fillStyle;\n \n // if stoking line as well as filling, get a copy of line data.\n if (fillAndStroke) {\n var fasgd = gd.slice(0);\n }\n // if not stacked, fill down to axis\n if (this.index == 0 || !this._stack) {\n \n var tempgd = [];\n var pd = (this.renderer.smooth) ? this.renderer._smoothedPlotData : this._plotData;\n this._areaPoints = [];\n var pyzero = this._yaxis.series_u2p(this.fillToValue);\n var pxzero = this._xaxis.series_u2p(this.fillToValue);\n\n opts.closePath = true;\n \n if (this.fillAxis == 'y') {\n tempgd.push([gd[0][0], pyzero]);\n this._areaPoints.push([gd[0][0], pyzero]);\n \n for (var i=0; i<gd.length-1; i++) {\n tempgd.push(gd[i]);\n this._areaPoints.push(gd[i]);\n // do we have an axis crossing?\n if (pd[i][1] * pd[i+1][1] <= 0) {\n if (pd[i][1] < 0) {\n isnegative = true;\n opts.fillStyle = negativeColor;\n }\n else {\n isnegative = false;\n opts.fillStyle = posfs;\n }\n \n var xintercept = gd[i][0] + (gd[i+1][0] - gd[i][0]) * (pyzero-gd[i][1])/(gd[i+1][1] - gd[i][1]);\n tempgd.push([xintercept, pyzero]);\n this._areaPoints.push([xintercept, pyzero]);\n // now draw this shape and shadow.\n if (shadow) {\n this.renderer.shadowRenderer.draw(ctx, tempgd, opts);\n }\n this.renderer.shapeRenderer.draw(ctx, tempgd, opts);\n // now empty temp array and continue\n tempgd = [[xintercept, pyzero]];\n // this._areaPoints = [[xintercept, pyzero]];\n } \n }\n if (pd[gd.length-1][1] < 0) {\n isnegative = true;\n opts.fillStyle = negativeColor;\n }\n else {\n isnegative = false;\n opts.fillStyle = posfs;\n }\n tempgd.push(gd[gd.length-1]);\n this._areaPoints.push(gd[gd.length-1]);\n tempgd.push([gd[gd.length-1][0], pyzero]); \n this._areaPoints.push([gd[gd.length-1][0], pyzero]); \n }\n // now draw the last area.\n if (shadow) {\n this.renderer.shadowRenderer.draw(ctx, tempgd, opts);\n }\n this.renderer.shapeRenderer.draw(ctx, tempgd, opts);\n \n \n // var gridymin = this._yaxis.series_u2p(0);\n // // IE doesn't return new length on unshift\n // gd.unshift([gd[0][0], gridymin]);\n // len = gd.length;\n // gd.push([gd[len - 1][0], gridymin]); \n }\n // if stacked, fill to line below \n else {\n var prev = this._prevGridData;\n for (var i=prev.length; i>0; i--) {\n gd.push(prev[i-1]);\n // this._areaPoints.push(prev[i-1]);\n }\n if (shadow) {\n this.renderer.shadowRenderer.draw(ctx, gd, opts);\n }\n this._areaPoints = gd;\n this.renderer.shapeRenderer.draw(ctx, gd, opts);\n }\n }\n /////////////////////////\n // Not filled to zero\n ////////////////////////\n else { \n // if stoking line as well as filling, get a copy of line data.\n if (fillAndStroke) {\n var fasgd = gd.slice(0);\n }\n // if not stacked, fill down to axis\n if (this.index == 0 || !this._stack) {\n // var gridymin = this._yaxis.series_u2p(this._yaxis.min) - this.gridBorderWidth / 2;\n var gridymin = ctx.canvas.height;\n // IE doesn't return new length on unshift\n gd.unshift([gd[0][0], gridymin]);\n var len = gd.length;\n gd.push([gd[len - 1][0], gridymin]); \n }\n // if stacked, fill to line below \n else {\n var prev = this._prevGridData;\n for (var i=prev.length; i>0; i--) {\n gd.push(prev[i-1]);\n }\n }\n this._areaPoints = gd;\n \n if (shadow) {\n this.renderer.shadowRenderer.draw(ctx, gd, opts);\n }\n \n this.renderer.shapeRenderer.draw(ctx, gd, opts); \n }\n if (fillAndStroke) {\n var fasopts = $.extend(true, {}, opts, {fill:false, closePath:false});\n this.renderer.shapeRenderer.draw(ctx, fasgd, fasopts);\n //////////\n // TODO: figure out some way to do shadows nicely\n // if (shadow) {\n // this.renderer.shadowRenderer.draw(ctx, fasgd, fasopts);\n // }\n // now draw the markers\n if (this.markerRenderer.show) {\n if (this.renderer.smooth) {\n fasgd = this.gridData;\n }\n for (i=0; i<fasgd.length; i++) {\n this.markerRenderer.draw(fasgd[i][0], fasgd[i][1], ctx, opts.markerOptions);\n }\n }\n }\n }\n else {\n\n if (this.renderer.bands.show) {\n var bdat;\n var bopts = $.extend(true, {}, opts);\n if (this.renderer.bands.showLines) {\n bdat = (this.renderer.smooth) ? this.renderer._hiBandSmoothedData : this.renderer._hiBandGridData;\n this.renderer.shapeRenderer.draw(ctx, bdat, opts);\n bdat = (this.renderer.smooth) ? this.renderer._lowBandSmoothedData : this.renderer._lowBandGridData;\n this.renderer.shapeRenderer.draw(ctx, bdat, bopts);\n }\n\n if (this.renderer.bands.fill) {\n if (this.renderer.smooth) {\n bdat = this.renderer._hiBandSmoothedData.concat(this.renderer._lowBandSmoothedData.reverse());\n }\n else {\n bdat = this.renderer._hiBandGridData.concat(this.renderer._lowBandGridData.reverse());\n }\n this._areaPoints = bdat;\n bopts.closePath = true;\n bopts.fill = true;\n bopts.fillStyle = this.renderer.bands.fillColor;\n this.renderer.shapeRenderer.draw(ctx, bdat, bopts);\n }\n }\n\n if (shadow) {\n this.renderer.shadowRenderer.draw(ctx, gd, opts);\n }\n \n this.renderer.shapeRenderer.draw(ctx, gd, opts);\n }\n }\n // calculate the bounding box\n var xmin = xmax = ymin = ymax = null;\n for (i=0; i<this._areaPoints.length; i++) {\n var p = this._areaPoints[i];\n if (xmin > p[0] || xmin == null) {\n xmin = p[0];\n }\n if (ymax < p[1] || ymax == null) {\n ymax = p[1];\n }\n if (xmax < p[0] || xmax == null) {\n xmax = p[0];\n }\n if (ymin > p[1] || ymin == null) {\n ymin = p[1];\n }\n }\n\n if (this.type === 'line' && this.renderer.bands.show) {\n ymax = this._yaxis.series_u2p(this.renderer.bands._min);\n ymin = this._yaxis.series_u2p(this.renderer.bands._max);\n }\n\n this._boundingBox = [[xmin, ymax], [xmax, ymin]];\n \n // now draw the markers\n if (this.markerRenderer.show && !fill) {\n if (this.renderer.smooth) {\n gd = this.gridData;\n }\n for (i=0; i<gd.length; i++) {\n if (gd[i][0] != null && gd[i][1] != null) {\n this.markerRenderer.draw(gd[i][0], gd[i][1], ctx, opts.markerOptions);\n }\n }\n }\n }\n \n ctx.restore();\n }; \n \n $.jqplot.LineRenderer.prototype.drawShadow = function(ctx, gd, options) {\n // This is a no-op, shadows drawn with lines.\n };\n \n // called with scope of plot.\n // make sure to not leave anything highlighted.\n function postInit(target, data, options) {\n for (var i=0; i<this.series.length; i++) {\n if (this.series[i].renderer.constructor == $.jqplot.LineRenderer) {\n // don't allow mouseover and mousedown at same time.\n if (this.series[i].highlightMouseOver) {\n this.series[i].highlightMouseDown = false;\n }\n }\n }\n } \n \n // called within context of plot\n // create a canvas which we can draw on.\n // insert it before the eventCanvas, so eventCanvas will still capture events.\n function postPlotDraw() {\n // Memory Leaks patch \n if (this.plugins.lineRenderer && this.plugins.lineRenderer.highlightCanvas) {\n this.plugins.lineRenderer.highlightCanvas.resetCanvas();\n this.plugins.lineRenderer.highlightCanvas = null;\n }\n \n this.plugins.lineRenderer.highlightedSeriesIndex = null;\n this.plugins.lineRenderer.highlightCanvas = new $.jqplot.GenericCanvas();\n \n this.eventCanvas._elem.before(this.plugins.lineRenderer.highlightCanvas.createElement(this._gridPadding, 'jqplot-lineRenderer-highlight-canvas', this._plotDimensions, this));\n this.plugins.lineRenderer.highlightCanvas.setContext();\n this.eventCanvas._elem.bind('mouseleave', {plot:this}, function (ev) { unhighlight(ev.data.plot); });\n } \n \n function highlight (plot, sidx, pidx, points) {\n var s = plot.series[sidx];\n var canvas = plot.plugins.lineRenderer.highlightCanvas;\n canvas._ctx.clearRect(0,0,canvas._ctx.canvas.width, canvas._ctx.canvas.height);\n s._highlightedPoint = pidx;\n plot.plugins.lineRenderer.highlightedSeriesIndex = sidx;\n var opts = {fillStyle: s.highlightColor};\n if (s.type === 'line' && s.renderer.bands.show) {\n opts.fill = true;\n opts.closePath = true;\n }\n s.renderer.shapeRenderer.draw(canvas._ctx, points, opts);\n canvas = null;\n }\n \n function unhighlight (plot) {\n var canvas = plot.plugins.lineRenderer.highlightCanvas;\n canvas._ctx.clearRect(0,0, canvas._ctx.canvas.width, canvas._ctx.canvas.height);\n for (var i=0; i<plot.series.length; i++) {\n plot.series[i]._highlightedPoint = null;\n }\n plot.plugins.lineRenderer.highlightedSeriesIndex = null;\n plot.target.trigger('jqplotDataUnhighlight');\n canvas = null;\n }\n \n \n function handleMove(ev, gridpos, datapos, neighbor, plot) {\n if (neighbor) {\n var ins = [neighbor.seriesIndex, neighbor.pointIndex, neighbor.data];\n var evt1 = jQuery.Event('jqplotDataMouseOver');\n evt1.pageX = ev.pageX;\n evt1.pageY = ev.pageY;\n plot.target.trigger(evt1, ins);\n if (plot.series[ins[0]].highlightMouseOver && !(ins[0] == plot.plugins.lineRenderer.highlightedSeriesIndex)) {\n var evt = jQuery.Event('jqplotDataHighlight');\n evt.which = ev.which;\n evt.pageX = ev.pageX;\n evt.pageY = ev.pageY;\n plot.target.trigger(evt, ins);\n highlight (plot, neighbor.seriesIndex, neighbor.pointIndex, neighbor.points);\n }\n }\n else if (neighbor == null) {\n unhighlight (plot);\n }\n }\n \n function handleMouseDown(ev, gridpos, datapos, neighbor, plot) {\n if (neighbor) {\n var ins = [neighbor.seriesIndex, neighbor.pointIndex, neighbor.data];\n if (plot.series[ins[0]].highlightMouseDown && !(ins[0] == plot.plugins.lineRenderer.highlightedSeriesIndex)) {\n var evt = jQuery.Event('jqplotDataHighlight');\n evt.which = ev.which;\n evt.pageX = ev.pageX;\n evt.pageY = ev.pageY;\n plot.target.trigger(evt, ins);\n highlight (plot, neighbor.seriesIndex, neighbor.pointIndex, neighbor.points);\n }\n }\n else if (neighbor == null) {\n unhighlight (plot);\n }\n }\n \n function handleMouseUp(ev, gridpos, datapos, neighbor, plot) {\n var idx = plot.plugins.lineRenderer.highlightedSeriesIndex;\n if (idx != null && plot.series[idx].highlightMouseDown) {\n unhighlight(plot);\n }\n }\n \n function handleClick(ev, gridpos, datapos, neighbor, plot) {\n if (neighbor) {\n var ins = [neighbor.seriesIndex, neighbor.pointIndex, neighbor.data];\n var evt = jQuery.Event('jqplotDataClick');\n evt.which = ev.which;\n evt.pageX = ev.pageX;\n evt.pageY = ev.pageY;\n plot.target.trigger(evt, ins);\n }\n }\n \n function handleRightClick(ev, gridpos, datapos, neighbor, plot) {\n if (neighbor) {\n var ins = [neighbor.seriesIndex, neighbor.pointIndex, neighbor.data];\n var idx = plot.plugins.lineRenderer.highlightedSeriesIndex;\n if (idx != null && plot.series[idx].highlightMouseDown) {\n unhighlight(plot);\n }\n var evt = jQuery.Event('jqplotDataRightClick');\n evt.which = ev.which;\n evt.pageX = ev.pageX;\n evt.pageY = ev.pageY;\n plot.target.trigger(evt, ins);\n }\n }\n \n \n // class: $.jqplot.LinearAxisRenderer\n // The default jqPlot axis renderer, creating a numeric axis.\n $.jqplot.LinearAxisRenderer = function() {\n };\n \n // called with scope of axis object.\n $.jqplot.LinearAxisRenderer.prototype.init = function(options){\n // prop: breakPoints\n // EXPERIMENTAL!! Use at your own risk!\n // Works only with linear axes and the default tick renderer.\n // Array of [start, stop] points to create a broken axis.\n // Broken axes have a \"jump\" in them, which is an immediate \n // transition from a smaller value to a larger value.\n // Currently, axis ticks MUST be manually assigned if using breakPoints\n // by using the axis ticks array option.\n this.breakPoints = null;\n // prop: breakTickLabel\n // Label to use at the axis break if breakPoints are specified.\n this.breakTickLabel = \"≈\";\n // prop: drawBaseline\n // True to draw the axis baseline.\n this.drawBaseline = true;\n // prop: baselineWidth\n // width of the baseline in pixels.\n this.baselineWidth = null;\n // prop: baselineColor\n // CSS color spec for the baseline.\n this.baselineColor = null;\n // prop: forceTickAt0\n // This will ensure that there is always a tick mark at 0.\n // If data range is strictly positive or negative,\n // this will force 0 to be inside the axis bounds unless\n // the appropriate axis pad (pad, padMin or padMax) is set\n // to 0, then this will force an axis min or max value at 0.\n // This has know effect when any of the following options\n // are set: autoscale, min, max, numberTicks or tickInterval.\n this.forceTickAt0 = false;\n // prop: forceTickAt100\n // This will ensure that there is always a tick mark at 100.\n // If data range is strictly above or below 100,\n // this will force 100 to be inside the axis bounds unless\n // the appropriate axis pad (pad, padMin or padMax) is set\n // to 0, then this will force an axis min or max value at 100.\n // This has know effect when any of the following options\n // are set: autoscale, min, max, numberTicks or tickInterval.\n this.forceTickAt100 = false;\n // prop: tickInset\n // Controls the amount to inset the first and last ticks from \n // the edges of the grid, in multiples of the tick interval.\n // 0 is no inset, 0.5 is one half a tick interval, 1 is a full\n // tick interval, etc.\n this.tickInset = 0;\n // prop: minorTicks\n // Number of ticks to add between \"major\" ticks.\n // Major ticks are ticks supplied by user or auto computed.\n // Minor ticks cannot be created by user.\n this.minorTicks = 0;\n // prop: alignTicks\n // true to align tick marks across opposed axes\n // such as from the y2axis to yaxis.\n this.alignTicks = false;\n this._autoFormatString = '';\n this._overrideFormatString = false;\n this._scalefact = 1.0;\n $.extend(true, this, options);\n if (this.breakPoints) {\n if (!$.isArray(this.breakPoints)) {\n this.breakPoints = null;\n }\n else if (this.breakPoints.length < 2 || this.breakPoints[1] <= this.breakPoints[0]) {\n this.breakPoints = null;\n }\n }\n if (this.numberTicks != null && this.numberTicks < 2) {\n this.numberTicks = 2;\n }\n this.resetDataBounds();\n };\n \n // called with scope of axis\n $.jqplot.LinearAxisRenderer.prototype.draw = function(ctx, plot) {\n if (this.show) {\n // populate the axis label and value properties.\n // createTicks is a method on the renderer, but\n // call it within the scope of the axis.\n this.renderer.createTicks.call(this, plot);\n // fill a div with axes labels in the right direction.\n // Need to pregenerate each axis to get its bounds and\n // position it and the labels correctly on the plot.\n var dim=0;\n var temp;\n // Added for theming.\n if (this._elem) {\n // Memory Leaks patch\n //this._elem.empty();\n this._elem.emptyForce();\n this._elem = null;\n }\n \n this._elem = $(document.createElement('div'));\n this._elem.addClass('jqplot-axis jqplot-'+this.name);\n this._elem.css('position', 'absolute');\n\n \n if (this.name == 'xaxis' || this.name == 'x2axis') {\n this._elem.width(this._plotDimensions.width);\n }\n else {\n this._elem.height(this._plotDimensions.height);\n }\n \n // create a _label object.\n this.labelOptions.axis = this.name;\n this._label = new this.labelRenderer(this.labelOptions);\n if (this._label.show) {\n var elem = this._label.draw(ctx, plot);\n elem.appendTo(this._elem);\n elem = null;\n }\n \n var t = this._ticks;\n var tick;\n for (var i=0; i<t.length; i++) {\n tick = t[i];\n if (tick.show && tick.showLabel && (!tick.isMinorTick || this.showMinorTicks)) {\n this._elem.append(tick.draw(ctx, plot));\n }\n }\n tick = null;\n t = null;\n }\n return this._elem;\n };\n \n // called with scope of an axis\n $.jqplot.LinearAxisRenderer.prototype.reset = function() {\n this.min = this._options.min;\n this.max = this._options.max;\n this.tickInterval = this._options.tickInterval;\n this.numberTicks = this._options.numberTicks;\n this._autoFormatString = '';\n if (this._overrideFormatString && this.tickOptions && this.tickOptions.formatString) {\n this.tickOptions.formatString = '';\n }\n\n // this._ticks = this.__ticks;\n };\n \n // called with scope of axis\n $.jqplot.LinearAxisRenderer.prototype.set = function() { \n var dim = 0;\n var temp;\n var w = 0;\n var h = 0;\n var lshow = (this._label == null) ? false : this._label.show;\n if (this.show) {\n var t = this._ticks;\n var tick;\n for (var i=0; i<t.length; i++) {\n tick = t[i];\n if (!tick._breakTick && tick.show && tick.showLabel && (!tick.isMinorTick || this.showMinorTicks)) {\n if (this.name == 'xaxis' || this.name == 'x2axis') {\n temp = tick._elem.outerHeight(true);\n }\n else {\n temp = tick._elem.outerWidth(true);\n }\n if (temp > dim) {\n dim = temp;\n }\n }\n }\n tick = null;\n t = null;\n \n if (lshow) {\n w = this._label._elem.outerWidth(true);\n h = this._label._elem.outerHeight(true); \n }\n if (this.name == 'xaxis') {\n dim = dim + h;\n this._elem.css({'height':dim+'px', left:'0px', bottom:'0px'});\n }\n else if (this.name == 'x2axis') {\n dim = dim + h;\n this._elem.css({'height':dim+'px', left:'0px', top:'0px'});\n }\n else if (this.name == 'yaxis') {\n dim = dim + w;\n this._elem.css({'width':dim+'px', left:'0px', top:'0px'});\n if (lshow && this._label.constructor == $.jqplot.AxisLabelRenderer) {\n this._label._elem.css('width', w+'px');\n }\n }\n else {\n dim = dim + w;\n this._elem.css({'width':dim+'px', right:'0px', top:'0px'});\n if (lshow && this._label.constructor == $.jqplot.AxisLabelRenderer) {\n this._label._elem.css('width', w+'px');\n }\n }\n } \n }; \n \n // called with scope of axis\n $.jqplot.LinearAxisRenderer.prototype.createTicks = function(plot) {\n // we're are operating on an axis here\n var ticks = this._ticks;\n var userTicks = this.ticks;\n var name = this.name;\n // databounds were set on axis initialization.\n var db = this._dataBounds;\n var dim = (this.name.charAt(0) === 'x') ? this._plotDimensions.width : this._plotDimensions.height;\n var interval;\n var min, max;\n var pos1, pos2;\n var tt, i;\n // get a copy of user's settings for min/max.\n var userMin = this.min;\n var userMax = this.max;\n var userNT = this.numberTicks;\n var userTI = this.tickInterval;\n\n var threshold = 30;\n this._scalefact = (Math.max(dim, threshold+1) - threshold)/300.0;\n \n // if we already have ticks, use them.\n // ticks must be in order of increasing value.\n \n if (userTicks.length) {\n // ticks could be 1D or 2D array of [val, val, ,,,] or [[val, label], [val, label], ...] or mixed\n for (i=0; i<userTicks.length; i++){\n var ut = userTicks[i];\n var t = new this.tickRenderer(this.tickOptions);\n if ($.isArray(ut)) {\n t.value = ut[0];\n if (this.breakPoints) {\n if (ut[0] == this.breakPoints[0]) {\n t.label = this.breakTickLabel;\n t._breakTick = true;\n t.showGridline = false;\n t.showMark = false;\n }\n else if (ut[0] > this.breakPoints[0] && ut[0] <= this.breakPoints[1]) {\n t.show = false;\n t.showGridline = false;\n t.label = ut[1];\n }\n else {\n t.label = ut[1];\n }\n }\n else {\n t.label = ut[1];\n }\n t.setTick(ut[0], this.name);\n this._ticks.push(t);\n }\n\n else if ($.isPlainObject(ut)) {\n $.extend(true, t, ut);\n t.axis = this.name;\n this._ticks.push(t);\n }\n \n else {\n t.value = ut;\n if (this.breakPoints) {\n if (ut == this.breakPoints[0]) {\n t.label = this.breakTickLabel;\n t._breakTick = true;\n t.showGridline = false;\n t.showMark = false;\n }\n else if (ut > this.breakPoints[0] && ut <= this.breakPoints[1]) {\n t.show = false;\n t.showGridline = false;\n }\n }\n t.setTick(ut, this.name);\n this._ticks.push(t);\n }\n }\n this.numberTicks = userTicks.length;\n this.min = this._ticks[0].value;\n this.max = this._ticks[this.numberTicks-1].value;\n this.tickInterval = (this.max - this.min) / (this.numberTicks - 1);\n }\n \n // we don't have any ticks yet, let's make some!\n else {\n if (name == 'xaxis' || name == 'x2axis') {\n dim = this._plotDimensions.width;\n }\n else {\n dim = this._plotDimensions.height;\n }\n\n var _numberTicks = this.numberTicks;\n\n // if aligning this axis, use number of ticks from previous axis.\n // Do I need to reset somehow if alignTicks is changed and then graph is replotted??\n if (this.alignTicks) {\n if (this.name === 'x2axis' && plot.axes.xaxis.show) {\n _numberTicks = plot.axes.xaxis.numberTicks;\n }\n else if (this.name.charAt(0) === 'y' && this.name !== 'yaxis' && this.name !== 'yMidAxis' && plot.axes.yaxis.show) {\n _numberTicks = plot.axes.yaxis.numberTicks;\n }\n }\n \n min = ((this.min != null) ? this.min : db.min);\n max = ((this.max != null) ? this.max : db.max);\n\n var range = max - min;\n var rmin, rmax;\n var temp;\n\n if (this.tickOptions == null || !this.tickOptions.formatString) {\n this._overrideFormatString = true;\n }\n\n // Doing complete autoscaling\n if (this.min == null || this.max == null && this.tickInterval == null && !this.autoscale) {\n // Check if user must have tick at 0 or 100 and ensure they are in range.\n // The autoscaling algorithm will always place ticks at 0 and 100 if they are in range.\n if (this.forceTickAt0) {\n if (min > 0) {\n min = 0;\n }\n if (max < 0) {\n max = 0;\n }\n }\n\n if (this.forceTickAt100) {\n if (min > 100) {\n min = 100;\n }\n if (max < 100) {\n max = 100;\n }\n }\n\n var keepMin = false,\n keepMax = false;\n\n if (this.min != null) {\n keepMin = true;\n }\n\n else if (this.max != null) {\n keepMax = true;\n }\n\n // var threshold = 30;\n // var tdim = Math.max(dim, threshold+1);\n // this._scalefact = (tdim-threshold)/300.0;\n var ret = $.jqplot.LinearTickGenerator(min, max, this._scalefact, _numberTicks, keepMin, keepMax); \n // calculate a padded max and min, points should be less than these\n // so that they aren't too close to the edges of the plot.\n // User can adjust how much padding is allowed with pad, padMin and PadMax options. \n // If min or max is set, don't pad that end of axis.\n var tumin = (this.min != null) ? min : min + range*(this.padMin - 1);\n var tumax = (this.max != null) ? max : max - range*(this.padMax - 1);\n\n // if they're equal, we shouldn't have to do anything, right?\n // if (min <=tumin || max >= tumax) {\n if (min <tumin || max > tumax) {\n tumin = (this.min != null) ? min : min - range*(this.padMin - 1);\n tumax = (this.max != null) ? max : max + range*(this.padMax - 1);\n ret = $.jqplot.LinearTickGenerator(tumin, tumax, this._scalefact, _numberTicks, keepMin, keepMax);\n }\n\n this.min = ret[0];\n this.max = ret[1];\n // if numberTicks specified, it should return the same.\n this.numberTicks = ret[2];\n this._autoFormatString = ret[3];\n this.tickInterval = ret[4];\n }\n\n // User has specified some axis scale related option, can use auto algorithm\n else {\n \n // if min and max are same, space them out a bit\n if (min == max) {\n var adj = 0.05;\n if (min > 0) {\n adj = Math.max(Math.log(min)/Math.LN10, 0.05);\n }\n min -= adj;\n max += adj;\n }\n \n // autoscale. Can't autoscale if min or max is supplied.\n // Will use numberTicks and tickInterval if supplied. Ticks\n // across multiple axes may not line up depending on how\n // bars are to be plotted.\n if (this.autoscale && this.min == null && this.max == null) {\n var rrange, ti, margin;\n var forceMinZero = false;\n var forceZeroLine = false;\n var intervals = {min:null, max:null, average:null, stddev:null};\n // if any series are bars, or if any are fill to zero, and if this\n // is the axis to fill toward, check to see if we can start axis at zero.\n for (var i=0; i<this._series.length; i++) {\n var s = this._series[i];\n var faname = (s.fillAxis == 'x') ? s._xaxis.name : s._yaxis.name;\n // check to see if this is the fill axis\n if (this.name == faname) {\n var vals = s._plotValues[s.fillAxis];\n var vmin = vals[0];\n var vmax = vals[0];\n for (var j=1; j<vals.length; j++) {\n if (vals[j] < vmin) {\n vmin = vals[j];\n }\n else if (vals[j] > vmax) {\n vmax = vals[j];\n }\n }\n var dp = (vmax - vmin) / vmax;\n // is this sries a bar?\n if (s.renderer.constructor == $.jqplot.BarRenderer) {\n // if no negative values and could also check range.\n if (vmin >= 0 && (s.fillToZero || dp > 0.1)) {\n forceMinZero = true;\n }\n else {\n forceMinZero = false;\n if (s.fill && s.fillToZero && vmin < 0 && vmax > 0) {\n forceZeroLine = true;\n }\n else {\n forceZeroLine = false;\n }\n }\n }\n \n // if not a bar and filling, use appropriate method.\n else if (s.fill) {\n if (vmin >= 0 && (s.fillToZero || dp > 0.1)) {\n forceMinZero = true;\n }\n else if (vmin < 0 && vmax > 0 && s.fillToZero) {\n forceMinZero = false;\n forceZeroLine = true;\n }\n else {\n forceMinZero = false;\n forceZeroLine = false;\n }\n }\n \n // if not a bar and not filling, only change existing state\n // if it doesn't make sense\n else if (vmin < 0) {\n forceMinZero = false;\n }\n }\n }\n \n // check if we need make axis min at 0.\n if (forceMinZero) {\n // compute number of ticks\n this.numberTicks = 2 + Math.ceil((dim-(this.tickSpacing-1))/this.tickSpacing);\n this.min = 0;\n userMin = 0;\n // what order is this range?\n // what tick interval does that give us?\n ti = max/(this.numberTicks-1);\n temp = Math.pow(10, Math.abs(Math.floor(Math.log(ti)/Math.LN10)));\n if (ti/temp == parseInt(ti/temp, 10)) {\n ti += temp;\n }\n this.tickInterval = Math.ceil(ti/temp) * temp;\n this.max = this.tickInterval * (this.numberTicks - 1);\n }\n \n // check if we need to make sure there is a tick at 0.\n else if (forceZeroLine) {\n // compute number of ticks\n this.numberTicks = 2 + Math.ceil((dim-(this.tickSpacing-1))/this.tickSpacing);\n var ntmin = Math.ceil(Math.abs(min)/range*(this.numberTicks-1));\n var ntmax = this.numberTicks - 1 - ntmin;\n ti = Math.max(Math.abs(min/ntmin), Math.abs(max/ntmax));\n temp = Math.pow(10, Math.abs(Math.floor(Math.log(ti)/Math.LN10)));\n this.tickInterval = Math.ceil(ti/temp) * temp;\n this.max = this.tickInterval * ntmax;\n this.min = -this.tickInterval * ntmin;\n }\n \n // if nothing else, do autoscaling which will try to line up ticks across axes.\n else { \n if (this.numberTicks == null){\n if (this.tickInterval) {\n this.numberTicks = 3 + Math.ceil(range / this.tickInterval);\n }\n else {\n this.numberTicks = 2 + Math.ceil((dim-(this.tickSpacing-1))/this.tickSpacing);\n }\n }\n \n if (this.tickInterval == null) {\n // get a tick interval\n ti = range/(this.numberTicks - 1);\n\n if (ti < 1) {\n temp = Math.pow(10, Math.abs(Math.floor(Math.log(ti)/Math.LN10)));\n }\n else {\n temp = 1;\n }\n this.tickInterval = Math.ceil(ti*temp*this.pad)/temp;\n }\n else {\n temp = 1 / this.tickInterval;\n }\n \n // try to compute a nicer, more even tick interval\n // temp = Math.pow(10, Math.floor(Math.log(ti)/Math.LN10));\n // this.tickInterval = Math.ceil(ti/temp) * temp;\n rrange = this.tickInterval * (this.numberTicks - 1);\n margin = (rrange - range)/2;\n \n if (this.min == null) {\n this.min = Math.floor(temp*(min-margin))/temp;\n }\n if (this.max == null) {\n this.max = this.min + rrange;\n }\n }\n\n // Compute a somewhat decent format string if it is needed.\n // get precision of interval and determine a format string.\n var sf = $.jqplot.getSignificantFigures(this.tickInterval);\n\n var fstr;\n\n // if we have only a whole number, use integer formatting\n if (sf.digitsLeft >= sf.significantDigits) {\n fstr = '%d';\n }\n\n else {\n var temp = Math.max(0, 5 - sf.digitsLeft);\n temp = Math.min(temp, sf.digitsRight);\n fstr = '%.'+ temp + 'f';\n }\n\n this._autoFormatString = fstr;\n }\n \n // Use the default algorithm which pads each axis to make the chart\n // centered nicely on the grid.\n else {\n\n rmin = (this.min != null) ? this.min : min - range*(this.padMin - 1);\n rmax = (this.max != null) ? this.max : max + range*(this.padMax - 1);\n range = rmax - rmin;\n \n if (this.numberTicks == null){\n // if tickInterval is specified by user, we will ignore computed maximum.\n // max will be equal or greater to fit even # of ticks.\n if (this.tickInterval != null) {\n this.numberTicks = Math.ceil((rmax - rmin)/this.tickInterval)+1;\n }\n else if (dim > 100) {\n this.numberTicks = parseInt(3+(dim-100)/75, 10);\n }\n else {\n this.numberTicks = 2;\n }\n }\n \n if (this.tickInterval == null) {\n this.tickInterval = range / (this.numberTicks-1);\n }\n \n if (this.max == null) {\n rmax = rmin + this.tickInterval*(this.numberTicks - 1);\n } \n if (this.min == null) {\n rmin = rmax - this.tickInterval*(this.numberTicks - 1);\n }\n\n // get precision of interval and determine a format string.\n var sf = $.jqplot.getSignificantFigures(this.tickInterval);\n\n var fstr;\n\n // if we have only a whole number, use integer formatting\n if (sf.digitsLeft >= sf.significantDigits) {\n fstr = '%d';\n }\n\n else {\n var temp = Math.max(0, 5 - sf.digitsLeft);\n temp = Math.min(temp, sf.digitsRight);\n fstr = '%.'+ temp + 'f';\n }\n\n\n this._autoFormatString = fstr;\n\n this.min = rmin;\n this.max = rmax;\n }\n \n if (this.renderer.constructor == $.jqplot.LinearAxisRenderer && this._autoFormatString == '') {\n // fix for misleading tick display with small range and low precision.\n range = this.max - this.min;\n // figure out precision\n var temptick = new this.tickRenderer(this.tickOptions);\n // use the tick formatString or, the default.\n var fs = temptick.formatString || $.jqplot.config.defaultTickFormatString; \n var fs = fs.match($.jqplot.sprintf.regex)[0];\n var precision = 0;\n if (fs) {\n if (fs.search(/[fFeEgGpP]/) > -1) {\n var m = fs.match(/\\%\\.(\\d{0,})?[eEfFgGpP]/);\n if (m) {\n precision = parseInt(m[1], 10);\n }\n else {\n precision = 6;\n }\n }\n else if (fs.search(/[di]/) > -1) {\n precision = 0;\n }\n // fact will be <= 1;\n var fact = Math.pow(10, -precision);\n if (this.tickInterval < fact) {\n // need to correct underrange\n if (userNT == null && userTI == null) {\n this.tickInterval = fact;\n if (userMax == null && userMin == null) {\n // this.min = Math.floor((this._dataBounds.min - this.tickInterval)/fact) * fact;\n this.min = Math.floor(this._dataBounds.min/fact) * fact;\n if (this.min == this._dataBounds.min) {\n this.min = this._dataBounds.min - this.tickInterval;\n }\n // this.max = Math.ceil((this._dataBounds.max + this.tickInterval)/fact) * fact;\n this.max = Math.ceil(this._dataBounds.max/fact) * fact;\n if (this.max == this._dataBounds.max) {\n this.max = this._dataBounds.max + this.tickInterval;\n }\n var n = (this.max - this.min)/this.tickInterval;\n n = n.toFixed(11);\n n = Math.ceil(n);\n this.numberTicks = n + 1;\n }\n else if (userMax == null) {\n // add one tick for top of range.\n var n = (this._dataBounds.max - this.min) / this.tickInterval;\n n = n.toFixed(11);\n this.numberTicks = Math.ceil(n) + 2;\n this.max = this.min + this.tickInterval * (this.numberTicks-1);\n }\n else if (userMin == null) {\n // add one tick for bottom of range.\n var n = (this.max - this._dataBounds.min) / this.tickInterval;\n n = n.toFixed(11);\n this.numberTicks = Math.ceil(n) + 2;\n this.min = this.max - this.tickInterval * (this.numberTicks-1);\n }\n else {\n // calculate a number of ticks so max is within axis scale\n this.numberTicks = Math.ceil((userMax - userMin)/this.tickInterval) + 1;\n // if user's min and max don't fit evenly in ticks, adjust.\n // This takes care of cases such as user min set to 0, max set to 3.5 but tick\n // format string set to %d (integer ticks)\n this.min = Math.floor(userMin*Math.pow(10, precision))/Math.pow(10, precision);\n this.max = Math.ceil(userMax*Math.pow(10, precision))/Math.pow(10, precision);\n // this.max = this.min + this.tickInterval*(this.numberTicks-1);\n this.numberTicks = Math.ceil((this.max - this.min)/this.tickInterval) + 1;\n }\n }\n }\n }\n }\n \n }\n \n if (this._overrideFormatString && this._autoFormatString != '') {\n this.tickOptions = this.tickOptions || {};\n this.tickOptions.formatString = this._autoFormatString;\n }\n\n var t, to;\n for (var i=0; i<this.numberTicks; i++){\n tt = this.min + i * this.tickInterval;\n t = new this.tickRenderer(this.tickOptions);\n // var t = new $.jqplot.AxisTickRenderer(this.tickOptions);\n\n t.setTick(tt, this.name);\n this._ticks.push(t);\n\n if (i < this.numberTicks - 1) {\n for (var j=0; j<this.minorTicks; j++) {\n tt += this.tickInterval/(this.minorTicks+1);\n to = $.extend(true, {}, this.tickOptions, {name:this.name, value:tt, label:'', isMinorTick:true});\n t = new this.tickRenderer(to);\n this._ticks.push(t);\n }\n }\n t = null;\n }\n }\n\n if (this.tickInset) {\n this.min = this.min - this.tickInset * this.tickInterval;\n this.max = this.max + this.tickInset * this.tickInterval;\n }\n\n ticks = null;\n };\n \n // Used to reset just the values of the ticks and then repack, which will\n // recalculate the positioning functions. It is assuemd that the \n // number of ticks is the same and the values of the new array are at the\n // proper interval.\n // This method needs to be called with the scope of an axis object, like:\n //\n // > plot.axes.yaxis.renderer.resetTickValues.call(plot.axes.yaxis, yarr);\n //\n $.jqplot.LinearAxisRenderer.prototype.resetTickValues = function(opts) {\n if ($.isArray(opts) && opts.length == this._ticks.length) {\n var t;\n for (var i=0; i<opts.length; i++) {\n t = this._ticks[i];\n t.value = opts[i];\n t.label = t.formatter(t.formatString, opts[i]);\n t.label = t.prefix + t.label;\n t._elem.html(t.label);\n }\n t = null;\n this.min = $.jqplot.arrayMin(opts);\n this.max = $.jqplot.arrayMax(opts);\n this.pack();\n }\n // Not implemented yet.\n // else if ($.isPlainObject(opts)) {\n // \n // }\n };\n \n // called with scope of axis\n $.jqplot.LinearAxisRenderer.prototype.pack = function(pos, offsets) {\n // Add defaults for repacking from resetTickValues function.\n pos = pos || {};\n offsets = offsets || this._offsets;\n \n var ticks = this._ticks;\n var max = this.max;\n var min = this.min;\n var offmax = offsets.max;\n var offmin = offsets.min;\n var lshow = (this._label == null) ? false : this._label.show;\n \n for (var p in pos) {\n this._elem.css(p, pos[p]);\n }\n \n this._offsets = offsets;\n // pixellength will be + for x axes and - for y axes becasue pixels always measured from top left.\n var pixellength = offmax - offmin;\n var unitlength = max - min;\n \n // point to unit and unit to point conversions references to Plot DOM element top left corner.\n if (this.breakPoints) {\n unitlength = unitlength - this.breakPoints[1] + this.breakPoints[0];\n \n this.p2u = function(p){\n return (p - offmin) * unitlength / pixellength + min;\n };\n \n this.u2p = function(u){\n if (u > this.breakPoints[0] && u < this.breakPoints[1]){\n u = this.breakPoints[0];\n }\n if (u <= this.breakPoints[0]) {\n return (u - min) * pixellength / unitlength + offmin;\n }\n else {\n return (u - this.breakPoints[1] + this.breakPoints[0] - min) * pixellength / unitlength + offmin;\n }\n };\n \n if (this.name.charAt(0) == 'x'){\n this.series_u2p = function(u){\n if (u > this.breakPoints[0] && u < this.breakPoints[1]){\n u = this.breakPoints[0];\n }\n if (u <= this.breakPoints[0]) {\n return (u - min) * pixellength / unitlength;\n }\n else {\n return (u - this.breakPoints[1] + this.breakPoints[0] - min) * pixellength / unitlength;\n }\n };\n this.series_p2u = function(p){\n return p * unitlength / pixellength + min;\n };\n }\n \n else {\n this.series_u2p = function(u){\n if (u > this.breakPoints[0] && u < this.breakPoints[1]){\n u = this.breakPoints[0];\n }\n if (u >= this.breakPoints[1]) {\n return (u - max) * pixellength / unitlength;\n }\n else {\n return (u + this.breakPoints[1] - this.breakPoints[0] - max) * pixellength / unitlength;\n }\n };\n this.series_p2u = function(p){\n return p * unitlength / pixellength + max;\n };\n }\n }\n else {\n this.p2u = function(p){\n return (p - offmin) * unitlength / pixellength + min;\n };\n \n this.u2p = function(u){\n return (u - min) * pixellength / unitlength + offmin;\n };\n \n if (this.name == 'xaxis' || this.name == 'x2axis'){\n this.series_u2p = function(u){\n return (u - min) * pixellength / unitlength;\n };\n this.series_p2u = function(p){\n return p * unitlength / pixellength + min;\n };\n }\n \n else {\n this.series_u2p = function(u){\n return (u - max) * pixellength / unitlength;\n };\n this.series_p2u = function(p){\n return p * unitlength / pixellength + max;\n };\n }\n }\n \n if (this.show) {\n if (this.name == 'xaxis' || this.name == 'x2axis') {\n for (var i=0; i<ticks.length; i++) {\n var t = ticks[i];\n if (t.show && t.showLabel) {\n var shim;\n \n if (t.constructor == $.jqplot.CanvasAxisTickRenderer && t.angle) {\n // will need to adjust auto positioning based on which axis this is.\n var temp = (this.name == 'xaxis') ? 1 : -1;\n switch (t.labelPosition) {\n case 'auto':\n // position at end\n if (temp * t.angle < 0) {\n shim = -t.getWidth() + t._textRenderer.height * Math.sin(-t._textRenderer.angle) / 2;\n }\n // position at start\n else {\n shim = -t._textRenderer.height * Math.sin(t._textRenderer.angle) / 2;\n }\n break;\n case 'end':\n shim = -t.getWidth() + t._textRenderer.height * Math.sin(-t._textRenderer.angle) / 2;\n break;\n case 'start':\n shim = -t._textRenderer.height * Math.sin(t._textRenderer.angle) / 2;\n break;\n case 'middle':\n shim = -t.getWidth()/2 + t._textRenderer.height * Math.sin(-t._textRenderer.angle) / 2;\n break;\n default:\n shim = -t.getWidth()/2 + t._textRenderer.height * Math.sin(-t._textRenderer.angle) / 2;\n break;\n }\n }\n else {\n shim = -t.getWidth()/2;\n }\n var val = this.u2p(t.value) + shim + 'px';\n t._elem.css('left', val);\n t.pack();\n }\n }\n if (lshow) {\n var w = this._label._elem.outerWidth(true);\n this._label._elem.css('left', offmin + pixellength/2 - w/2 + 'px');\n if (this.name == 'xaxis') {\n this._label._elem.css('bottom', '0px');\n }\n else {\n this._label._elem.css('top', '0px');\n }\n this._label.pack();\n }\n }\n else {\n for (var i=0; i<ticks.length; i++) {\n var t = ticks[i];\n if (t.show && t.showLabel) { \n var shim;\n if (t.constructor == $.jqplot.CanvasAxisTickRenderer && t.angle) {\n // will need to adjust auto positioning based on which axis this is.\n var temp = (this.name == 'yaxis') ? 1 : -1;\n switch (t.labelPosition) {\n case 'auto':\n // position at end\n case 'end':\n if (temp * t.angle < 0) {\n shim = -t._textRenderer.height * Math.cos(-t._textRenderer.angle) / 2;\n }\n else {\n shim = -t.getHeight() + t._textRenderer.height * Math.cos(t._textRenderer.angle) / 2;\n }\n break;\n case 'start':\n if (t.angle > 0) {\n shim = -t._textRenderer.height * Math.cos(-t._textRenderer.angle) / 2;\n }\n else {\n shim = -t.getHeight() + t._textRenderer.height * Math.cos(t._textRenderer.angle) / 2;\n }\n break;\n case 'middle':\n // if (t.angle > 0) {\n // shim = -t.getHeight()/2 + t._textRenderer.height * Math.sin(-t._textRenderer.angle) / 2;\n // }\n // else {\n // shim = -t.getHeight()/2 - t._textRenderer.height * Math.sin(t._textRenderer.angle) / 2;\n // }\n shim = -t.getHeight()/2;\n break;\n default:\n shim = -t.getHeight()/2;\n break;\n }\n }\n else {\n shim = -t.getHeight()/2;\n }\n \n var val = this.u2p(t.value) + shim + 'px';\n t._elem.css('top', val);\n t.pack();\n }\n }\n if (lshow) {\n var h = this._label._elem.outerHeight(true);\n this._label._elem.css('top', offmax - pixellength/2 - h/2 + 'px');\n if (this.name == 'yaxis') {\n this._label._elem.css('left', '0px');\n }\n else {\n this._label._elem.css('right', '0px');\n } \n this._label.pack();\n }\n }\n }\n\n ticks = null;\n };\n\n\n /**\n * The following code was generaously given to me a while back by Scott Prahl.\n * He did a good job at computing axes min, max and number of ticks for the \n * case where the user has not set any scale related parameters (tickInterval,\n * numberTicks, min or max). I had ignored this use case for a long time,\n * focusing on the more difficult case where user has set some option controlling\n * tick generation. Anyway, about time I got this into jqPlot.\n * Thanks Scott!!\n */\n \n /**\n * Copyright (c) 2010 Scott Prahl\n * The next three routines are currently available for use in all personal \n * or commercial projects under both the MIT and GPL version 2.0 licenses. \n * This means that you can choose the license that best suits your project \n * and use it accordingly. \n */\n\n // A good format string depends on the interval. If the interval is greater \n // than 1 then there is no need to show any decimal digits. If it is < 1.0, then\n // use the magnitude of the interval to determine the number of digits to show.\n function bestFormatString (interval)\n {\n var fstr;\n interval = Math.abs(interval);\n if (interval >= 10) {\n fstr = '%d';\n }\n\n else if (interval > 1) {\n if (interval === parseInt(interval, 10)) {\n fstr = '%d';\n }\n else {\n fstr = '%.1f';\n }\n }\n\n else {\n var expv = -Math.floor(Math.log(interval)/Math.LN10);\n fstr = '%.' + expv + 'f';\n }\n \n return fstr; \n }\n\n var _factors = [0.1, 0.2, 0.3, 0.4, 0.5, 0.8, 1, 2, 3, 4, 5];\n\n var _getLowerFactor = function(f) {\n var i = _factors.indexOf(f);\n if (i > 0) {\n return _factors[i-1];\n }\n else {\n return _factors[_factors.length - 1] / 100;\n }\n };\n\n var _getHigherFactor = function(f) {\n var i = _factors.indexOf(f);\n if (i < _factors.length-1) {\n return _factors[i+1];\n }\n else {\n return _factors[0] * 100;\n }\n };\n\n // Given a fixed minimum and maximum and a target number ot ticks\n // figure out the best interval and \n // return min, max, number ticks, format string and tick interval\n function bestConstrainedInterval(min, max, nttarget) {\n // run through possible number to ticks and see which interval is best\n var low = Math.floor(nttarget/2);\n var hi = Math.ceil(nttarget*1.5);\n var badness = Number.MAX_VALUE;\n var r = (max - min);\n var temp;\n var sd;\n var bestNT;\n var gsf = $.jqplot.getSignificantFigures;\n var fsd;\n var fs;\n var currentNT;\n var bestPrec;\n\n for (var i=0, l=hi-low+1; i<l; i++) {\n currentNT = low + i;\n temp = r/(currentNT-1);\n sd = gsf(temp);\n\n temp = Math.abs(nttarget - currentNT) + sd.digitsRight;\n if (temp < badness) {\n badness = temp;\n bestNT = currentNT;\n bestPrec = sd.digitsRight;\n }\n else if (temp === badness) {\n // let nicer ticks trump number ot ticks\n if (sd.digitsRight < bestPrec) {\n bestNT = currentNT;\n bestPrec = sd.digitsRight;\n }\n }\n\n }\n\n fsd = Math.max(bestPrec, Math.max(gsf(min).digitsRight, gsf(max).digitsRight));\n if (fsd === 0) {\n fs = '%d';\n }\n else {\n fs = '%.' + fsd + 'f';\n }\n temp = r / (bestNT - 1);\n // min, max, number ticks, format string, tick interval\n return [min, max, bestNT, fs, temp];\n }\n\n // This will return an interval of form 2 * 10^n, 5 * 10^n or 10 * 10^n\n // it is based soley on the range and number of ticks. So if user specifies\n // number of ticks, use this.\n function bestInterval(range, numberTicks) {\n numberTicks = numberTicks || 7;\n var minimum = range / (numberTicks - 1);\n var magnitude = Math.pow(10, Math.floor(Math.log(minimum) / Math.LN10));\n var residual = minimum / magnitude;\n var interval;\n // \"nicest\" ranges are 1, 2, 5 or powers of these.\n // for magnitudes below 1, only allow these. \n if (magnitude < 1) {\n if (residual > 5) {\n interval = 10 * magnitude;\n }\n else if (residual > 2) {\n interval = 5 * magnitude;\n }\n else if (residual > 1) {\n interval = 2 * magnitude;\n }\n else {\n interval = magnitude;\n }\n }\n // for large ranges (whole integers), allow intervals like 3, 4 or powers of these.\n // this helps a lot with poor choices for number of ticks. \n else {\n if (residual > 5) {\n interval = 10 * magnitude;\n }\n else if (residual > 4) {\n interval = 5 * magnitude;\n }\n else if (residual > 3) {\n interval = 4 * magnitude;\n }\n else if (residual > 2) {\n interval = 3 * magnitude;\n }\n else if (residual > 1) {\n interval = 2 * magnitude;\n }\n else {\n interval = magnitude;\n }\n }\n\n return interval;\n }\n\n // This will return an interval of form 2 * 10^n, 5 * 10^n or 10 * 10^n\n // it is based soley on the range of data, number of ticks must be computed later.\n function bestLinearInterval(range, scalefact) {\n scalefact = scalefact || 1;\n var expv = Math.floor(Math.log(range)/Math.LN10);\n var magnitude = Math.pow(10, expv);\n // 0 < f < 10\n var f = range / magnitude;\n var fact;\n // for large plots, scalefact will decrease f and increase number of ticks.\n // for small plots, scalefact will increase f and decrease number of ticks.\n f = f/scalefact;\n\n // for large plots, smaller interval, more ticks.\n if (f<=0.38) {\n fact = 0.1;\n }\n else if (f<=1.6) {\n fact = 0.2;\n }\n else if (f<=4.0) {\n fact = 0.5;\n }\n else if (f<=8.0) {\n fact = 1.0;\n }\n // for very small plots, larger interval, less ticks in number ticks\n else if (f<=16.0) {\n fact = 2;\n }\n else {\n fact = 5;\n } \n\n return fact*magnitude; \n }\n\n function bestLinearComponents(range, scalefact) {\n var expv = Math.floor(Math.log(range)/Math.LN10);\n var magnitude = Math.pow(10, expv);\n // 0 < f < 10\n var f = range / magnitude;\n var interval;\n var fact;\n // for large plots, scalefact will decrease f and increase number of ticks.\n // for small plots, scalefact will increase f and decrease number of ticks.\n f = f/scalefact;\n\n // for large plots, smaller interval, more ticks.\n if (f<=0.38) {\n fact = 0.1;\n }\n else if (f<=1.6) {\n fact = 0.2;\n }\n else if (f<=4.0) {\n fact = 0.5;\n }\n else if (f<=8.0) {\n fact = 1.0;\n }\n // for very small plots, larger interval, less ticks in number ticks\n else if (f<=16.0) {\n fact = 2;\n }\n // else if (f<=20.0) {\n // fact = 3;\n // }\n // else if (f<=24.0) {\n // fact = 4;\n // }\n else {\n fact = 5;\n } \n\n interval = fact * magnitude;\n\n return [interval, fact, magnitude];\n }\n\n // Given the min and max for a dataset, return suitable endpoints\n // for the graphing, a good number for the number of ticks, and a\n // format string so that extraneous digits are not displayed.\n // returned is an array containing [min, max, nTicks, format]\n $.jqplot.LinearTickGenerator = function(axis_min, axis_max, scalefact, numberTicks, keepMin, keepMax) {\n // Set to preserve EITHER min OR max.\n // If min is preserved, max must be free.\n keepMin = (keepMin === null) ? false : keepMin;\n keepMax = (keepMax === null || keepMin) ? false : keepMax;\n // if endpoints are equal try to include zero otherwise include one\n if (axis_min === axis_max) {\n axis_max = (axis_max) ? 0 : 1;\n }\n\n scalefact = scalefact || 1.0;\n\n // make sure range is positive\n if (axis_max < axis_min) {\n var a = axis_max;\n axis_max = axis_min;\n axis_min = a;\n }\n\n var r = [];\n var ss = bestLinearInterval(axis_max - axis_min, scalefact);\n\n var gsf = $.jqplot.getSignificantFigures;\n \n if (numberTicks == null) {\n\n // Figure out the axis min, max and number of ticks\n // the min and max will be some multiple of the tick interval,\n // 1*10^n, 2*10^n or 5*10^n. This gaurantees that, if the\n // axis min is negative, 0 will be a tick.\n if (!keepMin && !keepMax) {\n r[0] = Math.floor(axis_min / ss) * ss; // min\n r[1] = Math.ceil(axis_max / ss) * ss; // max\n r[2] = Math.round((r[1]-r[0])/ss+1.0); // number of ticks\n r[3] = bestFormatString(ss); // format string\n r[4] = ss; // tick Interval\n }\n\n else if (keepMin) {\n r[0] = axis_min; // min\n r[2] = Math.ceil((axis_max - axis_min) / ss + 1.0); // number of ticks\n r[1] = axis_min + (r[2] - 1) * ss; // max\n var digitsMin = gsf(axis_min).digitsRight;\n var digitsSS = gsf(ss).digitsRight;\n if (digitsMin < digitsSS) {\n r[3] = bestFormatString(ss); // format string\n }\n else {\n r[3] = '%.' + digitsMin + 'f';\n }\n r[4] = ss; // tick Interval\n }\n\n else if (keepMax) {\n r[1] = axis_max; // max\n r[2] = Math.ceil((axis_max - axis_min) / ss + 1.0); // number of ticks\n r[0] = axis_max - (r[2] - 1) * ss; // min\n var digitsMax = gsf(axis_max).digitsRight;\n var digitsSS = gsf(ss).digitsRight;\n if (digitsMax < digitsSS) {\n r[3] = bestFormatString(ss); // format string\n }\n else {\n r[3] = '%.' + digitsMax + 'f';\n }\n r[4] = ss; // tick Interval\n }\n }\n\n else {\n var tempr = [];\n\n // Figure out the axis min, max and number of ticks\n // the min and max will be some multiple of the tick interval,\n // 1*10^n, 2*10^n or 5*10^n. This gaurantees that, if the\n // axis min is negative, 0 will be a tick.\n tempr[0] = Math.floor(axis_min / ss) * ss; // min\n tempr[1] = Math.ceil(axis_max / ss) * ss; // max\n tempr[2] = Math.round((tempr[1]-tempr[0])/ss+1.0); // number of ticks\n tempr[3] = bestFormatString(ss); // format string\n tempr[4] = ss; // tick Interval\n\n // first, see if we happen to get the right number of ticks\n if (tempr[2] === numberTicks) {\n r = tempr;\n }\n\n else {\n\n var newti = bestInterval(tempr[1] - tempr[0], numberTicks);\n\n r[0] = tempr[0]; // min\n r[2] = numberTicks; // number of ticks\n r[4] = newti; // tick interval\n r[3] = bestFormatString(newti); // format string\n r[1] = r[0] + (r[2] - 1) * r[4]; // max\n }\n }\n\n return r;\n };\n\n $.jqplot.LinearTickGenerator.bestLinearInterval = bestLinearInterval;\n $.jqplot.LinearTickGenerator.bestInterval = bestInterval;\n $.jqplot.LinearTickGenerator.bestLinearComponents = bestLinearComponents;\n $.jqplot.LinearTickGenerator.bestConstrainedInterval = bestConstrainedInterval;\n\n\n // class: $.jqplot.MarkerRenderer\n // The default jqPlot marker renderer, rendering the points on the line.\n $.jqplot.MarkerRenderer = function(options){\n // Group: Properties\n \n // prop: show\n // whether or not to show the marker.\n this.show = true;\n // prop: style\n // One of diamond, circle, square, x, plus, dash, filledDiamond, filledCircle, filledSquare\n this.style = 'filledCircle';\n // prop: lineWidth\n // size of the line for non-filled markers.\n this.lineWidth = 2;\n // prop: size\n // Size of the marker (diameter or circle, length of edge of square, etc.)\n this.size = 9.0;\n // prop: color\n // color of marker. Will be set to color of series by default on init.\n this.color = '#666666';\n // prop: shadow\n // whether or not to draw a shadow on the line\n this.shadow = true;\n // prop: shadowAngle\n // Shadow angle in degrees\n this.shadowAngle = 45;\n // prop: shadowOffset\n // Shadow offset from line in pixels\n this.shadowOffset = 1;\n // prop: shadowDepth\n // Number of times shadow is stroked, each stroke offset shadowOffset from the last.\n this.shadowDepth = 3;\n // prop: shadowAlpha\n // Alpha channel transparency of shadow. 0 = transparent.\n this.shadowAlpha = '0.07';\n // prop: shadowRenderer\n // Renderer that will draws the shadows on the marker.\n this.shadowRenderer = new $.jqplot.ShadowRenderer();\n // prop: shapeRenderer\n // Renderer that will draw the marker.\n this.shapeRenderer = new $.jqplot.ShapeRenderer();\n \n $.extend(true, this, options);\n };\n \n $.jqplot.MarkerRenderer.prototype.init = function(options) {\n $.extend(true, this, options);\n var sdopt = {angle:this.shadowAngle, offset:this.shadowOffset, alpha:this.shadowAlpha, lineWidth:this.lineWidth, depth:this.shadowDepth, closePath:true};\n if (this.style.indexOf('filled') != -1) {\n sdopt.fill = true;\n }\n if (this.style.indexOf('ircle') != -1) {\n sdopt.isarc = true;\n sdopt.closePath = false;\n }\n this.shadowRenderer.init(sdopt);\n \n var shopt = {fill:false, isarc:false, strokeStyle:this.color, fillStyle:this.color, lineWidth:this.lineWidth, closePath:true};\n if (this.style.indexOf('filled') != -1) {\n shopt.fill = true;\n }\n if (this.style.indexOf('ircle') != -1) {\n shopt.isarc = true;\n shopt.closePath = false;\n }\n this.shapeRenderer.init(shopt);\n };\n \n $.jqplot.MarkerRenderer.prototype.drawDiamond = function(x, y, ctx, fill, options) {\n var stretch = 1.2;\n var dx = this.size/2/stretch;\n var dy = this.size/2*stretch;\n var points = [[x-dx, y], [x, y+dy], [x+dx, y], [x, y-dy]];\n if (this.shadow) {\n this.shadowRenderer.draw(ctx, points);\n }\n this.shapeRenderer.draw(ctx, points, options);\n };\n \n $.jqplot.MarkerRenderer.prototype.drawPlus = function(x, y, ctx, fill, options) {\n var stretch = 1.0;\n var dx = this.size/2*stretch;\n var dy = this.size/2*stretch;\n var points1 = [[x, y-dy], [x, y+dy]];\n var points2 = [[x+dx, y], [x-dx, y]];\n var opts = $.extend(true, {}, this.options, {closePath:false});\n if (this.shadow) {\n this.shadowRenderer.draw(ctx, points1, {closePath:false});\n this.shadowRenderer.draw(ctx, points2, {closePath:false});\n }\n this.shapeRenderer.draw(ctx, points1, opts);\n this.shapeRenderer.draw(ctx, points2, opts);\n };\n \n $.jqplot.MarkerRenderer.prototype.drawX = function(x, y, ctx, fill, options) {\n var stretch = 1.0;\n var dx = this.size/2*stretch;\n var dy = this.size/2*stretch;\n var opts = $.extend(true, {}, this.options, {closePath:false});\n var points1 = [[x-dx, y-dy], [x+dx, y+dy]];\n var points2 = [[x-dx, y+dy], [x+dx, y-dy]];\n if (this.shadow) {\n this.shadowRenderer.draw(ctx, points1, {closePath:false});\n this.shadowRenderer.draw(ctx, points2, {closePath:false});\n }\n this.shapeRenderer.draw(ctx, points1, opts);\n this.shapeRenderer.draw(ctx, points2, opts);\n };\n \n $.jqplot.MarkerRenderer.prototype.drawDash = function(x, y, ctx, fill, options) {\n var stretch = 1.0;\n var dx = this.size/2*stretch;\n var dy = this.size/2*stretch;\n var points = [[x-dx, y], [x+dx, y]];\n if (this.shadow) {\n this.shadowRenderer.draw(ctx, points);\n }\n this.shapeRenderer.draw(ctx, points, options);\n };\n \n $.jqplot.MarkerRenderer.prototype.drawLine = function(p1, p2, ctx, fill, options) {\n var points = [p1, p2];\n if (this.shadow) {\n this.shadowRenderer.draw(ctx, points);\n }\n this.shapeRenderer.draw(ctx, points, options);\n };\n \n $.jqplot.MarkerRenderer.prototype.drawSquare = function(x, y, ctx, fill, options) {\n var stretch = 1.0;\n var dx = this.size/2/stretch;\n var dy = this.size/2*stretch;\n var points = [[x-dx, y-dy], [x-dx, y+dy], [x+dx, y+dy], [x+dx, y-dy]];\n if (this.shadow) {\n this.shadowRenderer.draw(ctx, points);\n }\n this.shapeRenderer.draw(ctx, points, options);\n };\n \n $.jqplot.MarkerRenderer.prototype.drawCircle = function(x, y, ctx, fill, options) {\n var radius = this.size/2;\n var end = 2*Math.PI;\n var points = [x, y, radius, 0, end, true];\n if (this.shadow) {\n this.shadowRenderer.draw(ctx, points);\n }\n this.shapeRenderer.draw(ctx, points, options);\n };\n \n $.jqplot.MarkerRenderer.prototype.draw = function(x, y, ctx, options) {\n options = options || {};\n // hack here b/c shape renderer uses canvas based color style options\n // and marker uses css style names.\n if (options.show == null || options.show != false) {\n if (options.color && !options.fillStyle) {\n options.fillStyle = options.color;\n }\n if (options.color && !options.strokeStyle) {\n options.strokeStyle = options.color;\n }\n switch (this.style) {\n case 'diamond':\n this.drawDiamond(x,y,ctx, false, options);\n break;\n case 'filledDiamond':\n this.drawDiamond(x,y,ctx, true, options);\n break;\n case 'circle':\n this.drawCircle(x,y,ctx, false, options);\n break;\n case 'filledCircle':\n this.drawCircle(x,y,ctx, true, options);\n break;\n case 'square':\n this.drawSquare(x,y,ctx, false, options);\n break;\n case 'filledSquare':\n this.drawSquare(x,y,ctx, true, options);\n break;\n case 'x':\n this.drawX(x,y,ctx, true, options);\n break;\n case 'plus':\n this.drawPlus(x,y,ctx, true, options);\n break;\n case 'dash':\n this.drawDash(x,y,ctx, true, options);\n break;\n case 'line':\n this.drawLine(x, y, ctx, false, options);\n break;\n default:\n this.drawDiamond(x,y,ctx, false, options);\n break;\n }\n }\n };\n \n // class: $.jqplot.shadowRenderer\n // The default jqPlot shadow renderer, rendering shadows behind shapes.\n $.jqplot.ShadowRenderer = function(options){ \n // Group: Properties\n \n // prop: angle\n // Angle of the shadow in degrees. Measured counter-clockwise from the x axis.\n this.angle = 45;\n // prop: offset\n // Pixel offset at the given shadow angle of each shadow stroke from the last stroke.\n this.offset = 1;\n // prop: alpha\n // alpha transparency of shadow stroke.\n this.alpha = 0.07;\n // prop: lineWidth\n // width of the shadow line stroke.\n this.lineWidth = 1.5;\n // prop: lineJoin\n // How line segments of the shadow are joined.\n this.lineJoin = 'miter';\n // prop: lineCap\n // how ends of the shadow line are rendered.\n this.lineCap = 'round';\n // prop; closePath\n // whether line path segment is closed upon itself.\n this.closePath = false;\n // prop: fill\n // whether to fill the shape.\n this.fill = false;\n // prop: depth\n // how many times the shadow is stroked. Each stroke will be offset by offset at angle degrees.\n this.depth = 3;\n this.strokeStyle = 'rgba(0,0,0,0.1)';\n // prop: isarc\n // whether the shadow is an arc or not.\n this.isarc = false;\n \n $.extend(true, this, options);\n };\n \n $.jqplot.ShadowRenderer.prototype.init = function(options) {\n $.extend(true, this, options);\n };\n \n // function: draw\n // draws an transparent black (i.e. gray) shadow.\n //\n // ctx - canvas drawing context\n // points - array of points or [x, y, radius, start angle (rad), end angle (rad)]\n $.jqplot.ShadowRenderer.prototype.draw = function(ctx, points, options) {\n ctx.save();\n var opts = (options != null) ? options : {};\n var fill = (opts.fill != null) ? opts.fill : this.fill;\n var fillRect = (opts.fillRect != null) ? opts.fillRect : this.fillRect;\n var closePath = (opts.closePath != null) ? opts.closePath : this.closePath;\n var offset = (opts.offset != null) ? opts.offset : this.offset;\n var alpha = (opts.alpha != null) ? opts.alpha : this.alpha;\n var depth = (opts.depth != null) ? opts.depth : this.depth;\n var isarc = (opts.isarc != null) ? opts.isarc : this.isarc;\n var linePattern = (opts.linePattern != null) ? opts.linePattern : this.linePattern;\n ctx.lineWidth = (opts.lineWidth != null) ? opts.lineWidth : this.lineWidth;\n ctx.lineJoin = (opts.lineJoin != null) ? opts.lineJoin : this.lineJoin;\n ctx.lineCap = (opts.lineCap != null) ? opts.lineCap : this.lineCap;\n ctx.strokeStyle = opts.strokeStyle || this.strokeStyle || 'rgba(0,0,0,'+alpha+')';\n ctx.fillStyle = opts.fillStyle || this.fillStyle || 'rgba(0,0,0,'+alpha+')';\n for (var j=0; j<depth; j++) {\n var ctxPattern = $.jqplot.LinePattern(ctx, linePattern);\n ctx.translate(Math.cos(this.angle*Math.PI/180)*offset, Math.sin(this.angle*Math.PI/180)*offset);\n ctxPattern.beginPath();\n if (isarc) {\n ctx.arc(points[0], points[1], points[2], points[3], points[4], true); \n }\n else if (fillRect) {\n if (fillRect) {\n ctx.fillRect(points[0], points[1], points[2], points[3]);\n }\n }\n else if (points && points.length){\n var move = true;\n for (var i=0; i<points.length; i++) {\n // skip to the first non-null point and move to it.\n if (points[i][0] != null && points[i][1] != null) {\n if (move) {\n ctxPattern.moveTo(points[i][0], points[i][1]);\n move = false;\n }\n else {\n ctxPattern.lineTo(points[i][0], points[i][1]);\n }\n }\n else {\n move = true;\n }\n }\n \n }\n if (closePath) {\n ctxPattern.closePath();\n }\n if (fill) {\n ctx.fill();\n }\n else {\n ctx.stroke();\n }\n }\n ctx.restore();\n };\n \n // class: $.jqplot.shapeRenderer\n // The default jqPlot shape renderer. Given a set of points will\n // plot them and either stroke a line (fill = false) or fill them (fill = true).\n // If a filled shape is desired, closePath = true must also be set to close\n // the shape.\n $.jqplot.ShapeRenderer = function(options){\n \n this.lineWidth = 1.5;\n // prop: linePattern\n // line pattern 'dashed', 'dotted', 'solid', some combination\n // of '-' and '.' characters such as '.-.' or a numerical array like \n // [draw, skip, draw, skip, ...] such as [1, 10] to draw a dotted line, \n // [1, 10, 20, 10] to draw a dot-dash line, and so on.\n this.linePattern = 'solid';\n // prop: lineJoin\n // How line segments of the shadow are joined.\n this.lineJoin = 'miter';\n // prop: lineCap\n // how ends of the shadow line are rendered.\n this.lineCap = 'round';\n // prop; closePath\n // whether line path segment is closed upon itself.\n this.closePath = false;\n // prop: fill\n // whether to fill the shape.\n this.fill = false;\n // prop: isarc\n // whether the shadow is an arc or not.\n this.isarc = false;\n // prop: fillRect\n // true to draw shape as a filled rectangle.\n this.fillRect = false;\n // prop: strokeRect\n // true to draw shape as a stroked rectangle.\n this.strokeRect = false;\n // prop: clearRect\n // true to cear a rectangle.\n this.clearRect = false;\n // prop: strokeStyle\n // css color spec for the stoke style\n this.strokeStyle = '#999999';\n // prop: fillStyle\n // css color spec for the fill style.\n this.fillStyle = '#999999'; \n \n $.extend(true, this, options);\n };\n \n $.jqplot.ShapeRenderer.prototype.init = function(options) {\n $.extend(true, this, options);\n };\n \n // function: draw\n // draws the shape.\n //\n // ctx - canvas drawing context\n // points - array of points for shapes or \n // [x, y, width, height] for rectangles or\n // [x, y, radius, start angle (rad), end angle (rad)] for circles and arcs.\n $.jqplot.ShapeRenderer.prototype.draw = function(ctx, points, options) {\n ctx.save();\n var opts = (options != null) ? options : {};\n var fill = (opts.fill != null) ? opts.fill : this.fill;\n var closePath = (opts.closePath != null) ? opts.closePath : this.closePath;\n var fillRect = (opts.fillRect != null) ? opts.fillRect : this.fillRect;\n var strokeRect = (opts.strokeRect != null) ? opts.strokeRect : this.strokeRect;\n var clearRect = (opts.clearRect != null) ? opts.clearRect : this.clearRect;\n var isarc = (opts.isarc != null) ? opts.isarc : this.isarc;\n var linePattern = (opts.linePattern != null) ? opts.linePattern : this.linePattern;\n var ctxPattern = $.jqplot.LinePattern(ctx, linePattern);\n ctx.lineWidth = opts.lineWidth || this.lineWidth;\n ctx.lineJoin = opts.lineJoin || this.lineJoin;\n ctx.lineCap = opts.lineCap || this.lineCap;\n ctx.strokeStyle = (opts.strokeStyle || opts.color) || this.strokeStyle;\n ctx.fillStyle = opts.fillStyle || this.fillStyle;\n ctx.beginPath();\n if (isarc) {\n ctx.arc(points[0], points[1], points[2], points[3], points[4], true); \n if (closePath) {\n ctx.closePath();\n }\n if (fill) {\n ctx.fill();\n }\n else {\n ctx.stroke();\n }\n ctx.restore();\n return;\n }\n else if (clearRect) {\n ctx.clearRect(points[0], points[1], points[2], points[3]);\n ctx.restore();\n return;\n }\n else if (fillRect || strokeRect) {\n if (fillRect) {\n ctx.fillRect(points[0], points[1], points[2], points[3]);\n }\n if (strokeRect) {\n ctx.strokeRect(points[0], points[1], points[2], points[3]);\n ctx.restore();\n return;\n }\n }\n else if (points && points.length){\n var move = true;\n for (var i=0; i<points.length; i++) {\n // skip to the first non-null point and move to it.\n if (points[i][0] != null && points[i][1] != null) {\n if (move) {\n ctxPattern.moveTo(points[i][0], points[i][1]);\n move = false;\n }\n else {\n ctxPattern.lineTo(points[i][0], points[i][1]);\n }\n }\n else {\n move = true;\n }\n }\n if (closePath) {\n ctxPattern.closePath();\n }\n if (fill) {\n ctx.fill();\n }\n else {\n ctx.stroke();\n }\n }\n ctx.restore();\n };\n \n // class $.jqplot.TableLegendRenderer\n // The default legend renderer for jqPlot.\n $.jqplot.TableLegendRenderer = function(){\n //\n };\n \n $.jqplot.TableLegendRenderer.prototype.init = function(options) {\n $.extend(true, this, options);\n };\n \n $.jqplot.TableLegendRenderer.prototype.addrow = function (label, color, pad, reverse) {\n var rs = (pad) ? this.rowSpacing+'px' : '0px';\n var tr;\n var td;\n var elem;\n var div0;\n var div1;\n elem = document.createElement('tr');\n tr = $(elem);\n tr.addClass('jqplot-table-legend');\n elem = null;\n\n if (reverse){\n tr.prependTo(this._elem);\n }\n\n else{\n tr.appendTo(this._elem);\n }\n\n if (this.showSwatches) {\n td = $(document.createElement('td'));\n td.addClass('jqplot-table-legend jqplot-table-legend-swatch');\n td.css({textAlign: 'center', paddingTop: rs});\n\n div0 = $(document.createElement('div'));\n div0.addClass('jqplot-table-legend-swatch-outline');\n div1 = $(document.createElement('div'));\n div1.addClass('jqplot-table-legend-swatch');\n div1.css({backgroundColor: color, borderColor: color});\n\n tr.append(td.append(div0.append(div1)));\n\n // $('<td class=\"jqplot-table-legend\" style=\"text-align:center;padding-top:'+rs+';\">'+\n // '<div><div class=\"jqplot-table-legend-swatch\" style=\"background-color:'+color+';border-color:'+color+';\"></div>'+\n // '</div></td>').appendTo(tr);\n }\n if (this.showLabels) {\n td = $(document.createElement('td'));\n td.addClass('jqplot-table-legend jqplot-table-legend-label');\n td.css('paddingTop', rs);\n tr.append(td);\n\n // elem = $('<td class=\"jqplot-table-legend\" style=\"padding-top:'+rs+';\"></td>');\n // elem.appendTo(tr);\n if (this.escapeHtml) {\n td.text(label);\n }\n else {\n td.html(label);\n }\n }\n td = null;\n div0 = null;\n div1 = null;\n tr = null;\n elem = null;\n };\n \n // called with scope of legend\n $.jqplot.TableLegendRenderer.prototype.draw = function() {\n if (this._elem) {\n this._elem.emptyForce();\n this._elem = null;\n }\n\n if (this.show) {\n var series = this._series;\n // make a table. one line label per row.\n var elem = document.createElement('table');\n this._elem = $(elem);\n this._elem.addClass('jqplot-table-legend');\n\n var ss = {position:'absolute'};\n if (this.background) {\n ss['background'] = this.background;\n }\n if (this.border) {\n ss['border'] = this.border;\n }\n if (this.fontSize) {\n ss['fontSize'] = this.fontSize;\n }\n if (this.fontFamily) {\n ss['fontFamily'] = this.fontFamily;\n }\n if (this.textColor) {\n ss['textColor'] = this.textColor;\n }\n if (this.marginTop != null) {\n ss['marginTop'] = this.marginTop;\n }\n if (this.marginBottom != null) {\n ss['marginBottom'] = this.marginBottom;\n }\n if (this.marginLeft != null) {\n ss['marginLeft'] = this.marginLeft;\n }\n if (this.marginRight != null) {\n ss['marginRight'] = this.marginRight;\n }\n \n \n var pad = false, \n reverse = false,\n s;\n for (var i = 0; i< series.length; i++) {\n s = series[i];\n if (s._stack || s.renderer.constructor == $.jqplot.BezierCurveRenderer){\n reverse = true;\n }\n if (s.show && s.showLabel) {\n var lt = this.labels[i] || s.label.toString();\n if (lt) {\n var color = s.color;\n if (reverse && i < series.length - 1){\n pad = true;\n }\n else if (reverse && i == series.length - 1){\n pad = false;\n }\n this.renderer.addrow.call(this, lt, color, pad, reverse);\n pad = true;\n }\n // let plugins add more rows to legend. Used by trend line plugin.\n for (var j=0; j<$.jqplot.addLegendRowHooks.length; j++) {\n var item = $.jqplot.addLegendRowHooks[j].call(this, s);\n if (item) {\n this.renderer.addrow.call(this, item.label, item.color, pad);\n pad = true;\n } \n }\n lt = null;\n }\n }\n }\n return this._elem;\n };\n \n $.jqplot.TableLegendRenderer.prototype.pack = function(offsets) {\n if (this.show) { \n if (this.placement == 'insideGrid') {\n switch (this.location) {\n case 'nw':\n var a = offsets.left;\n var b = offsets.top;\n this._elem.css('left', a);\n this._elem.css('top', b);\n break;\n case 'n':\n var a = (offsets.left + (this._plotDimensions.width - offsets.right))/2 - this.getWidth()/2;\n var b = offsets.top;\n this._elem.css('left', a);\n this._elem.css('top', b);\n break;\n case 'ne':\n var a = offsets.right;\n var b = offsets.top;\n this._elem.css({right:a, top:b});\n break;\n case 'e':\n var a = offsets.right;\n var b = (offsets.top + (this._plotDimensions.height - offsets.bottom))/2 - this.getHeight()/2;\n this._elem.css({right:a, top:b});\n break;\n case 'se':\n var a = offsets.right;\n var b = offsets.bottom;\n this._elem.css({right:a, bottom:b});\n break;\n case 's':\n var a = (offsets.left + (this._plotDimensions.width - offsets.right))/2 - this.getWidth()/2;\n var b = offsets.bottom;\n this._elem.css({left:a, bottom:b});\n break;\n case 'sw':\n var a = offsets.left;\n var b = offsets.bottom;\n this._elem.css({left:a, bottom:b});\n break;\n case 'w':\n var a = offsets.left;\n var b = (offsets.top + (this._plotDimensions.height - offsets.bottom))/2 - this.getHeight()/2;\n this._elem.css({left:a, top:b});\n break;\n default: // same as 'se'\n var a = offsets.right;\n var b = offsets.bottom;\n this._elem.css({right:a, bottom:b});\n break;\n }\n \n }\n else if (this.placement == 'outside'){\n switch (this.location) {\n case 'nw':\n var a = this._plotDimensions.width - offsets.left;\n var b = offsets.top;\n this._elem.css('right', a);\n this._elem.css('top', b);\n break;\n case 'n':\n var a = (offsets.left + (this._plotDimensions.width - offsets.right))/2 - this.getWidth()/2;\n var b = this._plotDimensions.height - offsets.top;\n this._elem.css('left', a);\n this._elem.css('bottom', b);\n break;\n case 'ne':\n var a = this._plotDimensions.width - offsets.right;\n var b = offsets.top;\n this._elem.css({left:a, top:b});\n break;\n case 'e':\n var a = this._plotDimensions.width - offsets.right;\n var b = (offsets.top + (this._plotDimensions.height - offsets.bottom))/2 - this.getHeight()/2;\n this._elem.css({left:a, top:b});\n break;\n case 'se':\n var a = this._plotDimensions.width - offsets.right;\n var b = offsets.bottom;\n this._elem.css({left:a, bottom:b});\n break;\n case 's':\n var a = (offsets.left + (this._plotDimensions.width - offsets.right))/2 - this.getWidth()/2;\n var b = this._plotDimensions.height - offsets.bottom;\n this._elem.css({left:a, top:b});\n break;\n case 'sw':\n var a = this._plotDimensions.width - offsets.left;\n var b = offsets.bottom;\n this._elem.css({right:a, bottom:b});\n break;\n case 'w':\n var a = this._plotDimensions.width - offsets.left;\n var b = (offsets.top + (this._plotDimensions.height - offsets.bottom))/2 - this.getHeight()/2;\n this._elem.css({right:a, top:b});\n break;\n default: // same as 'se'\n var a = offsets.right;\n var b = offsets.bottom;\n this._elem.css({right:a, bottom:b});\n break;\n }\n }\n else {\n switch (this.location) {\n case 'nw':\n this._elem.css({left:0, top:offsets.top});\n break;\n case 'n':\n var a = (offsets.left + (this._plotDimensions.width - offsets.right))/2 - this.getWidth()/2;\n this._elem.css({left: a, top:offsets.top});\n break;\n case 'ne':\n this._elem.css({right:0, top:offsets.top});\n break;\n case 'e':\n var b = (offsets.top + (this._plotDimensions.height - offsets.bottom))/2 - this.getHeight()/2;\n this._elem.css({right:offsets.right, top:b});\n break;\n case 'se':\n this._elem.css({right:offsets.right, bottom:offsets.bottom});\n break;\n case 's':\n var a = (offsets.left + (this._plotDimensions.width - offsets.right))/2 - this.getWidth()/2;\n this._elem.css({left: a, bottom:offsets.bottom});\n break;\n case 'sw':\n this._elem.css({left:offsets.left, bottom:offsets.bottom});\n break;\n case 'w':\n var b = (offsets.top + (this._plotDimensions.height - offsets.bottom))/2 - this.getHeight()/2;\n this._elem.css({left:offsets.left, top:b});\n break;\n default: // same as 'se'\n this._elem.css({right:offsets.right, bottom:offsets.bottom});\n break;\n }\n }\n } \n };\n\n /**\n * Class: $.jqplot.ThemeEngine\n * Theme Engine provides a programatic way to change some of the more\n * common jqplot styling options such as fonts, colors and grid options.\n * A theme engine instance is created with each plot. The theme engine\n * manages a collection of themes which can be modified, added to, or \n * applied to the plot.\n * \n * The themeEngine class is not instantiated directly.\n * When a plot is initialized, the current plot options are scanned\n * an a default theme named \"Default\" is created. This theme is\n * used as the basis for other themes added to the theme engine and\n * is always available.\n * \n * A theme is a simple javascript object with styling parameters for\n * various entities of the plot. A theme has the form:\n * \n * \n * > {\n * > _name:f \"Default\",\n * > target: {\n * > backgroundColor: \"transparent\"\n * > },\n * > legend: {\n * > textColor: null,\n * > fontFamily: null,\n * > fontSize: null,\n * > border: null,\n * > background: null\n * > },\n * > title: {\n * > textColor: \"rgb(102, 102, 102)\",\n * > fontFamily: \"'Trebuchet MS',Arial,Helvetica,sans-serif\",\n * > fontSize: \"19.2px\",\n * > textAlign: \"center\"\n * > },\n * > seriesStyles: {},\n * > series: [{\n * > color: \"#4bb2c5\",\n * > lineWidth: 2.5,\n * > linePattern: \"solid\",\n * > shadow: true,\n * > fillColor: \"#4bb2c5\",\n * > showMarker: true,\n * > markerOptions: {\n * > color: \"#4bb2c5\",\n * > show: true,\n * > style: 'filledCircle',\n * > lineWidth: 1.5,\n * > size: 4,\n * > shadow: true\n * > }\n * > }],\n * > grid: {\n * > drawGridlines: true,\n * > gridLineColor: \"#cccccc\",\n * > gridLineWidth: 1,\n * > backgroundColor: \"#fffdf6\",\n * > borderColor: \"#999999\",\n * > borderWidth: 2,\n * > shadow: true\n * > },\n * > axesStyles: {\n * > label: {},\n * > ticks: {}\n * > },\n * > axes: {\n * > xaxis: {\n * > borderColor: \"#999999\",\n * > borderWidth: 2,\n * > ticks: {\n * > show: true,\n * > showGridline: true,\n * > showLabel: true,\n * > showMark: true,\n * > size: 4,\n * > textColor: \"\",\n * > whiteSpace: \"nowrap\",\n * > fontSize: \"12px\",\n * > fontFamily: \"'Trebuchet MS',Arial,Helvetica,sans-serif\"\n * > },\n * > label: {\n * > textColor: \"rgb(102, 102, 102)\",\n * > whiteSpace: \"normal\",\n * > fontSize: \"14.6667px\",\n * > fontFamily: \"'Trebuchet MS',Arial,Helvetica,sans-serif\",\n * > fontWeight: \"400\"\n * > }\n * > },\n * > yaxis: {\n * > borderColor: \"#999999\",\n * > borderWidth: 2,\n * > ticks: {\n * > show: true,\n * > showGridline: true,\n * > showLabel: true,\n * > showMark: true,\n * > size: 4,\n * > textColor: \"\",\n * > whiteSpace: \"nowrap\",\n * > fontSize: \"12px\",\n * > fontFamily: \"'Trebuchet MS',Arial,Helvetica,sans-serif\"\n * > },\n * > label: {\n * > textColor: null,\n * > whiteSpace: null,\n * > fontSize: null,\n * > fontFamily: null,\n * > fontWeight: null\n * > }\n * > },\n * > x2axis: {...\n * > },\n * > ...\n * > y9axis: {...\n * > }\n * > }\n * > }\n * \n * \"seriesStyles\" is a style object that will be applied to all series in the plot.\n * It will forcibly override any styles applied on the individual series. \"axesStyles\" is\n * a style object that will be applied to all axes in the plot. It will also forcibly\n * override any styles on the individual axes.\n * \n * The example shown above has series options for a line series. Options for other\n * series types are shown below:\n * \n * Bar Series:\n * \n * > {\n * > color: \"#4bb2c5\",\n * > seriesColors: [\"#4bb2c5\", \"#EAA228\", \"#c5b47f\", \"#579575\", \"#839557\", \"#958c12\", \"#953579\", \"#4b5de4\", \"#d8b83f\", \"#ff5800\", \"#0085cc\", \"#c747a3\", \"#cddf54\", \"#FBD178\", \"#26B4E3\", \"#bd70c7\"],\n * > lineWidth: 2.5,\n * > shadow: true,\n * > barPadding: 2,\n * > barMargin: 10,\n * > barWidth: 15.09375,\n * > highlightColors: [\"rgb(129,201,214)\", \"rgb(129,201,214)\", \"rgb(129,201,214)\", \"rgb(129,201,214)\", \"rgb(129,201,214)\", \"rgb(129,201,214)\", \"rgb(129,201,214)\", \"rgb(129,201,214)\"]\n * > }\n * \n * Pie Series:\n * \n * > {\n * > seriesColors: [\"#4bb2c5\", \"#EAA228\", \"#c5b47f\", \"#579575\", \"#839557\", \"#958c12\", \"#953579\", \"#4b5de4\", \"#d8b83f\", \"#ff5800\", \"#0085cc\", \"#c747a3\", \"#cddf54\", \"#FBD178\", \"#26B4E3\", \"#bd70c7\"],\n * > padding: 20,\n * > sliceMargin: 0,\n * > fill: true,\n * > shadow: true,\n * > startAngle: 0,\n * > lineWidth: 2.5,\n * > highlightColors: [\"rgb(129,201,214)\", \"rgb(240,189,104)\", \"rgb(214,202,165)\", \"rgb(137,180,158)\", \"rgb(168,180,137)\", \"rgb(180,174,89)\", \"rgb(180,113,161)\", \"rgb(129,141,236)\", \"rgb(227,205,120)\", \"rgb(255,138,76)\", \"rgb(76,169,219)\", \"rgb(215,126,190)\", \"rgb(220,232,135)\", \"rgb(200,167,96)\", \"rgb(103,202,235)\", \"rgb(208,154,215)\"]\n * > }\n * \n * Funnel Series:\n * \n * > {\n * > color: \"#4bb2c5\",\n * > lineWidth: 2,\n * > shadow: true,\n * > padding: {\n * > top: 20,\n * > right: 20,\n * > bottom: 20,\n * > left: 20\n * > },\n * > sectionMargin: 6,\n * > seriesColors: [\"#4bb2c5\", \"#EAA228\", \"#c5b47f\", \"#579575\", \"#839557\", \"#958c12\", \"#953579\", \"#4b5de4\", \"#d8b83f\", \"#ff5800\", \"#0085cc\", \"#c747a3\", \"#cddf54\", \"#FBD178\", \"#26B4E3\", \"#bd70c7\"],\n * > highlightColors: [\"rgb(147,208,220)\", \"rgb(242,199,126)\", \"rgb(220,210,178)\", \"rgb(154,191,172)\", \"rgb(180,191,154)\", \"rgb(191,186,112)\", \"rgb(191,133,174)\", \"rgb(147,157,238)\", \"rgb(231,212,139)\", \"rgb(255,154,102)\", \"rgb(102,181,224)\", \"rgb(221,144,199)\", \"rgb(225,235,152)\", \"rgb(200,167,96)\", \"rgb(124,210,238)\", \"rgb(215,169,221)\"]\n * > }\n * \n */\n $.jqplot.ThemeEngine = function(){\n // Group: Properties\n //\n // prop: themes\n // hash of themes managed by the theme engine. \n // Indexed by theme name.\n this.themes = {};\n // prop: activeTheme\n // Pointer to currently active theme\n this.activeTheme=null;\n \n };\n \n // called with scope of plot\n $.jqplot.ThemeEngine.prototype.init = function() {\n // get the Default theme from the current plot settings.\n var th = new $.jqplot.Theme({_name:'Default'});\n var n, i, nn;\n \n for (n in th.target) {\n if (n == \"textColor\") {\n th.target[n] = this.target.css('color');\n }\n else {\n th.target[n] = this.target.css(n);\n }\n }\n \n if (this.title.show && this.title._elem) {\n for (n in th.title) {\n if (n == \"textColor\") {\n th.title[n] = this.title._elem.css('color');\n }\n else {\n th.title[n] = this.title._elem.css(n);\n }\n }\n }\n \n for (n in th.grid) {\n th.grid[n] = this.grid[n];\n }\n if (th.grid.backgroundColor == null && this.grid.background != null) {\n th.grid.backgroundColor = this.grid.background;\n }\n if (this.legend.show && this.legend._elem) {\n for (n in th.legend) {\n if (n == 'textColor') {\n th.legend[n] = this.legend._elem.css('color');\n }\n else {\n th.legend[n] = this.legend._elem.css(n);\n }\n }\n }\n var s;\n \n for (i=0; i<this.series.length; i++) {\n s = this.series[i];\n if (s.renderer.constructor == $.jqplot.LineRenderer) {\n th.series.push(new LineSeriesProperties());\n }\n else if (s.renderer.constructor == $.jqplot.BarRenderer) {\n th.series.push(new BarSeriesProperties());\n }\n else if (s.renderer.constructor == $.jqplot.PieRenderer) {\n th.series.push(new PieSeriesProperties());\n }\n else if (s.renderer.constructor == $.jqplot.DonutRenderer) {\n th.series.push(new DonutSeriesProperties());\n }\n else if (s.renderer.constructor == $.jqplot.FunnelRenderer) {\n th.series.push(new FunnelSeriesProperties());\n }\n else if (s.renderer.constructor == $.jqplot.MeterGaugeRenderer) {\n th.series.push(new MeterSeriesProperties());\n }\n else {\n th.series.push({});\n }\n for (n in th.series[i]) {\n th.series[i][n] = s[n];\n }\n }\n var a, ax;\n for (n in this.axes) {\n ax = this.axes[n];\n a = th.axes[n] = new AxisProperties();\n a.borderColor = ax.borderColor;\n a.borderWidth = ax.borderWidth;\n if (ax._ticks && ax._ticks[0]) {\n for (nn in a.ticks) {\n if (ax._ticks[0].hasOwnProperty(nn)) {\n a.ticks[nn] = ax._ticks[0][nn];\n }\n else if (ax._ticks[0]._elem){\n a.ticks[nn] = ax._ticks[0]._elem.css(nn);\n }\n }\n }\n if (ax._label && ax._label.show) {\n for (nn in a.label) {\n // a.label[nn] = ax._label._elem.css(nn);\n if (ax._label[nn]) {\n a.label[nn] = ax._label[nn];\n }\n else if (ax._label._elem){\n if (nn == 'textColor') {\n a.label[nn] = ax._label._elem.css('color');\n }\n else {\n a.label[nn] = ax._label._elem.css(nn);\n }\n }\n }\n }\n }\n this.themeEngine._add(th);\n this.themeEngine.activeTheme = this.themeEngine.themes[th._name];\n };\n /**\n * Group: methods\n * \n * method: get\n * \n * Get and return the named theme or the active theme if no name given.\n * \n * parameter:\n * \n * name - name of theme to get.\n * \n * returns:\n * \n * Theme instance of given name.\n */ \n $.jqplot.ThemeEngine.prototype.get = function(name) {\n if (!name) {\n // return the active theme\n return this.activeTheme;\n }\n else {\n return this.themes[name];\n }\n };\n \n function numericalOrder(a,b) { return a-b; }\n \n /**\n * method: getThemeNames\n * \n * Return the list of theme names in this manager in alpha-numerical order.\n * \n * parameter:\n * \n * None\n * \n * returns:\n * \n * A the list of theme names in this manager in alpha-numerical order.\n */ \n $.jqplot.ThemeEngine.prototype.getThemeNames = function() {\n var tn = [];\n for (var n in this.themes) {\n tn.push(n);\n }\n return tn.sort(numericalOrder);\n };\n\n /**\n * method: getThemes\n * \n * Return a list of themes in alpha-numerical order by name.\n * \n * parameter:\n * \n * None\n * \n * returns:\n * \n * A list of themes in alpha-numerical order by name.\n */ \n $.jqplot.ThemeEngine.prototype.getThemes = function() {\n var tn = [];\n var themes = [];\n for (var n in this.themes) {\n tn.push(n);\n }\n tn.sort(numericalOrder);\n for (var i=0; i<tn.length; i++) {\n themes.push(this.themes[tn[i]]);\n }\n return themes;\n };\n \n $.jqplot.ThemeEngine.prototype.activate = function(plot, name) {\n // sometimes need to redraw whole plot.\n var redrawPlot = false;\n if (!name && this.activeTheme && this.activeTheme._name) {\n name = this.activeTheme._name;\n }\n if (!this.themes.hasOwnProperty(name)) {\n throw new Error(\"No theme of that name\");\n }\n else {\n var th = this.themes[name];\n this.activeTheme = th;\n var val, checkBorderColor = false, checkBorderWidth = false;\n var arr = ['xaxis', 'x2axis', 'yaxis', 'y2axis'];\n \n for (i=0; i<arr.length; i++) {\n var ax = arr[i];\n if (th.axesStyles.borderColor != null) {\n plot.axes[ax].borderColor = th.axesStyles.borderColor;\n }\n if (th.axesStyles.borderWidth != null) {\n plot.axes[ax].borderWidth = th.axesStyles.borderWidth;\n }\n }\n \n for (var axname in plot.axes) {\n var axis = plot.axes[axname];\n if (axis.show) {\n var thaxis = th.axes[axname] || {};\n var thaxstyle = th.axesStyles;\n var thax = $.jqplot.extend(true, {}, thaxis, thaxstyle);\n val = (th.axesStyles.borderColor != null) ? th.axesStyles.borderColor : thax.borderColor;\n if (thax.borderColor != null) {\n axis.borderColor = thax.borderColor;\n redrawPlot = true;\n }\n val = (th.axesStyles.borderWidth != null) ? th.axesStyles.borderWidth : thax.borderWidth;\n if (thax.borderWidth != null) {\n axis.borderWidth = thax.borderWidth;\n redrawPlot = true;\n }\n if (axis._ticks && axis._ticks[0]) {\n for (var nn in thax.ticks) {\n // val = null;\n // if (th.axesStyles.ticks && th.axesStyles.ticks[nn] != null) {\n // val = th.axesStyles.ticks[nn];\n // }\n // else if (thax.ticks[nn] != null){\n // val = thax.ticks[nn]\n // }\n val = thax.ticks[nn];\n if (val != null) {\n axis.tickOptions[nn] = val;\n axis._ticks = [];\n redrawPlot = true;\n }\n }\n }\n if (axis._label && axis._label.show) {\n for (var nn in thax.label) {\n // val = null;\n // if (th.axesStyles.label && th.axesStyles.label[nn] != null) {\n // val = th.axesStyles.label[nn];\n // }\n // else if (thax.label && thax.label[nn] != null){\n // val = thax.label[nn]\n // }\n val = thax.label[nn];\n if (val != null) {\n axis.labelOptions[nn] = val;\n redrawPlot = true;\n }\n }\n }\n \n }\n } \n \n for (var n in th.grid) {\n if (th.grid[n] != null) {\n plot.grid[n] = th.grid[n];\n }\n }\n if (!redrawPlot) {\n plot.grid.draw();\n }\n \n if (plot.legend.show) { \n for (n in th.legend) {\n if (th.legend[n] != null) {\n plot.legend[n] = th.legend[n];\n }\n }\n }\n if (plot.title.show) {\n for (n in th.title) {\n if (th.title[n] != null) {\n plot.title[n] = th.title[n];\n }\n }\n }\n \n var i;\n for (i=0; i<th.series.length; i++) {\n var opts = {};\n var redrawSeries = false;\n for (n in th.series[i]) {\n val = (th.seriesStyles[n] != null) ? th.seriesStyles[n] : th.series[i][n];\n if (val != null) {\n opts[n] = val;\n if (n == 'color') {\n plot.series[i].renderer.shapeRenderer.fillStyle = val;\n plot.series[i].renderer.shapeRenderer.strokeStyle = val;\n plot.series[i][n] = val;\n }\n else if ((n == 'lineWidth') || (n == 'linePattern')) {\n plot.series[i].renderer.shapeRenderer[n] = val;\n plot.series[i][n] = val;\n }\n else if (n == 'markerOptions') {\n merge (plot.series[i].markerOptions, val);\n merge (plot.series[i].markerRenderer, val);\n }\n else {\n plot.series[i][n] = val;\n }\n redrawPlot = true;\n }\n }\n }\n \n if (redrawPlot) {\n plot.target.empty();\n plot.draw();\n }\n \n for (n in th.target) {\n if (th.target[n] != null) {\n plot.target.css(n, th.target[n]);\n }\n }\n }\n \n };\n \n $.jqplot.ThemeEngine.prototype._add = function(theme, name) {\n if (name) {\n theme._name = name;\n }\n if (!theme._name) {\n theme._name = Date.parse(new Date());\n }\n if (!this.themes.hasOwnProperty(theme._name)) {\n this.themes[theme._name] = theme;\n }\n else {\n throw new Error(\"jqplot.ThemeEngine Error: Theme already in use\");\n }\n };\n \n // method remove\n // Delete the named theme, return true on success, false on failure.\n \n\n /**\n * method: remove\n * \n * Remove the given theme from the themeEngine.\n * \n * parameters:\n * \n * name - name of the theme to remove.\n * \n * returns:\n * \n * true on success, false on failure.\n */\n $.jqplot.ThemeEngine.prototype.remove = function(name) {\n if (name == 'Default') {\n return false;\n }\n return delete this.themes[name];\n };\n\n /**\n * method: newTheme\n * \n * Create a new theme based on the default theme, adding it the themeEngine.\n * \n * parameters:\n * \n * name - name of the new theme.\n * obj - optional object of styles to be applied to this new theme.\n * \n * returns:\n * \n * new Theme object.\n */\n $.jqplot.ThemeEngine.prototype.newTheme = function(name, obj) {\n if (typeof(name) == 'object') {\n obj = obj || name;\n name = null;\n }\n if (obj && obj._name) {\n name = obj._name;\n }\n else {\n name = name || Date.parse(new Date());\n }\n // var th = new $.jqplot.Theme(name);\n var th = this.copy(this.themes['Default']._name, name);\n $.jqplot.extend(th, obj);\n return th;\n };\n \n // function clone(obj) {\n // return eval(obj.toSource());\n // }\n \n function clone(obj){\n if(obj == null || typeof(obj) != 'object'){\n return obj;\n }\n \n var temp = new obj.constructor();\n for(var key in obj){\n temp[key] = clone(obj[key]);\n } \n return temp;\n }\n \n $.jqplot.clone = clone;\n \n function merge(obj1, obj2) {\n if (obj2 == null || typeof(obj2) != 'object') {\n return;\n }\n for (var key in obj2) {\n if (key == 'highlightColors') {\n obj1[key] = clone(obj2[key]);\n }\n if (obj2[key] != null && typeof(obj2[key]) == 'object') {\n if (!obj1.hasOwnProperty(key)) {\n obj1[key] = {};\n }\n merge(obj1[key], obj2[key]);\n }\n else {\n obj1[key] = obj2[key];\n }\n }\n }\n \n $.jqplot.merge = merge;\n \n // Use the jQuery 1.3.2 extend function since behaviour in jQuery 1.4 seems problematic\n $.jqplot.extend = function() {\n // copy reference to target object\n var target = arguments[0] || {}, i = 1, length = arguments.length, deep = false, options;\n\n // Handle a deep copy situation\n if ( typeof target === \"boolean\" ) {\n deep = target;\n target = arguments[1] || {};\n // skip the boolean and the target\n i = 2;\n }\n\n // Handle case when target is a string or something (possible in deep copy)\n if ( typeof target !== \"object\" && !toString.call(target) === \"[object Function]\" ) {\n target = {};\n }\n\n for ( ; i < length; i++ ){\n // Only deal with non-null/undefined values\n if ( (options = arguments[ i ]) != null ) {\n // Extend the base object\n for ( var name in options ) {\n var src = target[ name ], copy = options[ name ];\n\n // Prevent never-ending loop\n if ( target === copy ) {\n continue;\n }\n\n // Recurse if we're merging object values\n if ( deep && copy && typeof copy === \"object\" && !copy.nodeType ) {\n target[ name ] = $.jqplot.extend( deep, \n // Never move original objects, clone them\n src || ( copy.length != null ? [ ] : { } )\n , copy );\n }\n // Don't bring in undefined values\n else if ( copy !== undefined ) {\n target[ name ] = copy;\n }\n }\n }\n }\n // Return the modified object\n return target;\n };\n\n /**\n * method: rename\n * \n * Rename a theme.\n * \n * parameters:\n * \n * oldName - current name of the theme.\n * newName - desired name of the theme.\n * \n * returns:\n * \n * new Theme object.\n */\n $.jqplot.ThemeEngine.prototype.rename = function (oldName, newName) {\n if (oldName == 'Default' || newName == 'Default') {\n throw new Error (\"jqplot.ThemeEngine Error: Cannot rename from/to Default\");\n }\n if (this.themes.hasOwnProperty(newName)) {\n throw new Error (\"jqplot.ThemeEngine Error: New name already in use.\");\n }\n else if (this.themes.hasOwnProperty(oldName)) {\n var th = this.copy (oldName, newName);\n this.remove(oldName);\n return th;\n }\n throw new Error(\"jqplot.ThemeEngine Error: Old name or new name invalid\");\n };\n\n /**\n * method: copy\n * \n * Create a copy of an existing theme in the themeEngine, adding it the themeEngine.\n * \n * parameters:\n * \n * sourceName - name of the existing theme.\n * targetName - name of the copy.\n * obj - optional object of style parameter to apply to the new theme.\n * \n * returns:\n * \n * new Theme object.\n */\n $.jqplot.ThemeEngine.prototype.copy = function (sourceName, targetName, obj) {\n if (targetName == 'Default') {\n throw new Error (\"jqplot.ThemeEngine Error: Cannot copy over Default theme\");\n }\n if (!this.themes.hasOwnProperty(sourceName)) {\n var s = \"jqplot.ThemeEngine Error: Source name invalid\";\n throw new Error(s);\n }\n if (this.themes.hasOwnProperty(targetName)) {\n var s = \"jqplot.ThemeEngine Error: Target name invalid\";\n throw new Error(s);\n }\n else {\n var th = clone(this.themes[sourceName]);\n th._name = targetName;\n $.jqplot.extend(true, th, obj);\n this._add(th);\n return th;\n }\n };\n \n \n $.jqplot.Theme = function(name, obj) {\n if (typeof(name) == 'object') {\n obj = obj || name;\n name = null;\n }\n name = name || Date.parse(new Date());\n this._name = name;\n this.target = {\n backgroundColor: null\n };\n this.legend = {\n textColor: null,\n fontFamily: null,\n fontSize: null,\n border: null,\n background: null\n };\n this.title = {\n textColor: null,\n fontFamily: null,\n fontSize: null,\n textAlign: null\n };\n this.seriesStyles = {};\n this.series = [];\n this.grid = {\n drawGridlines: null,\n gridLineColor: null,\n gridLineWidth: null,\n backgroundColor: null,\n borderColor: null,\n borderWidth: null,\n shadow: null\n };\n this.axesStyles = {label:{}, ticks:{}};\n this.axes = {};\n if (typeof(obj) == 'string') {\n this._name = obj;\n }\n else if(typeof(obj) == 'object') {\n $.jqplot.extend(true, this, obj);\n }\n };\n \n var AxisProperties = function() {\n this.borderColor = null;\n this.borderWidth = null;\n this.ticks = new AxisTicks();\n this.label = new AxisLabel();\n };\n \n var AxisTicks = function() {\n this.show = null;\n this.showGridline = null;\n this.showLabel = null;\n this.showMark = null;\n this.size = null;\n this.textColor = null;\n this.whiteSpace = null;\n this.fontSize = null;\n this.fontFamily = null;\n };\n \n var AxisLabel = function() {\n this.textColor = null;\n this.whiteSpace = null;\n this.fontSize = null;\n this.fontFamily = null;\n this.fontWeight = null;\n };\n \n var LineSeriesProperties = function() {\n this.color=null;\n this.lineWidth=null;\n this.linePattern=null;\n this.shadow=null;\n this.fillColor=null;\n this.showMarker=null;\n this.markerOptions = new MarkerOptions();\n };\n \n var MarkerOptions = function() {\n this.show = null;\n this.style = null;\n this.lineWidth = null;\n this.size = null;\n this.color = null;\n this.shadow = null;\n };\n \n var BarSeriesProperties = function() {\n this.color=null;\n this.seriesColors=null;\n this.lineWidth=null;\n this.shadow=null;\n this.barPadding=null;\n this.barMargin=null;\n this.barWidth=null;\n this.highlightColors=null;\n };\n \n var PieSeriesProperties = function() {\n this.seriesColors=null;\n this.padding=null;\n this.sliceMargin=null;\n this.fill=null;\n this.shadow=null;\n this.startAngle=null;\n this.lineWidth=null;\n this.highlightColors=null;\n };\n \n var DonutSeriesProperties = function() {\n this.seriesColors=null;\n this.padding=null;\n this.sliceMargin=null;\n this.fill=null;\n this.shadow=null;\n this.startAngle=null;\n this.lineWidth=null;\n this.innerDiameter=null;\n this.thickness=null;\n this.ringMargin=null;\n this.highlightColors=null;\n };\n \n var FunnelSeriesProperties = function() {\n this.color=null;\n this.lineWidth=null;\n this.shadow=null;\n this.padding=null;\n this.sectionMargin=null;\n this.seriesColors=null;\n this.highlightColors=null;\n };\n \n var MeterSeriesProperties = function() {\n this.padding=null;\n this.backgroundColor=null;\n this.ringColor=null;\n this.tickColor=null;\n this.ringWidth=null;\n this.intervalColors=null;\n this.intervalInnerRadius=null;\n this.intervalOuterRadius=null;\n this.hubRadius=null;\n this.needleThickness=null;\n this.needlePad=null;\n };\n \n\n\n\n $.fn.jqplotChildText = function() {\n return $(this).contents().filter(function() {\n return this.nodeType == 3; // Node.TEXT_NODE not defined in I7\n }).text();\n };\n\n // Returns font style as abbreviation for \"font\" property.\n $.fn.jqplotGetComputedFontStyle = function() {\n var css = window.getComputedStyle ? window.getComputedStyle(this[0], \"\") : this[0].currentStyle;\n var attrs = css['font-style'] ? ['font-style', 'font-weight', 'font-size', 'font-family'] : ['fontStyle', 'fontWeight', 'fontSize', 'fontFamily'];\n var style = [];\n\n for (var i=0 ; i < attrs.length; ++i) {\n var attr = String(css[attrs[i]]);\n\n if (attr && attr != 'normal') {\n style.push(attr);\n }\n }\n return style.join(' ');\n };\n\n /**\n * Namespace: $.fn\n * jQuery namespace to attach functions to jQuery elements.\n * \n */\n\n $.fn.jqplotToImageCanvas = function(options) {\n\n options = options || {};\n var x_offset = (options.x_offset == null) ? 0 : options.x_offset;\n var y_offset = (options.y_offset == null) ? 0 : options.y_offset;\n var backgroundColor = (options.backgroundColor == null) ? 'rgb(255,255,255)' : options.backgroundColor;\n\n if ($(this).width() == 0 || $(this).height() == 0) {\n return null;\n }\n\n // excanvas and hence IE < 9 do not support toDataURL and cannot export images.\n if ($.jqplot.use_excanvas) {\n return null;\n }\n \n var newCanvas = document.createElement(\"canvas\");\n var h = $(this).outerHeight(true);\n var w = $(this).outerWidth(true);\n var offs = $(this).offset();\n var plotleft = offs.left;\n var plottop = offs.top;\n var transx = 0, transy = 0;\n\n // have to check if any elements are hanging outside of plot area before rendering,\n // since changing width of canvas will erase canvas.\n\n var clses = ['jqplot-table-legend', 'jqplot-xaxis-tick', 'jqplot-x2axis-tick', 'jqplot-yaxis-tick', 'jqplot-y2axis-tick', 'jqplot-y3axis-tick', \n 'jqplot-y4axis-tick', 'jqplot-y5axis-tick', 'jqplot-y6axis-tick', 'jqplot-y7axis-tick', 'jqplot-y8axis-tick', 'jqplot-y9axis-tick',\n 'jqplot-xaxis-label', 'jqplot-x2axis-label', 'jqplot-yaxis-label', 'jqplot-y2axis-label', 'jqplot-y3axis-label', 'jqplot-y4axis-label', \n 'jqplot-y5axis-label', 'jqplot-y6axis-label', 'jqplot-y7axis-label', 'jqplot-y8axis-label', 'jqplot-y9axis-label' ];\n\n var temptop, templeft, tempbottom, tempright;\n\n for (var i = 0; i < clses.length; i++) {\n $(this).find('.'+clses[i]).each(function() {\n temptop = $(this).offset().top - plottop;\n templeft = $(this).offset().left - plotleft;\n tempright = templeft + $(this).outerWidth(true) + transx;\n tempbottom = temptop + $(this).outerHeight(true) + transy;\n if (templeft < -transx) {\n w = w - transx - templeft;\n transx = -templeft;\n }\n if (temptop < -transy) {\n h = h - transy - temptop;\n transy = - temptop;\n }\n if (tempright > w) {\n w = tempright;\n }\n if (tempbottom > h) {\n h = tempbottom;\n }\n });\n }\n\n newCanvas.width = w + Number(x_offset);\n newCanvas.height = h + Number(y_offset);\n\n var newContext = newCanvas.getContext(\"2d\"); \n\n newContext.save();\n newContext.fillStyle = backgroundColor;\n newContext.fillRect(0,0, newCanvas.width, newCanvas.height);\n newContext.restore();\n\n newContext.translate(transx, transy);\n newContext.textAlign = 'left';\n newContext.textBaseline = 'top';\n\n function getLineheight(el) {\n var lineheight = parseInt($(el).css('line-height'), 10);\n\n if (isNaN(lineheight)) {\n lineheight = parseInt($(el).css('font-size'), 10) * 1.2;\n }\n return lineheight;\n }\n\n function writeWrappedText (el, context, text, left, top, canvasWidth) {\n var lineheight = getLineheight(el);\n var tagwidth = $(el).innerWidth();\n var tagheight = $(el).innerHeight();\n var words = text.split(/\\s+/);\n var wl = words.length;\n var w = '';\n var breaks = [];\n var temptop = top;\n var templeft = left;\n\n for (var i=0; i<wl; i++) {\n w += words[i];\n if (context.measureText(w).width > tagwidth) {\n breaks.push(i);\n w = '';\n i--;\n } \n }\n if (breaks.length === 0) {\n // center text if necessary\n if ($(el).css('textAlign') === 'center') {\n templeft = left + (canvasWidth - context.measureText(w).width)/2 - transx;\n }\n context.fillText(text, templeft, top);\n }\n else {\n w = words.slice(0, breaks[0]).join(' ');\n // center text if necessary\n if ($(el).css('textAlign') === 'center') {\n templeft = left + (canvasWidth - context.measureText(w).width)/2 - transx;\n }\n context.fillText(w, templeft, temptop);\n temptop += lineheight;\n for (var i=1, l=breaks.length; i<l; i++) {\n w = words.slice(breaks[i-1], breaks[i]).join(' ');\n // center text if necessary\n if ($(el).css('textAlign') === 'center') {\n templeft = left + (canvasWidth - context.measureText(w).width)/2 - transx;\n }\n context.fillText(w, templeft, temptop);\n temptop += lineheight;\n }\n w = words.slice(breaks[i-1], words.length).join(' ');\n // center text if necessary\n if ($(el).css('textAlign') === 'center') {\n templeft = left + (canvasWidth - context.measureText(w).width)/2 - transx;\n }\n context.fillText(w, templeft, temptop);\n }\n\n }\n\n function _jqpToImage(el, x_offset, y_offset) {\n var tagname = el.tagName.toLowerCase();\n var p = $(el).position();\n var css = window.getComputedStyle ? window.getComputedStyle(el, \"\") : el.currentStyle; // for IE < 9\n var left = x_offset + p.left + parseInt(css.marginLeft, 10) + parseInt(css.borderLeftWidth, 10) + parseInt(css.paddingLeft, 10);\n var top = y_offset + p.top + parseInt(css.marginTop, 10) + parseInt(css.borderTopWidth, 10)+ parseInt(css.paddingTop, 10);\n var w = newCanvas.width;\n // var left = x_offset + p.left + $(el).css('marginLeft') + $(el).css('borderLeftWidth') \n\n // somehow in here, for divs within divs, the width of the inner div should be used instead of the canvas.\n\n if ((tagname == 'div' || tagname == 'span') && !$(el).hasClass('jqplot-highlighter-tooltip')) {\n $(el).children().each(function() {\n _jqpToImage(this, left, top);\n });\n var text = $(el).jqplotChildText();\n\n if (text) {\n newContext.font = $(el).jqplotGetComputedFontStyle();\n newContext.fillStyle = $(el).css('color');\n\n writeWrappedText(el, newContext, text, left, top, w);\n }\n }\n\n // handle the standard table legend\n\n else if (tagname === 'table' && $(el).hasClass('jqplot-table-legend')) {\n newContext.strokeStyle = $(el).css('border-top-color');\n newContext.fillStyle = $(el).css('background-color');\n newContext.fillRect(left, top, $(el).innerWidth(), $(el).innerHeight());\n if (parseInt($(el).css('border-top-width'), 10) > 0) {\n newContext.strokeRect(left, top, $(el).innerWidth(), $(el).innerHeight());\n }\n\n // find all the swatches\n $(el).find('div.jqplot-table-legend-swatch-outline').each(function() {\n // get the first div and stroke it\n var elem = $(this);\n newContext.strokeStyle = elem.css('border-top-color');\n var l = left + elem.position().left;\n var t = top + elem.position().top;\n newContext.strokeRect(l, t, elem.innerWidth(), elem.innerHeight());\n\n // now fill the swatch\n \n l += parseInt(elem.css('padding-left'), 10);\n t += parseInt(elem.css('padding-top'), 10);\n var h = elem.innerHeight() - 2 * parseInt(elem.css('padding-top'), 10);\n var w = elem.innerWidth() - 2 * parseInt(elem.css('padding-left'), 10);\n\n var swatch = elem.children('div.jqplot-table-legend-swatch');\n newContext.fillStyle = swatch.css('background-color');\n newContext.fillRect(l, t, w, h);\n });\n\n // now add text\n\n $(el).find('td.jqplot-table-legend-label').each(function(){\n var elem = $(this);\n var l = left + elem.position().left;\n var t = top + elem.position().top + parseInt(elem.css('padding-top'), 10);\n newContext.font = elem.jqplotGetComputedFontStyle();\n newContext.fillStyle = elem.css('color');\n writeWrappedText(elem, newContext, elem.text(), l, t, w);\n });\n\n var elem = null;\n }\n\n else if (tagname == 'canvas') {\n newContext.drawImage(el, left, top);\n }\n }\n $(this).children().each(function() {\n _jqpToImage(this, x_offset, y_offset);\n });\n return newCanvas;\n };\n\n // return the raw image data string.\n // Should work on canvas supporting browsers.\n $.fn.jqplotToImageStr = function(options) {\n var imgCanvas = $(this).jqplotToImageCanvas(options);\n if (imgCanvas) {\n return imgCanvas.toDataURL(\"image/png\");\n }\n else {\n return null;\n }\n };\n\n // return a DOM <img> element and return it.\n // Should work on canvas supporting browsers.\n $.fn.jqplotToImageElem = function(options) {\n var elem = document.createElement(\"img\");\n var str = $(this).jqplotToImageStr(options);\n elem.src = str;\n return elem;\n };\n\n // return a string for an <img> element and return it.\n // Should work on canvas supporting browsers.\n $.fn.jqplotToImageElemStr = function(options) {\n var str = '<img src='+$(this).jqplotToImageStr(options)+' />';\n return str;\n };\n\n // Not guaranteed to work, even on canvas supporting browsers due to \n // limitations with location.href and browser support.\n $.fn.jqplotSaveImage = function() {\n var imgData = $(this).jqplotToImageStr({});\n if (imgData) {\n window.location.href = imgData.replace(\"image/png\", \"image/octet-stream\");\n }\n\n };\n\n // Not guaranteed to work, even on canvas supporting browsers due to\n // limitations with window.open and arbitrary data.\n $.fn.jqplotViewImage = function() {\n var imgStr = $(this).jqplotToImageElemStr({});\n var imgData = $(this).jqplotToImageStr({});\n if (imgStr) {\n var w = window.open('');\n w.document.open(\"image/png\");\n w.document.write(imgStr);\n w.document.close();\n w = null;\n }\n };\n \n\n\n\n /** \n * @description\n * <p>Object with extended date parsing and formatting capabilities.\n * This library borrows many concepts and ideas from the Date Instance \n * Methods by Ken Snyder along with some parts of Ken's actual code.</p>\n *\n * <p>jsDate takes a different approach by not extending the built-in \n * Date Object, improving date parsing, allowing for multiple formatting \n * syntaxes and multiple and more easily expandable localization.</p>\n * \n * @author Chris Leonello\n * @date #date#\n * @version #VERSION#\n * @copyright (c) 2010-2013 Chris Leonello\n * jsDate is currently available for use in all personal or commercial projects \n * under both the MIT and GPL version 2.0 licenses. This means that you can \n * choose the license that best suits your project and use it accordingly.\n * \n * <p>Ken's original Date Instance Methods and copyright notice:</p>\n * <pre>\n * Ken Snyder (ken d snyder at gmail dot com)\n * 2008-09-10\n * version 2.0.2 (http://kendsnyder.com/sandbox/date/) \n * Creative Commons Attribution License 3.0 (http://creativecommons.org/licenses/by/3.0/)\n * </pre>\n * \n * @class\n * @name jsDate\n * @param {String | Number | Array | Date Object | Options Object} arguments Optional arguments, either a parsable date/time string,\n * a JavaScript timestamp, an array of numbers of form [year, month, day, hours, minutes, seconds, milliseconds],\n * a Date object, or an options object of form {syntax: \"perl\", date:some Date} where all options are optional.\n */\n \n var jsDate = function () {\n \n this.syntax = jsDate.config.syntax;\n this._type = \"jsDate\";\n this.proxy = new Date();\n this.options = {};\n this.locale = jsDate.regional.getLocale();\n this.formatString = '';\n this.defaultCentury = jsDate.config.defaultCentury;\n\n switch ( arguments.length ) {\n case 0:\n break;\n case 1:\n // other objects either won't have a _type property or,\n // if they do, it shouldn't be set to \"jsDate\", so\n // assume it is an options argument.\n if (get_type(arguments[0]) == \"[object Object]\" && arguments[0]._type != \"jsDate\") {\n var opts = this.options = arguments[0];\n this.syntax = opts.syntax || this.syntax;\n this.defaultCentury = opts.defaultCentury || this.defaultCentury;\n this.proxy = jsDate.createDate(opts.date);\n }\n else {\n this.proxy = jsDate.createDate(arguments[0]);\n }\n break;\n default:\n var a = [];\n for ( var i=0; i<arguments.length; i++ ) {\n a.push(arguments[i]);\n }\n // this should be the current date/time?\n this.proxy = new Date();\n this.proxy.setFullYear.apply( this.proxy, a.slice(0,3) );\n if ( a.slice(3).length ) {\n this.proxy.setHours.apply( this.proxy, a.slice(3) );\n }\n break;\n }\n };\n \n /**\n * @namespace Configuration options that will be used as defaults for all instances on the page.\n * @property {String} defaultLocale The default locale to use [en].\n * @property {String} syntax The default syntax to use [perl].\n * @property {Number} defaultCentury The default centry for 2 digit dates.\n */\n jsDate.config = {\n defaultLocale: 'en',\n syntax: 'perl',\n defaultCentury: 1900\n };\n \n /**\n * Add an arbitrary amount to the currently stored date\n * \n * @param {Number} number \n * @param {String} unit\n * @returns {jsDate} \n */\n \n jsDate.prototype.add = function(number, unit) {\n var factor = multipliers[unit] || multipliers.day;\n if (typeof factor == 'number') {\n this.proxy.setTime(this.proxy.getTime() + (factor * number));\n } else {\n factor.add(this, number);\n }\n return this;\n };\n \n /**\n * Create a new jqplot.date object with the same date\n * \n * @returns {jsDate}\n */ \n \n jsDate.prototype.clone = function() {\n return new jsDate(this.proxy.getTime());\n };\n\n /**\n * Get the UTC TimeZone Offset of this date in milliseconds.\n *\n * @returns {Number}\n */\n\n jsDate.prototype.getUtcOffset = function() {\n return this.proxy.getTimezoneOffset() * 60000;\n };\n\n /**\n * Find the difference between this jsDate and another date.\n * \n * @param {String| Number| Array| jsDate Object| Date Object} dateObj\n * @param {String} unit\n * @param {Boolean} allowDecimal\n * @returns {Number} Number of units difference between dates.\n */\n \n jsDate.prototype.diff = function(dateObj, unit, allowDecimal) {\n // ensure we have a Date object\n dateObj = new jsDate(dateObj);\n if (dateObj === null) {\n return null;\n }\n // get the multiplying factor integer or factor function\n var factor = multipliers[unit] || multipliers.day;\n if (typeof factor == 'number') {\n // multiply\n var unitDiff = (this.proxy.getTime() - dateObj.proxy.getTime()) / factor;\n } else {\n // run function\n var unitDiff = factor.diff(this.proxy, dateObj.proxy);\n }\n // if decimals are not allowed, round toward zero\n return (allowDecimal ? unitDiff : Math[unitDiff > 0 ? 'floor' : 'ceil'](unitDiff)); \n };\n \n /**\n * Get the abbreviated name of the current week day\n * \n * @returns {String}\n */ \n \n jsDate.prototype.getAbbrDayName = function() {\n return jsDate.regional[this.locale][\"dayNamesShort\"][this.proxy.getDay()];\n };\n \n /**\n * Get the abbreviated name of the current month\n * \n * @returns {String}\n */\n \n jsDate.prototype.getAbbrMonthName = function() {\n return jsDate.regional[this.locale][\"monthNamesShort\"][this.proxy.getMonth()];\n };\n \n /**\n * Get UPPER CASE AM or PM for the current time\n * \n * @returns {String}\n */\n \n jsDate.prototype.getAMPM = function() {\n return this.proxy.getHours() >= 12 ? 'PM' : 'AM';\n };\n \n /**\n * Get lower case am or pm for the current time\n * \n * @returns {String}\n */\n \n jsDate.prototype.getAmPm = function() {\n return this.proxy.getHours() >= 12 ? 'pm' : 'am';\n };\n \n /**\n * Get the century (19 for 20th Century)\n *\n * @returns {Integer} Century (19 for 20th century).\n */\n jsDate.prototype.getCentury = function() { \n return parseInt(this.proxy.getFullYear()/100, 10);\n };\n \n /**\n * Implements Date functionality\n */\n jsDate.prototype.getDate = function() {\n return this.proxy.getDate();\n };\n \n /**\n * Implements Date functionality\n */\n jsDate.prototype.getDay = function() {\n return this.proxy.getDay();\n };\n \n /**\n * Get the Day of week 1 (Monday) thru 7 (Sunday)\n * \n * @returns {Integer} Day of week 1 (Monday) thru 7 (Sunday)\n */\n jsDate.prototype.getDayOfWeek = function() { \n var dow = this.proxy.getDay(); \n return dow===0?7:dow; \n };\n \n /**\n * Get the day of the year\n * \n * @returns {Integer} 1 - 366, day of the year\n */\n jsDate.prototype.getDayOfYear = function() {\n var d = this.proxy;\n var ms = d - new Date('' + d.getFullYear() + '/1/1 GMT');\n ms += d.getTimezoneOffset()*60000;\n d = null;\n return parseInt(ms/60000/60/24, 10)+1;\n };\n \n /**\n * Get the name of the current week day\n * \n * @returns {String}\n */ \n \n jsDate.prototype.getDayName = function() {\n return jsDate.regional[this.locale][\"dayNames\"][this.proxy.getDay()];\n };\n \n /**\n * Get the week number of the given year, starting with the first Sunday as the first week\n * @returns {Integer} Week number (13 for the 13th full week of the year).\n */\n jsDate.prototype.getFullWeekOfYear = function() {\n var d = this.proxy;\n var doy = this.getDayOfYear();\n var rdow = 6-d.getDay();\n var woy = parseInt((doy+rdow)/7, 10);\n return woy;\n };\n \n /**\n * Implements Date functionality\n */\n jsDate.prototype.getFullYear = function() {\n return this.proxy.getFullYear();\n };\n \n /**\n * Get the GMT offset in hours and minutes (e.g. +06:30)\n * \n * @returns {String}\n */\n \n jsDate.prototype.getGmtOffset = function() {\n // divide the minutes offset by 60\n var hours = this.proxy.getTimezoneOffset() / 60;\n // decide if we are ahead of or behind GMT\n var prefix = hours < 0 ? '+' : '-';\n // remove the negative sign if any\n hours = Math.abs(hours);\n // add the +/- to the padded number of hours to : to the padded minutes\n return prefix + addZeros(Math.floor(hours), 2) + ':' + addZeros((hours % 1) * 60, 2);\n };\n \n /**\n * Implements Date functionality\n */\n jsDate.prototype.getHours = function() {\n return this.proxy.getHours();\n };\n \n /**\n * Get the current hour on a 12-hour scheme\n * \n * @returns {Integer}\n */\n \n jsDate.prototype.getHours12 = function() {\n var hours = this.proxy.getHours();\n return hours > 12 ? hours - 12 : (hours == 0 ? 12 : hours);\n };\n \n \n jsDate.prototype.getIsoWeek = function() {\n var d = this.proxy;\n var woy = this.getWeekOfYear();\n var dow1_1 = (new Date('' + d.getFullYear() + '/1/1')).getDay();\n // First week is 01 and not 00 as in the case of %U and %W,\n // so we add 1 to the final result except if day 1 of the year\n // is a Monday (then %W returns 01).\n // We also need to subtract 1 if the day 1 of the year is \n // Friday-Sunday, so the resulting equation becomes:\n var idow = woy + (dow1_1 > 4 || dow1_1 <= 1 ? 0 : 1);\n if(idow == 53 && (new Date('' + d.getFullYear() + '/12/31')).getDay() < 4)\n {\n idow = 1;\n }\n else if(idow === 0)\n {\n d = new jsDate(new Date('' + (d.getFullYear()-1) + '/12/31'));\n idow = d.getIsoWeek();\n }\n d = null;\n return idow;\n };\n \n /**\n * Implements Date functionality\n */\n jsDate.prototype.getMilliseconds = function() {\n return this.proxy.getMilliseconds();\n };\n \n /**\n * Implements Date functionality\n */\n jsDate.prototype.getMinutes = function() {\n return this.proxy.getMinutes();\n };\n \n /**\n * Implements Date functionality\n */\n jsDate.prototype.getMonth = function() {\n return this.proxy.getMonth();\n };\n \n /**\n * Get the name of the current month\n * \n * @returns {String}\n */\n \n jsDate.prototype.getMonthName = function() {\n return jsDate.regional[this.locale][\"monthNames\"][this.proxy.getMonth()];\n };\n \n /**\n * Get the number of the current month, 1-12\n * \n * @returns {Integer}\n */\n \n jsDate.prototype.getMonthNumber = function() {\n return this.proxy.getMonth() + 1;\n };\n \n /**\n * Implements Date functionality\n */\n jsDate.prototype.getSeconds = function() {\n return this.proxy.getSeconds();\n };\n \n /**\n * Return a proper two-digit year integer\n * \n * @returns {Integer}\n */\n \n jsDate.prototype.getShortYear = function() {\n return this.proxy.getYear() % 100;\n };\n \n /**\n * Implements Date functionality\n */\n jsDate.prototype.getTime = function() {\n return this.proxy.getTime();\n };\n \n /**\n * Get the timezone abbreviation\n *\n * @returns {String} Abbreviation for the timezone\n */\n jsDate.prototype.getTimezoneAbbr = function() {\n return this.proxy.toString().replace(/^.*\\(([^)]+)\\)$/, '$1'); \n };\n \n /**\n * Get the browser-reported name for the current timezone (e.g. MDT, Mountain Daylight Time)\n * \n * @returns {String}\n */\n jsDate.prototype.getTimezoneName = function() {\n var match = /(?:\\((.+)\\)$| ([A-Z]{3}) )/.exec(this.toString());\n return match[1] || match[2] || 'GMT' + this.getGmtOffset();\n }; \n \n /**\n * Implements Date functionality\n */\n jsDate.prototype.getTimezoneOffset = function() {\n return this.proxy.getTimezoneOffset();\n };\n \n \n /**\n * Get the week number of the given year, starting with the first Monday as the first week\n * @returns {Integer} Week number (13 for the 13th week of the year).\n */\n jsDate.prototype.getWeekOfYear = function() {\n var doy = this.getDayOfYear();\n var rdow = 7 - this.getDayOfWeek();\n var woy = parseInt((doy+rdow)/7, 10);\n return woy;\n };\n \n /**\n * Get the current date as a Unix timestamp\n * \n * @returns {Integer}\n */\n \n jsDate.prototype.getUnix = function() {\n return Math.round(this.proxy.getTime() / 1000, 0);\n }; \n \n /**\n * Implements Date functionality\n */\n jsDate.prototype.getYear = function() {\n return this.proxy.getYear();\n };\n \n /**\n * Return a date one day ahead (or any other unit)\n * \n * @param {String} unit Optional, year | month | day | week | hour | minute | second | millisecond\n * @returns {jsDate}\n */\n \n jsDate.prototype.next = function(unit) {\n unit = unit || 'day';\n return this.clone().add(1, unit);\n };\n \n /**\n * Set the jsDate instance to a new date.\n *\n * @param {String | Number | Array | Date Object | jsDate Object | Options Object} arguments Optional arguments, \n * either a parsable date/time string,\n * a JavaScript timestamp, an array of numbers of form [year, month, day, hours, minutes, seconds, milliseconds],\n * a Date object, jsDate Object or an options object of form {syntax: \"perl\", date:some Date} where all options are optional.\n */\n jsDate.prototype.set = function() {\n switch ( arguments.length ) {\n case 0:\n this.proxy = new Date();\n break;\n case 1:\n // other objects either won't have a _type property or,\n // if they do, it shouldn't be set to \"jsDate\", so\n // assume it is an options argument.\n if (get_type(arguments[0]) == \"[object Object]\" && arguments[0]._type != \"jsDate\") {\n var opts = this.options = arguments[0];\n this.syntax = opts.syntax || this.syntax;\n this.defaultCentury = opts.defaultCentury || this.defaultCentury;\n this.proxy = jsDate.createDate(opts.date);\n }\n else {\n this.proxy = jsDate.createDate(arguments[0]);\n }\n break;\n default:\n var a = [];\n for ( var i=0; i<arguments.length; i++ ) {\n a.push(arguments[i]);\n }\n // this should be the current date/time\n this.proxy = new Date();\n this.proxy.setFullYear.apply( this.proxy, a.slice(0,3) );\n if ( a.slice(3).length ) {\n this.proxy.setHours.apply( this.proxy, a.slice(3) );\n }\n break;\n }\n return this;\n };\n \n /**\n * Sets the day of the month for a specified date according to local time.\n * @param {Integer} dayValue An integer from 1 to 31, representing the day of the month. \n */\n jsDate.prototype.setDate = function(n) {\n this.proxy.setDate(n);\n return this;\n };\n \n /**\n * Sets the full year for a specified date according to local time.\n * @param {Integer} yearValue The numeric value of the year, for example, 1995. \n * @param {Integer} monthValue Optional, between 0 and 11 representing the months January through December. \n * @param {Integer} dayValue Optional, between 1 and 31 representing the day of the month. If you specify the dayValue parameter, you must also specify the monthValue. \n */\n jsDate.prototype.setFullYear = function() {\n this.proxy.setFullYear.apply(this.proxy, arguments);\n return this;\n };\n \n /**\n * Sets the hours for a specified date according to local time.\n * \n * @param {Integer} hoursValue An integer between 0 and 23, representing the hour. \n * @param {Integer} minutesValue Optional, An integer between 0 and 59, representing the minutes. \n * @param {Integer} secondsValue Optional, An integer between 0 and 59, representing the seconds. \n * If you specify the secondsValue parameter, you must also specify the minutesValue. \n * @param {Integer} msValue Optional, A number between 0 and 999, representing the milliseconds. \n * If you specify the msValue parameter, you must also specify the minutesValue and secondsValue. \n */\n jsDate.prototype.setHours = function() {\n this.proxy.setHours.apply(this.proxy, arguments);\n return this;\n };\n \n /**\n * Implements Date functionality\n */ \n jsDate.prototype.setMilliseconds = function(n) {\n this.proxy.setMilliseconds(n);\n return this;\n };\n \n /**\n * Implements Date functionality\n */ \n jsDate.prototype.setMinutes = function() {\n this.proxy.setMinutes.apply(this.proxy, arguments);\n return this;\n };\n \n /**\n * Implements Date functionality\n */ \n jsDate.prototype.setMonth = function() {\n this.proxy.setMonth.apply(this.proxy, arguments);\n return this;\n };\n \n /**\n * Implements Date functionality\n */ \n jsDate.prototype.setSeconds = function() {\n this.proxy.setSeconds.apply(this.proxy, arguments);\n return this;\n };\n \n /**\n * Implements Date functionality\n */ \n jsDate.prototype.setTime = function(n) {\n this.proxy.setTime(n);\n return this;\n };\n \n /**\n * Implements Date functionality\n */ \n jsDate.prototype.setYear = function() {\n this.proxy.setYear.apply(this.proxy, arguments);\n return this;\n };\n \n /**\n * Provide a formatted string representation of this date.\n * \n * @param {String} formatString A format string. \n * See: {@link jsDate.formats}.\n * @returns {String} Date String.\n */\n \n jsDate.prototype.strftime = function(formatString) {\n formatString = formatString || this.formatString || jsDate.regional[this.locale]['formatString'];\n return jsDate.strftime(this, formatString, this.syntax);\n };\n \n /**\n * Return a String representation of this jsDate object.\n * @returns {String} Date string.\n */\n \n jsDate.prototype.toString = function() {\n return this.proxy.toString();\n };\n \n /**\n * Convert the current date to an 8-digit integer (%Y%m%d)\n * \n * @returns {Integer}\n */\n \n jsDate.prototype.toYmdInt = function() {\n return (this.proxy.getFullYear() * 10000) + (this.getMonthNumber() * 100) + this.proxy.getDate();\n };\n \n /**\n * @namespace Holds localizations for month/day names.\n * <p>jsDate attempts to detect locale when loaded and defaults to 'en'.\n * If a localization is detected which is not available, jsDate defaults to 'en'.\n * Additional localizations can be added after jsDate loads. After adding a localization,\n * call the jsDate.regional.getLocale() method. Currently, en, fr and de are defined.</p>\n * \n * <p>Localizations must be an object and have the following properties defined: monthNames, monthNamesShort, dayNames, dayNamesShort and Localizations are added like:</p>\n * <pre class=\"code\">\n * jsDate.regional['en'] = {\n * monthNames : 'January February March April May June July August September October November December'.split(' '),\n * monthNamesShort : 'Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec'.split(' '),\n * dayNames : 'Sunday Monday Tuesday Wednesday Thursday Friday Saturday'.split(' '),\n * dayNamesShort : 'Sun Mon Tue Wed Thu Fri Sat'.split(' ')\n * };\n * </pre>\n * <p>After adding localizations, call <code>jsDate.regional.getLocale();</code> to update the locale setting with the\n * new localizations.</p>\n */\n \n jsDate.regional = {\n 'en': {\n monthNames: ['January','February','March','April','May','June','July','August','September','October','November','December'],\n monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun','Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n formatString: '%Y-%m-%d %H:%M:%S'\n },\n \n 'fr': {\n monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre'],\n monthNamesShort: ['Jan','Fév','Mar','Avr','Mai','Jun','Jul','Aoû','Sep','Oct','Nov','Déc'],\n dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'],\n dayNamesShort: ['Dim','Lun','Mar','Mer','Jeu','Ven','Sam'],\n formatString: '%Y-%m-%d %H:%M:%S'\n },\n \n 'de': {\n monthNames: ['Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'],\n monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun','Jul','Aug','Sep','Okt','Nov','Dez'],\n dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'],\n dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'],\n formatString: '%Y-%m-%d %H:%M:%S'\n },\n \n 'es': {\n monthNames: ['Enero','Febrero','Marzo','Abril','Mayo','Junio', 'Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'],\n monthNamesShort: ['Ene','Feb','Mar','Abr','May','Jun', 'Jul','Ago','Sep','Oct','Nov','Dic'],\n dayNames: ['Domingo','Lunes','Martes','Miércoles','Jueves','Viernes','Sábado'],\n dayNamesShort: ['Dom','Lun','Mar','Mié','Juv','Vie','Sáb'],\n formatString: '%Y-%m-%d %H:%M:%S'\n },\n \n 'ru': {\n monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],\n monthNamesShort: ['Янв','Фев','Мар','Апр','Май','Июн','Июл','Авг','Сен','Окт','Ноя','Дек'],\n dayNames: ['воскресенье','понедельник','вторник','среда','четверг','пятница','суббота'],\n dayNamesShort: ['вск','пнд','втр','срд','чтв','птн','сбт'],\n formatString: '%Y-%m-%d %H:%M:%S'\n },\n \n 'ar': {\n monthNames: ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'آذار', 'حزيران','تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'],\n monthNamesShort: ['1','2','3','4','5','6','7','8','9','10','11','12'],\n dayNames: ['السبت', 'الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة'],\n dayNamesShort: ['سبت', 'أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة'],\n formatString: '%Y-%m-%d %H:%M:%S'\n },\n \n 'pt': {\n monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'],\n monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun','Jul','Ago','Set','Out','Nov','Dez'],\n dayNames: ['Domingo','Segunda-feira','Terça-feira','Quarta-feira','Quinta-feira','Sexta-feira','Sábado'],\n dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'],\n formatString: '%Y-%m-%d %H:%M:%S' \n },\n \n 'pt-BR': {\n monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho', 'Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'],\n monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun','Jul','Ago','Set','Out','Nov','Dez'],\n dayNames: ['Domingo','Segunda-feira','Terça-feira','Quarta-feira','Quinta-feira','Sexta-feira','Sábado'],\n dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'],\n formatString: '%Y-%m-%d %H:%M:%S'\n },\n \n 'pl': {\n monthNames: ['Styczeń','Luty','Marzec','Kwiecień','Maj','Czerwiec','Lipiec','Sierpień','Wrzesień','Październik','Listopad','Grudzień'],\n monthNamesShort: ['Sty', 'Lut', 'Mar', 'Kwi', 'Maj', 'Cze','Lip', 'Sie', 'Wrz', 'Paź', 'Lis', 'Gru'],\n dayNames: ['Niedziela', 'Poniedziałek', 'Wtorek', 'Środa', 'Czwartek', 'Piątek', 'Sobota'],\n dayNamesShort: ['Ni', 'Pn', 'Wt', 'Śr', 'Cz', 'Pt', 'Sb'],\n formatString: '%Y-%m-%d %H:%M:%S'\n },\n\n 'nl': {\n monthNames: ['Januari','Februari','Maart','April','Mei','Juni','July','Augustus','September','Oktober','November','December'],\n monthNamesShort: ['Jan','Feb','Mar','Apr','Mei','Jun','Jul','Aug','Sep','Okt','Nov','Dec'],\n dayNames:','['Zondag','Maandag','Dinsdag','Woensdag','Donderdag','Vrijdag','Zaterdag'],\n dayNamesShort: ['Zo','Ma','Di','Wo','Do','Vr','Za'],\n formatString: '%Y-%m-%d %H:%M:%S'\n },\n\n 'sv': {\n monthNames: ['januari','februari','mars','april','maj','juni','juli','augusti','september','oktober','november','december'],\n monthNamesShort: ['jan','feb','mar','apr','maj','jun','jul','aug','sep','okt','nov','dec'],\n dayNames: ['söndag','måndag','tisdag','onsdag','torsdag','fredag','lördag'],\n dayNamesShort: ['sön','mån','tis','ons','tor','fre','lör'],\n formatString: '%Y-%m-%d %H:%M:%S'\n }\n \n };\n \n // Set english variants to 'en'\n jsDate.regional['en-US'] = jsDate.regional['en-GB'] = jsDate.regional['en'];\n \n /**\n * Try to determine the users locale based on the lang attribute of the html page. Defaults to 'en'\n * if it cannot figure out a locale of if the locale does not have a localization defined.\n * @returns {String} locale\n */\n \n jsDate.regional.getLocale = function () {\n var l = jsDate.config.defaultLocale;\n \n if ( document && document.getElementsByTagName('html') && document.getElementsByTagName('html')[0].lang ) {\n l = document.getElementsByTagName('html')[0].lang;\n if (!jsDate.regional.hasOwnProperty(l)) {\n l = jsDate.config.defaultLocale;\n }\n }\n \n return l;\n };\n \n // ms in day\n var day = 24 * 60 * 60 * 1000;\n \n // padd a number with zeros\n var addZeros = function(num, digits) {\n num = String(num);\n var i = digits - num.length;\n var s = String(Math.pow(10, i)).slice(1);\n return s.concat(num);\n };\n\n // representations used for calculating differences between dates.\n // This borrows heavily from Ken Snyder's work.\n var multipliers = {\n millisecond: 1,\n second: 1000,\n minute: 60 * 1000,\n hour: 60 * 60 * 1000,\n day: day,\n week: 7 * day,\n month: {\n // add a number of months\n add: function(d, number) {\n // add any years needed (increments of 12)\n multipliers.year.add(d, Math[number > 0 ? 'floor' : 'ceil'](number / 12));\n // ensure that we properly wrap betwen December and January\n // 11 % 12 = 11\n // 12 % 12 = 0\n var prevMonth = d.getMonth() + (number % 12);\n if (prevMonth == 12) {\n prevMonth = 0;\n d.setYear(d.getFullYear() + 1);\n } else if (prevMonth == -1) {\n prevMonth = 11;\n d.setYear(d.getFullYear() - 1);\n }\n d.setMonth(prevMonth);\n },\n // get the number of months between two Date objects (decimal to the nearest day)\n diff: function(d1, d2) {\n // get the number of years\n var diffYears = d1.getFullYear() - d2.getFullYear();\n // get the number of remaining months\n var diffMonths = d1.getMonth() - d2.getMonth() + (diffYears * 12);\n // get the number of remaining days\n var diffDays = d1.getDate() - d2.getDate();\n // return the month difference with the days difference as a decimal\n return diffMonths + (diffDays / 30);\n }\n },\n year: {\n // add a number of years\n add: function(d, number) {\n d.setYear(d.getFullYear() + Math[number > 0 ? 'floor' : 'ceil'](number));\n },\n // get the number of years between two Date objects (decimal to the nearest day)\n diff: function(d1, d2) {\n return multipliers.month.diff(d1, d2) / 12;\n }\n } \n };\n //\n // Alias each multiplier with an 's' to allow 'year' and 'years' for example.\n // This comes from Ken Snyders work.\n //\n for (var unit in multipliers) {\n if (unit.substring(unit.length - 1) != 's') { // IE will iterate newly added properties :|\n multipliers[unit + 's'] = multipliers[unit];\n }\n }\n \n //\n // take a jsDate instance and a format code and return the formatted value.\n // This is a somewhat modified version of Ken Snyder's method.\n //\n var format = function(d, code, syntax) {\n // if shorcut codes are used, recursively expand those.\n if (jsDate.formats[syntax][\"shortcuts\"][code]) {\n return jsDate.strftime(d, jsDate.formats[syntax][\"shortcuts\"][code], syntax);\n } else {\n // get the format code function and addZeros() argument\n var getter = (jsDate.formats[syntax][\"codes\"][code] || '').split('.');\n var nbr = d['get' + getter[0]] ? d['get' + getter[0]]() : '';\n if (getter[1]) {\n nbr = addZeros(nbr, getter[1]);\n }\n return nbr;\n } \n };\n \n /**\n * @static\n * Static function for convert a date to a string according to a given format. Also acts as namespace for strftime format codes.\n * <p>strftime formatting can be accomplished without creating a jsDate object by calling jsDate.strftime():</p>\n * <pre class=\"code\">\n * var formattedDate = jsDate.strftime('Feb 8, 2006 8:48:32', '%Y-%m-%d %H:%M:%S');\n * </pre>\n * @param {String | Number | Array | jsDate Object | Date Object} date A parsable date string, JavaScript time stamp, Array of form [year, month, day, hours, minutes, seconds, milliseconds], jsDate Object or Date object.\n * @param {String} formatString String with embedded date formatting codes. \n * See: {@link jsDate.formats}. \n * @param {String} syntax Optional syntax to use [default perl].\n * @param {String} locale Optional locale to use.\n * @returns {String} Formatted representation of the date.\n */\n //\n // Logic as implemented here is very similar to Ken Snyder's Date Instance Methods.\n //\n jsDate.strftime = function(d, formatString, syntax, locale) {\n var syn = 'perl';\n var loc = jsDate.regional.getLocale();\n \n // check if syntax and locale are available or reversed\n if (syntax && jsDate.formats.hasOwnProperty(syntax)) {\n syn = syntax;\n }\n else if (syntax && jsDate.regional.hasOwnProperty(syntax)) {\n loc = syntax;\n }\n \n if (locale && jsDate.formats.hasOwnProperty(locale)) {\n syn = locale;\n }\n else if (locale && jsDate.regional.hasOwnProperty(locale)) {\n loc = locale;\n }\n \n if (get_type(d) != \"[object Object]\" || d._type != \"jsDate\") {\n d = new jsDate(d);\n d.locale = loc;\n }\n if (!formatString) {\n formatString = d.formatString || jsDate.regional[loc]['formatString'];\n }\n // default the format string to year-month-day\n var source = formatString || '%Y-%m-%d', \n result = '', \n match;\n // replace each format code\n while (source.length > 0) {\n if (match = source.match(jsDate.formats[syn].codes.matcher)) {\n result += source.slice(0, match.index);\n result += (match[1] || '') + format(d, match[2], syn);\n source = source.slice(match.index + match[0].length);\n } else {\n result += source;\n source = '';\n }\n }\n return result;\n };\n \n /**\n * @namespace\n * Namespace to hold format codes and format shortcuts. \"perl\" and \"php\" format codes \n * and shortcuts are defined by default. Additional codes and shortcuts can be\n * added like:\n * \n * <pre class=\"code\">\n * jsDate.formats[\"perl\"] = {\n * \"codes\": {\n * matcher: /someregex/,\n * Y: \"fullYear\", // name of \"get\" method without the \"get\",\n * ..., // more codes\n * },\n * \"shortcuts\": {\n * F: '%Y-%m-%d',\n * ..., // more shortcuts\n * }\n * };\n * </pre>\n * \n * <p>Additionally, ISO and SQL shortcuts are defined and can be accesses via:\n * <code>jsDate.formats.ISO</code> and <code>jsDate.formats.SQL</code>\n */\n \n jsDate.formats = {\n ISO:'%Y-%m-%dT%H:%M:%S.%N%G',\n SQL:'%Y-%m-%d %H:%M:%S'\n };\n \n /**\n * Perl format codes and shortcuts for strftime.\n * \n * A hash (object) of codes where each code must be an array where the first member is \n * the name of a Date.prototype or jsDate.prototype function to call\n * and optionally a second member indicating the number to pass to addZeros()\n * \n * <p>The following format codes are defined:</p>\n * \n * <pre class=\"code\">\n * Code Result Description\n * == Years == \n * %Y 2008 Four-digit year\n * %y 08 Two-digit year\n * \n * == Months == \n * %m 09 Two-digit month\n * %#m 9 One or two-digit month\n * %B September Full month name\n * %b Sep Abbreviated month name\n * \n * == Days == \n * %d 05 Two-digit day of month\n * %#d 5 One or two-digit day of month\n * %e 5 One or two-digit day of month\n * %A Sunday Full name of the day of the week\n * %a Sun Abbreviated name of the day of the week\n * %w 0 Number of the day of the week (0 = Sunday, 6 = Saturday)\n * \n * == Hours == \n * %H 23 Hours in 24-hour format (two digits)\n * %#H 3 Hours in 24-hour integer format (one or two digits)\n * %I 11 Hours in 12-hour format (two digits)\n * %#I 3 Hours in 12-hour integer format (one or two digits)\n * %p PM AM or PM\n * \n * == Minutes == \n * %M 09 Minutes (two digits)\n * %#M 9 Minutes (one or two digits)\n * \n * == Seconds == \n * %S 02 Seconds (two digits)\n * %#S 2 Seconds (one or two digits)\n * %s 1206567625723 Unix timestamp (Seconds past 1970-01-01 00:00:00)\n * \n * == Milliseconds == \n * %N 008 Milliseconds (three digits)\n * %#N 8 Milliseconds (one to three digits)\n * \n * == Timezone == \n * %O 360 difference in minutes between local time and GMT\n * %Z Mountain Standard Time Name of timezone as reported by browser\n * %G 06:00 Hours and minutes between GMT\n * \n * == Shortcuts == \n * %F 2008-03-26 %Y-%m-%d\n * %T 05:06:30 %H:%M:%S\n * %X 05:06:30 %H:%M:%S\n * %x 03/26/08 %m/%d/%y\n * %D 03/26/08 %m/%d/%y\n * %#c Wed Mar 26 15:31:00 2008 %a %b %e %H:%M:%S %Y\n * %v 3-Sep-2008 %e-%b-%Y\n * %R 15:31 %H:%M\n * %r 03:31:00 PM %I:%M:%S %p\n * \n * == Characters == \n * %n \\n Newline\n * %t \\t Tab\n * %% % Percent Symbol\n * </pre>\n * \n * <p>Formatting shortcuts that will be translated into their longer version.\n * Be sure that format shortcuts do not refer to themselves: this will cause an infinite loop.</p>\n * \n * <p>Format codes and format shortcuts can be redefined after the jsDate\n * module is imported.</p>\n * \n * <p>Note that if you redefine the whole hash (object), you must supply a \"matcher\"\n * regex for the parser. The default matcher is:</p>\n * \n * <code>/()%(#?(%|[a-z]))/i</code>\n * \n * <p>which corresponds to the Perl syntax used by default.</p>\n * \n * <p>By customizing the matcher and format codes, nearly any strftime functionality is possible.</p>\n */\n \n jsDate.formats.perl = {\n codes: {\n //\n // 2-part regex matcher for format codes\n //\n // first match must be the character before the code (to account for escaping)\n // second match must be the format code character(s)\n //\n matcher: /()%(#?(%|[a-z]))/i,\n // year\n Y: 'FullYear',\n y: 'ShortYear.2',\n // month\n m: 'MonthNumber.2',\n '#m': 'MonthNumber',\n B: 'MonthName',\n b: 'AbbrMonthName',\n // day\n d: 'Date.2',\n '#d': 'Date',\n e: 'Date',\n A: 'DayName',\n a: 'AbbrDayName',\n w: 'Day',\n // hours\n H: 'Hours.2',\n '#H': 'Hours',\n I: 'Hours12.2',\n '#I': 'Hours12',\n p: 'AMPM',\n // minutes\n M: 'Minutes.2',\n '#M': 'Minutes',\n // seconds\n S: 'Seconds.2',\n '#S': 'Seconds',\n s: 'Unix',\n // milliseconds\n N: 'Milliseconds.3',\n '#N': 'Milliseconds',\n // timezone\n O: 'TimezoneOffset',\n Z: 'TimezoneName',\n G: 'GmtOffset' \n },\n \n shortcuts: {\n // date\n F: '%Y-%m-%d',\n // time\n T: '%H:%M:%S',\n X: '%H:%M:%S',\n // local format date\n x: '%m/%d/%y',\n D: '%m/%d/%y',\n // local format extended\n '#c': '%a %b %e %H:%M:%S %Y',\n // local format short\n v: '%e-%b-%Y',\n R: '%H:%M',\n r: '%I:%M:%S %p',\n // tab and newline\n t: '\\t',\n n: '\\n',\n '%': '%'\n }\n };\n \n /**\n * PHP format codes and shortcuts for strftime.\n * \n * A hash (object) of codes where each code must be an array where the first member is \n * the name of a Date.prototype or jsDate.prototype function to call\n * and optionally a second member indicating the number to pass to addZeros()\n * \n * <p>The following format codes are defined:</p>\n * \n * <pre class=\"code\">\n * Code Result Description\n * === Days === \n * %a Sun through Sat An abbreviated textual representation of the day\n * %A Sunday - Saturday A full textual representation of the day\n * %d 01 to 31 Two-digit day of the month (with leading zeros)\n * %e 1 to 31 Day of the month, with a space preceding single digits.\n * %j 001 to 366 Day of the year, 3 digits with leading zeros\n * %u 1 - 7 (Mon - Sun) ISO-8601 numeric representation of the day of the week\n * %w 0 - 6 (Sun - Sat) Numeric representation of the day of the week\n * \n * === Week === \n * %U 13 Full Week number, starting with the first Sunday as the first week\n * %V 01 through 53 ISO-8601:1988 week number, starting with the first week of the year \n * with at least 4 weekdays, with Monday being the start of the week\n * %W 46 A numeric representation of the week of the year, \n * starting with the first Monday as the first week\n * === Month === \n * %b Jan through Dec Abbreviated month name, based on the locale\n * %B January - December Full month name, based on the locale\n * %h Jan through Dec Abbreviated month name, based on the locale (an alias of %b)\n * %m 01 - 12 (Jan - Dec) Two digit representation of the month\n * \n * === Year === \n * %C 19 Two digit century (year/100, truncated to an integer)\n * %y 09 for 2009 Two digit year\n * %Y 2038 Four digit year\n * \n * === Time === \n * %H 00 through 23 Two digit representation of the hour in 24-hour format\n * %I 01 through 12 Two digit representation of the hour in 12-hour format\n * %l 1 through 12 Hour in 12-hour format, with a space preceeding single digits\n * %M 00 through 59 Two digit representation of the minute\n * %p AM/PM UPPER-CASE 'AM' or 'PM' based on the given time\n * %P am/pm lower-case 'am' or 'pm' based on the given time\n * %r 09:34:17 PM Same as %I:%M:%S %p\n * %R 00:35 Same as %H:%M\n * %S 00 through 59 Two digit representation of the second\n * %T 21:34:17 Same as %H:%M:%S\n * %X 03:59:16 Preferred time representation based on locale, without the date\n * %z -0500 or EST Either the time zone offset from UTC or the abbreviation\n * %Z -0500 or EST The time zone offset/abbreviation option NOT given by %z\n * \n * === Time and Date === \n * %D 02/05/09 Same as %m/%d/%y\n * %F 2009-02-05 Same as %Y-%m-%d (commonly used in database datestamps)\n * %s 305815200 Unix Epoch Time timestamp (same as the time() function)\n * %x 02/05/09 Preferred date representation, without the time\n * \n * === Miscellaneous === \n * %n --- A newline character (\\n)\n * %t --- A Tab character (\\t)\n * %% --- A literal percentage character (%)\n * </pre>\n */\n \n jsDate.formats.php = {\n codes: {\n //\n // 2-part regex matcher for format codes\n //\n // first match must be the character before the code (to account for escaping)\n // second match must be the format code character(s)\n //\n matcher: /()%((%|[a-z]))/i,\n // day\n a: 'AbbrDayName',\n A: 'DayName',\n d: 'Date.2',\n e: 'Date',\n j: 'DayOfYear.3',\n u: 'DayOfWeek',\n w: 'Day',\n // week\n U: 'FullWeekOfYear.2',\n V: 'IsoWeek.2',\n W: 'WeekOfYear.2',\n // month\n b: 'AbbrMonthName',\n B: 'MonthName',\n m: 'MonthNumber.2',\n h: 'AbbrMonthName',\n // year\n C: 'Century.2',\n y: 'ShortYear.2',\n Y: 'FullYear',\n // time\n H: 'Hours.2',\n I: 'Hours12.2',\n l: 'Hours12',\n p: 'AMPM',\n P: 'AmPm',\n M: 'Minutes.2',\n S: 'Seconds.2',\n s: 'Unix',\n O: 'TimezoneOffset',\n z: 'GmtOffset',\n Z: 'TimezoneAbbr'\n },\n \n shortcuts: {\n D: '%m/%d/%y',\n F: '%Y-%m-%d',\n T: '%H:%M:%S',\n X: '%H:%M:%S',\n x: '%m/%d/%y',\n R: '%H:%M',\n r: '%I:%M:%S %p',\n t: '\\t',\n n: '\\n',\n '%': '%'\n }\n }; \n //\n // Conceptually, the logic implemented here is similar to Ken Snyder's Date Instance Methods.\n // I use his idea of a set of parsers which can be regular expressions or functions,\n // iterating through those, and then seeing if Date.parse() will create a date.\n // The parser expressions and functions are a little different and some bugs have been\n // worked out. Also, a lot of \"pre-parsing\" is done to fix implementation\n // variations of Date.parse() between browsers.\n //\n jsDate.createDate = function(date) {\n // if passing in multiple arguments, try Date constructor\n if (date == null) {\n return new Date();\n }\n // If the passed value is already a date object, return it\n if (date instanceof Date) {\n return date;\n }\n // if (typeof date == 'number') return new Date(date * 1000);\n // If the passed value is an integer, interpret it as a javascript timestamp\n if (typeof date == 'number') {\n return new Date(date);\n }\n \n // Before passing strings into Date.parse(), have to normalize them for certain conditions.\n // If strings are not formatted staccording to the EcmaScript spec, results from Date parse will be implementation dependent. \n // \n // For example: \n // * FF and Opera assume 2 digit dates are pre y2k, Chome assumes <50 is pre y2k, 50+ is 21st century. \n // * Chrome will correctly parse '1984-1-25' into localtime, FF and Opera will not parse.\n // * Both FF, Chrome and Opera will parse '1984/1/25' into localtime.\n \n // remove leading and trailing spaces\n var parsable = String(date).replace(/^\\s*(.+)\\s*$/g, '$1');\n \n // replace dahses (-) with slashes (/) in dates like n[nnn]/n[n]/n[nnn]\n parsable = parsable.replace(/^([0-9]{1,4})-([0-9]{1,2})-([0-9]{1,4})/, \"$1/$2/$3\");\n \n /////////\n // Need to check for '15-Dec-09' also.\n // FF will not parse, but Chrome will.\n // Chrome will set date to 2009 as well.\n /////////\n \n // first check for 'dd-mmm-yyyy' or 'dd/mmm/yyyy' like '15-Dec-2010'\n parsable = parsable.replace(/^(3[01]|[0-2]?\\d)[-\\/]([a-z]{3,})[-\\/](\\d{4})/i, \"$1 $2 $3\");\n \n // Now check for 'dd-mmm-yy' or 'dd/mmm/yy' and normalize years to default century.\n var match = parsable.match(/^(3[01]|[0-2]?\\d)[-\\/]([a-z]{3,})[-\\/](\\d{2})\\D*/i);\n if (match && match.length > 3) {\n var m3 = parseFloat(match[3]);\n var ny = jsDate.config.defaultCentury + m3;\n ny = String(ny);\n \n // now replace 2 digit year with 4 digit year\n parsable = parsable.replace(/^(3[01]|[0-2]?\\d)[-\\/]([a-z]{3,})[-\\/](\\d{2})\\D*/i, match[1] +' '+ match[2] +' '+ ny);\n \n }\n \n // Check for '1/19/70 8:14PM'\n // where starts with mm/dd/yy or yy/mm/dd and have something after\n // Check if 1st postiion is greater than 31, assume it is year.\n // Assme all 2 digit years are 1900's.\n // Finally, change them into US style mm/dd/yyyy representations.\n match = parsable.match(/^([0-9]{1,2})[-\\/]([0-9]{1,2})[-\\/]([0-9]{1,2})[^0-9]/);\n \n function h1(parsable, match) {\n var m1 = parseFloat(match[1]);\n var m2 = parseFloat(match[2]);\n var m3 = parseFloat(match[3]);\n var cent = jsDate.config.defaultCentury;\n var ny, nd, nm, str;\n \n if (m1 > 31) { // first number is a year\n nd = m3;\n nm = m2;\n ny = cent + m1;\n }\n \n else { // last number is the year\n nd = m2;\n nm = m1;\n ny = cent + m3;\n }\n \n str = nm+'/'+nd+'/'+ny;\n \n // now replace 2 digit year with 4 digit year\n return parsable.replace(/^([0-9]{1,2})[-\\/]([0-9]{1,2})[-\\/]([0-9]{1,2})/, str);\n \n }\n \n if (match && match.length > 3) {\n parsable = h1(parsable, match);\n }\n \n // Now check for '1/19/70' with nothing after and do as above\n var match = parsable.match(/^([0-9]{1,2})[-\\/]([0-9]{1,2})[-\\/]([0-9]{1,2})$/);\n \n if (match && match.length > 3) {\n parsable = h1(parsable, match);\n }\n \n \n var i = 0;\n var length = jsDate.matchers.length;\n var pattern,\n ms,\n current = parsable,\n obj;\n while (i < length) {\n ms = Date.parse(current);\n if (!isNaN(ms)) {\n return new Date(ms);\n }\n pattern = jsDate.matchers[i];\n if (typeof pattern == 'function') {\n obj = pattern.call(jsDate, current);\n if (obj instanceof Date) {\n return obj;\n }\n } else {\n current = parsable.replace(pattern[0], pattern[1]);\n }\n i++;\n }\n return NaN;\n };\n \n\n /**\n * @static\n * Handy static utility function to return the number of days in a given month.\n * @param {Integer} year Year\n * @param {Integer} month Month (1-12)\n * @returns {Integer} Number of days in the month.\n */\n //\n // handy utility method Borrowed right from Ken Snyder's Date Instance Mehtods.\n // \n jsDate.daysInMonth = function(year, month) {\n if (month == 2) {\n return new Date(year, 1, 29).getDate() == 29 ? 29 : 28;\n }\n return [undefined,31,undefined,31,30,31,30,31,31,30,31,30,31][month];\n };\n\n\n //\n // An Array of regular expressions or functions that will attempt to match the date string.\n // Functions are called with scope of a jsDate instance.\n //\n jsDate.matchers = [\n // convert dd.mmm.yyyy to mm/dd/yyyy (world date to US date).\n [/(3[01]|[0-2]\\d)\\s*\\.\\s*(1[0-2]|0\\d)\\s*\\.\\s*([1-9]\\d{3})/, '$2/$1/$3'],\n // convert yyyy-mm-dd to mm/dd/yyyy (ISO date to US date).\n [/([1-9]\\d{3})\\s*-\\s*(1[0-2]|0\\d)\\s*-\\s*(3[01]|[0-2]\\d)/, '$2/$3/$1'],\n // Handle 12 hour or 24 hour time with milliseconds am/pm and optional date part.\n function(str) { \n var match = str.match(/^(?:(.+)\\s+)?([012]?\\d)(?:\\s*\\:\\s*(\\d\\d))?(?:\\s*\\:\\s*(\\d\\d(\\.\\d*)?))?\\s*(am|pm)?\\s*$/i);\n // opt. date hour opt. minute opt. second opt. msec opt. am or pm\n if (match) {\n if (match[1]) {\n var d = this.createDate(match[1]);\n if (isNaN(d)) {\n return;\n }\n } else {\n var d = new Date();\n d.setMilliseconds(0);\n }\n var hour = parseFloat(match[2]);\n if (match[6]) {\n hour = match[6].toLowerCase() == 'am' ? (hour == 12 ? 0 : hour) : (hour == 12 ? 12 : hour + 12);\n }\n d.setHours(hour, parseInt(match[3] || 0, 10), parseInt(match[4] || 0, 10), ((parseFloat(match[5] || 0)) || 0)*1000);\n return d;\n }\n else {\n return str;\n }\n },\n // Handle ISO timestamp with time zone.\n function(str) {\n var match = str.match(/^(?:(.+))[T|\\s+]([012]\\d)(?:\\:(\\d\\d))(?:\\:(\\d\\d))(?:\\.\\d+)([\\+\\-]\\d\\d\\:\\d\\d)$/i);\n if (match) {\n if (match[1]) {\n var d = this.createDate(match[1]);\n if (isNaN(d)) {\n return;\n }\n } else {\n var d = new Date();\n d.setMilliseconds(0);\n }\n var hour = parseFloat(match[2]);\n d.setHours(hour, parseInt(match[3], 10), parseInt(match[4], 10), parseFloat(match[5])*1000);\n return d;\n }\n else {\n return str;\n }\n },\n // Try to match ambiguous strings like 12/8/22.\n // Use FF date assumption that 2 digit years are 20th century (i.e. 1900's).\n // This may be redundant with pre processing of date already performed.\n function(str) {\n var match = str.match(/^([0-3]?\\d)\\s*[-\\/.\\s]{1}\\s*([a-zA-Z]{3,9})\\s*[-\\/.\\s]{1}\\s*([0-3]?\\d)$/);\n if (match) {\n var d = new Date();\n var cent = jsDate.config.defaultCentury;\n var m1 = parseFloat(match[1]);\n var m3 = parseFloat(match[3]);\n var ny, nd, nm;\n if (m1 > 31) { // first number is a year\n nd = m3;\n ny = cent + m1;\n }\n \n else { // last number is the year\n nd = m1;\n ny = cent + m3;\n }\n \n var nm = inArray(match[2], jsDate.regional[jsDate.regional.getLocale()][\"monthNamesShort\"]);\n \n if (nm == -1) {\n nm = inArray(match[2], jsDate.regional[jsDate.regional.getLocale()][\"monthNames\"]);\n }\n \n d.setFullYear(ny, nm, nd);\n d.setHours(0,0,0,0);\n return d;\n }\n \n else {\n return str;\n }\n } \n ];\n\n //\n // I think John Reisig published this method on his blog, ejohn.\n //\n function inArray( elem, array ) {\n if ( array.indexOf ) {\n return array.indexOf( elem );\n }\n\n for ( var i = 0, length = array.length; i < length; i++ ) {\n if ( array[ i ] === elem ) {\n return i;\n }\n }\n\n return -1;\n }\n \n //\n // Thanks to Kangax, Christian Sciberras and Stack Overflow for this method.\n //\n function get_type(thing){\n if(thing===null) return \"[object Null]\"; // special case\n return Object.prototype.toString.call(thing);\n }\n \n $.jsDate = jsDate;\n\n \n /**\n * JavaScript printf/sprintf functions.\n * \n * This code has been adapted from the publicly available sprintf methods\n * by Ash Searle. His original header follows:\n *\n * This code is unrestricted: you are free to use it however you like.\n * \n * The functions should work as expected, performing left or right alignment,\n * truncating strings, outputting numbers with a required precision etc.\n *\n * For complex cases, these functions follow the Perl implementations of\n * (s)printf, allowing arguments to be passed out-of-order, and to set the\n * precision or length of the output based on arguments instead of fixed\n * numbers.\n *\n * See http://perldoc.perl.org/functions/sprintf.html for more information.\n *\n * Implemented:\n * - zero and space-padding\n * - right and left-alignment,\n * - base X prefix (binary, octal and hex)\n * - positive number prefix\n * - (minimum) width\n * - precision / truncation / maximum width\n * - out of order arguments\n *\n * Not implemented (yet):\n * - vector flag\n * - size (bytes, words, long-words etc.)\n * \n * Will not implement:\n * - %n or %p (no pass-by-reference in JavaScript)\n *\n * @version 2007.04.27\n * @author Ash Searle \n * \n * You can see the original work and comments on his blog:\n * http://hexmen.com/blog/2007/03/printf-sprintf/\n * http://hexmen.com/js/sprintf.js\n */\n \n /**\n * @Modifications 2009.05.26\n * @author Chris Leonello\n * \n * Added %p %P specifier\n * Acts like %g or %G but will not add more significant digits to the output than present in the input.\n * Example:\n * Format: '%.3p', Input: 0.012, Output: 0.012\n * Format: '%.3g', Input: 0.012, Output: 0.0120\n * Format: '%.4p', Input: 12.0, Output: 12.0\n * Format: '%.4g', Input: 12.0, Output: 12.00\n * Format: '%.4p', Input: 4.321e-5, Output: 4.321e-5\n * Format: '%.4g', Input: 4.321e-5, Output: 4.3210e-5\n * \n * Example:\n * >>> $.jqplot.sprintf('%.2f, %d', 23.3452, 43.23)\n * \"23.35, 43\"\n * >>> $.jqplot.sprintf(\"no value: %n, decimal with thousands separator: %'d\", 23.3452, 433524)\n * \"no value: , decimal with thousands separator: 433,524\"\n */\n $.jqplot.sprintf = function() {\n function pad(str, len, chr, leftJustify) {\n var padding = (str.length >= len) ? '' : Array(1 + len - str.length >>> 0).join(chr);\n return leftJustify ? str + padding : padding + str;\n\n }\n\n function thousand_separate(value) {\n var value_str = new String(value);\n for (var i=10; i>0; i--) {\n if (value_str == (value_str = value_str.replace(/^(\\d+)(\\d{3})/, \"$1\"+$.jqplot.sprintf.thousandsSeparator+\"$2\"))) break;\n }\n return value_str; \n }\n\n function justify(value, prefix, leftJustify, minWidth, zeroPad, htmlSpace) {\n var diff = minWidth - value.length;\n if (diff > 0) {\n var spchar = ' ';\n if (htmlSpace) { spchar = ' '; }\n if (leftJustify || !zeroPad) {\n value = pad(value, minWidth, spchar, leftJustify);\n } else {\n value = value.slice(0, prefix.length) + pad('', diff, '0', true) + value.slice(prefix.length);\n }\n }\n return value;\n }\n\n function formatBaseX(value, base, prefix, leftJustify, minWidth, precision, zeroPad, htmlSpace) {\n // Note: casts negative numbers to positive ones\n var number = value >>> 0;\n prefix = prefix && number && {'2': '0b', '8': '0', '16': '0x'}[base] || '';\n value = prefix + pad(number.toString(base), precision || 0, '0', false);\n return justify(value, prefix, leftJustify, minWidth, zeroPad, htmlSpace);\n }\n\n function formatString(value, leftJustify, minWidth, precision, zeroPad, htmlSpace) {\n if (precision != null) {\n value = value.slice(0, precision);\n }\n return justify(value, '', leftJustify, minWidth, zeroPad, htmlSpace);\n }\n\n var a = arguments, i = 0, format = a[i++];\n\n return format.replace($.jqplot.sprintf.regex, function(substring, valueIndex, flags, minWidth, _, precision, type) {\n if (substring == '%%') { return '%'; }\n\n // parse flags\n var leftJustify = false, positivePrefix = '', zeroPad = false, prefixBaseX = false, htmlSpace = false, thousandSeparation = false;\n for (var j = 0; flags && j < flags.length; j++) switch (flags.charAt(j)) {\n case ' ': positivePrefix = ' '; break;\n case '+': positivePrefix = '+'; break;\n case '-': leftJustify = true; break;\n case '0': zeroPad = true; break;\n case '#': prefixBaseX = true; break;\n case '&': htmlSpace = true; break;\n case '\\'': thousandSeparation = true; break;\n }\n\n // parameters may be null, undefined, empty-string or real valued\n // we want to ignore null, undefined and empty-string values\n\n if (!minWidth) {\n minWidth = 0;\n } \n else if (minWidth == '*') {\n minWidth = +a[i++];\n } \n else if (minWidth.charAt(0) == '*') {\n minWidth = +a[minWidth.slice(1, -1)];\n } \n else {\n minWidth = +minWidth;\n }\n\n // Note: undocumented perl feature:\n if (minWidth < 0) {\n minWidth = -minWidth;\n leftJustify = true;\n }\n\n if (!isFinite(minWidth)) {\n throw new Error('$.jqplot.sprintf: (minimum-)width must be finite');\n }\n\n if (!precision) {\n precision = 'fFeE'.indexOf(type) > -1 ? 6 : (type == 'd') ? 0 : void(0);\n } \n else if (precision == '*') {\n precision = +a[i++];\n } \n else if (precision.charAt(0) == '*') {\n precision = +a[precision.slice(1, -1)];\n } \n else {\n precision = +precision;\n }\n\n // grab value using valueIndex if required?\n var value = valueIndex ? a[valueIndex.slice(0, -1)] : a[i++];\n\n switch (type) {\n case 's': {\n if (value == null) {\n return '';\n }\n return formatString(String(value), leftJustify, minWidth, precision, zeroPad, htmlSpace);\n }\n case 'c': return formatString(String.fromCharCode(+value), leftJustify, minWidth, precision, zeroPad, htmlSpace);\n case 'b': return formatBaseX(value, 2, prefixBaseX, leftJustify, minWidth, precision, zeroPad,htmlSpace);\n case 'o': return formatBaseX(value, 8, prefixBaseX, leftJustify, minWidth, precision, zeroPad, htmlSpace);\n case 'x': return formatBaseX(value, 16, prefixBaseX, leftJustify, minWidth, precision, zeroPad, htmlSpace);\n case 'X': return formatBaseX(value, 16, prefixBaseX, leftJustify, minWidth, precision, zeroPad, htmlSpace).toUpperCase();\n case 'u': return formatBaseX(value, 10, prefixBaseX, leftJustify, minWidth, precision, zeroPad, htmlSpace);\n case 'i': {\n var number = parseInt(+value, 10);\n if (isNaN(number)) {\n return '';\n }\n var prefix = number < 0 ? '-' : positivePrefix;\n var number_str = thousandSeparation ? thousand_separate(String(Math.abs(number))): String(Math.abs(number));\n value = prefix + pad(number_str, precision, '0', false);\n //value = prefix + pad(String(Math.abs(number)), precision, '0', false);\n return justify(value, prefix, leftJustify, minWidth, zeroPad, htmlSpace);\n }\n case 'd': {\n var number = Math.round(+value);\n if (isNaN(number)) {\n return '';\n }\n var prefix = number < 0 ? '-' : positivePrefix;\n var number_str = thousandSeparation ? thousand_separate(String(Math.abs(number))): String(Math.abs(number));\n value = prefix + pad(number_str, precision, '0', false);\n return justify(value, prefix, leftJustify, minWidth, zeroPad, htmlSpace);\n }\n case 'e':\n case 'E':\n case 'f':\n case 'F':\n case 'g':\n case 'G':\n {\n var number = +value;\n if (isNaN(number)) {\n return '';\n }\n var prefix = number < 0 ? '-' : positivePrefix;\n var method = ['toExponential', 'toFixed', 'toPrecision']['efg'.indexOf(type.toLowerCase())];\n var textTransform = ['toString', 'toUpperCase']['eEfFgG'.indexOf(type) % 2];\n var number_str = Math.abs(number)[method](precision);\n \n // Apply the decimal mark properly by splitting the number by the\n // decimalMark, applying thousands separator, and then placing it\n // back in.\n var parts = number_str.toString().split('.');\n parts[0] = thousandSeparation ? thousand_separate(parts[0]) : parts[0];\n number_str = parts.join($.jqplot.sprintf.decimalMark);\n \n value = prefix + number_str;\n var justified = justify(value, prefix, leftJustify, minWidth, zeroPad, htmlSpace)[textTransform]();\n \n return justified;\n }\n case 'p':\n case 'P':\n {\n // make sure number is a number\n var number = +value;\n if (isNaN(number)) {\n return '';\n }\n var prefix = number < 0 ? '-' : positivePrefix;\n\n var parts = String(Number(Math.abs(number)).toExponential()).split(/e|E/);\n var sd = (parts[0].indexOf('.') != -1) ? parts[0].length - 1 : String(number).length;\n var zeros = (parts[1] < 0) ? -parts[1] - 1 : 0;\n \n if (Math.abs(number) < 1) {\n if (sd + zeros <= precision) {\n value = prefix + Math.abs(number).toPrecision(sd);\n }\n else {\n if (sd <= precision - 1) {\n value = prefix + Math.abs(number).toExponential(sd-1);\n }\n else {\n value = prefix + Math.abs(number).toExponential(precision-1);\n }\n }\n }\n else {\n var prec = (sd <= precision) ? sd : precision;\n value = prefix + Math.abs(number).toPrecision(prec);\n }\n var textTransform = ['toString', 'toUpperCase']['pP'.indexOf(type) % 2];\n return justify(value, prefix, leftJustify, minWidth, zeroPad, htmlSpace)[textTransform]();\n }\n case 'n': return '';\n default: return substring;\n }\n });\n };\n\n $.jqplot.sprintf.thousandsSeparator = ',';\n // Specifies the decimal mark for floating point values. By default a period '.'\n // is used. If you change this value to for example a comma be sure to also\n // change the thousands separator or else this won't work since a simple String\n // replace is used (replacing all periods with the mark specified here).\n $.jqplot.sprintf.decimalMark = '.';\n \n $.jqplot.sprintf.regex = /%%|%(\\d+\\$)?([-+#0&\\' ]*)(\\*\\d+\\$|\\*|\\d+)?(\\.(\\*\\d+\\$|\\*|\\d+))?([nAscboxXuidfegpEGP])/g;\n\n $.jqplot.getSignificantFigures = function(number) {\n var parts = String(Number(Math.abs(number)).toExponential()).split(/e|E/);\n // total significant digits\n var sd = (parts[0].indexOf('.') != -1) ? parts[0].length - 1 : parts[0].length;\n var zeros = (parts[1] < 0) ? -parts[1] - 1 : 0;\n // exponent\n var expn = parseInt(parts[1], 10);\n // digits to the left of the decimal place\n var dleft = (expn + 1 > 0) ? expn + 1 : 0;\n // digits to the right of the decimal place\n var dright = (sd <= dleft) ? 0 : sd - expn - 1;\n return {significantDigits: sd, digitsLeft: dleft, digitsRight: dright, zeros: zeros, exponent: expn} ;\n };\n\n $.jqplot.getPrecision = function(number) {\n return $.jqplot.getSignificantFigures(number).digitsRight;\n };\n\n \n\n\n var backCompat = $.uiBackCompat !== false;\n\n $.jqplot.effects = {\n effect: {}\n };\n\n // prefix used for storing data on .data()\n var dataSpace = \"jqplot.storage.\";\n\n /******************************************************************************/\n /*********************************** EFFECTS **********************************/\n /******************************************************************************/\n\n $.extend( $.jqplot.effects, {\n version: \"1.9pre\",\n\n // Saves a set of properties in a data storage\n save: function( element, set ) {\n for( var i=0; i < set.length; i++ ) {\n if ( set[ i ] !== null ) {\n element.data( dataSpace + set[ i ], element[ 0 ].style[ set[ i ] ] );\n }\n }\n },\n\n // Restores a set of previously saved properties from a data storage\n restore: function( element, set ) {\n for( var i=0; i < set.length; i++ ) {\n if ( set[ i ] !== null ) {\n element.css( set[ i ], element.data( dataSpace + set[ i ] ) );\n }\n }\n },\n\n setMode: function( el, mode ) {\n if (mode === \"toggle\") {\n mode = el.is( \":hidden\" ) ? \"show\" : \"hide\";\n }\n return mode;\n },\n\n // Wraps the element around a wrapper that copies position properties\n createWrapper: function( element ) {\n\n // if the element is already wrapped, return it\n if ( element.parent().is( \".ui-effects-wrapper\" )) {\n return element.parent();\n }\n\n // wrap the element\n var props = {\n width: element.outerWidth(true),\n height: element.outerHeight(true),\n \"float\": element.css( \"float\" )\n },\n wrapper = $( \"<div></div>\" )\n .addClass( \"ui-effects-wrapper\" )\n .css({\n fontSize: \"100%\",\n background: \"transparent\",\n border: \"none\",\n margin: 0,\n padding: 0\n }),\n // Store the size in case width/height are defined in % - Fixes #5245\n size = {\n width: element.width(),\n height: element.height()\n },\n active = document.activeElement;\n\n element.wrap( wrapper );\n\n // Fixes #7595 - Elements lose focus when wrapped.\n if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) {\n $( active ).focus();\n }\n\n wrapper = element.parent(); //Hotfix for jQuery 1.4 since some change in wrap() seems to actually loose the reference to the wrapped element\n\n // transfer positioning properties to the wrapper\n if ( element.css( \"position\" ) === \"static\" ) {\n wrapper.css({ position: \"relative\" });\n element.css({ position: \"relative\" });\n } else {\n $.extend( props, {\n position: element.css( \"position\" ),\n zIndex: element.css( \"z-index\" )\n });\n $.each([ \"top\", \"left\", \"bottom\", \"right\" ], function(i, pos) {\n props[ pos ] = element.css( pos );\n if ( isNaN( parseInt( props[ pos ], 10 ) ) ) {\n props[ pos ] = \"auto\";\n }\n });\n element.css({\n position: \"relative\",\n top: 0,\n left: 0,\n right: \"auto\",\n bottom: \"auto\"\n });\n }\n element.css(size);\n\n return wrapper.css( props ).show();\n },\n\n removeWrapper: function( element ) {\n var active = document.activeElement;\n\n if ( element.parent().is( \".ui-effects-wrapper\" ) ) {\n element.parent().replaceWith( element );\n\n // Fixes #7595 - Elements lose focus when wrapped.\n if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) {\n $( active ).focus();\n }\n }\n\n\n return element;\n }\n });\n\n // return an effect options object for the given parameters:\n function _normalizeArguments( effect, options, speed, callback ) {\n\n // short path for passing an effect options object:\n if ( $.isPlainObject( effect ) ) {\n return effect;\n }\n\n // convert to an object\n effect = { effect: effect };\n\n // catch (effect)\n if ( options === undefined ) {\n options = {};\n }\n\n // catch (effect, callback)\n if ( $.isFunction( options ) ) {\n callback = options;\n speed = null;\n options = {};\n }\n\n // catch (effect, speed, ?)\n if ( $.type( options ) === \"number\" || $.fx.speeds[ options ]) {\n callback = speed;\n speed = options;\n options = {};\n }\n\n // catch (effect, options, callback)\n if ( $.isFunction( speed ) ) {\n callback = speed;\n speed = null;\n }\n\n // add options to effect\n if ( options ) {\n $.extend( effect, options );\n }\n\n speed = speed || options.duration;\n effect.duration = $.fx.off ? 0 : typeof speed === \"number\"\n ? speed : speed in $.fx.speeds ? $.fx.speeds[ speed ] : $.fx.speeds._default;\n\n effect.complete = callback || options.complete;\n\n return effect;\n }\n\n function standardSpeed( speed ) {\n // valid standard speeds\n if ( !speed || typeof speed === \"number\" || $.fx.speeds[ speed ] ) {\n return true;\n }\n\n // invalid strings - treat as \"normal\" speed\n if ( typeof speed === \"string\" && !$.jqplot.effects.effect[ speed ] ) {\n // TODO: remove in 2.0 (#7115)\n if ( backCompat && $.jqplot.effects[ speed ] ) {\n return false;\n }\n return true;\n }\n\n return false;\n }\n\n $.fn.extend({\n jqplotEffect: function( effect, options, speed, callback ) {\n var args = _normalizeArguments.apply( this, arguments ),\n mode = args.mode,\n queue = args.queue,\n effectMethod = $.jqplot.effects.effect[ args.effect ],\n\n // DEPRECATED: remove in 2.0 (#7115)\n oldEffectMethod = !effectMethod && backCompat && $.jqplot.effects[ args.effect ];\n\n if ( $.fx.off || !( effectMethod || oldEffectMethod ) ) {\n // delegate to the original method (e.g., .show()) if possible\n if ( mode ) {\n return this[ mode ]( args.duration, args.complete );\n } else {\n return this.each( function() {\n if ( args.complete ) {\n args.complete.call( this );\n }\n });\n }\n }\n\n function run( next ) {\n var elem = $( this ),\n complete = args.complete,\n mode = args.mode;\n\n function done() {\n if ( $.isFunction( complete ) ) {\n complete.call( elem[0] );\n }\n if ( $.isFunction( next ) ) {\n next();\n }\n }\n\n // if the element is hiddden and mode is hide,\n // or element is visible and mode is show\n if ( elem.is( \":hidden\" ) ? mode === \"hide\" : mode === \"show\" ) {\n done();\n } else {\n effectMethod.call( elem[0], args, done );\n }\n }\n\n // TODO: remove this check in 2.0, effectMethod will always be true\n if ( effectMethod ) {\n return queue === false ? this.each( run ) : this.queue( queue || \"fx\", run );\n } else {\n // DEPRECATED: remove in 2.0 (#7115)\n return oldEffectMethod.call(this, {\n options: args,\n duration: args.duration,\n callback: args.complete,\n mode: args.mode\n });\n }\n }\n });\n\n\n\n\n var rvertical = /up|down|vertical/,\n rpositivemotion = /up|left|vertical|horizontal/;\n\n $.jqplot.effects.effect.blind = function( o, done ) {\n // Create element\n var el = $( this ),\n props = [ \"position\", \"top\", \"bottom\", \"left\", \"right\", \"height\", \"width\" ],\n mode = $.jqplot.effects.setMode( el, o.mode || \"hide\" ),\n direction = o.direction || \"up\",\n vertical = rvertical.test( direction ),\n ref = vertical ? \"height\" : \"width\",\n ref2 = vertical ? \"top\" : \"left\",\n motion = rpositivemotion.test( direction ),\n animation = {},\n show = mode === \"show\",\n wrapper, distance, top;\n\n // // if already wrapped, the wrapper's properties are my property. #6245\n if ( el.parent().is( \".ui-effects-wrapper\" ) ) {\n $.jqplot.effects.save( el.parent(), props );\n } else {\n $.jqplot.effects.save( el, props );\n }\n el.show();\n top = parseInt(el.css('top'), 10);\n wrapper = $.jqplot.effects.createWrapper( el ).css({\n overflow: \"hidden\"\n });\n\n distance = vertical ? wrapper[ ref ]() + top : wrapper[ ref ]();\n\n animation[ ref ] = show ? String(distance) : '0';\n if ( !motion ) {\n el\n .css( vertical ? \"bottom\" : \"right\", 0 )\n .css( vertical ? \"top\" : \"left\", \"\" )\n .css({ position: \"absolute\" });\n animation[ ref2 ] = show ? '0' : String(distance);\n }\n\n // // start at 0 if we are showing\n if ( show ) {\n wrapper.css( ref, 0 );\n if ( ! motion ) {\n wrapper.css( ref2, distance );\n }\n }\n\n // // Animate\n wrapper.animate( animation, {\n duration: o.duration,\n easing: o.easing,\n queue: false,\n complete: function() {\n if ( mode === \"hide\" ) {\n el.hide();\n }\n $.jqplot.effects.restore( el, props );\n $.jqplot.effects.removeWrapper( el );\n done();\n }\n });\n\n };\n\n})(jQuery);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/as-jqplot/dist/jquery.jqplot.js\n// module id = 369\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/as-jqplot/dist/jquery.jqplot.css\n// module id = 370\n// module chunks = 0","/**\n * jqPlot\n * Pure JavaScript plotting plugin using jQuery\n *\n * Version: 1.0.8\n * Revision: 1250\n *\n * Copyright (c) 2009-2013 Chris Leonello\n * jqPlot is currently available for use in all personal or commercial projects \n * under both the MIT (http://www.opensource.org/licenses/mit-license.php) and GPL \n * version 2.0 (http://www.gnu.org/licenses/gpl-2.0.html) licenses. This means that you can \n * choose the license that best suits your project and use it accordingly. \n *\n * Although not required, the author would appreciate an email letting him \n * know of any substantial use of jqPlot. You can reach the author at: \n * chris at jqplot dot com or see http://www.jqplot.com/info.php .\n *\n * If you are feeling kind and generous, consider supporting the project by\n * making a donation at: http://www.jqplot.com/donate.php .\n *\n * sprintf functions contained in jqplot.sprintf.js by Ash Searle:\n *\n * version 2007.04.27\n * author Ash Searle\n * http://hexmen.com/blog/2007/03/printf-sprintf/\n * http://hexmen.com/js/sprintf.js\n * The author (Ash Searle) has placed this code in the public domain:\n * \"This code is unrestricted: you are free to use it however you like.\"\n * \n */\n(function($) {\n /**\n * Class: $.jqplot.PieRenderer\n * Plugin renderer to draw a pie chart.\n * x values, if present, will be used as slice labels.\n * y values give slice size.\n * \n * To use this renderer, you need to include the \n * pie renderer plugin, for example:\n * \n * > <script type=\"text/javascript\" src=\"plugins/jqplot.pieRenderer.js\"></script>\n * \n * Properties described here are passed into the $.jqplot function\n * as options on the series renderer. For example:\n * \n * > plot2 = $.jqplot('chart2', [s1, s2], {\n * > seriesDefaults: {\n * > renderer:$.jqplot.PieRenderer,\n * > rendererOptions:{\n * > sliceMargin: 2,\n * > startAngle: -90\n * > }\n * > }\n * > });\n * \n * A pie plot will trigger events on the plot target\n * according to user interaction. All events return the event object,\n * the series index, the point (slice) index, and the point data for \n * the appropriate slice.\n * \n * 'jqplotDataMouseOver' - triggered when user mouseing over a slice.\n * 'jqplotDataHighlight' - triggered the first time user mouses over a slice,\n * if highlighting is enabled.\n * 'jqplotDataUnhighlight' - triggered when a user moves the mouse out of\n * a highlighted slice.\n * 'jqplotDataClick' - triggered when the user clicks on a slice.\n * 'jqplotDataRightClick' - tiggered when the user right clicks on a slice if\n * the \"captureRightClick\" option is set to true on the plot.\n */\n $.jqplot.PieRenderer = function(){\n $.jqplot.LineRenderer.call(this);\n };\n \n $.jqplot.PieRenderer.prototype = new $.jqplot.LineRenderer();\n $.jqplot.PieRenderer.prototype.constructor = $.jqplot.PieRenderer;\n \n // called with scope of a series\n $.jqplot.PieRenderer.prototype.init = function(options, plot) {\n // Group: Properties\n //\n // prop: diameter\n // Outer diameter of the pie, auto computed by default\n this.diameter = null;\n // prop: padding\n // padding between the pie and plot edges, legend, etc.\n this.padding = 20;\n // prop: sliceMargin\n // angular spacing between pie slices in degrees.\n this.sliceMargin = 0;\n // prop: fill\n // true or false, whether to fil the slices.\n this.fill = true;\n // prop: shadowOffset\n // offset of the shadow from the slice and offset of \n // each succesive stroke of the shadow from the last.\n this.shadowOffset = 2;\n // prop: shadowAlpha\n // transparency of the shadow (0 = transparent, 1 = opaque)\n this.shadowAlpha = 0.07;\n // prop: shadowDepth\n // number of strokes to apply to the shadow, \n // each stroke offset shadowOffset from the last.\n this.shadowDepth = 5;\n // prop: highlightMouseOver\n // True to highlight slice when moused over.\n // This must be false to enable highlightMouseDown to highlight when clicking on a slice.\n this.highlightMouseOver = true;\n // prop: highlightMouseDown\n // True to highlight when a mouse button is pressed over a slice.\n // This will be disabled if highlightMouseOver is true.\n this.highlightMouseDown = false;\n // prop: highlightColors\n // an array of colors to use when highlighting a slice.\n this.highlightColors = [];\n // prop: dataLabels\n // Either 'label', 'value', 'percent' or an array of labels to place on the pie slices.\n // Defaults to percentage of each pie slice.\n this.dataLabels = 'percent';\n // prop: showDataLabels\n // true to show data labels on slices.\n this.showDataLabels = false;\n // prop: dataLabelFormatString\n // Format string for data labels. If none, '%s' is used for \"label\" and for arrays, '%d' for value and '%d%%' for percentage.\n this.dataLabelFormatString = null;\n // prop: dataLabelThreshold\n // Threshhold in percentage (0-100) of pie area, below which no label will be displayed.\n // This applies to all label types, not just to percentage labels.\n this.dataLabelThreshold = 3;\n // prop: dataLabelPositionFactor\n // A Multiplier (0-1) of the pie radius which controls position of label on slice.\n // Increasing will slide label toward edge of pie, decreasing will slide label toward center of pie.\n this.dataLabelPositionFactor = 0.52;\n // prop: dataLabelNudge\n // Number of pixels to slide the label away from (+) or toward (-) the center of the pie.\n this.dataLabelNudge = 2;\n // prop: dataLabelCenterOn\n // True to center the data label at its position.\n // False to set the inside facing edge of the label at its position.\n this.dataLabelCenterOn = true;\n // prop: startAngle\n // Angle to start drawing pie in degrees. \n // According to orientation of canvas coordinate system:\n // 0 = on the positive x axis\n // -90 = on the positive y axis.\n // 90 = on the negaive y axis.\n // 180 or - 180 = on the negative x axis.\n this.startAngle = 0;\n this.tickRenderer = $.jqplot.PieTickRenderer;\n // Used as check for conditions where pie shouldn't be drawn.\n this._drawData = true;\n this._type = 'pie';\n \n // if user has passed in highlightMouseDown option and not set highlightMouseOver, disable highlightMouseOver\n if (options.highlightMouseDown && options.highlightMouseOver == null) {\n options.highlightMouseOver = false;\n }\n \n $.extend(true, this, options);\n\n if (this.sliceMargin < 0) {\n this.sliceMargin = 0;\n }\n\n this._diameter = null;\n this._radius = null;\n // array of [start,end] angles arrays, one for each slice. In radians.\n this._sliceAngles = [];\n // index of the currenty highlighted point, if any\n this._highlightedPoint = null;\n \n // set highlight colors if none provided\n if (this.highlightColors.length == 0) {\n for (var i=0; i<this.seriesColors.length; i++){\n var rgba = $.jqplot.getColorComponents(this.seriesColors[i]);\n var newrgb = [rgba[0], rgba[1], rgba[2]];\n var sum = newrgb[0] + newrgb[1] + newrgb[2];\n for (var j=0; j<3; j++) {\n // when darkening, lowest color component can be is 60.\n newrgb[j] = (sum > 570) ? newrgb[j] * 0.8 : newrgb[j] + 0.3 * (255 - newrgb[j]);\n newrgb[j] = parseInt(newrgb[j], 10);\n }\n this.highlightColors.push('rgb('+newrgb[0]+','+newrgb[1]+','+newrgb[2]+')');\n }\n }\n \n this.highlightColorGenerator = new $.jqplot.ColorGenerator(this.highlightColors);\n \n plot.postParseOptionsHooks.addOnce(postParseOptions);\n plot.postInitHooks.addOnce(postInit);\n plot.eventListenerHooks.addOnce('jqplotMouseMove', handleMove);\n plot.eventListenerHooks.addOnce('jqplotMouseDown', handleMouseDown);\n plot.eventListenerHooks.addOnce('jqplotMouseUp', handleMouseUp);\n plot.eventListenerHooks.addOnce('jqplotClick', handleClick);\n plot.eventListenerHooks.addOnce('jqplotRightClick', handleRightClick);\n plot.postDrawHooks.addOnce(postPlotDraw);\n };\n \n $.jqplot.PieRenderer.prototype.setGridData = function(plot) {\n // set gridData property. This will hold angle in radians of each data point.\n var stack = [];\n var td = [];\n var sa = this.startAngle/180*Math.PI;\n var tot = 0;\n // don't know if we have any valid data yet, so set plot to not draw.\n this._drawData = false;\n for (var i=0; i<this.data.length; i++){\n if (this.data[i][1] != 0) {\n // we have data, O.K. to draw.\n this._drawData = true;\n }\n stack.push(this.data[i][1]);\n td.push([this.data[i][0]]);\n if (i>0) {\n stack[i] += stack[i-1];\n }\n tot += this.data[i][1];\n }\n var fact = Math.PI*2/stack[stack.length - 1];\n \n for (var i=0; i<stack.length; i++) {\n td[i][1] = stack[i] * fact;\n td[i][2] = this.data[i][1]/tot;\n }\n this.gridData = td;\n };\n \n $.jqplot.PieRenderer.prototype.makeGridData = function(data, plot) {\n var stack = [];\n var td = [];\n var tot = 0;\n var sa = this.startAngle/180*Math.PI;\n // don't know if we have any valid data yet, so set plot to not draw.\n this._drawData = false;\n for (var i=0; i<data.length; i++){\n if (this.data[i][1] != 0) {\n // we have data, O.K. to draw.\n this._drawData = true;\n }\n stack.push(data[i][1]);\n td.push([data[i][0]]);\n if (i>0) {\n stack[i] += stack[i-1];\n }\n tot += data[i][1];\n }\n var fact = Math.PI*2/stack[stack.length - 1];\n \n for (var i=0; i<stack.length; i++) {\n td[i][1] = stack[i] * fact;\n td[i][2] = data[i][1]/tot;\n }\n return td;\n };\n\n function calcRadiusAdjustment(ang) {\n return Math.sin((ang - (ang-Math.PI) / 8 / Math.PI )/2.0);\n }\n\n function calcRPrime(ang1, ang2, sliceMargin, fill, lineWidth) {\n var rprime = 0;\n var ang = ang2 - ang1;\n var absang = Math.abs(ang);\n var sm = sliceMargin;\n if (fill == false) {\n sm += lineWidth;\n }\n\n if (sm > 0 && absang > 0.01 && absang < 6.282) {\n rprime = parseFloat(sm) / 2.0 / calcRadiusAdjustment(ang);\n }\n\n return rprime;\n }\n \n $.jqplot.PieRenderer.prototype.drawSlice = function (ctx, ang1, ang2, color, isShadow) {\n if (this._drawData) {\n var r = this._radius;\n var fill = this.fill;\n var lineWidth = this.lineWidth;\n var sm = this.sliceMargin;\n if (this.fill == false) {\n sm += this.lineWidth;\n }\n ctx.save();\n ctx.translate(this._center[0], this._center[1]);\n \n var rprime = calcRPrime(ang1, ang2, this.sliceMargin, this.fill, this.lineWidth);\n\n var transx = rprime * Math.cos((ang1 + ang2) / 2.0);\n var transy = rprime * Math.sin((ang1 + ang2) / 2.0);\n\n if ((ang2 - ang1) <= Math.PI) {\n r -= rprime; \n }\n else {\n r += rprime;\n }\n\n ctx.translate(transx, transy);\n \n if (isShadow) {\n for (var i=0, l=this.shadowDepth; i<l; i++) {\n ctx.save();\n ctx.translate(this.shadowOffset*Math.cos(this.shadowAngle/180*Math.PI), this.shadowOffset*Math.sin(this.shadowAngle/180*Math.PI));\n doDraw(r);\n }\n for (var i=0, l=this.shadowDepth; i<l; i++) {\n ctx.restore();\n }\n }\n \n else {\n doDraw(r);\n }\n ctx.restore();\n }\n \n function doDraw (rad) {\n // Fix for IE and Chrome that can't seem to draw circles correctly.\n // ang2 should always be <= 2 pi since that is the way the data is converted.\n // 2Pi = 6.2831853, Pi = 3.1415927\n if (ang2 > 6.282 + this.startAngle) {\n ang2 = 6.282 + this.startAngle;\n if (ang1 > ang2) {\n ang1 = 6.281 + this.startAngle;\n }\n }\n // Fix for IE, where it can't seem to handle 0 degree angles. Also avoids\n // ugly line on unfilled pies.\n if (ang1 >= ang2) {\n return;\n } \n \n ctx.beginPath(); \n ctx.fillStyle = color;\n ctx.strokeStyle = color;\n ctx.lineWidth = lineWidth;\n ctx.arc(0, 0, rad, ang1, ang2, false);\n ctx.lineTo(0,0);\n ctx.closePath();\n \n if (fill) {\n ctx.fill();\n }\n else {\n ctx.stroke();\n }\n }\n };\n \n // called with scope of series\n $.jqplot.PieRenderer.prototype.draw = function (ctx, gd, options, plot) {\n var i;\n var opts = (options != undefined) ? options : {};\n // offset and direction of offset due to legend placement\n var offx = 0;\n var offy = 0;\n var trans = 1;\n var colorGenerator = new $.jqplot.ColorGenerator(this.seriesColors);\n if (options.legendInfo && options.legendInfo.placement == 'insideGrid') {\n var li = options.legendInfo;\n switch (li.location) {\n case 'nw':\n offx = li.width + li.xoffset;\n break;\n case 'w':\n offx = li.width + li.xoffset;\n break;\n case 'sw':\n offx = li.width + li.xoffset;\n break;\n case 'ne':\n offx = li.width + li.xoffset;\n trans = -1;\n break;\n case 'e':\n offx = li.width + li.xoffset;\n trans = -1;\n break;\n case 'se':\n offx = li.width + li.xoffset;\n trans = -1;\n break;\n case 'n':\n offy = li.height + li.yoffset;\n break;\n case 's':\n offy = li.height + li.yoffset;\n trans = -1;\n break;\n default:\n break;\n }\n }\n \n var shadow = (opts.shadow != undefined) ? opts.shadow : this.shadow;\n var fill = (opts.fill != undefined) ? opts.fill : this.fill;\n var cw = ctx.canvas.width;\n var ch = ctx.canvas.height;\n var w = cw - offx - 2 * this.padding;\n var h = ch - offy - 2 * this.padding;\n var mindim = Math.min(w,h);\n var d = mindim;\n \n // Fixes issue #272. Thanks hugwijst!\n // reset slice angles array.\n this._sliceAngles = [];\n\n var sm = this.sliceMargin;\n if (this.fill == false) {\n sm += this.lineWidth;\n }\n \n var rprime;\n var maxrprime = 0;\n\n var ang, ang1, ang2, shadowColor;\n var sa = this.startAngle / 180 * Math.PI;\n\n // have to pre-draw shadows, so loop throgh here and calculate some values also.\n for (var i=0, l=gd.length; i<l; i++) {\n ang1 = (i == 0) ? sa : gd[i-1][1] + sa;\n ang2 = gd[i][1] + sa;\n\n this._sliceAngles.push([ang1, ang2]);\n\n rprime = calcRPrime(ang1, ang2, this.sliceMargin, this.fill, this.lineWidth);\n\n if (Math.abs(ang2-ang1) > Math.PI) {\n maxrprime = Math.max(rprime, maxrprime); \n }\n }\n\n if (this.diameter != null && this.diameter > 0) {\n this._diameter = this.diameter - 2*maxrprime;\n }\n else {\n this._diameter = d - 2*maxrprime;\n }\n\n // Need to check for undersized pie. This can happen if\n // plot area too small and legend is too big.\n if (this._diameter < 6) {\n $.jqplot.log('Diameter of pie too small, not rendering.');\n return;\n }\n\n var r = this._radius = this._diameter/2;\n\n this._center = [(cw - trans * offx)/2 + trans * offx + maxrprime * Math.cos(sa), (ch - trans*offy)/2 + trans * offy + maxrprime * Math.sin(sa)];\n\n if (this.shadow) {\n for (var i=0, l=gd.length; i<l; i++) {\n shadowColor = 'rgba(0,0,0,'+this.shadowAlpha+')';\n this.renderer.drawSlice.call (this, ctx, this._sliceAngles[i][0], this._sliceAngles[i][1], shadowColor, true);\n }\n }\n \n for (var i=0; i<gd.length; i++) {\n \n this.renderer.drawSlice.call (this, ctx, this._sliceAngles[i][0], this._sliceAngles[i][1], colorGenerator.next(), false);\n \n if (this.showDataLabels && gd[i][2]*100 >= this.dataLabelThreshold) {\n var fstr, avgang = (this._sliceAngles[i][0] + this._sliceAngles[i][1])/2, label;\n \n if (this.dataLabels == 'label') {\n fstr = this.dataLabelFormatString || '%s';\n label = $.jqplot.sprintf(fstr, gd[i][0]);\n }\n else if (this.dataLabels == 'value') {\n fstr = this.dataLabelFormatString || '%d';\n label = $.jqplot.sprintf(fstr, this.data[i][1]);\n }\n else if (this.dataLabels == 'percent') {\n fstr = this.dataLabelFormatString || '%d%%';\n label = $.jqplot.sprintf(fstr, gd[i][2]*100);\n }\n else if (this.dataLabels.constructor == Array) {\n fstr = this.dataLabelFormatString || '%s';\n label = $.jqplot.sprintf(fstr, this.dataLabels[i]);\n }\n \n var fact = (this._radius ) * this.dataLabelPositionFactor + this.sliceMargin + this.dataLabelNudge;\n \n var x = this._center[0] + Math.cos(avgang) * fact + this.canvas._offsets.left;\n var y = this._center[1] + Math.sin(avgang) * fact + this.canvas._offsets.top;\n \n var labelelem = $('<div class=\"jqplot-pie-series jqplot-data-label\" style=\"position:absolute;\">' + label + '</div>').insertBefore(plot.eventCanvas._elem);\n if (this.dataLabelCenterOn) {\n x -= labelelem.width()/2;\n y -= labelelem.height()/2;\n }\n else {\n x -= labelelem.width() * Math.sin(avgang/2);\n y -= labelelem.height()/2;\n }\n x = Math.round(x);\n y = Math.round(y);\n labelelem.css({left: x, top: y});\n }\n } \n };\n \n $.jqplot.PieAxisRenderer = function() {\n $.jqplot.LinearAxisRenderer.call(this);\n };\n \n $.jqplot.PieAxisRenderer.prototype = new $.jqplot.LinearAxisRenderer();\n $.jqplot.PieAxisRenderer.prototype.constructor = $.jqplot.PieAxisRenderer;\n \n \n // There are no traditional axes on a pie chart. We just need to provide\n // dummy objects with properties so the plot will render.\n // called with scope of axis object.\n $.jqplot.PieAxisRenderer.prototype.init = function(options){\n //\n this.tickRenderer = $.jqplot.PieTickRenderer;\n $.extend(true, this, options);\n // I don't think I'm going to need _dataBounds here.\n // have to go Axis scaling in a way to fit chart onto plot area\n // and provide u2p and p2u functionality for mouse cursor, etc.\n // for convienence set _dataBounds to 0 and 100 and\n // set min/max to 0 and 100.\n this._dataBounds = {min:0, max:100};\n this.min = 0;\n this.max = 100;\n this.showTicks = false;\n this.ticks = [];\n this.showMark = false;\n this.show = false; \n };\n \n \n \n \n $.jqplot.PieLegendRenderer = function(){\n $.jqplot.TableLegendRenderer.call(this);\n };\n \n $.jqplot.PieLegendRenderer.prototype = new $.jqplot.TableLegendRenderer();\n $.jqplot.PieLegendRenderer.prototype.constructor = $.jqplot.PieLegendRenderer;\n \n /**\n * Class: $.jqplot.PieLegendRenderer\n * Legend Renderer specific to pie plots. Set by default\n * when user creates a pie plot.\n */\n $.jqplot.PieLegendRenderer.prototype.init = function(options) {\n // Group: Properties\n //\n // prop: numberRows\n // Maximum number of rows in the legend. 0 or null for unlimited.\n this.numberRows = null;\n // prop: numberColumns\n // Maximum number of columns in the legend. 0 or null for unlimited.\n this.numberColumns = null;\n $.extend(true, this, options);\n };\n \n // called with context of legend\n $.jqplot.PieLegendRenderer.prototype.draw = function() {\n var legend = this;\n if (this.show) {\n var series = this._series;\n\n\n this._elem = $(document.createElement('table'));\n this._elem.addClass('jqplot-table-legend');\n\n var ss = {position:'absolute'};\n if (this.background) {\n ss['background'] = this.background;\n }\n if (this.border) {\n ss['border'] = this.border;\n }\n if (this.fontSize) {\n ss['fontSize'] = this.fontSize;\n }\n if (this.fontFamily) {\n ss['fontFamily'] = this.fontFamily;\n }\n if (this.textColor) {\n ss['textColor'] = this.textColor;\n }\n if (this.marginTop != null) {\n ss['marginTop'] = this.marginTop;\n }\n if (this.marginBottom != null) {\n ss['marginBottom'] = this.marginBottom;\n }\n if (this.marginLeft != null) {\n ss['marginLeft'] = this.marginLeft;\n }\n if (this.marginRight != null) {\n ss['marginRight'] = this.marginRight;\n }\n\n this._elem.css(ss);\n\n // Pie charts legends don't go by number of series, but by number of data points\n // in the series. Refactor things here for that.\n \n var pad = false, \n reverse = false,\n nr, \n nc;\n var s = series[0];\n var colorGenerator = new $.jqplot.ColorGenerator(s.seriesColors);\n \n if (s.show) {\n var pd = s.data;\n if (this.numberRows) {\n nr = this.numberRows;\n if (!this.numberColumns){\n nc = Math.ceil(pd.length/nr);\n }\n else{\n nc = this.numberColumns;\n }\n }\n else if (this.numberColumns) {\n nc = this.numberColumns;\n nr = Math.ceil(pd.length/this.numberColumns);\n }\n else {\n nr = pd.length;\n nc = 1;\n }\n \n var i, j;\n var tr, td1, td2; \n var lt, rs, color;\n var idx = 0; \n var div0, div1; \n \n for (i=0; i<nr; i++) {\n tr = $(document.createElement('tr'));\n tr.addClass('jqplot-table-legend');\n \n if (reverse){\n tr.prependTo(this._elem);\n }\n \n else{\n tr.appendTo(this._elem);\n }\n \n for (j=0; j<nc; j++) {\n if (idx < pd.length){\n lt = this.labels[idx] || pd[idx][0].toString();\n color = colorGenerator.next();\n if (!reverse){\n if (i>0){\n pad = true;\n }\n else{\n pad = false;\n }\n }\n else{\n if (i == nr -1){\n pad = false;\n }\n else{\n pad = true;\n }\n }\n rs = (pad) ? this.rowSpacing : '0';\n\n\n\n td1 = $(document.createElement('td'));\n td1.addClass('jqplot-table-legend jqplot-table-legend-swatch');\n td1.css({textAlign: 'center', paddingTop: rs});\n\n div0 = $(document.createElement('div'));\n div0.addClass('jqplot-table-legend-swatch-outline');\n div1 = $(document.createElement('div'));\n div1.addClass('jqplot-table-legend-swatch');\n div1.css({backgroundColor: color, borderColor: color});\n td1.append(div0.append(div1));\n\n td2 = $(document.createElement('td'));\n td2.addClass('jqplot-table-legend jqplot-table-legend-label');\n td2.css('paddingTop', rs);\n\n if (this.escapeHtml){\n td2.text(lt);\n }\n else {\n td2.html(lt);\n }\n if (reverse) {\n td2.prependTo(tr);\n td1.prependTo(tr);\n }\n else {\n td1.appendTo(tr);\n td2.appendTo(tr);\n }\n pad = true;\n }\n idx++;\n } \n }\n }\n }\n return this._elem; \n };\n \n $.jqplot.PieRenderer.prototype.handleMove = function(ev, gridpos, datapos, neighbor, plot) {\n if (neighbor) {\n var ins = [neighbor.seriesIndex, neighbor.pointIndex, neighbor.data];\n plot.target.trigger('jqplotDataMouseOver', ins);\n if (plot.series[ins[0]].highlightMouseOver && !(ins[0] == plot.plugins.pieRenderer.highlightedSeriesIndex && ins[1] == plot.series[ins[0]]._highlightedPoint)) {\n plot.target.trigger('jqplotDataHighlight', ins);\n highlight (plot, ins[0], ins[1]);\n }\n }\n else if (neighbor == null) {\n unhighlight (plot);\n }\n };\n \n \n // this.eventCanvas._elem.bind($.jqplot.eventListenerHooks[i][0], {plot:this}, $.jqplot.eventListenerHooks[i][1]);\n \n // setup default renderers for axes and legend so user doesn't have to\n // called with scope of plot\n function preInit(target, data, options) {\n options = options || {};\n options.axesDefaults = options.axesDefaults || {};\n options.legend = options.legend || {};\n options.seriesDefaults = options.seriesDefaults || {};\n // only set these if there is a pie series\n var setopts = false;\n if (options.seriesDefaults.renderer == $.jqplot.PieRenderer) {\n setopts = true;\n }\n else if (options.series) {\n for (var i=0; i < options.series.length; i++) {\n if (options.series[i].renderer == $.jqplot.PieRenderer) {\n setopts = true;\n }\n }\n }\n \n if (setopts) {\n options.axesDefaults.renderer = $.jqplot.PieAxisRenderer;\n options.legend.renderer = $.jqplot.PieLegendRenderer;\n options.legend.preDraw = true;\n options.seriesDefaults.pointLabels = {show: false};\n }\n }\n \n function postInit(target, data, options) {\n for (var i=0; i<this.series.length; i++) {\n if (this.series[i].renderer.constructor == $.jqplot.PieRenderer) {\n // don't allow mouseover and mousedown at same time.\n if (this.series[i].highlightMouseOver) {\n this.series[i].highlightMouseDown = false;\n }\n }\n }\n }\n \n // called with scope of plot\n function postParseOptions(options) {\n for (var i=0; i<this.series.length; i++) {\n this.series[i].seriesColors = this.seriesColors;\n this.series[i].colorGenerator = $.jqplot.colorGenerator;\n }\n }\n \n function highlight (plot, sidx, pidx) {\n var s = plot.series[sidx];\n var canvas = plot.plugins.pieRenderer.highlightCanvas;\n canvas._ctx.clearRect(0,0,canvas._ctx.canvas.width, canvas._ctx.canvas.height);\n s._highlightedPoint = pidx;\n plot.plugins.pieRenderer.highlightedSeriesIndex = sidx;\n s.renderer.drawSlice.call(s, canvas._ctx, s._sliceAngles[pidx][0], s._sliceAngles[pidx][1], s.highlightColorGenerator.get(pidx), false);\n }\n \n function unhighlight (plot) {\n var canvas = plot.plugins.pieRenderer.highlightCanvas;\n canvas._ctx.clearRect(0,0, canvas._ctx.canvas.width, canvas._ctx.canvas.height);\n for (var i=0; i<plot.series.length; i++) {\n plot.series[i]._highlightedPoint = null;\n }\n plot.plugins.pieRenderer.highlightedSeriesIndex = null;\n plot.target.trigger('jqplotDataUnhighlight');\n }\n \n function handleMove(ev, gridpos, datapos, neighbor, plot) {\n if (neighbor) {\n var ins = [neighbor.seriesIndex, neighbor.pointIndex, neighbor.data];\n var evt1 = jQuery.Event('jqplotDataMouseOver');\n evt1.pageX = ev.pageX;\n evt1.pageY = ev.pageY;\n plot.target.trigger(evt1, ins);\n if (plot.series[ins[0]].highlightMouseOver && !(ins[0] == plot.plugins.pieRenderer.highlightedSeriesIndex && ins[1] == plot.series[ins[0]]._highlightedPoint)) {\n var evt = jQuery.Event('jqplotDataHighlight');\n evt.which = ev.which;\n evt.pageX = ev.pageX;\n evt.pageY = ev.pageY;\n plot.target.trigger(evt, ins);\n highlight (plot, ins[0], ins[1]);\n }\n }\n else if (neighbor == null) {\n unhighlight (plot);\n }\n } \n \n function handleMouseDown(ev, gridpos, datapos, neighbor, plot) {\n if (neighbor) {\n var ins = [neighbor.seriesIndex, neighbor.pointIndex, neighbor.data];\n if (plot.series[ins[0]].highlightMouseDown && !(ins[0] == plot.plugins.pieRenderer.highlightedSeriesIndex && ins[1] == plot.series[ins[0]]._highlightedPoint)) {\n var evt = jQuery.Event('jqplotDataHighlight');\n evt.which = ev.which;\n evt.pageX = ev.pageX;\n evt.pageY = ev.pageY;\n plot.target.trigger(evt, ins);\n highlight (plot, ins[0], ins[1]);\n }\n }\n else if (neighbor == null) {\n unhighlight (plot);\n }\n }\n \n function handleMouseUp(ev, gridpos, datapos, neighbor, plot) {\n var idx = plot.plugins.pieRenderer.highlightedSeriesIndex;\n if (idx != null && plot.series[idx].highlightMouseDown) {\n unhighlight(plot);\n }\n }\n \n function handleClick(ev, gridpos, datapos, neighbor, plot) {\n if (neighbor) {\n var ins = [neighbor.seriesIndex, neighbor.pointIndex, neighbor.data];\n var evt = jQuery.Event('jqplotDataClick');\n evt.which = ev.which;\n evt.pageX = ev.pageX;\n evt.pageY = ev.pageY;\n plot.target.trigger(evt, ins);\n }\n }\n \n function handleRightClick(ev, gridpos, datapos, neighbor, plot) {\n if (neighbor) {\n var ins = [neighbor.seriesIndex, neighbor.pointIndex, neighbor.data];\n var idx = plot.plugins.pieRenderer.highlightedSeriesIndex;\n if (idx != null && plot.series[idx].highlightMouseDown) {\n unhighlight(plot);\n }\n var evt = jQuery.Event('jqplotDataRightClick');\n evt.which = ev.which;\n evt.pageX = ev.pageX;\n evt.pageY = ev.pageY;\n plot.target.trigger(evt, ins);\n }\n } \n \n // called within context of plot\n // create a canvas which we can draw on.\n // insert it before the eventCanvas, so eventCanvas will still capture events.\n function postPlotDraw() {\n // Memory Leaks patch \n if (this.plugins.pieRenderer && this.plugins.pieRenderer.highlightCanvas) {\n this.plugins.pieRenderer.highlightCanvas.resetCanvas();\n this.plugins.pieRenderer.highlightCanvas = null;\n }\n\n this.plugins.pieRenderer = {highlightedSeriesIndex:null};\n this.plugins.pieRenderer.highlightCanvas = new $.jqplot.GenericCanvas();\n \n // do we have any data labels? if so, put highlight canvas before those\n var labels = $(this.targetId+' .jqplot-data-label');\n if (labels.length) {\n $(labels[0]).before(this.plugins.pieRenderer.highlightCanvas.createElement(this._gridPadding, 'jqplot-pieRenderer-highlight-canvas', this._plotDimensions, this));\n }\n // else put highlight canvas before event canvas.\n else {\n this.eventCanvas._elem.before(this.plugins.pieRenderer.highlightCanvas.createElement(this._gridPadding, 'jqplot-pieRenderer-highlight-canvas', this._plotDimensions, this));\n }\n \n var hctx = this.plugins.pieRenderer.highlightCanvas.setContext();\n this.eventCanvas._elem.bind('mouseleave', {plot:this}, function (ev) { unhighlight(ev.data.plot); });\n }\n \n $.jqplot.preInitHooks.push(preInit);\n \n $.jqplot.PieTickRenderer = function() {\n $.jqplot.AxisTickRenderer.call(this);\n };\n \n $.jqplot.PieTickRenderer.prototype = new $.jqplot.AxisTickRenderer();\n $.jqplot.PieTickRenderer.prototype.constructor = $.jqplot.PieTickRenderer;\n \n})(jQuery);\n \n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/as-jqplot/dist/plugins/jqplot.pieRenderer.js\n// module id = 371\n// module chunks = 0","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorNonModal.pug\":\"include accessEditorMixins\\n\\nif !hidePrivacyEditor\\n +privacyEditor(modelType)\\n+permissionsEditor\\n\\nif !hideRecurseOption\\n +recurseOption(modelType)\\n\\nif !hideSaveButton\\n +saveAccessButton\\n\",\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\":\"mixin privacyEditor(typeName)\\n .g-public-container\\n .radio\\n label\\n input#g-access-private(type=\\\"radio\\\", name=\\\"privacy\\\",\\n checked=(publicFlag ? undefined : \\\"checked\\\"))\\n i.icon-lock\\n | #[b Private] — Access is required to view this #{typeName}\\n .radio\\n label\\n input#g-access-public(type=\\\"radio\\\", name=\\\"privacy\\\",\\n checked=(publicFlag ? \\\"checked\\\" : undefined))\\n i.icon-globe\\n | #[b Public] — Anyone can view this #{typeName}\\n\\n if _.keys(flagList).length\\n a.g-action-manage-public-flags.hide(title=\\\"Public access flags\\\")\\n i.g-flag-icon.icon-flag\\n - var flagLen = (publicFlags && publicFlags.length) || 0\\n .g-flag-count-indicator(class=(flagLen ? null : \\\"hide\\\"))= flagLen\\n | Manage public access flags...\\n .g-public-flags-popover-container.hide\\n each flag, key in flagList\\n - var checked = _.contains(publicFlags, key) ? 'checked' : null;\\n - var disabled = (!isAdmin && flag.admin) ? 'disabled' : null;\\n .checkbox(class=disabled)\\n label.g-flag-label(title=flag.description)\\n input.g-public-flag-checkbox(flag=key, type=\\\"checkbox\\\", checked=checked, disabled=disabled)\\n span= flag.name\\n button.g-close-public-flags-popover.btn.btn-xs.btn-default Close\\n\\nmixin permissionsEditor\\n .g-permissions-editor\\n .g-ac-list-title #[i.icon-key-1] Permissions\\n .g-ac-list\\n #g-ac-list-groups\\n #g-ac-list-users\\n\\n .g-grant-access-container\\n form(role=\\\"form\\\")\\n .form-group\\n label(for=\\\"addAccess\\\") Grant access to another group or user\\n .g-search-field-container\\n\\nmixin recurseOption(typeName)\\n .g-recursive-container\\n .radio\\n label\\n input#g-apply-nonrecursive(type=\\\"radio\\\", name=\\\"recurse\\\", checked=\\\"checked\\\")\\n | Apply permissions only to this #{typeName}, not its subfolders\\n .radio\\n label\\n input#g-apply-recursive(type=\\\"radio\\\", name=\\\"recurse\\\")\\n | Also set permissions on all subfolders to match this #{typeName}'s permissions\\n\\nmixin saveAccessButton\\n button.g-save-access-list.btn.btn-small.btn-primary #[i.icon-ok] Save\\n\"};\n;var locals_for_with = (locals || {});(function (_, flagList, hidePrivacyEditor, hideRecurseOption, hideSaveButton, isAdmin, modelType, publicFlag, publicFlags) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_mixins[\"privacyEditor\"] = pug_interp = function(typeName){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-public-container\\\"\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"radio\\\"\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Clabel\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" id=\\\"g-access-private\\\" type=\\\"radio\\\" name=\\\"privacy\\\"\"+pug.attr(\"checked\", (publicFlag ? undefined : \"checked\"), true, true)) + \"\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-lock\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cb\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"Private\\u003C\\u002Fb\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \" — Access is required to view this \";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = typeName) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"radio\\\"\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Clabel\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" id=\\\"g-access-public\\\" type=\\\"radio\\\" name=\\\"privacy\\\"\"+pug.attr(\"checked\", (publicFlag ? \"checked\" : undefined), true, true)) + \"\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-globe\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cb\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"Public\\u003C\\u002Fb\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \" — Anyone can view this \";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = typeName) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\nif (_.keys(flagList).length) {\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-action-manage-public-flags hide\\\" title=\\\"Public access flags\\\"\\u003E\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"g-flag-icon icon-flag\\\"\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\nvar flagLen = (publicFlags && publicFlags.length) || 0\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([\"g-flag-count-indicator\",(flagLen ? null : \"hide\")], [false,true]), false, true)) + \"\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = flagLen) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \" Manage public access flags...\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-public-flags-popover-container hide\\\"\\u003E\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\n// iterate flagList\n;(function(){\n var $$obj = flagList;\n if ('number' == typeof $$obj.length) {\n for (var key = 0, $$l = $$obj.length; key < $$l; key++) {\n var flag = $$obj[key];\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\nvar checked = _.contains(publicFlags, key) ? 'checked' : null;\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\nvar disabled = (!isAdmin && flag.admin) ? 'disabled' : null;\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([\"checkbox\",disabled], [false,true]), false, true)) + \"\\u003E\";\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Clabel\" + (\" class=\\\"g-flag-label\\\"\"+pug.attr(\"title\", flag.description, true, true)) + \"\\u003E\";\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"g-public-flag-checkbox\\\"\"+pug.attr(\"flag\", key, true, true)+\" type=\\\"checkbox\\\"\"+pug.attr(\"checked\", checked, true, true)+pug.attr(\"disabled\", disabled, true, true)) + \"\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = flag.name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var key in $$obj) {\n $$l++;\n var flag = $$obj[key];\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\nvar checked = _.contains(publicFlags, key) ? 'checked' : null;\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\nvar disabled = (!isAdmin && flag.admin) ? 'disabled' : null;\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([\"checkbox\",disabled], [false,true]), false, true)) + \"\\u003E\";\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Clabel\" + (\" class=\\\"g-flag-label\\\"\"+pug.attr(\"title\", flag.description, true, true)) + \"\\u003E\";\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"g-public-flag-checkbox\\\"\"+pug.attr(\"flag\", key, true, true)+\" type=\\\"checkbox\\\"\"+pug.attr(\"checked\", checked, true, true)+pug.attr(\"disabled\", disabled, true, true)) + \"\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = flag.name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\";\n }\n }\n}).call(this);\n\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"g-close-public-flags-popover btn btn-xs btn-default\\\"\\u003E\";\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"Close\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n};\n;pug_debug_line = 32;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_mixins[\"permissionsEditor\"] = pug_interp = function(){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-permissions-editor\\\"\\u003E\";\n;pug_debug_line = 34;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-ac-list-title\\\"\\u003E\";\n;pug_debug_line = 34;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\";\n;pug_debug_line = 34;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-key-1\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 34;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \" Permissions\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 35;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-ac-list\\\"\\u003E\";\n;pug_debug_line = 36;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv id=\\\"g-ac-list-groups\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 37;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv id=\\\"g-ac-list-users\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 39;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-grant-access-container\\\"\\u003E\";\n;pug_debug_line = 40;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cform role=\\\"form\\\"\\u003E\";\n;pug_debug_line = 41;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 42;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Clabel for=\\\"addAccess\\\"\\u003E\";\n;pug_debug_line = 42;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"Grant access to another group or user\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 43;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-search-field-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fform\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n};\n;pug_debug_line = 45;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_mixins[\"recurseOption\"] = pug_interp = function(typeName){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\n;pug_debug_line = 46;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-recursive-container\\\"\\u003E\";\n;pug_debug_line = 47;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"radio\\\"\\u003E\";\n;pug_debug_line = 48;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Clabel\\u003E\";\n;pug_debug_line = 49;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cinput id=\\\"g-apply-nonrecursive\\\" type=\\\"radio\\\" name=\\\"recurse\\\" checked=\\\"checked\\\"\\u003E\";\n;pug_debug_line = 50;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"Apply permissions only to this \";\n;pug_debug_line = 50;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = typeName) ? \"\" : pug_interp));\n;pug_debug_line = 50;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \", not its subfolders\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 51;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"radio\\\"\\u003E\";\n;pug_debug_line = 52;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Clabel\\u003E\";\n;pug_debug_line = 53;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cinput id=\\\"g-apply-recursive\\\" type=\\\"radio\\\" name=\\\"recurse\\\"\\u003E\";\n;pug_debug_line = 54;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"Also set permissions on all subfolders to match this \";\n;pug_debug_line = 54;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = typeName) ? \"\" : pug_interp));\n;pug_debug_line = 54;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"'s permissions\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n};\n;pug_debug_line = 56;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_mixins[\"saveAccessButton\"] = pug_interp = function(){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\n;pug_debug_line = 57;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"g-save-access-list btn btn-small btn-primary\\\"\\u003E\";\n;pug_debug_line = 57;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\";\n;pug_debug_line = 57;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-ok\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 57;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \" Save\\u003C\\u002Fbutton\\u003E\";\n};\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorNonModal.pug\";\nif (!hidePrivacyEditor) {\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorNonModal.pug\";\npug_mixins[\"privacyEditor\"](modelType);\n}\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorNonModal.pug\";\npug_mixins[\"permissionsEditor\"]();\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorNonModal.pug\";\nif (!hideRecurseOption) {\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorNonModal.pug\";\npug_mixins[\"recurseOption\"](modelType);\n}\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorNonModal.pug\";\nif (!hideSaveButton) {\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorNonModal.pug\";\npug_mixins[\"saveAccessButton\"]();\n}}.call(this,\"_\" in locals_for_with?locals_for_with._:typeof _!==\"undefined\"?_:undefined,\"flagList\" in locals_for_with?locals_for_with.flagList:typeof flagList!==\"undefined\"?flagList:undefined,\"hidePrivacyEditor\" in locals_for_with?locals_for_with.hidePrivacyEditor:typeof hidePrivacyEditor!==\"undefined\"?hidePrivacyEditor:undefined,\"hideRecurseOption\" in locals_for_with?locals_for_with.hideRecurseOption:typeof hideRecurseOption!==\"undefined\"?hideRecurseOption:undefined,\"hideSaveButton\" in locals_for_with?locals_for_with.hideSaveButton:typeof hideSaveButton!==\"undefined\"?hideSaveButton:undefined,\"isAdmin\" in locals_for_with?locals_for_with.isAdmin:typeof isAdmin!==\"undefined\"?isAdmin:undefined,\"modelType\" in locals_for_with?locals_for_with.modelType:typeof modelType!==\"undefined\"?modelType:undefined,\"publicFlag\" in locals_for_with?locals_for_with.publicFlag:typeof publicFlag!==\"undefined\"?publicFlag:undefined,\"publicFlags\" in locals_for_with?locals_for_with.publicFlags:typeof publicFlags!==\"undefined\"?publicFlags:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/accessEditorNonModal.pug","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditor.pug\":\"include accessEditorMixins\\n\\n.modal-dialog\\n .modal-content\\n .modal-header\\n button.close(data-dismiss=\\\"modal\\\", aria-hidden=\\\"true\\\", type=\\\"button\\\") ×\\n h4.modal-title Access control\\n .g-dialog-subtitle\\n if (modelType === 'folder')\\n i.icon-folder\\n else if (modelType === 'collection')\\n i.icon-sitemap\\n = model.name()\\n .modal-body.g-access-modal-body\\n if !hidePrivacyEditor\\n +privacyEditor(modelType)\\n +permissionsEditor\\n if !hideRecurseOption\\n +recurseOption(modelType)\\n\\n .modal-footer\\n a.btn.btn-small.btn-default(data-dismiss=\\\"modal\\\") Close\\n +saveAccessButton\\n\",\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\":\"mixin privacyEditor(typeName)\\n .g-public-container\\n .radio\\n label\\n input#g-access-private(type=\\\"radio\\\", name=\\\"privacy\\\",\\n checked=(publicFlag ? undefined : \\\"checked\\\"))\\n i.icon-lock\\n | #[b Private] — Access is required to view this #{typeName}\\n .radio\\n label\\n input#g-access-public(type=\\\"radio\\\", name=\\\"privacy\\\",\\n checked=(publicFlag ? \\\"checked\\\" : undefined))\\n i.icon-globe\\n | #[b Public] — Anyone can view this #{typeName}\\n\\n if _.keys(flagList).length\\n a.g-action-manage-public-flags.hide(title=\\\"Public access flags\\\")\\n i.g-flag-icon.icon-flag\\n - var flagLen = (publicFlags && publicFlags.length) || 0\\n .g-flag-count-indicator(class=(flagLen ? null : \\\"hide\\\"))= flagLen\\n | Manage public access flags...\\n .g-public-flags-popover-container.hide\\n each flag, key in flagList\\n - var checked = _.contains(publicFlags, key) ? 'checked' : null;\\n - var disabled = (!isAdmin && flag.admin) ? 'disabled' : null;\\n .checkbox(class=disabled)\\n label.g-flag-label(title=flag.description)\\n input.g-public-flag-checkbox(flag=key, type=\\\"checkbox\\\", checked=checked, disabled=disabled)\\n span= flag.name\\n button.g-close-public-flags-popover.btn.btn-xs.btn-default Close\\n\\nmixin permissionsEditor\\n .g-permissions-editor\\n .g-ac-list-title #[i.icon-key-1] Permissions\\n .g-ac-list\\n #g-ac-list-groups\\n #g-ac-list-users\\n\\n .g-grant-access-container\\n form(role=\\\"form\\\")\\n .form-group\\n label(for=\\\"addAccess\\\") Grant access to another group or user\\n .g-search-field-container\\n\\nmixin recurseOption(typeName)\\n .g-recursive-container\\n .radio\\n label\\n input#g-apply-nonrecursive(type=\\\"radio\\\", name=\\\"recurse\\\", checked=\\\"checked\\\")\\n | Apply permissions only to this #{typeName}, not its subfolders\\n .radio\\n label\\n input#g-apply-recursive(type=\\\"radio\\\", name=\\\"recurse\\\")\\n | Also set permissions on all subfolders to match this #{typeName}'s permissions\\n\\nmixin saveAccessButton\\n button.g-save-access-list.btn.btn-small.btn-primary #[i.icon-ok] Save\\n\"};\n;var locals_for_with = (locals || {});(function (_, flagList, hidePrivacyEditor, hideRecurseOption, isAdmin, model, modelType, publicFlag, publicFlags) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_mixins[\"privacyEditor\"] = pug_interp = function(typeName){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-public-container\\\"\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"radio\\\"\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Clabel\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" id=\\\"g-access-private\\\" type=\\\"radio\\\" name=\\\"privacy\\\"\"+pug.attr(\"checked\", (publicFlag ? undefined : \"checked\"), true, true)) + \"\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-lock\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cb\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"Private\\u003C\\u002Fb\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \" — Access is required to view this \";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = typeName) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"radio\\\"\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Clabel\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" id=\\\"g-access-public\\\" type=\\\"radio\\\" name=\\\"privacy\\\"\"+pug.attr(\"checked\", (publicFlag ? \"checked\" : undefined), true, true)) + \"\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-globe\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cb\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"Public\\u003C\\u002Fb\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \" — Anyone can view this \";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = typeName) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\nif (_.keys(flagList).length) {\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-action-manage-public-flags hide\\\" title=\\\"Public access flags\\\"\\u003E\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"g-flag-icon icon-flag\\\"\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\nvar flagLen = (publicFlags && publicFlags.length) || 0\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([\"g-flag-count-indicator\",(flagLen ? null : \"hide\")], [false,true]), false, true)) + \"\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = flagLen) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \" Manage public access flags...\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-public-flags-popover-container hide\\\"\\u003E\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\n// iterate flagList\n;(function(){\n var $$obj = flagList;\n if ('number' == typeof $$obj.length) {\n for (var key = 0, $$l = $$obj.length; key < $$l; key++) {\n var flag = $$obj[key];\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\nvar checked = _.contains(publicFlags, key) ? 'checked' : null;\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\nvar disabled = (!isAdmin && flag.admin) ? 'disabled' : null;\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([\"checkbox\",disabled], [false,true]), false, true)) + \"\\u003E\";\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Clabel\" + (\" class=\\\"g-flag-label\\\"\"+pug.attr(\"title\", flag.description, true, true)) + \"\\u003E\";\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"g-public-flag-checkbox\\\"\"+pug.attr(\"flag\", key, true, true)+\" type=\\\"checkbox\\\"\"+pug.attr(\"checked\", checked, true, true)+pug.attr(\"disabled\", disabled, true, true)) + \"\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = flag.name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var key in $$obj) {\n $$l++;\n var flag = $$obj[key];\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\nvar checked = _.contains(publicFlags, key) ? 'checked' : null;\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\nvar disabled = (!isAdmin && flag.admin) ? 'disabled' : null;\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([\"checkbox\",disabled], [false,true]), false, true)) + \"\\u003E\";\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Clabel\" + (\" class=\\\"g-flag-label\\\"\"+pug.attr(\"title\", flag.description, true, true)) + \"\\u003E\";\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"g-public-flag-checkbox\\\"\"+pug.attr(\"flag\", key, true, true)+\" type=\\\"checkbox\\\"\"+pug.attr(\"checked\", checked, true, true)+pug.attr(\"disabled\", disabled, true, true)) + \"\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = flag.name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\";\n }\n }\n}).call(this);\n\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"g-close-public-flags-popover btn btn-xs btn-default\\\"\\u003E\";\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"Close\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n};\n;pug_debug_line = 32;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_mixins[\"permissionsEditor\"] = pug_interp = function(){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-permissions-editor\\\"\\u003E\";\n;pug_debug_line = 34;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-ac-list-title\\\"\\u003E\";\n;pug_debug_line = 34;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\";\n;pug_debug_line = 34;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-key-1\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 34;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \" Permissions\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 35;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-ac-list\\\"\\u003E\";\n;pug_debug_line = 36;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv id=\\\"g-ac-list-groups\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 37;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv id=\\\"g-ac-list-users\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 39;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-grant-access-container\\\"\\u003E\";\n;pug_debug_line = 40;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cform role=\\\"form\\\"\\u003E\";\n;pug_debug_line = 41;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 42;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Clabel for=\\\"addAccess\\\"\\u003E\";\n;pug_debug_line = 42;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"Grant access to another group or user\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 43;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-search-field-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fform\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n};\n;pug_debug_line = 45;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_mixins[\"recurseOption\"] = pug_interp = function(typeName){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\n;pug_debug_line = 46;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-recursive-container\\\"\\u003E\";\n;pug_debug_line = 47;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"radio\\\"\\u003E\";\n;pug_debug_line = 48;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Clabel\\u003E\";\n;pug_debug_line = 49;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cinput id=\\\"g-apply-nonrecursive\\\" type=\\\"radio\\\" name=\\\"recurse\\\" checked=\\\"checked\\\"\\u003E\";\n;pug_debug_line = 50;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"Apply permissions only to this \";\n;pug_debug_line = 50;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = typeName) ? \"\" : pug_interp));\n;pug_debug_line = 50;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \", not its subfolders\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 51;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"radio\\\"\\u003E\";\n;pug_debug_line = 52;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Clabel\\u003E\";\n;pug_debug_line = 53;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cinput id=\\\"g-apply-recursive\\\" type=\\\"radio\\\" name=\\\"recurse\\\"\\u003E\";\n;pug_debug_line = 54;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"Also set permissions on all subfolders to match this \";\n;pug_debug_line = 54;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = typeName) ? \"\" : pug_interp));\n;pug_debug_line = 54;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"'s permissions\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n};\n;pug_debug_line = 56;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_mixins[\"saveAccessButton\"] = pug_interp = function(){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\n;pug_debug_line = 57;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"g-save-access-list btn btn-small btn-primary\\\"\\u003E\";\n;pug_debug_line = 57;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\";\n;pug_debug_line = 57;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-ok\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 57;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditorMixins.pug\";\npug_html = pug_html + \" Save\\u003C\\u002Fbutton\\u003E\";\n};\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditor.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-dialog\\\"\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditor.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-content\\\"\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditor.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-header\\\"\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditor.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"close\\\" data-dismiss=\\\"modal\\\" aria-hidden=\\\"true\\\" type=\\\"button\\\"\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditor.pug\";\npug_html = pug_html + \"×\\u003C\\u002Fbutton\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditor.pug\";\npug_html = pug_html + \"\\u003Ch4 class=\\\"modal-title\\\"\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditor.pug\";\npug_html = pug_html + \"Access control\\u003C\\u002Fh4\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditor.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-dialog-subtitle\\\"\\u003E\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditor.pug\";\nif ((modelType === 'folder')) {\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditor.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-folder\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n}\nelse\nif ((modelType === 'collection')) {\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditor.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-sitemap\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n}\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditor.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = model.name()) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditor.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-body g-access-modal-body\\\"\\u003E\";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditor.pug\";\nif (!hidePrivacyEditor) {\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditor.pug\";\npug_mixins[\"privacyEditor\"](modelType);\n}\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditor.pug\";\npug_mixins[\"permissionsEditor\"]();\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditor.pug\";\nif (!hideRecurseOption) {\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditor.pug\";\npug_mixins[\"recurseOption\"](modelType);\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditor.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-footer\\\"\\u003E\";\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditor.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"btn btn-small btn-default\\\" data-dismiss=\\\"modal\\\"\\u003E\";\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditor.pug\";\npug_html = pug_html + \"Close\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEditor.pug\";\npug_mixins[\"saveAccessButton\"]();\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"_\" in locals_for_with?locals_for_with._:typeof _!==\"undefined\"?_:undefined,\"flagList\" in locals_for_with?locals_for_with.flagList:typeof flagList!==\"undefined\"?flagList:undefined,\"hidePrivacyEditor\" in locals_for_with?locals_for_with.hidePrivacyEditor:typeof hidePrivacyEditor!==\"undefined\"?hidePrivacyEditor:undefined,\"hideRecurseOption\" in locals_for_with?locals_for_with.hideRecurseOption:typeof hideRecurseOption!==\"undefined\"?hideRecurseOption:undefined,\"isAdmin\" in locals_for_with?locals_for_with.isAdmin:typeof isAdmin!==\"undefined\"?isAdmin:undefined,\"model\" in locals_for_with?locals_for_with.model:typeof model!==\"undefined\"?model:undefined,\"modelType\" in locals_for_with?locals_for_with.modelType:typeof modelType!==\"undefined\"?modelType:undefined,\"publicFlag\" in locals_for_with?locals_for_with.publicFlag:typeof publicFlag!==\"undefined\"?publicFlag:undefined,\"publicFlags\" in locals_for_with?locals_for_with.publicFlags:typeof publicFlags!==\"undefined\"?publicFlags:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/accessEditor.pug","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\":\"div(class=`g-${type}-access-entry`, resourceid=entry.id)\\n .g-access-col-left\\n - var icon = type === 'group' ? 'users' : 'user';\\n .g-access-icon\\n i(class=`icon-${icon}`)\\n .g-access-desc\\n .g-desc-title= entry.title\\n .g-desc-subtitle= entry.subtitle\\n .g-access-col-right\\n if !hideAccessType\\n select.form-control.input-sm\\n option(value=accessTypes.READ, selected=(entry.level === accessTypes.READ ? 'selected' : null)) Can view\\n option(value=accessTypes.WRITE, selected=(entry.level === accessTypes.WRITE ? 'selected' : null)) Can edit\\n option(value=accessTypes.ADMIN, selected=(entry.level === accessTypes.ADMIN ? 'selected' : null)) Is owner\\n .g-access-action-container\\n if !noAccessFlag && _.keys(flagList).length\\n a.g-action-manage-flags(title=\\\"Access flags\\\")\\n i.g-flag-icon.icon-flag\\n .g-flag-count-indicator(class=(entry.flags && entry.flags.length ? null : \\\"hide\\\"))= (entry.flags || []).length\\n .g-flags-popover-container.hide(resourcetype=type, resourceid=entry.id, title=\\\"Access flags\\\")\\n each flag, key in flagList\\n - var checked = _.contains(entry.flags, key) ? 'checked' : null;\\n - var disabled = (!isAdmin && flag.admin) ? 'disabled' : null;\\n .checkbox(class=disabled)\\n label.g-flag-label(title=flag.description)\\n input.g-flag-checkbox(resourcetype=type, resourceid=entry.id, flag=key, type=\\\"checkbox\\\",\\n checked=checked, disabled=disabled)\\n span= flag.name\\n button.g-close-flags-popover.btn.btn-xs.btn-default Close\\n\\n a.g-action-remove-access(title=\\\"Remove access\\\")\\n i.icon-cancel\\n\"};\n;var locals_for_with = (locals || {});(function (_, accessTypes, entry, flagList, hideAccessType, isAdmin, noAccessFlag, type) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\npug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([`g-${type}-access-entry`], [true]), false, true)+pug.attr(\"resourceid\", entry.id, true, true)) + \"\\u003E\";\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-access-col-left\\\"\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\nvar icon = type === 'group' ? 'users' : 'user';\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-access-icon\\\"\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\npug_html = pug_html + \"\\u003Ci\" + (pug.attr(\"class\", pug.classes([`icon-${icon}`], [true]), false, true)) + \"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-access-desc\\\"\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-desc-title\\\"\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = entry.title) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-desc-subtitle\\\"\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = entry.subtitle) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-access-col-right\\\"\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\nif (!hideAccessType) {\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\npug_html = pug_html + \"\\u003Cselect class=\\\"form-control input-sm\\\"\\u003E\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\npug_html = pug_html + \"\\u003Coption\" + (pug.attr(\"value\", accessTypes.READ, true, true)+pug.attr(\"selected\", (entry.level === accessTypes.READ ? 'selected' : null), true, true)) + \"\\u003E\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\npug_html = pug_html + \"Can view\\u003C\\u002Foption\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\npug_html = pug_html + \"\\u003Coption\" + (pug.attr(\"value\", accessTypes.WRITE, true, true)+pug.attr(\"selected\", (entry.level === accessTypes.WRITE ? 'selected' : null), true, true)) + \"\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\npug_html = pug_html + \"Can edit\\u003C\\u002Foption\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\npug_html = pug_html + \"\\u003Coption\" + (pug.attr(\"value\", accessTypes.ADMIN, true, true)+pug.attr(\"selected\", (entry.level === accessTypes.ADMIN ? 'selected' : null), true, true)) + \"\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\npug_html = pug_html + \"Is owner\\u003C\\u002Foption\\u003E\\u003C\\u002Fselect\\u003E\";\n}\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-access-action-container\\\"\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\nif (!noAccessFlag && _.keys(flagList).length) {\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-action-manage-flags\\\" title=\\\"Access flags\\\"\\u003E\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"g-flag-icon icon-flag\\\"\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\npug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([\"g-flag-count-indicator\",(entry.flags && entry.flags.length ? null : \"hide\")], [false,true]), false, true)) + \"\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = (entry.flags || []).length) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"g-flags-popover-container hide\\\"\"+pug.attr(\"resourcetype\", type, true, true)+pug.attr(\"resourceid\", entry.id, true, true)+\" title=\\\"Access flags\\\"\") + \"\\u003E\";\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\n// iterate flagList\n;(function(){\n var $$obj = flagList;\n if ('number' == typeof $$obj.length) {\n for (var key = 0, $$l = $$obj.length; key < $$l; key++) {\n var flag = $$obj[key];\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\nvar checked = _.contains(entry.flags, key) ? 'checked' : null;\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\nvar disabled = (!isAdmin && flag.admin) ? 'disabled' : null;\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\npug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([\"checkbox\",disabled], [false,true]), false, true)) + \"\\u003E\";\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\npug_html = pug_html + \"\\u003Clabel\" + (\" class=\\\"g-flag-label\\\"\"+pug.attr(\"title\", flag.description, true, true)) + \"\\u003E\";\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"g-flag-checkbox\\\"\"+pug.attr(\"resourcetype\", type, true, true)+pug.attr(\"resourceid\", entry.id, true, true)+pug.attr(\"flag\", key, true, true)+\" type=\\\"checkbox\\\"\"+pug.attr(\"checked\", checked, true, true)+pug.attr(\"disabled\", disabled, true, true)) + \"\\u003E\";\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = flag.name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var key in $$obj) {\n $$l++;\n var flag = $$obj[key];\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\nvar checked = _.contains(entry.flags, key) ? 'checked' : null;\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\nvar disabled = (!isAdmin && flag.admin) ? 'disabled' : null;\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\npug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([\"checkbox\",disabled], [false,true]), false, true)) + \"\\u003E\";\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\npug_html = pug_html + \"\\u003Clabel\" + (\" class=\\\"g-flag-label\\\"\"+pug.attr(\"title\", flag.description, true, true)) + \"\\u003E\";\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"g-flag-checkbox\\\"\"+pug.attr(\"resourcetype\", type, true, true)+pug.attr(\"resourceid\", entry.id, true, true)+pug.attr(\"flag\", key, true, true)+\" type=\\\"checkbox\\\"\"+pug.attr(\"checked\", checked, true, true)+pug.attr(\"disabled\", disabled, true, true)) + \"\\u003E\";\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = flag.name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\";\n }\n }\n}).call(this);\n\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"g-close-flags-popover btn btn-xs btn-default\\\"\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\npug_html = pug_html + \"Close\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\n;pug_debug_line = 31;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-action-remove-access\\\" title=\\\"Remove access\\\"\\u003E\";\n;pug_debug_line = 32;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FaccessEntry.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-cancel\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"_\" in locals_for_with?locals_for_with._:typeof _!==\"undefined\"?_:undefined,\"accessTypes\" in locals_for_with?locals_for_with.accessTypes:typeof accessTypes!==\"undefined\"?accessTypes:undefined,\"entry\" in locals_for_with?locals_for_with.entry:typeof entry!==\"undefined\"?entry:undefined,\"flagList\" in locals_for_with?locals_for_with.flagList:typeof flagList!==\"undefined\"?flagList:undefined,\"hideAccessType\" in locals_for_with?locals_for_with.hideAccessType:typeof hideAccessType!==\"undefined\"?hideAccessType:undefined,\"isAdmin\" in locals_for_with?locals_for_with.isAdmin:typeof isAdmin!==\"undefined\"?isAdmin:undefined,\"noAccessFlag\" in locals_for_with?locals_for_with.noAccessFlag:typeof noAccessFlag!==\"undefined\"?noAccessFlag:undefined,\"type\" in locals_for_with?locals_for_with.type:typeof type!==\"undefined\"?type:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/accessEntry.pug","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FloadingAnimation.pug\":\"#g-loading-animation\\n #g-loading-block-1.g-loading-block\\n #g-loading-block-2.g-loading-block\\n #g-loading-block-3.g-loading-block\\n\"};\n;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FloadingAnimation.pug\";\npug_html = pug_html + \"\\u003Cdiv id=\\\"g-loading-animation\\\"\\u003E\";\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FloadingAnimation.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-loading-block\\\" id=\\\"g-loading-block-1\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FloadingAnimation.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-loading-block\\\" id=\\\"g-loading-block-2\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FloadingAnimation.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-loading-block\\\" id=\\\"g-loading-block-3\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/loadingAnimation.pug","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/stylesheets/layout/loading.styl\n// module id = 376\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/stylesheets/widgets/accessWidget.styl\n// module id = 377\n// module chunks = 0","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\":\"li.g-checked-menu-header.dropdown-header(role=\\\"presentation\\\")\\n if folderCount\\n i.icon-folder\\n span.g-checked-folder-count #{folderCount}\\n if itemCount\\n i.icon-doc-text-inv\\n span.g-checked-item-count #{itemCount}\\n if pickedCount\\n i.icon-plus-circled\\n span.g-checked-picked-count #{pickedCount}\\nif folderCount || itemCount\\n li\\n a.g-download-checked\\n i.icon-download\\n | Download checked resources\\n li\\n a.g-pick-checked\\n i.icon-plus-circled\\n | Pick checked resources for Move or Copy\\n\\nif HierarchyWidget.getPickedResources()\\n li.g-admin.divider\\n if pickedMoveAllowed\\n li\\n a.g-move-picked\\n i.icon-move\\n | Move picked resources here\\n if pickedCopyAllowed\\n li\\n a.g-copy-picked\\n i.icon-paste\\n | Copy picked resources here\\n li\\n a.g-clear-picked\\n i.icon-minus-circled\\n | Clear picked resources\\n if pickedDesc\\n | (#{pickedDesc})\\n\\nif folderCount || itemCount\\n if (minFolderLevel \\u003E= AccessType.ADMIN && minItemLevel \\u003E= AccessType.WRITE)\\n li.g-admin.divider\\n li.g-admin\\n a.g-delete-checked\\n i.icon-trash\\n | Delete checked resources\\n\"};\n;var locals_for_with = (locals || {});(function (AccessType, HierarchyWidget, folderCount, itemCount, minFolderLevel, minItemLevel, pickedCopyAllowed, pickedCount, pickedDesc, pickedMoveAllowed) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\npug_html = pug_html + \"\\u003Cli class=\\\"g-checked-menu-header dropdown-header\\\" role=\\\"presentation\\\"\\u003E\";\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\nif (folderCount) {\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-folder\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"g-checked-folder-count\\\"\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = folderCount) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\nif (itemCount) {\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-doc-text-inv\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"g-checked-item-count\\\"\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = itemCount) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\nif (pickedCount) {\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-plus-circled\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"g-checked-picked-count\\\"\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = pickedCount) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fli\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\nif (folderCount || itemCount) {\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\npug_html = pug_html + \"\\u003Cli\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-download-checked\\\"\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-download\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\npug_html = pug_html + \"Download checked resources\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\npug_html = pug_html + \"\\u003Cli\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-pick-checked\\\"\\u003E\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-plus-circled\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\npug_html = pug_html + \"Pick checked resources for Move or Copy\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n}\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\nif (HierarchyWidget.getPickedResources()) {\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\npug_html = pug_html + \"\\u003Cli class=\\\"g-admin divider\\\"\\u003E\\u003C\\u002Fli\\u003E\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\nif (pickedMoveAllowed) {\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\npug_html = pug_html + \"\\u003Cli\\u003E\";\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-move-picked\\\"\\u003E\";\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-move\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\npug_html = pug_html + \"Move picked resources here\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n}\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\nif (pickedCopyAllowed) {\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\npug_html = pug_html + \"\\u003Cli\\u003E\";\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-copy-picked\\\"\\u003E\";\n;pug_debug_line = 31;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-paste\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 32;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\npug_html = pug_html + \"Copy picked resources here\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n}\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\npug_html = pug_html + \"\\u003Cli\\u003E\";\n;pug_debug_line = 34;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-clear-picked\\\"\\u003E\";\n;pug_debug_line = 35;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-minus-circled\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 36;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\npug_html = pug_html + \"Clear picked resources\";\n;pug_debug_line = 37;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\nif (pickedDesc) {\n;pug_debug_line = 38;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\npug_html = pug_html + \" (\";\n;pug_debug_line = 38;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = pickedDesc) ? \"\" : pug_interp));\n;pug_debug_line = 38;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\npug_html = pug_html + \")\";\n}\npug_html = pug_html + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n}\n;pug_debug_line = 40;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\nif (folderCount || itemCount) {\n;pug_debug_line = 41;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\nif ((minFolderLevel >= AccessType.ADMIN && minItemLevel >= AccessType.WRITE)) {\n;pug_debug_line = 42;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\npug_html = pug_html + \"\\u003Cli class=\\\"g-admin divider\\\"\\u003E\\u003C\\u002Fli\\u003E\";\n;pug_debug_line = 43;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\npug_html = pug_html + \"\\u003Cli class=\\\"g-admin\\\"\\u003E\";\n;pug_debug_line = 44;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-delete-checked\\\"\\u003E\";\n;pug_debug_line = 45;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-trash\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 46;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcheckedActionsMenu.pug\";\npug_html = pug_html + \"Delete checked resources\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n}\n}}.call(this,\"AccessType\" in locals_for_with?locals_for_with.AccessType:typeof AccessType!==\"undefined\"?AccessType:undefined,\"HierarchyWidget\" in locals_for_with?locals_for_with.HierarchyWidget:typeof HierarchyWidget!==\"undefined\"?HierarchyWidget:undefined,\"folderCount\" in locals_for_with?locals_for_with.folderCount:typeof folderCount!==\"undefined\"?folderCount:undefined,\"itemCount\" in locals_for_with?locals_for_with.itemCount:typeof itemCount!==\"undefined\"?itemCount:undefined,\"minFolderLevel\" in locals_for_with?locals_for_with.minFolderLevel:typeof minFolderLevel!==\"undefined\"?minFolderLevel:undefined,\"minItemLevel\" in locals_for_with?locals_for_with.minItemLevel:typeof minItemLevel!==\"undefined\"?minItemLevel:undefined,\"pickedCopyAllowed\" in locals_for_with?locals_for_with.pickedCopyAllowed:typeof pickedCopyAllowed!==\"undefined\"?pickedCopyAllowed:undefined,\"pickedCount\" in locals_for_with?locals_for_with.pickedCount:typeof pickedCount!==\"undefined\"?pickedCount:undefined,\"pickedDesc\" in locals_for_with?locals_for_with.pickedDesc:typeof pickedDesc!==\"undefined\"?pickedDesc:undefined,\"pickedMoveAllowed\" in locals_for_with?locals_for_with.pickedMoveAllowed:typeof pickedMoveAllowed!==\"undefined\"?pickedMoveAllowed:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/checkedActionsMenu.pug","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\":\"mixin dateInfo(intro, property)\\n .g-collection-info-line(property=property)\\n i.icon-clock\\n span= intro\\n span.g-bold-part= formatDate(collection.get(property), DATE_SECOND)\\n\\n.modal-dialog\\n .modal-content\\n .modal-header\\n button.close(data-dismiss=\\\"modal\\\", aria-hidden=\\\"true\\\") ×\\n h4.modal-title Collection information\\n .g-dialog-subtitle\\n i.icon-sitemap\\n span= collection.name()\\n .modal-body\\n if collection.get('description')\\n .g-info-dialog-description!= renderMarkdown(collection.get('description'))\\n\\n .g-collection-info-lines\\n +dateInfo('Created ', 'created')\\n if collection.get('created') !== collection.get('updated')\\n +dateInfo('Last updated ', 'updated')\\n\\n .g-collection-info-line(property=\\\"size\\\")\\n i.icon-floppy\\n | Total size: #[span.g-bold-part= formatSize(collection.get('size'))]\\n\\n .g-collection-info-line(property=\\\"nFolders\\\")\\n i.icon-folder\\n | Contains #[span.g-bold-part= collection.get('nFolders')] subfolders\\n\\n .g-collection-info-line(property=\\\"id\\\")\\n i.icon-share\\n | Unique ID: #[span.g-bold-part= collection.id]\\n\\n .modal-footer\\n a.btn.btn-small.btn-default(data-dismiss=\\\"modal\\\") Close\\n\"};\n;var locals_for_with = (locals || {});(function (DATE_SECOND, collection, formatDate, formatSize, renderMarkdown) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_mixins[\"dateInfo\"] = pug_interp = function(intro, property){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"g-collection-info-line\\\"\"+pug.attr(\"property\", property, true, true)) + \"\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-clock\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = intro) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"g-bold-part\\\"\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = formatDate(collection.get(property), DATE_SECOND)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n};\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-dialog\\\"\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-content\\\"\\u003E\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-header\\\"\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"close\\\" data-dismiss=\\\"modal\\\" aria-hidden=\\\"true\\\"\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_html = pug_html + \"×\\u003C\\u002Fbutton\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_html = pug_html + \"\\u003Ch4 class=\\\"modal-title\\\"\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_html = pug_html + \"Collection information\\u003C\\u002Fh4\\u003E\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-dialog-subtitle\\\"\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-sitemap\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = collection.name()) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-body\\\"\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\nif (collection.get('description')) {\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-info-dialog-description\\\"\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_html = pug_html + (null == (pug_interp = renderMarkdown(collection.get('description'))) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\";\n}\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-collection-info-lines\\\"\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_mixins[\"dateInfo\"]('Created ', 'created');\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\nif (collection.get('created') !== collection.get('updated')) {\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_mixins[\"dateInfo\"]('Last updated ', 'updated');\n}\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-collection-info-line\\\" property=\\\"size\\\"\\u003E\";\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-floppy\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_html = pug_html + \"Total size: \";\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"g-bold-part\\\"\\u003E\";\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = formatSize(collection.get('size'))) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-collection-info-line\\\" property=\\\"nFolders\\\"\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-folder\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_html = pug_html + \"Contains \";\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"g-bold-part\\\"\\u003E\";\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = collection.get('nFolders')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_html = pug_html + \" subfolders\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 32;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-collection-info-line\\\" property=\\\"id\\\"\\u003E\";\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-share\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 34;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_html = pug_html + \"Unique ID: \";\n;pug_debug_line = 34;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"g-bold-part\\\"\\u003E\";\n;pug_debug_line = 34;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = collection.id) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n;pug_debug_line = 34;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 36;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-footer\\\"\\u003E\";\n;pug_debug_line = 37;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"btn btn-small btn-default\\\" data-dismiss=\\\"modal\\\"\\u003E\";\n;pug_debug_line = 37;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FcollectionInfoDialog.pug\";\npug_html = pug_html + \"Close\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"DATE_SECOND\" in locals_for_with?locals_for_with.DATE_SECOND:typeof DATE_SECOND!==\"undefined\"?DATE_SECOND:undefined,\"collection\" in locals_for_with?locals_for_with.collection:typeof collection!==\"undefined\"?collection:undefined,\"formatDate\" in locals_for_with?locals_for_with.formatDate:typeof formatDate!==\"undefined\"?formatDate:undefined,\"formatSize\" in locals_for_with?locals_for_with.formatSize:typeof formatSize!==\"undefined\"?formatSize:undefined,\"renderMarkdown\" in locals_for_with?locals_for_with.renderMarkdown:typeof renderMarkdown!==\"undefined\"?renderMarkdown:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/collectionInfoDialog.pug","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmarkdownWidget.pug\":\".g-markdown-widget\\n .g-tabs-container\\n .g-markdown-tabs-top\\n ul.nav.nav-tabs\\n li.first.active(role=\\\"presentation\\\")\\n a.g-write-link(data-target=`#${prefix}-write`, aria-controls=\\\"home\\\",\\n role=\\\"tab\\\", data-toggle=\\\"tab\\\") Write\\n li(role=\\\"presentation\\\")\\n a.g-preview-link(data-target=`#${prefix}-preview`, aria-controls=\\\"preview\\\",\\n role=\\\"tab\\\", data-toggle=\\\"tab\\\") Preview\\n .g-markdown-explanation\\n | Supports\\n a(href=\\\"https:\\u002F\\u002Fdaringfireball.net\\u002Fprojects\\u002Fmarkdown\\u002Fsyntax\\\",\\n tabindex=\\\"-1\\\", target=\\\"_blank\\\") Markdown\\n .tab-content\\n .tab-pane.active(role=\\\"tabpanel\\\", id=`${prefix}-write`)\\n .g-markdown-drop-zone\\n textarea.form-control.g-markdown-text(\\n upload-enabled=enableUploads ? \\\"true\\\" : null,\\n placeholder=placeholder)= text\\n if enableUploads\\n .g-upload-overlay.hide\\n .g-upload-progress-container\\n .g-markdown-upload-progress.progress.progress-striped\\n .progress-bar.progress-bar-info(role=\\\"progressbar\\\")\\n .g-markdown-upload-progress-message Starting upload...\\n .g-upload-footer.\\n #[i.icon-picture] Add an image by #[a.g-browse clicking here], or drag\\n and drop one into the editor.\\n .hide\\n input.g-file-input(type=\\\"file\\\")\\n\\n .tab-pane(role=\\\"tabpanel\\\", id=`${prefix}-preview`)\\n .g-markdown-preview\\n\"};\n;var locals_for_with = (locals || {});(function (enableUploads, placeholder, prefix, text) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmarkdownWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-markdown-widget\\\"\\u003E\";\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmarkdownWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-tabs-container\\\"\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmarkdownWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-markdown-tabs-top\\\"\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmarkdownWidget.pug\";\npug_html = pug_html + \"\\u003Cul class=\\\"nav nav-tabs\\\"\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmarkdownWidget.pug\";\npug_html = pug_html + \"\\u003Cli class=\\\"first active\\\" role=\\\"presentation\\\"\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmarkdownWidget.pug\";\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"g-write-link\\\"\"+pug.attr(\"data-target\", `#${prefix}-write`, true, true)+\" aria-controls=\\\"home\\\" role=\\\"tab\\\" data-toggle=\\\"tab\\\"\") + \"\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmarkdownWidget.pug\";\npug_html = pug_html + \"Write\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmarkdownWidget.pug\";\npug_html = pug_html + \"\\u003Cli role=\\\"presentation\\\"\\u003E\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmarkdownWidget.pug\";\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"g-preview-link\\\"\"+pug.attr(\"data-target\", `#${prefix}-preview`, true, true)+\" aria-controls=\\\"preview\\\" role=\\\"tab\\\" data-toggle=\\\"tab\\\"\") + \"\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmarkdownWidget.pug\";\npug_html = pug_html + \"Preview\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmarkdownWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-markdown-explanation\\\"\\u003E\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmarkdownWidget.pug\";\npug_html = pug_html + \"Supports\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmarkdownWidget.pug\";\npug_html = pug_html + \"\\u003Ca href=\\\"https:\\u002F\\u002Fdaringfireball.net\\u002Fprojects\\u002Fmarkdown\\u002Fsyntax\\\" tabindex=\\\"-1\\\" target=\\\"_blank\\\"\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmarkdownWidget.pug\";\npug_html = pug_html + \" Markdown\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Ful\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmarkdownWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"tab-content\\\"\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmarkdownWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"tab-pane active\\\"\"+\" role=\\\"tabpanel\\\"\"+pug.attr(\"id\", `${prefix}-write`, true, true)) + \"\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmarkdownWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-markdown-drop-zone\\\"\\u003E\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmarkdownWidget.pug\";\npug_html = pug_html + \"\\u003Ctextarea\" + (\" class=\\\"form-control g-markdown-text\\\"\"+pug.attr(\"upload-enabled\", enableUploads ? \"true\" : null, true, true)+pug.attr(\"placeholder\", placeholder, true, true)) + \"\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmarkdownWidget.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = text) ? \"\" : pug_interp)) + \"\\u003C\\u002Ftextarea\\u003E\";\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmarkdownWidget.pug\";\nif (enableUploads) {\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmarkdownWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-upload-overlay hide\\\"\\u003E\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmarkdownWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-upload-progress-container\\\"\\u003E\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmarkdownWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-markdown-upload-progress progress progress-striped\\\"\\u003E\";\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmarkdownWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"progress-bar progress-bar-info\\\" role=\\\"progressbar\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmarkdownWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-markdown-upload-progress-message\\\"\\u003E\";\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmarkdownWidget.pug\";\npug_html = pug_html + \"Starting upload...\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmarkdownWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-upload-footer\\\"\\u003E\";\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmarkdownWidget.pug\";\npug_html = pug_html + \"\";\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmarkdownWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-picture\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmarkdownWidget.pug\";\npug_html = pug_html + \" Add an image by \";\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmarkdownWidget.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-browse\\\"\\u003E\";\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmarkdownWidget.pug\";\npug_html = pug_html + \"clicking here\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmarkdownWidget.pug\";\npug_html = pug_html + \", or drag\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmarkdownWidget.pug\";\npug_html = pug_html + \"\\n\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmarkdownWidget.pug\";\npug_html = pug_html + \"and drop one into the editor.\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmarkdownWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"hide\\\"\\u003E\";\n;pug_debug_line = 31;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmarkdownWidget.pug\";\npug_html = pug_html + \"\\u003Cinput class=\\\"g-file-input\\\" type=\\\"file\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmarkdownWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"tab-pane\\\"\"+\" role=\\\"tabpanel\\\"\"+pug.attr(\"id\", `${prefix}-preview`, true, true)) + \"\\u003E\";\n;pug_debug_line = 34;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmarkdownWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-markdown-preview\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"enableUploads\" in locals_for_with?locals_for_with.enableUploads:typeof enableUploads!==\"undefined\"?enableUploads:undefined,\"placeholder\" in locals_for_with?locals_for_with.placeholder:typeof placeholder!==\"undefined\"?placeholder:undefined,\"prefix\" in locals_for_with?locals_for_with.prefix:typeof prefix!==\"undefined\"?prefix:undefined,\"text\" in locals_for_with?locals_for_with.text:typeof text!==\"undefined\"?text:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/markdownWidget.pug","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/stylesheets/widgets/markdownWidget.styl\n// module id = 381\n// module chunks = 0","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditCollectionWidget.pug\":\".modal-dialog\\n .modal-content\\n form#g-collection-edit-form.modal-form(role=\\\"form\\\")\\n .modal-header\\n button.close(data-dismiss=\\\"modal\\\", aria-hidden=\\\"true\\\", type=\\\"button\\\") ×\\n h4.modal-title\\n if (create)\\n | Create collection\\n else\\n | Edit collection\\n .modal-body\\n .form-group\\n label.control-label(for=\\\"g-name\\\") Name\\n input#g-name.input-sm.form-control(type=\\\"text\\\", placeholder=\\\"Enter collection name\\\")\\n .form-group\\n label.control-label Description (optional)\\n .g-description-editor-container\\n .g-validation-failed-message\\n .modal-footer\\n a.btn.btn-small.btn-default(data-dismiss=\\\"modal\\\") Cancel\\n button.g-save-collection.btn.btn-small.btn-primary(type=\\\"submit\\\")\\n if (create)\\n i.icon-plus-squared\\n | Create\\n else\\n i.icon-edit\\n | Save\\n\"};\n;var locals_for_with = (locals || {});(function (create) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditCollectionWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-dialog\\\"\\u003E\";\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditCollectionWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-content\\\"\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditCollectionWidget.pug\";\npug_html = pug_html + \"\\u003Cform class=\\\"modal-form\\\" id=\\\"g-collection-edit-form\\\" role=\\\"form\\\"\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditCollectionWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-header\\\"\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditCollectionWidget.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"close\\\" data-dismiss=\\\"modal\\\" aria-hidden=\\\"true\\\" type=\\\"button\\\"\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditCollectionWidget.pug\";\npug_html = pug_html + \"×\\u003C\\u002Fbutton\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditCollectionWidget.pug\";\npug_html = pug_html + \"\\u003Ch4 class=\\\"modal-title\\\"\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditCollectionWidget.pug\";\nif ((create)) {\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditCollectionWidget.pug\";\npug_html = pug_html + \"Create collection\";\n}\nelse {\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditCollectionWidget.pug\";\npug_html = pug_html + \"Edit collection\";\n}\npug_html = pug_html + \"\\u003C\\u002Fh4\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditCollectionWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-body\\\"\\u003E\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditCollectionWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditCollectionWidget.pug\";\npug_html = pug_html + \"\\u003Clabel class=\\\"control-label\\\" for=\\\"g-name\\\"\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditCollectionWidget.pug\";\npug_html = pug_html + \"Name\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditCollectionWidget.pug\";\npug_html = pug_html + \"\\u003Cinput class=\\\"input-sm form-control\\\" id=\\\"g-name\\\" type=\\\"text\\\" placeholder=\\\"Enter collection name\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditCollectionWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditCollectionWidget.pug\";\npug_html = pug_html + \"\\u003Clabel class=\\\"control-label\\\"\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditCollectionWidget.pug\";\npug_html = pug_html + \"Description (optional)\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditCollectionWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-description-editor-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditCollectionWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-validation-failed-message\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditCollectionWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-footer\\\"\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditCollectionWidget.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"btn btn-small btn-default\\\" data-dismiss=\\\"modal\\\"\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditCollectionWidget.pug\";\npug_html = pug_html + \"Cancel\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditCollectionWidget.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"g-save-collection btn btn-small btn-primary\\\" type=\\\"submit\\\"\\u003E\";\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditCollectionWidget.pug\";\nif ((create)) {\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditCollectionWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-plus-squared\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditCollectionWidget.pug\";\npug_html = pug_html + \"Create\";\n}\nelse {\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditCollectionWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-edit\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditCollectionWidget.pug\";\npug_html = pug_html + \"Save\";\n}\npug_html = pug_html + \"\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fform\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"create\" in locals_for_with?locals_for_with.create:typeof create!==\"undefined\"?create:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/editCollectionWidget.pug","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFolderWidget.pug\":\".modal-dialog\\n .modal-content\\n form#g-folder-edit-form.modal-form(role=\\\"form\\\")\\n .modal-header\\n button.close(data-dismiss=\\\"modal\\\", aria-hidden=\\\"true\\\", type=\\\"button\\\") ×\\n h4.modal-title\\n if (folder)\\n | Edit folder\\n else\\n | Create folder\\n .modal-body\\n .form-group\\n label.control-label(for=\\\"g-name\\\") Name\\n input#g-name.input-sm.form-control(type=\\\"text\\\", placeholder=\\\"Enter folder name\\\")\\n .form-group\\n label.control-label Description (optional)\\n .g-description-editor-container\\n .g-validation-failed-message\\n .modal-footer\\n a.btn.btn-small.btn-default(data-dismiss=\\\"modal\\\") Cancel\\n button.g-save-folder.btn.btn-small.btn-primary(type=\\\"submit\\\")\\n if (folder)\\n i.icon-edit\\n | Save\\n else\\n i.icon-plus-squared\\n | Create\\n\"};\n;var locals_for_with = (locals || {});(function (folder) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFolderWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-dialog\\\"\\u003E\";\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFolderWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-content\\\"\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFolderWidget.pug\";\npug_html = pug_html + \"\\u003Cform class=\\\"modal-form\\\" id=\\\"g-folder-edit-form\\\" role=\\\"form\\\"\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFolderWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-header\\\"\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFolderWidget.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"close\\\" data-dismiss=\\\"modal\\\" aria-hidden=\\\"true\\\" type=\\\"button\\\"\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFolderWidget.pug\";\npug_html = pug_html + \"×\\u003C\\u002Fbutton\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFolderWidget.pug\";\npug_html = pug_html + \"\\u003Ch4 class=\\\"modal-title\\\"\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFolderWidget.pug\";\nif ((folder)) {\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFolderWidget.pug\";\npug_html = pug_html + \"Edit folder\";\n}\nelse {\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFolderWidget.pug\";\npug_html = pug_html + \"Create folder\";\n}\npug_html = pug_html + \"\\u003C\\u002Fh4\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFolderWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-body\\\"\\u003E\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFolderWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFolderWidget.pug\";\npug_html = pug_html + \"\\u003Clabel class=\\\"control-label\\\" for=\\\"g-name\\\"\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFolderWidget.pug\";\npug_html = pug_html + \"Name\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFolderWidget.pug\";\npug_html = pug_html + \"\\u003Cinput class=\\\"input-sm form-control\\\" id=\\\"g-name\\\" type=\\\"text\\\" placeholder=\\\"Enter folder name\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFolderWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFolderWidget.pug\";\npug_html = pug_html + \"\\u003Clabel class=\\\"control-label\\\"\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFolderWidget.pug\";\npug_html = pug_html + \"Description (optional)\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFolderWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-description-editor-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFolderWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-validation-failed-message\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFolderWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-footer\\\"\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFolderWidget.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"btn btn-small btn-default\\\" data-dismiss=\\\"modal\\\"\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFolderWidget.pug\";\npug_html = pug_html + \"Cancel\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFolderWidget.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"g-save-folder btn btn-small btn-primary\\\" type=\\\"submit\\\"\\u003E\";\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFolderWidget.pug\";\nif ((folder)) {\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFolderWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-edit\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFolderWidget.pug\";\npug_html = pug_html + \"Save\";\n}\nelse {\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFolderWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-plus-squared\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFolderWidget.pug\";\npug_html = pug_html + \"Create\";\n}\npug_html = pug_html + \"\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fform\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"folder\" in locals_for_with?locals_for_with.folder:typeof folder!==\"undefined\"?folder:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/editFolderWidget.pug","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditItemWidget.pug\":\".modal-dialog\\n .modal-content\\n form#g-item-edit-form.modal-form(role=\\\"form\\\")\\n .modal-header\\n button.close(data-dismiss=\\\"modal\\\", aria-hidden=\\\"true\\\", type=\\\"button\\\") ×\\n h4.modal-title\\n if (item)\\n | Edit item\\n else\\n | Create item\\n .modal-body\\n .form-group\\n label.control-label(for=\\\"g-name\\\") Name\\n input#g-name.input-sm.form-control(type=\\\"text\\\", placeholder=\\\"Enter item name\\\")\\n .form-group\\n label.control-label Description (optional)\\n .g-description-editor-container\\n .g-validation-failed-message\\n .modal-footer\\n a.btn.btn-small.btn-default(data-dismiss=\\\"modal\\\") Cancel\\n button.g-save-item.btn.btn-small.btn-primary(type=\\\"submit\\\")\\n if (item)\\n i.icon-edit\\n | Save\\n else\\n i.icon-plus-squared\\n | Create\\n\"};\n;var locals_for_with = (locals || {});(function (item) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditItemWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-dialog\\\"\\u003E\";\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditItemWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-content\\\"\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditItemWidget.pug\";\npug_html = pug_html + \"\\u003Cform class=\\\"modal-form\\\" id=\\\"g-item-edit-form\\\" role=\\\"form\\\"\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditItemWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-header\\\"\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditItemWidget.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"close\\\" data-dismiss=\\\"modal\\\" aria-hidden=\\\"true\\\" type=\\\"button\\\"\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditItemWidget.pug\";\npug_html = pug_html + \"×\\u003C\\u002Fbutton\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditItemWidget.pug\";\npug_html = pug_html + \"\\u003Ch4 class=\\\"modal-title\\\"\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditItemWidget.pug\";\nif ((item)) {\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditItemWidget.pug\";\npug_html = pug_html + \"Edit item\";\n}\nelse {\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditItemWidget.pug\";\npug_html = pug_html + \"Create item\";\n}\npug_html = pug_html + \"\\u003C\\u002Fh4\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditItemWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-body\\\"\\u003E\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditItemWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditItemWidget.pug\";\npug_html = pug_html + \"\\u003Clabel class=\\\"control-label\\\" for=\\\"g-name\\\"\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditItemWidget.pug\";\npug_html = pug_html + \"Name\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditItemWidget.pug\";\npug_html = pug_html + \"\\u003Cinput class=\\\"input-sm form-control\\\" id=\\\"g-name\\\" type=\\\"text\\\" placeholder=\\\"Enter item name\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditItemWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditItemWidget.pug\";\npug_html = pug_html + \"\\u003Clabel class=\\\"control-label\\\"\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditItemWidget.pug\";\npug_html = pug_html + \"Description (optional)\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditItemWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-description-editor-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditItemWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-validation-failed-message\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditItemWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-footer\\\"\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditItemWidget.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"btn btn-small btn-default\\\" data-dismiss=\\\"modal\\\"\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditItemWidget.pug\";\npug_html = pug_html + \"Cancel\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditItemWidget.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"g-save-item btn btn-small btn-primary\\\" type=\\\"submit\\\"\\u003E\";\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditItemWidget.pug\";\nif ((item)) {\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditItemWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-edit\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditItemWidget.pug\";\npug_html = pug_html + \"Save\";\n}\nelse {\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditItemWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-plus-squared\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditItemWidget.pug\";\npug_html = pug_html + \"Create\";\n}\npug_html = pug_html + \"\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fform\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"item\" in locals_for_with?locals_for_with.item:typeof item!==\"undefined\"?item:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/editItemWidget.pug","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\":\"mixin dateInfo(intro, property)\\n .g-folder-info-line(property=property)\\n i.icon-clock\\n span= intro\\n span.g-bold-part= formatDate(folder.get(property), DATE_SECOND)\\n\\n.modal-dialog\\n .modal-content\\n .modal-header\\n button.close(data-dismiss=\\\"modal\\\", aria-hidden=\\\"true\\\") ×\\n h4.modal-title Folder information\\n .g-dialog-subtitle\\n i.icon-folder\\n span= folder.name()\\n .modal-body\\n if folder.get('description')\\n .g-info-dialog-description.g-folder-description!= renderMarkdown(folder.get('description'))\\n\\n .g-folder-info-lines\\n +dateInfo('Created ', 'created')\\n if folder.get('created') !== folder.get('updated')\\n +dateInfo('Last updated ', 'updated')\\n\\n .g-folder-info-line(property=\\\"nItems\\\")\\n i.icon-doc-text-inv\\n span Contains\\n span.g-bold-part #{folder.get('nItems')} items\\n span totaling\\n span.g-bold-part #{formatSize(folder.get('size'))}\\n\\n .g-folder-info-line(property=\\\"nFolders\\\")\\n i.icon-folder\\n span Contains\\n span.g-bold-part #{folder.get('nFolders')} subfolders\\n\\n .g-folder-info-line(property=\\\"id\\\")\\n i.icon-share\\n span Unique ID:\\n span.g-bold-part #{folder.id}\\n\\n .modal-footer\\n a.btn.btn-small.btn-default(data-dismiss=\\\"modal\\\") Close\\n\"};\n;var locals_for_with = (locals || {});(function (DATE_SECOND, folder, formatDate, formatSize, renderMarkdown) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_mixins[\"dateInfo\"] = pug_interp = function(intro, property){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"g-folder-info-line\\\"\"+pug.attr(\"property\", property, true, true)) + \"\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-clock\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = intro) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"g-bold-part\\\"\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = formatDate(folder.get(property), DATE_SECOND)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n};\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-dialog\\\"\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-content\\\"\\u003E\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-header\\\"\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"close\\\" data-dismiss=\\\"modal\\\" aria-hidden=\\\"true\\\"\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + \"×\\u003C\\u002Fbutton\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + \"\\u003Ch4 class=\\\"modal-title\\\"\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + \"Folder information\\u003C\\u002Fh4\\u003E\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-dialog-subtitle\\\"\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-folder\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = folder.name()) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-body\\\"\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\nif (folder.get('description')) {\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-info-dialog-description g-folder-description\\\"\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + (null == (pug_interp = renderMarkdown(folder.get('description'))) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\";\n}\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-folder-info-lines\\\"\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_mixins[\"dateInfo\"]('Created ', 'created');\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\nif (folder.get('created') !== folder.get('updated')) {\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_mixins[\"dateInfo\"]('Last updated ', 'updated');\n}\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-folder-info-line\\\" property=\\\"nItems\\\"\\u003E\";\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-doc-text-inv\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + \"Contains\\u003C\\u002Fspan\\u003E\";\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"g-bold-part\\\"\\u003E\";\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + \" \";\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = folder.get('nItems')) ? \"\" : pug_interp));\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + \" items\\u003C\\u002Fspan\\u003E\";\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + \" totaling\\u003C\\u002Fspan\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"g-bold-part\\\"\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + \" \";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = formatSize(folder.get('size'))) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 31;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-folder-info-line\\\" property=\\\"nFolders\\\"\\u003E\";\n;pug_debug_line = 32;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-folder\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + \"Contains\\u003C\\u002Fspan\\u003E\";\n;pug_debug_line = 34;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"g-bold-part\\\"\\u003E\";\n;pug_debug_line = 34;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + \" \";\n;pug_debug_line = 34;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = folder.get('nFolders')) ? \"\" : pug_interp));\n;pug_debug_line = 34;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + \" subfolders\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 36;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-folder-info-line\\\" property=\\\"id\\\"\\u003E\";\n;pug_debug_line = 37;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-share\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 38;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 38;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + \"Unique ID:\\u003C\\u002Fspan\\u003E\";\n;pug_debug_line = 39;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"g-bold-part\\\"\\u003E\";\n;pug_debug_line = 39;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + \" \";\n;pug_debug_line = 39;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = folder.id) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 41;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-footer\\\"\\u003E\";\n;pug_debug_line = 42;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"btn btn-small btn-default\\\" data-dismiss=\\\"modal\\\"\\u003E\";\n;pug_debug_line = 42;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderInfoDialog.pug\";\npug_html = pug_html + \"Close\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"DATE_SECOND\" in locals_for_with?locals_for_with.DATE_SECOND:typeof DATE_SECOND!==\"undefined\"?DATE_SECOND:undefined,\"folder\" in locals_for_with?locals_for_with.folder:typeof folder!==\"undefined\"?folder:undefined,\"formatDate\" in locals_for_with?locals_for_with.formatDate:typeof formatDate!==\"undefined\"?formatDate:undefined,\"formatSize\" in locals_for_with?locals_for_with.formatSize:typeof formatSize!==\"undefined\"?formatSize:undefined,\"renderMarkdown\" in locals_for_with?locals_for_with.renderMarkdown:typeof renderMarkdown!==\"undefined\"?renderMarkdown:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/folderInfoDialog.pug","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderList.pug\":\"ul.g-folder-list\\n each folder in folders\\n li.g-folder-list-entry(public=(folder.get('public') ? 'true' : 'false'))\\n if checkboxes\\n input.g-list-checkbox(type=\\\"checkbox\\\", g-folder-cid=folder.cid)\\n a.g-folder-list-link(g-folder-cid=folder.cid, href=`#folder\\u002F${folder.id}`)\\n i.icon-folder\\n = folder.get('name')\\n i.icon-right-dir\\n .g-folder-privacy\\n if folder.get('public')\\n i.icon-globe\\n | Public\\n else\\n i.icon-lock\\n | Private\\n if hasMore\\n li.g-show-more\\n a.g-show-more-folders\\n i.icon-level-down\\n | Show more folders...\\n\"};\n;var locals_for_with = (locals || {});(function (checkboxes, folders, hasMore) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderList.pug\";\npug_html = pug_html + \"\\u003Cul class=\\\"g-folder-list\\\"\\u003E\";\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderList.pug\";\n// iterate folders\n;(function(){\n var $$obj = folders;\n if ('number' == typeof $$obj.length) {\n for (var pug_index0 = 0, $$l = $$obj.length; pug_index0 < $$l; pug_index0++) {\n var folder = $$obj[pug_index0];\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderList.pug\";\npug_html = pug_html + \"\\u003Cli\" + (\" class=\\\"g-folder-list-entry\\\"\"+pug.attr(\"public\", (folder.get('public') ? 'true' : 'false'), true, true)) + \"\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderList.pug\";\nif (checkboxes) {\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderList.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"g-list-checkbox\\\"\"+\" type=\\\"checkbox\\\"\"+pug.attr(\"g-folder-cid\", folder.cid, true, true)) + \"\\u003E\";\n}\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderList.pug\";\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"g-folder-list-link\\\"\"+pug.attr(\"g-folder-cid\", folder.cid, true, true)+pug.attr(\"href\", `#folder/${folder.id}`, true, true)) + \"\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-folder\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = folder.get('name')) ? \"\" : pug_interp));\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-right-dir\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-folder-privacy\\\"\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderList.pug\";\nif (folder.get('public')) {\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-globe\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderList.pug\";\npug_html = pug_html + \"Public\";\n}\nelse {\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-lock\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderList.pug\";\npug_html = pug_html + \"Private\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fli\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index0 in $$obj) {\n $$l++;\n var folder = $$obj[pug_index0];\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderList.pug\";\npug_html = pug_html + \"\\u003Cli\" + (\" class=\\\"g-folder-list-entry\\\"\"+pug.attr(\"public\", (folder.get('public') ? 'true' : 'false'), true, true)) + \"\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderList.pug\";\nif (checkboxes) {\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderList.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"g-list-checkbox\\\"\"+\" type=\\\"checkbox\\\"\"+pug.attr(\"g-folder-cid\", folder.cid, true, true)) + \"\\u003E\";\n}\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderList.pug\";\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"g-folder-list-link\\\"\"+pug.attr(\"g-folder-cid\", folder.cid, true, true)+pug.attr(\"href\", `#folder/${folder.id}`, true, true)) + \"\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-folder\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = folder.get('name')) ? \"\" : pug_interp));\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-right-dir\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-folder-privacy\\\"\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderList.pug\";\nif (folder.get('public')) {\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-globe\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderList.pug\";\npug_html = pug_html + \"Public\";\n}\nelse {\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-lock\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderList.pug\";\npug_html = pug_html + \"Private\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fli\\u003E\";\n }\n }\n}).call(this);\n\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderList.pug\";\nif (hasMore) {\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderList.pug\";\npug_html = pug_html + \"\\u003Cli class=\\\"g-show-more\\\"\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderList.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-show-more-folders\\\"\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-level-down\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfolderList.pug\";\npug_html = pug_html + \"Show more folders...\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Ful\\u003E\";}.call(this,\"checkboxes\" in locals_for_with?locals_for_with.checkboxes:typeof checkboxes!==\"undefined\"?checkboxes:undefined,\"folders\" in locals_for_with?locals_for_with.folders:typeof folders!==\"undefined\"?folders:undefined,\"hasMore\" in locals_for_with?locals_for_with.hasMore:typeof hasMore!==\"undefined\"?hasMore:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/folderList.pug","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\":\"ul.g-item-list\\n each item in items\\n li.g-item-list-entry(class=(highlightItem && item.id === selectedItemId ? 'g-selected' : ''), public=(isParentPublic ? 'true' : 'false'))\\n if checkboxes\\n input.g-list-checkbox(type=\\\"checkbox\\\", g-item-cid=item.cid)\\n if downloadLinks || viewLinks\\n a.g-item-list-link.g-right-border(g-item-cid=item.cid, href=`#item\\u002F${item.id}`)\\n i.icon-doc-text-inv\\n = item.name()\\n else\\n a.g-item-list-link(g-item-cid=item.cid, href='#item\\u002F' + item.id)\\n i.icon-doc-text-inv\\n = item.name()\\n if downloadLinks\\n a(title=\\\"Download item\\\", href=item.downloadUrl())\\n i.icon-download\\n if viewLinks\\n a.g-view-inline(title=\\\"View in browser\\\", target=\\\"_blank\\\", rel=\\\"noopener noreferrer\\\",\\n href=item.downloadUrl({contentDisposition: 'inline'}))\\n i.icon-eye\\n if showSizes\\n .g-item-size= formatSize(item.get('size'))\\n if (hasMore && !paginated)\\n li.g-show-more\\n a.g-show-more-items\\n i.icon-level-down\\n | Show more items...\\n\"};\n;var locals_for_with = (locals || {});(function (checkboxes, downloadLinks, formatSize, hasMore, highlightItem, isParentPublic, items, paginated, selectedItemId, showSizes, viewLinks) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\npug_html = pug_html + \"\\u003Cul class=\\\"g-item-list\\\"\\u003E\";\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\n// iterate items\n;(function(){\n var $$obj = items;\n if ('number' == typeof $$obj.length) {\n for (var pug_index0 = 0, $$l = $$obj.length; pug_index0 < $$l; pug_index0++) {\n var item = $$obj[pug_index0];\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\npug_html = pug_html + \"\\u003Cli\" + (pug.attr(\"class\", pug.classes([\"g-item-list-entry\",(highlightItem && item.id === selectedItemId ? 'g-selected' : '')], [false,true]), false, true)+pug.attr(\"public\", (isParentPublic ? 'true' : 'false'), true, true)) + \"\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\nif (checkboxes) {\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"g-list-checkbox\\\"\"+\" type=\\\"checkbox\\\"\"+pug.attr(\"g-item-cid\", item.cid, true, true)) + \"\\u003E\";\n}\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\nif (downloadLinks || viewLinks) {\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"g-item-list-link g-right-border\\\"\"+pug.attr(\"g-item-cid\", item.cid, true, true)+pug.attr(\"href\", `#item/${item.id}`, true, true)) + \"\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-doc-text-inv\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = item.name()) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\nelse {\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"g-item-list-link\\\"\"+pug.attr(\"g-item-cid\", item.cid, true, true)+pug.attr(\"href\", '#item/' + item.id, true, true)) + \"\\u003E\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-doc-text-inv\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = item.name()) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\nif (downloadLinks) {\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\npug_html = pug_html + \"\\u003Ca\" + (\" title=\\\"Download item\\\"\"+pug.attr(\"href\", item.downloadUrl(), true, true)) + \"\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-download\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n}\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\nif (viewLinks) {\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"g-view-inline\\\"\"+\" title=\\\"View in browser\\\" target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\"\"+pug.attr(\"href\", item.downloadUrl({contentDisposition: 'inline'}), true, true)) + \"\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-eye\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n}\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\nif (showSizes) {\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-item-size\\\"\\u003E\";\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = formatSize(item.get('size'))) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fli\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index0 in $$obj) {\n $$l++;\n var item = $$obj[pug_index0];\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\npug_html = pug_html + \"\\u003Cli\" + (pug.attr(\"class\", pug.classes([\"g-item-list-entry\",(highlightItem && item.id === selectedItemId ? 'g-selected' : '')], [false,true]), false, true)+pug.attr(\"public\", (isParentPublic ? 'true' : 'false'), true, true)) + \"\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\nif (checkboxes) {\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"g-list-checkbox\\\"\"+\" type=\\\"checkbox\\\"\"+pug.attr(\"g-item-cid\", item.cid, true, true)) + \"\\u003E\";\n}\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\nif (downloadLinks || viewLinks) {\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"g-item-list-link g-right-border\\\"\"+pug.attr(\"g-item-cid\", item.cid, true, true)+pug.attr(\"href\", `#item/${item.id}`, true, true)) + \"\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-doc-text-inv\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = item.name()) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\nelse {\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"g-item-list-link\\\"\"+pug.attr(\"g-item-cid\", item.cid, true, true)+pug.attr(\"href\", '#item/' + item.id, true, true)) + \"\\u003E\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-doc-text-inv\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = item.name()) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\nif (downloadLinks) {\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\npug_html = pug_html + \"\\u003Ca\" + (\" title=\\\"Download item\\\"\"+pug.attr(\"href\", item.downloadUrl(), true, true)) + \"\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-download\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n}\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\nif (viewLinks) {\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"g-view-inline\\\"\"+\" title=\\\"View in browser\\\" target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\"\"+pug.attr(\"href\", item.downloadUrl({contentDisposition: 'inline'}), true, true)) + \"\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-eye\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n}\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\nif (showSizes) {\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-item-size\\\"\\u003E\";\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = formatSize(item.get('size'))) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fli\\u003E\";\n }\n }\n}).call(this);\n\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\nif ((hasMore && !paginated)) {\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\npug_html = pug_html + \"\\u003Cli class=\\\"g-show-more\\\"\\u003E\";\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-show-more-items\\\"\\u003E\";\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-level-down\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemList.pug\";\npug_html = pug_html + \"Show more items...\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Ful\\u003E\";}.call(this,\"checkboxes\" in locals_for_with?locals_for_with.checkboxes:typeof checkboxes!==\"undefined\"?checkboxes:undefined,\"downloadLinks\" in locals_for_with?locals_for_with.downloadLinks:typeof downloadLinks!==\"undefined\"?downloadLinks:undefined,\"formatSize\" in locals_for_with?locals_for_with.formatSize:typeof formatSize!==\"undefined\"?formatSize:undefined,\"hasMore\" in locals_for_with?locals_for_with.hasMore:typeof hasMore!==\"undefined\"?hasMore:undefined,\"highlightItem\" in locals_for_with?locals_for_with.highlightItem:typeof highlightItem!==\"undefined\"?highlightItem:undefined,\"isParentPublic\" in locals_for_with?locals_for_with.isParentPublic:typeof isParentPublic!==\"undefined\"?isParentPublic:undefined,\"items\" in locals_for_with?locals_for_with.items:typeof items!==\"undefined\"?items:undefined,\"paginated\" in locals_for_with?locals_for_with.paginated:typeof paginated!==\"undefined\"?paginated:undefined,\"selectedItemId\" in locals_for_with?locals_for_with.selectedItemId:typeof selectedItemId!==\"undefined\"?selectedItemId:undefined,\"showSizes\" in locals_for_with?locals_for_with.showSizes:typeof showSizes!==\"undefined\"?showSizes:undefined,\"viewLinks\" in locals_for_with?locals_for_with.viewLinks:typeof viewLinks!==\"undefined\"?viewLinks:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/itemList.pug","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FjsonMetadatumEditWidget.pug\":\"input.input-sm.form-control.g-widget-metadata-key-input(type=\\\"text\\\", value=key, placeholder=\\\"Key\\\")\\n\\n.g-json-editor\\n\\nbutton.btn.btn-sm.btn-warning.g-widget-metadata-cancel-button(title=\\\"Cancel\\\")\\n i.icon-cancel\\nbutton.btn.btn-sm.btn-primary.g-widget-metadata-save-button(title=\\\"Accept\\\")\\n i.icon-ok\\nif !newDatum\\n button.btn.btn-sm.btn-primary.g-widget-metadata-toggle-button(title=\\\"Convert to Simple\\\")\\n i.icon-cog\\n button.btn.btn-sm.btn-danger.g-widget-metadata-delete-button(title=\\\"Delete\\\")\\n i.icon-trash\\n\"};\n;var locals_for_with = (locals || {});(function (key, newDatum) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FjsonMetadatumEditWidget.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"input-sm form-control g-widget-metadata-key-input\\\"\"+\" type=\\\"text\\\"\"+pug.attr(\"value\", key, true, true)+\" placeholder=\\\"Key\\\"\") + \"\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FjsonMetadatumEditWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-json-editor\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FjsonMetadatumEditWidget.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-sm btn-warning g-widget-metadata-cancel-button\\\" title=\\\"Cancel\\\"\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FjsonMetadatumEditWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-cancel\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fbutton\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FjsonMetadatumEditWidget.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-sm btn-primary g-widget-metadata-save-button\\\" title=\\\"Accept\\\"\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FjsonMetadatumEditWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-ok\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fbutton\\u003E\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FjsonMetadatumEditWidget.pug\";\nif (!newDatum) {\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FjsonMetadatumEditWidget.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-sm btn-primary g-widget-metadata-toggle-button\\\" title=\\\"Convert to Simple\\\"\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FjsonMetadatumEditWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-cog\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fbutton\\u003E\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FjsonMetadatumEditWidget.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-sm btn-danger g-widget-metadata-delete-button\\\" title=\\\"Delete\\\"\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FjsonMetadatumEditWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-trash\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fbutton\\u003E\";\n}}.call(this,\"key\" in locals_for_with?locals_for_with.key:typeof key!==\"undefined\"?key:undefined,\"newDatum\" in locals_for_with?locals_for_with.newDatum:typeof newDatum!==\"undefined\"?newDatum:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/jsonMetadatumEditWidget.pug","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FjsonMetadatumView.pug\":\"if (accessLevel \\u003E= AccessType.WRITE)\\n button.btn.btn-sm.btn-default.g-widget-metadata-edit-button\\n i.icon-pencil\\nspan.g-widget-metadata-key #{key}\\nspan.g-widget-metadata-value\\n pre #{value}\\n\"};\n;var locals_for_with = (locals || {});(function (AccessType, accessLevel, key, value) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FjsonMetadatumView.pug\";\nif ((accessLevel >= AccessType.WRITE)) {\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FjsonMetadatumView.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-sm btn-default g-widget-metadata-edit-button\\\"\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FjsonMetadatumView.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-pencil\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fbutton\\u003E\";\n}\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FjsonMetadatumView.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"g-widget-metadata-key\\\"\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FjsonMetadatumView.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = key) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FjsonMetadatumView.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"g-widget-metadata-value\\\"\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FjsonMetadatumView.pug\";\npug_html = pug_html + \"\\u003Cpre\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FjsonMetadatumView.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = value) ? \"\" : pug_interp)) + \"\\u003C\\u002Fpre\\u003E\\u003C\\u002Fspan\\u003E\";}.call(this,\"AccessType\" in locals_for_with?locals_for_with.AccessType:typeof AccessType!==\"undefined\"?AccessType:undefined,\"accessLevel\" in locals_for_with?locals_for_with.accessLevel:typeof accessLevel!==\"undefined\"?accessLevel:undefined,\"key\" in locals_for_with?locals_for_with.key:typeof key!==\"undefined\"?key:undefined,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/jsonMetadatumView.pug","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmetadataWidget.pug\":\"if (accessLevel \\u003E= AccessType.WRITE)\\n .btn-group.pull-right\\n button.g-widget-metadata-add-button.btn.btn-sm.btn-primary.btn-default.dropdown-toggle(data-toggle=\\\"dropdown\\\", title=\\\"Add Metadata\\\")\\n i.icon-plus\\n ul.dropdown-menu.pull-right(role=\\\"menu\\\")\\n li(role=\\\"presentation\\\")\\n a.g-add-simple-metadata(role=\\\"menuitem\\\")\\n | Simple\\n li(role=\\\"presentation\\\")\\n a.g-add-json-metadata\\n | JSON\\n\\n.g-widget-metadata-header\\n i.icon-tags\\n | #{title}\\n.g-widget-metadata-container\\n\"};\n;var locals_for_with = (locals || {});(function (AccessType, accessLevel, title) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmetadataWidget.pug\";\nif ((accessLevel >= AccessType.WRITE)) {\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmetadataWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"btn-group pull-right\\\"\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmetadataWidget.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"g-widget-metadata-add-button btn btn-sm btn-primary btn-default dropdown-toggle\\\" data-toggle=\\\"dropdown\\\" title=\\\"Add Metadata\\\"\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmetadataWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-plus\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fbutton\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmetadataWidget.pug\";\npug_html = pug_html + \"\\u003Cul class=\\\"dropdown-menu pull-right\\\" role=\\\"menu\\\"\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmetadataWidget.pug\";\npug_html = pug_html + \"\\u003Cli role=\\\"presentation\\\"\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmetadataWidget.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-add-simple-metadata\\\" role=\\\"menuitem\\\"\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmetadataWidget.pug\";\npug_html = pug_html + \"Simple\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmetadataWidget.pug\";\npug_html = pug_html + \"\\u003Cli role=\\\"presentation\\\"\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmetadataWidget.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-add-json-metadata\\\"\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmetadataWidget.pug\";\npug_html = pug_html + \"JSON\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\\u003C\\u002Ful\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmetadataWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-widget-metadata-header\\\"\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmetadataWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-tags\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmetadataWidget.pug\";\npug_html = pug_html + \" \";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmetadataWidget.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = title) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmetadataWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-widget-metadata-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"AccessType\" in locals_for_with?locals_for_with.AccessType:typeof AccessType!==\"undefined\"?AccessType:undefined,\"accessLevel\" in locals_for_with?locals_for_with.accessLevel:typeof accessLevel!==\"undefined\"?accessLevel:undefined,\"title\" in locals_for_with?locals_for_with.title:typeof title!==\"undefined\"?title:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/metadataWidget.pug","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmetadatumEditWidget.pug\":\"input.input-sm.form-control.g-widget-metadata-key-input(type=\\\"text\\\", value=key, placeholder=\\\"Key\\\")\\n\\n- var rows = value.length \\u003C= 40 ? 1 : (value.length \\u003C= 100 ? 3 : 5)\\ntextarea.input-sm.form-control.g-widget-metadata-value-input(placeholder=\\\"Value\\\", rows=rows)\\n = value\\n\\nbutton.btn.btn-sm.btn-warning.g-widget-metadata-cancel-button(title=\\\"Cancel\\\")\\n i.icon-cancel\\nbutton.btn.btn-sm.btn-primary.g-widget-metadata-save-button(title=\\\"Accept\\\")\\n i.icon-ok\\nif !newDatum\\n button.btn.btn-sm.btn-primary.g-widget-metadata-toggle-button(title=\\\"Convert to JSON\\\")\\n i.icon-cog\\n button.btn.btn-sm.btn-danger.g-widget-metadata-delete-button(title=\\\"Delete\\\")\\n i.icon-trash\\n\"};\n;var locals_for_with = (locals || {});(function (key, newDatum, value) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmetadatumEditWidget.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"input-sm form-control g-widget-metadata-key-input\\\"\"+\" type=\\\"text\\\"\"+pug.attr(\"value\", key, true, true)+\" placeholder=\\\"Key\\\"\") + \"\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmetadatumEditWidget.pug\";\nvar rows = value.length <= 40 ? 1 : (value.length <= 100 ? 3 : 5)\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmetadatumEditWidget.pug\";\npug_html = pug_html + \"\\u003Ctextarea\" + (\" class=\\\"input-sm form-control g-widget-metadata-value-input\\\"\"+\" placeholder=\\\"Value\\\"\"+pug.attr(\"rows\", rows, true, true)) + \"\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmetadatumEditWidget.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = value) ? \"\" : pug_interp)) + \"\\u003C\\u002Ftextarea\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmetadatumEditWidget.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-sm btn-warning g-widget-metadata-cancel-button\\\" title=\\\"Cancel\\\"\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmetadatumEditWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-cancel\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fbutton\\u003E\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmetadatumEditWidget.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-sm btn-primary g-widget-metadata-save-button\\\" title=\\\"Accept\\\"\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmetadatumEditWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-ok\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fbutton\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmetadatumEditWidget.pug\";\nif (!newDatum) {\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmetadatumEditWidget.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-sm btn-primary g-widget-metadata-toggle-button\\\" title=\\\"Convert to JSON\\\"\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmetadatumEditWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-cog\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fbutton\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmetadatumEditWidget.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-sm btn-danger g-widget-metadata-delete-button\\\" title=\\\"Delete\\\"\\u003E\";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmetadatumEditWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-trash\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fbutton\\u003E\";\n}}.call(this,\"key\" in locals_for_with?locals_for_with.key:typeof key!==\"undefined\"?key:undefined,\"newDatum\" in locals_for_with?locals_for_with.newDatum:typeof newDatum!==\"undefined\"?newDatum:undefined,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/metadatumEditWidget.pug","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmetadatumView.pug\":\"if (accessLevel \\u003E= AccessType.WRITE)\\n button.btn.btn-sm.btn-default.g-widget-metadata-edit-button\\n i.icon-pencil\\nspan.g-widget-metadata-key #{key}\\nspan.g-widget-metadata-value #{value}\\n\"};\n;var locals_for_with = (locals || {});(function (AccessType, accessLevel, key, value) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmetadatumView.pug\";\nif ((accessLevel >= AccessType.WRITE)) {\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmetadatumView.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-sm btn-default g-widget-metadata-edit-button\\\"\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmetadatumView.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-pencil\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fbutton\\u003E\";\n}\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmetadatumView.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"g-widget-metadata-key\\\"\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmetadatumView.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = key) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmetadatumView.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"g-widget-metadata-value\\\"\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FmetadatumView.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = value) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";}.call(this,\"AccessType\" in locals_for_with?locals_for_with.AccessType:typeof AccessType!==\"undefined\"?AccessType:undefined,\"accessLevel\" in locals_for_with?locals_for_with.accessLevel:typeof accessLevel!==\"undefined\"?accessLevel:undefined,\"key\" in locals_for_with?locals_for_with.key:typeof key!==\"undefined\"?key:undefined,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/metadatumView.pug","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/stylesheets/widgets/metadataWidget.styl\n// module id = 393\n// module chunks = 0","/*!\n * jsoneditor.js\n *\n * @brief\n * JSONEditor is a web-based tool to view, edit, format, and validate JSON.\n * It has various modes such as a tree editor, a code editor, and a plain text\n * editor.\n *\n * Supported browsers: Chrome, Firefox, Safari, Opera, Internet Explorer 8+\n *\n * @license\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not\n * use this file except in compliance with the License. You may obtain a copy\n * of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n * License for the specific language governing permissions and limitations under\n * the License.\n *\n * Copyright (c) 2011-2017 Jos de Jong, http://jsoneditoronline.org\n *\n * @author Jos de Jong, <wjosdejong@gmail.com>\n * @version 5.9.6\n * @date 2017-09-16\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"JSONEditor\"] = factory();\n\telse\n\t\troot[\"JSONEditor\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \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\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\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.loaded = 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// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar Ajv;\n\ttry {\n\t Ajv = __webpack_require__(1);\n\t}\n\tcatch (err) {\n\t // no problem... when we need Ajv we will throw a neat exception\n\t}\n\n\tvar treemode = __webpack_require__(54);\n\tvar textmode = __webpack_require__(66);\n\tvar util = __webpack_require__(57);\n\n\t/**\n\t * @constructor JSONEditor\n\t * @param {Element} container Container element\n\t * @param {Object} [options] Object with options. available options:\n\t * {String} mode Editor mode. Available values:\n\t * 'tree' (default), 'view',\n\t * 'form', 'text', and 'code'.\n\t * {function} onChange Callback method, triggered\n\t * on change of contents\n\t * {function} onError Callback method, triggered\n\t * when an error occurs\n\t * {Boolean} search Enable search box.\n\t * True by default\n\t * Only applicable for modes\n\t * 'tree', 'view', and 'form'\n\t * {Boolean} history Enable history (undo/redo).\n\t * True by default\n\t * Only applicable for modes\n\t * 'tree', 'view', and 'form'\n\t * {String} name Field name for the root node.\n\t * Only applicable for modes\n\t * 'tree', 'view', and 'form'\n\t * {Number} indentation Number of indentation\n\t * spaces. 4 by default.\n\t * Only applicable for\n\t * modes 'text' and 'code'\n\t * {boolean} escapeUnicode If true, unicode\n\t * characters are escaped.\n\t * false by default.\n\t * {boolean} sortObjectKeys If true, object keys are\n\t * sorted before display.\n\t * false by default.\n\t * @param {Object | undefined} json JSON object\n\t */\n\tfunction JSONEditor (container, options, json) {\n\t if (!(this instanceof JSONEditor)) {\n\t throw new Error('JSONEditor constructor called without \"new\".');\n\t }\n\n\t // check for unsupported browser (IE8 and older)\n\t var ieVersion = util.getInternetExplorerVersion();\n\t if (ieVersion != -1 && ieVersion < 9) {\n\t throw new Error('Unsupported browser, IE9 or newer required. ' +\n\t 'Please install the newest version of your browser.');\n\t }\n\n\t if (options) {\n\t // check for deprecated options\n\t if (options.error) {\n\t console.warn('Option \"error\" has been renamed to \"onError\"');\n\t options.onError = options.error;\n\t delete options.error;\n\t }\n\t if (options.change) {\n\t console.warn('Option \"change\" has been renamed to \"onChange\"');\n\t options.onChange = options.change;\n\t delete options.change;\n\t }\n\t if (options.editable) {\n\t console.warn('Option \"editable\" has been renamed to \"onEditable\"');\n\t options.onEditable = options.editable;\n\t delete options.editable;\n\t }\n\n\t // validate options\n\t if (options) {\n\t var VALID_OPTIONS = [\n\t 'ajv', 'schema', 'schemaRefs','templates',\n\t 'ace', 'theme','autocomplete',\n\t 'onChange', 'onEditable', 'onError', 'onModeChange',\n\t 'escapeUnicode', 'history', 'search', 'mode', 'modes', 'name', 'indentation', 'sortObjectKeys'\n\t ];\n\n\t Object.keys(options).forEach(function (option) {\n\t if (VALID_OPTIONS.indexOf(option) === -1) {\n\t console.warn('Unknown option \"' + option + '\". This option will be ignored');\n\t }\n\t });\n\t }\n\t }\n\n\t if (arguments.length) {\n\t this._create(container, options, json);\n\t }\n\t}\n\n\t/**\n\t * Configuration for all registered modes. Example:\n\t * {\n\t * tree: {\n\t * mixin: TreeEditor,\n\t * data: 'json'\n\t * },\n\t * text: {\n\t * mixin: TextEditor,\n\t * data: 'text'\n\t * }\n\t * }\n\t *\n\t * @type { Object.<String, {mixin: Object, data: String} > }\n\t */\n\tJSONEditor.modes = {};\n\n\t// debounce interval for JSON schema vaidation in milliseconds\n\tJSONEditor.prototype.DEBOUNCE_INTERVAL = 150;\n\n\t/**\n\t * Create the JSONEditor\n\t * @param {Element} container Container element\n\t * @param {Object} [options] See description in constructor\n\t * @param {Object | undefined} json JSON object\n\t * @private\n\t */\n\tJSONEditor.prototype._create = function (container, options, json) {\n\t this.container = container;\n\t this.options = options || {};\n\t this.json = json || {};\n\n\t var mode = this.options.mode || (this.options.modes && this.options.modes[0]) || 'tree';\n\t this.setMode(mode);\n\t};\n\n\t/**\n\t * Destroy the editor. Clean up DOM, event listeners, and web workers.\n\t */\n\tJSONEditor.prototype.destroy = function () {};\n\n\t/**\n\t * Set JSON object in editor\n\t * @param {Object | undefined} json JSON data\n\t */\n\tJSONEditor.prototype.set = function (json) {\n\t this.json = json;\n\t};\n\n\t/**\n\t * Get JSON from the editor\n\t * @returns {Object} json\n\t */\n\tJSONEditor.prototype.get = function () {\n\t return this.json;\n\t};\n\n\t/**\n\t * Set string containing JSON for the editor\n\t * @param {String | undefined} jsonText\n\t */\n\tJSONEditor.prototype.setText = function (jsonText) {\n\t this.json = util.parse(jsonText);\n\t};\n\n\t/**\n\t * Get stringified JSON contents from the editor\n\t * @returns {String} jsonText\n\t */\n\tJSONEditor.prototype.getText = function () {\n\t return JSON.stringify(this.json);\n\t};\n\n\t/**\n\t * Set a field name for the root node.\n\t * @param {String | undefined} name\n\t */\n\tJSONEditor.prototype.setName = function (name) {\n\t if (!this.options) {\n\t this.options = {};\n\t }\n\t this.options.name = name;\n\t};\n\n\t/**\n\t * Get the field name for the root node.\n\t * @return {String | undefined} name\n\t */\n\tJSONEditor.prototype.getName = function () {\n\t return this.options && this.options.name;\n\t};\n\n\t/**\n\t * Change the mode of the editor.\n\t * JSONEditor will be extended with all methods needed for the chosen mode.\n\t * @param {String} mode Available modes: 'tree' (default), 'view', 'form',\n\t * 'text', and 'code'.\n\t */\n\tJSONEditor.prototype.setMode = function (mode) {\n\t var container = this.container;\n\t var options = util.extend({}, this.options);\n\t var oldMode = options.mode;\n\t var data;\n\t var name;\n\n\t options.mode = mode;\n\t var config = JSONEditor.modes[mode];\n\t if (config) {\n\t try {\n\t var asText = (config.data == 'text');\n\t name = this.getName();\n\t data = this[asText ? 'getText' : 'get'](); // get text or json\n\n\t this.destroy();\n\t util.clear(this);\n\t util.extend(this, config.mixin);\n\t this.create(container, options);\n\n\t this.setName(name);\n\t this[asText ? 'setText' : 'set'](data); // set text or json\n\n\t if (typeof config.load === 'function') {\n\t try {\n\t config.load.call(this);\n\t }\n\t catch (err) {\n\t console.error(err);\n\t }\n\t }\n\n\t if (typeof options.onModeChange === 'function' && mode !== oldMode) {\n\t try {\n\t options.onModeChange(mode, oldMode);\n\t }\n\t catch (err) {\n\t console.error(err);\n\t }\n\t }\n\t }\n\t catch (err) {\n\t this._onError(err);\n\t }\n\t }\n\t else {\n\t throw new Error('Unknown mode \"' + options.mode + '\"');\n\t }\n\t};\n\n\t/**\n\t * Get the current mode\n\t * @return {string}\n\t */\n\tJSONEditor.prototype.getMode = function () {\n\t return this.options.mode;\n\t};\n\n\t/**\n\t * Throw an error. If an error callback is configured in options.error, this\n\t * callback will be invoked. Else, a regular error is thrown.\n\t * @param {Error} err\n\t * @private\n\t */\n\tJSONEditor.prototype._onError = function(err) {\n\t if (this.options && typeof this.options.onError === 'function') {\n\t this.options.onError(err);\n\t }\n\t else {\n\t throw err;\n\t }\n\t};\n\n\t/**\n\t * Set a JSON schema for validation of the JSON object.\n\t * To remove the schema, call JSONEditor.setSchema(null)\n\t * @param {Object | null} schema\n\t * @param {Object.<string, Object>=} schemaRefs Schemas that are referenced using the `$ref` property from the JSON schema that are set in the `schema` option,\n\t + the object structure in the form of `{reference_key: schemaObject}`\n\t */\n\tJSONEditor.prototype.setSchema = function (schema, schemaRefs) {\n\t // compile a JSON schema validator if a JSON schema is provided\n\t if (schema) {\n\t var ajv;\n\t try {\n\t // grab ajv from options if provided, else create a new instance\n\t ajv = this.options.ajv || Ajv({ allErrors: true, verbose: true });\n\n\t }\n\t catch (err) {\n\t console.warn('Failed to create an instance of Ajv, JSON Schema validation is not available. Please use a JSONEditor bundle including Ajv, or pass an instance of Ajv as via the configuration option `ajv`.');\n\t }\n\n\t if (ajv) {\n\t if(schemaRefs) {\n\t for (var ref in schemaRefs) {\n\t ajv.removeSchema(ref); // When updating a schema - old refs has to be removed first\n\t if(schemaRefs[ref]) {\n\t ajv.addSchema(schemaRefs[ref], ref);\n\t }\n\t }\n\t this.options.schemaRefs = schemaRefs;\n\t }\n\t this.validateSchema = ajv.compile(schema);\n\n\t // add schema to the options, so that when switching to an other mode,\n\t // the set schema is not lost\n\t this.options.schema = schema;\n\n\t // validate now\n\t this.validate();\n\t }\n\n\t this.refresh(); // update DOM\n\t }\n\t else {\n\t // remove current schema\n\t this.validateSchema = null;\n\t this.options.schema = null;\n\t this.options.schemaRefs = null;\n\t this.validate(); // to clear current error messages\n\t this.refresh(); // update DOM\n\t }\n\t};\n\n\t/**\n\t * Validate current JSON object against the configured JSON schema\n\t * Throws an exception when no JSON schema is configured\n\t */\n\tJSONEditor.prototype.validate = function () {\n\t // must be implemented by treemode and textmode\n\t};\n\n\t/**\n\t * Refresh the rendered contents\n\t */\n\tJSONEditor.prototype.refresh = function () {\n\t // can be implemented by treemode and textmode\n\t};\n\n\t/**\n\t * Register a plugin with one ore multiple modes for the JSON Editor.\n\t *\n\t * A mode is described as an object with properties:\n\t *\n\t * - `mode: String` The name of the mode.\n\t * - `mixin: Object` An object containing the mixin functions which\n\t * will be added to the JSONEditor. Must contain functions\n\t * create, get, getText, set, and setText. May have\n\t * additional functions.\n\t * When the JSONEditor switches to a mixin, all mixin\n\t * functions are added to the JSONEditor, and then\n\t * the function `create(container, options)` is executed.\n\t * - `data: 'text' | 'json'` The type of data that will be used to load the mixin.\n\t * - `[load: function]` An optional function called after the mixin\n\t * has been loaded.\n\t *\n\t * @param {Object | Array} mode A mode object or an array with multiple mode objects.\n\t */\n\tJSONEditor.registerMode = function (mode) {\n\t var i, prop;\n\n\t if (util.isArray(mode)) {\n\t // multiple modes\n\t for (i = 0; i < mode.length; i++) {\n\t JSONEditor.registerMode(mode[i]);\n\t }\n\t }\n\t else {\n\t // validate the new mode\n\t if (!('mode' in mode)) throw new Error('Property \"mode\" missing');\n\t if (!('mixin' in mode)) throw new Error('Property \"mixin\" missing');\n\t if (!('data' in mode)) throw new Error('Property \"data\" missing');\n\t var name = mode.mode;\n\t if (name in JSONEditor.modes) {\n\t throw new Error('Mode \"' + name + '\" already registered');\n\t }\n\n\t // validate the mixin\n\t if (typeof mode.mixin.create !== 'function') {\n\t throw new Error('Required function \"create\" missing on mixin');\n\t }\n\t var reserved = ['setMode', 'registerMode', 'modes'];\n\t for (i = 0; i < reserved.length; i++) {\n\t prop = reserved[i];\n\t if (prop in mode.mixin) {\n\t throw new Error('Reserved property \"' + prop + '\" not allowed in mixin');\n\t }\n\t }\n\n\t JSONEditor.modes[name] = mode;\n\t }\n\t};\n\n\t// register tree and text modes\n\tJSONEditor.registerMode(treemode);\n\tJSONEditor.registerMode(textmode);\n\n\tmodule.exports = JSONEditor;\n\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar compileSchema = __webpack_require__(2)\n\t , resolve = __webpack_require__(3)\n\t , Cache = __webpack_require__(22)\n\t , SchemaObject = __webpack_require__(13)\n\t , stableStringify = __webpack_require__(16)\n\t , formats = __webpack_require__(23)\n\t , rules = __webpack_require__(24)\n\t , $dataMetaSchema = __webpack_require__(47)\n\t , patternGroups = __webpack_require__(48)\n\t , util = __webpack_require__(11)\n\t , co = __webpack_require__(21);\n\n\tmodule.exports = Ajv;\n\n\tAjv.prototype.validate = validate;\n\tAjv.prototype.compile = compile;\n\tAjv.prototype.addSchema = addSchema;\n\tAjv.prototype.addMetaSchema = addMetaSchema;\n\tAjv.prototype.validateSchema = validateSchema;\n\tAjv.prototype.getSchema = getSchema;\n\tAjv.prototype.removeSchema = removeSchema;\n\tAjv.prototype.addFormat = addFormat;\n\tAjv.prototype.errorsText = errorsText;\n\n\tAjv.prototype._addSchema = _addSchema;\n\tAjv.prototype._compile = _compile;\n\n\tAjv.prototype.compileAsync = __webpack_require__(49);\n\tvar customKeyword = __webpack_require__(50);\n\tAjv.prototype.addKeyword = customKeyword.add;\n\tAjv.prototype.getKeyword = customKeyword.get;\n\tAjv.prototype.removeKeyword = customKeyword.remove;\n\n\tvar errorClasses = __webpack_require__(15);\n\tAjv.ValidationError = errorClasses.Validation;\n\tAjv.MissingRefError = errorClasses.MissingRef;\n\tAjv.$dataMetaSchema = $dataMetaSchema;\n\n\tvar META_SCHEMA_ID = 'http://json-schema.org/draft-06/schema';\n\n\tvar META_IGNORE_OPTIONS = [ 'removeAdditional', 'useDefaults', 'coerceTypes' ];\n\tvar META_SUPPORT_DATA = ['/properties'];\n\n\t/**\n\t * Creates validator instance.\n\t * Usage: `Ajv(opts)`\n\t * @param {Object} opts optional options\n\t * @return {Object} ajv instance\n\t */\n\tfunction Ajv(opts) {\n\t if (!(this instanceof Ajv)) return new Ajv(opts);\n\t opts = this._opts = util.copy(opts) || {};\n\t this._schemas = {};\n\t this._refs = {};\n\t this._fragments = {};\n\t this._formats = formats(opts.format);\n\t var schemaUriFormat = this._schemaUriFormat = this._formats['uri-reference'];\n\t this._schemaUriFormatFunc = function (str) { return schemaUriFormat.test(str); };\n\n\t this._cache = opts.cache || new Cache;\n\t this._loadingSchemas = {};\n\t this._compilations = [];\n\t this.RULES = rules();\n\t this._getId = chooseGetId(opts);\n\n\t opts.loopRequired = opts.loopRequired || Infinity;\n\t if (opts.errorDataPath == 'property') opts._errorDataPathProperty = true;\n\t if (opts.serialize === undefined) opts.serialize = stableStringify;\n\t this._metaOpts = getMetaSchemaOptions(this);\n\n\t if (opts.formats) addInitialFormats(this);\n\t addDraft6MetaSchema(this);\n\t if (typeof opts.meta == 'object') this.addMetaSchema(opts.meta);\n\t addInitialSchemas(this);\n\t if (opts.patternGroups) patternGroups(this);\n\t}\n\n\n\n\t/**\n\t * Validate data using schema\n\t * Schema will be compiled and cached (using serialized JSON as key. [json-stable-stringify](https://github.com/substack/json-stable-stringify) is used to serialize.\n\t * @this Ajv\n\t * @param {String|Object} schemaKeyRef key, ref or schema object\n\t * @param {Any} data to be validated\n\t * @return {Boolean} validation result. Errors from the last validation will be available in `ajv.errors` (and also in compiled schema: `schema.errors`).\n\t */\n\tfunction validate(schemaKeyRef, data) {\n\t var v;\n\t if (typeof schemaKeyRef == 'string') {\n\t v = this.getSchema(schemaKeyRef);\n\t if (!v) throw new Error('no schema with key or ref \"' + schemaKeyRef + '\"');\n\t } else {\n\t var schemaObj = this._addSchema(schemaKeyRef);\n\t v = schemaObj.validate || this._compile(schemaObj);\n\t }\n\n\t var valid = v(data);\n\t if (v.$async === true)\n\t return this._opts.async == '*' ? co(valid) : valid;\n\t this.errors = v.errors;\n\t return valid;\n\t}\n\n\n\t/**\n\t * Create validating function for passed schema.\n\t * @this Ajv\n\t * @param {Object} schema schema object\n\t * @param {Boolean} _meta true if schema is a meta-schema. Used internally to compile meta schemas of custom keywords.\n\t * @return {Function} validating function\n\t */\n\tfunction compile(schema, _meta) {\n\t var schemaObj = this._addSchema(schema, undefined, _meta);\n\t return schemaObj.validate || this._compile(schemaObj);\n\t}\n\n\n\t/**\n\t * Adds schema to the instance.\n\t * @this Ajv\n\t * @param {Object|Array} schema schema or array of schemas. If array is passed, `key` and other parameters will be ignored.\n\t * @param {String} key Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.\n\t * @param {Boolean} _skipValidation true to skip schema validation. Used internally, option validateSchema should be used instead.\n\t * @param {Boolean} _meta true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.\n\t */\n\tfunction addSchema(schema, key, _skipValidation, _meta) {\n\t if (Array.isArray(schema)){\n\t for (var i=0; i<schema.length; i++) this.addSchema(schema[i], undefined, _skipValidation, _meta);\n\t return;\n\t }\n\t var id = this._getId(schema);\n\t if (id !== undefined && typeof id != 'string')\n\t throw new Error('schema id must be string');\n\t key = resolve.normalizeId(key || id);\n\t checkUnique(this, key);\n\t this._schemas[key] = this._addSchema(schema, _skipValidation, _meta, true);\n\t}\n\n\n\t/**\n\t * Add schema that will be used to validate other schemas\n\t * options in META_IGNORE_OPTIONS are alway set to false\n\t * @this Ajv\n\t * @param {Object} schema schema object\n\t * @param {String} key optional schema key\n\t * @param {Boolean} skipValidation true to skip schema validation, can be used to override validateSchema option for meta-schema\n\t */\n\tfunction addMetaSchema(schema, key, skipValidation) {\n\t this.addSchema(schema, key, skipValidation, true);\n\t}\n\n\n\t/**\n\t * Validate schema\n\t * @this Ajv\n\t * @param {Object} schema schema to validate\n\t * @param {Boolean} throwOrLogError pass true to throw (or log) an error if invalid\n\t * @return {Boolean} true if schema is valid\n\t */\n\tfunction validateSchema(schema, throwOrLogError) {\n\t var $schema = schema.$schema;\n\t if ($schema !== undefined && typeof $schema != 'string')\n\t throw new Error('$schema must be a string');\n\t $schema = $schema || this._opts.defaultMeta || defaultMeta(this);\n\t if (!$schema) {\n\t console.warn('meta-schema not available');\n\t this.errors = null;\n\t return true;\n\t }\n\t var currentUriFormat = this._formats.uri;\n\t this._formats.uri = typeof currentUriFormat == 'function'\n\t ? this._schemaUriFormatFunc\n\t : this._schemaUriFormat;\n\t var valid;\n\t try { valid = this.validate($schema, schema); }\n\t finally { this._formats.uri = currentUriFormat; }\n\t if (!valid && throwOrLogError) {\n\t var message = 'schema is invalid: ' + this.errorsText();\n\t if (this._opts.validateSchema == 'log') console.error(message);\n\t else throw new Error(message);\n\t }\n\t return valid;\n\t}\n\n\n\tfunction defaultMeta(self) {\n\t var meta = self._opts.meta;\n\t self._opts.defaultMeta = typeof meta == 'object'\n\t ? self._getId(meta) || meta\n\t : self.getSchema(META_SCHEMA_ID)\n\t ? META_SCHEMA_ID\n\t : undefined;\n\t return self._opts.defaultMeta;\n\t}\n\n\n\t/**\n\t * Get compiled schema from the instance by `key` or `ref`.\n\t * @this Ajv\n\t * @param {String} keyRef `key` that was passed to `addSchema` or full schema reference (`schema.id` or resolved id).\n\t * @return {Function} schema validating function (with property `schema`).\n\t */\n\tfunction getSchema(keyRef) {\n\t var schemaObj = _getSchemaObj(this, keyRef);\n\t switch (typeof schemaObj) {\n\t case 'object': return schemaObj.validate || this._compile(schemaObj);\n\t case 'string': return this.getSchema(schemaObj);\n\t case 'undefined': return _getSchemaFragment(this, keyRef);\n\t }\n\t}\n\n\n\tfunction _getSchemaFragment(self, ref) {\n\t var res = resolve.schema.call(self, { schema: {} }, ref);\n\t if (res) {\n\t var schema = res.schema\n\t , root = res.root\n\t , baseId = res.baseId;\n\t var v = compileSchema.call(self, schema, root, undefined, baseId);\n\t self._fragments[ref] = new SchemaObject({\n\t ref: ref,\n\t fragment: true,\n\t schema: schema,\n\t root: root,\n\t baseId: baseId,\n\t validate: v\n\t });\n\t return v;\n\t }\n\t}\n\n\n\tfunction _getSchemaObj(self, keyRef) {\n\t keyRef = resolve.normalizeId(keyRef);\n\t return self._schemas[keyRef] || self._refs[keyRef] || self._fragments[keyRef];\n\t}\n\n\n\t/**\n\t * Remove cached schema(s).\n\t * If no parameter is passed all schemas but meta-schemas are removed.\n\t * If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.\n\t * Even if schema is referenced by other schemas it still can be removed as other schemas have local references.\n\t * @this Ajv\n\t * @param {String|Object|RegExp} schemaKeyRef key, ref, pattern to match key/ref or schema object\n\t */\n\tfunction removeSchema(schemaKeyRef) {\n\t if (schemaKeyRef instanceof RegExp) {\n\t _removeAllSchemas(this, this._schemas, schemaKeyRef);\n\t _removeAllSchemas(this, this._refs, schemaKeyRef);\n\t return;\n\t }\n\t switch (typeof schemaKeyRef) {\n\t case 'undefined':\n\t _removeAllSchemas(this, this._schemas);\n\t _removeAllSchemas(this, this._refs);\n\t this._cache.clear();\n\t return;\n\t case 'string':\n\t var schemaObj = _getSchemaObj(this, schemaKeyRef);\n\t if (schemaObj) this._cache.del(schemaObj.cacheKey);\n\t delete this._schemas[schemaKeyRef];\n\t delete this._refs[schemaKeyRef];\n\t return;\n\t case 'object':\n\t var serialize = this._opts.serialize;\n\t var cacheKey = serialize ? serialize(schemaKeyRef) : schemaKeyRef;\n\t this._cache.del(cacheKey);\n\t var id = this._getId(schemaKeyRef);\n\t if (id) {\n\t id = resolve.normalizeId(id);\n\t delete this._schemas[id];\n\t delete this._refs[id];\n\t }\n\t }\n\t}\n\n\n\tfunction _removeAllSchemas(self, schemas, regex) {\n\t for (var keyRef in schemas) {\n\t var schemaObj = schemas[keyRef];\n\t if (!schemaObj.meta && (!regex || regex.test(keyRef))) {\n\t self._cache.del(schemaObj.cacheKey);\n\t delete schemas[keyRef];\n\t }\n\t }\n\t}\n\n\n\t/* @this Ajv */\n\tfunction _addSchema(schema, skipValidation, meta, shouldAddSchema) {\n\t if (typeof schema != 'object' && typeof schema != 'boolean')\n\t throw new Error('schema should be object or boolean');\n\t var serialize = this._opts.serialize;\n\t var cacheKey = serialize ? serialize(schema) : schema;\n\t var cached = this._cache.get(cacheKey);\n\t if (cached) return cached;\n\n\t shouldAddSchema = shouldAddSchema || this._opts.addUsedSchema !== false;\n\n\t var id = resolve.normalizeId(this._getId(schema));\n\t if (id && shouldAddSchema) checkUnique(this, id);\n\n\t var willValidate = this._opts.validateSchema !== false && !skipValidation;\n\t var recursiveMeta;\n\t if (willValidate && !(recursiveMeta = id && id == resolve.normalizeId(schema.$schema)))\n\t this.validateSchema(schema, true);\n\n\t var localRefs = resolve.ids.call(this, schema);\n\n\t var schemaObj = new SchemaObject({\n\t id: id,\n\t schema: schema,\n\t localRefs: localRefs,\n\t cacheKey: cacheKey,\n\t meta: meta\n\t });\n\n\t if (id[0] != '#' && shouldAddSchema) this._refs[id] = schemaObj;\n\t this._cache.put(cacheKey, schemaObj);\n\n\t if (willValidate && recursiveMeta) this.validateSchema(schema, true);\n\n\t return schemaObj;\n\t}\n\n\n\t/* @this Ajv */\n\tfunction _compile(schemaObj, root) {\n\t if (schemaObj.compiling) {\n\t schemaObj.validate = callValidate;\n\t callValidate.schema = schemaObj.schema;\n\t callValidate.errors = null;\n\t callValidate.root = root ? root : callValidate;\n\t if (schemaObj.schema.$async === true)\n\t callValidate.$async = true;\n\t return callValidate;\n\t }\n\t schemaObj.compiling = true;\n\n\t var currentOpts;\n\t if (schemaObj.meta) {\n\t currentOpts = this._opts;\n\t this._opts = this._metaOpts;\n\t }\n\n\t var v;\n\t try { v = compileSchema.call(this, schemaObj.schema, root, schemaObj.localRefs); }\n\t finally {\n\t schemaObj.compiling = false;\n\t if (schemaObj.meta) this._opts = currentOpts;\n\t }\n\n\t schemaObj.validate = v;\n\t schemaObj.refs = v.refs;\n\t schemaObj.refVal = v.refVal;\n\t schemaObj.root = v.root;\n\t return v;\n\n\n\t function callValidate() {\n\t var _validate = schemaObj.validate;\n\t var result = _validate.apply(null, arguments);\n\t callValidate.errors = _validate.errors;\n\t return result;\n\t }\n\t}\n\n\n\tfunction chooseGetId(opts) {\n\t switch (opts.schemaId) {\n\t case '$id': return _get$Id;\n\t case 'id': return _getId;\n\t default: return _get$IdOrId;\n\t }\n\t}\n\n\n\tfunction _getId(schema) {\n\t if (schema.$id) console.warn('schema $id ignored', schema.$id);\n\t return schema.id;\n\t}\n\n\n\tfunction _get$Id(schema) {\n\t if (schema.id) console.warn('schema id ignored', schema.id);\n\t return schema.$id;\n\t}\n\n\n\tfunction _get$IdOrId(schema) {\n\t if (schema.$id && schema.id && schema.$id != schema.id)\n\t throw new Error('schema $id is different from id');\n\t return schema.$id || schema.id;\n\t}\n\n\n\t/**\n\t * Convert array of error message objects to string\n\t * @this Ajv\n\t * @param {Array<Object>} errors optional array of validation errors, if not passed errors from the instance are used.\n\t * @param {Object} options optional options with properties `separator` and `dataVar`.\n\t * @return {String} human readable string with all errors descriptions\n\t */\n\tfunction errorsText(errors, options) {\n\t errors = errors || this.errors;\n\t if (!errors) return 'No errors';\n\t options = options || {};\n\t var separator = options.separator === undefined ? ', ' : options.separator;\n\t var dataVar = options.dataVar === undefined ? 'data' : options.dataVar;\n\n\t var text = '';\n\t for (var i=0; i<errors.length; i++) {\n\t var e = errors[i];\n\t if (e) text += dataVar + e.dataPath + ' ' + e.message + separator;\n\t }\n\t return text.slice(0, -separator.length);\n\t}\n\n\n\t/**\n\t * Add custom format\n\t * @this Ajv\n\t * @param {String} name format name\n\t * @param {String|RegExp|Function} format string is converted to RegExp; function should return boolean (true when valid)\n\t */\n\tfunction addFormat(name, format) {\n\t if (typeof format == 'string') format = new RegExp(format);\n\t this._formats[name] = format;\n\t}\n\n\n\tfunction addDraft6MetaSchema(self) {\n\t var $dataSchema;\n\t if (self._opts.$data) {\n\t $dataSchema = __webpack_require__(52);\n\t self.addMetaSchema($dataSchema, $dataSchema.$id, true);\n\t }\n\t if (self._opts.meta === false) return;\n\t var metaSchema = __webpack_require__(53);\n\t if (self._opts.$data) metaSchema = $dataMetaSchema(metaSchema, META_SUPPORT_DATA);\n\t self.addMetaSchema(metaSchema, META_SCHEMA_ID, true);\n\t self._refs['http://json-schema.org/schema'] = META_SCHEMA_ID;\n\t}\n\n\n\tfunction addInitialSchemas(self) {\n\t var optsSchemas = self._opts.schemas;\n\t if (!optsSchemas) return;\n\t if (Array.isArray(optsSchemas)) self.addSchema(optsSchemas);\n\t else for (var key in optsSchemas) self.addSchema(optsSchemas[key], key);\n\t}\n\n\n\tfunction addInitialFormats(self) {\n\t for (var name in self._opts.formats) {\n\t var format = self._opts.formats[name];\n\t self.addFormat(name, format);\n\t }\n\t}\n\n\n\tfunction checkUnique(self, id) {\n\t if (self._schemas[id] || self._refs[id])\n\t throw new Error('schema with key or id \"' + id + '\" already exists');\n\t}\n\n\n\tfunction getMetaSchemaOptions(self) {\n\t var metaOpts = util.copy(self._opts);\n\t for (var i=0; i<META_IGNORE_OPTIONS.length; i++)\n\t delete metaOpts[META_IGNORE_OPTIONS[i]];\n\t return metaOpts;\n\t}\n\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar resolve = __webpack_require__(3)\n\t , util = __webpack_require__(11)\n\t , errorClasses = __webpack_require__(15)\n\t , stableStringify = __webpack_require__(16);\n\n\tvar validateGenerator = __webpack_require__(20);\n\n\t/**\n\t * Functions below are used inside compiled validations function\n\t */\n\n\tvar co = __webpack_require__(21);\n\tvar ucs2length = util.ucs2length;\n\tvar equal = __webpack_require__(10);\n\n\t// this error is thrown by async schemas to return validation errors via exception\n\tvar ValidationError = errorClasses.Validation;\n\n\tmodule.exports = compile;\n\n\n\t/**\n\t * Compiles schema to validation function\n\t * @this Ajv\n\t * @param {Object} schema schema object\n\t * @param {Object} root object with information about the root schema for this schema\n\t * @param {Object} localRefs the hash of local references inside the schema (created by resolve.id), used for inline resolution\n\t * @param {String} baseId base ID for IDs in the schema\n\t * @return {Function} validation function\n\t */\n\tfunction compile(schema, root, localRefs, baseId) {\n\t /* jshint validthis: true, evil: true */\n\t /* eslint no-shadow: 0 */\n\t var self = this\n\t , opts = this._opts\n\t , refVal = [ undefined ]\n\t , refs = {}\n\t , patterns = []\n\t , patternsHash = {}\n\t , defaults = []\n\t , defaultsHash = {}\n\t , customRules = [];\n\n\t root = root || { schema: schema, refVal: refVal, refs: refs };\n\n\t var c = checkCompiling.call(this, schema, root, baseId);\n\t var compilation = this._compilations[c.index];\n\t if (c.compiling) return (compilation.callValidate = callValidate);\n\n\t var formats = this._formats;\n\t var RULES = this.RULES;\n\n\t try {\n\t var v = localCompile(schema, root, localRefs, baseId);\n\t compilation.validate = v;\n\t var cv = compilation.callValidate;\n\t if (cv) {\n\t cv.schema = v.schema;\n\t cv.errors = null;\n\t cv.refs = v.refs;\n\t cv.refVal = v.refVal;\n\t cv.root = v.root;\n\t cv.$async = v.$async;\n\t if (opts.sourceCode) cv.source = v.source;\n\t }\n\t return v;\n\t } finally {\n\t endCompiling.call(this, schema, root, baseId);\n\t }\n\n\t function callValidate() {\n\t var validate = compilation.validate;\n\t var result = validate.apply(null, arguments);\n\t callValidate.errors = validate.errors;\n\t return result;\n\t }\n\n\t function localCompile(_schema, _root, localRefs, baseId) {\n\t var isRoot = !_root || (_root && _root.schema == _schema);\n\t if (_root.schema != root.schema)\n\t return compile.call(self, _schema, _root, localRefs, baseId);\n\n\t var $async = _schema.$async === true;\n\n\t var sourceCode = validateGenerator({\n\t isTop: true,\n\t schema: _schema,\n\t isRoot: isRoot,\n\t baseId: baseId,\n\t root: _root,\n\t schemaPath: '',\n\t errSchemaPath: '#',\n\t errorPath: '\"\"',\n\t MissingRefError: errorClasses.MissingRef,\n\t RULES: RULES,\n\t validate: validateGenerator,\n\t util: util,\n\t resolve: resolve,\n\t resolveRef: resolveRef,\n\t usePattern: usePattern,\n\t useDefault: useDefault,\n\t useCustomRule: useCustomRule,\n\t opts: opts,\n\t formats: formats,\n\t self: self\n\t });\n\n\t sourceCode = vars(refVal, refValCode) + vars(patterns, patternCode)\n\t + vars(defaults, defaultCode) + vars(customRules, customRuleCode)\n\t + sourceCode;\n\n\t if (opts.processCode) sourceCode = opts.processCode(sourceCode);\n\t // console.log('\\n\\n\\n *** \\n', JSON.stringify(sourceCode));\n\t var validate;\n\t try {\n\t var makeValidate = new Function(\n\t 'self',\n\t 'RULES',\n\t 'formats',\n\t 'root',\n\t 'refVal',\n\t 'defaults',\n\t 'customRules',\n\t 'co',\n\t 'equal',\n\t 'ucs2length',\n\t 'ValidationError',\n\t sourceCode\n\t );\n\n\t validate = makeValidate(\n\t self,\n\t RULES,\n\t formats,\n\t root,\n\t refVal,\n\t defaults,\n\t customRules,\n\t co,\n\t equal,\n\t ucs2length,\n\t ValidationError\n\t );\n\n\t refVal[0] = validate;\n\t } catch(e) {\n\t console.error('Error compiling schema, function code:', sourceCode);\n\t throw e;\n\t }\n\n\t validate.schema = _schema;\n\t validate.errors = null;\n\t validate.refs = refs;\n\t validate.refVal = refVal;\n\t validate.root = isRoot ? validate : _root;\n\t if ($async) validate.$async = true;\n\t if (opts.sourceCode === true) {\n\t validate.source = {\n\t code: sourceCode,\n\t patterns: patterns,\n\t defaults: defaults\n\t };\n\t }\n\n\t return validate;\n\t }\n\n\t function resolveRef(baseId, ref, isRoot) {\n\t ref = resolve.url(baseId, ref);\n\t var refIndex = refs[ref];\n\t var _refVal, refCode;\n\t if (refIndex !== undefined) {\n\t _refVal = refVal[refIndex];\n\t refCode = 'refVal[' + refIndex + ']';\n\t return resolvedRef(_refVal, refCode);\n\t }\n\t if (!isRoot && root.refs) {\n\t var rootRefId = root.refs[ref];\n\t if (rootRefId !== undefined) {\n\t _refVal = root.refVal[rootRefId];\n\t refCode = addLocalRef(ref, _refVal);\n\t return resolvedRef(_refVal, refCode);\n\t }\n\t }\n\n\t refCode = addLocalRef(ref);\n\t var v = resolve.call(self, localCompile, root, ref);\n\t if (v === undefined) {\n\t var localSchema = localRefs && localRefs[ref];\n\t if (localSchema) {\n\t v = resolve.inlineRef(localSchema, opts.inlineRefs)\n\t ? localSchema\n\t : compile.call(self, localSchema, root, localRefs, baseId);\n\t }\n\t }\n\n\t if (v !== undefined) {\n\t replaceLocalRef(ref, v);\n\t return resolvedRef(v, refCode);\n\t }\n\t }\n\n\t function addLocalRef(ref, v) {\n\t var refId = refVal.length;\n\t refVal[refId] = v;\n\t refs[ref] = refId;\n\t return 'refVal' + refId;\n\t }\n\n\t function replaceLocalRef(ref, v) {\n\t var refId = refs[ref];\n\t refVal[refId] = v;\n\t }\n\n\t function resolvedRef(refVal, code) {\n\t return typeof refVal == 'object' || typeof refVal == 'boolean'\n\t ? { code: code, schema: refVal, inline: true }\n\t : { code: code, $async: refVal && refVal.$async };\n\t }\n\n\t function usePattern(regexStr) {\n\t var index = patternsHash[regexStr];\n\t if (index === undefined) {\n\t index = patternsHash[regexStr] = patterns.length;\n\t patterns[index] = regexStr;\n\t }\n\t return 'pattern' + index;\n\t }\n\n\t function useDefault(value) {\n\t switch (typeof value) {\n\t case 'boolean':\n\t case 'number':\n\t return '' + value;\n\t case 'string':\n\t return util.toQuotedString(value);\n\t case 'object':\n\t if (value === null) return 'null';\n\t var valueStr = stableStringify(value);\n\t var index = defaultsHash[valueStr];\n\t if (index === undefined) {\n\t index = defaultsHash[valueStr] = defaults.length;\n\t defaults[index] = value;\n\t }\n\t return 'default' + index;\n\t }\n\t }\n\n\t function useCustomRule(rule, schema, parentSchema, it) {\n\t var validateSchema = rule.definition.validateSchema;\n\t if (validateSchema && self._opts.validateSchema !== false) {\n\t var valid = validateSchema(schema);\n\t if (!valid) {\n\t var message = 'keyword schema is invalid: ' + self.errorsText(validateSchema.errors);\n\t if (self._opts.validateSchema == 'log') console.error(message);\n\t else throw new Error(message);\n\t }\n\t }\n\n\t var compile = rule.definition.compile\n\t , inline = rule.definition.inline\n\t , macro = rule.definition.macro;\n\n\t var validate;\n\t if (compile) {\n\t validate = compile.call(self, schema, parentSchema, it);\n\t } else if (macro) {\n\t validate = macro.call(self, schema, parentSchema, it);\n\t if (opts.validateSchema !== false) self.validateSchema(validate, true);\n\t } else if (inline) {\n\t validate = inline.call(self, it, rule.keyword, schema, parentSchema);\n\t } else {\n\t validate = rule.definition.validate;\n\t if (!validate) return;\n\t }\n\n\t if (validate === undefined)\n\t throw new Error('custom keyword \"' + rule.keyword + '\"failed to compile');\n\n\t var index = customRules.length;\n\t customRules[index] = validate;\n\n\t return {\n\t code: 'customRule' + index,\n\t validate: validate\n\t };\n\t }\n\t}\n\n\n\t/**\n\t * Checks if the schema is currently compiled\n\t * @this Ajv\n\t * @param {Object} schema schema to compile\n\t * @param {Object} root root object\n\t * @param {String} baseId base schema ID\n\t * @return {Object} object with properties \"index\" (compilation index) and \"compiling\" (boolean)\n\t */\n\tfunction checkCompiling(schema, root, baseId) {\n\t /* jshint validthis: true */\n\t var index = compIndex.call(this, schema, root, baseId);\n\t if (index >= 0) return { index: index, compiling: true };\n\t index = this._compilations.length;\n\t this._compilations[index] = {\n\t schema: schema,\n\t root: root,\n\t baseId: baseId\n\t };\n\t return { index: index, compiling: false };\n\t}\n\n\n\t/**\n\t * Removes the schema from the currently compiled list\n\t * @this Ajv\n\t * @param {Object} schema schema to compile\n\t * @param {Object} root root object\n\t * @param {String} baseId base schema ID\n\t */\n\tfunction endCompiling(schema, root, baseId) {\n\t /* jshint validthis: true */\n\t var i = compIndex.call(this, schema, root, baseId);\n\t if (i >= 0) this._compilations.splice(i, 1);\n\t}\n\n\n\t/**\n\t * Index of schema compilation in the currently compiled list\n\t * @this Ajv\n\t * @param {Object} schema schema to compile\n\t * @param {Object} root root object\n\t * @param {String} baseId base schema ID\n\t * @return {Integer} compilation index\n\t */\n\tfunction compIndex(schema, root, baseId) {\n\t /* jshint validthis: true */\n\t for (var i=0; i<this._compilations.length; i++) {\n\t var c = this._compilations[i];\n\t if (c.schema == schema && c.root == root && c.baseId == baseId) return i;\n\t }\n\t return -1;\n\t}\n\n\n\tfunction patternCode(i, patterns) {\n\t return 'var pattern' + i + ' = new RegExp(' + util.toQuotedString(patterns[i]) + ');';\n\t}\n\n\n\tfunction defaultCode(i) {\n\t return 'var default' + i + ' = defaults[' + i + '];';\n\t}\n\n\n\tfunction refValCode(i, refVal) {\n\t return refVal[i] === undefined ? '' : 'var refVal' + i + ' = refVal[' + i + '];';\n\t}\n\n\n\tfunction customRuleCode(i) {\n\t return 'var customRule' + i + ' = customRules[' + i + '];';\n\t}\n\n\n\tfunction vars(arr, statement) {\n\t if (!arr.length) return '';\n\t var code = '';\n\t for (var i=0; i<arr.length; i++)\n\t code += statement(i, arr);\n\t return code;\n\t}\n\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar url = __webpack_require__(4)\n\t , equal = __webpack_require__(10)\n\t , util = __webpack_require__(11)\n\t , SchemaObject = __webpack_require__(13)\n\t , traverse = __webpack_require__(14);\n\n\tmodule.exports = resolve;\n\n\tresolve.normalizeId = normalizeId;\n\tresolve.fullPath = getFullPath;\n\tresolve.url = resolveUrl;\n\tresolve.ids = resolveIds;\n\tresolve.inlineRef = inlineRef;\n\tresolve.schema = resolveSchema;\n\n\t/**\n\t * [resolve and compile the references ($ref)]\n\t * @this Ajv\n\t * @param {Function} compile reference to schema compilation funciton (localCompile)\n\t * @param {Object} root object with information about the root schema for the current schema\n\t * @param {String} ref reference to resolve\n\t * @return {Object|Function} schema object (if the schema can be inlined) or validation function\n\t */\n\tfunction resolve(compile, root, ref) {\n\t /* jshint validthis: true */\n\t var refVal = this._refs[ref];\n\t if (typeof refVal == 'string') {\n\t if (this._refs[refVal]) refVal = this._refs[refVal];\n\t else return resolve.call(this, compile, root, refVal);\n\t }\n\n\t refVal = refVal || this._schemas[ref];\n\t if (refVal instanceof SchemaObject) {\n\t return inlineRef(refVal.schema, this._opts.inlineRefs)\n\t ? refVal.schema\n\t : refVal.validate || this._compile(refVal);\n\t }\n\n\t var res = resolveSchema.call(this, root, ref);\n\t var schema, v, baseId;\n\t if (res) {\n\t schema = res.schema;\n\t root = res.root;\n\t baseId = res.baseId;\n\t }\n\n\t if (schema instanceof SchemaObject) {\n\t v = schema.validate || compile.call(this, schema.schema, root, undefined, baseId);\n\t } else if (schema !== undefined) {\n\t v = inlineRef(schema, this._opts.inlineRefs)\n\t ? schema\n\t : compile.call(this, schema, root, undefined, baseId);\n\t }\n\n\t return v;\n\t}\n\n\n\t/**\n\t * Resolve schema, its root and baseId\n\t * @this Ajv\n\t * @param {Object} root root object with properties schema, refVal, refs\n\t * @param {String} ref reference to resolve\n\t * @return {Object} object with properties schema, root, baseId\n\t */\n\tfunction resolveSchema(root, ref) {\n\t /* jshint validthis: true */\n\t var p = url.parse(ref, false, true)\n\t , refPath = _getFullPath(p)\n\t , baseId = getFullPath(this._getId(root.schema));\n\t if (refPath !== baseId) {\n\t var id = normalizeId(refPath);\n\t var refVal = this._refs[id];\n\t if (typeof refVal == 'string') {\n\t return resolveRecursive.call(this, root, refVal, p);\n\t } else if (refVal instanceof SchemaObject) {\n\t if (!refVal.validate) this._compile(refVal);\n\t root = refVal;\n\t } else {\n\t refVal = this._schemas[id];\n\t if (refVal instanceof SchemaObject) {\n\t if (!refVal.validate) this._compile(refVal);\n\t if (id == normalizeId(ref))\n\t return { schema: refVal, root: root, baseId: baseId };\n\t root = refVal;\n\t } else {\n\t return;\n\t }\n\t }\n\t if (!root.schema) return;\n\t baseId = getFullPath(this._getId(root.schema));\n\t }\n\t return getJsonPointer.call(this, p, baseId, root.schema, root);\n\t}\n\n\n\t/* @this Ajv */\n\tfunction resolveRecursive(root, ref, parsedRef) {\n\t /* jshint validthis: true */\n\t var res = resolveSchema.call(this, root, ref);\n\t if (res) {\n\t var schema = res.schema;\n\t var baseId = res.baseId;\n\t root = res.root;\n\t var id = this._getId(schema);\n\t if (id) baseId = resolveUrl(baseId, id);\n\t return getJsonPointer.call(this, parsedRef, baseId, schema, root);\n\t }\n\t}\n\n\n\tvar PREVENT_SCOPE_CHANGE = util.toHash(['properties', 'patternProperties', 'enum', 'dependencies', 'definitions']);\n\t/* @this Ajv */\n\tfunction getJsonPointer(parsedRef, baseId, schema, root) {\n\t /* jshint validthis: true */\n\t parsedRef.hash = parsedRef.hash || '';\n\t if (parsedRef.hash.slice(0,2) != '#/') return;\n\t var parts = parsedRef.hash.split('/');\n\n\t for (var i = 1; i < parts.length; i++) {\n\t var part = parts[i];\n\t if (part) {\n\t part = util.unescapeFragment(part);\n\t schema = schema[part];\n\t if (schema === undefined) break;\n\t var id;\n\t if (!PREVENT_SCOPE_CHANGE[part]) {\n\t id = this._getId(schema);\n\t if (id) baseId = resolveUrl(baseId, id);\n\t if (schema.$ref) {\n\t var $ref = resolveUrl(baseId, schema.$ref);\n\t var res = resolveSchema.call(this, root, $ref);\n\t if (res) {\n\t schema = res.schema;\n\t root = res.root;\n\t baseId = res.baseId;\n\t }\n\t }\n\t }\n\t }\n\t }\n\t if (schema !== undefined && schema !== root.schema)\n\t return { schema: schema, root: root, baseId: baseId };\n\t}\n\n\n\tvar SIMPLE_INLINED = util.toHash([\n\t 'type', 'format', 'pattern',\n\t 'maxLength', 'minLength',\n\t 'maxProperties', 'minProperties',\n\t 'maxItems', 'minItems',\n\t 'maximum', 'minimum',\n\t 'uniqueItems', 'multipleOf',\n\t 'required', 'enum'\n\t]);\n\tfunction inlineRef(schema, limit) {\n\t if (limit === false) return false;\n\t if (limit === undefined || limit === true) return checkNoRef(schema);\n\t else if (limit) return countKeys(schema) <= limit;\n\t}\n\n\n\tfunction checkNoRef(schema) {\n\t var item;\n\t if (Array.isArray(schema)) {\n\t for (var i=0; i<schema.length; i++) {\n\t item = schema[i];\n\t if (typeof item == 'object' && !checkNoRef(item)) return false;\n\t }\n\t } else {\n\t for (var key in schema) {\n\t if (key == '$ref') return false;\n\t item = schema[key];\n\t if (typeof item == 'object' && !checkNoRef(item)) return false;\n\t }\n\t }\n\t return true;\n\t}\n\n\n\tfunction countKeys(schema) {\n\t var count = 0, item;\n\t if (Array.isArray(schema)) {\n\t for (var i=0; i<schema.length; i++) {\n\t item = schema[i];\n\t if (typeof item == 'object') count += countKeys(item);\n\t if (count == Infinity) return Infinity;\n\t }\n\t } else {\n\t for (var key in schema) {\n\t if (key == '$ref') return Infinity;\n\t if (SIMPLE_INLINED[key]) {\n\t count++;\n\t } else {\n\t item = schema[key];\n\t if (typeof item == 'object') count += countKeys(item) + 1;\n\t if (count == Infinity) return Infinity;\n\t }\n\t }\n\t }\n\t return count;\n\t}\n\n\n\tfunction getFullPath(id, normalize) {\n\t if (normalize !== false) id = normalizeId(id);\n\t var p = url.parse(id, false, true);\n\t return _getFullPath(p);\n\t}\n\n\n\tfunction _getFullPath(p) {\n\t var protocolSeparator = p.protocol || p.href.slice(0,2) == '//' ? '//' : '';\n\t return (p.protocol||'') + protocolSeparator + (p.host||'') + (p.path||'') + '#';\n\t}\n\n\n\tvar TRAILING_SLASH_HASH = /#\\/?$/;\n\tfunction normalizeId(id) {\n\t return id ? id.replace(TRAILING_SLASH_HASH, '') : '';\n\t}\n\n\n\tfunction resolveUrl(baseId, id) {\n\t id = normalizeId(id);\n\t return url.resolve(baseId, id);\n\t}\n\n\n\t/* @this Ajv */\n\tfunction resolveIds(schema) {\n\t var schemaId = normalizeId(this._getId(schema));\n\t var baseIds = {'': schemaId};\n\t var fullPaths = {'': getFullPath(schemaId, false)};\n\t var localRefs = {};\n\t var self = this;\n\n\t traverse(schema, {allKeys: true}, function(sch, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n\t if (jsonPtr === '') return;\n\t var id = self._getId(sch);\n\t var baseId = baseIds[parentJsonPtr];\n\t var fullPath = fullPaths[parentJsonPtr] + '/' + parentKeyword;\n\t if (keyIndex !== undefined)\n\t fullPath += '/' + (typeof keyIndex == 'number' ? keyIndex : util.escapeFragment(keyIndex));\n\n\t if (typeof id == 'string') {\n\t id = baseId = normalizeId(baseId ? url.resolve(baseId, id) : id);\n\n\t var refVal = self._refs[id];\n\t if (typeof refVal == 'string') refVal = self._refs[refVal];\n\t if (refVal && refVal.schema) {\n\t if (!equal(sch, refVal.schema))\n\t throw new Error('id \"' + id + '\" resolves to more than one schema');\n\t } else if (id != normalizeId(fullPath)) {\n\t if (id[0] == '#') {\n\t if (localRefs[id] && !equal(sch, localRefs[id]))\n\t throw new Error('id \"' + id + '\" resolves to more than one schema');\n\t localRefs[id] = sch;\n\t } else {\n\t self._refs[id] = fullPath;\n\t }\n\t }\n\t }\n\t baseIds[jsonPtr] = baseId;\n\t fullPaths[jsonPtr] = fullPath;\n\t });\n\n\t return localRefs;\n\t}\n\n\n/***/ },\n/* 4 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// Copyright Joyent, Inc. and other Node contributors.\n\t//\n\t// Permission is hereby granted, free of charge, to any person obtaining a\n\t// copy of this software and associated documentation files (the\n\t// \"Software\"), to deal in the Software without restriction, including\n\t// without limitation the rights to use, copy, modify, merge, publish,\n\t// distribute, sublicense, and/or sell copies of the Software, and to permit\n\t// persons to whom the Software is furnished to do so, subject to the\n\t// following conditions:\n\t//\n\t// The above copyright notice and this permission notice shall be included\n\t// in all copies or substantial portions of the Software.\n\t//\n\t// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n\t// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n\t// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n\t// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n\t// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n\t// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n\t// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\tvar punycode = __webpack_require__(5);\n\n\texports.parse = urlParse;\n\texports.resolve = urlResolve;\n\texports.resolveObject = urlResolveObject;\n\texports.format = urlFormat;\n\n\texports.Url = Url;\n\n\tfunction Url() {\n\t this.protocol = null;\n\t this.slashes = null;\n\t this.auth = null;\n\t this.host = null;\n\t this.port = null;\n\t this.hostname = null;\n\t this.hash = null;\n\t this.search = null;\n\t this.query = null;\n\t this.pathname = null;\n\t this.path = null;\n\t this.href = null;\n\t}\n\n\t// Reference: RFC 3986, RFC 1808, RFC 2396\n\n\t// define these here so at least they only have to be\n\t// compiled once on the first module load.\n\tvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n\t portPattern = /:[0-9]*$/,\n\n\t // RFC 2396: characters reserved for delimiting URLs.\n\t // We actually just auto-escape these.\n\t delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n\n\t // RFC 2396: characters not allowed for various reasons.\n\t unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n\n\t // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n\t autoEscape = ['\\''].concat(unwise),\n\t // Characters that are never ever allowed in a hostname.\n\t // Note that any invalid chars are also handled, but these\n\t // are the ones that are *expected* to be seen, so we fast-path\n\t // them.\n\t nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n\t hostEndingChars = ['/', '?', '#'],\n\t hostnameMaxLen = 255,\n\t hostnamePartPattern = /^[a-z0-9A-Z_-]{0,63}$/,\n\t hostnamePartStart = /^([a-z0-9A-Z_-]{0,63})(.*)$/,\n\t // protocols that can allow \"unsafe\" and \"unwise\" chars.\n\t unsafeProtocol = {\n\t 'javascript': true,\n\t 'javascript:': true\n\t },\n\t // protocols that never have a hostname.\n\t hostlessProtocol = {\n\t 'javascript': true,\n\t 'javascript:': true\n\t },\n\t // protocols that always contain a // bit.\n\t slashedProtocol = {\n\t 'http': true,\n\t 'https': true,\n\t 'ftp': true,\n\t 'gopher': true,\n\t 'file': true,\n\t 'http:': true,\n\t 'https:': true,\n\t 'ftp:': true,\n\t 'gopher:': true,\n\t 'file:': true\n\t },\n\t querystring = __webpack_require__(7);\n\n\tfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n\t if (url && isObject(url) && url instanceof Url) return url;\n\n\t var u = new Url;\n\t u.parse(url, parseQueryString, slashesDenoteHost);\n\t return u;\n\t}\n\n\tUrl.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {\n\t if (!isString(url)) {\n\t throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n\t }\n\n\t var rest = url;\n\n\t // trim before proceeding.\n\t // This is to support parse stuff like \" http://foo.com \\n\"\n\t rest = rest.trim();\n\n\t var proto = protocolPattern.exec(rest);\n\t if (proto) {\n\t proto = proto[0];\n\t var lowerProto = proto.toLowerCase();\n\t this.protocol = lowerProto;\n\t rest = rest.substr(proto.length);\n\t }\n\n\t // figure out if it's got a host\n\t // user@server is *always* interpreted as a hostname, and url\n\t // resolution will treat //foo/bar as host=foo,path=bar because that's\n\t // how the browser resolves relative URLs.\n\t if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n\t var slashes = rest.substr(0, 2) === '//';\n\t if (slashes && !(proto && hostlessProtocol[proto])) {\n\t rest = rest.substr(2);\n\t this.slashes = true;\n\t }\n\t }\n\n\t if (!hostlessProtocol[proto] &&\n\t (slashes || (proto && !slashedProtocol[proto]))) {\n\n\t // there's a hostname.\n\t // the first instance of /, ?, ;, or # ends the host.\n\t //\n\t // If there is an @ in the hostname, then non-host chars *are* allowed\n\t // to the left of the last @ sign, unless some host-ending character\n\t // comes *before* the @-sign.\n\t // URLs are obnoxious.\n\t //\n\t // ex:\n\t // http://a@b@c/ => user:a@b host:c\n\t // http://a@b?@c => user:a host:c path:/?@c\n\n\t // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n\t // Review our test case against browsers more comprehensively.\n\n\t // find the first instance of any hostEndingChars\n\t var hostEnd = -1;\n\t for (var i = 0; i < hostEndingChars.length; i++) {\n\t var hec = rest.indexOf(hostEndingChars[i]);\n\t if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n\t hostEnd = hec;\n\t }\n\n\t // at this point, either we have an explicit point where the\n\t // auth portion cannot go past, or the last @ char is the decider.\n\t var auth, atSign;\n\t if (hostEnd === -1) {\n\t // atSign can be anywhere.\n\t atSign = rest.lastIndexOf('@');\n\t } else {\n\t // atSign must be in auth portion.\n\t // http://a@b/c@d => host:b auth:a path:/c@d\n\t atSign = rest.lastIndexOf('@', hostEnd);\n\t }\n\n\t // Now we have a portion which is definitely the auth.\n\t // Pull that off.\n\t if (atSign !== -1) {\n\t auth = rest.slice(0, atSign);\n\t rest = rest.slice(atSign + 1);\n\t this.auth = decodeURIComponent(auth);\n\t }\n\n\t // the host is the remaining to the left of the first non-host char\n\t hostEnd = -1;\n\t for (var i = 0; i < nonHostChars.length; i++) {\n\t var hec = rest.indexOf(nonHostChars[i]);\n\t if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n\t hostEnd = hec;\n\t }\n\t // if we still have not hit it, then the entire thing is a host.\n\t if (hostEnd === -1)\n\t hostEnd = rest.length;\n\n\t this.host = rest.slice(0, hostEnd);\n\t rest = rest.slice(hostEnd);\n\n\t // pull out port.\n\t this.parseHost();\n\n\t // we've indicated that there is a hostname,\n\t // so even if it's empty, it has to be present.\n\t this.hostname = this.hostname || '';\n\n\t // if hostname begins with [ and ends with ]\n\t // assume that it's an IPv6 address.\n\t var ipv6Hostname = this.hostname[0] === '[' &&\n\t this.hostname[this.hostname.length - 1] === ']';\n\n\t // validate a little.\n\t if (!ipv6Hostname) {\n\t var hostparts = this.hostname.split(/\\./);\n\t for (var i = 0, l = hostparts.length; i < l; i++) {\n\t var part = hostparts[i];\n\t if (!part) continue;\n\t if (!part.match(hostnamePartPattern)) {\n\t var newpart = '';\n\t for (var j = 0, k = part.length; j < k; j++) {\n\t if (part.charCodeAt(j) > 127) {\n\t // we replace non-ASCII char with a temporary placeholder\n\t // we need this to make sure size of hostname is not\n\t // broken by replacing non-ASCII by nothing\n\t newpart += 'x';\n\t } else {\n\t newpart += part[j];\n\t }\n\t }\n\t // we test again with ASCII char only\n\t if (!newpart.match(hostnamePartPattern)) {\n\t var validParts = hostparts.slice(0, i);\n\t var notHost = hostparts.slice(i + 1);\n\t var bit = part.match(hostnamePartStart);\n\t if (bit) {\n\t validParts.push(bit[1]);\n\t notHost.unshift(bit[2]);\n\t }\n\t if (notHost.length) {\n\t rest = '/' + notHost.join('.') + rest;\n\t }\n\t this.hostname = validParts.join('.');\n\t break;\n\t }\n\t }\n\t }\n\t }\n\n\t if (this.hostname.length > hostnameMaxLen) {\n\t this.hostname = '';\n\t } else {\n\t // hostnames are always lower case.\n\t this.hostname = this.hostname.toLowerCase();\n\t }\n\n\t if (!ipv6Hostname) {\n\t // IDNA Support: Returns a puny coded representation of \"domain\".\n\t // It only converts the part of the domain name that\n\t // has non ASCII characters. I.e. it dosent matter if\n\t // you call it with a domain that already is in ASCII.\n\t var domainArray = this.hostname.split('.');\n\t var newOut = [];\n\t for (var i = 0; i < domainArray.length; ++i) {\n\t var s = domainArray[i];\n\t newOut.push(s.match(/[^A-Za-z0-9_-]/) ?\n\t 'xn--' + punycode.encode(s) : s);\n\t }\n\t this.hostname = newOut.join('.');\n\t }\n\n\t var p = this.port ? ':' + this.port : '';\n\t var h = this.hostname || '';\n\t this.host = h + p;\n\t this.href += this.host;\n\n\t // strip [ and ] from the hostname\n\t // the host field still retains them, though\n\t if (ipv6Hostname) {\n\t this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n\t if (rest[0] !== '/') {\n\t rest = '/' + rest;\n\t }\n\t }\n\t }\n\n\t // now rest is set to the post-host stuff.\n\t // chop off any delim chars.\n\t if (!unsafeProtocol[lowerProto]) {\n\n\t // First, make 100% sure that any \"autoEscape\" chars get\n\t // escaped, even if encodeURIComponent doesn't think they\n\t // need to be.\n\t for (var i = 0, l = autoEscape.length; i < l; i++) {\n\t var ae = autoEscape[i];\n\t var esc = encodeURIComponent(ae);\n\t if (esc === ae) {\n\t esc = escape(ae);\n\t }\n\t rest = rest.split(ae).join(esc);\n\t }\n\t }\n\n\n\t // chop off from the tail first.\n\t var hash = rest.indexOf('#');\n\t if (hash !== -1) {\n\t // got a fragment string.\n\t this.hash = rest.substr(hash);\n\t rest = rest.slice(0, hash);\n\t }\n\t var qm = rest.indexOf('?');\n\t if (qm !== -1) {\n\t this.search = rest.substr(qm);\n\t this.query = rest.substr(qm + 1);\n\t if (parseQueryString) {\n\t this.query = querystring.parse(this.query);\n\t }\n\t rest = rest.slice(0, qm);\n\t } else if (parseQueryString) {\n\t // no query string, but parseQueryString still requested\n\t this.search = '';\n\t this.query = {};\n\t }\n\t if (rest) this.pathname = rest;\n\t if (slashedProtocol[lowerProto] &&\n\t this.hostname && !this.pathname) {\n\t this.pathname = '/';\n\t }\n\n\t //to support http.request\n\t if (this.pathname || this.search) {\n\t var p = this.pathname || '';\n\t var s = this.search || '';\n\t this.path = p + s;\n\t }\n\n\t // finally, reconstruct the href based on what has been validated.\n\t this.href = this.format();\n\t return this;\n\t};\n\n\t// format a parsed object into a url string\n\tfunction urlFormat(obj) {\n\t // ensure it's an object, and not a string url.\n\t // If it's an obj, this is a no-op.\n\t // this way, you can call url_format() on strings\n\t // to clean up potentially wonky urls.\n\t if (isString(obj)) obj = urlParse(obj);\n\t if (!(obj instanceof Url)) return Url.prototype.format.call(obj);\n\t return obj.format();\n\t}\n\n\tUrl.prototype.format = function() {\n\t var auth = this.auth || '';\n\t if (auth) {\n\t auth = encodeURIComponent(auth);\n\t auth = auth.replace(/%3A/i, ':');\n\t auth += '@';\n\t }\n\n\t var protocol = this.protocol || '',\n\t pathname = this.pathname || '',\n\t hash = this.hash || '',\n\t host = false,\n\t query = '';\n\n\t if (this.host) {\n\t host = auth + this.host;\n\t } else if (this.hostname) {\n\t host = auth + (this.hostname.indexOf(':') === -1 ?\n\t this.hostname :\n\t '[' + this.hostname + ']');\n\t if (this.port) {\n\t host += ':' + this.port;\n\t }\n\t }\n\n\t if (this.query &&\n\t isObject(this.query) &&\n\t Object.keys(this.query).length) {\n\t query = querystring.stringify(this.query);\n\t }\n\n\t var search = this.search || (query && ('?' + query)) || '';\n\n\t if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\n\t // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n\t // unless they had them to begin with.\n\t if (this.slashes ||\n\t (!protocol || slashedProtocol[protocol]) && host !== false) {\n\t host = '//' + (host || '');\n\t if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n\t } else if (!host) {\n\t host = '';\n\t }\n\n\t if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n\t if (search && search.charAt(0) !== '?') search = '?' + search;\n\n\t pathname = pathname.replace(/[?#]/g, function(match) {\n\t return encodeURIComponent(match);\n\t });\n\t search = search.replace('#', '%23');\n\n\t return protocol + host + pathname + search + hash;\n\t};\n\n\tfunction urlResolve(source, relative) {\n\t return urlParse(source, false, true).resolve(relative);\n\t}\n\n\tUrl.prototype.resolve = function(relative) {\n\t return this.resolveObject(urlParse(relative, false, true)).format();\n\t};\n\n\tfunction urlResolveObject(source, relative) {\n\t if (!source) return relative;\n\t return urlParse(source, false, true).resolveObject(relative);\n\t}\n\n\tUrl.prototype.resolveObject = function(relative) {\n\t if (isString(relative)) {\n\t var rel = new Url();\n\t rel.parse(relative, false, true);\n\t relative = rel;\n\t }\n\n\t var result = new Url();\n\t Object.keys(this).forEach(function(k) {\n\t result[k] = this[k];\n\t }, this);\n\n\t // hash is always overridden, no matter what.\n\t // even href=\"\" will remove it.\n\t result.hash = relative.hash;\n\n\t // if the relative url is empty, then there's nothing left to do here.\n\t if (relative.href === '') {\n\t result.href = result.format();\n\t return result;\n\t }\n\n\t // hrefs like //foo/bar always cut to the protocol.\n\t if (relative.slashes && !relative.protocol) {\n\t // take everything except the protocol from relative\n\t Object.keys(relative).forEach(function(k) {\n\t if (k !== 'protocol')\n\t result[k] = relative[k];\n\t });\n\n\t //urlParse appends trailing / to urls like http://www.example.com\n\t if (slashedProtocol[result.protocol] &&\n\t result.hostname && !result.pathname) {\n\t result.path = result.pathname = '/';\n\t }\n\n\t result.href = result.format();\n\t return result;\n\t }\n\n\t if (relative.protocol && relative.protocol !== result.protocol) {\n\t // if it's a known url protocol, then changing\n\t // the protocol does weird things\n\t // first, if it's not file:, then we MUST have a host,\n\t // and if there was a path\n\t // to begin with, then we MUST have a path.\n\t // if it is file:, then the host is dropped,\n\t // because that's known to be hostless.\n\t // anything else is assumed to be absolute.\n\t if (!slashedProtocol[relative.protocol]) {\n\t Object.keys(relative).forEach(function(k) {\n\t result[k] = relative[k];\n\t });\n\t result.href = result.format();\n\t return result;\n\t }\n\n\t result.protocol = relative.protocol;\n\t if (!relative.host && !hostlessProtocol[relative.protocol]) {\n\t var relPath = (relative.pathname || '').split('/');\n\t while (relPath.length && !(relative.host = relPath.shift()));\n\t if (!relative.host) relative.host = '';\n\t if (!relative.hostname) relative.hostname = '';\n\t if (relPath[0] !== '') relPath.unshift('');\n\t if (relPath.length < 2) relPath.unshift('');\n\t result.pathname = relPath.join('/');\n\t } else {\n\t result.pathname = relative.pathname;\n\t }\n\t result.search = relative.search;\n\t result.query = relative.query;\n\t result.host = relative.host || '';\n\t result.auth = relative.auth;\n\t result.hostname = relative.hostname || relative.host;\n\t result.port = relative.port;\n\t // to support http.request\n\t if (result.pathname || result.search) {\n\t var p = result.pathname || '';\n\t var s = result.search || '';\n\t result.path = p + s;\n\t }\n\t result.slashes = result.slashes || relative.slashes;\n\t result.href = result.format();\n\t return result;\n\t }\n\n\t var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),\n\t isRelAbs = (\n\t relative.host ||\n\t relative.pathname && relative.pathname.charAt(0) === '/'\n\t ),\n\t mustEndAbs = (isRelAbs || isSourceAbs ||\n\t (result.host && relative.pathname)),\n\t removeAllDots = mustEndAbs,\n\t srcPath = result.pathname && result.pathname.split('/') || [],\n\t relPath = relative.pathname && relative.pathname.split('/') || [],\n\t psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n\t // if the url is a non-slashed url, then relative\n\t // links like ../.. should be able\n\t // to crawl up to the hostname, as well. This is strange.\n\t // result.protocol has already been set by now.\n\t // Later on, put the first path part into the host field.\n\t if (psychotic) {\n\t result.hostname = '';\n\t result.port = null;\n\t if (result.host) {\n\t if (srcPath[0] === '') srcPath[0] = result.host;\n\t else srcPath.unshift(result.host);\n\t }\n\t result.host = '';\n\t if (relative.protocol) {\n\t relative.hostname = null;\n\t relative.port = null;\n\t if (relative.host) {\n\t if (relPath[0] === '') relPath[0] = relative.host;\n\t else relPath.unshift(relative.host);\n\t }\n\t relative.host = null;\n\t }\n\t mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n\t }\n\n\t if (isRelAbs) {\n\t // it's absolute.\n\t result.host = (relative.host || relative.host === '') ?\n\t relative.host : result.host;\n\t result.hostname = (relative.hostname || relative.hostname === '') ?\n\t relative.hostname : result.hostname;\n\t result.search = relative.search;\n\t result.query = relative.query;\n\t srcPath = relPath;\n\t // fall through to the dot-handling below.\n\t } else if (relPath.length) {\n\t // it's relative\n\t // throw away the existing file, and take the new path instead.\n\t if (!srcPath) srcPath = [];\n\t srcPath.pop();\n\t srcPath = srcPath.concat(relPath);\n\t result.search = relative.search;\n\t result.query = relative.query;\n\t } else if (!isNullOrUndefined(relative.search)) {\n\t // just pull out the search.\n\t // like href='?foo'.\n\t // Put this after the other two cases because it simplifies the booleans\n\t if (psychotic) {\n\t result.hostname = result.host = srcPath.shift();\n\t //occationaly the auth can get stuck only in host\n\t //this especialy happens in cases like\n\t //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n\t var authInHost = result.host && result.host.indexOf('@') > 0 ?\n\t result.host.split('@') : false;\n\t if (authInHost) {\n\t result.auth = authInHost.shift();\n\t result.host = result.hostname = authInHost.shift();\n\t }\n\t }\n\t result.search = relative.search;\n\t result.query = relative.query;\n\t //to support http.request\n\t if (!isNull(result.pathname) || !isNull(result.search)) {\n\t result.path = (result.pathname ? result.pathname : '') +\n\t (result.search ? result.search : '');\n\t }\n\t result.href = result.format();\n\t return result;\n\t }\n\n\t if (!srcPath.length) {\n\t // no path at all. easy.\n\t // we've already handled the other stuff above.\n\t result.pathname = null;\n\t //to support http.request\n\t if (result.search) {\n\t result.path = '/' + result.search;\n\t } else {\n\t result.path = null;\n\t }\n\t result.href = result.format();\n\t return result;\n\t }\n\n\t // if a url ENDs in . or .., then it must get a trailing slash.\n\t // however, if it ends in anything else non-slashy,\n\t // then it must NOT get a trailing slash.\n\t var last = srcPath.slice(-1)[0];\n\t var hasTrailingSlash = (\n\t (result.host || relative.host) && (last === '.' || last === '..') ||\n\t last === '');\n\n\t // strip single dots, resolve double dots to parent dir\n\t // if the path tries to go above the root, `up` ends up > 0\n\t var up = 0;\n\t for (var i = srcPath.length; i >= 0; i--) {\n\t last = srcPath[i];\n\t if (last == '.') {\n\t srcPath.splice(i, 1);\n\t } else if (last === '..') {\n\t srcPath.splice(i, 1);\n\t up++;\n\t } else if (up) {\n\t srcPath.splice(i, 1);\n\t up--;\n\t }\n\t }\n\n\t // if the path is allowed to go above the root, restore leading ..s\n\t if (!mustEndAbs && !removeAllDots) {\n\t for (; up--; up) {\n\t srcPath.unshift('..');\n\t }\n\t }\n\n\t if (mustEndAbs && srcPath[0] !== '' &&\n\t (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n\t srcPath.unshift('');\n\t }\n\n\t if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n\t srcPath.push('');\n\t }\n\n\t var isAbsolute = srcPath[0] === '' ||\n\t (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n\t // put the host back\n\t if (psychotic) {\n\t result.hostname = result.host = isAbsolute ? '' :\n\t srcPath.length ? srcPath.shift() : '';\n\t //occationaly the auth can get stuck only in host\n\t //this especialy happens in cases like\n\t //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n\t var authInHost = result.host && result.host.indexOf('@') > 0 ?\n\t result.host.split('@') : false;\n\t if (authInHost) {\n\t result.auth = authInHost.shift();\n\t result.host = result.hostname = authInHost.shift();\n\t }\n\t }\n\n\t mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n\t if (mustEndAbs && !isAbsolute) {\n\t srcPath.unshift('');\n\t }\n\n\t if (!srcPath.length) {\n\t result.pathname = null;\n\t result.path = null;\n\t } else {\n\t result.pathname = srcPath.join('/');\n\t }\n\n\t //to support request.http\n\t if (!isNull(result.pathname) || !isNull(result.search)) {\n\t result.path = (result.pathname ? result.pathname : '') +\n\t (result.search ? result.search : '');\n\t }\n\t result.auth = relative.auth || result.auth;\n\t result.slashes = result.slashes || relative.slashes;\n\t result.href = result.format();\n\t return result;\n\t};\n\n\tUrl.prototype.parseHost = function() {\n\t var host = this.host;\n\t var port = portPattern.exec(host);\n\t if (port) {\n\t port = port[0];\n\t if (port !== ':') {\n\t this.port = port.substr(1);\n\t }\n\t host = host.substr(0, host.length - port.length);\n\t }\n\t if (host) this.hostname = host;\n\t};\n\n\tfunction isString(arg) {\n\t return typeof arg === \"string\";\n\t}\n\n\tfunction isObject(arg) {\n\t return typeof arg === 'object' && arg !== null;\n\t}\n\n\tfunction isNull(arg) {\n\t return arg === null;\n\t}\n\tfunction isNullOrUndefined(arg) {\n\t return arg == null;\n\t}\n\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(module, global) {/*! https://mths.be/punycode v1.3.2 by @mathias */\n\t;(function(root) {\n\n\t\t/** Detect free variables */\n\t\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t\t!exports.nodeType && exports;\n\t\tvar freeModule = typeof module == 'object' && module &&\n\t\t\t!module.nodeType && module;\n\t\tvar freeGlobal = typeof global == 'object' && global;\n\t\tif (\n\t\t\tfreeGlobal.global === freeGlobal ||\n\t\t\tfreeGlobal.window === freeGlobal ||\n\t\t\tfreeGlobal.self === freeGlobal\n\t\t) {\n\t\t\troot = freeGlobal;\n\t\t}\n\n\t\t/**\n\t\t * The `punycode` object.\n\t\t * @name punycode\n\t\t * @type Object\n\t\t */\n\t\tvar punycode,\n\n\t\t/** Highest positive signed 32-bit float value */\n\t\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t\t/** Bootstring parameters */\n\t\tbase = 36,\n\t\ttMin = 1,\n\t\ttMax = 26,\n\t\tskew = 38,\n\t\tdamp = 700,\n\t\tinitialBias = 72,\n\t\tinitialN = 128, // 0x80\n\t\tdelimiter = '-', // '\\x2D'\n\n\t\t/** Regular expressions */\n\t\tregexPunycode = /^xn--/,\n\t\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\t\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t\t/** Error messages */\n\t\terrors = {\n\t\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t\t'invalid-input': 'Invalid input'\n\t\t},\n\n\t\t/** Convenience shortcuts */\n\t\tbaseMinusTMin = base - tMin,\n\t\tfloor = Math.floor,\n\t\tstringFromCharCode = String.fromCharCode,\n\n\t\t/** Temporary variable */\n\t\tkey;\n\n\t\t/*--------------------------------------------------------------------------*/\n\n\t\t/**\n\t\t * A generic error utility function.\n\t\t * @private\n\t\t * @param {String} type The error type.\n\t\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t\t */\n\t\tfunction error(type) {\n\t\t\tthrow RangeError(errors[type]);\n\t\t}\n\n\t\t/**\n\t\t * A generic `Array#map` utility function.\n\t\t * @private\n\t\t * @param {Array} array The array to iterate over.\n\t\t * @param {Function} callback The function that gets called for every array\n\t\t * item.\n\t\t * @returns {Array} A new array of values returned by the callback function.\n\t\t */\n\t\tfunction map(array, fn) {\n\t\t\tvar length = array.length;\n\t\t\tvar result = [];\n\t\t\twhile (length--) {\n\t\t\t\tresult[length] = fn(array[length]);\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\n\t\t/**\n\t\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t\t * addresses.\n\t\t * @private\n\t\t * @param {String} domain The domain name or email address.\n\t\t * @param {Function} callback The function that gets called for every\n\t\t * character.\n\t\t * @returns {Array} A new string of characters returned by the callback\n\t\t * function.\n\t\t */\n\t\tfunction mapDomain(string, fn) {\n\t\t\tvar parts = string.split('@');\n\t\t\tvar result = '';\n\t\t\tif (parts.length > 1) {\n\t\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\t\tresult = parts[0] + '@';\n\t\t\t\tstring = parts[1];\n\t\t\t}\n\t\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\t\tvar labels = string.split('.');\n\t\t\tvar encoded = map(labels, fn).join('.');\n\t\t\treturn result + encoded;\n\t\t}\n\n\t\t/**\n\t\t * Creates an array containing the numeric code points of each Unicode\n\t\t * character in the string. While JavaScript uses UCS-2 internally,\n\t\t * this function will convert a pair of surrogate halves (each of which\n\t\t * UCS-2 exposes as separate characters) into a single code point,\n\t\t * matching UTF-16.\n\t\t * @see `punycode.ucs2.encode`\n\t\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t\t * @memberOf punycode.ucs2\n\t\t * @name decode\n\t\t * @param {String} string The Unicode input string (UCS-2).\n\t\t * @returns {Array} The new array of code points.\n\t\t */\n\t\tfunction ucs2decode(string) {\n\t\t\tvar output = [],\n\t\t\t counter = 0,\n\t\t\t length = string.length,\n\t\t\t value,\n\t\t\t extra;\n\t\t\twhile (counter < length) {\n\t\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\t\toutput.push(value);\n\t\t\t\t\t\tcounter--;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\toutput.push(value);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn output;\n\t\t}\n\n\t\t/**\n\t\t * Creates a string based on an array of numeric code points.\n\t\t * @see `punycode.ucs2.decode`\n\t\t * @memberOf punycode.ucs2\n\t\t * @name encode\n\t\t * @param {Array} codePoints The array of numeric code points.\n\t\t * @returns {String} The new Unicode string (UCS-2).\n\t\t */\n\t\tfunction ucs2encode(array) {\n\t\t\treturn map(array, function(value) {\n\t\t\t\tvar output = '';\n\t\t\t\tif (value > 0xFFFF) {\n\t\t\t\t\tvalue -= 0x10000;\n\t\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t\t}\n\t\t\t\toutput += stringFromCharCode(value);\n\t\t\t\treturn output;\n\t\t\t}).join('');\n\t\t}\n\n\t\t/**\n\t\t * Converts a basic code point into a digit/integer.\n\t\t * @see `digitToBasic()`\n\t\t * @private\n\t\t * @param {Number} codePoint The basic numeric code point value.\n\t\t * @returns {Number} The numeric value of a basic code point (for use in\n\t\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t\t * the code point does not represent a value.\n\t\t */\n\t\tfunction basicToDigit(codePoint) {\n\t\t\tif (codePoint - 48 < 10) {\n\t\t\t\treturn codePoint - 22;\n\t\t\t}\n\t\t\tif (codePoint - 65 < 26) {\n\t\t\t\treturn codePoint - 65;\n\t\t\t}\n\t\t\tif (codePoint - 97 < 26) {\n\t\t\t\treturn codePoint - 97;\n\t\t\t}\n\t\t\treturn base;\n\t\t}\n\n\t\t/**\n\t\t * Converts a digit/integer into a basic code point.\n\t\t * @see `basicToDigit()`\n\t\t * @private\n\t\t * @param {Number} digit The numeric value of a basic code point.\n\t\t * @returns {Number} The basic code point whose value (when used for\n\t\t * representing integers) is `digit`, which needs to be in the range\n\t\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t\t * used; else, the lowercase form is used. The behavior is undefined\n\t\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t\t */\n\t\tfunction digitToBasic(digit, flag) {\n\t\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t\t// 26..35 map to ASCII 0..9\n\t\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t\t}\n\n\t\t/**\n\t\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t\t * http://tools.ietf.org/html/rfc3492#section-3.4\n\t\t * @private\n\t\t */\n\t\tfunction adapt(delta, numPoints, firstTime) {\n\t\t\tvar k = 0;\n\t\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\t\tdelta += floor(delta / numPoints);\n\t\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t\t}\n\t\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t\t}\n\n\t\t/**\n\t\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t\t * symbols.\n\t\t * @memberOf punycode\n\t\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t\t * @returns {String} The resulting string of Unicode symbols.\n\t\t */\n\t\tfunction decode(input) {\n\t\t\t// Don't use UCS-2\n\t\t\tvar output = [],\n\t\t\t inputLength = input.length,\n\t\t\t out,\n\t\t\t i = 0,\n\t\t\t n = initialN,\n\t\t\t bias = initialBias,\n\t\t\t basic,\n\t\t\t j,\n\t\t\t index,\n\t\t\t oldi,\n\t\t\t w,\n\t\t\t k,\n\t\t\t digit,\n\t\t\t t,\n\t\t\t /** Cached calculation results */\n\t\t\t baseMinusT;\n\n\t\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t\t// the first basic code points to the output.\n\n\t\t\tbasic = input.lastIndexOf(delimiter);\n\t\t\tif (basic < 0) {\n\t\t\t\tbasic = 0;\n\t\t\t}\n\n\t\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t\t// if it's not a basic code point\n\t\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\t\terror('not-basic');\n\t\t\t\t}\n\t\t\t\toutput.push(input.charCodeAt(j));\n\t\t\t}\n\n\t\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t\t// points were copied; start at the beginning otherwise.\n\n\t\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t\t// value at the end to obtain `delta`.\n\t\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\t\terror('invalid-input');\n\t\t\t\t\t}\n\n\t\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\t\terror('overflow');\n\t\t\t\t\t}\n\n\t\t\t\t\ti += digit * w;\n\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\t\tif (digit < t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\t\terror('overflow');\n\t\t\t\t\t}\n\n\t\t\t\t\tw *= baseMinusT;\n\n\t\t\t\t}\n\n\t\t\t\tout = output.length + 1;\n\t\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tn += floor(i / out);\n\t\t\t\ti %= out;\n\n\t\t\t\t// Insert `n` at position `i` of the output\n\t\t\t\toutput.splice(i++, 0, n);\n\n\t\t\t}\n\n\t\t\treturn ucs2encode(output);\n\t\t}\n\n\t\t/**\n\t\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t\t * Punycode string of ASCII-only symbols.\n\t\t * @memberOf punycode\n\t\t * @param {String} input The string of Unicode symbols.\n\t\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t\t */\n\t\tfunction encode(input) {\n\t\t\tvar n,\n\t\t\t delta,\n\t\t\t handledCPCount,\n\t\t\t basicLength,\n\t\t\t bias,\n\t\t\t j,\n\t\t\t m,\n\t\t\t q,\n\t\t\t k,\n\t\t\t t,\n\t\t\t currentValue,\n\t\t\t output = [],\n\t\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t\t inputLength,\n\t\t\t /** Cached calculation results */\n\t\t\t handledCPCountPlusOne,\n\t\t\t baseMinusT,\n\t\t\t qMinusT;\n\n\t\t\t// Convert the input in UCS-2 to Unicode\n\t\t\tinput = ucs2decode(input);\n\n\t\t\t// Cache the length\n\t\t\tinputLength = input.length;\n\n\t\t\t// Initialize the state\n\t\t\tn = initialN;\n\t\t\tdelta = 0;\n\t\t\tbias = initialBias;\n\n\t\t\t// Handle the basic code points\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue < 0x80) {\n\t\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\thandledCPCount = basicLength = output.length;\n\n\t\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t\t// `basicLength` is the number of basic code points.\n\n\t\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\t\tif (basicLength) {\n\t\t\t\toutput.push(delimiter);\n\t\t\t}\n\n\t\t\t// Main encoding loop:\n\t\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t\t// larger one:\n\t\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\t\tcurrentValue = input[j];\n\t\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\t\tm = currentValue;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t\t\t// but guard against overflow\n\t\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\t\tn = m;\n\n\t\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\t\terror('overflow');\n\t\t\t\t\t}\n\n\t\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\t\tdelta = 0;\n\t\t\t\t\t\t++handledCPCount;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t++delta;\n\t\t\t\t++n;\n\n\t\t\t}\n\t\t\treturn output.join('');\n\t\t}\n\n\t\t/**\n\t\t * Converts a Punycode string representing a domain name or an email address\n\t\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t\t * it doesn't matter if you call it on a string that has already been\n\t\t * converted to Unicode.\n\t\t * @memberOf punycode\n\t\t * @param {String} input The Punycoded domain name or email address to\n\t\t * convert to Unicode.\n\t\t * @returns {String} The Unicode representation of the given Punycode\n\t\t * string.\n\t\t */\n\t\tfunction toUnicode(input) {\n\t\t\treturn mapDomain(input, function(string) {\n\t\t\t\treturn regexPunycode.test(string)\n\t\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t\t: string;\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Converts a Unicode string representing a domain name or an email address to\n\t\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t\t * ASCII.\n\t\t * @memberOf punycode\n\t\t * @param {String} input The domain name or email address to convert, as a\n\t\t * Unicode string.\n\t\t * @returns {String} The Punycode representation of the given domain name or\n\t\t * email address.\n\t\t */\n\t\tfunction toASCII(input) {\n\t\t\treturn mapDomain(input, function(string) {\n\t\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t\t: string;\n\t\t\t});\n\t\t}\n\n\t\t/*--------------------------------------------------------------------------*/\n\n\t\t/** Define the public API */\n\t\tpunycode = {\n\t\t\t/**\n\t\t\t * A string representing the current Punycode.js version number.\n\t\t\t * @memberOf punycode\n\t\t\t * @type String\n\t\t\t */\n\t\t\t'version': '1.3.2',\n\t\t\t/**\n\t\t\t * An object of methods to convert from JavaScript's internal character\n\t\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t\t\t * @memberOf punycode\n\t\t\t * @type Object\n\t\t\t */\n\t\t\t'ucs2': {\n\t\t\t\t'decode': ucs2decode,\n\t\t\t\t'encode': ucs2encode\n\t\t\t},\n\t\t\t'decode': decode,\n\t\t\t'encode': encode,\n\t\t\t'toASCII': toASCII,\n\t\t\t'toUnicode': toUnicode\n\t\t};\n\n\t\t/** Expose `punycode` */\n\t\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t\t// like the following:\n\t\tif (\n\t\t\ttrue\n\t\t) {\n\t\t\t!(__WEBPACK_AMD_DEFINE_RESULT__ = function() {\n\t\t\t\treturn punycode;\n\t\t\t}.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t\t} else if (freeExports && freeModule) {\n\t\t\tif (module.exports == freeExports) { // in Node.js or RingoJS v0.8.0+\n\t\t\t\tfreeModule.exports = punycode;\n\t\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\t\tfor (key in punycode) {\n\t\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t\t}\n\t\t\t}\n\t\t} else { // in Rhino or a web browser\n\t\t\troot.punycode = punycode;\n\t\t}\n\n\t}(this));\n\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6)(module), (function() { return this; }())))\n\n/***/ },\n/* 6 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(module) {\n\t\tif(!module.webpackPolyfill) {\n\t\t\tmodule.deprecate = function() {};\n\t\t\tmodule.paths = [];\n\t\t\t// module.parent = undefined by default\n\t\t\tmodule.children = [];\n\t\t\tmodule.webpackPolyfill = 1;\n\t\t}\n\t\treturn module;\n\t}\n\n\n/***/ },\n/* 7 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\texports.decode = exports.parse = __webpack_require__(8);\n\texports.encode = exports.stringify = __webpack_require__(9);\n\n\n/***/ },\n/* 8 */\n/***/ function(module, exports) {\n\n\t// Copyright Joyent, Inc. and other Node contributors.\n\t//\n\t// Permission is hereby granted, free of charge, to any person obtaining a\n\t// copy of this software and associated documentation files (the\n\t// \"Software\"), to deal in the Software without restriction, including\n\t// without limitation the rights to use, copy, modify, merge, publish,\n\t// distribute, sublicense, and/or sell copies of the Software, and to permit\n\t// persons to whom the Software is furnished to do so, subject to the\n\t// following conditions:\n\t//\n\t// The above copyright notice and this permission notice shall be included\n\t// in all copies or substantial portions of the Software.\n\t//\n\t// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n\t// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n\t// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n\t// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n\t// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n\t// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n\t// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\t'use strict';\n\n\t// If obj.hasOwnProperty has been overridden, then calling\n\t// obj.hasOwnProperty(prop) will break.\n\t// See: https://github.com/joyent/node/issues/1707\n\tfunction hasOwnProperty(obj, prop) {\n\t return Object.prototype.hasOwnProperty.call(obj, prop);\n\t}\n\n\tmodule.exports = function(qs, sep, eq, options) {\n\t sep = sep || '&';\n\t eq = eq || '=';\n\t var obj = {};\n\n\t if (typeof qs !== 'string' || qs.length === 0) {\n\t return obj;\n\t }\n\n\t var regexp = /\\+/g;\n\t qs = qs.split(sep);\n\n\t var maxKeys = 1000;\n\t if (options && typeof options.maxKeys === 'number') {\n\t maxKeys = options.maxKeys;\n\t }\n\n\t var len = qs.length;\n\t // maxKeys <= 0 means that we should not limit keys count\n\t if (maxKeys > 0 && len > maxKeys) {\n\t len = maxKeys;\n\t }\n\n\t for (var i = 0; i < len; ++i) {\n\t var x = qs[i].replace(regexp, '%20'),\n\t idx = x.indexOf(eq),\n\t kstr, vstr, k, v;\n\n\t if (idx >= 0) {\n\t kstr = x.substr(0, idx);\n\t vstr = x.substr(idx + 1);\n\t } else {\n\t kstr = x;\n\t vstr = '';\n\t }\n\n\t k = decodeURIComponent(kstr);\n\t v = decodeURIComponent(vstr);\n\n\t if (!hasOwnProperty(obj, k)) {\n\t obj[k] = v;\n\t } else if (Array.isArray(obj[k])) {\n\t obj[k].push(v);\n\t } else {\n\t obj[k] = [obj[k], v];\n\t }\n\t }\n\n\t return obj;\n\t};\n\n\n/***/ },\n/* 9 */\n/***/ function(module, exports) {\n\n\t// Copyright Joyent, Inc. and other Node contributors.\n\t//\n\t// Permission is hereby granted, free of charge, to any person obtaining a\n\t// copy of this software and associated documentation files (the\n\t// \"Software\"), to deal in the Software without restriction, including\n\t// without limitation the rights to use, copy, modify, merge, publish,\n\t// distribute, sublicense, and/or sell copies of the Software, and to permit\n\t// persons to whom the Software is furnished to do so, subject to the\n\t// following conditions:\n\t//\n\t// The above copyright notice and this permission notice shall be included\n\t// in all copies or substantial portions of the Software.\n\t//\n\t// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n\t// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n\t// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n\t// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n\t// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n\t// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n\t// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\t'use strict';\n\n\tvar stringifyPrimitive = function(v) {\n\t switch (typeof v) {\n\t case 'string':\n\t return v;\n\n\t case 'boolean':\n\t return v ? 'true' : 'false';\n\n\t case 'number':\n\t return isFinite(v) ? v : '';\n\n\t default:\n\t return '';\n\t }\n\t};\n\n\tmodule.exports = function(obj, sep, eq, name) {\n\t sep = sep || '&';\n\t eq = eq || '=';\n\t if (obj === null) {\n\t obj = undefined;\n\t }\n\n\t if (typeof obj === 'object') {\n\t return Object.keys(obj).map(function(k) {\n\t var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n\t if (Array.isArray(obj[k])) {\n\t return obj[k].map(function(v) {\n\t return ks + encodeURIComponent(stringifyPrimitive(v));\n\t }).join(sep);\n\t } else {\n\t return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n\t }\n\t }).join(sep);\n\n\t }\n\n\t if (!name) return '';\n\t return encodeURIComponent(stringifyPrimitive(name)) + eq +\n\t encodeURIComponent(stringifyPrimitive(obj));\n\t};\n\n\n/***/ },\n/* 10 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\n\tmodule.exports = function equal(a, b) {\n\t if (a === b) return true;\n\n\t var arrA = Array.isArray(a)\n\t , arrB = Array.isArray(b)\n\t , i;\n\n\t if (arrA && arrB) {\n\t if (a.length != b.length) return false;\n\t for (i = 0; i < a.length; i++)\n\t if (!equal(a[i], b[i])) return false;\n\t return true;\n\t }\n\n\t if (arrA != arrB) return false;\n\n\t if (a && b && typeof a === 'object' && typeof b === 'object') {\n\t var keys = Object.keys(a);\n\t if (keys.length !== Object.keys(b).length) return false;\n\n\t var dateA = a instanceof Date\n\t , dateB = b instanceof Date;\n\t if (dateA && dateB) return a.getTime() == b.getTime();\n\t if (dateA != dateB) return false;\n\n\t var regexpA = a instanceof RegExp\n\t , regexpB = b instanceof RegExp;\n\t if (regexpA && regexpB) return a.toString() == b.toString();\n\t if (regexpA != regexpB) return false;\n\n\t for (i = 0; i < keys.length; i++)\n\t if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n\t for (i = 0; i < keys.length; i++)\n\t if(!equal(a[keys[i]], b[keys[i]])) return false;\n\n\t return true;\n\t }\n\n\t return false;\n\t};\n\n\n/***/ },\n/* 11 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\n\tmodule.exports = {\n\t copy: copy,\n\t checkDataType: checkDataType,\n\t checkDataTypes: checkDataTypes,\n\t coerceToTypes: coerceToTypes,\n\t toHash: toHash,\n\t getProperty: getProperty,\n\t escapeQuotes: escapeQuotes,\n\t equal: __webpack_require__(10),\n\t ucs2length: __webpack_require__(12),\n\t varOccurences: varOccurences,\n\t varReplace: varReplace,\n\t cleanUpCode: cleanUpCode,\n\t finalCleanUpCode: finalCleanUpCode,\n\t schemaHasRules: schemaHasRules,\n\t schemaHasRulesExcept: schemaHasRulesExcept,\n\t toQuotedString: toQuotedString,\n\t getPathExpr: getPathExpr,\n\t getPath: getPath,\n\t getData: getData,\n\t unescapeFragment: unescapeFragment,\n\t escapeFragment: escapeFragment,\n\t escapeJsonPointer: escapeJsonPointer\n\t};\n\n\n\tfunction copy(o, to) {\n\t to = to || {};\n\t for (var key in o) to[key] = o[key];\n\t return to;\n\t}\n\n\n\tfunction checkDataType(dataType, data, negate) {\n\t var EQUAL = negate ? ' !== ' : ' === '\n\t , AND = negate ? ' || ' : ' && '\n\t , OK = negate ? '!' : ''\n\t , NOT = negate ? '' : '!';\n\t switch (dataType) {\n\t case 'null': return data + EQUAL + 'null';\n\t case 'array': return OK + 'Array.isArray(' + data + ')';\n\t case 'object': return '(' + OK + data + AND +\n\t 'typeof ' + data + EQUAL + '\"object\"' + AND +\n\t NOT + 'Array.isArray(' + data + '))';\n\t case 'integer': return '(typeof ' + data + EQUAL + '\"number\"' + AND +\n\t NOT + '(' + data + ' % 1)' +\n\t AND + data + EQUAL + data + ')';\n\t default: return 'typeof ' + data + EQUAL + '\"' + dataType + '\"';\n\t }\n\t}\n\n\n\tfunction checkDataTypes(dataTypes, data) {\n\t switch (dataTypes.length) {\n\t case 1: return checkDataType(dataTypes[0], data, true);\n\t default:\n\t var code = '';\n\t var types = toHash(dataTypes);\n\t if (types.array && types.object) {\n\t code = types.null ? '(': '(!' + data + ' || ';\n\t code += 'typeof ' + data + ' !== \"object\")';\n\t delete types.null;\n\t delete types.array;\n\t delete types.object;\n\t }\n\t if (types.number) delete types.integer;\n\t for (var t in types)\n\t code += (code ? ' && ' : '' ) + checkDataType(t, data, true);\n\n\t return code;\n\t }\n\t}\n\n\n\tvar COERCE_TO_TYPES = toHash([ 'string', 'number', 'integer', 'boolean', 'null' ]);\n\tfunction coerceToTypes(optionCoerceTypes, dataTypes) {\n\t if (Array.isArray(dataTypes)) {\n\t var types = [];\n\t for (var i=0; i<dataTypes.length; i++) {\n\t var t = dataTypes[i];\n\t if (COERCE_TO_TYPES[t]) types[types.length] = t;\n\t else if (optionCoerceTypes === 'array' && t === 'array') types[types.length] = t;\n\t }\n\t if (types.length) return types;\n\t } else if (COERCE_TO_TYPES[dataTypes]) {\n\t return [dataTypes];\n\t } else if (optionCoerceTypes === 'array' && dataTypes === 'array') {\n\t return ['array'];\n\t }\n\t}\n\n\n\tfunction toHash(arr) {\n\t var hash = {};\n\t for (var i=0; i<arr.length; i++) hash[arr[i]] = true;\n\t return hash;\n\t}\n\n\n\tvar IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;\n\tvar SINGLE_QUOTE = /'|\\\\/g;\n\tfunction getProperty(key) {\n\t return typeof key == 'number'\n\t ? '[' + key + ']'\n\t : IDENTIFIER.test(key)\n\t ? '.' + key\n\t : \"['\" + escapeQuotes(key) + \"']\";\n\t}\n\n\n\tfunction escapeQuotes(str) {\n\t return str.replace(SINGLE_QUOTE, '\\\\$&')\n\t .replace(/\\n/g, '\\\\n')\n\t .replace(/\\r/g, '\\\\r')\n\t .replace(/\\f/g, '\\\\f')\n\t .replace(/\\t/g, '\\\\t');\n\t}\n\n\n\tfunction varOccurences(str, dataVar) {\n\t dataVar += '[^0-9]';\n\t var matches = str.match(new RegExp(dataVar, 'g'));\n\t return matches ? matches.length : 0;\n\t}\n\n\n\tfunction varReplace(str, dataVar, expr) {\n\t dataVar += '([^0-9])';\n\t expr = expr.replace(/\\$/g, '$$$$');\n\t return str.replace(new RegExp(dataVar, 'g'), expr + '$1');\n\t}\n\n\n\tvar EMPTY_ELSE = /else\\s*{\\s*}/g\n\t , EMPTY_IF_NO_ELSE = /if\\s*\\([^)]+\\)\\s*\\{\\s*\\}(?!\\s*else)/g\n\t , EMPTY_IF_WITH_ELSE = /if\\s*\\(([^)]+)\\)\\s*\\{\\s*\\}\\s*else(?!\\s*if)/g;\n\tfunction cleanUpCode(out) {\n\t return out.replace(EMPTY_ELSE, '')\n\t .replace(EMPTY_IF_NO_ELSE, '')\n\t .replace(EMPTY_IF_WITH_ELSE, 'if (!($1))');\n\t}\n\n\n\tvar ERRORS_REGEXP = /[^v\\.]errors/g\n\t , REMOVE_ERRORS = /var errors = 0;|var vErrors = null;|validate.errors = vErrors;/g\n\t , REMOVE_ERRORS_ASYNC = /var errors = 0;|var vErrors = null;/g\n\t , RETURN_VALID = 'return errors === 0;'\n\t , RETURN_TRUE = 'validate.errors = null; return true;'\n\t , RETURN_ASYNC = /if \\(errors === 0\\) return data;\\s*else throw new ValidationError\\(vErrors\\);/\n\t , RETURN_DATA_ASYNC = 'return data;'\n\t , ROOTDATA_REGEXP = /[^A-Za-z_$]rootData[^A-Za-z0-9_$]/g\n\t , REMOVE_ROOTDATA = /if \\(rootData === undefined\\) rootData = data;/;\n\n\tfunction finalCleanUpCode(out, async) {\n\t var matches = out.match(ERRORS_REGEXP);\n\t if (matches && matches.length == 2) {\n\t out = async\n\t ? out.replace(REMOVE_ERRORS_ASYNC, '')\n\t .replace(RETURN_ASYNC, RETURN_DATA_ASYNC)\n\t : out.replace(REMOVE_ERRORS, '')\n\t .replace(RETURN_VALID, RETURN_TRUE);\n\t }\n\n\t matches = out.match(ROOTDATA_REGEXP);\n\t if (!matches || matches.length !== 3) return out;\n\t return out.replace(REMOVE_ROOTDATA, '');\n\t}\n\n\n\tfunction schemaHasRules(schema, rules) {\n\t if (typeof schema == 'boolean') return !schema;\n\t for (var key in schema) if (rules[key]) return true;\n\t}\n\n\n\tfunction schemaHasRulesExcept(schema, rules, exceptKeyword) {\n\t if (typeof schema == 'boolean') return !schema && exceptKeyword != 'not';\n\t for (var key in schema) if (key != exceptKeyword && rules[key]) return true;\n\t}\n\n\n\tfunction toQuotedString(str) {\n\t return '\\'' + escapeQuotes(str) + '\\'';\n\t}\n\n\n\tfunction getPathExpr(currentPath, expr, jsonPointers, isNumber) {\n\t var path = jsonPointers // false by default\n\t ? '\\'/\\' + ' + expr + (isNumber ? '' : '.replace(/~/g, \\'~0\\').replace(/\\\\//g, \\'~1\\')')\n\t : (isNumber ? '\\'[\\' + ' + expr + ' + \\']\\'' : '\\'[\\\\\\'\\' + ' + expr + ' + \\'\\\\\\']\\'');\n\t return joinPaths(currentPath, path);\n\t}\n\n\n\tfunction getPath(currentPath, prop, jsonPointers) {\n\t var path = jsonPointers // false by default\n\t ? toQuotedString('/' + escapeJsonPointer(prop))\n\t : toQuotedString(getProperty(prop));\n\t return joinPaths(currentPath, path);\n\t}\n\n\n\tvar JSON_POINTER = /^\\/(?:[^~]|~0|~1)*$/;\n\tvar RELATIVE_JSON_POINTER = /^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/;\n\tfunction getData($data, lvl, paths) {\n\t var up, jsonPointer, data, matches;\n\t if ($data === '') return 'rootData';\n\t if ($data[0] == '/') {\n\t if (!JSON_POINTER.test($data)) throw new Error('Invalid JSON-pointer: ' + $data);\n\t jsonPointer = $data;\n\t data = 'rootData';\n\t } else {\n\t matches = $data.match(RELATIVE_JSON_POINTER);\n\t if (!matches) throw new Error('Invalid JSON-pointer: ' + $data);\n\t up = +matches[1];\n\t jsonPointer = matches[2];\n\t if (jsonPointer == '#') {\n\t if (up >= lvl) throw new Error('Cannot access property/index ' + up + ' levels up, current level is ' + lvl);\n\t return paths[lvl - up];\n\t }\n\n\t if (up > lvl) throw new Error('Cannot access data ' + up + ' levels up, current level is ' + lvl);\n\t data = 'data' + ((lvl - up) || '');\n\t if (!jsonPointer) return data;\n\t }\n\n\t var expr = data;\n\t var segments = jsonPointer.split('/');\n\t for (var i=0; i<segments.length; i++) {\n\t var segment = segments[i];\n\t if (segment) {\n\t data += getProperty(unescapeJsonPointer(segment));\n\t expr += ' && ' + data;\n\t }\n\t }\n\t return expr;\n\t}\n\n\n\tfunction joinPaths (a, b) {\n\t if (a == '\"\"') return b;\n\t return (a + ' + ' + b).replace(/' \\+ '/g, '');\n\t}\n\n\n\tfunction unescapeFragment(str) {\n\t return unescapeJsonPointer(decodeURIComponent(str));\n\t}\n\n\n\tfunction escapeFragment(str) {\n\t return encodeURIComponent(escapeJsonPointer(str));\n\t}\n\n\n\tfunction escapeJsonPointer(str) {\n\t return str.replace(/~/g, '~0').replace(/\\//g, '~1');\n\t}\n\n\n\tfunction unescapeJsonPointer(str) {\n\t return str.replace(/~1/g, '/').replace(/~0/g, '~');\n\t}\n\n\n/***/ },\n/* 12 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\n\t// https://mathiasbynens.be/notes/javascript-encoding\n\t// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\n\tmodule.exports = function ucs2length(str) {\n\t var length = 0\n\t , len = str.length\n\t , pos = 0\n\t , value;\n\t while (pos < len) {\n\t length++;\n\t value = str.charCodeAt(pos++);\n\t if (value >= 0xD800 && value <= 0xDBFF && pos < len) {\n\t // high surrogate, and there is a next character\n\t value = str.charCodeAt(pos);\n\t if ((value & 0xFC00) == 0xDC00) pos++; // low surrogate\n\t }\n\t }\n\t return length;\n\t};\n\n\n/***/ },\n/* 13 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar util = __webpack_require__(11);\n\n\tmodule.exports = SchemaObject;\n\n\tfunction SchemaObject(obj) {\n\t util.copy(obj, this);\n\t}\n\n\n/***/ },\n/* 14 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\n\tvar traverse = module.exports = function (schema, opts, cb) {\n\t if (typeof opts == 'function') {\n\t cb = opts;\n\t opts = {};\n\t }\n\t _traverse(opts, cb, schema, '', schema);\n\t};\n\n\n\ttraverse.keywords = {\n\t additionalItems: true,\n\t items: true,\n\t contains: true,\n\t additionalProperties: true,\n\t propertyNames: true,\n\t not: true\n\t};\n\n\ttraverse.arrayKeywords = {\n\t items: true,\n\t allOf: true,\n\t anyOf: true,\n\t oneOf: true\n\t};\n\n\ttraverse.propsKeywords = {\n\t definitions: true,\n\t properties: true,\n\t patternProperties: true,\n\t dependencies: true\n\t};\n\n\ttraverse.skipKeywords = {\n\t enum: true,\n\t const: true,\n\t required: true,\n\t maximum: true,\n\t minimum: true,\n\t exclusiveMaximum: true,\n\t exclusiveMinimum: true,\n\t multipleOf: true,\n\t maxLength: true,\n\t minLength: true,\n\t pattern: true,\n\t format: true,\n\t maxItems: true,\n\t minItems: true,\n\t uniqueItems: true,\n\t maxProperties: true,\n\t minProperties: true\n\t};\n\n\n\tfunction _traverse(opts, cb, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n\t if (schema && typeof schema == 'object' && !Array.isArray(schema)) {\n\t cb(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n\t for (var key in schema) {\n\t var sch = schema[key];\n\t if (Array.isArray(sch)) {\n\t if (key in traverse.arrayKeywords) {\n\t for (var i=0; i<sch.length; i++)\n\t _traverse(opts, cb, sch[i], jsonPtr + '/' + key + '/' + i, rootSchema, jsonPtr, key, schema, i);\n\t }\n\t } else if (key in traverse.propsKeywords) {\n\t if (sch && typeof sch == 'object') {\n\t for (var prop in sch)\n\t _traverse(opts, cb, sch[prop], jsonPtr + '/' + key + '/' + escapeJsonPtr(prop), rootSchema, jsonPtr, key, schema, prop);\n\t }\n\t } else if (key in traverse.keywords || (opts.allKeys && !(key in traverse.skipKeywords))) {\n\t _traverse(opts, cb, sch, jsonPtr + '/' + key, rootSchema, jsonPtr, key, schema);\n\t }\n\t }\n\t }\n\t}\n\n\n\tfunction escapeJsonPtr(str) {\n\t return str.replace(/~/g, '~0').replace(/\\//g, '~1');\n\t}\n\n\n/***/ },\n/* 15 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar resolve = __webpack_require__(3);\n\n\tmodule.exports = {\n\t Validation: errorSubclass(ValidationError),\n\t MissingRef: errorSubclass(MissingRefError)\n\t};\n\n\n\tfunction ValidationError(errors) {\n\t this.message = 'validation failed';\n\t this.errors = errors;\n\t this.ajv = this.validation = true;\n\t}\n\n\n\tMissingRefError.message = function (baseId, ref) {\n\t return 'can\\'t resolve reference ' + ref + ' from id ' + baseId;\n\t};\n\n\n\tfunction MissingRefError(baseId, ref, message) {\n\t this.message = message || MissingRefError.message(baseId, ref);\n\t this.missingRef = resolve.url(baseId, ref);\n\t this.missingSchema = resolve.normalizeId(resolve.fullPath(this.missingRef));\n\t}\n\n\n\tfunction errorSubclass(Subclass) {\n\t Subclass.prototype = Object.create(Error.prototype);\n\t Subclass.prototype.constructor = Subclass;\n\t return Subclass;\n\t}\n\n\n/***/ },\n/* 16 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar json = typeof JSON !== 'undefined' ? JSON : __webpack_require__(17);\n\n\tmodule.exports = function (obj, opts) {\n\t if (!opts) opts = {};\n\t if (typeof opts === 'function') opts = { cmp: opts };\n\t var space = opts.space || '';\n\t if (typeof space === 'number') space = Array(space+1).join(' ');\n\t var cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false;\n\t var replacer = opts.replacer || function(key, value) { return value; };\n\n\t var cmp = opts.cmp && (function (f) {\n\t return function (node) {\n\t return function (a, b) {\n\t var aobj = { key: a, value: node[a] };\n\t var bobj = { key: b, value: node[b] };\n\t return f(aobj, bobj);\n\t };\n\t };\n\t })(opts.cmp);\n\n\t var seen = [];\n\t return (function stringify (parent, key, node, level) {\n\t var indent = space ? ('\\n' + new Array(level + 1).join(space)) : '';\n\t var colonSeparator = space ? ': ' : ':';\n\n\t if (node && node.toJSON && typeof node.toJSON === 'function') {\n\t node = node.toJSON();\n\t }\n\n\t node = replacer.call(parent, key, node);\n\n\t if (node === undefined) {\n\t return;\n\t }\n\t if (typeof node !== 'object' || node === null) {\n\t return json.stringify(node);\n\t }\n\t if (isArray(node)) {\n\t var out = [];\n\t for (var i = 0; i < node.length; i++) {\n\t var item = stringify(node, i, node[i], level+1) || json.stringify(null);\n\t out.push(indent + space + item);\n\t }\n\t return '[' + out.join(',') + indent + ']';\n\t }\n\t else {\n\t if (seen.indexOf(node) !== -1) {\n\t if (cycles) return json.stringify('__cycle__');\n\t throw new TypeError('Converting circular structure to JSON');\n\t }\n\t else seen.push(node);\n\n\t var keys = objectKeys(node).sort(cmp && cmp(node));\n\t var out = [];\n\t for (var i = 0; i < keys.length; i++) {\n\t var key = keys[i];\n\t var value = stringify(node, key, node[key], level+1);\n\n\t if(!value) continue;\n\n\t var keyValue = json.stringify(key)\n\t + colonSeparator\n\t + value;\n\t ;\n\t out.push(indent + space + keyValue);\n\t }\n\t seen.splice(seen.indexOf(node), 1);\n\t return '{' + out.join(',') + indent + '}';\n\t }\n\t })({ '': obj }, '', obj, 0);\n\t};\n\n\tvar isArray = Array.isArray || function (x) {\n\t return {}.toString.call(x) === '[object Array]';\n\t};\n\n\tvar objectKeys = Object.keys || function (obj) {\n\t var has = Object.prototype.hasOwnProperty || function () { return true };\n\t var keys = [];\n\t for (var key in obj) {\n\t if (has.call(obj, key)) keys.push(key);\n\t }\n\t return keys;\n\t};\n\n\n/***/ },\n/* 17 */\n/***/ function(module, exports, __webpack_require__) {\n\n\texports.parse = __webpack_require__(18);\n\texports.stringify = __webpack_require__(19);\n\n\n/***/ },\n/* 18 */\n/***/ function(module, exports) {\n\n\tvar at, // The index of the current character\n\t ch, // The current character\n\t escapee = {\n\t '\"': '\"',\n\t '\\\\': '\\\\',\n\t '/': '/',\n\t b: '\\b',\n\t f: '\\f',\n\t n: '\\n',\n\t r: '\\r',\n\t t: '\\t'\n\t },\n\t text,\n\n\t error = function (m) {\n\t // Call error when something is wrong.\n\t throw {\n\t name: 'SyntaxError',\n\t message: m,\n\t at: at,\n\t text: text\n\t };\n\t },\n\t \n\t next = function (c) {\n\t // If a c parameter is provided, verify that it matches the current character.\n\t if (c && c !== ch) {\n\t error(\"Expected '\" + c + \"' instead of '\" + ch + \"'\");\n\t }\n\t \n\t // Get the next character. When there are no more characters,\n\t // return the empty string.\n\t \n\t ch = text.charAt(at);\n\t at += 1;\n\t return ch;\n\t },\n\t \n\t number = function () {\n\t // Parse a number value.\n\t var number,\n\t string = '';\n\t \n\t if (ch === '-') {\n\t string = '-';\n\t next('-');\n\t }\n\t while (ch >= '0' && ch <= '9') {\n\t string += ch;\n\t next();\n\t }\n\t if (ch === '.') {\n\t string += '.';\n\t while (next() && ch >= '0' && ch <= '9') {\n\t string += ch;\n\t }\n\t }\n\t if (ch === 'e' || ch === 'E') {\n\t string += ch;\n\t next();\n\t if (ch === '-' || ch === '+') {\n\t string += ch;\n\t next();\n\t }\n\t while (ch >= '0' && ch <= '9') {\n\t string += ch;\n\t next();\n\t }\n\t }\n\t number = +string;\n\t if (!isFinite(number)) {\n\t error(\"Bad number\");\n\t } else {\n\t return number;\n\t }\n\t },\n\t \n\t string = function () {\n\t // Parse a string value.\n\t var hex,\n\t i,\n\t string = '',\n\t uffff;\n\t \n\t // When parsing for string values, we must look for \" and \\ characters.\n\t if (ch === '\"') {\n\t while (next()) {\n\t if (ch === '\"') {\n\t next();\n\t return string;\n\t } else if (ch === '\\\\') {\n\t next();\n\t if (ch === 'u') {\n\t uffff = 0;\n\t for (i = 0; i < 4; i += 1) {\n\t hex = parseInt(next(), 16);\n\t if (!isFinite(hex)) {\n\t break;\n\t }\n\t uffff = uffff * 16 + hex;\n\t }\n\t string += String.fromCharCode(uffff);\n\t } else if (typeof escapee[ch] === 'string') {\n\t string += escapee[ch];\n\t } else {\n\t break;\n\t }\n\t } else {\n\t string += ch;\n\t }\n\t }\n\t }\n\t error(\"Bad string\");\n\t },\n\n\t white = function () {\n\n\t// Skip whitespace.\n\n\t while (ch && ch <= ' ') {\n\t next();\n\t }\n\t },\n\n\t word = function () {\n\n\t// true, false, or null.\n\n\t switch (ch) {\n\t case 't':\n\t next('t');\n\t next('r');\n\t next('u');\n\t next('e');\n\t return true;\n\t case 'f':\n\t next('f');\n\t next('a');\n\t next('l');\n\t next('s');\n\t next('e');\n\t return false;\n\t case 'n':\n\t next('n');\n\t next('u');\n\t next('l');\n\t next('l');\n\t return null;\n\t }\n\t error(\"Unexpected '\" + ch + \"'\");\n\t },\n\n\t value, // Place holder for the value function.\n\n\t array = function () {\n\n\t// Parse an array value.\n\n\t var array = [];\n\n\t if (ch === '[') {\n\t next('[');\n\t white();\n\t if (ch === ']') {\n\t next(']');\n\t return array; // empty array\n\t }\n\t while (ch) {\n\t array.push(value());\n\t white();\n\t if (ch === ']') {\n\t next(']');\n\t return array;\n\t }\n\t next(',');\n\t white();\n\t }\n\t }\n\t error(\"Bad array\");\n\t },\n\n\t object = function () {\n\n\t// Parse an object value.\n\n\t var key,\n\t object = {};\n\n\t if (ch === '{') {\n\t next('{');\n\t white();\n\t if (ch === '}') {\n\t next('}');\n\t return object; // empty object\n\t }\n\t while (ch) {\n\t key = string();\n\t white();\n\t next(':');\n\t if (Object.hasOwnProperty.call(object, key)) {\n\t error('Duplicate key \"' + key + '\"');\n\t }\n\t object[key] = value();\n\t white();\n\t if (ch === '}') {\n\t next('}');\n\t return object;\n\t }\n\t next(',');\n\t white();\n\t }\n\t }\n\t error(\"Bad object\");\n\t };\n\n\tvalue = function () {\n\n\t// Parse a JSON value. It could be an object, an array, a string, a number,\n\t// or a word.\n\n\t white();\n\t switch (ch) {\n\t case '{':\n\t return object();\n\t case '[':\n\t return array();\n\t case '\"':\n\t return string();\n\t case '-':\n\t return number();\n\t default:\n\t return ch >= '0' && ch <= '9' ? number() : word();\n\t }\n\t};\n\n\t// Return the json_parse function. It will have access to all of the above\n\t// functions and variables.\n\n\tmodule.exports = function (source, reviver) {\n\t var result;\n\t \n\t text = source;\n\t at = 0;\n\t ch = ' ';\n\t result = value();\n\t white();\n\t if (ch) {\n\t error(\"Syntax error\");\n\t }\n\n\t // If there is a reviver function, we recursively walk the new structure,\n\t // passing each name/value pair to the reviver function for possible\n\t // transformation, starting with a temporary root object that holds the result\n\t // in an empty key. If there is not a reviver function, we simply return the\n\t // result.\n\n\t return typeof reviver === 'function' ? (function walk(holder, key) {\n\t var k, v, value = holder[key];\n\t if (value && typeof value === 'object') {\n\t for (k in value) {\n\t if (Object.prototype.hasOwnProperty.call(value, k)) {\n\t v = walk(value, k);\n\t if (v !== undefined) {\n\t value[k] = v;\n\t } else {\n\t delete value[k];\n\t }\n\t }\n\t }\n\t }\n\t return reviver.call(holder, key, value);\n\t }({'': result}, '')) : result;\n\t};\n\n\n/***/ },\n/* 19 */\n/***/ function(module, exports) {\n\n\tvar cx = /[\\u0000\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,\n\t escapable = /[\\\\\\\"\\x00-\\x1f\\x7f-\\x9f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,\n\t gap,\n\t indent,\n\t meta = { // table of character substitutions\n\t '\\b': '\\\\b',\n\t '\\t': '\\\\t',\n\t '\\n': '\\\\n',\n\t '\\f': '\\\\f',\n\t '\\r': '\\\\r',\n\t '\"' : '\\\\\"',\n\t '\\\\': '\\\\\\\\'\n\t },\n\t rep;\n\n\tfunction quote(string) {\n\t // If the string contains no control characters, no quote characters, and no\n\t // backslash characters, then we can safely slap some quotes around it.\n\t // Otherwise we must also replace the offending characters with safe escape\n\t // sequences.\n\t \n\t escapable.lastIndex = 0;\n\t return escapable.test(string) ? '\"' + string.replace(escapable, function (a) {\n\t var c = meta[a];\n\t return typeof c === 'string' ? c :\n\t '\\\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);\n\t }) + '\"' : '\"' + string + '\"';\n\t}\n\n\tfunction str(key, holder) {\n\t // Produce a string from holder[key].\n\t var i, // The loop counter.\n\t k, // The member key.\n\t v, // The member value.\n\t length,\n\t mind = gap,\n\t partial,\n\t value = holder[key];\n\t \n\t // If the value has a toJSON method, call it to obtain a replacement value.\n\t if (value && typeof value === 'object' &&\n\t typeof value.toJSON === 'function') {\n\t value = value.toJSON(key);\n\t }\n\t \n\t // If we were called with a replacer function, then call the replacer to\n\t // obtain a replacement value.\n\t if (typeof rep === 'function') {\n\t value = rep.call(holder, key, value);\n\t }\n\t \n\t // What happens next depends on the value's type.\n\t switch (typeof value) {\n\t case 'string':\n\t return quote(value);\n\t \n\t case 'number':\n\t // JSON numbers must be finite. Encode non-finite numbers as null.\n\t return isFinite(value) ? String(value) : 'null';\n\t \n\t case 'boolean':\n\t case 'null':\n\t // If the value is a boolean or null, convert it to a string. Note:\n\t // typeof null does not produce 'null'. The case is included here in\n\t // the remote chance that this gets fixed someday.\n\t return String(value);\n\t \n\t case 'object':\n\t if (!value) return 'null';\n\t gap += indent;\n\t partial = [];\n\t \n\t // Array.isArray\n\t if (Object.prototype.toString.apply(value) === '[object Array]') {\n\t length = value.length;\n\t for (i = 0; i < length; i += 1) {\n\t partial[i] = str(i, value) || 'null';\n\t }\n\t \n\t // Join all of the elements together, separated with commas, and\n\t // wrap them in brackets.\n\t v = partial.length === 0 ? '[]' : gap ?\n\t '[\\n' + gap + partial.join(',\\n' + gap) + '\\n' + mind + ']' :\n\t '[' + partial.join(',') + ']';\n\t gap = mind;\n\t return v;\n\t }\n\t \n\t // If the replacer is an array, use it to select the members to be\n\t // stringified.\n\t if (rep && typeof rep === 'object') {\n\t length = rep.length;\n\t for (i = 0; i < length; i += 1) {\n\t k = rep[i];\n\t if (typeof k === 'string') {\n\t v = str(k, value);\n\t if (v) {\n\t partial.push(quote(k) + (gap ? ': ' : ':') + v);\n\t }\n\t }\n\t }\n\t }\n\t else {\n\t // Otherwise, iterate through all of the keys in the object.\n\t for (k in value) {\n\t if (Object.prototype.hasOwnProperty.call(value, k)) {\n\t v = str(k, value);\n\t if (v) {\n\t partial.push(quote(k) + (gap ? ': ' : ':') + v);\n\t }\n\t }\n\t }\n\t }\n\t \n\t // Join all of the member texts together, separated with commas,\n\t // and wrap them in braces.\n\n\t v = partial.length === 0 ? '{}' : gap ?\n\t '{\\n' + gap + partial.join(',\\n' + gap) + '\\n' + mind + '}' :\n\t '{' + partial.join(',') + '}';\n\t gap = mind;\n\t return v;\n\t }\n\t}\n\n\tmodule.exports = function (value, replacer, space) {\n\t var i;\n\t gap = '';\n\t indent = '';\n\t \n\t // If the space parameter is a number, make an indent string containing that\n\t // many spaces.\n\t if (typeof space === 'number') {\n\t for (i = 0; i < space; i += 1) {\n\t indent += ' ';\n\t }\n\t }\n\t // If the space parameter is a string, it will be used as the indent string.\n\t else if (typeof space === 'string') {\n\t indent = space;\n\t }\n\n\t // If there is a replacer, it must be a function or an array.\n\t // Otherwise, throw an error.\n\t rep = replacer;\n\t if (replacer && typeof replacer !== 'function'\n\t && (typeof replacer !== 'object' || typeof replacer.length !== 'number')) {\n\t throw new Error('JSON.stringify');\n\t }\n\t \n\t // Make a fake root object containing our value under the key of ''.\n\t // Return the result of stringifying the value.\n\t return str('', {'': value});\n\t};\n\n\n/***/ },\n/* 20 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\tmodule.exports = function generate_validate(it, $keyword, $ruleType) {\n\t var out = '';\n\t var $async = it.schema.$async === true,\n\t $refKeywords = it.util.schemaHasRulesExcept(it.schema, it.RULES.all, '$ref'),\n\t $id = it.self._getId(it.schema);\n\t if (it.isTop) {\n\t if ($async) {\n\t it.async = true;\n\t var $es7 = it.opts.async == 'es7';\n\t it.yieldAwait = $es7 ? 'await' : 'yield';\n\t }\n\t out += ' var validate = ';\n\t if ($async) {\n\t if ($es7) {\n\t out += ' (async function ';\n\t } else {\n\t if (it.opts.async != '*') {\n\t out += 'co.wrap';\n\t }\n\t out += '(function* ';\n\t }\n\t } else {\n\t out += ' (function ';\n\t }\n\t out += ' (data, dataPath, parentData, parentDataProperty, rootData) { \\'use strict\\'; ';\n\t if ($id && (it.opts.sourceCode || it.opts.processCode)) {\n\t out += ' ' + ('/\\*# sourceURL=' + $id + ' */') + ' ';\n\t }\n\t }\n\t if (typeof it.schema == 'boolean' || !($refKeywords || it.schema.$ref)) {\n\t var $keyword = 'false schema';\n\t var $lvl = it.level;\n\t var $dataLvl = it.dataLevel;\n\t var $schema = it.schema[$keyword];\n\t var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n\t var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n\t var $breakOnError = !it.opts.allErrors;\n\t var $errorKeyword;\n\t var $data = 'data' + ($dataLvl || '');\n\t var $valid = 'valid' + $lvl;\n\t if (it.schema === false) {\n\t if (it.isTop) {\n\t $breakOnError = true;\n\t } else {\n\t out += ' var ' + ($valid) + ' = false; ';\n\t }\n\t var $$outStack = $$outStack || [];\n\t $$outStack.push(out);\n\t out = ''; /* istanbul ignore else */\n\t if (it.createErrors !== false) {\n\t out += ' { keyword: \\'' + ($errorKeyword || 'false schema') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n\t if (it.opts.messages !== false) {\n\t out += ' , message: \\'boolean schema is false\\' ';\n\t }\n\t if (it.opts.verbose) {\n\t out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n\t }\n\t out += ' } ';\n\t } else {\n\t out += ' {} ';\n\t }\n\t var __err = out;\n\t out = $$outStack.pop();\n\t if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */\n\t if (it.async) {\n\t out += ' throw new ValidationError([' + (__err) + ']); ';\n\t } else {\n\t out += ' validate.errors = [' + (__err) + ']; return false; ';\n\t }\n\t } else {\n\t out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n\t }\n\t } else {\n\t if (it.isTop) {\n\t if ($async) {\n\t out += ' return data; ';\n\t } else {\n\t out += ' validate.errors = null; return true; ';\n\t }\n\t } else {\n\t out += ' var ' + ($valid) + ' = true; ';\n\t }\n\t }\n\t if (it.isTop) {\n\t out += ' }); return validate; ';\n\t }\n\t return out;\n\t }\n\t if (it.isTop) {\n\t var $top = it.isTop,\n\t $lvl = it.level = 0,\n\t $dataLvl = it.dataLevel = 0,\n\t $data = 'data';\n\t it.rootId = it.resolve.fullPath(it.self._getId(it.root.schema));\n\t it.baseId = it.baseId || it.rootId;\n\t delete it.isTop;\n\t it.dataPathArr = [undefined];\n\t out += ' var vErrors = null; ';\n\t out += ' var errors = 0; ';\n\t out += ' if (rootData === undefined) rootData = data; ';\n\t } else {\n\t var $lvl = it.level,\n\t $dataLvl = it.dataLevel,\n\t $data = 'data' + ($dataLvl || '');\n\t if ($id) it.baseId = it.resolve.url(it.baseId, $id);\n\t if ($async && !it.async) throw new Error('async schema in sync schema');\n\t out += ' var errs_' + ($lvl) + ' = errors;';\n\t }\n\t var $valid = 'valid' + $lvl,\n\t $breakOnError = !it.opts.allErrors,\n\t $closingBraces1 = '',\n\t $closingBraces2 = '';\n\t var $errorKeyword;\n\t var $typeSchema = it.schema.type,\n\t $typeIsArray = Array.isArray($typeSchema);\n\t if ($typeIsArray && $typeSchema.length == 1) {\n\t $typeSchema = $typeSchema[0];\n\t $typeIsArray = false;\n\t }\n\t if (it.schema.$ref && $refKeywords) {\n\t if (it.opts.extendRefs == 'fail') {\n\t throw new Error('$ref: validation keywords used in schema at path \"' + it.errSchemaPath + '\" (see option extendRefs)');\n\t } else if (it.opts.extendRefs !== true) {\n\t $refKeywords = false;\n\t console.warn('$ref: keywords ignored in schema at path \"' + it.errSchemaPath + '\"');\n\t }\n\t }\n\t if ($typeSchema) {\n\t if (it.opts.coerceTypes) {\n\t var $coerceToTypes = it.util.coerceToTypes(it.opts.coerceTypes, $typeSchema);\n\t }\n\t var $rulesGroup = it.RULES.types[$typeSchema];\n\t if ($coerceToTypes || $typeIsArray || $rulesGroup === true || ($rulesGroup && !$shouldUseGroup($rulesGroup))) {\n\t var $schemaPath = it.schemaPath + '.type',\n\t $errSchemaPath = it.errSchemaPath + '/type';\n\t var $schemaPath = it.schemaPath + '.type',\n\t $errSchemaPath = it.errSchemaPath + '/type',\n\t $method = $typeIsArray ? 'checkDataTypes' : 'checkDataType';\n\t out += ' if (' + (it.util[$method]($typeSchema, $data, true)) + ') { ';\n\t if ($coerceToTypes) {\n\t var $dataType = 'dataType' + $lvl,\n\t $coerced = 'coerced' + $lvl;\n\t out += ' var ' + ($dataType) + ' = typeof ' + ($data) + '; ';\n\t if (it.opts.coerceTypes == 'array') {\n\t out += ' if (' + ($dataType) + ' == \\'object\\' && Array.isArray(' + ($data) + ')) ' + ($dataType) + ' = \\'array\\'; ';\n\t }\n\t out += ' var ' + ($coerced) + ' = undefined; ';\n\t var $bracesCoercion = '';\n\t var arr1 = $coerceToTypes;\n\t if (arr1) {\n\t var $type, $i = -1,\n\t l1 = arr1.length - 1;\n\t while ($i < l1) {\n\t $type = arr1[$i += 1];\n\t if ($i) {\n\t out += ' if (' + ($coerced) + ' === undefined) { ';\n\t $bracesCoercion += '}';\n\t }\n\t if (it.opts.coerceTypes == 'array' && $type != 'array') {\n\t out += ' if (' + ($dataType) + ' == \\'array\\' && ' + ($data) + '.length == 1) { ' + ($coerced) + ' = ' + ($data) + ' = ' + ($data) + '[0]; ' + ($dataType) + ' = typeof ' + ($data) + '; } ';\n\t }\n\t if ($type == 'string') {\n\t out += ' if (' + ($dataType) + ' == \\'number\\' || ' + ($dataType) + ' == \\'boolean\\') ' + ($coerced) + ' = \\'\\' + ' + ($data) + '; else if (' + ($data) + ' === null) ' + ($coerced) + ' = \\'\\'; ';\n\t } else if ($type == 'number' || $type == 'integer') {\n\t out += ' if (' + ($dataType) + ' == \\'boolean\\' || ' + ($data) + ' === null || (' + ($dataType) + ' == \\'string\\' && ' + ($data) + ' && ' + ($data) + ' == +' + ($data) + ' ';\n\t if ($type == 'integer') {\n\t out += ' && !(' + ($data) + ' % 1)';\n\t }\n\t out += ')) ' + ($coerced) + ' = +' + ($data) + '; ';\n\t } else if ($type == 'boolean') {\n\t out += ' if (' + ($data) + ' === \\'false\\' || ' + ($data) + ' === 0 || ' + ($data) + ' === null) ' + ($coerced) + ' = false; else if (' + ($data) + ' === \\'true\\' || ' + ($data) + ' === 1) ' + ($coerced) + ' = true; ';\n\t } else if ($type == 'null') {\n\t out += ' if (' + ($data) + ' === \\'\\' || ' + ($data) + ' === 0 || ' + ($data) + ' === false) ' + ($coerced) + ' = null; ';\n\t } else if (it.opts.coerceTypes == 'array' && $type == 'array') {\n\t out += ' if (' + ($dataType) + ' == \\'string\\' || ' + ($dataType) + ' == \\'number\\' || ' + ($dataType) + ' == \\'boolean\\' || ' + ($data) + ' == null) ' + ($coerced) + ' = [' + ($data) + ']; ';\n\t }\n\t }\n\t }\n\t out += ' ' + ($bracesCoercion) + ' if (' + ($coerced) + ' === undefined) { ';\n\t var $$outStack = $$outStack || [];\n\t $$outStack.push(out);\n\t out = ''; /* istanbul ignore else */\n\t if (it.createErrors !== false) {\n\t out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n\t if ($typeIsArray) {\n\t out += '' + ($typeSchema.join(\",\"));\n\t } else {\n\t out += '' + ($typeSchema);\n\t }\n\t out += '\\' } ';\n\t if (it.opts.messages !== false) {\n\t out += ' , message: \\'should be ';\n\t if ($typeIsArray) {\n\t out += '' + ($typeSchema.join(\",\"));\n\t } else {\n\t out += '' + ($typeSchema);\n\t }\n\t out += '\\' ';\n\t }\n\t if (it.opts.verbose) {\n\t out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n\t }\n\t out += ' } ';\n\t } else {\n\t out += ' {} ';\n\t }\n\t var __err = out;\n\t out = $$outStack.pop();\n\t if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */\n\t if (it.async) {\n\t out += ' throw new ValidationError([' + (__err) + ']); ';\n\t } else {\n\t out += ' validate.errors = [' + (__err) + ']; return false; ';\n\t }\n\t } else {\n\t out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n\t }\n\t out += ' } else { ';\n\t var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n\t $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n\t out += ' ' + ($data) + ' = ' + ($coerced) + '; ';\n\t if (!$dataLvl) {\n\t out += 'if (' + ($parentData) + ' !== undefined)';\n\t }\n\t out += ' ' + ($parentData) + '[' + ($parentDataProperty) + '] = ' + ($coerced) + '; } ';\n\t } else {\n\t var $$outStack = $$outStack || [];\n\t $$outStack.push(out);\n\t out = ''; /* istanbul ignore else */\n\t if (it.createErrors !== false) {\n\t out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n\t if ($typeIsArray) {\n\t out += '' + ($typeSchema.join(\",\"));\n\t } else {\n\t out += '' + ($typeSchema);\n\t }\n\t out += '\\' } ';\n\t if (it.opts.messages !== false) {\n\t out += ' , message: \\'should be ';\n\t if ($typeIsArray) {\n\t out += '' + ($typeSchema.join(\",\"));\n\t } else {\n\t out += '' + ($typeSchema);\n\t }\n\t out += '\\' ';\n\t }\n\t if (it.opts.verbose) {\n\t out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n\t }\n\t out += ' } ';\n\t } else {\n\t out += ' {} ';\n\t }\n\t var __err = out;\n\t out = $$outStack.pop();\n\t if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */\n\t if (it.async) {\n\t out += ' throw new ValidationError([' + (__err) + ']); ';\n\t } else {\n\t out += ' validate.errors = [' + (__err) + ']; return false; ';\n\t }\n\t } else {\n\t out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n\t }\n\t }\n\t out += ' } ';\n\t }\n\t }\n\t if (it.schema.$ref && !$refKeywords) {\n\t out += ' ' + (it.RULES.all.$ref.code(it, '$ref')) + ' ';\n\t if ($breakOnError) {\n\t out += ' } if (errors === ';\n\t if ($top) {\n\t out += '0';\n\t } else {\n\t out += 'errs_' + ($lvl);\n\t }\n\t out += ') { ';\n\t $closingBraces2 += '}';\n\t }\n\t } else {\n\t if (it.opts.v5 && it.schema.patternGroups) {\n\t console.warn('keyword \"patternGroups\" is deprecated and disabled. Use option patternGroups: true to enable.');\n\t }\n\t var arr2 = it.RULES;\n\t if (arr2) {\n\t var $rulesGroup, i2 = -1,\n\t l2 = arr2.length - 1;\n\t while (i2 < l2) {\n\t $rulesGroup = arr2[i2 += 1];\n\t if ($shouldUseGroup($rulesGroup)) {\n\t if ($rulesGroup.type) {\n\t out += ' if (' + (it.util.checkDataType($rulesGroup.type, $data)) + ') { ';\n\t }\n\t if (it.opts.useDefaults && !it.compositeRule) {\n\t if ($rulesGroup.type == 'object' && it.schema.properties) {\n\t var $schema = it.schema.properties,\n\t $schemaKeys = Object.keys($schema);\n\t var arr3 = $schemaKeys;\n\t if (arr3) {\n\t var $propertyKey, i3 = -1,\n\t l3 = arr3.length - 1;\n\t while (i3 < l3) {\n\t $propertyKey = arr3[i3 += 1];\n\t var $sch = $schema[$propertyKey];\n\t if ($sch.default !== undefined) {\n\t var $passData = $data + it.util.getProperty($propertyKey);\n\t out += ' if (' + ($passData) + ' === undefined) ' + ($passData) + ' = ';\n\t if (it.opts.useDefaults == 'shared') {\n\t out += ' ' + (it.useDefault($sch.default)) + ' ';\n\t } else {\n\t out += ' ' + (JSON.stringify($sch.default)) + ' ';\n\t }\n\t out += '; ';\n\t }\n\t }\n\t }\n\t } else if ($rulesGroup.type == 'array' && Array.isArray(it.schema.items)) {\n\t var arr4 = it.schema.items;\n\t if (arr4) {\n\t var $sch, $i = -1,\n\t l4 = arr4.length - 1;\n\t while ($i < l4) {\n\t $sch = arr4[$i += 1];\n\t if ($sch.default !== undefined) {\n\t var $passData = $data + '[' + $i + ']';\n\t out += ' if (' + ($passData) + ' === undefined) ' + ($passData) + ' = ';\n\t if (it.opts.useDefaults == 'shared') {\n\t out += ' ' + (it.useDefault($sch.default)) + ' ';\n\t } else {\n\t out += ' ' + (JSON.stringify($sch.default)) + ' ';\n\t }\n\t out += '; ';\n\t }\n\t }\n\t }\n\t }\n\t }\n\t var arr5 = $rulesGroup.rules;\n\t if (arr5) {\n\t var $rule, i5 = -1,\n\t l5 = arr5.length - 1;\n\t while (i5 < l5) {\n\t $rule = arr5[i5 += 1];\n\t if ($shouldUseRule($rule)) {\n\t var $code = $rule.code(it, $rule.keyword, $rulesGroup.type);\n\t if ($code) {\n\t out += ' ' + ($code) + ' ';\n\t if ($breakOnError) {\n\t $closingBraces1 += '}';\n\t }\n\t }\n\t }\n\t }\n\t }\n\t if ($breakOnError) {\n\t out += ' ' + ($closingBraces1) + ' ';\n\t $closingBraces1 = '';\n\t }\n\t if ($rulesGroup.type) {\n\t out += ' } ';\n\t if ($typeSchema && $typeSchema === $rulesGroup.type && !$coerceToTypes) {\n\t out += ' else { ';\n\t var $schemaPath = it.schemaPath + '.type',\n\t $errSchemaPath = it.errSchemaPath + '/type';\n\t var $$outStack = $$outStack || [];\n\t $$outStack.push(out);\n\t out = ''; /* istanbul ignore else */\n\t if (it.createErrors !== false) {\n\t out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n\t if ($typeIsArray) {\n\t out += '' + ($typeSchema.join(\",\"));\n\t } else {\n\t out += '' + ($typeSchema);\n\t }\n\t out += '\\' } ';\n\t if (it.opts.messages !== false) {\n\t out += ' , message: \\'should be ';\n\t if ($typeIsArray) {\n\t out += '' + ($typeSchema.join(\",\"));\n\t } else {\n\t out += '' + ($typeSchema);\n\t }\n\t out += '\\' ';\n\t }\n\t if (it.opts.verbose) {\n\t out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n\t }\n\t out += ' } ';\n\t } else {\n\t out += ' {} ';\n\t }\n\t var __err = out;\n\t out = $$outStack.pop();\n\t if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */\n\t if (it.async) {\n\t out += ' throw new ValidationError([' + (__err) + ']); ';\n\t } else {\n\t out += ' validate.errors = [' + (__err) + ']; return false; ';\n\t }\n\t } else {\n\t out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n\t }\n\t out += ' } ';\n\t }\n\t }\n\t if ($breakOnError) {\n\t out += ' if (errors === ';\n\t if ($top) {\n\t out += '0';\n\t } else {\n\t out += 'errs_' + ($lvl);\n\t }\n\t out += ') { ';\n\t $closingBraces2 += '}';\n\t }\n\t }\n\t }\n\t }\n\t }\n\t if ($breakOnError) {\n\t out += ' ' + ($closingBraces2) + ' ';\n\t }\n\t if ($top) {\n\t if ($async) {\n\t out += ' if (errors === 0) return data; ';\n\t out += ' else throw new ValidationError(vErrors); ';\n\t } else {\n\t out += ' validate.errors = vErrors; ';\n\t out += ' return errors === 0; ';\n\t }\n\t out += ' }); return validate;';\n\t } else {\n\t out += ' var ' + ($valid) + ' = errors === errs_' + ($lvl) + ';';\n\t }\n\t out = it.util.cleanUpCode(out);\n\t if ($top) {\n\t out = it.util.finalCleanUpCode(out, $async);\n\t }\n\n\t function $shouldUseGroup($rulesGroup) {\n\t var rules = $rulesGroup.rules;\n\t for (var i = 0; i < rules.length; i++)\n\t if ($shouldUseRule(rules[i])) return true;\n\t }\n\n\t function $shouldUseRule($rule) {\n\t return it.schema[$rule.keyword] !== undefined || ($rule.implements && $ruleImlementsSomeKeyword($rule));\n\t }\n\n\t function $ruleImlementsSomeKeyword($rule) {\n\t var impl = $rule.implements;\n\t for (var i = 0; i < impl.length; i++)\n\t if (it.schema[impl[i]] !== undefined) return true;\n\t }\n\t return out;\n\t}\n\n\n/***/ },\n/* 21 */\n/***/ function(module, exports) {\n\n\t\n\t/**\n\t * slice() reference.\n\t */\n\n\tvar slice = Array.prototype.slice;\n\n\t/**\n\t * Expose `co`.\n\t */\n\n\tmodule.exports = co['default'] = co.co = co;\n\n\t/**\n\t * Wrap the given generator `fn` into a\n\t * function that returns a promise.\n\t * This is a separate function so that\n\t * every `co()` call doesn't create a new,\n\t * unnecessary closure.\n\t *\n\t * @param {GeneratorFunction} fn\n\t * @return {Function}\n\t * @api public\n\t */\n\n\tco.wrap = function (fn) {\n\t createPromise.__generatorFunction__ = fn;\n\t return createPromise;\n\t function createPromise() {\n\t return co.call(this, fn.apply(this, arguments));\n\t }\n\t};\n\n\t/**\n\t * Execute the generator function or a generator\n\t * and return a promise.\n\t *\n\t * @param {Function} fn\n\t * @return {Promise}\n\t * @api public\n\t */\n\n\tfunction co(gen) {\n\t var ctx = this;\n\t var args = slice.call(arguments, 1)\n\n\t // we wrap everything in a promise to avoid promise chaining,\n\t // which leads to memory leak errors.\n\t // see https://github.com/tj/co/issues/180\n\t return new Promise(function(resolve, reject) {\n\t if (typeof gen === 'function') gen = gen.apply(ctx, args);\n\t if (!gen || typeof gen.next !== 'function') return resolve(gen);\n\n\t onFulfilled();\n\n\t /**\n\t * @param {Mixed} res\n\t * @return {Promise}\n\t * @api private\n\t */\n\n\t function onFulfilled(res) {\n\t var ret;\n\t try {\n\t ret = gen.next(res);\n\t } catch (e) {\n\t return reject(e);\n\t }\n\t next(ret);\n\t }\n\n\t /**\n\t * @param {Error} err\n\t * @return {Promise}\n\t * @api private\n\t */\n\n\t function onRejected(err) {\n\t var ret;\n\t try {\n\t ret = gen.throw(err);\n\t } catch (e) {\n\t return reject(e);\n\t }\n\t next(ret);\n\t }\n\n\t /**\n\t * Get the next value in the generator,\n\t * return a promise.\n\t *\n\t * @param {Object} ret\n\t * @return {Promise}\n\t * @api private\n\t */\n\n\t function next(ret) {\n\t if (ret.done) return resolve(ret.value);\n\t var value = toPromise.call(ctx, ret.value);\n\t if (value && isPromise(value)) return value.then(onFulfilled, onRejected);\n\t return onRejected(new TypeError('You may only yield a function, promise, generator, array, or object, '\n\t + 'but the following object was passed: \"' + String(ret.value) + '\"'));\n\t }\n\t });\n\t}\n\n\t/**\n\t * Convert a `yield`ed value into a promise.\n\t *\n\t * @param {Mixed} obj\n\t * @return {Promise}\n\t * @api private\n\t */\n\n\tfunction toPromise(obj) {\n\t if (!obj) return obj;\n\t if (isPromise(obj)) return obj;\n\t if (isGeneratorFunction(obj) || isGenerator(obj)) return co.call(this, obj);\n\t if ('function' == typeof obj) return thunkToPromise.call(this, obj);\n\t if (Array.isArray(obj)) return arrayToPromise.call(this, obj);\n\t if (isObject(obj)) return objectToPromise.call(this, obj);\n\t return obj;\n\t}\n\n\t/**\n\t * Convert a thunk to a promise.\n\t *\n\t * @param {Function}\n\t * @return {Promise}\n\t * @api private\n\t */\n\n\tfunction thunkToPromise(fn) {\n\t var ctx = this;\n\t return new Promise(function (resolve, reject) {\n\t fn.call(ctx, function (err, res) {\n\t if (err) return reject(err);\n\t if (arguments.length > 2) res = slice.call(arguments, 1);\n\t resolve(res);\n\t });\n\t });\n\t}\n\n\t/**\n\t * Convert an array of \"yieldables\" to a promise.\n\t * Uses `Promise.all()` internally.\n\t *\n\t * @param {Array} obj\n\t * @return {Promise}\n\t * @api private\n\t */\n\n\tfunction arrayToPromise(obj) {\n\t return Promise.all(obj.map(toPromise, this));\n\t}\n\n\t/**\n\t * Convert an object of \"yieldables\" to a promise.\n\t * Uses `Promise.all()` internally.\n\t *\n\t * @param {Object} obj\n\t * @return {Promise}\n\t * @api private\n\t */\n\n\tfunction objectToPromise(obj){\n\t var results = new obj.constructor();\n\t var keys = Object.keys(obj);\n\t var promises = [];\n\t for (var i = 0; i < keys.length; i++) {\n\t var key = keys[i];\n\t var promise = toPromise.call(this, obj[key]);\n\t if (promise && isPromise(promise)) defer(promise, key);\n\t else results[key] = obj[key];\n\t }\n\t return Promise.all(promises).then(function () {\n\t return results;\n\t });\n\n\t function defer(promise, key) {\n\t // predefine the key in the result\n\t results[key] = undefined;\n\t promises.push(promise.then(function (res) {\n\t results[key] = res;\n\t }));\n\t }\n\t}\n\n\t/**\n\t * Check if `obj` is a promise.\n\t *\n\t * @param {Object} obj\n\t * @return {Boolean}\n\t * @api private\n\t */\n\n\tfunction isPromise(obj) {\n\t return 'function' == typeof obj.then;\n\t}\n\n\t/**\n\t * Check if `obj` is a generator.\n\t *\n\t * @param {Mixed} obj\n\t * @return {Boolean}\n\t * @api private\n\t */\n\n\tfunction isGenerator(obj) {\n\t return 'function' == typeof obj.next && 'function' == typeof obj.throw;\n\t}\n\n\t/**\n\t * Check if `obj` is a generator function.\n\t *\n\t * @param {Mixed} obj\n\t * @return {Boolean}\n\t * @api private\n\t */\n\tfunction isGeneratorFunction(obj) {\n\t var constructor = obj.constructor;\n\t if (!constructor) return false;\n\t if ('GeneratorFunction' === constructor.name || 'GeneratorFunction' === constructor.displayName) return true;\n\t return isGenerator(constructor.prototype);\n\t}\n\n\t/**\n\t * Check for plain object.\n\t *\n\t * @param {Mixed} val\n\t * @return {Boolean}\n\t * @api private\n\t */\n\n\tfunction isObject(val) {\n\t return Object == val.constructor;\n\t}\n\n\n/***/ },\n/* 22 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\n\n\tvar Cache = module.exports = function Cache() {\n\t this._cache = {};\n\t};\n\n\n\tCache.prototype.put = function Cache_put(key, value) {\n\t this._cache[key] = value;\n\t};\n\n\n\tCache.prototype.get = function Cache_get(key) {\n\t return this._cache[key];\n\t};\n\n\n\tCache.prototype.del = function Cache_del(key) {\n\t delete this._cache[key];\n\t};\n\n\n\tCache.prototype.clear = function Cache_clear() {\n\t this._cache = {};\n\t};\n\n\n/***/ },\n/* 23 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar util = __webpack_require__(11);\n\n\tvar DATE = /^\\d\\d\\d\\d-(\\d\\d)-(\\d\\d)$/;\n\tvar DAYS = [0,31,29,31,30,31,30,31,31,30,31,30,31];\n\tvar TIME = /^(\\d\\d):(\\d\\d):(\\d\\d)(\\.\\d+)?(z|[+-]\\d\\d:\\d\\d)?$/i;\n\tvar HOSTNAME = /^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*$/i;\n\tvar URI = /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\\?(?:[a-z0-9\\-._~!$&'()*+,;=:@\\/?]|%[0-9a-f]{2})*)?(?:\\#(?:[a-z0-9\\-._~!$&'()*+,;=:@\\/?]|%[0-9a-f]{2})*)?$/i;\n\tvar URIREF = /^(?:[a-z][a-z0-9+\\-.]*:)?(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'\"()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\\?(?:[a-z0-9\\-._~!$&'\"()*+,;=:@\\/?]|%[0-9a-f]{2})*)?(?:\\#(?:[a-z0-9\\-._~!$&'\"()*+,;=:@\\/?]|%[0-9a-f]{2})*)?$/i;\n\t// uri-template: https://tools.ietf.org/html/rfc6570\n\tvar URITEMPLATE = /^(?:(?:[^\\x00-\\x20\"'<>%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#.\\/;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?:\\:[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?:\\:[1-9][0-9]{0,3}|\\*)?)*\\})*$/i;\n\t// For the source: https://gist.github.com/dperini/729294\n\t// For test cases: https://mathiasbynens.be/demo/url-regex\n\t// @todo Delete current URL in favour of the commented out URL rule when this issue is fixed https://github.com/eslint/eslint/issues/7983.\n\t// var URL = /^(?:(?:https?|ftp):\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!10(?:\\.\\d{1,3}){3})(?!127(?:\\.\\d{1,3}){3})(?!169\\.254(?:\\.\\d{1,3}){2})(?!192\\.168(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-?)*[a-z\\u{00a1}-\\u{ffff}0-9]+)(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-?)*[a-z\\u{00a1}-\\u{ffff}0-9]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu;\n\tvar URL = /^(?:(?:http[s\\u017F]?|ftp):\\/\\/)(?:(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+(?::(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?@)?(?:(?!10(?:\\.[0-9]{1,3}){3})(?!127(?:\\.[0-9]{1,3}){3})(?!169\\.254(?:\\.[0-9]{1,3}){2})(?!192\\.168(?:\\.[0-9]{1,3}){2})(?!172\\.(?:1[6-9]|2[0-9]|3[01])(?:\\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+\\-?)*(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)(?:\\.(?:(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+\\-?)*(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)*(?:\\.(?:(?:[KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\\/(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?$/i;\n\tvar UUID = /^(?:urn\\:uuid\\:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;\n\tvar JSON_POINTER = /^(?:\\/(?:[^~\\/]|~0|~1)*)*$|^\\#(?:\\/(?:[a-z0-9_\\-\\.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;\n\tvar RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:\\#|(?:\\/(?:[^~\\/]|~0|~1)*)*)$/;\n\n\n\tmodule.exports = formats;\n\n\tfunction formats(mode) {\n\t mode = mode == 'full' ? 'full' : 'fast';\n\t return util.copy(formats[mode]);\n\t}\n\n\n\tformats.fast = {\n\t // date: http://tools.ietf.org/html/rfc3339#section-5.6\n\t date: /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d$/,\n\t // date-time: http://tools.ietf.org/html/rfc3339#section-5.6\n\t time: /^[0-2]\\d:[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:z|[+-]\\d\\d:\\d\\d)?$/i,\n\t 'date-time': /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d[t\\s][0-2]\\d:[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:z|[+-]\\d\\d:\\d\\d)$/i,\n\t // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js\n\t uri: /^(?:[a-z][a-z0-9+-.]*)(?:\\:|\\/)\\/?[^\\s]*$/i,\n\t 'uri-reference': /^(?:(?:[a-z][a-z0-9+-.]*:)?\\/\\/)?[^\\s]*$/i,\n\t 'uri-template': URITEMPLATE,\n\t url: URL,\n\t // email (sources from jsen validator):\n\t // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363\n\t // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'willful violation')\n\t email: /^[a-z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,\n\t hostname: HOSTNAME,\n\t // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html\n\t ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n\t // optimized http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses\n\t ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n\t regex: regex,\n\t // uuid: http://tools.ietf.org/html/rfc4122\n\t uuid: UUID,\n\t // JSON-pointer: https://tools.ietf.org/html/rfc6901\n\t // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A\n\t 'json-pointer': JSON_POINTER,\n\t // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00\n\t 'relative-json-pointer': RELATIVE_JSON_POINTER\n\t};\n\n\n\tformats.full = {\n\t date: date,\n\t time: time,\n\t 'date-time': date_time,\n\t uri: uri,\n\t 'uri-reference': URIREF,\n\t 'uri-template': URITEMPLATE,\n\t url: URL,\n\t email: /^[a-z0-9!#$%&'*+\\/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&''*+\\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,\n\t hostname: hostname,\n\t ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n\t ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n\t regex: regex,\n\t uuid: UUID,\n\t 'json-pointer': JSON_POINTER,\n\t 'relative-json-pointer': RELATIVE_JSON_POINTER\n\t};\n\n\n\tfunction date(str) {\n\t // full-date from http://tools.ietf.org/html/rfc3339#section-5.6\n\t var matches = str.match(DATE);\n\t if (!matches) return false;\n\n\t var month = +matches[1];\n\t var day = +matches[2];\n\t return month >= 1 && month <= 12 && day >= 1 && day <= DAYS[month];\n\t}\n\n\n\tfunction time(str, full) {\n\t var matches = str.match(TIME);\n\t if (!matches) return false;\n\n\t var hour = matches[1];\n\t var minute = matches[2];\n\t var second = matches[3];\n\t var timeZone = matches[5];\n\t return hour <= 23 && minute <= 59 && second <= 59 && (!full || timeZone);\n\t}\n\n\n\tvar DATE_TIME_SEPARATOR = /t|\\s/i;\n\tfunction date_time(str) {\n\t // http://tools.ietf.org/html/rfc3339#section-5.6\n\t var dateTime = str.split(DATE_TIME_SEPARATOR);\n\t return dateTime.length == 2 && date(dateTime[0]) && time(dateTime[1], true);\n\t}\n\n\n\tfunction hostname(str) {\n\t // https://tools.ietf.org/html/rfc1034#section-3.5\n\t // https://tools.ietf.org/html/rfc1123#section-2\n\t return str.length <= 255 && HOSTNAME.test(str);\n\t}\n\n\n\tvar NOT_URI_FRAGMENT = /\\/|\\:/;\n\tfunction uri(str) {\n\t // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required \".\"\n\t return NOT_URI_FRAGMENT.test(str) && URI.test(str);\n\t}\n\n\n\tvar Z_ANCHOR = /[^\\\\]\\\\Z/;\n\tfunction regex(str) {\n\t if (Z_ANCHOR.test(str)) return false;\n\t try {\n\t new RegExp(str);\n\t return true;\n\t } catch(e) {\n\t return false;\n\t }\n\t}\n\n\n/***/ },\n/* 24 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar ruleModules = __webpack_require__(25)\n\t , toHash = __webpack_require__(11).toHash;\n\n\tmodule.exports = function rules() {\n\t var RULES = [\n\t { type: 'number',\n\t rules: [ { 'maximum': ['exclusiveMaximum'] },\n\t { 'minimum': ['exclusiveMinimum'] }, 'multipleOf', 'format'] },\n\t { type: 'string',\n\t rules: [ 'maxLength', 'minLength', 'pattern', 'format' ] },\n\t { type: 'array',\n\t rules: [ 'maxItems', 'minItems', 'uniqueItems', 'contains', 'items' ] },\n\t { type: 'object',\n\t rules: [ 'maxProperties', 'minProperties', 'required', 'dependencies', 'propertyNames',\n\t { 'properties': ['additionalProperties', 'patternProperties'] } ] },\n\t { rules: [ '$ref', 'const', 'enum', 'not', 'anyOf', 'oneOf', 'allOf' ] }\n\t ];\n\n\t var ALL = [ 'type' ];\n\t var KEYWORDS = [\n\t 'additionalItems', '$schema', 'id', 'title',\n\t 'description', 'default', 'definitions'\n\t ];\n\t var TYPES = [ 'number', 'integer', 'string', 'array', 'object', 'boolean', 'null' ];\n\t RULES.all = toHash(ALL);\n\t RULES.types = toHash(TYPES);\n\n\t RULES.forEach(function (group) {\n\t group.rules = group.rules.map(function (keyword) {\n\t var implKeywords;\n\t if (typeof keyword == 'object') {\n\t var key = Object.keys(keyword)[0];\n\t implKeywords = keyword[key];\n\t keyword = key;\n\t implKeywords.forEach(function (k) {\n\t ALL.push(k);\n\t RULES.all[k] = true;\n\t });\n\t }\n\t ALL.push(keyword);\n\t var rule = RULES.all[keyword] = {\n\t keyword: keyword,\n\t code: ruleModules[keyword],\n\t implements: implKeywords\n\t };\n\t return rule;\n\t });\n\n\t if (group.type) RULES.types[group.type] = group;\n\t });\n\n\t RULES.keywords = toHash(ALL.concat(KEYWORDS));\n\t RULES.custom = {};\n\n\t return RULES;\n\t};\n\n\n/***/ },\n/* 25 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\t//all requires must be explicit because browserify won't work with dynamic requires\n\tmodule.exports = {\n\t '$ref': __webpack_require__(26),\n\t allOf: __webpack_require__(27),\n\t anyOf: __webpack_require__(28),\n\t const: __webpack_require__(29),\n\t contains: __webpack_require__(30),\n\t dependencies: __webpack_require__(31),\n\t 'enum': __webpack_require__(32),\n\t format: __webpack_require__(33),\n\t items: __webpack_require__(34),\n\t maximum: __webpack_require__(35),\n\t minimum: __webpack_require__(35),\n\t maxItems: __webpack_require__(36),\n\t minItems: __webpack_require__(36),\n\t maxLength: __webpack_require__(37),\n\t minLength: __webpack_require__(37),\n\t maxProperties: __webpack_require__(38),\n\t minProperties: __webpack_require__(38),\n\t multipleOf: __webpack_require__(39),\n\t not: __webpack_require__(40),\n\t oneOf: __webpack_require__(41),\n\t pattern: __webpack_require__(42),\n\t properties: __webpack_require__(43),\n\t propertyNames: __webpack_require__(44),\n\t required: __webpack_require__(45),\n\t uniqueItems: __webpack_require__(46),\n\t validate: __webpack_require__(20)\n\t};\n\n\n/***/ },\n/* 26 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\tmodule.exports = function generate_ref(it, $keyword, $ruleType) {\n\t var out = ' ';\n\t var $lvl = it.level;\n\t var $dataLvl = it.dataLevel;\n\t var $schema = it.schema[$keyword];\n\t var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n\t var $breakOnError = !it.opts.allErrors;\n\t var $data = 'data' + ($dataLvl || '');\n\t var $valid = 'valid' + $lvl;\n\t var $async, $refCode;\n\t if ($schema == '#' || $schema == '#/') {\n\t if (it.isRoot) {\n\t $async = it.async;\n\t $refCode = 'validate';\n\t } else {\n\t $async = it.root.schema.$async === true;\n\t $refCode = 'root.refVal[0]';\n\t }\n\t } else {\n\t var $refVal = it.resolveRef(it.baseId, $schema, it.isRoot);\n\t if ($refVal === undefined) {\n\t var $message = it.MissingRefError.message(it.baseId, $schema);\n\t if (it.opts.missingRefs == 'fail') {\n\t console.error($message);\n\t var $$outStack = $$outStack || [];\n\t $$outStack.push(out);\n\t out = ''; /* istanbul ignore else */\n\t if (it.createErrors !== false) {\n\t out += ' { keyword: \\'' + ('$ref') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { ref: \\'' + (it.util.escapeQuotes($schema)) + '\\' } ';\n\t if (it.opts.messages !== false) {\n\t out += ' , message: \\'can\\\\\\'t resolve reference ' + (it.util.escapeQuotes($schema)) + '\\' ';\n\t }\n\t if (it.opts.verbose) {\n\t out += ' , schema: ' + (it.util.toQuotedString($schema)) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n\t }\n\t out += ' } ';\n\t } else {\n\t out += ' {} ';\n\t }\n\t var __err = out;\n\t out = $$outStack.pop();\n\t if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */\n\t if (it.async) {\n\t out += ' throw new ValidationError([' + (__err) + ']); ';\n\t } else {\n\t out += ' validate.errors = [' + (__err) + ']; return false; ';\n\t }\n\t } else {\n\t out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n\t }\n\t if ($breakOnError) {\n\t out += ' if (false) { ';\n\t }\n\t } else if (it.opts.missingRefs == 'ignore') {\n\t console.warn($message);\n\t if ($breakOnError) {\n\t out += ' if (true) { ';\n\t }\n\t } else {\n\t throw new it.MissingRefError(it.baseId, $schema, $message);\n\t }\n\t } else if ($refVal.inline) {\n\t var $it = it.util.copy(it);\n\t $it.level++;\n\t var $nextValid = 'valid' + $it.level;\n\t $it.schema = $refVal.schema;\n\t $it.schemaPath = '';\n\t $it.errSchemaPath = $schema;\n\t var $code = it.validate($it).replace(/validate\\.schema/g, $refVal.code);\n\t out += ' ' + ($code) + ' ';\n\t if ($breakOnError) {\n\t out += ' if (' + ($nextValid) + ') { ';\n\t }\n\t } else {\n\t $async = $refVal.$async === true;\n\t $refCode = $refVal.code;\n\t }\n\t }\n\t if ($refCode) {\n\t var $$outStack = $$outStack || [];\n\t $$outStack.push(out);\n\t out = '';\n\t if (it.opts.passContext) {\n\t out += ' ' + ($refCode) + '.call(this, ';\n\t } else {\n\t out += ' ' + ($refCode) + '( ';\n\t }\n\t out += ' ' + ($data) + ', (dataPath || \\'\\')';\n\t if (it.errorPath != '\"\"') {\n\t out += ' + ' + (it.errorPath);\n\t }\n\t var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n\t $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n\t out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ', rootData) ';\n\t var __callValidate = out;\n\t out = $$outStack.pop();\n\t if ($async) {\n\t if (!it.async) throw new Error('async schema referenced by sync schema');\n\t if ($breakOnError) {\n\t out += ' var ' + ($valid) + '; ';\n\t }\n\t out += ' try { ' + (it.yieldAwait) + ' ' + (__callValidate) + '; ';\n\t if ($breakOnError) {\n\t out += ' ' + ($valid) + ' = true; ';\n\t }\n\t out += ' } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ';\n\t if ($breakOnError) {\n\t out += ' ' + ($valid) + ' = false; ';\n\t }\n\t out += ' } ';\n\t if ($breakOnError) {\n\t out += ' if (' + ($valid) + ') { ';\n\t }\n\t } else {\n\t out += ' if (!' + (__callValidate) + ') { if (vErrors === null) vErrors = ' + ($refCode) + '.errors; else vErrors = vErrors.concat(' + ($refCode) + '.errors); errors = vErrors.length; } ';\n\t if ($breakOnError) {\n\t out += ' else { ';\n\t }\n\t }\n\t }\n\t return out;\n\t}\n\n\n/***/ },\n/* 27 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\tmodule.exports = function generate_allOf(it, $keyword, $ruleType) {\n\t var out = ' ';\n\t var $schema = it.schema[$keyword];\n\t var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n\t var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n\t var $breakOnError = !it.opts.allErrors;\n\t var $it = it.util.copy(it);\n\t var $closingBraces = '';\n\t $it.level++;\n\t var $nextValid = 'valid' + $it.level;\n\t var $currentBaseId = $it.baseId,\n\t $allSchemasEmpty = true;\n\t var arr1 = $schema;\n\t if (arr1) {\n\t var $sch, $i = -1,\n\t l1 = arr1.length - 1;\n\t while ($i < l1) {\n\t $sch = arr1[$i += 1];\n\t if (it.util.schemaHasRules($sch, it.RULES.all)) {\n\t $allSchemasEmpty = false;\n\t $it.schema = $sch;\n\t $it.schemaPath = $schemaPath + '[' + $i + ']';\n\t $it.errSchemaPath = $errSchemaPath + '/' + $i;\n\t out += ' ' + (it.validate($it)) + ' ';\n\t $it.baseId = $currentBaseId;\n\t if ($breakOnError) {\n\t out += ' if (' + ($nextValid) + ') { ';\n\t $closingBraces += '}';\n\t }\n\t }\n\t }\n\t }\n\t if ($breakOnError) {\n\t if ($allSchemasEmpty) {\n\t out += ' if (true) { ';\n\t } else {\n\t out += ' ' + ($closingBraces.slice(0, -1)) + ' ';\n\t }\n\t }\n\t out = it.util.cleanUpCode(out);\n\t return out;\n\t}\n\n\n/***/ },\n/* 28 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\tmodule.exports = function generate_anyOf(it, $keyword, $ruleType) {\n\t var out = ' ';\n\t var $lvl = it.level;\n\t var $dataLvl = it.dataLevel;\n\t var $schema = it.schema[$keyword];\n\t var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n\t var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n\t var $breakOnError = !it.opts.allErrors;\n\t var $data = 'data' + ($dataLvl || '');\n\t var $valid = 'valid' + $lvl;\n\t var $errs = 'errs__' + $lvl;\n\t var $it = it.util.copy(it);\n\t var $closingBraces = '';\n\t $it.level++;\n\t var $nextValid = 'valid' + $it.level;\n\t var $noEmptySchema = $schema.every(function($sch) {\n\t return it.util.schemaHasRules($sch, it.RULES.all);\n\t });\n\t if ($noEmptySchema) {\n\t var $currentBaseId = $it.baseId;\n\t out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = false; ';\n\t var $wasComposite = it.compositeRule;\n\t it.compositeRule = $it.compositeRule = true;\n\t var arr1 = $schema;\n\t if (arr1) {\n\t var $sch, $i = -1,\n\t l1 = arr1.length - 1;\n\t while ($i < l1) {\n\t $sch = arr1[$i += 1];\n\t $it.schema = $sch;\n\t $it.schemaPath = $schemaPath + '[' + $i + ']';\n\t $it.errSchemaPath = $errSchemaPath + '/' + $i;\n\t out += ' ' + (it.validate($it)) + ' ';\n\t $it.baseId = $currentBaseId;\n\t out += ' ' + ($valid) + ' = ' + ($valid) + ' || ' + ($nextValid) + '; if (!' + ($valid) + ') { ';\n\t $closingBraces += '}';\n\t }\n\t }\n\t it.compositeRule = $it.compositeRule = $wasComposite;\n\t out += ' ' + ($closingBraces) + ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n\t if (it.createErrors !== false) {\n\t out += ' { keyword: \\'' + ('anyOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n\t if (it.opts.messages !== false) {\n\t out += ' , message: \\'should match some schema in anyOf\\' ';\n\t }\n\t if (it.opts.verbose) {\n\t out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n\t }\n\t out += ' } ';\n\t } else {\n\t out += ' {} ';\n\t }\n\t out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n\t if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */\n\t if (it.async) {\n\t out += ' throw new ValidationError(vErrors); ';\n\t } else {\n\t out += ' validate.errors = vErrors; return false; ';\n\t }\n\t }\n\t out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n\t if (it.opts.allErrors) {\n\t out += ' } ';\n\t }\n\t out = it.util.cleanUpCode(out);\n\t } else {\n\t if ($breakOnError) {\n\t out += ' if (true) { ';\n\t }\n\t }\n\t return out;\n\t}\n\n\n/***/ },\n/* 29 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\tmodule.exports = function generate_const(it, $keyword, $ruleType) {\n\t var out = ' ';\n\t var $lvl = it.level;\n\t var $dataLvl = it.dataLevel;\n\t var $schema = it.schema[$keyword];\n\t var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n\t var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n\t var $breakOnError = !it.opts.allErrors;\n\t var $data = 'data' + ($dataLvl || '');\n\t var $valid = 'valid' + $lvl;\n\t var $isData = it.opts.$data && $schema && $schema.$data,\n\t $schemaValue;\n\t if ($isData) {\n\t out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n\t $schemaValue = 'schema' + $lvl;\n\t } else {\n\t $schemaValue = $schema;\n\t }\n\t if (!$isData) {\n\t out += ' var schema' + ($lvl) + ' = validate.schema' + ($schemaPath) + ';';\n\t }\n\t out += 'var ' + ($valid) + ' = equal(' + ($data) + ', schema' + ($lvl) + '); if (!' + ($valid) + ') { ';\n\t var $$outStack = $$outStack || [];\n\t $$outStack.push(out);\n\t out = ''; /* istanbul ignore else */\n\t if (it.createErrors !== false) {\n\t out += ' { keyword: \\'' + ('const') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n\t if (it.opts.messages !== false) {\n\t out += ' , message: \\'should be equal to constant\\' ';\n\t }\n\t if (it.opts.verbose) {\n\t out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n\t }\n\t out += ' } ';\n\t } else {\n\t out += ' {} ';\n\t }\n\t var __err = out;\n\t out = $$outStack.pop();\n\t if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */\n\t if (it.async) {\n\t out += ' throw new ValidationError([' + (__err) + ']); ';\n\t } else {\n\t out += ' validate.errors = [' + (__err) + ']; return false; ';\n\t }\n\t } else {\n\t out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n\t }\n\t out += ' }';\n\t if ($breakOnError) {\n\t out += ' else { ';\n\t }\n\t return out;\n\t}\n\n\n/***/ },\n/* 30 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\tmodule.exports = function generate_contains(it, $keyword, $ruleType) {\n\t var out = ' ';\n\t var $lvl = it.level;\n\t var $dataLvl = it.dataLevel;\n\t var $schema = it.schema[$keyword];\n\t var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n\t var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n\t var $breakOnError = !it.opts.allErrors;\n\t var $data = 'data' + ($dataLvl || '');\n\t var $valid = 'valid' + $lvl;\n\t var $errs = 'errs__' + $lvl;\n\t var $it = it.util.copy(it);\n\t var $closingBraces = '';\n\t $it.level++;\n\t var $nextValid = 'valid' + $it.level;\n\t var $idx = 'i' + $lvl,\n\t $dataNxt = $it.dataLevel = it.dataLevel + 1,\n\t $nextData = 'data' + $dataNxt,\n\t $currentBaseId = it.baseId,\n\t $nonEmptySchema = it.util.schemaHasRules($schema, it.RULES.all);\n\t out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n\t if ($nonEmptySchema) {\n\t var $wasComposite = it.compositeRule;\n\t it.compositeRule = $it.compositeRule = true;\n\t $it.schema = $schema;\n\t $it.schemaPath = $schemaPath;\n\t $it.errSchemaPath = $errSchemaPath;\n\t out += ' var ' + ($nextValid) + ' = false; for (var ' + ($idx) + ' = 0; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n\t $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n\t var $passData = $data + '[' + $idx + ']';\n\t $it.dataPathArr[$dataNxt] = $idx;\n\t var $code = it.validate($it);\n\t $it.baseId = $currentBaseId;\n\t if (it.util.varOccurences($code, $nextData) < 2) {\n\t out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n\t } else {\n\t out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n\t }\n\t out += ' if (' + ($nextValid) + ') break; } ';\n\t it.compositeRule = $it.compositeRule = $wasComposite;\n\t out += ' ' + ($closingBraces) + ' if (!' + ($nextValid) + ') {';\n\t } else {\n\t out += ' if (' + ($data) + '.length == 0) {';\n\t }\n\t var $$outStack = $$outStack || [];\n\t $$outStack.push(out);\n\t out = ''; /* istanbul ignore else */\n\t if (it.createErrors !== false) {\n\t out += ' { keyword: \\'' + ('contains') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n\t if (it.opts.messages !== false) {\n\t out += ' , message: \\'should contain a valid item\\' ';\n\t }\n\t if (it.opts.verbose) {\n\t out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n\t }\n\t out += ' } ';\n\t } else {\n\t out += ' {} ';\n\t }\n\t var __err = out;\n\t out = $$outStack.pop();\n\t if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */\n\t if (it.async) {\n\t out += ' throw new ValidationError([' + (__err) + ']); ';\n\t } else {\n\t out += ' validate.errors = [' + (__err) + ']; return false; ';\n\t }\n\t } else {\n\t out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n\t }\n\t out += ' } else { ';\n\t if ($nonEmptySchema) {\n\t out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n\t }\n\t if (it.opts.allErrors) {\n\t out += ' } ';\n\t }\n\t out = it.util.cleanUpCode(out);\n\t return out;\n\t}\n\n\n/***/ },\n/* 31 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\tmodule.exports = function generate_dependencies(it, $keyword, $ruleType) {\n\t var out = ' ';\n\t var $lvl = it.level;\n\t var $dataLvl = it.dataLevel;\n\t var $schema = it.schema[$keyword];\n\t var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n\t var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n\t var $breakOnError = !it.opts.allErrors;\n\t var $data = 'data' + ($dataLvl || '');\n\t var $errs = 'errs__' + $lvl;\n\t var $it = it.util.copy(it);\n\t var $closingBraces = '';\n\t $it.level++;\n\t var $nextValid = 'valid' + $it.level;\n\t var $schemaDeps = {},\n\t $propertyDeps = {},\n\t $ownProperties = it.opts.ownProperties;\n\t for ($property in $schema) {\n\t var $sch = $schema[$property];\n\t var $deps = Array.isArray($sch) ? $propertyDeps : $schemaDeps;\n\t $deps[$property] = $sch;\n\t }\n\t out += 'var ' + ($errs) + ' = errors;';\n\t var $currentErrorPath = it.errorPath;\n\t out += 'var missing' + ($lvl) + ';';\n\t for (var $property in $propertyDeps) {\n\t $deps = $propertyDeps[$property];\n\t if ($deps.length) {\n\t out += ' if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';\n\t if ($ownProperties) {\n\t out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($property)) + '\\') ';\n\t }\n\t if ($breakOnError) {\n\t out += ' && ( ';\n\t var arr1 = $deps;\n\t if (arr1) {\n\t var $propertyKey, $i = -1,\n\t l1 = arr1.length - 1;\n\t while ($i < l1) {\n\t $propertyKey = arr1[$i += 1];\n\t if ($i) {\n\t out += ' || ';\n\t }\n\t var $prop = it.util.getProperty($propertyKey),\n\t $useData = $data + $prop;\n\t out += ' ( ( ' + ($useData) + ' === undefined ';\n\t if ($ownProperties) {\n\t out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n\t }\n\t out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';\n\t }\n\t }\n\t out += ')) { ';\n\t var $propertyPath = 'missing' + $lvl,\n\t $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n\t if (it.opts._errorDataPathProperty) {\n\t it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;\n\t }\n\t var $$outStack = $$outStack || [];\n\t $$outStack.push(out);\n\t out = ''; /* istanbul ignore else */\n\t if (it.createErrors !== false) {\n\t out += ' { keyword: \\'' + ('dependencies') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \\'' + (it.util.escapeQuotes($property)) + '\\', missingProperty: \\'' + ($missingProperty) + '\\', depsCount: ' + ($deps.length) + ', deps: \\'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(\", \"))) + '\\' } ';\n\t if (it.opts.messages !== false) {\n\t out += ' , message: \\'should have ';\n\t if ($deps.length == 1) {\n\t out += 'property ' + (it.util.escapeQuotes($deps[0]));\n\t } else {\n\t out += 'properties ' + (it.util.escapeQuotes($deps.join(\", \")));\n\t }\n\t out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\\' ';\n\t }\n\t if (it.opts.verbose) {\n\t out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n\t }\n\t out += ' } ';\n\t } else {\n\t out += ' {} ';\n\t }\n\t var __err = out;\n\t out = $$outStack.pop();\n\t if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */\n\t if (it.async) {\n\t out += ' throw new ValidationError([' + (__err) + ']); ';\n\t } else {\n\t out += ' validate.errors = [' + (__err) + ']; return false; ';\n\t }\n\t } else {\n\t out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n\t }\n\t } else {\n\t out += ' ) { ';\n\t var arr2 = $deps;\n\t if (arr2) {\n\t var $propertyKey, i2 = -1,\n\t l2 = arr2.length - 1;\n\t while (i2 < l2) {\n\t $propertyKey = arr2[i2 += 1];\n\t var $prop = it.util.getProperty($propertyKey),\n\t $missingProperty = it.util.escapeQuotes($propertyKey),\n\t $useData = $data + $prop;\n\t if (it.opts._errorDataPathProperty) {\n\t it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n\t }\n\t out += ' if ( ' + ($useData) + ' === undefined ';\n\t if ($ownProperties) {\n\t out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n\t }\n\t out += ') { var err = '; /* istanbul ignore else */\n\t if (it.createErrors !== false) {\n\t out += ' { keyword: \\'' + ('dependencies') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \\'' + (it.util.escapeQuotes($property)) + '\\', missingProperty: \\'' + ($missingProperty) + '\\', depsCount: ' + ($deps.length) + ', deps: \\'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(\", \"))) + '\\' } ';\n\t if (it.opts.messages !== false) {\n\t out += ' , message: \\'should have ';\n\t if ($deps.length == 1) {\n\t out += 'property ' + (it.util.escapeQuotes($deps[0]));\n\t } else {\n\t out += 'properties ' + (it.util.escapeQuotes($deps.join(\", \")));\n\t }\n\t out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\\' ';\n\t }\n\t if (it.opts.verbose) {\n\t out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n\t }\n\t out += ' } ';\n\t } else {\n\t out += ' {} ';\n\t }\n\t out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n\t }\n\t }\n\t }\n\t out += ' } ';\n\t if ($breakOnError) {\n\t $closingBraces += '}';\n\t out += ' else { ';\n\t }\n\t }\n\t }\n\t it.errorPath = $currentErrorPath;\n\t var $currentBaseId = $it.baseId;\n\t for (var $property in $schemaDeps) {\n\t var $sch = $schemaDeps[$property];\n\t if (it.util.schemaHasRules($sch, it.RULES.all)) {\n\t out += ' ' + ($nextValid) + ' = true; if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';\n\t if ($ownProperties) {\n\t out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($property)) + '\\') ';\n\t }\n\t out += ') { ';\n\t $it.schema = $sch;\n\t $it.schemaPath = $schemaPath + it.util.getProperty($property);\n\t $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($property);\n\t out += ' ' + (it.validate($it)) + ' ';\n\t $it.baseId = $currentBaseId;\n\t out += ' } ';\n\t if ($breakOnError) {\n\t out += ' if (' + ($nextValid) + ') { ';\n\t $closingBraces += '}';\n\t }\n\t }\n\t }\n\t if ($breakOnError) {\n\t out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n\t }\n\t out = it.util.cleanUpCode(out);\n\t return out;\n\t}\n\n\n/***/ },\n/* 32 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\tmodule.exports = function generate_enum(it, $keyword, $ruleType) {\n\t var out = ' ';\n\t var $lvl = it.level;\n\t var $dataLvl = it.dataLevel;\n\t var $schema = it.schema[$keyword];\n\t var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n\t var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n\t var $breakOnError = !it.opts.allErrors;\n\t var $data = 'data' + ($dataLvl || '');\n\t var $valid = 'valid' + $lvl;\n\t var $isData = it.opts.$data && $schema && $schema.$data,\n\t $schemaValue;\n\t if ($isData) {\n\t out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n\t $schemaValue = 'schema' + $lvl;\n\t } else {\n\t $schemaValue = $schema;\n\t }\n\t var $i = 'i' + $lvl,\n\t $vSchema = 'schema' + $lvl;\n\t if (!$isData) {\n\t out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + ';';\n\t }\n\t out += 'var ' + ($valid) + ';';\n\t if ($isData) {\n\t out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n\t }\n\t out += '' + ($valid) + ' = false;for (var ' + ($i) + '=0; ' + ($i) + '<' + ($vSchema) + '.length; ' + ($i) + '++) if (equal(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + '])) { ' + ($valid) + ' = true; break; }';\n\t if ($isData) {\n\t out += ' } ';\n\t }\n\t out += ' if (!' + ($valid) + ') { ';\n\t var $$outStack = $$outStack || [];\n\t $$outStack.push(out);\n\t out = ''; /* istanbul ignore else */\n\t if (it.createErrors !== false) {\n\t out += ' { keyword: \\'' + ('enum') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValues: schema' + ($lvl) + ' } ';\n\t if (it.opts.messages !== false) {\n\t out += ' , message: \\'should be equal to one of the allowed values\\' ';\n\t }\n\t if (it.opts.verbose) {\n\t out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n\t }\n\t out += ' } ';\n\t } else {\n\t out += ' {} ';\n\t }\n\t var __err = out;\n\t out = $$outStack.pop();\n\t if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */\n\t if (it.async) {\n\t out += ' throw new ValidationError([' + (__err) + ']); ';\n\t } else {\n\t out += ' validate.errors = [' + (__err) + ']; return false; ';\n\t }\n\t } else {\n\t out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n\t }\n\t out += ' }';\n\t if ($breakOnError) {\n\t out += ' else { ';\n\t }\n\t return out;\n\t}\n\n\n/***/ },\n/* 33 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\tmodule.exports = function generate_format(it, $keyword, $ruleType) {\n\t var out = ' ';\n\t var $lvl = it.level;\n\t var $dataLvl = it.dataLevel;\n\t var $schema = it.schema[$keyword];\n\t var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n\t var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n\t var $breakOnError = !it.opts.allErrors;\n\t var $data = 'data' + ($dataLvl || '');\n\t if (it.opts.format === false) {\n\t if ($breakOnError) {\n\t out += ' if (true) { ';\n\t }\n\t return out;\n\t }\n\t var $isData = it.opts.$data && $schema && $schema.$data,\n\t $schemaValue;\n\t if ($isData) {\n\t out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n\t $schemaValue = 'schema' + $lvl;\n\t } else {\n\t $schemaValue = $schema;\n\t }\n\t var $unknownFormats = it.opts.unknownFormats,\n\t $allowUnknown = Array.isArray($unknownFormats);\n\t if ($isData) {\n\t var $format = 'format' + $lvl,\n\t $isObject = 'isObject' + $lvl,\n\t $formatType = 'formatType' + $lvl;\n\t out += ' var ' + ($format) + ' = formats[' + ($schemaValue) + ']; var ' + ($isObject) + ' = typeof ' + ($format) + ' == \\'object\\' && !(' + ($format) + ' instanceof RegExp) && ' + ($format) + '.validate; var ' + ($formatType) + ' = ' + ($isObject) + ' && ' + ($format) + '.type || \\'string\\'; if (' + ($isObject) + ') { ';\n\t if (it.async) {\n\t out += ' var async' + ($lvl) + ' = ' + ($format) + '.async; ';\n\t }\n\t out += ' ' + ($format) + ' = ' + ($format) + '.validate; } if ( ';\n\t if ($isData) {\n\t out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n\t }\n\t out += ' (';\n\t if ($unknownFormats != 'ignore') {\n\t out += ' (' + ($schemaValue) + ' && !' + ($format) + ' ';\n\t if ($allowUnknown) {\n\t out += ' && self._opts.unknownFormats.indexOf(' + ($schemaValue) + ') == -1 ';\n\t }\n\t out += ') || ';\n\t }\n\t out += ' (' + ($format) + ' && ' + ($formatType) + ' == \\'' + ($ruleType) + '\\' && !(typeof ' + ($format) + ' == \\'function\\' ? ';\n\t if (it.async) {\n\t out += ' (async' + ($lvl) + ' ? ' + (it.yieldAwait) + ' ' + ($format) + '(' + ($data) + ') : ' + ($format) + '(' + ($data) + ')) ';\n\t } else {\n\t out += ' ' + ($format) + '(' + ($data) + ') ';\n\t }\n\t out += ' : ' + ($format) + '.test(' + ($data) + '))))) {';\n\t } else {\n\t var $format = it.formats[$schema];\n\t if (!$format) {\n\t if ($unknownFormats == 'ignore') {\n\t console.warn('unknown format \"' + $schema + '\" ignored in schema at path \"' + it.errSchemaPath + '\"');\n\t if ($breakOnError) {\n\t out += ' if (true) { ';\n\t }\n\t return out;\n\t } else if ($allowUnknown && $unknownFormats.indexOf($schema) >= 0) {\n\t if ($breakOnError) {\n\t out += ' if (true) { ';\n\t }\n\t return out;\n\t } else {\n\t throw new Error('unknown format \"' + $schema + '\" is used in schema at path \"' + it.errSchemaPath + '\"');\n\t }\n\t }\n\t var $isObject = typeof $format == 'object' && !($format instanceof RegExp) && $format.validate;\n\t var $formatType = $isObject && $format.type || 'string';\n\t if ($isObject) {\n\t var $async = $format.async === true;\n\t $format = $format.validate;\n\t }\n\t if ($formatType != $ruleType) {\n\t if ($breakOnError) {\n\t out += ' if (true) { ';\n\t }\n\t return out;\n\t }\n\t if ($async) {\n\t if (!it.async) throw new Error('async format in sync schema');\n\t var $formatRef = 'formats' + it.util.getProperty($schema) + '.validate';\n\t out += ' if (!(' + (it.yieldAwait) + ' ' + ($formatRef) + '(' + ($data) + '))) { ';\n\t } else {\n\t out += ' if (! ';\n\t var $formatRef = 'formats' + it.util.getProperty($schema);\n\t if ($isObject) $formatRef += '.validate';\n\t if (typeof $format == 'function') {\n\t out += ' ' + ($formatRef) + '(' + ($data) + ') ';\n\t } else {\n\t out += ' ' + ($formatRef) + '.test(' + ($data) + ') ';\n\t }\n\t out += ') { ';\n\t }\n\t }\n\t var $$outStack = $$outStack || [];\n\t $$outStack.push(out);\n\t out = ''; /* istanbul ignore else */\n\t if (it.createErrors !== false) {\n\t out += ' { keyword: \\'' + ('format') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { format: ';\n\t if ($isData) {\n\t out += '' + ($schemaValue);\n\t } else {\n\t out += '' + (it.util.toQuotedString($schema));\n\t }\n\t out += ' } ';\n\t if (it.opts.messages !== false) {\n\t out += ' , message: \\'should match format \"';\n\t if ($isData) {\n\t out += '\\' + ' + ($schemaValue) + ' + \\'';\n\t } else {\n\t out += '' + (it.util.escapeQuotes($schema));\n\t }\n\t out += '\"\\' ';\n\t }\n\t if (it.opts.verbose) {\n\t out += ' , schema: ';\n\t if ($isData) {\n\t out += 'validate.schema' + ($schemaPath);\n\t } else {\n\t out += '' + (it.util.toQuotedString($schema));\n\t }\n\t out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n\t }\n\t out += ' } ';\n\t } else {\n\t out += ' {} ';\n\t }\n\t var __err = out;\n\t out = $$outStack.pop();\n\t if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */\n\t if (it.async) {\n\t out += ' throw new ValidationError([' + (__err) + ']); ';\n\t } else {\n\t out += ' validate.errors = [' + (__err) + ']; return false; ';\n\t }\n\t } else {\n\t out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n\t }\n\t out += ' } ';\n\t if ($breakOnError) {\n\t out += ' else { ';\n\t }\n\t return out;\n\t}\n\n\n/***/ },\n/* 34 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\tmodule.exports = function generate_items(it, $keyword, $ruleType) {\n\t var out = ' ';\n\t var $lvl = it.level;\n\t var $dataLvl = it.dataLevel;\n\t var $schema = it.schema[$keyword];\n\t var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n\t var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n\t var $breakOnError = !it.opts.allErrors;\n\t var $data = 'data' + ($dataLvl || '');\n\t var $valid = 'valid' + $lvl;\n\t var $errs = 'errs__' + $lvl;\n\t var $it = it.util.copy(it);\n\t var $closingBraces = '';\n\t $it.level++;\n\t var $nextValid = 'valid' + $it.level;\n\t var $idx = 'i' + $lvl,\n\t $dataNxt = $it.dataLevel = it.dataLevel + 1,\n\t $nextData = 'data' + $dataNxt,\n\t $currentBaseId = it.baseId;\n\t out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n\t if (Array.isArray($schema)) {\n\t var $additionalItems = it.schema.additionalItems;\n\t if ($additionalItems === false) {\n\t out += ' ' + ($valid) + ' = ' + ($data) + '.length <= ' + ($schema.length) + '; ';\n\t var $currErrSchemaPath = $errSchemaPath;\n\t $errSchemaPath = it.errSchemaPath + '/additionalItems';\n\t out += ' if (!' + ($valid) + ') { ';\n\t var $$outStack = $$outStack || [];\n\t $$outStack.push(out);\n\t out = ''; /* istanbul ignore else */\n\t if (it.createErrors !== false) {\n\t out += ' { keyword: \\'' + ('additionalItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schema.length) + ' } ';\n\t if (it.opts.messages !== false) {\n\t out += ' , message: \\'should NOT have more than ' + ($schema.length) + ' items\\' ';\n\t }\n\t if (it.opts.verbose) {\n\t out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n\t }\n\t out += ' } ';\n\t } else {\n\t out += ' {} ';\n\t }\n\t var __err = out;\n\t out = $$outStack.pop();\n\t if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */\n\t if (it.async) {\n\t out += ' throw new ValidationError([' + (__err) + ']); ';\n\t } else {\n\t out += ' validate.errors = [' + (__err) + ']; return false; ';\n\t }\n\t } else {\n\t out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n\t }\n\t out += ' } ';\n\t $errSchemaPath = $currErrSchemaPath;\n\t if ($breakOnError) {\n\t $closingBraces += '}';\n\t out += ' else { ';\n\t }\n\t }\n\t var arr1 = $schema;\n\t if (arr1) {\n\t var $sch, $i = -1,\n\t l1 = arr1.length - 1;\n\t while ($i < l1) {\n\t $sch = arr1[$i += 1];\n\t if (it.util.schemaHasRules($sch, it.RULES.all)) {\n\t out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($i) + ') { ';\n\t var $passData = $data + '[' + $i + ']';\n\t $it.schema = $sch;\n\t $it.schemaPath = $schemaPath + '[' + $i + ']';\n\t $it.errSchemaPath = $errSchemaPath + '/' + $i;\n\t $it.errorPath = it.util.getPathExpr(it.errorPath, $i, it.opts.jsonPointers, true);\n\t $it.dataPathArr[$dataNxt] = $i;\n\t var $code = it.validate($it);\n\t $it.baseId = $currentBaseId;\n\t if (it.util.varOccurences($code, $nextData) < 2) {\n\t out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n\t } else {\n\t out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n\t }\n\t out += ' } ';\n\t if ($breakOnError) {\n\t out += ' if (' + ($nextValid) + ') { ';\n\t $closingBraces += '}';\n\t }\n\t }\n\t }\n\t }\n\t if (typeof $additionalItems == 'object' && it.util.schemaHasRules($additionalItems, it.RULES.all)) {\n\t $it.schema = $additionalItems;\n\t $it.schemaPath = it.schemaPath + '.additionalItems';\n\t $it.errSchemaPath = it.errSchemaPath + '/additionalItems';\n\t out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($schema.length) + ') { for (var ' + ($idx) + ' = ' + ($schema.length) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n\t $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n\t var $passData = $data + '[' + $idx + ']';\n\t $it.dataPathArr[$dataNxt] = $idx;\n\t var $code = it.validate($it);\n\t $it.baseId = $currentBaseId;\n\t if (it.util.varOccurences($code, $nextData) < 2) {\n\t out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n\t } else {\n\t out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n\t }\n\t if ($breakOnError) {\n\t out += ' if (!' + ($nextValid) + ') break; ';\n\t }\n\t out += ' } } ';\n\t if ($breakOnError) {\n\t out += ' if (' + ($nextValid) + ') { ';\n\t $closingBraces += '}';\n\t }\n\t }\n\t } else if (it.util.schemaHasRules($schema, it.RULES.all)) {\n\t $it.schema = $schema;\n\t $it.schemaPath = $schemaPath;\n\t $it.errSchemaPath = $errSchemaPath;\n\t out += ' for (var ' + ($idx) + ' = ' + (0) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n\t $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n\t var $passData = $data + '[' + $idx + ']';\n\t $it.dataPathArr[$dataNxt] = $idx;\n\t var $code = it.validate($it);\n\t $it.baseId = $currentBaseId;\n\t if (it.util.varOccurences($code, $nextData) < 2) {\n\t out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n\t } else {\n\t out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n\t }\n\t if ($breakOnError) {\n\t out += ' if (!' + ($nextValid) + ') break; ';\n\t }\n\t out += ' }';\n\t }\n\t if ($breakOnError) {\n\t out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n\t }\n\t out = it.util.cleanUpCode(out);\n\t return out;\n\t}\n\n\n/***/ },\n/* 35 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\tmodule.exports = function generate__limit(it, $keyword, $ruleType) {\n\t var out = ' ';\n\t var $lvl = it.level;\n\t var $dataLvl = it.dataLevel;\n\t var $schema = it.schema[$keyword];\n\t var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n\t var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n\t var $breakOnError = !it.opts.allErrors;\n\t var $errorKeyword;\n\t var $data = 'data' + ($dataLvl || '');\n\t var $isData = it.opts.$data && $schema && $schema.$data,\n\t $schemaValue;\n\t if ($isData) {\n\t out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n\t $schemaValue = 'schema' + $lvl;\n\t } else {\n\t $schemaValue = $schema;\n\t }\n\t var $isMax = $keyword == 'maximum',\n\t $exclusiveKeyword = $isMax ? 'exclusiveMaximum' : 'exclusiveMinimum',\n\t $schemaExcl = it.schema[$exclusiveKeyword],\n\t $isDataExcl = it.opts.$data && $schemaExcl && $schemaExcl.$data,\n\t $op = $isMax ? '<' : '>',\n\t $notOp = $isMax ? '>' : '<',\n\t $errorKeyword = undefined;\n\t if ($isDataExcl) {\n\t var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr),\n\t $exclusive = 'exclusive' + $lvl,\n\t $exclType = 'exclType' + $lvl,\n\t $exclIsNumber = 'exclIsNumber' + $lvl,\n\t $opExpr = 'op' + $lvl,\n\t $opStr = '\\' + ' + $opExpr + ' + \\'';\n\t out += ' var schemaExcl' + ($lvl) + ' = ' + ($schemaValueExcl) + '; ';\n\t $schemaValueExcl = 'schemaExcl' + $lvl;\n\t out += ' var ' + ($exclusive) + '; var ' + ($exclType) + ' = typeof ' + ($schemaValueExcl) + '; if (' + ($exclType) + ' != \\'boolean\\' && ' + ($exclType) + ' != \\'undefined\\' && ' + ($exclType) + ' != \\'number\\') { ';\n\t var $errorKeyword = $exclusiveKeyword;\n\t var $$outStack = $$outStack || [];\n\t $$outStack.push(out);\n\t out = ''; /* istanbul ignore else */\n\t if (it.createErrors !== false) {\n\t out += ' { keyword: \\'' + ($errorKeyword || '_exclusiveLimit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n\t if (it.opts.messages !== false) {\n\t out += ' , message: \\'' + ($exclusiveKeyword) + ' should be boolean\\' ';\n\t }\n\t if (it.opts.verbose) {\n\t out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n\t }\n\t out += ' } ';\n\t } else {\n\t out += ' {} ';\n\t }\n\t var __err = out;\n\t out = $$outStack.pop();\n\t if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */\n\t if (it.async) {\n\t out += ' throw new ValidationError([' + (__err) + ']); ';\n\t } else {\n\t out += ' validate.errors = [' + (__err) + ']; return false; ';\n\t }\n\t } else {\n\t out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n\t }\n\t out += ' } else if ( ';\n\t if ($isData) {\n\t out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n\t }\n\t out += ' ' + ($exclType) + ' == \\'number\\' ? ( (' + ($exclusive) + ' = ' + ($schemaValue) + ' === undefined || ' + ($schemaValueExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ') ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValueExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) : ( (' + ($exclusive) + ' = ' + ($schemaValueExcl) + ' === true) ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValue) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { var op' + ($lvl) + ' = ' + ($exclusive) + ' ? \\'' + ($op) + '\\' : \\'' + ($op) + '=\\';';\n\t } else {\n\t var $exclIsNumber = typeof $schemaExcl == 'number',\n\t $opStr = $op;\n\t if ($exclIsNumber && $isData) {\n\t var $opExpr = '\\'' + $opStr + '\\'';\n\t out += ' if ( ';\n\t if ($isData) {\n\t out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n\t }\n\t out += ' ( ' + ($schemaValue) + ' === undefined || ' + ($schemaExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ' ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { ';\n\t } else {\n\t if ($exclIsNumber && $schema === undefined) {\n\t $exclusive = true;\n\t $errorKeyword = $exclusiveKeyword;\n\t $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n\t $schemaValue = $schemaExcl;\n\t $notOp += '=';\n\t } else {\n\t if ($exclIsNumber) $schemaValue = Math[$isMax ? 'min' : 'max']($schemaExcl, $schema);\n\t if ($schemaExcl === ($exclIsNumber ? $schemaValue : true)) {\n\t $exclusive = true;\n\t $errorKeyword = $exclusiveKeyword;\n\t $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n\t $notOp += '=';\n\t } else {\n\t $exclusive = false;\n\t $opStr += '=';\n\t }\n\t }\n\t var $opExpr = '\\'' + $opStr + '\\'';\n\t out += ' if ( ';\n\t if ($isData) {\n\t out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n\t }\n\t out += ' ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' || ' + ($data) + ' !== ' + ($data) + ') { ';\n\t }\n\t }\n\t $errorKeyword = $errorKeyword || $keyword;\n\t var $$outStack = $$outStack || [];\n\t $$outStack.push(out);\n\t out = ''; /* istanbul ignore else */\n\t if (it.createErrors !== false) {\n\t out += ' { keyword: \\'' + ($errorKeyword || '_limit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { comparison: ' + ($opExpr) + ', limit: ' + ($schemaValue) + ', exclusive: ' + ($exclusive) + ' } ';\n\t if (it.opts.messages !== false) {\n\t out += ' , message: \\'should be ' + ($opStr) + ' ';\n\t if ($isData) {\n\t out += '\\' + ' + ($schemaValue);\n\t } else {\n\t out += '' + ($schemaValue) + '\\'';\n\t }\n\t }\n\t if (it.opts.verbose) {\n\t out += ' , schema: ';\n\t if ($isData) {\n\t out += 'validate.schema' + ($schemaPath);\n\t } else {\n\t out += '' + ($schema);\n\t }\n\t out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n\t }\n\t out += ' } ';\n\t } else {\n\t out += ' {} ';\n\t }\n\t var __err = out;\n\t out = $$outStack.pop();\n\t if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */\n\t if (it.async) {\n\t out += ' throw new ValidationError([' + (__err) + ']); ';\n\t } else {\n\t out += ' validate.errors = [' + (__err) + ']; return false; ';\n\t }\n\t } else {\n\t out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n\t }\n\t out += ' } ';\n\t if ($breakOnError) {\n\t out += ' else { ';\n\t }\n\t return out;\n\t}\n\n\n/***/ },\n/* 36 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\tmodule.exports = function generate__limitItems(it, $keyword, $ruleType) {\n\t var out = ' ';\n\t var $lvl = it.level;\n\t var $dataLvl = it.dataLevel;\n\t var $schema = it.schema[$keyword];\n\t var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n\t var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n\t var $breakOnError = !it.opts.allErrors;\n\t var $errorKeyword;\n\t var $data = 'data' + ($dataLvl || '');\n\t var $isData = it.opts.$data && $schema && $schema.$data,\n\t $schemaValue;\n\t if ($isData) {\n\t out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n\t $schemaValue = 'schema' + $lvl;\n\t } else {\n\t $schemaValue = $schema;\n\t }\n\t var $op = $keyword == 'maxItems' ? '>' : '<';\n\t out += 'if ( ';\n\t if ($isData) {\n\t out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n\t }\n\t out += ' ' + ($data) + '.length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n\t var $errorKeyword = $keyword;\n\t var $$outStack = $$outStack || [];\n\t $$outStack.push(out);\n\t out = ''; /* istanbul ignore else */\n\t if (it.createErrors !== false) {\n\t out += ' { keyword: \\'' + ($errorKeyword || '_limitItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n\t if (it.opts.messages !== false) {\n\t out += ' , message: \\'should NOT have ';\n\t if ($keyword == 'maxItems') {\n\t out += 'more';\n\t } else {\n\t out += 'less';\n\t }\n\t out += ' than ';\n\t if ($isData) {\n\t out += '\\' + ' + ($schemaValue) + ' + \\'';\n\t } else {\n\t out += '' + ($schema);\n\t }\n\t out += ' items\\' ';\n\t }\n\t if (it.opts.verbose) {\n\t out += ' , schema: ';\n\t if ($isData) {\n\t out += 'validate.schema' + ($schemaPath);\n\t } else {\n\t out += '' + ($schema);\n\t }\n\t out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n\t }\n\t out += ' } ';\n\t } else {\n\t out += ' {} ';\n\t }\n\t var __err = out;\n\t out = $$outStack.pop();\n\t if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */\n\t if (it.async) {\n\t out += ' throw new ValidationError([' + (__err) + ']); ';\n\t } else {\n\t out += ' validate.errors = [' + (__err) + ']; return false; ';\n\t }\n\t } else {\n\t out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n\t }\n\t out += '} ';\n\t if ($breakOnError) {\n\t out += ' else { ';\n\t }\n\t return out;\n\t}\n\n\n/***/ },\n/* 37 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\tmodule.exports = function generate__limitLength(it, $keyword, $ruleType) {\n\t var out = ' ';\n\t var $lvl = it.level;\n\t var $dataLvl = it.dataLevel;\n\t var $schema = it.schema[$keyword];\n\t var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n\t var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n\t var $breakOnError = !it.opts.allErrors;\n\t var $errorKeyword;\n\t var $data = 'data' + ($dataLvl || '');\n\t var $isData = it.opts.$data && $schema && $schema.$data,\n\t $schemaValue;\n\t if ($isData) {\n\t out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n\t $schemaValue = 'schema' + $lvl;\n\t } else {\n\t $schemaValue = $schema;\n\t }\n\t var $op = $keyword == 'maxLength' ? '>' : '<';\n\t out += 'if ( ';\n\t if ($isData) {\n\t out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n\t }\n\t if (it.opts.unicode === false) {\n\t out += ' ' + ($data) + '.length ';\n\t } else {\n\t out += ' ucs2length(' + ($data) + ') ';\n\t }\n\t out += ' ' + ($op) + ' ' + ($schemaValue) + ') { ';\n\t var $errorKeyword = $keyword;\n\t var $$outStack = $$outStack || [];\n\t $$outStack.push(out);\n\t out = ''; /* istanbul ignore else */\n\t if (it.createErrors !== false) {\n\t out += ' { keyword: \\'' + ($errorKeyword || '_limitLength') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n\t if (it.opts.messages !== false) {\n\t out += ' , message: \\'should NOT be ';\n\t if ($keyword == 'maxLength') {\n\t out += 'longer';\n\t } else {\n\t out += 'shorter';\n\t }\n\t out += ' than ';\n\t if ($isData) {\n\t out += '\\' + ' + ($schemaValue) + ' + \\'';\n\t } else {\n\t out += '' + ($schema);\n\t }\n\t out += ' characters\\' ';\n\t }\n\t if (it.opts.verbose) {\n\t out += ' , schema: ';\n\t if ($isData) {\n\t out += 'validate.schema' + ($schemaPath);\n\t } else {\n\t out += '' + ($schema);\n\t }\n\t out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n\t }\n\t out += ' } ';\n\t } else {\n\t out += ' {} ';\n\t }\n\t var __err = out;\n\t out = $$outStack.pop();\n\t if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */\n\t if (it.async) {\n\t out += ' throw new ValidationError([' + (__err) + ']); ';\n\t } else {\n\t out += ' validate.errors = [' + (__err) + ']; return false; ';\n\t }\n\t } else {\n\t out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n\t }\n\t out += '} ';\n\t if ($breakOnError) {\n\t out += ' else { ';\n\t }\n\t return out;\n\t}\n\n\n/***/ },\n/* 38 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\tmodule.exports = function generate__limitProperties(it, $keyword, $ruleType) {\n\t var out = ' ';\n\t var $lvl = it.level;\n\t var $dataLvl = it.dataLevel;\n\t var $schema = it.schema[$keyword];\n\t var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n\t var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n\t var $breakOnError = !it.opts.allErrors;\n\t var $errorKeyword;\n\t var $data = 'data' + ($dataLvl || '');\n\t var $isData = it.opts.$data && $schema && $schema.$data,\n\t $schemaValue;\n\t if ($isData) {\n\t out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n\t $schemaValue = 'schema' + $lvl;\n\t } else {\n\t $schemaValue = $schema;\n\t }\n\t var $op = $keyword == 'maxProperties' ? '>' : '<';\n\t out += 'if ( ';\n\t if ($isData) {\n\t out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n\t }\n\t out += ' Object.keys(' + ($data) + ').length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n\t var $errorKeyword = $keyword;\n\t var $$outStack = $$outStack || [];\n\t $$outStack.push(out);\n\t out = ''; /* istanbul ignore else */\n\t if (it.createErrors !== false) {\n\t out += ' { keyword: \\'' + ($errorKeyword || '_limitProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n\t if (it.opts.messages !== false) {\n\t out += ' , message: \\'should NOT have ';\n\t if ($keyword == 'maxProperties') {\n\t out += 'more';\n\t } else {\n\t out += 'less';\n\t }\n\t out += ' than ';\n\t if ($isData) {\n\t out += '\\' + ' + ($schemaValue) + ' + \\'';\n\t } else {\n\t out += '' + ($schema);\n\t }\n\t out += ' properties\\' ';\n\t }\n\t if (it.opts.verbose) {\n\t out += ' , schema: ';\n\t if ($isData) {\n\t out += 'validate.schema' + ($schemaPath);\n\t } else {\n\t out += '' + ($schema);\n\t }\n\t out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n\t }\n\t out += ' } ';\n\t } else {\n\t out += ' {} ';\n\t }\n\t var __err = out;\n\t out = $$outStack.pop();\n\t if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */\n\t if (it.async) {\n\t out += ' throw new ValidationError([' + (__err) + ']); ';\n\t } else {\n\t out += ' validate.errors = [' + (__err) + ']; return false; ';\n\t }\n\t } else {\n\t out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n\t }\n\t out += '} ';\n\t if ($breakOnError) {\n\t out += ' else { ';\n\t }\n\t return out;\n\t}\n\n\n/***/ },\n/* 39 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\tmodule.exports = function generate_multipleOf(it, $keyword, $ruleType) {\n\t var out = ' ';\n\t var $lvl = it.level;\n\t var $dataLvl = it.dataLevel;\n\t var $schema = it.schema[$keyword];\n\t var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n\t var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n\t var $breakOnError = !it.opts.allErrors;\n\t var $data = 'data' + ($dataLvl || '');\n\t var $isData = it.opts.$data && $schema && $schema.$data,\n\t $schemaValue;\n\t if ($isData) {\n\t out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n\t $schemaValue = 'schema' + $lvl;\n\t } else {\n\t $schemaValue = $schema;\n\t }\n\t out += 'var division' + ($lvl) + ';if (';\n\t if ($isData) {\n\t out += ' ' + ($schemaValue) + ' !== undefined && ( typeof ' + ($schemaValue) + ' != \\'number\\' || ';\n\t }\n\t out += ' (division' + ($lvl) + ' = ' + ($data) + ' / ' + ($schemaValue) + ', ';\n\t if (it.opts.multipleOfPrecision) {\n\t out += ' Math.abs(Math.round(division' + ($lvl) + ') - division' + ($lvl) + ') > 1e-' + (it.opts.multipleOfPrecision) + ' ';\n\t } else {\n\t out += ' division' + ($lvl) + ' !== parseInt(division' + ($lvl) + ') ';\n\t }\n\t out += ' ) ';\n\t if ($isData) {\n\t out += ' ) ';\n\t }\n\t out += ' ) { ';\n\t var $$outStack = $$outStack || [];\n\t $$outStack.push(out);\n\t out = ''; /* istanbul ignore else */\n\t if (it.createErrors !== false) {\n\t out += ' { keyword: \\'' + ('multipleOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { multipleOf: ' + ($schemaValue) + ' } ';\n\t if (it.opts.messages !== false) {\n\t out += ' , message: \\'should be multiple of ';\n\t if ($isData) {\n\t out += '\\' + ' + ($schemaValue);\n\t } else {\n\t out += '' + ($schemaValue) + '\\'';\n\t }\n\t }\n\t if (it.opts.verbose) {\n\t out += ' , schema: ';\n\t if ($isData) {\n\t out += 'validate.schema' + ($schemaPath);\n\t } else {\n\t out += '' + ($schema);\n\t }\n\t out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n\t }\n\t out += ' } ';\n\t } else {\n\t out += ' {} ';\n\t }\n\t var __err = out;\n\t out = $$outStack.pop();\n\t if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */\n\t if (it.async) {\n\t out += ' throw new ValidationError([' + (__err) + ']); ';\n\t } else {\n\t out += ' validate.errors = [' + (__err) + ']; return false; ';\n\t }\n\t } else {\n\t out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n\t }\n\t out += '} ';\n\t if ($breakOnError) {\n\t out += ' else { ';\n\t }\n\t return out;\n\t}\n\n\n/***/ },\n/* 40 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\tmodule.exports = function generate_not(it, $keyword, $ruleType) {\n\t var out = ' ';\n\t var $lvl = it.level;\n\t var $dataLvl = it.dataLevel;\n\t var $schema = it.schema[$keyword];\n\t var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n\t var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n\t var $breakOnError = !it.opts.allErrors;\n\t var $data = 'data' + ($dataLvl || '');\n\t var $errs = 'errs__' + $lvl;\n\t var $it = it.util.copy(it);\n\t $it.level++;\n\t var $nextValid = 'valid' + $it.level;\n\t if (it.util.schemaHasRules($schema, it.RULES.all)) {\n\t $it.schema = $schema;\n\t $it.schemaPath = $schemaPath;\n\t $it.errSchemaPath = $errSchemaPath;\n\t out += ' var ' + ($errs) + ' = errors; ';\n\t var $wasComposite = it.compositeRule;\n\t it.compositeRule = $it.compositeRule = true;\n\t $it.createErrors = false;\n\t var $allErrorsOption;\n\t if ($it.opts.allErrors) {\n\t $allErrorsOption = $it.opts.allErrors;\n\t $it.opts.allErrors = false;\n\t }\n\t out += ' ' + (it.validate($it)) + ' ';\n\t $it.createErrors = true;\n\t if ($allErrorsOption) $it.opts.allErrors = $allErrorsOption;\n\t it.compositeRule = $it.compositeRule = $wasComposite;\n\t out += ' if (' + ($nextValid) + ') { ';\n\t var $$outStack = $$outStack || [];\n\t $$outStack.push(out);\n\t out = ''; /* istanbul ignore else */\n\t if (it.createErrors !== false) {\n\t out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n\t if (it.opts.messages !== false) {\n\t out += ' , message: \\'should NOT be valid\\' ';\n\t }\n\t if (it.opts.verbose) {\n\t out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n\t }\n\t out += ' } ';\n\t } else {\n\t out += ' {} ';\n\t }\n\t var __err = out;\n\t out = $$outStack.pop();\n\t if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */\n\t if (it.async) {\n\t out += ' throw new ValidationError([' + (__err) + ']); ';\n\t } else {\n\t out += ' validate.errors = [' + (__err) + ']; return false; ';\n\t }\n\t } else {\n\t out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n\t }\n\t out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n\t if (it.opts.allErrors) {\n\t out += ' } ';\n\t }\n\t } else {\n\t out += ' var err = '; /* istanbul ignore else */\n\t if (it.createErrors !== false) {\n\t out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n\t if (it.opts.messages !== false) {\n\t out += ' , message: \\'should NOT be valid\\' ';\n\t }\n\t if (it.opts.verbose) {\n\t out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n\t }\n\t out += ' } ';\n\t } else {\n\t out += ' {} ';\n\t }\n\t out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n\t if ($breakOnError) {\n\t out += ' if (false) { ';\n\t }\n\t }\n\t return out;\n\t}\n\n\n/***/ },\n/* 41 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\tmodule.exports = function generate_oneOf(it, $keyword, $ruleType) {\n\t var out = ' ';\n\t var $lvl = it.level;\n\t var $dataLvl = it.dataLevel;\n\t var $schema = it.schema[$keyword];\n\t var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n\t var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n\t var $breakOnError = !it.opts.allErrors;\n\t var $data = 'data' + ($dataLvl || '');\n\t var $valid = 'valid' + $lvl;\n\t var $errs = 'errs__' + $lvl;\n\t var $it = it.util.copy(it);\n\t var $closingBraces = '';\n\t $it.level++;\n\t var $nextValid = 'valid' + $it.level;\n\t out += 'var ' + ($errs) + ' = errors;var prevValid' + ($lvl) + ' = false;var ' + ($valid) + ' = false;';\n\t var $currentBaseId = $it.baseId;\n\t var $wasComposite = it.compositeRule;\n\t it.compositeRule = $it.compositeRule = true;\n\t var arr1 = $schema;\n\t if (arr1) {\n\t var $sch, $i = -1,\n\t l1 = arr1.length - 1;\n\t while ($i < l1) {\n\t $sch = arr1[$i += 1];\n\t if (it.util.schemaHasRules($sch, it.RULES.all)) {\n\t $it.schema = $sch;\n\t $it.schemaPath = $schemaPath + '[' + $i + ']';\n\t $it.errSchemaPath = $errSchemaPath + '/' + $i;\n\t out += ' ' + (it.validate($it)) + ' ';\n\t $it.baseId = $currentBaseId;\n\t } else {\n\t out += ' var ' + ($nextValid) + ' = true; ';\n\t }\n\t if ($i) {\n\t out += ' if (' + ($nextValid) + ' && prevValid' + ($lvl) + ') ' + ($valid) + ' = false; else { ';\n\t $closingBraces += '}';\n\t }\n\t out += ' if (' + ($nextValid) + ') ' + ($valid) + ' = prevValid' + ($lvl) + ' = true;';\n\t }\n\t }\n\t it.compositeRule = $it.compositeRule = $wasComposite;\n\t out += '' + ($closingBraces) + 'if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n\t if (it.createErrors !== false) {\n\t out += ' { keyword: \\'' + ('oneOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n\t if (it.opts.messages !== false) {\n\t out += ' , message: \\'should match exactly one schema in oneOf\\' ';\n\t }\n\t if (it.opts.verbose) {\n\t out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n\t }\n\t out += ' } ';\n\t } else {\n\t out += ' {} ';\n\t }\n\t out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n\t if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */\n\t if (it.async) {\n\t out += ' throw new ValidationError(vErrors); ';\n\t } else {\n\t out += ' validate.errors = vErrors; return false; ';\n\t }\n\t }\n\t out += '} else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; }';\n\t if (it.opts.allErrors) {\n\t out += ' } ';\n\t }\n\t return out;\n\t}\n\n\n/***/ },\n/* 42 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\tmodule.exports = function generate_pattern(it, $keyword, $ruleType) {\n\t var out = ' ';\n\t var $lvl = it.level;\n\t var $dataLvl = it.dataLevel;\n\t var $schema = it.schema[$keyword];\n\t var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n\t var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n\t var $breakOnError = !it.opts.allErrors;\n\t var $data = 'data' + ($dataLvl || '');\n\t var $isData = it.opts.$data && $schema && $schema.$data,\n\t $schemaValue;\n\t if ($isData) {\n\t out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n\t $schemaValue = 'schema' + $lvl;\n\t } else {\n\t $schemaValue = $schema;\n\t }\n\t var $regexp = $isData ? '(new RegExp(' + $schemaValue + '))' : it.usePattern($schema);\n\t out += 'if ( ';\n\t if ($isData) {\n\t out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n\t }\n\t out += ' !' + ($regexp) + '.test(' + ($data) + ') ) { ';\n\t var $$outStack = $$outStack || [];\n\t $$outStack.push(out);\n\t out = ''; /* istanbul ignore else */\n\t if (it.createErrors !== false) {\n\t out += ' { keyword: \\'' + ('pattern') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { pattern: ';\n\t if ($isData) {\n\t out += '' + ($schemaValue);\n\t } else {\n\t out += '' + (it.util.toQuotedString($schema));\n\t }\n\t out += ' } ';\n\t if (it.opts.messages !== false) {\n\t out += ' , message: \\'should match pattern \"';\n\t if ($isData) {\n\t out += '\\' + ' + ($schemaValue) + ' + \\'';\n\t } else {\n\t out += '' + (it.util.escapeQuotes($schema));\n\t }\n\t out += '\"\\' ';\n\t }\n\t if (it.opts.verbose) {\n\t out += ' , schema: ';\n\t if ($isData) {\n\t out += 'validate.schema' + ($schemaPath);\n\t } else {\n\t out += '' + (it.util.toQuotedString($schema));\n\t }\n\t out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n\t }\n\t out += ' } ';\n\t } else {\n\t out += ' {} ';\n\t }\n\t var __err = out;\n\t out = $$outStack.pop();\n\t if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */\n\t if (it.async) {\n\t out += ' throw new ValidationError([' + (__err) + ']); ';\n\t } else {\n\t out += ' validate.errors = [' + (__err) + ']; return false; ';\n\t }\n\t } else {\n\t out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n\t }\n\t out += '} ';\n\t if ($breakOnError) {\n\t out += ' else { ';\n\t }\n\t return out;\n\t}\n\n\n/***/ },\n/* 43 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\tmodule.exports = function generate_properties(it, $keyword, $ruleType) {\n\t var out = ' ';\n\t var $lvl = it.level;\n\t var $dataLvl = it.dataLevel;\n\t var $schema = it.schema[$keyword];\n\t var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n\t var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n\t var $breakOnError = !it.opts.allErrors;\n\t var $data = 'data' + ($dataLvl || '');\n\t var $valid = 'valid' + $lvl;\n\t var $errs = 'errs__' + $lvl;\n\t var $it = it.util.copy(it);\n\t var $closingBraces = '';\n\t $it.level++;\n\t var $nextValid = 'valid' + $it.level;\n\t var $key = 'key' + $lvl,\n\t $idx = 'idx' + $lvl,\n\t $dataNxt = $it.dataLevel = it.dataLevel + 1,\n\t $nextData = 'data' + $dataNxt,\n\t $dataProperties = 'dataProperties' + $lvl;\n\t var $schemaKeys = Object.keys($schema || {}),\n\t $pProperties = it.schema.patternProperties || {},\n\t $pPropertyKeys = Object.keys($pProperties),\n\t $aProperties = it.schema.additionalProperties,\n\t $someProperties = $schemaKeys.length || $pPropertyKeys.length,\n\t $noAdditional = $aProperties === false,\n\t $additionalIsSchema = typeof $aProperties == 'object' && Object.keys($aProperties).length,\n\t $removeAdditional = it.opts.removeAdditional,\n\t $checkAdditional = $noAdditional || $additionalIsSchema || $removeAdditional,\n\t $ownProperties = it.opts.ownProperties,\n\t $currentBaseId = it.baseId;\n\t var $required = it.schema.required;\n\t if ($required && !(it.opts.v5 && $required.$data) && $required.length < it.opts.loopRequired) var $requiredHash = it.util.toHash($required);\n\t if (it.opts.patternGroups) {\n\t var $pgProperties = it.schema.patternGroups || {},\n\t $pgPropertyKeys = Object.keys($pgProperties);\n\t }\n\t out += 'var ' + ($errs) + ' = errors;var ' + ($nextValid) + ' = true;';\n\t if ($ownProperties) {\n\t out += ' var ' + ($dataProperties) + ' = undefined;';\n\t }\n\t if ($checkAdditional) {\n\t if ($ownProperties) {\n\t out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n\t } else {\n\t out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n\t }\n\t if ($someProperties) {\n\t out += ' var isAdditional' + ($lvl) + ' = !(false ';\n\t if ($schemaKeys.length) {\n\t if ($schemaKeys.length > 5) {\n\t out += ' || validate.schema' + ($schemaPath) + '[' + ($key) + '] ';\n\t } else {\n\t var arr1 = $schemaKeys;\n\t if (arr1) {\n\t var $propertyKey, i1 = -1,\n\t l1 = arr1.length - 1;\n\t while (i1 < l1) {\n\t $propertyKey = arr1[i1 += 1];\n\t out += ' || ' + ($key) + ' == ' + (it.util.toQuotedString($propertyKey)) + ' ';\n\t }\n\t }\n\t }\n\t }\n\t if ($pPropertyKeys.length) {\n\t var arr2 = $pPropertyKeys;\n\t if (arr2) {\n\t var $pProperty, $i = -1,\n\t l2 = arr2.length - 1;\n\t while ($i < l2) {\n\t $pProperty = arr2[$i += 1];\n\t out += ' || ' + (it.usePattern($pProperty)) + '.test(' + ($key) + ') ';\n\t }\n\t }\n\t }\n\t if (it.opts.patternGroups && $pgPropertyKeys.length) {\n\t var arr3 = $pgPropertyKeys;\n\t if (arr3) {\n\t var $pgProperty, $i = -1,\n\t l3 = arr3.length - 1;\n\t while ($i < l3) {\n\t $pgProperty = arr3[$i += 1];\n\t out += ' || ' + (it.usePattern($pgProperty)) + '.test(' + ($key) + ') ';\n\t }\n\t }\n\t }\n\t out += ' ); if (isAdditional' + ($lvl) + ') { ';\n\t }\n\t if ($removeAdditional == 'all') {\n\t out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n\t } else {\n\t var $currentErrorPath = it.errorPath;\n\t var $additionalProperty = '\\' + ' + $key + ' + \\'';\n\t if (it.opts._errorDataPathProperty) {\n\t it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n\t }\n\t if ($noAdditional) {\n\t if ($removeAdditional) {\n\t out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n\t } else {\n\t out += ' ' + ($nextValid) + ' = false; ';\n\t var $currErrSchemaPath = $errSchemaPath;\n\t $errSchemaPath = it.errSchemaPath + '/additionalProperties';\n\t var $$outStack = $$outStack || [];\n\t $$outStack.push(out);\n\t out = ''; /* istanbul ignore else */\n\t if (it.createErrors !== false) {\n\t out += ' { keyword: \\'' + ('additionalProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { additionalProperty: \\'' + ($additionalProperty) + '\\' } ';\n\t if (it.opts.messages !== false) {\n\t out += ' , message: \\'should NOT have additional properties\\' ';\n\t }\n\t if (it.opts.verbose) {\n\t out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n\t }\n\t out += ' } ';\n\t } else {\n\t out += ' {} ';\n\t }\n\t var __err = out;\n\t out = $$outStack.pop();\n\t if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */\n\t if (it.async) {\n\t out += ' throw new ValidationError([' + (__err) + ']); ';\n\t } else {\n\t out += ' validate.errors = [' + (__err) + ']; return false; ';\n\t }\n\t } else {\n\t out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n\t }\n\t $errSchemaPath = $currErrSchemaPath;\n\t if ($breakOnError) {\n\t out += ' break; ';\n\t }\n\t }\n\t } else if ($additionalIsSchema) {\n\t if ($removeAdditional == 'failing') {\n\t out += ' var ' + ($errs) + ' = errors; ';\n\t var $wasComposite = it.compositeRule;\n\t it.compositeRule = $it.compositeRule = true;\n\t $it.schema = $aProperties;\n\t $it.schemaPath = it.schemaPath + '.additionalProperties';\n\t $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n\t $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n\t var $passData = $data + '[' + $key + ']';\n\t $it.dataPathArr[$dataNxt] = $key;\n\t var $code = it.validate($it);\n\t $it.baseId = $currentBaseId;\n\t if (it.util.varOccurences($code, $nextData) < 2) {\n\t out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n\t } else {\n\t out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n\t }\n\t out += ' if (!' + ($nextValid) + ') { errors = ' + ($errs) + '; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete ' + ($data) + '[' + ($key) + ']; } ';\n\t it.compositeRule = $it.compositeRule = $wasComposite;\n\t } else {\n\t $it.schema = $aProperties;\n\t $it.schemaPath = it.schemaPath + '.additionalProperties';\n\t $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n\t $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n\t var $passData = $data + '[' + $key + ']';\n\t $it.dataPathArr[$dataNxt] = $key;\n\t var $code = it.validate($it);\n\t $it.baseId = $currentBaseId;\n\t if (it.util.varOccurences($code, $nextData) < 2) {\n\t out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n\t } else {\n\t out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n\t }\n\t if ($breakOnError) {\n\t out += ' if (!' + ($nextValid) + ') break; ';\n\t }\n\t }\n\t }\n\t it.errorPath = $currentErrorPath;\n\t }\n\t if ($someProperties) {\n\t out += ' } ';\n\t }\n\t out += ' } ';\n\t if ($breakOnError) {\n\t out += ' if (' + ($nextValid) + ') { ';\n\t $closingBraces += '}';\n\t }\n\t }\n\t var $useDefaults = it.opts.useDefaults && !it.compositeRule;\n\t if ($schemaKeys.length) {\n\t var arr4 = $schemaKeys;\n\t if (arr4) {\n\t var $propertyKey, i4 = -1,\n\t l4 = arr4.length - 1;\n\t while (i4 < l4) {\n\t $propertyKey = arr4[i4 += 1];\n\t var $sch = $schema[$propertyKey];\n\t if (it.util.schemaHasRules($sch, it.RULES.all)) {\n\t var $prop = it.util.getProperty($propertyKey),\n\t $passData = $data + $prop,\n\t $hasDefault = $useDefaults && $sch.default !== undefined;\n\t $it.schema = $sch;\n\t $it.schemaPath = $schemaPath + $prop;\n\t $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($propertyKey);\n\t $it.errorPath = it.util.getPath(it.errorPath, $propertyKey, it.opts.jsonPointers);\n\t $it.dataPathArr[$dataNxt] = it.util.toQuotedString($propertyKey);\n\t var $code = it.validate($it);\n\t $it.baseId = $currentBaseId;\n\t if (it.util.varOccurences($code, $nextData) < 2) {\n\t $code = it.util.varReplace($code, $nextData, $passData);\n\t var $useData = $passData;\n\t } else {\n\t var $useData = $nextData;\n\t out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ';\n\t }\n\t if ($hasDefault) {\n\t out += ' ' + ($code) + ' ';\n\t } else {\n\t if ($requiredHash && $requiredHash[$propertyKey]) {\n\t out += ' if ( ' + ($useData) + ' === undefined ';\n\t if ($ownProperties) {\n\t out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n\t }\n\t out += ') { ' + ($nextValid) + ' = false; ';\n\t var $currentErrorPath = it.errorPath,\n\t $currErrSchemaPath = $errSchemaPath,\n\t $missingProperty = it.util.escapeQuotes($propertyKey);\n\t if (it.opts._errorDataPathProperty) {\n\t it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n\t }\n\t $errSchemaPath = it.errSchemaPath + '/required';\n\t var $$outStack = $$outStack || [];\n\t $$outStack.push(out);\n\t out = ''; /* istanbul ignore else */\n\t if (it.createErrors !== false) {\n\t out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n\t if (it.opts.messages !== false) {\n\t out += ' , message: \\'';\n\t if (it.opts._errorDataPathProperty) {\n\t out += 'is a required property';\n\t } else {\n\t out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n\t }\n\t out += '\\' ';\n\t }\n\t if (it.opts.verbose) {\n\t out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n\t }\n\t out += ' } ';\n\t } else {\n\t out += ' {} ';\n\t }\n\t var __err = out;\n\t out = $$outStack.pop();\n\t if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */\n\t if (it.async) {\n\t out += ' throw new ValidationError([' + (__err) + ']); ';\n\t } else {\n\t out += ' validate.errors = [' + (__err) + ']; return false; ';\n\t }\n\t } else {\n\t out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n\t }\n\t $errSchemaPath = $currErrSchemaPath;\n\t it.errorPath = $currentErrorPath;\n\t out += ' } else { ';\n\t } else {\n\t if ($breakOnError) {\n\t out += ' if ( ' + ($useData) + ' === undefined ';\n\t if ($ownProperties) {\n\t out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n\t }\n\t out += ') { ' + ($nextValid) + ' = true; } else { ';\n\t } else {\n\t out += ' if (' + ($useData) + ' !== undefined ';\n\t if ($ownProperties) {\n\t out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n\t }\n\t out += ' ) { ';\n\t }\n\t }\n\t out += ' ' + ($code) + ' } ';\n\t }\n\t }\n\t if ($breakOnError) {\n\t out += ' if (' + ($nextValid) + ') { ';\n\t $closingBraces += '}';\n\t }\n\t }\n\t }\n\t }\n\t if ($pPropertyKeys.length) {\n\t var arr5 = $pPropertyKeys;\n\t if (arr5) {\n\t var $pProperty, i5 = -1,\n\t l5 = arr5.length - 1;\n\t while (i5 < l5) {\n\t $pProperty = arr5[i5 += 1];\n\t var $sch = $pProperties[$pProperty];\n\t if (it.util.schemaHasRules($sch, it.RULES.all)) {\n\t $it.schema = $sch;\n\t $it.schemaPath = it.schemaPath + '.patternProperties' + it.util.getProperty($pProperty);\n\t $it.errSchemaPath = it.errSchemaPath + '/patternProperties/' + it.util.escapeFragment($pProperty);\n\t if ($ownProperties) {\n\t out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n\t } else {\n\t out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n\t }\n\t out += ' if (' + (it.usePattern($pProperty)) + '.test(' + ($key) + ')) { ';\n\t $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n\t var $passData = $data + '[' + $key + ']';\n\t $it.dataPathArr[$dataNxt] = $key;\n\t var $code = it.validate($it);\n\t $it.baseId = $currentBaseId;\n\t if (it.util.varOccurences($code, $nextData) < 2) {\n\t out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n\t } else {\n\t out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n\t }\n\t if ($breakOnError) {\n\t out += ' if (!' + ($nextValid) + ') break; ';\n\t }\n\t out += ' } ';\n\t if ($breakOnError) {\n\t out += ' else ' + ($nextValid) + ' = true; ';\n\t }\n\t out += ' } ';\n\t if ($breakOnError) {\n\t out += ' if (' + ($nextValid) + ') { ';\n\t $closingBraces += '}';\n\t }\n\t }\n\t }\n\t }\n\t }\n\t if (it.opts.patternGroups && $pgPropertyKeys.length) {\n\t var arr6 = $pgPropertyKeys;\n\t if (arr6) {\n\t var $pgProperty, i6 = -1,\n\t l6 = arr6.length - 1;\n\t while (i6 < l6) {\n\t $pgProperty = arr6[i6 += 1];\n\t var $pgSchema = $pgProperties[$pgProperty],\n\t $sch = $pgSchema.schema;\n\t if (it.util.schemaHasRules($sch, it.RULES.all)) {\n\t $it.schema = $sch;\n\t $it.schemaPath = it.schemaPath + '.patternGroups' + it.util.getProperty($pgProperty) + '.schema';\n\t $it.errSchemaPath = it.errSchemaPath + '/patternGroups/' + it.util.escapeFragment($pgProperty) + '/schema';\n\t out += ' var pgPropCount' + ($lvl) + ' = 0; ';\n\t if ($ownProperties) {\n\t out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n\t } else {\n\t out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n\t }\n\t out += ' if (' + (it.usePattern($pgProperty)) + '.test(' + ($key) + ')) { pgPropCount' + ($lvl) + '++; ';\n\t $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n\t var $passData = $data + '[' + $key + ']';\n\t $it.dataPathArr[$dataNxt] = $key;\n\t var $code = it.validate($it);\n\t $it.baseId = $currentBaseId;\n\t if (it.util.varOccurences($code, $nextData) < 2) {\n\t out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n\t } else {\n\t out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n\t }\n\t if ($breakOnError) {\n\t out += ' if (!' + ($nextValid) + ') break; ';\n\t }\n\t out += ' } ';\n\t if ($breakOnError) {\n\t out += ' else ' + ($nextValid) + ' = true; ';\n\t }\n\t out += ' } ';\n\t if ($breakOnError) {\n\t out += ' if (' + ($nextValid) + ') { ';\n\t $closingBraces += '}';\n\t }\n\t var $pgMin = $pgSchema.minimum,\n\t $pgMax = $pgSchema.maximum;\n\t if ($pgMin !== undefined || $pgMax !== undefined) {\n\t out += ' var ' + ($valid) + ' = true; ';\n\t var $currErrSchemaPath = $errSchemaPath;\n\t if ($pgMin !== undefined) {\n\t var $limit = $pgMin,\n\t $reason = 'minimum',\n\t $moreOrLess = 'less';\n\t out += ' ' + ($valid) + ' = pgPropCount' + ($lvl) + ' >= ' + ($pgMin) + '; ';\n\t $errSchemaPath = it.errSchemaPath + '/patternGroups/minimum';\n\t out += ' if (!' + ($valid) + ') { ';\n\t var $$outStack = $$outStack || [];\n\t $$outStack.push(out);\n\t out = ''; /* istanbul ignore else */\n\t if (it.createErrors !== false) {\n\t out += ' { keyword: \\'' + ('patternGroups') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { reason: \\'' + ($reason) + '\\', limit: ' + ($limit) + ', pattern: \\'' + (it.util.escapeQuotes($pgProperty)) + '\\' } ';\n\t if (it.opts.messages !== false) {\n\t out += ' , message: \\'should NOT have ' + ($moreOrLess) + ' than ' + ($limit) + ' properties matching pattern \"' + (it.util.escapeQuotes($pgProperty)) + '\"\\' ';\n\t }\n\t if (it.opts.verbose) {\n\t out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n\t }\n\t out += ' } ';\n\t } else {\n\t out += ' {} ';\n\t }\n\t var __err = out;\n\t out = $$outStack.pop();\n\t if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */\n\t if (it.async) {\n\t out += ' throw new ValidationError([' + (__err) + ']); ';\n\t } else {\n\t out += ' validate.errors = [' + (__err) + ']; return false; ';\n\t }\n\t } else {\n\t out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n\t }\n\t out += ' } ';\n\t if ($pgMax !== undefined) {\n\t out += ' else ';\n\t }\n\t }\n\t if ($pgMax !== undefined) {\n\t var $limit = $pgMax,\n\t $reason = 'maximum',\n\t $moreOrLess = 'more';\n\t out += ' ' + ($valid) + ' = pgPropCount' + ($lvl) + ' <= ' + ($pgMax) + '; ';\n\t $errSchemaPath = it.errSchemaPath + '/patternGroups/maximum';\n\t out += ' if (!' + ($valid) + ') { ';\n\t var $$outStack = $$outStack || [];\n\t $$outStack.push(out);\n\t out = ''; /* istanbul ignore else */\n\t if (it.createErrors !== false) {\n\t out += ' { keyword: \\'' + ('patternGroups') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { reason: \\'' + ($reason) + '\\', limit: ' + ($limit) + ', pattern: \\'' + (it.util.escapeQuotes($pgProperty)) + '\\' } ';\n\t if (it.opts.messages !== false) {\n\t out += ' , message: \\'should NOT have ' + ($moreOrLess) + ' than ' + ($limit) + ' properties matching pattern \"' + (it.util.escapeQuotes($pgProperty)) + '\"\\' ';\n\t }\n\t if (it.opts.verbose) {\n\t out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n\t }\n\t out += ' } ';\n\t } else {\n\t out += ' {} ';\n\t }\n\t var __err = out;\n\t out = $$outStack.pop();\n\t if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */\n\t if (it.async) {\n\t out += ' throw new ValidationError([' + (__err) + ']); ';\n\t } else {\n\t out += ' validate.errors = [' + (__err) + ']; return false; ';\n\t }\n\t } else {\n\t out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n\t }\n\t out += ' } ';\n\t }\n\t $errSchemaPath = $currErrSchemaPath;\n\t if ($breakOnError) {\n\t out += ' if (' + ($valid) + ') { ';\n\t $closingBraces += '}';\n\t }\n\t }\n\t }\n\t }\n\t }\n\t }\n\t if ($breakOnError) {\n\t out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n\t }\n\t out = it.util.cleanUpCode(out);\n\t return out;\n\t}\n\n\n/***/ },\n/* 44 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\tmodule.exports = function generate_propertyNames(it, $keyword, $ruleType) {\n\t var out = ' ';\n\t var $lvl = it.level;\n\t var $dataLvl = it.dataLevel;\n\t var $schema = it.schema[$keyword];\n\t var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n\t var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n\t var $breakOnError = !it.opts.allErrors;\n\t var $data = 'data' + ($dataLvl || '');\n\t var $errs = 'errs__' + $lvl;\n\t var $it = it.util.copy(it);\n\t var $closingBraces = '';\n\t $it.level++;\n\t var $nextValid = 'valid' + $it.level;\n\t if (it.util.schemaHasRules($schema, it.RULES.all)) {\n\t $it.schema = $schema;\n\t $it.schemaPath = $schemaPath;\n\t $it.errSchemaPath = $errSchemaPath;\n\t var $key = 'key' + $lvl,\n\t $idx = 'idx' + $lvl,\n\t $i = 'i' + $lvl,\n\t $invalidName = '\\' + ' + $key + ' + \\'',\n\t $dataNxt = $it.dataLevel = it.dataLevel + 1,\n\t $nextData = 'data' + $dataNxt,\n\t $dataProperties = 'dataProperties' + $lvl,\n\t $ownProperties = it.opts.ownProperties,\n\t $currentBaseId = it.baseId;\n\t out += ' var ' + ($errs) + ' = errors; ';\n\t if ($ownProperties) {\n\t out += ' var ' + ($dataProperties) + ' = undefined; ';\n\t }\n\t if ($ownProperties) {\n\t out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n\t } else {\n\t out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n\t }\n\t out += ' var startErrs' + ($lvl) + ' = errors; ';\n\t var $passData = $key;\n\t var $wasComposite = it.compositeRule;\n\t it.compositeRule = $it.compositeRule = true;\n\t var $code = it.validate($it);\n\t $it.baseId = $currentBaseId;\n\t if (it.util.varOccurences($code, $nextData) < 2) {\n\t out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n\t } else {\n\t out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n\t }\n\t it.compositeRule = $it.compositeRule = $wasComposite;\n\t out += ' if (!' + ($nextValid) + ') { for (var ' + ($i) + '=startErrs' + ($lvl) + '; ' + ($i) + '<errors; ' + ($i) + '++) { vErrors[' + ($i) + '].propertyName = ' + ($key) + '; } var err = '; /* istanbul ignore else */\n\t if (it.createErrors !== false) {\n\t out += ' { keyword: \\'' + ('propertyNames') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { propertyName: \\'' + ($invalidName) + '\\' } ';\n\t if (it.opts.messages !== false) {\n\t out += ' , message: \\'property name \\\\\\'' + ($invalidName) + '\\\\\\' is invalid\\' ';\n\t }\n\t if (it.opts.verbose) {\n\t out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n\t }\n\t out += ' } ';\n\t } else {\n\t out += ' {} ';\n\t }\n\t out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n\t if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */\n\t if (it.async) {\n\t out += ' throw new ValidationError(vErrors); ';\n\t } else {\n\t out += ' validate.errors = vErrors; return false; ';\n\t }\n\t }\n\t if ($breakOnError) {\n\t out += ' break; ';\n\t }\n\t out += ' } }';\n\t }\n\t if ($breakOnError) {\n\t out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n\t }\n\t out = it.util.cleanUpCode(out);\n\t return out;\n\t}\n\n\n/***/ },\n/* 45 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\tmodule.exports = function generate_required(it, $keyword, $ruleType) {\n\t var out = ' ';\n\t var $lvl = it.level;\n\t var $dataLvl = it.dataLevel;\n\t var $schema = it.schema[$keyword];\n\t var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n\t var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n\t var $breakOnError = !it.opts.allErrors;\n\t var $data = 'data' + ($dataLvl || '');\n\t var $valid = 'valid' + $lvl;\n\t var $isData = it.opts.$data && $schema && $schema.$data,\n\t $schemaValue;\n\t if ($isData) {\n\t out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n\t $schemaValue = 'schema' + $lvl;\n\t } else {\n\t $schemaValue = $schema;\n\t }\n\t var $vSchema = 'schema' + $lvl;\n\t if (!$isData) {\n\t if ($schema.length < it.opts.loopRequired && it.schema.properties && Object.keys(it.schema.properties).length) {\n\t var $required = [];\n\t var arr1 = $schema;\n\t if (arr1) {\n\t var $property, i1 = -1,\n\t l1 = arr1.length - 1;\n\t while (i1 < l1) {\n\t $property = arr1[i1 += 1];\n\t var $propertySch = it.schema.properties[$property];\n\t if (!($propertySch && it.util.schemaHasRules($propertySch, it.RULES.all))) {\n\t $required[$required.length] = $property;\n\t }\n\t }\n\t }\n\t } else {\n\t var $required = $schema;\n\t }\n\t }\n\t if ($isData || $required.length) {\n\t var $currentErrorPath = it.errorPath,\n\t $loopRequired = $isData || $required.length >= it.opts.loopRequired,\n\t $ownProperties = it.opts.ownProperties;\n\t if ($breakOnError) {\n\t out += ' var missing' + ($lvl) + '; ';\n\t if ($loopRequired) {\n\t if (!$isData) {\n\t out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n\t }\n\t var $i = 'i' + $lvl,\n\t $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n\t $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n\t if (it.opts._errorDataPathProperty) {\n\t it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n\t }\n\t out += ' var ' + ($valid) + ' = true; ';\n\t if ($isData) {\n\t out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n\t }\n\t out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { ' + ($valid) + ' = ' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] !== undefined ';\n\t if ($ownProperties) {\n\t out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n\t }\n\t out += '; if (!' + ($valid) + ') break; } ';\n\t if ($isData) {\n\t out += ' } ';\n\t }\n\t out += ' if (!' + ($valid) + ') { ';\n\t var $$outStack = $$outStack || [];\n\t $$outStack.push(out);\n\t out = ''; /* istanbul ignore else */\n\t if (it.createErrors !== false) {\n\t out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n\t if (it.opts.messages !== false) {\n\t out += ' , message: \\'';\n\t if (it.opts._errorDataPathProperty) {\n\t out += 'is a required property';\n\t } else {\n\t out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n\t }\n\t out += '\\' ';\n\t }\n\t if (it.opts.verbose) {\n\t out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n\t }\n\t out += ' } ';\n\t } else {\n\t out += ' {} ';\n\t }\n\t var __err = out;\n\t out = $$outStack.pop();\n\t if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */\n\t if (it.async) {\n\t out += ' throw new ValidationError([' + (__err) + ']); ';\n\t } else {\n\t out += ' validate.errors = [' + (__err) + ']; return false; ';\n\t }\n\t } else {\n\t out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n\t }\n\t out += ' } else { ';\n\t } else {\n\t out += ' if ( ';\n\t var arr2 = $required;\n\t if (arr2) {\n\t var $propertyKey, $i = -1,\n\t l2 = arr2.length - 1;\n\t while ($i < l2) {\n\t $propertyKey = arr2[$i += 1];\n\t if ($i) {\n\t out += ' || ';\n\t }\n\t var $prop = it.util.getProperty($propertyKey),\n\t $useData = $data + $prop;\n\t out += ' ( ( ' + ($useData) + ' === undefined ';\n\t if ($ownProperties) {\n\t out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n\t }\n\t out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';\n\t }\n\t }\n\t out += ') { ';\n\t var $propertyPath = 'missing' + $lvl,\n\t $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n\t if (it.opts._errorDataPathProperty) {\n\t it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;\n\t }\n\t var $$outStack = $$outStack || [];\n\t $$outStack.push(out);\n\t out = ''; /* istanbul ignore else */\n\t if (it.createErrors !== false) {\n\t out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n\t if (it.opts.messages !== false) {\n\t out += ' , message: \\'';\n\t if (it.opts._errorDataPathProperty) {\n\t out += 'is a required property';\n\t } else {\n\t out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n\t }\n\t out += '\\' ';\n\t }\n\t if (it.opts.verbose) {\n\t out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n\t }\n\t out += ' } ';\n\t } else {\n\t out += ' {} ';\n\t }\n\t var __err = out;\n\t out = $$outStack.pop();\n\t if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */\n\t if (it.async) {\n\t out += ' throw new ValidationError([' + (__err) + ']); ';\n\t } else {\n\t out += ' validate.errors = [' + (__err) + ']; return false; ';\n\t }\n\t } else {\n\t out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n\t }\n\t out += ' } else { ';\n\t }\n\t } else {\n\t if ($loopRequired) {\n\t if (!$isData) {\n\t out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n\t }\n\t var $i = 'i' + $lvl,\n\t $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n\t $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n\t if (it.opts._errorDataPathProperty) {\n\t it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n\t }\n\t if ($isData) {\n\t out += ' if (' + ($vSchema) + ' && !Array.isArray(' + ($vSchema) + ')) { var err = '; /* istanbul ignore else */\n\t if (it.createErrors !== false) {\n\t out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n\t if (it.opts.messages !== false) {\n\t out += ' , message: \\'';\n\t if (it.opts._errorDataPathProperty) {\n\t out += 'is a required property';\n\t } else {\n\t out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n\t }\n\t out += '\\' ';\n\t }\n\t if (it.opts.verbose) {\n\t out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n\t }\n\t out += ' } ';\n\t } else {\n\t out += ' {} ';\n\t }\n\t out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if (' + ($vSchema) + ' !== undefined) { ';\n\t }\n\t out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { if (' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] === undefined ';\n\t if ($ownProperties) {\n\t out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n\t }\n\t out += ') { var err = '; /* istanbul ignore else */\n\t if (it.createErrors !== false) {\n\t out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n\t if (it.opts.messages !== false) {\n\t out += ' , message: \\'';\n\t if (it.opts._errorDataPathProperty) {\n\t out += 'is a required property';\n\t } else {\n\t out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n\t }\n\t out += '\\' ';\n\t }\n\t if (it.opts.verbose) {\n\t out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n\t }\n\t out += ' } ';\n\t } else {\n\t out += ' {} ';\n\t }\n\t out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ';\n\t if ($isData) {\n\t out += ' } ';\n\t }\n\t } else {\n\t var arr3 = $required;\n\t if (arr3) {\n\t var $propertyKey, i3 = -1,\n\t l3 = arr3.length - 1;\n\t while (i3 < l3) {\n\t $propertyKey = arr3[i3 += 1];\n\t var $prop = it.util.getProperty($propertyKey),\n\t $missingProperty = it.util.escapeQuotes($propertyKey),\n\t $useData = $data + $prop;\n\t if (it.opts._errorDataPathProperty) {\n\t it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n\t }\n\t out += ' if ( ' + ($useData) + ' === undefined ';\n\t if ($ownProperties) {\n\t out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n\t }\n\t out += ') { var err = '; /* istanbul ignore else */\n\t if (it.createErrors !== false) {\n\t out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n\t if (it.opts.messages !== false) {\n\t out += ' , message: \\'';\n\t if (it.opts._errorDataPathProperty) {\n\t out += 'is a required property';\n\t } else {\n\t out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n\t }\n\t out += '\\' ';\n\t }\n\t if (it.opts.verbose) {\n\t out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n\t }\n\t out += ' } ';\n\t } else {\n\t out += ' {} ';\n\t }\n\t out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n\t }\n\t }\n\t }\n\t }\n\t it.errorPath = $currentErrorPath;\n\t } else if ($breakOnError) {\n\t out += ' if (true) {';\n\t }\n\t return out;\n\t}\n\n\n/***/ },\n/* 46 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\tmodule.exports = function generate_uniqueItems(it, $keyword, $ruleType) {\n\t var out = ' ';\n\t var $lvl = it.level;\n\t var $dataLvl = it.dataLevel;\n\t var $schema = it.schema[$keyword];\n\t var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n\t var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n\t var $breakOnError = !it.opts.allErrors;\n\t var $data = 'data' + ($dataLvl || '');\n\t var $valid = 'valid' + $lvl;\n\t var $isData = it.opts.$data && $schema && $schema.$data,\n\t $schemaValue;\n\t if ($isData) {\n\t out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n\t $schemaValue = 'schema' + $lvl;\n\t } else {\n\t $schemaValue = $schema;\n\t }\n\t if (($schema || $isData) && it.opts.uniqueItems !== false) {\n\t if ($isData) {\n\t out += ' var ' + ($valid) + '; if (' + ($schemaValue) + ' === false || ' + ($schemaValue) + ' === undefined) ' + ($valid) + ' = true; else if (typeof ' + ($schemaValue) + ' != \\'boolean\\') ' + ($valid) + ' = false; else { ';\n\t }\n\t out += ' var ' + ($valid) + ' = true; if (' + ($data) + '.length > 1) { var i = ' + ($data) + '.length, j; outer: for (;i--;) { for (j = i; j--;) { if (equal(' + ($data) + '[i], ' + ($data) + '[j])) { ' + ($valid) + ' = false; break outer; } } } } ';\n\t if ($isData) {\n\t out += ' } ';\n\t }\n\t out += ' if (!' + ($valid) + ') { ';\n\t var $$outStack = $$outStack || [];\n\t $$outStack.push(out);\n\t out = ''; /* istanbul ignore else */\n\t if (it.createErrors !== false) {\n\t out += ' { keyword: \\'' + ('uniqueItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { i: i, j: j } ';\n\t if (it.opts.messages !== false) {\n\t out += ' , message: \\'should NOT have duplicate items (items ## \\' + j + \\' and \\' + i + \\' are identical)\\' ';\n\t }\n\t if (it.opts.verbose) {\n\t out += ' , schema: ';\n\t if ($isData) {\n\t out += 'validate.schema' + ($schemaPath);\n\t } else {\n\t out += '' + ($schema);\n\t }\n\t out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n\t }\n\t out += ' } ';\n\t } else {\n\t out += ' {} ';\n\t }\n\t var __err = out;\n\t out = $$outStack.pop();\n\t if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */\n\t if (it.async) {\n\t out += ' throw new ValidationError([' + (__err) + ']); ';\n\t } else {\n\t out += ' validate.errors = [' + (__err) + ']; return false; ';\n\t }\n\t } else {\n\t out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n\t }\n\t out += ' } ';\n\t if ($breakOnError) {\n\t out += ' else { ';\n\t }\n\t } else {\n\t if ($breakOnError) {\n\t out += ' if (true) { ';\n\t }\n\t }\n\t return out;\n\t}\n\n\n/***/ },\n/* 47 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\n\tvar KEYWORDS = [\n\t 'multipleOf',\n\t 'maximum',\n\t 'exclusiveMaximum',\n\t 'minimum',\n\t 'exclusiveMinimum',\n\t 'maxLength',\n\t 'minLength',\n\t 'pattern',\n\t 'additionalItems',\n\t 'maxItems',\n\t 'minItems',\n\t 'uniqueItems',\n\t 'maxProperties',\n\t 'minProperties',\n\t 'required',\n\t 'additionalProperties',\n\t 'enum',\n\t 'format',\n\t 'const'\n\t];\n\n\tmodule.exports = function (metaSchema, keywordsJsonPointers) {\n\t for (var i=0; i<keywordsJsonPointers.length; i++) {\n\t metaSchema = JSON.parse(JSON.stringify(metaSchema));\n\t var segments = keywordsJsonPointers[i].split('/');\n\t var keywords = metaSchema;\n\t var j;\n\t for (j=1; j<segments.length; j++)\n\t keywords = keywords[segments[j]];\n\n\t for (j=0; j<KEYWORDS.length; j++) {\n\t var key = KEYWORDS[j];\n\t var schema = keywords[key];\n\t if (schema) {\n\t keywords[key] = {\n\t anyOf: [\n\t schema,\n\t { $ref: 'https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/$data.json#' }\n\t ]\n\t };\n\t }\n\t }\n\t }\n\n\t return metaSchema;\n\t};\n\n\n/***/ },\n/* 48 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\n\tvar META_SCHEMA_ID = 'http://json-schema.org/draft-06/schema';\n\n\tmodule.exports = function (ajv) {\n\t var defaultMeta = ajv._opts.defaultMeta;\n\t var metaSchemaRef = typeof defaultMeta == 'string'\n\t ? { $ref: defaultMeta }\n\t : ajv.getSchema(META_SCHEMA_ID)\n\t ? { $ref: META_SCHEMA_ID }\n\t : {};\n\n\t ajv.addKeyword('patternGroups', {\n\t // implemented in properties.jst\n\t metaSchema: {\n\t type: 'object',\n\t additionalProperties: {\n\t type: 'object',\n\t required: [ 'schema' ],\n\t properties: {\n\t maximum: {\n\t type: 'integer',\n\t minimum: 0\n\t },\n\t minimum: {\n\t type: 'integer',\n\t minimum: 0\n\t },\n\t schema: metaSchemaRef\n\t },\n\t additionalProperties: false\n\t }\n\t }\n\t });\n\t ajv.RULES.all.properties.implements.push('patternGroups');\n\t};\n\n\n/***/ },\n/* 49 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar MissingRefError = __webpack_require__(15).MissingRef;\n\n\tmodule.exports = compileAsync;\n\n\n\t/**\n\t * Creates validating function for passed schema with asynchronous loading of missing schemas.\n\t * `loadSchema` option should be a function that accepts schema uri and returns promise that resolves with the schema.\n\t * @this Ajv\n\t * @param {Object} schema schema object\n\t * @param {Boolean} meta optional true to compile meta-schema; this parameter can be skipped\n\t * @param {Function} callback an optional node-style callback, it is called with 2 parameters: error (or null) and validating function.\n\t * @return {Promise} promise that resolves with a validating function.\n\t */\n\tfunction compileAsync(schema, meta, callback) {\n\t /* eslint no-shadow: 0 */\n\t /* global Promise */\n\t /* jshint validthis: true */\n\t var self = this;\n\t if (typeof this._opts.loadSchema != 'function')\n\t throw new Error('options.loadSchema should be a function');\n\n\t if (typeof meta == 'function') {\n\t callback = meta;\n\t meta = undefined;\n\t }\n\n\t var p = loadMetaSchemaOf(schema).then(function () {\n\t var schemaObj = self._addSchema(schema, undefined, meta);\n\t return schemaObj.validate || _compileAsync(schemaObj);\n\t });\n\n\t if (callback) {\n\t p.then(\n\t function(v) { callback(null, v); },\n\t callback\n\t );\n\t }\n\n\t return p;\n\n\n\t function loadMetaSchemaOf(sch) {\n\t var $schema = sch.$schema;\n\t return $schema && !self.getSchema($schema)\n\t ? compileAsync.call(self, { $ref: $schema }, true)\n\t : Promise.resolve();\n\t }\n\n\n\t function _compileAsync(schemaObj) {\n\t try { return self._compile(schemaObj); }\n\t catch(e) {\n\t if (e instanceof MissingRefError) return loadMissingSchema(e);\n\t throw e;\n\t }\n\n\n\t function loadMissingSchema(e) {\n\t var ref = e.missingSchema;\n\t if (added(ref)) throw new Error('Schema ' + ref + ' is loaded but ' + e.missingRef + ' cannot be resolved');\n\n\t var schemaPromise = self._loadingSchemas[ref];\n\t if (!schemaPromise) {\n\t schemaPromise = self._loadingSchemas[ref] = self._opts.loadSchema(ref);\n\t schemaPromise.then(removePromise, removePromise);\n\t }\n\n\t return schemaPromise.then(function (sch) {\n\t if (!added(ref)) {\n\t return loadMetaSchemaOf(sch).then(function () {\n\t if (!added(ref)) self.addSchema(sch, ref, undefined, meta);\n\t });\n\t }\n\t }).then(function() {\n\t return _compileAsync(schemaObj);\n\t });\n\n\t function removePromise() {\n\t delete self._loadingSchemas[ref];\n\t }\n\n\t function added(ref) {\n\t return self._refs[ref] || self._schemas[ref];\n\t }\n\t }\n\t }\n\t}\n\n\n/***/ },\n/* 50 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar IDENTIFIER = /^[a-z_$][a-z0-9_$\\-]*$/i;\n\tvar customRuleCode = __webpack_require__(51);\n\n\tmodule.exports = {\n\t add: addKeyword,\n\t get: getKeyword,\n\t remove: removeKeyword\n\t};\n\n\t/**\n\t * Define custom keyword\n\t * @this Ajv\n\t * @param {String} keyword custom keyword, should be unique (including different from all standard, custom and macro keywords).\n\t * @param {Object} definition keyword definition object with properties `type` (type(s) which the keyword applies to), `validate` or `compile`.\n\t */\n\tfunction addKeyword(keyword, definition) {\n\t /* jshint validthis: true */\n\t /* eslint no-shadow: 0 */\n\t var RULES = this.RULES;\n\n\t if (RULES.keywords[keyword])\n\t throw new Error('Keyword ' + keyword + ' is already defined');\n\n\t if (!IDENTIFIER.test(keyword))\n\t throw new Error('Keyword ' + keyword + ' is not a valid identifier');\n\n\t if (definition) {\n\t if (definition.macro && definition.valid !== undefined)\n\t throw new Error('\"valid\" option cannot be used with macro keywords');\n\n\t var dataType = definition.type;\n\t if (Array.isArray(dataType)) {\n\t var i, len = dataType.length;\n\t for (i=0; i<len; i++) checkDataType(dataType[i]);\n\t for (i=0; i<len; i++) _addRule(keyword, dataType[i], definition);\n\t } else {\n\t if (dataType) checkDataType(dataType);\n\t _addRule(keyword, dataType, definition);\n\t }\n\n\t var $data = definition.$data === true && this._opts.$data;\n\t if ($data && !definition.validate)\n\t throw new Error('$data support: \"validate\" function is not defined');\n\n\t var metaSchema = definition.metaSchema;\n\t if (metaSchema) {\n\t if ($data) {\n\t metaSchema = {\n\t anyOf: [\n\t metaSchema,\n\t { '$ref': 'https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/$data.json#' }\n\t ]\n\t };\n\t }\n\t definition.validateSchema = this.compile(metaSchema, true);\n\t }\n\t }\n\n\t RULES.keywords[keyword] = RULES.all[keyword] = true;\n\n\n\t function _addRule(keyword, dataType, definition) {\n\t var ruleGroup;\n\t for (var i=0; i<RULES.length; i++) {\n\t var rg = RULES[i];\n\t if (rg.type == dataType) {\n\t ruleGroup = rg;\n\t break;\n\t }\n\t }\n\n\t if (!ruleGroup) {\n\t ruleGroup = { type: dataType, rules: [] };\n\t RULES.push(ruleGroup);\n\t }\n\n\t var rule = {\n\t keyword: keyword,\n\t definition: definition,\n\t custom: true,\n\t code: customRuleCode,\n\t implements: definition.implements\n\t };\n\t ruleGroup.rules.push(rule);\n\t RULES.custom[keyword] = rule;\n\t }\n\n\n\t function checkDataType(dataType) {\n\t if (!RULES.types[dataType]) throw new Error('Unknown type ' + dataType);\n\t }\n\t}\n\n\n\t/**\n\t * Get keyword\n\t * @this Ajv\n\t * @param {String} keyword pre-defined or custom keyword.\n\t * @return {Object|Boolean} custom keyword definition, `true` if it is a predefined keyword, `false` otherwise.\n\t */\n\tfunction getKeyword(keyword) {\n\t /* jshint validthis: true */\n\t var rule = this.RULES.custom[keyword];\n\t return rule ? rule.definition : this.RULES.keywords[keyword] || false;\n\t}\n\n\n\t/**\n\t * Remove keyword\n\t * @this Ajv\n\t * @param {String} keyword pre-defined or custom keyword.\n\t */\n\tfunction removeKeyword(keyword) {\n\t /* jshint validthis: true */\n\t var RULES = this.RULES;\n\t delete RULES.keywords[keyword];\n\t delete RULES.all[keyword];\n\t delete RULES.custom[keyword];\n\t for (var i=0; i<RULES.length; i++) {\n\t var rules = RULES[i].rules;\n\t for (var j=0; j<rules.length; j++) {\n\t if (rules[j].keyword == keyword) {\n\t rules.splice(j, 1);\n\t break;\n\t }\n\t }\n\t }\n\t}\n\n\n/***/ },\n/* 51 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\tmodule.exports = function generate_custom(it, $keyword, $ruleType) {\n\t var out = ' ';\n\t var $lvl = it.level;\n\t var $dataLvl = it.dataLevel;\n\t var $schema = it.schema[$keyword];\n\t var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n\t var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n\t var $breakOnError = !it.opts.allErrors;\n\t var $errorKeyword;\n\t var $data = 'data' + ($dataLvl || '');\n\t var $valid = 'valid' + $lvl;\n\t var $errs = 'errs__' + $lvl;\n\t var $isData = it.opts.$data && $schema && $schema.$data,\n\t $schemaValue;\n\t if ($isData) {\n\t out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n\t $schemaValue = 'schema' + $lvl;\n\t } else {\n\t $schemaValue = $schema;\n\t }\n\t var $rule = this,\n\t $definition = 'definition' + $lvl,\n\t $rDef = $rule.definition,\n\t $closingBraces = '';\n\t var $compile, $inline, $macro, $ruleValidate, $validateCode;\n\t if ($isData && $rDef.$data) {\n\t $validateCode = 'keywordValidate' + $lvl;\n\t var $validateSchema = $rDef.validateSchema;\n\t out += ' var ' + ($definition) + ' = RULES.custom[\\'' + ($keyword) + '\\'].definition; var ' + ($validateCode) + ' = ' + ($definition) + '.validate;';\n\t } else {\n\t $ruleValidate = it.useCustomRule($rule, $schema, it.schema, it);\n\t if (!$ruleValidate) return;\n\t $schemaValue = 'validate.schema' + $schemaPath;\n\t $validateCode = $ruleValidate.code;\n\t $compile = $rDef.compile;\n\t $inline = $rDef.inline;\n\t $macro = $rDef.macro;\n\t }\n\t var $ruleErrs = $validateCode + '.errors',\n\t $i = 'i' + $lvl,\n\t $ruleErr = 'ruleErr' + $lvl,\n\t $asyncKeyword = $rDef.async;\n\t if ($asyncKeyword && !it.async) throw new Error('async keyword in sync schema');\n\t if (!($inline || $macro)) {\n\t out += '' + ($ruleErrs) + ' = null;';\n\t }\n\t out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n\t if ($isData && $rDef.$data) {\n\t $closingBraces += '}';\n\t out += ' if (' + ($schemaValue) + ' === undefined) { ' + ($valid) + ' = true; } else { ';\n\t if ($validateSchema) {\n\t $closingBraces += '}';\n\t out += ' ' + ($valid) + ' = ' + ($definition) + '.validateSchema(' + ($schemaValue) + '); if (' + ($valid) + ') { ';\n\t }\n\t }\n\t if ($inline) {\n\t if ($rDef.statements) {\n\t out += ' ' + ($ruleValidate.validate) + ' ';\n\t } else {\n\t out += ' ' + ($valid) + ' = ' + ($ruleValidate.validate) + '; ';\n\t }\n\t } else if ($macro) {\n\t var $it = it.util.copy(it);\n\t var $closingBraces = '';\n\t $it.level++;\n\t var $nextValid = 'valid' + $it.level;\n\t $it.schema = $ruleValidate.validate;\n\t $it.schemaPath = '';\n\t var $wasComposite = it.compositeRule;\n\t it.compositeRule = $it.compositeRule = true;\n\t var $code = it.validate($it).replace(/validate\\.schema/g, $validateCode);\n\t it.compositeRule = $it.compositeRule = $wasComposite;\n\t out += ' ' + ($code);\n\t } else {\n\t var $$outStack = $$outStack || [];\n\t $$outStack.push(out);\n\t out = '';\n\t out += ' ' + ($validateCode) + '.call( ';\n\t if (it.opts.passContext) {\n\t out += 'this';\n\t } else {\n\t out += 'self';\n\t }\n\t if ($compile || $rDef.schema === false) {\n\t out += ' , ' + ($data) + ' ';\n\t } else {\n\t out += ' , ' + ($schemaValue) + ' , ' + ($data) + ' , validate.schema' + (it.schemaPath) + ' ';\n\t }\n\t out += ' , (dataPath || \\'\\')';\n\t if (it.errorPath != '\"\"') {\n\t out += ' + ' + (it.errorPath);\n\t }\n\t var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n\t $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n\t out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ' , rootData ) ';\n\t var def_callRuleValidate = out;\n\t out = $$outStack.pop();\n\t if ($rDef.errors === false) {\n\t out += ' ' + ($valid) + ' = ';\n\t if ($asyncKeyword) {\n\t out += '' + (it.yieldAwait);\n\t }\n\t out += '' + (def_callRuleValidate) + '; ';\n\t } else {\n\t if ($asyncKeyword) {\n\t $ruleErrs = 'customErrors' + $lvl;\n\t out += ' var ' + ($ruleErrs) + ' = null; try { ' + ($valid) + ' = ' + (it.yieldAwait) + (def_callRuleValidate) + '; } catch (e) { ' + ($valid) + ' = false; if (e instanceof ValidationError) ' + ($ruleErrs) + ' = e.errors; else throw e; } ';\n\t } else {\n\t out += ' ' + ($ruleErrs) + ' = null; ' + ($valid) + ' = ' + (def_callRuleValidate) + '; ';\n\t }\n\t }\n\t }\n\t if ($rDef.modifying) {\n\t out += ' if (' + ($parentData) + ') ' + ($data) + ' = ' + ($parentData) + '[' + ($parentDataProperty) + '];';\n\t }\n\t out += '' + ($closingBraces);\n\t if ($rDef.valid) {\n\t if ($breakOnError) {\n\t out += ' if (true) { ';\n\t }\n\t } else {\n\t out += ' if ( ';\n\t if ($rDef.valid === undefined) {\n\t out += ' !';\n\t if ($macro) {\n\t out += '' + ($nextValid);\n\t } else {\n\t out += '' + ($valid);\n\t }\n\t } else {\n\t out += ' ' + (!$rDef.valid) + ' ';\n\t }\n\t out += ') { ';\n\t $errorKeyword = $rule.keyword;\n\t var $$outStack = $$outStack || [];\n\t $$outStack.push(out);\n\t out = '';\n\t var $$outStack = $$outStack || [];\n\t $$outStack.push(out);\n\t out = ''; /* istanbul ignore else */\n\t if (it.createErrors !== false) {\n\t out += ' { keyword: \\'' + ($errorKeyword || 'custom') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { keyword: \\'' + ($rule.keyword) + '\\' } ';\n\t if (it.opts.messages !== false) {\n\t out += ' , message: \\'should pass \"' + ($rule.keyword) + '\" keyword validation\\' ';\n\t }\n\t if (it.opts.verbose) {\n\t out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n\t }\n\t out += ' } ';\n\t } else {\n\t out += ' {} ';\n\t }\n\t var __err = out;\n\t out = $$outStack.pop();\n\t if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */\n\t if (it.async) {\n\t out += ' throw new ValidationError([' + (__err) + ']); ';\n\t } else {\n\t out += ' validate.errors = [' + (__err) + ']; return false; ';\n\t }\n\t } else {\n\t out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n\t }\n\t var def_customError = out;\n\t out = $$outStack.pop();\n\t if ($inline) {\n\t if ($rDef.errors) {\n\t if ($rDef.errors != 'full') {\n\t out += ' for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \\'\\') + ' + (it.errorPath) + '; if (' + ($ruleErr) + '.schemaPath === undefined) { ' + ($ruleErr) + '.schemaPath = \"' + ($errSchemaPath) + '\"; } ';\n\t if (it.opts.verbose) {\n\t out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';\n\t }\n\t out += ' } ';\n\t }\n\t } else {\n\t if ($rDef.errors === false) {\n\t out += ' ' + (def_customError) + ' ';\n\t } else {\n\t out += ' if (' + ($errs) + ' == errors) { ' + (def_customError) + ' } else { for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \\'\\') + ' + (it.errorPath) + '; if (' + ($ruleErr) + '.schemaPath === undefined) { ' + ($ruleErr) + '.schemaPath = \"' + ($errSchemaPath) + '\"; } ';\n\t if (it.opts.verbose) {\n\t out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';\n\t }\n\t out += ' } } ';\n\t }\n\t }\n\t } else if ($macro) {\n\t out += ' var err = '; /* istanbul ignore else */\n\t if (it.createErrors !== false) {\n\t out += ' { keyword: \\'' + ($errorKeyword || 'custom') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { keyword: \\'' + ($rule.keyword) + '\\' } ';\n\t if (it.opts.messages !== false) {\n\t out += ' , message: \\'should pass \"' + ($rule.keyword) + '\" keyword validation\\' ';\n\t }\n\t if (it.opts.verbose) {\n\t out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n\t }\n\t out += ' } ';\n\t } else {\n\t out += ' {} ';\n\t }\n\t out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n\t if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */\n\t if (it.async) {\n\t out += ' throw new ValidationError(vErrors); ';\n\t } else {\n\t out += ' validate.errors = vErrors; return false; ';\n\t }\n\t }\n\t } else {\n\t if ($rDef.errors === false) {\n\t out += ' ' + (def_customError) + ' ';\n\t } else {\n\t out += ' if (Array.isArray(' + ($ruleErrs) + ')) { if (vErrors === null) vErrors = ' + ($ruleErrs) + '; else vErrors = vErrors.concat(' + ($ruleErrs) + '); errors = vErrors.length; for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \\'\\') + ' + (it.errorPath) + '; ' + ($ruleErr) + '.schemaPath = \"' + ($errSchemaPath) + '\"; ';\n\t if (it.opts.verbose) {\n\t out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';\n\t }\n\t out += ' } } else { ' + (def_customError) + ' } ';\n\t }\n\t }\n\t out += ' } ';\n\t if ($breakOnError) {\n\t out += ' else { ';\n\t }\n\t }\n\t return out;\n\t}\n\n\n/***/ },\n/* 52 */\n/***/ function(module, exports) {\n\n\tmodule.exports = {\n\t\t\"$schema\": \"http://json-schema.org/draft-06/schema#\",\n\t\t\"$id\": \"https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/$data.json#\",\n\t\t\"description\": \"Meta-schema for $data reference (JSON-schema extension proposal)\",\n\t\t\"type\": \"object\",\n\t\t\"required\": [\n\t\t\t\"$data\"\n\t\t],\n\t\t\"properties\": {\n\t\t\t\"$data\": {\n\t\t\t\t\"type\": \"string\",\n\t\t\t\t\"anyOf\": [\n\t\t\t\t\t{\n\t\t\t\t\t\t\"format\": \"relative-json-pointer\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t\"format\": \"json-pointer\"\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t},\n\t\t\"additionalProperties\": false\n\t};\n\n/***/ },\n/* 53 */\n/***/ function(module, exports) {\n\n\tmodule.exports = {\n\t\t\"$schema\": \"http://json-schema.org/draft-06/schema#\",\n\t\t\"$id\": \"http://json-schema.org/draft-06/schema#\",\n\t\t\"title\": \"Core schema meta-schema\",\n\t\t\"definitions\": {\n\t\t\t\"schemaArray\": {\n\t\t\t\t\"type\": \"array\",\n\t\t\t\t\"minItems\": 1,\n\t\t\t\t\"items\": {\n\t\t\t\t\t\"$ref\": \"#\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"nonNegativeInteger\": {\n\t\t\t\t\"type\": \"integer\",\n\t\t\t\t\"minimum\": 0\n\t\t\t},\n\t\t\t\"nonNegativeIntegerDefault0\": {\n\t\t\t\t\"allOf\": [\n\t\t\t\t\t{\n\t\t\t\t\t\t\"$ref\": \"#/definitions/nonNegativeInteger\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t\"default\": 0\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"simpleTypes\": {\n\t\t\t\t\"enum\": [\n\t\t\t\t\t\"array\",\n\t\t\t\t\t\"boolean\",\n\t\t\t\t\t\"integer\",\n\t\t\t\t\t\"null\",\n\t\t\t\t\t\"number\",\n\t\t\t\t\t\"object\",\n\t\t\t\t\t\"string\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"stringArray\": {\n\t\t\t\t\"type\": \"array\",\n\t\t\t\t\"items\": {\n\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t},\n\t\t\t\t\"uniqueItems\": true,\n\t\t\t\t\"default\": []\n\t\t\t}\n\t\t},\n\t\t\"type\": [\n\t\t\t\"object\",\n\t\t\t\"boolean\"\n\t\t],\n\t\t\"properties\": {\n\t\t\t\"$id\": {\n\t\t\t\t\"type\": \"string\",\n\t\t\t\t\"format\": \"uri-reference\"\n\t\t\t},\n\t\t\t\"$schema\": {\n\t\t\t\t\"type\": \"string\",\n\t\t\t\t\"format\": \"uri\"\n\t\t\t},\n\t\t\t\"$ref\": {\n\t\t\t\t\"type\": \"string\",\n\t\t\t\t\"format\": \"uri-reference\"\n\t\t\t},\n\t\t\t\"title\": {\n\t\t\t\t\"type\": \"string\"\n\t\t\t},\n\t\t\t\"description\": {\n\t\t\t\t\"type\": \"string\"\n\t\t\t},\n\t\t\t\"default\": {},\n\t\t\t\"multipleOf\": {\n\t\t\t\t\"type\": \"number\",\n\t\t\t\t\"exclusiveMinimum\": 0\n\t\t\t},\n\t\t\t\"maximum\": {\n\t\t\t\t\"type\": \"number\"\n\t\t\t},\n\t\t\t\"exclusiveMaximum\": {\n\t\t\t\t\"type\": \"number\"\n\t\t\t},\n\t\t\t\"minimum\": {\n\t\t\t\t\"type\": \"number\"\n\t\t\t},\n\t\t\t\"exclusiveMinimum\": {\n\t\t\t\t\"type\": \"number\"\n\t\t\t},\n\t\t\t\"maxLength\": {\n\t\t\t\t\"$ref\": \"#/definitions/nonNegativeInteger\"\n\t\t\t},\n\t\t\t\"minLength\": {\n\t\t\t\t\"$ref\": \"#/definitions/nonNegativeIntegerDefault0\"\n\t\t\t},\n\t\t\t\"pattern\": {\n\t\t\t\t\"type\": \"string\",\n\t\t\t\t\"format\": \"regex\"\n\t\t\t},\n\t\t\t\"additionalItems\": {\n\t\t\t\t\"$ref\": \"#\"\n\t\t\t},\n\t\t\t\"items\": {\n\t\t\t\t\"anyOf\": [\n\t\t\t\t\t{\n\t\t\t\t\t\t\"$ref\": \"#\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t\"$ref\": \"#/definitions/schemaArray\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\t\"default\": {}\n\t\t\t},\n\t\t\t\"maxItems\": {\n\t\t\t\t\"$ref\": \"#/definitions/nonNegativeInteger\"\n\t\t\t},\n\t\t\t\"minItems\": {\n\t\t\t\t\"$ref\": \"#/definitions/nonNegativeIntegerDefault0\"\n\t\t\t},\n\t\t\t\"uniqueItems\": {\n\t\t\t\t\"type\": \"boolean\",\n\t\t\t\t\"default\": false\n\t\t\t},\n\t\t\t\"contains\": {\n\t\t\t\t\"$ref\": \"#\"\n\t\t\t},\n\t\t\t\"maxProperties\": {\n\t\t\t\t\"$ref\": \"#/definitions/nonNegativeInteger\"\n\t\t\t},\n\t\t\t\"minProperties\": {\n\t\t\t\t\"$ref\": \"#/definitions/nonNegativeIntegerDefault0\"\n\t\t\t},\n\t\t\t\"required\": {\n\t\t\t\t\"$ref\": \"#/definitions/stringArray\"\n\t\t\t},\n\t\t\t\"additionalProperties\": {\n\t\t\t\t\"$ref\": \"#\"\n\t\t\t},\n\t\t\t\"definitions\": {\n\t\t\t\t\"type\": \"object\",\n\t\t\t\t\"additionalProperties\": {\n\t\t\t\t\t\"$ref\": \"#\"\n\t\t\t\t},\n\t\t\t\t\"default\": {}\n\t\t\t},\n\t\t\t\"properties\": {\n\t\t\t\t\"type\": \"object\",\n\t\t\t\t\"additionalProperties\": {\n\t\t\t\t\t\"$ref\": \"#\"\n\t\t\t\t},\n\t\t\t\t\"default\": {}\n\t\t\t},\n\t\t\t\"patternProperties\": {\n\t\t\t\t\"type\": \"object\",\n\t\t\t\t\"additionalProperties\": {\n\t\t\t\t\t\"$ref\": \"#\"\n\t\t\t\t},\n\t\t\t\t\"default\": {}\n\t\t\t},\n\t\t\t\"dependencies\": {\n\t\t\t\t\"type\": \"object\",\n\t\t\t\t\"additionalProperties\": {\n\t\t\t\t\t\"anyOf\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"$ref\": \"#\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"$ref\": \"#/definitions/stringArray\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"propertyNames\": {\n\t\t\t\t\"$ref\": \"#\"\n\t\t\t},\n\t\t\t\"const\": {},\n\t\t\t\"enum\": {\n\t\t\t\t\"type\": \"array\",\n\t\t\t\t\"minItems\": 1,\n\t\t\t\t\"uniqueItems\": true\n\t\t\t},\n\t\t\t\"type\": {\n\t\t\t\t\"anyOf\": [\n\t\t\t\t\t{\n\t\t\t\t\t\t\"$ref\": \"#/definitions/simpleTypes\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t\"type\": \"array\",\n\t\t\t\t\t\t\"items\": {\n\t\t\t\t\t\t\t\"$ref\": \"#/definitions/simpleTypes\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"minItems\": 1,\n\t\t\t\t\t\t\"uniqueItems\": true\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"format\": {\n\t\t\t\t\"type\": \"string\"\n\t\t\t},\n\t\t\t\"allOf\": {\n\t\t\t\t\"$ref\": \"#/definitions/schemaArray\"\n\t\t\t},\n\t\t\t\"anyOf\": {\n\t\t\t\t\"$ref\": \"#/definitions/schemaArray\"\n\t\t\t},\n\t\t\t\"oneOf\": {\n\t\t\t\t\"$ref\": \"#/definitions/schemaArray\"\n\t\t\t},\n\t\t\t\"not\": {\n\t\t\t\t\"$ref\": \"#\"\n\t\t\t}\n\t\t},\n\t\t\"default\": {}\n\t};\n\n/***/ },\n/* 54 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\n\tvar Highlighter = __webpack_require__(55);\n\tvar History = __webpack_require__(56);\n\tvar SearchBox = __webpack_require__(59);\n\tvar ContextMenu = __webpack_require__(60);\n\tvar Node = __webpack_require__(61);\n\tvar ModeSwitcher = __webpack_require__(64);\n\tvar util = __webpack_require__(57);\n\tvar autocomplete = __webpack_require__(65);\n\n\t// create a mixin with the functions for tree mode\n\tvar treemode = {};\n\n\t/**\n\t * Create a tree editor\n\t * @param {Element} container Container element\n\t * @param {Object} [options] Object with options. available options:\n\t * {String} mode Editor mode. Available values:\n\t * 'tree' (default), 'view',\n\t * and 'form'.\n\t * {Boolean} search Enable search box.\n\t * True by default\n\t * {Boolean} history Enable history (undo/redo).\n\t * True by default\n\t * {function} onChange Callback method, triggered\n\t * on change of contents\n\t * {String} name Field name for the root node.\n\t * {boolean} escapeUnicode If true, unicode\n\t * characters are escaped.\n\t * false by default.\n\t * {Object} schema A JSON Schema for validation\n\t * @private\n\t */\n\ttreemode.create = function (container, options) {\n\t if (!container) {\n\t throw new Error('No container element provided.');\n\t }\n\t this.container = container;\n\t this.dom = {};\n\t this.highlighter = new Highlighter();\n\t this.selection = undefined; // will hold the last input selection\n\t this.multiselection = {\n\t nodes: []\n\t };\n\t this.validateSchema = null; // will be set in .setSchema(schema)\n\t this.errorNodes = [];\n\n\t this.node = null;\n\t this.focusTarget = null;\n\n\t this._setOptions(options);\n\n\t if (options.autocomplete)\n\t this.autocomplete = new autocomplete(options.autocomplete);\n\n\t if (this.options.history && this.options.mode !== 'view') {\n\t this.history = new History(this);\n\t }\n\n\t this._createFrame();\n\t this._createTable();\n\t};\n\n\t/**\n\t * Destroy the editor. Clean up DOM, event listeners, and web workers.\n\t */\n\ttreemode.destroy = function () {\n\t if (this.frame && this.container && this.frame.parentNode == this.container) {\n\t this.container.removeChild(this.frame);\n\t this.frame = null;\n\t }\n\t this.container = null;\n\n\t this.dom = null;\n\n\t this.clear();\n\t this.node = null;\n\t this.focusTarget = null;\n\t this.selection = null;\n\t this.multiselection = null;\n\t this.errorNodes = null;\n\t this.validateSchema = null;\n\t this._debouncedValidate = null;\n\n\t if (this.history) {\n\t this.history.destroy();\n\t this.history = null;\n\t }\n\n\t if (this.searchBox) {\n\t this.searchBox.destroy();\n\t this.searchBox = null;\n\t }\n\n\t if (this.modeSwitcher) {\n\t this.modeSwitcher.destroy();\n\t this.modeSwitcher = null;\n\t }\n\t};\n\n\t/**\n\t * Initialize and set default options\n\t * @param {Object} [options] See description in constructor\n\t * @private\n\t */\n\ttreemode._setOptions = function (options) {\n\t this.options = {\n\t search: true,\n\t history: true,\n\t mode: 'tree',\n\t name: undefined, // field name of root node\n\t schema: null,\n\t schemaRefs: null,\n\t autocomplete: null\n\t };\n\n\t // copy all options\n\t if (options) {\n\t for (var prop in options) {\n\t if (options.hasOwnProperty(prop)) {\n\t this.options[prop] = options[prop];\n\t }\n\t }\n\t }\n\n\t // compile a JSON schema validator if a JSON schema is provided\n\t this.setSchema(this.options.schema, this.options.schemaRefs);\n\n\t // create a debounced validate function\n\t this._debouncedValidate = util.debounce(this.validate.bind(this), this.DEBOUNCE_INTERVAL);\n\t};\n\n\t/**\n\t * Set JSON object in editor\n\t * @param {Object | undefined} json JSON data\n\t * @param {String} [name] Optional field name for the root node.\n\t * Can also be set using setName(name).\n\t */\n\ttreemode.set = function (json, name) {\n\t // adjust field name for root node\n\t if (name) {\n\t // TODO: deprecated since version 2.2.0. Cleanup some day.\n\t console.warn('Second parameter \"name\" is deprecated. Use setName(name) instead.');\n\t this.options.name = name;\n\t }\n\n\t // verify if json is valid JSON, ignore when a function\n\t if (json instanceof Function || (json === undefined)) {\n\t this.clear();\n\t }\n\t else {\n\t this.content.removeChild(this.table); // Take the table offline\n\n\t // replace the root node\n\t var params = {\n\t field: this.options.name,\n\t value: json\n\t };\n\t var node = new Node(this, params);\n\t this._setRoot(node);\n\n\t // validate JSON schema (if configured)\n\t this.validate();\n\n\t // expand\n\t var recurse = false;\n\t this.node.expand(recurse);\n\n\t this.content.appendChild(this.table); // Put the table online again\n\t }\n\n\t // TODO: maintain history, store last state and previous document\n\t if (this.history) {\n\t this.history.clear();\n\t }\n\n\t // clear search\n\t if (this.searchBox) {\n\t this.searchBox.clear();\n\t }\n\t};\n\n\t/**\n\t * Get JSON object from editor\n\t * @return {Object | undefined} json\n\t */\n\ttreemode.get = function () {\n\t // remove focus from currently edited node\n\t if (this.focusTarget) {\n\t var node = Node.getNodeFromTarget(this.focusTarget);\n\t if (node) {\n\t node.blur();\n\t }\n\t }\n\n\t if (this.node) {\n\t return this.node.getValue();\n\t }\n\t else {\n\t return undefined;\n\t }\n\t};\n\n\t/**\n\t * Get the text contents of the editor\n\t * @return {String} jsonText\n\t */\n\ttreemode.getText = function() {\n\t return JSON.stringify(this.get());\n\t};\n\n\t/**\n\t * Set the text contents of the editor\n\t * @param {String} jsonText\n\t */\n\ttreemode.setText = function(jsonText) {\n\t try {\n\t this.set(util.parse(jsonText)); // this can throw an error\n\t }\n\t catch (err) {\n\t // try to sanitize json, replace JavaScript notation with JSON notation\n\t var sanitizedJsonText = util.sanitize(jsonText);\n\n\t // try to parse again\n\t this.set(util.parse(sanitizedJsonText)); // this can throw an error\n\t }\n\t};\n\n\t/**\n\t * Set a field name for the root node.\n\t * @param {String | undefined} name\n\t */\n\ttreemode.setName = function (name) {\n\t this.options.name = name;\n\t if (this.node) {\n\t this.node.updateField(this.options.name);\n\t }\n\t};\n\n\t/**\n\t * Get the field name for the root node.\n\t * @return {String | undefined} name\n\t */\n\ttreemode.getName = function () {\n\t return this.options.name;\n\t};\n\n\t/**\n\t * Set focus to the editor. Focus will be set to:\n\t * - the first editable field or value, or else\n\t * - to the expand button of the root node, or else\n\t * - to the context menu button of the root node, or else\n\t * - to the first button in the top menu\n\t */\n\ttreemode.focus = function () {\n\t var input = this.content.querySelector('[contenteditable=true]');\n\t if (input) {\n\t input.focus();\n\t }\n\t else if (this.node.dom.expand) {\n\t this.node.dom.expand.focus();\n\t }\n\t else if (this.node.dom.menu) {\n\t this.node.dom.menu.focus();\n\t }\n\t else {\n\t // focus to the first button in the menu\n\t input = this.frame.querySelector('button');\n\t if (input) {\n\t input.focus();\n\t }\n\t }\n\t};\n\n\t/**\n\t * Remove the root node from the editor\n\t */\n\ttreemode.clear = function () {\n\t if (this.node) {\n\t this.node.collapse();\n\t this.tbody.removeChild(this.node.getDom());\n\t delete this.node;\n\t }\n\t};\n\n\t/**\n\t * Set the root node for the json editor\n\t * @param {Node} node\n\t * @private\n\t */\n\ttreemode._setRoot = function (node) {\n\t this.clear();\n\n\t this.node = node;\n\n\t // append to the dom\n\t this.tbody.appendChild(node.getDom());\n\t};\n\n\t/**\n\t * Search text in all nodes\n\t * The nodes will be expanded when the text is found one of its childs,\n\t * else it will be collapsed. Searches are case insensitive.\n\t * @param {String} text\n\t * @return {Object[]} results Array with nodes containing the search results\n\t * The result objects contains fields:\n\t * - {Node} node,\n\t * - {String} elem the dom element name where\n\t * the result is found ('field' or\n\t * 'value')\n\t */\n\ttreemode.search = function (text) {\n\t var results;\n\t if (this.node) {\n\t this.content.removeChild(this.table); // Take the table offline\n\t results = this.node.search(text);\n\t this.content.appendChild(this.table); // Put the table online again\n\t }\n\t else {\n\t results = [];\n\t }\n\n\t return results;\n\t};\n\n\t/**\n\t * Expand all nodes\n\t */\n\ttreemode.expandAll = function () {\n\t if (this.node) {\n\t this.content.removeChild(this.table); // Take the table offline\n\t this.node.expand();\n\t this.content.appendChild(this.table); // Put the table online again\n\t }\n\t};\n\n\t/**\n\t * Collapse all nodes\n\t */\n\ttreemode.collapseAll = function () {\n\t if (this.node) {\n\t this.content.removeChild(this.table); // Take the table offline\n\t this.node.collapse();\n\t this.content.appendChild(this.table); // Put the table online again\n\t }\n\t};\n\n\t/**\n\t * The method onChange is called whenever a field or value is changed, created,\n\t * deleted, duplicated, etc.\n\t * @param {String} action Change action. Available values: \"editField\",\n\t * \"editValue\", \"changeType\", \"appendNode\",\n\t * \"removeNode\", \"duplicateNode\", \"moveNode\", \"expand\",\n\t * \"collapse\".\n\t * @param {Object} params Object containing parameters describing the change.\n\t * The parameters in params depend on the action (for\n\t * example for \"editValue\" the Node, old value, and new\n\t * value are provided). params contains all information\n\t * needed to undo or redo the action.\n\t * @private\n\t */\n\ttreemode._onAction = function (action, params) {\n\t // add an action to the history\n\t if (this.history) {\n\t this.history.add(action, params);\n\t }\n\n\t this._onChange();\n\t};\n\n\t/**\n\t * Handle a change:\n\t * - Validate JSON schema\n\t * - Send a callback to the onChange listener if provided\n\t * @private\n\t */\n\ttreemode._onChange = function () {\n\t // validate JSON schema (if configured)\n\t this._debouncedValidate();\n\n\t // trigger the onChange callback\n\t if (this.options.onChange) {\n\t try {\n\t this.options.onChange();\n\t }\n\t catch (err) {\n\t console.error('Error in onChange callback: ', err);\n\t }\n\t }\n\t};\n\n\t/**\n\t * Validate current JSON object against the configured JSON schema\n\t * Throws an exception when no JSON schema is configured\n\t */\n\ttreemode.validate = function () {\n\t // clear all current errors\n\t if (this.errorNodes) {\n\t this.errorNodes.forEach(function (node) {\n\t node.setError(null);\n\t });\n\t }\n\n\t var root = this.node;\n\t if (!root) { // TODO: this should be redundant but is needed on mode switch\n\t return;\n\t }\n\n\t // check for duplicate keys\n\t var duplicateErrors = root.validate();\n\n\t // validate the JSON\n\t var schemaErrors = [];\n\t if (this.validateSchema) {\n\t var valid = this.validateSchema(root.getValue());\n\t if (!valid) {\n\t // apply all new errors\n\t schemaErrors = this.validateSchema.errors\n\t .map(function (error) {\n\t return util.improveSchemaError(error);\n\t })\n\t .map(function findNode (error) {\n\t return {\n\t node: root.findNode(error.dataPath),\n\t error: error\n\t }\n\t })\n\t .filter(function hasNode (entry) {\n\t return entry.node != null\n\t });\n\t }\n\t }\n\n\t // display the error in the nodes with a problem\n\t this.errorNodes = duplicateErrors\n\t .concat(schemaErrors)\n\t .reduce(function expandParents (all, entry) {\n\t // expand parents, then merge such that parents come first and\n\t // original entries last\n\t return entry.node\n\t .findParents()\n\t .map(function (parent) {\n\t return {\n\t node: parent,\n\t child: entry.node,\n\t error: {\n\t message: parent.type === 'object'\n\t ? 'Contains invalid properties' // object\n\t : 'Contains invalid items' // array\n\t }\n\t };\n\t })\n\t .concat(all, [entry]);\n\t }, [])\n\t // TODO: dedupe the parent nodes\n\t .map(function setError (entry) {\n\t entry.node.setError(entry.error, entry.child);\n\t return entry.node;\n\t });\n\t};\n\n\t/**\n\t * Refresh the rendered contents\n\t */\n\ttreemode.refresh = function () {\n\t if (this.node) {\n\t this.node.updateDom({recurse: true});\n\t }\n\t};\n\n\t/**\n\t * Start autoscrolling when given mouse position is above the top of the\n\t * editor contents, or below the bottom.\n\t * @param {Number} mouseY Absolute mouse position in pixels\n\t */\n\ttreemode.startAutoScroll = function (mouseY) {\n\t var me = this;\n\t var content = this.content;\n\t var top = util.getAbsoluteTop(content);\n\t var height = content.clientHeight;\n\t var bottom = top + height;\n\t var margin = 24;\n\t var interval = 50; // ms\n\n\t if ((mouseY < top + margin) && content.scrollTop > 0) {\n\t this.autoScrollStep = ((top + margin) - mouseY) / 3;\n\t }\n\t else if (mouseY > bottom - margin &&\n\t height + content.scrollTop < content.scrollHeight) {\n\t this.autoScrollStep = ((bottom - margin) - mouseY) / 3;\n\t }\n\t else {\n\t this.autoScrollStep = undefined;\n\t }\n\n\t if (this.autoScrollStep) {\n\t if (!this.autoScrollTimer) {\n\t this.autoScrollTimer = setInterval(function () {\n\t if (me.autoScrollStep) {\n\t content.scrollTop -= me.autoScrollStep;\n\t }\n\t else {\n\t me.stopAutoScroll();\n\t }\n\t }, interval);\n\t }\n\t }\n\t else {\n\t this.stopAutoScroll();\n\t }\n\t};\n\n\t/**\n\t * Stop auto scrolling. Only applicable when scrolling\n\t */\n\ttreemode.stopAutoScroll = function () {\n\t if (this.autoScrollTimer) {\n\t clearTimeout(this.autoScrollTimer);\n\t delete this.autoScrollTimer;\n\t }\n\t if (this.autoScrollStep) {\n\t delete this.autoScrollStep;\n\t }\n\t};\n\n\n\t/**\n\t * Set the focus to an element in the editor, set text selection, and\n\t * set scroll position.\n\t * @param {Object} selection An object containing fields:\n\t * {Element | undefined} dom The dom element\n\t * which has focus\n\t * {Range | TextRange} range A text selection\n\t * {Node[]} nodes Nodes in case of multi selection\n\t * {Number} scrollTop Scroll position\n\t */\n\ttreemode.setSelection = function (selection) {\n\t if (!selection) {\n\t return;\n\t }\n\n\t if ('scrollTop' in selection && this.content) {\n\t // TODO: animated scroll\n\t this.content.scrollTop = selection.scrollTop;\n\t }\n\t if (selection.nodes) {\n\t // multi-select\n\t this.select(selection.nodes);\n\t }\n\t if (selection.range) {\n\t util.setSelectionOffset(selection.range);\n\t }\n\t if (selection.dom) {\n\t selection.dom.focus();\n\t }\n\t};\n\n\t/**\n\t * Get the current focus\n\t * @return {Object} selection An object containing fields:\n\t * {Element | undefined} dom The dom element\n\t * which has focus\n\t * {Range | TextRange} range A text selection\n\t * {Node[]} nodes Nodes in case of multi selection\n\t * {Number} scrollTop Scroll position\n\t */\n\ttreemode.getSelection = function () {\n\t var range = util.getSelectionOffset();\n\t if (range && range.container.nodeName !== 'DIV') { // filter on (editable) divs)\n\t range = null;\n\t }\n\n\t return {\n\t dom: this.focusTarget,\n\t range: range,\n\t nodes: this.multiselection.nodes.slice(0),\n\t scrollTop: this.content ? this.content.scrollTop : 0\n\t };\n\t};\n\n\t/**\n\t * Adjust the scroll position such that given top position is shown at 1/4\n\t * of the window height.\n\t * @param {Number} top\n\t * @param {function(boolean)} [callback] Callback, executed when animation is\n\t * finished. The callback returns true\n\t * when animation is finished, or false\n\t * when not.\n\t */\n\ttreemode.scrollTo = function (top, callback) {\n\t var content = this.content;\n\t if (content) {\n\t var editor = this;\n\t // cancel any running animation\n\t if (editor.animateTimeout) {\n\t clearTimeout(editor.animateTimeout);\n\t delete editor.animateTimeout;\n\t }\n\t if (editor.animateCallback) {\n\t editor.animateCallback(false);\n\t delete editor.animateCallback;\n\t }\n\n\t // calculate final scroll position\n\t var height = content.clientHeight;\n\t var bottom = content.scrollHeight - height;\n\t var finalScrollTop = Math.min(Math.max(top - height / 4, 0), bottom);\n\n\t // animate towards the new scroll position\n\t var animate = function () {\n\t var scrollTop = content.scrollTop;\n\t var diff = (finalScrollTop - scrollTop);\n\t if (Math.abs(diff) > 3) {\n\t content.scrollTop += diff / 3;\n\t editor.animateCallback = callback;\n\t editor.animateTimeout = setTimeout(animate, 50);\n\t }\n\t else {\n\t // finished\n\t if (callback) {\n\t callback(true);\n\t }\n\t content.scrollTop = finalScrollTop;\n\t delete editor.animateTimeout;\n\t delete editor.animateCallback;\n\t }\n\t };\n\t animate();\n\t }\n\t else {\n\t if (callback) {\n\t callback(false);\n\t }\n\t }\n\t};\n\n\t/**\n\t * Create main frame\n\t * @private\n\t */\n\ttreemode._createFrame = function () {\n\t // create the frame\n\t this.frame = document.createElement('div');\n\t this.frame.className = 'jsoneditor jsoneditor-mode-' + this.options.mode;\n\t this.container.appendChild(this.frame);\n\n\t // create one global event listener to handle all events from all nodes\n\t var editor = this;\n\t function onEvent(event) {\n\t // when switching to mode \"code\" or \"text\" via the menu, some events\n\t // are still fired whilst the _onEvent methods is already removed.\n\t if (editor._onEvent) {\n\t editor._onEvent(event);\n\t }\n\t }\n\t this.frame.onclick = function (event) {\n\t var target = event.target;// || event.srcElement;\n\n\t onEvent(event);\n\n\t // prevent default submit action of buttons when editor is located\n\t // inside a form\n\t if (target.nodeName == 'BUTTON') {\n\t event.preventDefault();\n\t }\n\t };\n\t this.frame.oninput = onEvent;\n\t this.frame.onchange = onEvent;\n\t this.frame.onkeydown = onEvent;\n\t this.frame.onkeyup = onEvent;\n\t this.frame.oncut = onEvent;\n\t this.frame.onpaste = onEvent;\n\t this.frame.onmousedown = onEvent;\n\t this.frame.onmouseup = onEvent;\n\t this.frame.onmouseover = onEvent;\n\t this.frame.onmouseout = onEvent;\n\t // Note: focus and blur events do not propagate, therefore they defined\n\t // using an eventListener with useCapture=true\n\t // see http://www.quirksmode.org/blog/archives/2008/04/delegating_the.html\n\t util.addEventListener(this.frame, 'focus', onEvent, true);\n\t util.addEventListener(this.frame, 'blur', onEvent, true);\n\t this.frame.onfocusin = onEvent; // for IE\n\t this.frame.onfocusout = onEvent; // for IE\n\n\t // create menu\n\t this.menu = document.createElement('div');\n\t this.menu.className = 'jsoneditor-menu';\n\t this.frame.appendChild(this.menu);\n\n\t // create expand all button\n\t var expandAll = document.createElement('button');\n\t expandAll.type = 'button';\n\t expandAll.className = 'jsoneditor-expand-all';\n\t expandAll.title = 'Expand all fields';\n\t expandAll.onclick = function () {\n\t editor.expandAll();\n\t };\n\t this.menu.appendChild(expandAll);\n\n\t // create collapse all button\n\t var collapseAll = document.createElement('button');\n\t collapseAll.type = 'button';\n\t collapseAll.title = 'Collapse all fields';\n\t collapseAll.className = 'jsoneditor-collapse-all';\n\t collapseAll.onclick = function () {\n\t editor.collapseAll();\n\t };\n\t this.menu.appendChild(collapseAll);\n\n\t // create undo/redo buttons\n\t if (this.history) {\n\t // create undo button\n\t var undo = document.createElement('button');\n\t undo.type = 'button';\n\t undo.className = 'jsoneditor-undo jsoneditor-separator';\n\t undo.title = 'Undo last action (Ctrl+Z)';\n\t undo.onclick = function () {\n\t editor._onUndo();\n\t };\n\t this.menu.appendChild(undo);\n\t this.dom.undo = undo;\n\n\t // create redo button\n\t var redo = document.createElement('button');\n\t redo.type = 'button';\n\t redo.className = 'jsoneditor-redo';\n\t redo.title = 'Redo (Ctrl+Shift+Z)';\n\t redo.onclick = function () {\n\t editor._onRedo();\n\t };\n\t this.menu.appendChild(redo);\n\t this.dom.redo = redo;\n\n\t // register handler for onchange of history\n\t this.history.onChange = function () {\n\t undo.disabled = !editor.history.canUndo();\n\t redo.disabled = !editor.history.canRedo();\n\t };\n\t this.history.onChange();\n\t }\n\n\t // create mode box\n\t if (this.options && this.options.modes && this.options.modes.length) {\n\t var me = this;\n\t this.modeSwitcher = new ModeSwitcher(this.menu, this.options.modes, this.options.mode, function onSwitch(mode) {\n\t me.modeSwitcher.destroy();\n\n\t // switch mode and restore focus\n\t me.setMode(mode);\n\t me.modeSwitcher.focus();\n\t });\n\t }\n\n\t // create search box\n\t if (this.options.search) {\n\t this.searchBox = new SearchBox(this, this.menu);\n\t }\n\t};\n\n\t/**\n\t * Perform an undo action\n\t * @private\n\t */\n\ttreemode._onUndo = function () {\n\t if (this.history) {\n\t // undo last action\n\t this.history.undo();\n\n\t // fire change event\n\t this._onChange();\n\t }\n\t};\n\n\t/**\n\t * Perform a redo action\n\t * @private\n\t */\n\ttreemode._onRedo = function () {\n\t if (this.history) {\n\t // redo last action\n\t this.history.redo();\n\n\t // fire change event\n\t this._onChange();\n\t }\n\t};\n\n\t/**\n\t * Event handler\n\t * @param event\n\t * @private\n\t */\n\ttreemode._onEvent = function (event) {\n\t if (event.type == 'keydown') {\n\t this._onKeyDown(event);\n\t }\n\n\t if (event.type == 'focus') {\n\t this.focusTarget = event.target;\n\t }\n\n\t if (event.type == 'mousedown') {\n\t this._startDragDistance(event);\n\t }\n\t if (event.type == 'mousemove' || event.type == 'mouseup' || event.type == 'click') {\n\t this._updateDragDistance(event);\n\t }\n\n\t var node = Node.getNodeFromTarget(event.target);\n\n\t if (node && node.selected) {\n\t if (event.type == 'click') {\n\t if (event.target == node.dom.menu) {\n\t this.showContextMenu(event.target);\n\n\t // stop propagation (else we will open the context menu of a single node)\n\t return;\n\t }\n\n\t // deselect a multi selection\n\t if (!event.hasMoved) {\n\t this.deselect();\n\t }\n\t }\n\n\t if (event.type == 'mousedown') {\n\t // drag multiple nodes\n\t Node.onDragStart(this.multiselection.nodes, event);\n\t }\n\t }\n\t else {\n\t if (event.type == 'mousedown') {\n\t this.deselect();\n\n\t if (node && event.target == node.dom.drag) {\n\t // drag a singe node\n\t Node.onDragStart(node, event);\n\t }\n\t else if (!node || (event.target != node.dom.field && event.target != node.dom.value && event.target != node.dom.select)) {\n\t // select multiple nodes\n\t this._onMultiSelectStart(event);\n\t }\n\t }\n\t }\n\n\t if (node) {\n\t node.onEvent(event);\n\t }\n\t};\n\n\ttreemode._startDragDistance = function (event) {\n\t this.dragDistanceEvent = {\n\t initialTarget: event.target,\n\t initialPageX: event.pageX,\n\t initialPageY: event.pageY,\n\t dragDistance: 0,\n\t hasMoved: false\n\t };\n\t};\n\n\ttreemode._updateDragDistance = function (event) {\n\t if (!this.dragDistanceEvent) {\n\t this._startDragDistance(event);\n\t }\n\n\t var diffX = event.pageX - this.dragDistanceEvent.initialPageX;\n\t var diffY = event.pageY - this.dragDistanceEvent.initialPageY;\n\n\t this.dragDistanceEvent.dragDistance = Math.sqrt(diffX * diffX + diffY * diffY);\n\t this.dragDistanceEvent.hasMoved =\n\t this.dragDistanceEvent.hasMoved || this.dragDistanceEvent.dragDistance > 10;\n\n\t event.dragDistance = this.dragDistanceEvent.dragDistance;\n\t event.hasMoved = this.dragDistanceEvent.hasMoved;\n\n\t return event.dragDistance;\n\t};\n\n\t/**\n\t * Start multi selection of nodes by dragging the mouse\n\t * @param event\n\t * @private\n\t */\n\ttreemode._onMultiSelectStart = function (event) {\n\t var node = Node.getNodeFromTarget(event.target);\n\n\t if (this.options.mode !== 'tree' || this.options.onEditable !== undefined) {\n\t // dragging not allowed in modes 'view' and 'form'\n\t // TODO: allow multiselection of items when option onEditable is specified\n\t return;\n\t }\n\n\t this.multiselection = {\n\t start: node || null,\n\t end: null,\n\t nodes: []\n\t };\n\n\t this._startDragDistance(event);\n\n\t var editor = this;\n\t if (!this.mousemove) {\n\t this.mousemove = util.addEventListener(window, 'mousemove', function (event) {\n\t editor._onMultiSelect(event);\n\t });\n\t }\n\t if (!this.mouseup) {\n\t this.mouseup = util.addEventListener(window, 'mouseup', function (event ) {\n\t editor._onMultiSelectEnd(event);\n\t });\n\t }\n\n\t};\n\n\t/**\n\t * Multiselect nodes by dragging\n\t * @param event\n\t * @private\n\t */\n\ttreemode._onMultiSelect = function (event) {\n\t event.preventDefault();\n\n\t this._updateDragDistance(event);\n\t if (!event.hasMoved) {\n\t return;\n\t }\n\n\t var node = Node.getNodeFromTarget(event.target);\n\n\t if (node) {\n\t if (this.multiselection.start == null) {\n\t this.multiselection.start = node;\n\t }\n\t this.multiselection.end = node;\n\t }\n\n\t // deselect previous selection\n\t this.deselect();\n\n\t // find the selected nodes in the range from first to last\n\t var start = this.multiselection.start;\n\t var end = this.multiselection.end || this.multiselection.start;\n\t if (start && end) {\n\t // find the top level childs, all having the same parent\n\t this.multiselection.nodes = this._findTopLevelNodes(start, end);\n\t this.select(this.multiselection.nodes);\n\t }\n\t};\n\n\t/**\n\t * End of multiselect nodes by dragging\n\t * @param event\n\t * @private\n\t */\n\ttreemode._onMultiSelectEnd = function (event) {\n\t // set focus to the context menu button of the first node\n\t if (this.multiselection.nodes[0]) {\n\t this.multiselection.nodes[0].dom.menu.focus();\n\t }\n\n\t this.multiselection.start = null;\n\t this.multiselection.end = null;\n\n\t // cleanup global event listeners\n\t if (this.mousemove) {\n\t util.removeEventListener(window, 'mousemove', this.mousemove);\n\t delete this.mousemove;\n\t }\n\t if (this.mouseup) {\n\t util.removeEventListener(window, 'mouseup', this.mouseup);\n\t delete this.mouseup;\n\t }\n\t};\n\n\t/**\n\t * deselect currently selected nodes\n\t * @param {boolean} [clearStartAndEnd=false] If true, the `start` and `end`\n\t * state is cleared too.\n\t */\n\ttreemode.deselect = function (clearStartAndEnd) {\n\t this.multiselection.nodes.forEach(function (node) {\n\t node.setSelected(false);\n\t });\n\t this.multiselection.nodes = [];\n\n\t if (clearStartAndEnd) {\n\t this.multiselection.start = null;\n\t this.multiselection.end = null;\n\t }\n\t};\n\n\t/**\n\t * select nodes\n\t * @param {Node[] | Node} nodes\n\t */\n\ttreemode.select = function (nodes) {\n\t if (!Array.isArray(nodes)) {\n\t return this.select([nodes]);\n\t }\n\n\t if (nodes) {\n\t this.deselect();\n\n\t this.multiselection.nodes = nodes.slice(0);\n\n\t var first = nodes[0];\n\t nodes.forEach(function (node) {\n\t node.setSelected(true, node === first);\n\t });\n\t }\n\t};\n\n\t/**\n\t * From two arbitrary selected nodes, find their shared parent node.\n\t * From that parent node, select the two child nodes in the brances going to\n\t * nodes `start` and `end`, and select all childs in between.\n\t * @param {Node} start\n\t * @param {Node} end\n\t * @return {Array.<Node>} Returns an ordered list with child nodes\n\t * @private\n\t */\n\ttreemode._findTopLevelNodes = function (start, end) {\n\t var startPath = start.getNodePath();\n\t var endPath = end.getNodePath();\n\t var i = 0;\n\t while (i < startPath.length && startPath[i] === endPath[i]) {\n\t i++;\n\t }\n\t var root = startPath[i - 1];\n\t var startChild = startPath[i];\n\t var endChild = endPath[i];\n\n\t if (!startChild || !endChild) {\n\t if (root.parent) {\n\t // startChild is a parent of endChild or vice versa\n\t startChild = root;\n\t endChild = root;\n\t root = root.parent\n\t }\n\t else {\n\t // we have selected the root node (which doesn't have a parent)\n\t startChild = root.childs[0];\n\t endChild = root.childs[root.childs.length - 1];\n\t }\n\t }\n\n\t if (root && startChild && endChild) {\n\t var startIndex = root.childs.indexOf(startChild);\n\t var endIndex = root.childs.indexOf(endChild);\n\t var firstIndex = Math.min(startIndex, endIndex);\n\t var lastIndex = Math.max(startIndex, endIndex);\n\n\t return root.childs.slice(firstIndex, lastIndex + 1);\n\t }\n\t else {\n\t return [];\n\t }\n\t};\n\n\t/**\n\t * Event handler for keydown. Handles shortcut keys\n\t * @param {Event} event\n\t * @private\n\t */\n\ttreemode._onKeyDown = function (event) {\n\t var keynum = event.which || event.keyCode;\n\t var altKey = event.altKey;\n\t var ctrlKey = event.ctrlKey;\n\t var metaKey = event.metaKey;\n\t var shiftKey = event.shiftKey;\n\t var handled = false;\n\n\t if (keynum == 9) { // Tab or Shift+Tab\n\t var me = this;\n\t setTimeout(function () {\n\t // select all text when moving focus to an editable div\n\t util.selectContentEditable(me.focusTarget);\n\t }, 0);\n\t }\n\n\t if (this.searchBox) {\n\t if (ctrlKey && keynum == 70) { // Ctrl+F\n\t this.searchBox.dom.search.focus();\n\t this.searchBox.dom.search.select();\n\t handled = true;\n\t }\n\t else if (keynum == 114 || (ctrlKey && keynum == 71)) { // F3 or Ctrl+G\n\t var focus = true;\n\t if (!shiftKey) {\n\t // select next search result (F3 or Ctrl+G)\n\t this.searchBox.next(focus);\n\t }\n\t else {\n\t // select previous search result (Shift+F3 or Ctrl+Shift+G)\n\t this.searchBox.previous(focus);\n\t }\n\n\t handled = true;\n\t }\n\t }\n\n\t if (this.history) {\n\t if (ctrlKey && !shiftKey && keynum == 90) { // Ctrl+Z\n\t // undo\n\t this._onUndo();\n\t handled = true;\n\t }\n\t else if (ctrlKey && shiftKey && keynum == 90) { // Ctrl+Shift+Z\n\t // redo\n\t this._onRedo();\n\t handled = true;\n\t }\n\t }\n\n\t if ((this.options.autocomplete) && (!handled)) {\n\t if (!ctrlKey && !altKey && !metaKey && (event.key.length == 1 || keynum == 8 || keynum == 46)) {\n\t handled = false;\n\t var jsonElementType = \"\";\n\t if (event.target.className.indexOf(\"jsoneditor-value\") >= 0) jsonElementType = \"value\";\n\t if (event.target.className.indexOf(\"jsoneditor-field\") >= 0) jsonElementType = \"field\";\n\n\t var node = Node.getNodeFromTarget(event.target);\n\t // Activate autocomplete\n\t setTimeout(function (hnode, element) {\n\t if (element.innerText.length > 0) {\n\t var result = this.options.autocomplete.getOptions(element.innerText, hnode.getPath(), jsonElementType, hnode.editor);\n\t if (typeof result.then === 'function') {\n\t // probably a promise\n\t if (result.then(function (obj) {\n\t if (obj.options)\n\t this.autocomplete.show(element, obj.startFrom, obj.options);\n\t else\n\t this.autocomplete.show(element, 0, obj);\n\t }.bind(this)));\n\t } else {\n\t // definitely not a promise\n\t if (result.options)\n\t this.autocomplete.show(element, result.startFrom, result.options);\n\t else\n\t this.autocomplete.show(element, 0, result);\n\t }\n\t }\n\t else\n\t this.autocomplete.hideDropDown();\n\n\t }.bind(this, node, event.target), 50);\n\t } \n\t }\n\n\t if (handled) {\n\t event.preventDefault();\n\t event.stopPropagation();\n\t }\n\t};\n\n\t/**\n\t * Create main table\n\t * @private\n\t */\n\ttreemode._createTable = function () {\n\t var contentOuter = document.createElement('div');\n\t contentOuter.className = 'jsoneditor-outer';\n\t this.contentOuter = contentOuter;\n\n\t this.content = document.createElement('div');\n\t this.content.className = 'jsoneditor-tree';\n\t contentOuter.appendChild(this.content);\n\n\t this.table = document.createElement('table');\n\t this.table.className = 'jsoneditor-tree';\n\t this.content.appendChild(this.table);\n\n\t // create colgroup where the first two columns don't have a fixed\n\t // width, and the edit columns do have a fixed width\n\t var col;\n\t this.colgroupContent = document.createElement('colgroup');\n\t if (this.options.mode === 'tree') {\n\t col = document.createElement('col');\n\t col.width = \"24px\";\n\t this.colgroupContent.appendChild(col);\n\t }\n\t col = document.createElement('col');\n\t col.width = \"24px\";\n\t this.colgroupContent.appendChild(col);\n\t col = document.createElement('col');\n\t this.colgroupContent.appendChild(col);\n\t this.table.appendChild(this.colgroupContent);\n\n\t this.tbody = document.createElement('tbody');\n\t this.table.appendChild(this.tbody);\n\n\t this.frame.appendChild(contentOuter);\n\t};\n\n\t/**\n\t * Show a contextmenu for this node.\n\t * Used for multiselection\n\t * @param {HTMLElement} anchor Anchor element to attach the context menu to.\n\t * @param {function} [onClose] Callback method called when the context menu\n\t * is being closed.\n\t */\n\ttreemode.showContextMenu = function (anchor, onClose) {\n\t var items = [];\n\t var editor = this;\n\n\t // create duplicate button\n\t items.push({\n\t text: 'Duplicate',\n\t title: 'Duplicate selected fields (Ctrl+D)',\n\t className: 'jsoneditor-duplicate',\n\t click: function () {\n\t Node.onDuplicate(editor.multiselection.nodes);\n\t }\n\t });\n\n\t // create remove button\n\t items.push({\n\t text: 'Remove',\n\t title: 'Remove selected fields (Ctrl+Del)',\n\t className: 'jsoneditor-remove',\n\t click: function () {\n\t Node.onRemove(editor.multiselection.nodes);\n\t }\n\t });\n\n\t var menu = new ContextMenu(items, {close: onClose});\n\t menu.show(anchor, this.content);\n\t};\n\n\n\t// define modes\n\tmodule.exports = [\n\t {\n\t mode: 'tree',\n\t mixin: treemode,\n\t data: 'json'\n\t },\n\t {\n\t mode: 'view',\n\t mixin: treemode,\n\t data: 'json'\n\t },\n\t {\n\t mode: 'form',\n\t mixin: treemode,\n\t data: 'json'\n\t }\n\t];\n\n\n/***/ },\n/* 55 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\n\t/**\n\t * The highlighter can highlight/unhighlight a node, and\n\t * animate the visibility of a context menu.\n\t * @constructor Highlighter\n\t */\n\tfunction Highlighter () {\n\t this.locked = false;\n\t}\n\n\t/**\n\t * Hightlight given node and its childs\n\t * @param {Node} node\n\t */\n\tHighlighter.prototype.highlight = function (node) {\n\t if (this.locked) {\n\t return;\n\t }\n\n\t if (this.node != node) {\n\t // unhighlight current node\n\t if (this.node) {\n\t this.node.setHighlight(false);\n\t }\n\n\t // highlight new node\n\t this.node = node;\n\t this.node.setHighlight(true);\n\t }\n\n\t // cancel any current timeout\n\t this._cancelUnhighlight();\n\t};\n\n\t/**\n\t * Unhighlight currently highlighted node.\n\t * Will be done after a delay\n\t */\n\tHighlighter.prototype.unhighlight = function () {\n\t if (this.locked) {\n\t return;\n\t }\n\n\t var me = this;\n\t if (this.node) {\n\t this._cancelUnhighlight();\n\n\t // do the unhighlighting after a small delay, to prevent re-highlighting\n\t // the same node when moving from the drag-icon to the contextmenu-icon\n\t // or vice versa.\n\t this.unhighlightTimer = setTimeout(function () {\n\t me.node.setHighlight(false);\n\t me.node = undefined;\n\t me.unhighlightTimer = undefined;\n\t }, 0);\n\t }\n\t};\n\n\t/**\n\t * Cancel an unhighlight action (if before the timeout of the unhighlight action)\n\t * @private\n\t */\n\tHighlighter.prototype._cancelUnhighlight = function () {\n\t if (this.unhighlightTimer) {\n\t clearTimeout(this.unhighlightTimer);\n\t this.unhighlightTimer = undefined;\n\t }\n\t};\n\n\t/**\n\t * Lock highlighting or unhighlighting nodes.\n\t * methods highlight and unhighlight do not work while locked.\n\t */\n\tHighlighter.prototype.lock = function () {\n\t this.locked = true;\n\t};\n\n\t/**\n\t * Unlock highlighting or unhighlighting nodes\n\t */\n\tHighlighter.prototype.unlock = function () {\n\t this.locked = false;\n\t};\n\n\tmodule.exports = Highlighter;\n\n\n/***/ },\n/* 56 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar util = __webpack_require__(57);\n\n\t/**\n\t * @constructor History\n\t * Store action history, enables undo and redo\n\t * @param {JSONEditor} editor\n\t */\n\tfunction History (editor) {\n\t this.editor = editor;\n\t this.history = [];\n\t this.index = -1;\n\n\t this.clear();\n\n\t // map with all supported actions\n\t this.actions = {\n\t 'editField': {\n\t 'undo': function (params) {\n\t params.node.updateField(params.oldValue);\n\t },\n\t 'redo': function (params) {\n\t params.node.updateField(params.newValue);\n\t }\n\t },\n\t 'editValue': {\n\t 'undo': function (params) {\n\t params.node.updateValue(params.oldValue);\n\t },\n\t 'redo': function (params) {\n\t params.node.updateValue(params.newValue);\n\t }\n\t },\n\t 'changeType': {\n\t 'undo': function (params) {\n\t params.node.changeType(params.oldType);\n\t },\n\t 'redo': function (params) {\n\t params.node.changeType(params.newType);\n\t }\n\t },\n\n\t 'appendNodes': {\n\t 'undo': function (params) {\n\t params.nodes.forEach(function (node) {\n\t params.parent.removeChild(node);\n\t });\n\t },\n\t 'redo': function (params) {\n\t params.nodes.forEach(function (node) {\n\t params.parent.appendChild(node);\n\t });\n\t }\n\t },\n\t 'insertBeforeNodes': {\n\t 'undo': function (params) {\n\t params.nodes.forEach(function (node) {\n\t params.parent.removeChild(node);\n\t });\n\t },\n\t 'redo': function (params) {\n\t params.nodes.forEach(function (node) {\n\t params.parent.insertBefore(node, params.beforeNode);\n\t });\n\t }\n\t },\n\t 'insertAfterNodes': {\n\t 'undo': function (params) {\n\t params.nodes.forEach(function (node) {\n\t params.parent.removeChild(node);\n\t });\n\t },\n\t 'redo': function (params) {\n\t var afterNode = params.afterNode;\n\t params.nodes.forEach(function (node) {\n\t params.parent.insertAfter(params.node, afterNode);\n\t afterNode = node;\n\t });\n\t }\n\t },\n\t 'removeNodes': {\n\t 'undo': function (params) {\n\t var parent = params.parent;\n\t var beforeNode = parent.childs[params.index] || parent.append;\n\t params.nodes.forEach(function (node) {\n\t parent.insertBefore(node, beforeNode);\n\t });\n\t },\n\t 'redo': function (params) {\n\t params.nodes.forEach(function (node) {\n\t params.parent.removeChild(node);\n\t });\n\t }\n\t },\n\t 'duplicateNodes': {\n\t 'undo': function (params) {\n\t params.nodes.forEach(function (node) {\n\t params.parent.removeChild(node);\n\t });\n\t },\n\t 'redo': function (params) {\n\t var afterNode = params.afterNode;\n\t params.nodes.forEach(function (node) {\n\t params.parent.insertAfter(node, afterNode);\n\t afterNode = node;\n\t });\n\t }\n\t },\n\t 'moveNodes': {\n\t 'undo': function (params) {\n\t params.nodes.forEach(function (node) {\n\t params.oldBeforeNode.parent.moveBefore(node, params.oldBeforeNode);\n\t });\n\t },\n\t 'redo': function (params) {\n\t params.nodes.forEach(function (node) {\n\t params.newBeforeNode.parent.moveBefore(node, params.newBeforeNode);\n\t });\n\t }\n\t },\n\n\t 'sort': {\n\t 'undo': function (params) {\n\t var node = params.node;\n\t node.hideChilds();\n\t node.sort = params.oldSort;\n\t node.childs = params.oldChilds;\n\t node.showChilds();\n\t },\n\t 'redo': function (params) {\n\t var node = params.node;\n\t node.hideChilds();\n\t node.sort = params.newSort;\n\t node.childs = params.newChilds;\n\t node.showChilds();\n\t }\n\t }\n\n\t // TODO: restore the original caret position and selection with each undo\n\t // TODO: implement history for actions \"expand\", \"collapse\", \"scroll\", \"setDocument\"\n\t };\n\t}\n\n\t/**\n\t * The method onChange is executed when the History is changed, and can\n\t * be overloaded.\n\t */\n\tHistory.prototype.onChange = function () {};\n\n\t/**\n\t * Add a new action to the history\n\t * @param {String} action The executed action. Available actions: \"editField\",\n\t * \"editValue\", \"changeType\", \"appendNode\",\n\t * \"removeNode\", \"duplicateNode\", \"moveNode\"\n\t * @param {Object} params Object containing parameters describing the change.\n\t * The parameters in params depend on the action (for\n\t * example for \"editValue\" the Node, old value, and new\n\t * value are provided). params contains all information\n\t * needed to undo or redo the action.\n\t */\n\tHistory.prototype.add = function (action, params) {\n\t this.index++;\n\t this.history[this.index] = {\n\t 'action': action,\n\t 'params': params,\n\t 'timestamp': new Date()\n\t };\n\n\t // remove redo actions which are invalid now\n\t if (this.index < this.history.length - 1) {\n\t this.history.splice(this.index + 1, this.history.length - this.index - 1);\n\t }\n\n\t // fire onchange event\n\t this.onChange();\n\t};\n\n\t/**\n\t * Clear history\n\t */\n\tHistory.prototype.clear = function () {\n\t this.history = [];\n\t this.index = -1;\n\n\t // fire onchange event\n\t this.onChange();\n\t};\n\n\t/**\n\t * Check if there is an action available for undo\n\t * @return {Boolean} canUndo\n\t */\n\tHistory.prototype.canUndo = function () {\n\t return (this.index >= 0);\n\t};\n\n\t/**\n\t * Check if there is an action available for redo\n\t * @return {Boolean} canRedo\n\t */\n\tHistory.prototype.canRedo = function () {\n\t return (this.index < this.history.length - 1);\n\t};\n\n\t/**\n\t * Undo the last action\n\t */\n\tHistory.prototype.undo = function () {\n\t if (this.canUndo()) {\n\t var obj = this.history[this.index];\n\t if (obj) {\n\t var action = this.actions[obj.action];\n\t if (action && action.undo) {\n\t action.undo(obj.params);\n\t if (obj.params.oldSelection) {\n\t this.editor.setSelection(obj.params.oldSelection);\n\t }\n\t }\n\t else {\n\t console.error(new Error('unknown action \"' + obj.action + '\"'));\n\t }\n\t }\n\t this.index--;\n\n\t // fire onchange event\n\t this.onChange();\n\t }\n\t};\n\n\t/**\n\t * Redo the last action\n\t */\n\tHistory.prototype.redo = function () {\n\t if (this.canRedo()) {\n\t this.index++;\n\n\t var obj = this.history[this.index];\n\t if (obj) {\n\t var action = this.actions[obj.action];\n\t if (action && action.redo) {\n\t action.redo(obj.params);\n\t if (obj.params.newSelection) {\n\t this.editor.setSelection(obj.params.newSelection);\n\t }\n\t }\n\t else {\n\t console.error(new Error('unknown action \"' + obj.action + '\"'));\n\t }\n\t }\n\n\t // fire onchange event\n\t this.onChange();\n\t }\n\t};\n\n\t/**\n\t * Destroy history\n\t */\n\tHistory.prototype.destroy = function () {\n\t this.editor = null;\n\n\t this.history = [];\n\t this.index = -1;\n\t};\n\n\tmodule.exports = History;\n\n\n/***/ },\n/* 57 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar jsonlint = __webpack_require__(58);\n\n\t/**\n\t * Parse JSON using the parser built-in in the browser.\n\t * On exception, the jsonString is validated and a detailed error is thrown.\n\t * @param {String} jsonString\n\t * @return {JSON} json\n\t */\n\texports.parse = function parse(jsonString) {\n\t try {\n\t return JSON.parse(jsonString);\n\t }\n\t catch (err) {\n\t // try to throw a more detailed error message using validate\n\t exports.validate(jsonString);\n\n\t // rethrow the original error\n\t throw err;\n\t }\n\t};\n\n\t/**\n\t * Sanitize a JSON-like string containing. For example changes JavaScript\n\t * notation into JSON notation.\n\t * This function for example changes a string like \"{a: 2, 'b': {c: 'd'}\"\n\t * into '{\"a\": 2, \"b\": {\"c\": \"d\"}'\n\t * @param {string} jsString\n\t * @returns {string} json\n\t */\n\texports.sanitize = function (jsString) {\n\t // escape all single and double quotes inside strings\n\t var chars = [];\n\t var i = 0;\n\n\t //If JSON starts with a function (characters/digits/\"_-\"), remove this function.\n\t //This is useful for \"stripping\" JSONP objects to become JSON\n\t //For example: /* some comment */ function_12321321 ( [{\"a\":\"b\"}] ); => [{\"a\":\"b\"}]\n\t var match = jsString.match(/^\\s*(\\/\\*(.|[\\r\\n])*?\\*\\/)?\\s*[\\da-zA-Z_$]+\\s*\\(([\\s\\S]*)\\)\\s*;?\\s*$/);\n\t if (match) {\n\t jsString = match[3];\n\t }\n\n\t var controlChars = {\n\t '\\b': '\\\\b',\n\t '\\f': '\\\\f',\n\t '\\n': '\\\\n',\n\t '\\r': '\\\\r',\n\t '\\t': '\\\\t'\n\t };\n\n\t // helper functions to get the current/prev/next character\n\t function curr () { return jsString.charAt(i); }\n\t function next() { return jsString.charAt(i + 1); }\n\t function prev() { return jsString.charAt(i - 1); }\n\n\t // get the last parsed non-whitespace character\n\t function lastNonWhitespace () {\n\t var p = chars.length - 1;\n\n\t while (p >= 0) {\n\t var pp = chars[p];\n\t if (pp !== ' ' && pp !== '\\n' && pp !== '\\r' && pp !== '\\t') { // non whitespace\n\t return pp;\n\t }\n\t p--;\n\t }\n\n\t return '';\n\t }\n\n\t // skip a block comment '/* ... */'\n\t function skipBlockComment () {\n\t i += 2;\n\t while (i < jsString.length && (curr() !== '*' || next() !== '/')) {\n\t i++;\n\t }\n\t i += 2;\n\t }\n\n\t // skip a comment '// ...'\n\t function skipComment () {\n\t i += 2;\n\t while (i < jsString.length && (curr() !== '\\n')) {\n\t i++;\n\t }\n\t }\n\n\t // parse single or double quoted string\n\t function parseString(quote) {\n\t chars.push('\"');\n\t i++;\n\t var c = curr();\n\t while (i < jsString.length && c !== quote) {\n\t if (c === '\"' && prev() !== '\\\\') {\n\t // unescaped double quote, escape it\n\t chars.push('\\\\\"');\n\t }\n\t else if (controlChars.hasOwnProperty(c)) {\n\t // replace unescaped control characters with escaped ones\n\t chars.push(controlChars[c])\n\t }\n\t else if (c === '\\\\') {\n\t // remove the escape character when followed by a single quote ', not needed\n\t i++;\n\t c = curr();\n\t if (c !== '\\'') {\n\t chars.push('\\\\');\n\t }\n\t chars.push(c);\n\t }\n\t else {\n\t // regular character\n\t chars.push(c);\n\t }\n\n\t i++;\n\t c = curr();\n\t }\n\t if (c === quote) {\n\t chars.push('\"');\n\t i++;\n\t }\n\t }\n\n\t // parse an unquoted key\n\t function parseKey() {\n\t var specialValues = ['null', 'true', 'false'];\n\t var key = '';\n\t var c = curr();\n\n\t var regexp = /[a-zA-Z_$\\d]/; // letter, number, underscore, dollar character\n\t while (regexp.test(c)) {\n\t key += c;\n\t i++;\n\t c = curr();\n\t }\n\n\t if (specialValues.indexOf(key) === -1) {\n\t chars.push('\"' + key + '\"');\n\t }\n\t else {\n\t chars.push(key);\n\t }\n\t }\n\n\t while(i < jsString.length) {\n\t var c = curr();\n\n\t if (c === '/' && next() === '*') {\n\t skipBlockComment();\n\t }\n\t else if (c === '/' && next() === '/') {\n\t skipComment();\n\t }\n\t else if (c === '\\'' || c === '\"') {\n\t parseString(c);\n\t }\n\t else if (/[a-zA-Z_$]/.test(c) && ['{', ','].indexOf(lastNonWhitespace()) !== -1) {\n\t // an unquoted object key (like a in '{a:2}')\n\t parseKey();\n\t }\n\t else {\n\t chars.push(c);\n\t i++;\n\t }\n\t }\n\n\t return chars.join('');\n\t};\n\n\t/**\n\t * Escape unicode characters.\n\t * For example input '\\u2661' (length 1) will output '\\\\u2661' (length 5).\n\t * @param {string} text\n\t * @return {string}\n\t */\n\texports.escapeUnicodeChars = function (text) {\n\t // see https://www.wikiwand.com/en/UTF-16\n\t // note: we leave surrogate pairs as two individual chars,\n\t // as JSON doesn't interpret them as a single unicode char.\n\t return text.replace(/[\\u007F-\\uFFFF]/g, function(c) {\n\t return '\\\\u'+('0000' + c.charCodeAt(0).toString(16)).slice(-4);\n\t })\n\t};\n\n\t/**\n\t * Validate a string containing a JSON object\n\t * This method uses JSONLint to validate the String. If JSONLint is not\n\t * available, the built-in JSON parser of the browser is used.\n\t * @param {String} jsonString String with an (invalid) JSON object\n\t * @throws Error\n\t */\n\texports.validate = function validate(jsonString) {\n\t if (typeof(jsonlint) != 'undefined') {\n\t jsonlint.parse(jsonString);\n\t }\n\t else {\n\t JSON.parse(jsonString);\n\t }\n\t};\n\n\t/**\n\t * Extend object a with the properties of object b\n\t * @param {Object} a\n\t * @param {Object} b\n\t * @return {Object} a\n\t */\n\texports.extend = function extend(a, b) {\n\t for (var prop in b) {\n\t if (b.hasOwnProperty(prop)) {\n\t a[prop] = b[prop];\n\t }\n\t }\n\t return a;\n\t};\n\n\t/**\n\t * Remove all properties from object a\n\t * @param {Object} a\n\t * @return {Object} a\n\t */\n\texports.clear = function clear (a) {\n\t for (var prop in a) {\n\t if (a.hasOwnProperty(prop)) {\n\t delete a[prop];\n\t }\n\t }\n\t return a;\n\t};\n\n\t/**\n\t * Get the type of an object\n\t * @param {*} object\n\t * @return {String} type\n\t */\n\texports.type = function type (object) {\n\t if (object === null) {\n\t return 'null';\n\t }\n\t if (object === undefined) {\n\t return 'undefined';\n\t }\n\t if ((object instanceof Number) || (typeof object === 'number')) {\n\t return 'number';\n\t }\n\t if ((object instanceof String) || (typeof object === 'string')) {\n\t return 'string';\n\t }\n\t if ((object instanceof Boolean) || (typeof object === 'boolean')) {\n\t return 'boolean';\n\t }\n\t if ((object instanceof RegExp) || (typeof object === 'regexp')) {\n\t return 'regexp';\n\t }\n\t if (exports.isArray(object)) {\n\t return 'array';\n\t }\n\n\t return 'object';\n\t};\n\n\t/**\n\t * Test whether a text contains a url (matches when a string starts\n\t * with 'http://*' or 'https://*' and has no whitespace characters)\n\t * @param {String} text\n\t */\n\tvar isUrlRegex = /^https?:\\/\\/\\S+$/;\n\texports.isUrl = function isUrl (text) {\n\t return (typeof text == 'string' || text instanceof String) &&\n\t isUrlRegex.test(text);\n\t};\n\n\t/**\n\t * Tes whether given object is an Array\n\t * @param {*} obj\n\t * @returns {boolean} returns true when obj is an array\n\t */\n\texports.isArray = function (obj) {\n\t return Object.prototype.toString.call(obj) === '[object Array]';\n\t};\n\n\t/**\n\t * Retrieve the absolute left value of a DOM element\n\t * @param {Element} elem A dom element, for example a div\n\t * @return {Number} left The absolute left position of this element\n\t * in the browser page.\n\t */\n\texports.getAbsoluteLeft = function getAbsoluteLeft(elem) {\n\t var rect = elem.getBoundingClientRect();\n\t return rect.left + window.pageXOffset || document.scrollLeft || 0;\n\t};\n\n\t/**\n\t * Retrieve the absolute top value of a DOM element\n\t * @param {Element} elem A dom element, for example a div\n\t * @return {Number} top The absolute top position of this element\n\t * in the browser page.\n\t */\n\texports.getAbsoluteTop = function getAbsoluteTop(elem) {\n\t var rect = elem.getBoundingClientRect();\n\t return rect.top + window.pageYOffset || document.scrollTop || 0;\n\t};\n\n\t/**\n\t * add a className to the given elements style\n\t * @param {Element} elem\n\t * @param {String} className\n\t */\n\texports.addClassName = function addClassName(elem, className) {\n\t var classes = elem.className.split(' ');\n\t if (classes.indexOf(className) == -1) {\n\t classes.push(className); // add the class to the array\n\t elem.className = classes.join(' ');\n\t }\n\t};\n\n\t/**\n\t * add a className to the given elements style\n\t * @param {Element} elem\n\t * @param {String} className\n\t */\n\texports.removeClassName = function removeClassName(elem, className) {\n\t var classes = elem.className.split(' ');\n\t var index = classes.indexOf(className);\n\t if (index != -1) {\n\t classes.splice(index, 1); // remove the class from the array\n\t elem.className = classes.join(' ');\n\t }\n\t};\n\n\t/**\n\t * Strip the formatting from the contents of a div\n\t * the formatting from the div itself is not stripped, only from its childs.\n\t * @param {Element} divElement\n\t */\n\texports.stripFormatting = function stripFormatting(divElement) {\n\t var childs = divElement.childNodes;\n\t for (var i = 0, iMax = childs.length; i < iMax; i++) {\n\t var child = childs[i];\n\n\t // remove the style\n\t if (child.style) {\n\t // TODO: test if child.attributes does contain style\n\t child.removeAttribute('style');\n\t }\n\n\t // remove all attributes\n\t var attributes = child.attributes;\n\t if (attributes) {\n\t for (var j = attributes.length - 1; j >= 0; j--) {\n\t var attribute = attributes[j];\n\t if (attribute.specified === true) {\n\t child.removeAttribute(attribute.name);\n\t }\n\t }\n\t }\n\n\t // recursively strip childs\n\t exports.stripFormatting(child);\n\t }\n\t};\n\n\t/**\n\t * Set focus to the end of an editable div\n\t * code from Nico Burns\n\t * http://stackoverflow.com/users/140293/nico-burns\n\t * http://stackoverflow.com/questions/1125292/how-to-move-cursor-to-end-of-contenteditable-entity\n\t * @param {Element} contentEditableElement A content editable div\n\t */\n\texports.setEndOfContentEditable = function setEndOfContentEditable(contentEditableElement) {\n\t var range, selection;\n\t if(document.createRange) {\n\t range = document.createRange();//Create a range (a range is a like the selection but invisible)\n\t range.selectNodeContents(contentEditableElement);//Select the entire contents of the element with the range\n\t range.collapse(false);//collapse the range to the end point. false means collapse to end rather than the start\n\t selection = window.getSelection();//get the selection object (allows you to change selection)\n\t selection.removeAllRanges();//remove any selections already made\n\t selection.addRange(range);//make the range you have just created the visible selection\n\t }\n\t};\n\n\t/**\n\t * Select all text of a content editable div.\n\t * http://stackoverflow.com/a/3806004/1262753\n\t * @param {Element} contentEditableElement A content editable div\n\t */\n\texports.selectContentEditable = function selectContentEditable(contentEditableElement) {\n\t if (!contentEditableElement || contentEditableElement.nodeName != 'DIV') {\n\t return;\n\t }\n\n\t var sel, range;\n\t if (window.getSelection && document.createRange) {\n\t range = document.createRange();\n\t range.selectNodeContents(contentEditableElement);\n\t sel = window.getSelection();\n\t sel.removeAllRanges();\n\t sel.addRange(range);\n\t }\n\t};\n\n\t/**\n\t * Get text selection\n\t * http://stackoverflow.com/questions/4687808/contenteditable-selected-text-save-and-restore\n\t * @return {Range | TextRange | null} range\n\t */\n\texports.getSelection = function getSelection() {\n\t if (window.getSelection) {\n\t var sel = window.getSelection();\n\t if (sel.getRangeAt && sel.rangeCount) {\n\t return sel.getRangeAt(0);\n\t }\n\t }\n\t return null;\n\t};\n\n\t/**\n\t * Set text selection\n\t * http://stackoverflow.com/questions/4687808/contenteditable-selected-text-save-and-restore\n\t * @param {Range | TextRange | null} range\n\t */\n\texports.setSelection = function setSelection(range) {\n\t if (range) {\n\t if (window.getSelection) {\n\t var sel = window.getSelection();\n\t sel.removeAllRanges();\n\t sel.addRange(range);\n\t }\n\t }\n\t};\n\n\t/**\n\t * Get selected text range\n\t * @return {Object} params object containing parameters:\n\t * {Number} startOffset\n\t * {Number} endOffset\n\t * {Element} container HTML element holding the\n\t * selected text element\n\t * Returns null if no text selection is found\n\t */\n\texports.getSelectionOffset = function getSelectionOffset() {\n\t var range = exports.getSelection();\n\n\t if (range && 'startOffset' in range && 'endOffset' in range &&\n\t range.startContainer && (range.startContainer == range.endContainer)) {\n\t return {\n\t startOffset: range.startOffset,\n\t endOffset: range.endOffset,\n\t container: range.startContainer.parentNode\n\t };\n\t }\n\n\t return null;\n\t};\n\n\t/**\n\t * Set selected text range in given element\n\t * @param {Object} params An object containing:\n\t * {Element} container\n\t * {Number} startOffset\n\t * {Number} endOffset\n\t */\n\texports.setSelectionOffset = function setSelectionOffset(params) {\n\t if (document.createRange && window.getSelection) {\n\t var selection = window.getSelection();\n\t if(selection) {\n\t var range = document.createRange();\n\n\t if (!params.container.firstChild) {\n\t params.container.appendChild(document.createTextNode(''));\n\t }\n\n\t // TODO: do not suppose that the first child of the container is a textnode,\n\t // but recursively find the textnodes\n\t range.setStart(params.container.firstChild, params.startOffset);\n\t range.setEnd(params.container.firstChild, params.endOffset);\n\n\t exports.setSelection(range);\n\t }\n\t }\n\t};\n\n\t/**\n\t * Get the inner text of an HTML element (for example a div element)\n\t * @param {Element} element\n\t * @param {Object} [buffer]\n\t * @return {String} innerText\n\t */\n\texports.getInnerText = function getInnerText(element, buffer) {\n\t var first = (buffer == undefined);\n\t if (first) {\n\t buffer = {\n\t 'text': '',\n\t 'flush': function () {\n\t var text = this.text;\n\t this.text = '';\n\t return text;\n\t },\n\t 'set': function (text) {\n\t this.text = text;\n\t }\n\t };\n\t }\n\n\t // text node\n\t if (element.nodeValue) {\n\t return buffer.flush() + element.nodeValue;\n\t }\n\n\t // divs or other HTML elements\n\t if (element.hasChildNodes()) {\n\t var childNodes = element.childNodes;\n\t var innerText = '';\n\n\t for (var i = 0, iMax = childNodes.length; i < iMax; i++) {\n\t var child = childNodes[i];\n\n\t if (child.nodeName == 'DIV' || child.nodeName == 'P') {\n\t var prevChild = childNodes[i - 1];\n\t var prevName = prevChild ? prevChild.nodeName : undefined;\n\t if (prevName && prevName != 'DIV' && prevName != 'P' && prevName != 'BR') {\n\t innerText += '\\n';\n\t buffer.flush();\n\t }\n\t innerText += exports.getInnerText(child, buffer);\n\t buffer.set('\\n');\n\t }\n\t else if (child.nodeName == 'BR') {\n\t innerText += buffer.flush();\n\t buffer.set('\\n');\n\t }\n\t else {\n\t innerText += exports.getInnerText(child, buffer);\n\t }\n\t }\n\n\t return innerText;\n\t }\n\t else {\n\t if (element.nodeName == 'P' && exports.getInternetExplorerVersion() != -1) {\n\t // On Internet Explorer, a <p> with hasChildNodes()==false is\n\t // rendered with a new line. Note that a <p> with\n\t // hasChildNodes()==true is rendered without a new line\n\t // Other browsers always ensure there is a <br> inside the <p>,\n\t // and if not, the <p> does not render a new line\n\t return buffer.flush();\n\t }\n\t }\n\n\t // br or unknown\n\t return '';\n\t};\n\n\t/**\n\t * Returns the version of Internet Explorer or a -1\n\t * (indicating the use of another browser).\n\t * Source: http://msdn.microsoft.com/en-us/library/ms537509(v=vs.85).aspx\n\t * @return {Number} Internet Explorer version, or -1 in case of an other browser\n\t */\n\texports.getInternetExplorerVersion = function getInternetExplorerVersion() {\n\t if (_ieVersion == -1) {\n\t var rv = -1; // Return value assumes failure.\n\t if (navigator.appName == 'Microsoft Internet Explorer')\n\t {\n\t var ua = navigator.userAgent;\n\t var re = new RegExp(\"MSIE ([0-9]{1,}[\\.0-9]{0,})\");\n\t if (re.exec(ua) != null) {\n\t rv = parseFloat( RegExp.$1 );\n\t }\n\t }\n\n\t _ieVersion = rv;\n\t }\n\n\t return _ieVersion;\n\t};\n\n\t/**\n\t * Test whether the current browser is Firefox\n\t * @returns {boolean} isFirefox\n\t */\n\texports.isFirefox = function isFirefox () {\n\t return (navigator.userAgent.indexOf(\"Firefox\") != -1);\n\t};\n\n\t/**\n\t * cached internet explorer version\n\t * @type {Number}\n\t * @private\n\t */\n\tvar _ieVersion = -1;\n\n\t/**\n\t * Add and event listener. Works for all browsers\n\t * @param {Element} element An html element\n\t * @param {string} action The action, for example \"click\",\n\t * without the prefix \"on\"\n\t * @param {function} listener The callback function to be executed\n\t * @param {boolean} [useCapture] false by default\n\t * @return {function} the created event listener\n\t */\n\texports.addEventListener = function addEventListener(element, action, listener, useCapture) {\n\t if (element.addEventListener) {\n\t if (useCapture === undefined)\n\t useCapture = false;\n\n\t if (action === \"mousewheel\" && exports.isFirefox()) {\n\t action = \"DOMMouseScroll\"; // For Firefox\n\t }\n\n\t element.addEventListener(action, listener, useCapture);\n\t return listener;\n\t } else if (element.attachEvent) {\n\t // Old IE browsers\n\t var f = function () {\n\t return listener.call(element, window.event);\n\t };\n\t element.attachEvent(\"on\" + action, f);\n\t return f;\n\t }\n\t};\n\n\t/**\n\t * Remove an event listener from an element\n\t * @param {Element} element An html dom element\n\t * @param {string} action The name of the event, for example \"mousedown\"\n\t * @param {function} listener The listener function\n\t * @param {boolean} [useCapture] false by default\n\t */\n\texports.removeEventListener = function removeEventListener(element, action, listener, useCapture) {\n\t if (element.removeEventListener) {\n\t if (useCapture === undefined)\n\t useCapture = false;\n\n\t if (action === \"mousewheel\" && exports.isFirefox()) {\n\t action = \"DOMMouseScroll\"; // For Firefox\n\t }\n\n\t element.removeEventListener(action, listener, useCapture);\n\t } else if (element.detachEvent) {\n\t // Old IE browsers\n\t element.detachEvent(\"on\" + action, listener);\n\t }\n\t};\n\n\t/**\n\t * Parse a JSON path like '.items[3].name' into an array\n\t * @param {string} jsonPath\n\t * @return {Array}\n\t */\n\texports.parsePath = function parsePath(jsonPath) {\n\t var prop, remainder;\n\n\t if (jsonPath.length === 0) {\n\t return [];\n\t }\n\n\t // find a match like '.prop'\n\t var match = jsonPath.match(/^\\.(\\w+)/);\n\t if (match) {\n\t prop = match[1];\n\t remainder = jsonPath.substr(prop.length + 1);\n\t }\n\t else if (jsonPath[0] === '[') {\n\t // find a match like\n\t var end = jsonPath.indexOf(']');\n\t if (end === -1) {\n\t throw new SyntaxError('Character ] expected in path');\n\t }\n\t if (end === 1) {\n\t throw new SyntaxError('Index expected after [');\n\t }\n\n\t var value = jsonPath.substring(1, end);\n\t if (value[0] === '\\'') {\n\t // ajv produces string prop names with single quotes, so we need\n\t // to reformat them into valid double-quoted JSON strings\n\t value = '\\\"' + value.substring(1, value.length - 1) + '\\\"';\n\t }\n\n\t prop = value === '*' ? value : JSON.parse(value); // parse string and number\n\t remainder = jsonPath.substr(end + 1);\n\t }\n\t else {\n\t throw new SyntaxError('Failed to parse path');\n\t }\n\n\t return [prop].concat(parsePath(remainder))\n\t};\n\n\t/**\n\t * Improve the error message of a JSON schema error\n\t * @param {Object} error\n\t * @return {Object} The error\n\t */\n\texports.improveSchemaError = function (error) {\n\t if (error.keyword === 'enum' && Array.isArray(error.schema)) {\n\t var enums = error.schema;\n\t if (enums) {\n\t enums = enums.map(function (value) {\n\t return JSON.stringify(value);\n\t });\n\n\t if (enums.length > 5) {\n\t var more = ['(' + (enums.length - 5) + ' more...)'];\n\t enums = enums.slice(0, 5);\n\t enums.push(more);\n\t }\n\t error.message = 'should be equal to one of: ' + enums.join(', ');\n\t }\n\t }\n\n\t if (error.keyword === 'additionalProperties') {\n\t error.message = 'should NOT have additional property: ' + error.params.additionalProperty;\n\t }\n\n\t return error;\n\t};\n\n\t/**\n\t * Test whether the child rect fits completely inside the parent rect.\n\t * @param {ClientRect} parent\n\t * @param {ClientRect} child\n\t * @param {number} margin\n\t */\n\texports.insideRect = function (parent, child, margin) {\n\t var _margin = margin !== undefined ? margin : 0;\n\t return child.left - _margin >= parent.left\n\t && child.right + _margin <= parent.right\n\t && child.top - _margin >= parent.top\n\t && child.bottom + _margin <= parent.bottom;\n\t};\n\n\t/**\n\t * Returns a function, that, as long as it continues to be invoked, will not\n\t * be triggered. The function will be called after it stops being called for\n\t * N milliseconds.\n\t *\n\t * Source: https://davidwalsh.name/javascript-debounce-function\n\t *\n\t * @param {function} func\n\t * @param {number} wait Number in milliseconds\n\t * @param {boolean} [immediate=false] If `immediate` is passed, trigger the\n\t * function on the leading edge, instead\n\t * of the trailing.\n\t * @return {function} Return the debounced function\n\t */\n\texports.debounce = function debounce(func, wait, immediate) {\n\t var timeout;\n\t return function() {\n\t var context = this, args = arguments;\n\t var later = function() {\n\t timeout = null;\n\t if (!immediate) func.apply(context, args);\n\t };\n\t var callNow = immediate && !timeout;\n\t clearTimeout(timeout);\n\t timeout = setTimeout(later, wait);\n\t if (callNow) func.apply(context, args);\n\t };\n\t};\n\n\t/**\n\t * Determines the difference between two texts.\n\t * Can only detect one removed or inserted block of characters.\n\t * @param {string} oldText\n\t * @param {string} newText\n\t * @return {{start: number, end: number}} Returns the start and end\n\t * of the changed part in newText.\n\t */\n\texports.textDiff = function textDiff(oldText, newText) {\n\t var len = newText.length;\n\t var start = 0;\n\t var oldEnd = oldText.length;\n\t var newEnd = newText.length;\n\n\t while (newText.charAt(start) === oldText.charAt(start)\n\t && start < len) {\n\t start++;\n\t }\n\n\t while (newText.charAt(newEnd - 1) === oldText.charAt(oldEnd - 1)\n\t && newEnd > start && oldEnd > 0) {\n\t newEnd--;\n\t oldEnd--;\n\t }\n\n\t return {start: start, end: newEnd};\n\t};\n\n\tif (typeof Element !== 'undefined') {\n\t // Polyfill for array remove\n\t (function (arr) {\n\t arr.forEach(function (item) {\n\t if (item.hasOwnProperty('remove')) {\n\t return;\n\t }\n\t Object.defineProperty(item, 'remove', {\n\t configurable: true,\n\t enumerable: true,\n\t writable: true,\n\t value: function remove() {\n\t if (this.parentNode != null)\n\t this.parentNode.removeChild(this);\n\t }\n\t });\n\t });\n\t })([Element.prototype, CharacterData.prototype, DocumentType.prototype]);\n\t}\n\n\n\t// Polyfill for startsWith\n\tif (!String.prototype.startsWith) {\n\t String.prototype.startsWith = function (searchString, position) {\n\t position = position || 0;\n\t return this.substr(position, searchString.length) === searchString;\n\t };\n\t}\n\n/***/ },\n/* 58 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* Jison generated parser */\n\tvar jsonlint = (function(){\n\tvar parser = {trace: function trace() { },\n\tyy: {},\n\tsymbols_: {\"error\":2,\"JSONString\":3,\"STRING\":4,\"JSONNumber\":5,\"NUMBER\":6,\"JSONNullLiteral\":7,\"NULL\":8,\"JSONBooleanLiteral\":9,\"TRUE\":10,\"FALSE\":11,\"JSONText\":12,\"JSONValue\":13,\"EOF\":14,\"JSONObject\":15,\"JSONArray\":16,\"{\":17,\"}\":18,\"JSONMemberList\":19,\"JSONMember\":20,\":\":21,\",\":22,\"[\":23,\"]\":24,\"JSONElementList\":25,\"$accept\":0,\"$end\":1},\n\tterminals_: {2:\"error\",4:\"STRING\",6:\"NUMBER\",8:\"NULL\",10:\"TRUE\",11:\"FALSE\",14:\"EOF\",17:\"{\",18:\"}\",21:\":\",22:\",\",23:\"[\",24:\"]\"},\n\tproductions_: [0,[3,1],[5,1],[7,1],[9,1],[9,1],[12,2],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[15,2],[15,3],[20,3],[19,1],[19,3],[16,2],[16,3],[25,1],[25,3]],\n\tperformAction: function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$) {\n\n\tvar $0 = $$.length - 1;\n\tswitch (yystate) {\n\tcase 1: // replace escaped characters with actual character\n\t this.$ = yytext.replace(/\\\\(\\\\|\")/g, \"$\"+\"1\")\n\t .replace(/\\\\n/g,'\\n')\n\t .replace(/\\\\r/g,'\\r')\n\t .replace(/\\\\t/g,'\\t')\n\t .replace(/\\\\v/g,'\\v')\n\t .replace(/\\\\f/g,'\\f')\n\t .replace(/\\\\b/g,'\\b');\n\t \n\tbreak;\n\tcase 2:this.$ = Number(yytext);\n\tbreak;\n\tcase 3:this.$ = null;\n\tbreak;\n\tcase 4:this.$ = true;\n\tbreak;\n\tcase 5:this.$ = false;\n\tbreak;\n\tcase 6:return this.$ = $$[$0-1];\n\tbreak;\n\tcase 13:this.$ = {};\n\tbreak;\n\tcase 14:this.$ = $$[$0-1];\n\tbreak;\n\tcase 15:this.$ = [$$[$0-2], $$[$0]];\n\tbreak;\n\tcase 16:this.$ = {}; this.$[$$[$0][0]] = $$[$0][1];\n\tbreak;\n\tcase 17:this.$ = $$[$0-2]; $$[$0-2][$$[$0][0]] = $$[$0][1];\n\tbreak;\n\tcase 18:this.$ = [];\n\tbreak;\n\tcase 19:this.$ = $$[$0-1];\n\tbreak;\n\tcase 20:this.$ = [$$[$0]];\n\tbreak;\n\tcase 21:this.$ = $$[$0-2]; $$[$0-2].push($$[$0]);\n\tbreak;\n\t}\n\t},\n\ttable: [{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],12:1,13:2,15:7,16:8,17:[1,14],23:[1,15]},{1:[3]},{14:[1,16]},{14:[2,7],18:[2,7],22:[2,7],24:[2,7]},{14:[2,8],18:[2,8],22:[2,8],24:[2,8]},{14:[2,9],18:[2,9],22:[2,9],24:[2,9]},{14:[2,10],18:[2,10],22:[2,10],24:[2,10]},{14:[2,11],18:[2,11],22:[2,11],24:[2,11]},{14:[2,12],18:[2,12],22:[2,12],24:[2,12]},{14:[2,3],18:[2,3],22:[2,3],24:[2,3]},{14:[2,4],18:[2,4],22:[2,4],24:[2,4]},{14:[2,5],18:[2,5],22:[2,5],24:[2,5]},{14:[2,1],18:[2,1],21:[2,1],22:[2,1],24:[2,1]},{14:[2,2],18:[2,2],22:[2,2],24:[2,2]},{3:20,4:[1,12],18:[1,17],19:18,20:19},{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],13:23,15:7,16:8,17:[1,14],23:[1,15],24:[1,21],25:22},{1:[2,6]},{14:[2,13],18:[2,13],22:[2,13],24:[2,13]},{18:[1,24],22:[1,25]},{18:[2,16],22:[2,16]},{21:[1,26]},{14:[2,18],18:[2,18],22:[2,18],24:[2,18]},{22:[1,28],24:[1,27]},{22:[2,20],24:[2,20]},{14:[2,14],18:[2,14],22:[2,14],24:[2,14]},{3:20,4:[1,12],20:29},{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],13:30,15:7,16:8,17:[1,14],23:[1,15]},{14:[2,19],18:[2,19],22:[2,19],24:[2,19]},{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],13:31,15:7,16:8,17:[1,14],23:[1,15]},{18:[2,17],22:[2,17]},{18:[2,15],22:[2,15]},{22:[2,21],24:[2,21]}],\n\tdefaultActions: {16:[2,6]},\n\tparseError: function parseError(str, hash) {\n\t throw new Error(str);\n\t},\n\tparse: function parse(input) {\n\t var self = this,\n\t stack = [0],\n\t vstack = [null], // semantic value stack\n\t lstack = [], // location stack\n\t table = this.table,\n\t yytext = '',\n\t yylineno = 0,\n\t yyleng = 0,\n\t recovering = 0,\n\t TERROR = 2,\n\t EOF = 1;\n\n\t //this.reductionCount = this.shiftCount = 0;\n\n\t this.lexer.setInput(input);\n\t this.lexer.yy = this.yy;\n\t this.yy.lexer = this.lexer;\n\t if (typeof this.lexer.yylloc == 'undefined')\n\t this.lexer.yylloc = {};\n\t var yyloc = this.lexer.yylloc;\n\t lstack.push(yyloc);\n\n\t if (typeof this.yy.parseError === 'function')\n\t this.parseError = this.yy.parseError;\n\n\t function popStack (n) {\n\t stack.length = stack.length - 2*n;\n\t vstack.length = vstack.length - n;\n\t lstack.length = lstack.length - n;\n\t }\n\n\t function lex() {\n\t var token;\n\t token = self.lexer.lex() || 1; // $end = 1\n\t // if token isn't its numeric value, convert\n\t if (typeof token !== 'number') {\n\t token = self.symbols_[token] || token;\n\t }\n\t return token;\n\t }\n\n\t var symbol, preErrorSymbol, state, action, a, r, yyval={},p,len,newState, expected;\n\t while (true) {\n\t // retreive state number from top of stack\n\t state = stack[stack.length-1];\n\n\t // use default actions if available\n\t if (this.defaultActions[state]) {\n\t action = this.defaultActions[state];\n\t } else {\n\t if (symbol == null)\n\t symbol = lex();\n\t // read action for current state and first input\n\t action = table[state] && table[state][symbol];\n\t }\n\n\t // handle parse error\n\t _handle_error:\n\t if (typeof action === 'undefined' || !action.length || !action[0]) {\n\n\t if (!recovering) {\n\t // Report error\n\t expected = [];\n\t for (p in table[state]) if (this.terminals_[p] && p > 2) {\n\t expected.push(\"'\"+this.terminals_[p]+\"'\");\n\t }\n\t var errStr = '';\n\t if (this.lexer.showPosition) {\n\t errStr = 'Parse error on line '+(yylineno+1)+\":\\n\"+this.lexer.showPosition()+\"\\nExpecting \"+expected.join(', ') + \", got '\" + this.terminals_[symbol]+ \"'\";\n\t } else {\n\t errStr = 'Parse error on line '+(yylineno+1)+\": Unexpected \" +\n\t (symbol == 1 /*EOF*/ ? \"end of input\" :\n\t (\"'\"+(this.terminals_[symbol] || symbol)+\"'\"));\n\t }\n\t this.parseError(errStr,\n\t {text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected});\n\t }\n\n\t // just recovered from another error\n\t if (recovering == 3) {\n\t if (symbol == EOF) {\n\t throw new Error(errStr || 'Parsing halted.');\n\t }\n\n\t // discard current lookahead and grab another\n\t yyleng = this.lexer.yyleng;\n\t yytext = this.lexer.yytext;\n\t yylineno = this.lexer.yylineno;\n\t yyloc = this.lexer.yylloc;\n\t symbol = lex();\n\t }\n\n\t // try to recover from error\n\t while (1) {\n\t // check for error recovery rule in this state\n\t if ((TERROR.toString()) in table[state]) {\n\t break;\n\t }\n\t if (state == 0) {\n\t throw new Error(errStr || 'Parsing halted.');\n\t }\n\t popStack(1);\n\t state = stack[stack.length-1];\n\t }\n\n\t preErrorSymbol = symbol; // save the lookahead token\n\t symbol = TERROR; // insert generic error symbol as new lookahead\n\t state = stack[stack.length-1];\n\t action = table[state] && table[state][TERROR];\n\t recovering = 3; // allow 3 real symbols to be shifted before reporting a new error\n\t }\n\n\t // this shouldn't happen, unless resolve defaults are off\n\t if (action[0] instanceof Array && action.length > 1) {\n\t throw new Error('Parse Error: multiple actions possible at state: '+state+', token: '+symbol);\n\t }\n\n\t switch (action[0]) {\n\n\t case 1: // shift\n\t //this.shiftCount++;\n\n\t stack.push(symbol);\n\t vstack.push(this.lexer.yytext);\n\t lstack.push(this.lexer.yylloc);\n\t stack.push(action[1]); // push state\n\t symbol = null;\n\t if (!preErrorSymbol) { // normal execution/no error\n\t yyleng = this.lexer.yyleng;\n\t yytext = this.lexer.yytext;\n\t yylineno = this.lexer.yylineno;\n\t yyloc = this.lexer.yylloc;\n\t if (recovering > 0)\n\t recovering--;\n\t } else { // error just occurred, resume old lookahead f/ before error\n\t symbol = preErrorSymbol;\n\t preErrorSymbol = null;\n\t }\n\t break;\n\n\t case 2: // reduce\n\t //this.reductionCount++;\n\n\t len = this.productions_[action[1]][1];\n\n\t // perform semantic action\n\t yyval.$ = vstack[vstack.length-len]; // default to $$ = $1\n\t // default location, uses first token for firsts, last for lasts\n\t yyval._$ = {\n\t first_line: lstack[lstack.length-(len||1)].first_line,\n\t last_line: lstack[lstack.length-1].last_line,\n\t first_column: lstack[lstack.length-(len||1)].first_column,\n\t last_column: lstack[lstack.length-1].last_column\n\t };\n\t r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack);\n\n\t if (typeof r !== 'undefined') {\n\t return r;\n\t }\n\n\t // pop off stack\n\t if (len) {\n\t stack = stack.slice(0,-1*len*2);\n\t vstack = vstack.slice(0, -1*len);\n\t lstack = lstack.slice(0, -1*len);\n\t }\n\n\t stack.push(this.productions_[action[1]][0]); // push nonterminal (reduce)\n\t vstack.push(yyval.$);\n\t lstack.push(yyval._$);\n\t // goto new state = table[STATE][NONTERMINAL]\n\t newState = table[stack[stack.length-2]][stack[stack.length-1]];\n\t stack.push(newState);\n\t break;\n\n\t case 3: // accept\n\t return true;\n\t }\n\n\t }\n\n\t return true;\n\t}};\n\t/* Jison generated lexer */\n\tvar lexer = (function(){\n\tvar lexer = ({EOF:1,\n\tparseError:function parseError(str, hash) {\n\t if (this.yy.parseError) {\n\t this.yy.parseError(str, hash);\n\t } else {\n\t throw new Error(str);\n\t }\n\t },\n\tsetInput:function (input) {\n\t this._input = input;\n\t this._more = this._less = this.done = false;\n\t this.yylineno = this.yyleng = 0;\n\t this.yytext = this.matched = this.match = '';\n\t this.conditionStack = ['INITIAL'];\n\t this.yylloc = {first_line:1,first_column:0,last_line:1,last_column:0};\n\t return this;\n\t },\n\tinput:function () {\n\t var ch = this._input[0];\n\t this.yytext+=ch;\n\t this.yyleng++;\n\t this.match+=ch;\n\t this.matched+=ch;\n\t var lines = ch.match(/\\n/);\n\t if (lines) this.yylineno++;\n\t this._input = this._input.slice(1);\n\t return ch;\n\t },\n\tunput:function (ch) {\n\t this._input = ch + this._input;\n\t return this;\n\t },\n\tmore:function () {\n\t this._more = true;\n\t return this;\n\t },\n\tless:function (n) {\n\t this._input = this.match.slice(n) + this._input;\n\t },\n\tpastInput:function () {\n\t var past = this.matched.substr(0, this.matched.length - this.match.length);\n\t return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\\n/g, \"\");\n\t },\n\tupcomingInput:function () {\n\t var next = this.match;\n\t if (next.length < 20) {\n\t next += this._input.substr(0, 20-next.length);\n\t }\n\t return (next.substr(0,20)+(next.length > 20 ? '...':'')).replace(/\\n/g, \"\");\n\t },\n\tshowPosition:function () {\n\t var pre = this.pastInput();\n\t var c = new Array(pre.length + 1).join(\"-\");\n\t return pre + this.upcomingInput() + \"\\n\" + c+\"^\";\n\t },\n\tnext:function () {\n\t if (this.done) {\n\t return this.EOF;\n\t }\n\t if (!this._input) this.done = true;\n\n\t var token,\n\t match,\n\t tempMatch,\n\t index,\n\t col,\n\t lines;\n\t if (!this._more) {\n\t this.yytext = '';\n\t this.match = '';\n\t }\n\t var rules = this._currentRules();\n\t for (var i=0;i < rules.length; i++) {\n\t tempMatch = this._input.match(this.rules[rules[i]]);\n\t if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n\t match = tempMatch;\n\t index = i;\n\t if (!this.options.flex) break;\n\t }\n\t }\n\t if (match) {\n\t lines = match[0].match(/\\n.*/g);\n\t if (lines) this.yylineno += lines.length;\n\t this.yylloc = {first_line: this.yylloc.last_line,\n\t last_line: this.yylineno+1,\n\t first_column: this.yylloc.last_column,\n\t last_column: lines ? lines[lines.length-1].length-1 : this.yylloc.last_column + match[0].length}\n\t this.yytext += match[0];\n\t this.match += match[0];\n\t this.yyleng = this.yytext.length;\n\t this._more = false;\n\t this._input = this._input.slice(match[0].length);\n\t this.matched += match[0];\n\t token = this.performAction.call(this, this.yy, this, rules[index],this.conditionStack[this.conditionStack.length-1]);\n\t if (this.done && this._input) this.done = false;\n\t if (token) return token;\n\t else return;\n\t }\n\t if (this._input === \"\") {\n\t return this.EOF;\n\t } else {\n\t this.parseError('Lexical error on line '+(this.yylineno+1)+'. Unrecognized text.\\n'+this.showPosition(), \n\t {text: \"\", token: null, line: this.yylineno});\n\t }\n\t },\n\tlex:function lex() {\n\t var r = this.next();\n\t if (typeof r !== 'undefined') {\n\t return r;\n\t } else {\n\t return this.lex();\n\t }\n\t },\n\tbegin:function begin(condition) {\n\t this.conditionStack.push(condition);\n\t },\n\tpopState:function popState() {\n\t return this.conditionStack.pop();\n\t },\n\t_currentRules:function _currentRules() {\n\t return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules;\n\t },\n\ttopState:function () {\n\t return this.conditionStack[this.conditionStack.length-2];\n\t },\n\tpushState:function begin(condition) {\n\t this.begin(condition);\n\t }});\n\tlexer.options = {};\n\tlexer.performAction = function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\n\n\tvar YYSTATE=YY_START\n\tswitch($avoiding_name_collisions) {\n\tcase 0:/* skip whitespace */\n\tbreak;\n\tcase 1:return 6\n\tbreak;\n\tcase 2:yy_.yytext = yy_.yytext.substr(1,yy_.yyleng-2); return 4\n\tbreak;\n\tcase 3:return 17\n\tbreak;\n\tcase 4:return 18\n\tbreak;\n\tcase 5:return 23\n\tbreak;\n\tcase 6:return 24\n\tbreak;\n\tcase 7:return 22\n\tbreak;\n\tcase 8:return 21\n\tbreak;\n\tcase 9:return 10\n\tbreak;\n\tcase 10:return 11\n\tbreak;\n\tcase 11:return 8\n\tbreak;\n\tcase 12:return 14\n\tbreak;\n\tcase 13:return 'INVALID'\n\tbreak;\n\t}\n\t};\n\tlexer.rules = [/^(?:\\s+)/,/^(?:(-?([0-9]|[1-9][0-9]+))(\\.[0-9]+)?([eE][-+]?[0-9]+)?\\b)/,/^(?:\"(?:\\\\[\\\\\"bfnrt/]|\\\\u[a-fA-F0-9]{4}|[^\\\\\\0-\\x09\\x0a-\\x1f\"])*\")/,/^(?:\\{)/,/^(?:\\})/,/^(?:\\[)/,/^(?:\\])/,/^(?:,)/,/^(?::)/,/^(?:true\\b)/,/^(?:false\\b)/,/^(?:null\\b)/,/^(?:$)/,/^(?:.)/];\n\tlexer.conditions = {\"INITIAL\":{\"rules\":[0,1,2,3,4,5,6,7,8,9,10,11,12,13],\"inclusive\":true}};\n\n\n\t;\n\treturn lexer;})()\n\tparser.lexer = lexer;\n\treturn parser;\n\t})();\n\tif (true) {\n\t exports.parser = jsonlint;\n\t exports.parse = jsonlint.parse.bind(jsonlint);\n\t}\n\n/***/ },\n/* 59 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\n\t/**\n\t * @constructor SearchBox\n\t * Create a search box in given HTML container\n\t * @param {JSONEditor} editor The JSON Editor to attach to\n\t * @param {Element} container HTML container element of where to\n\t * create the search box\n\t */\n\tfunction SearchBox (editor, container) {\n\t var searchBox = this;\n\n\t this.editor = editor;\n\t this.timeout = undefined;\n\t this.delay = 200; // ms\n\t this.lastText = undefined;\n\n\t this.dom = {};\n\t this.dom.container = container;\n\n\t var table = document.createElement('table');\n\t this.dom.table = table;\n\t table.className = 'jsoneditor-search';\n\t container.appendChild(table);\n\t var tbody = document.createElement('tbody');\n\t this.dom.tbody = tbody;\n\t table.appendChild(tbody);\n\t var tr = document.createElement('tr');\n\t tbody.appendChild(tr);\n\n\t var td = document.createElement('td');\n\t tr.appendChild(td);\n\t var results = document.createElement('div');\n\t this.dom.results = results;\n\t results.className = 'jsoneditor-results';\n\t td.appendChild(results);\n\n\t td = document.createElement('td');\n\t tr.appendChild(td);\n\t var divInput = document.createElement('div');\n\t this.dom.input = divInput;\n\t divInput.className = 'jsoneditor-frame';\n\t divInput.title = 'Search fields and values';\n\t td.appendChild(divInput);\n\n\t // table to contain the text input and search button\n\t var tableInput = document.createElement('table');\n\t divInput.appendChild(tableInput);\n\t var tbodySearch = document.createElement('tbody');\n\t tableInput.appendChild(tbodySearch);\n\t tr = document.createElement('tr');\n\t tbodySearch.appendChild(tr);\n\n\t var refreshSearch = document.createElement('button');\n\t refreshSearch.type = 'button';\n\t refreshSearch.className = 'jsoneditor-refresh';\n\t td = document.createElement('td');\n\t td.appendChild(refreshSearch);\n\t tr.appendChild(td);\n\n\t var search = document.createElement('input');\n\t // search.type = 'button';\n\t this.dom.search = search;\n\t search.oninput = function (event) {\n\t searchBox._onDelayedSearch(event);\n\t };\n\t search.onchange = function (event) { // For IE 9\n\t searchBox._onSearch();\n\t };\n\t search.onkeydown = function (event) {\n\t searchBox._onKeyDown(event);\n\t };\n\t search.onkeyup = function (event) {\n\t searchBox._onKeyUp(event);\n\t };\n\t refreshSearch.onclick = function (event) {\n\t search.select();\n\t };\n\n\t // TODO: ESC in FF restores the last input, is a FF bug, https://bugzilla.mozilla.org/show_bug.cgi?id=598819\n\t td = document.createElement('td');\n\t td.appendChild(search);\n\t tr.appendChild(td);\n\n\t var searchNext = document.createElement('button');\n\t searchNext.type = 'button';\n\t searchNext.title = 'Next result (Enter)';\n\t searchNext.className = 'jsoneditor-next';\n\t searchNext.onclick = function () {\n\t searchBox.next();\n\t };\n\t td = document.createElement('td');\n\t td.appendChild(searchNext);\n\t tr.appendChild(td);\n\n\t var searchPrevious = document.createElement('button');\n\t searchPrevious.type = 'button';\n\t searchPrevious.title = 'Previous result (Shift+Enter)';\n\t searchPrevious.className = 'jsoneditor-previous';\n\t searchPrevious.onclick = function () {\n\t searchBox.previous();\n\t };\n\t td = document.createElement('td');\n\t td.appendChild(searchPrevious);\n\t tr.appendChild(td);\n\t}\n\n\t/**\n\t * Go to the next search result\n\t * @param {boolean} [focus] If true, focus will be set to the next result\n\t * focus is false by default.\n\t */\n\tSearchBox.prototype.next = function(focus) {\n\t if (this.results != undefined) {\n\t var index = (this.resultIndex != undefined) ? this.resultIndex + 1 : 0;\n\t if (index > this.results.length - 1) {\n\t index = 0;\n\t }\n\t this._setActiveResult(index, focus);\n\t }\n\t};\n\n\t/**\n\t * Go to the prevous search result\n\t * @param {boolean} [focus] If true, focus will be set to the next result\n\t * focus is false by default.\n\t */\n\tSearchBox.prototype.previous = function(focus) {\n\t if (this.results != undefined) {\n\t var max = this.results.length - 1;\n\t var index = (this.resultIndex != undefined) ? this.resultIndex - 1 : max;\n\t if (index < 0) {\n\t index = max;\n\t }\n\t this._setActiveResult(index, focus);\n\t }\n\t};\n\n\t/**\n\t * Set new value for the current active result\n\t * @param {Number} index\n\t * @param {boolean} [focus] If true, focus will be set to the next result.\n\t * focus is false by default.\n\t * @private\n\t */\n\tSearchBox.prototype._setActiveResult = function(index, focus) {\n\t // de-activate current active result\n\t if (this.activeResult) {\n\t var prevNode = this.activeResult.node;\n\t var prevElem = this.activeResult.elem;\n\t if (prevElem == 'field') {\n\t delete prevNode.searchFieldActive;\n\t }\n\t else {\n\t delete prevNode.searchValueActive;\n\t }\n\t prevNode.updateDom();\n\t }\n\n\t if (!this.results || !this.results[index]) {\n\t // out of range, set to undefined\n\t this.resultIndex = undefined;\n\t this.activeResult = undefined;\n\t return;\n\t }\n\n\t this.resultIndex = index;\n\n\t // set new node active\n\t var node = this.results[this.resultIndex].node;\n\t var elem = this.results[this.resultIndex].elem;\n\t if (elem == 'field') {\n\t node.searchFieldActive = true;\n\t }\n\t else {\n\t node.searchValueActive = true;\n\t }\n\t this.activeResult = this.results[this.resultIndex];\n\t node.updateDom();\n\n\t // TODO: not so nice that the focus is only set after the animation is finished\n\t node.scrollTo(function () {\n\t if (focus) {\n\t node.focus(elem);\n\t }\n\t });\n\t};\n\n\t/**\n\t * Cancel any running onDelayedSearch.\n\t * @private\n\t */\n\tSearchBox.prototype._clearDelay = function() {\n\t if (this.timeout != undefined) {\n\t clearTimeout(this.timeout);\n\t delete this.timeout;\n\t }\n\t};\n\n\t/**\n\t * Start a timer to execute a search after a short delay.\n\t * Used for reducing the number of searches while typing.\n\t * @param {Event} event\n\t * @private\n\t */\n\tSearchBox.prototype._onDelayedSearch = function (event) {\n\t // execute the search after a short delay (reduces the number of\n\t // search actions while typing in the search text box)\n\t this._clearDelay();\n\t var searchBox = this;\n\t this.timeout = setTimeout(function (event) {\n\t searchBox._onSearch();\n\t },\n\t this.delay);\n\t};\n\n\t/**\n\t * Handle onSearch event\n\t * @param {boolean} [forceSearch] If true, search will be executed again even\n\t * when the search text is not changed.\n\t * Default is false.\n\t * @private\n\t */\n\tSearchBox.prototype._onSearch = function (forceSearch) {\n\t this._clearDelay();\n\n\t var value = this.dom.search.value;\n\t var text = (value.length > 0) ? value : undefined;\n\t if (text != this.lastText || forceSearch) {\n\t // only search again when changed\n\t this.lastText = text;\n\t this.results = this.editor.search(text);\n\t this._setActiveResult(undefined);\n\n\t // display search results\n\t if (text != undefined) {\n\t var resultCount = this.results.length;\n\t switch (resultCount) {\n\t case 0: this.dom.results.innerHTML = 'no results'; break;\n\t case 1: this.dom.results.innerHTML = '1 result'; break;\n\t default: this.dom.results.innerHTML = resultCount + ' results'; break;\n\t }\n\t }\n\t else {\n\t this.dom.results.innerHTML = '';\n\t }\n\t }\n\t};\n\n\t/**\n\t * Handle onKeyDown event in the input box\n\t * @param {Event} event\n\t * @private\n\t */\n\tSearchBox.prototype._onKeyDown = function (event) {\n\t var keynum = event.which;\n\t if (keynum == 27) { // ESC\n\t this.dom.search.value = ''; // clear search\n\t this._onSearch();\n\t event.preventDefault();\n\t event.stopPropagation();\n\t }\n\t else if (keynum == 13) { // Enter\n\t if (event.ctrlKey) {\n\t // force to search again\n\t this._onSearch(true);\n\t }\n\t else if (event.shiftKey) {\n\t // move to the previous search result\n\t this.previous();\n\t }\n\t else {\n\t // move to the next search result\n\t this.next();\n\t }\n\t event.preventDefault();\n\t event.stopPropagation();\n\t }\n\t};\n\n\t/**\n\t * Handle onKeyUp event in the input box\n\t * @param {Event} event\n\t * @private\n\t */\n\tSearchBox.prototype._onKeyUp = function (event) {\n\t var keynum = event.keyCode;\n\t if (keynum != 27 && keynum != 13) { // !show and !Enter\n\t this._onDelayedSearch(event); // For IE 9\n\t }\n\t};\n\n\t/**\n\t * Clear the search results\n\t */\n\tSearchBox.prototype.clear = function () {\n\t this.dom.search.value = '';\n\t this._onSearch();\n\t};\n\n\t/**\n\t * Destroy the search box\n\t */\n\tSearchBox.prototype.destroy = function () {\n\t this.editor = null;\n\t this.dom.container.removeChild(this.dom.table);\n\t this.dom = null;\n\n\t this.results = null;\n\t this.activeResult = null;\n\n\t this._clearDelay();\n\n\t};\n\n\tmodule.exports = SearchBox;\n\n\n/***/ },\n/* 60 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar util = __webpack_require__(57);\n\n\t/**\n\t * Node.getRootNode shim\n\t * @param {Node} node node to check\n\t * @return {Node} node's rootNode or `window` if there is ShadowDOM is not supported.\n\t */\n\tfunction getRootNode(node){\n\t return node.getRootNode && node.getRootNode() || window;\n\t}\n\n\t/**\n\t * A context menu\n\t * @param {Object[]} items Array containing the menu structure\n\t * TODO: describe structure\n\t * @param {Object} [options] Object with options. Available options:\n\t * {function} close Callback called when the\n\t * context menu is being closed.\n\t * @constructor\n\t */\n\tfunction ContextMenu (items, options) {\n\t this.dom = {};\n\n\t var me = this;\n\t var dom = this.dom;\n\t this.anchor = undefined;\n\t this.items = items;\n\t this.eventListeners = {};\n\t this.selection = undefined; // holds the selection before the menu was opened\n\t this.onClose = options ? options.close : undefined;\n\n\t // create root element\n\t var root = document.createElement('div');\n\t root.className = 'jsoneditor-contextmenu-root';\n\t dom.root = root;\n\n\t // create a container element\n\t var menu = document.createElement('div');\n\t menu.className = 'jsoneditor-contextmenu';\n\t dom.menu = menu;\n\t root.appendChild(menu);\n\n\t // create a list to hold the menu items\n\t var list = document.createElement('ul');\n\t list.className = 'jsoneditor-menu';\n\t menu.appendChild(list);\n\t dom.list = list;\n\t dom.items = []; // list with all buttons\n\n\t // create a (non-visible) button to set the focus to the menu\n\t var focusButton = document.createElement('button');\n\t focusButton.type = 'button';\n\t dom.focusButton = focusButton;\n\t var li = document.createElement('li');\n\t li.style.overflow = 'hidden';\n\t li.style.height = '0';\n\t li.appendChild(focusButton);\n\t list.appendChild(li);\n\n\t function createMenuItems (list, domItems, items) {\n\t items.forEach(function (item) {\n\t if (item.type == 'separator') {\n\t // create a separator\n\t var separator = document.createElement('div');\n\t separator.className = 'jsoneditor-separator';\n\t li = document.createElement('li');\n\t li.appendChild(separator);\n\t list.appendChild(li);\n\t }\n\t else {\n\t var domItem = {};\n\n\t // create a menu item\n\t var li = document.createElement('li');\n\t list.appendChild(li);\n\n\t // create a button in the menu item\n\t var button = document.createElement('button');\n\t button.type = 'button';\n\t button.className = item.className;\n\t domItem.button = button;\n\t if (item.title) {\n\t button.title = item.title;\n\t }\n\t if (item.click) {\n\t button.onclick = function (event) {\n\t event.preventDefault();\n\t me.hide();\n\t item.click();\n\t };\n\t }\n\t li.appendChild(button);\n\n\t // create the contents of the button\n\t if (item.submenu) {\n\t // add the icon to the button\n\t var divIcon = document.createElement('div');\n\t divIcon.className = 'jsoneditor-icon';\n\t button.appendChild(divIcon);\n\t var divText = document.createElement('div');\n\t divText.className = 'jsoneditor-text' +\n\t (item.click ? '' : ' jsoneditor-right-margin');\n\t divText.appendChild(document.createTextNode(item.text));\n\t button.appendChild(divText);\n\n\t var buttonSubmenu;\n\t if (item.click) {\n\t // submenu and a button with a click handler\n\t button.className += ' jsoneditor-default';\n\n\t var buttonExpand = document.createElement('button');\n\t buttonExpand.type = 'button';\n\t domItem.buttonExpand = buttonExpand;\n\t buttonExpand.className = 'jsoneditor-expand';\n\t buttonExpand.innerHTML = '<div class=\"jsoneditor-expand\"></div>';\n\t li.appendChild(buttonExpand);\n\t if (item.submenuTitle) {\n\t buttonExpand.title = item.submenuTitle;\n\t }\n\n\t buttonSubmenu = buttonExpand;\n\t }\n\t else {\n\t // submenu and a button without a click handler\n\t var divExpand = document.createElement('div');\n\t divExpand.className = 'jsoneditor-expand';\n\t button.appendChild(divExpand);\n\n\t buttonSubmenu = button;\n\t }\n\n\t // attach a handler to expand/collapse the submenu\n\t buttonSubmenu.onclick = function (event) {\n\t event.preventDefault();\n\t me._onExpandItem(domItem);\n\t buttonSubmenu.focus();\n\t };\n\n\t // create the submenu\n\t var domSubItems = [];\n\t domItem.subItems = domSubItems;\n\t var ul = document.createElement('ul');\n\t domItem.ul = ul;\n\t ul.className = 'jsoneditor-menu';\n\t ul.style.height = '0';\n\t li.appendChild(ul);\n\t createMenuItems(ul, domSubItems, item.submenu);\n\t }\n\t else {\n\t // no submenu, just a button with clickhandler\n\t button.innerHTML = '<div class=\"jsoneditor-icon\"></div>' +\n\t '<div class=\"jsoneditor-text\">' + item.text + '</div>';\n\t }\n\n\t domItems.push(domItem);\n\t }\n\t });\n\t }\n\t createMenuItems(list, this.dom.items, items);\n\n\t // TODO: when the editor is small, show the submenu on the right instead of inline?\n\n\t // calculate the max height of the menu with one submenu expanded\n\t this.maxHeight = 0; // height in pixels\n\t items.forEach(function (item) {\n\t var height = (items.length + (item.submenu ? item.submenu.length : 0)) * 24;\n\t me.maxHeight = Math.max(me.maxHeight, height);\n\t });\n\t}\n\n\t/**\n\t * Get the currently visible buttons\n\t * @return {Array.<HTMLElement>} buttons\n\t * @private\n\t */\n\tContextMenu.prototype._getVisibleButtons = function () {\n\t var buttons = [];\n\t var me = this;\n\t this.dom.items.forEach(function (item) {\n\t buttons.push(item.button);\n\t if (item.buttonExpand) {\n\t buttons.push(item.buttonExpand);\n\t }\n\t if (item.subItems && item == me.expandedItem) {\n\t item.subItems.forEach(function (subItem) {\n\t buttons.push(subItem.button);\n\t if (subItem.buttonExpand) {\n\t buttons.push(subItem.buttonExpand);\n\t }\n\t // TODO: change to fully recursive method\n\t });\n\t }\n\t });\n\n\t return buttons;\n\t};\n\n\t// currently displayed context menu, a singleton. We may only have one visible context menu\n\tContextMenu.visibleMenu = undefined;\n\n\t/**\n\t * Attach the menu to an anchor\n\t * @param {HTMLElement} anchor Anchor where the menu will be attached\n\t * as sibling.\n\t * @param {HTMLElement} [contentWindow] The DIV with with the (scrollable) contents\n\t */\n\tContextMenu.prototype.show = function (anchor, contentWindow) {\n\t this.hide();\n\n\t // determine whether to display the menu below or above the anchor\n\t var showBelow = true;\n\t if (contentWindow) {\n\t var anchorRect = anchor.getBoundingClientRect();\n\t var contentRect = contentWindow.getBoundingClientRect();\n\n\t if (anchorRect.bottom + this.maxHeight < contentRect.bottom) {\n\t // fits below -> show below\n\t }\n\t else if (anchorRect.top - this.maxHeight > contentRect.top) {\n\t // fits above -> show above\n\t showBelow = false;\n\t }\n\t else {\n\t // doesn't fit above nor below -> show below\n\t }\n\t }\n\n\t // position the menu\n\t if (showBelow) {\n\t // display the menu below the anchor\n\t var anchorHeight = anchor.offsetHeight;\n\t this.dom.menu.style.left = '0px';\n\t this.dom.menu.style.top = anchorHeight + 'px';\n\t this.dom.menu.style.bottom = '';\n\t }\n\t else {\n\t // display the menu above the anchor\n\t this.dom.menu.style.left = '0px';\n\t this.dom.menu.style.top = '';\n\t this.dom.menu.style.bottom = '0px';\n\t }\n\n\t // find the root node of the page (window, or a shadow dom root element)\n\t this.rootNode = getRootNode(anchor);\n\n\t // attach the menu to the parent of the anchor\n\t var parent = anchor.parentNode;\n\t parent.insertBefore(this.dom.root, parent.firstChild);\n\n\t // create and attach event listeners\n\t var me = this;\n\t var list = this.dom.list;\n\t this.eventListeners.mousedown = util.addEventListener(this.rootNode, 'mousedown', function (event) {\n\t // hide menu on click outside of the menu\n\t var target = event.target;\n\t if ((target != list) && !me._isChildOf(target, list)) {\n\t me.hide();\n\t event.stopPropagation();\n\t event.preventDefault();\n\t }\n\t });\n\t this.eventListeners.keydown = util.addEventListener(this.rootNode, 'keydown', function (event) {\n\t me._onKeyDown(event);\n\t });\n\n\t // move focus to the first button in the context menu\n\t this.selection = util.getSelection();\n\t this.anchor = anchor;\n\t setTimeout(function () {\n\t me.dom.focusButton.focus();\n\t }, 0);\n\n\t if (ContextMenu.visibleMenu) {\n\t ContextMenu.visibleMenu.hide();\n\t }\n\t ContextMenu.visibleMenu = this;\n\t};\n\n\t/**\n\t * Hide the context menu if visible\n\t */\n\tContextMenu.prototype.hide = function () {\n\t // remove the menu from the DOM\n\t if (this.dom.root.parentNode) {\n\t this.dom.root.parentNode.removeChild(this.dom.root);\n\t if (this.onClose) {\n\t this.onClose();\n\t }\n\t }\n\n\t // remove all event listeners\n\t // all event listeners are supposed to be attached to document.\n\t for (var name in this.eventListeners) {\n\t if (this.eventListeners.hasOwnProperty(name)) {\n\t var fn = this.eventListeners[name];\n\t if (fn) {\n\t util.removeEventListener(this.rootNode, name, fn);\n\t }\n\t delete this.eventListeners[name];\n\t }\n\t }\n\n\t if (ContextMenu.visibleMenu == this) {\n\t ContextMenu.visibleMenu = undefined;\n\t }\n\t};\n\n\t/**\n\t * Expand a submenu\n\t * Any currently expanded submenu will be hided.\n\t * @param {Object} domItem\n\t * @private\n\t */\n\tContextMenu.prototype._onExpandItem = function (domItem) {\n\t var me = this;\n\t var alreadyVisible = (domItem == this.expandedItem);\n\n\t // hide the currently visible submenu\n\t var expandedItem = this.expandedItem;\n\t if (expandedItem) {\n\t //var ul = expandedItem.ul;\n\t expandedItem.ul.style.height = '0';\n\t expandedItem.ul.style.padding = '';\n\t setTimeout(function () {\n\t if (me.expandedItem != expandedItem) {\n\t expandedItem.ul.style.display = '';\n\t util.removeClassName(expandedItem.ul.parentNode, 'jsoneditor-selected');\n\t }\n\t }, 300); // timeout duration must match the css transition duration\n\t this.expandedItem = undefined;\n\t }\n\n\t if (!alreadyVisible) {\n\t var ul = domItem.ul;\n\t ul.style.display = 'block';\n\t var height = ul.clientHeight; // force a reflow in Firefox\n\t setTimeout(function () {\n\t if (me.expandedItem == domItem) {\n\t var childsHeight = 0;\n\t for (var i = 0; i < ul.childNodes.length; i++) {\n\t childsHeight += ul.childNodes[i].clientHeight;\n\t }\n\t ul.style.height = childsHeight + 'px';\n\t ul.style.padding = '5px 10px';\n\t }\n\t }, 0);\n\t util.addClassName(ul.parentNode, 'jsoneditor-selected');\n\t this.expandedItem = domItem;\n\t }\n\t};\n\n\t/**\n\t * Handle onkeydown event\n\t * @param {Event} event\n\t * @private\n\t */\n\tContextMenu.prototype._onKeyDown = function (event) {\n\t var target = event.target;\n\t var keynum = event.which;\n\t var handled = false;\n\t var buttons, targetIndex, prevButton, nextButton;\n\n\t if (keynum == 27) { // ESC\n\t // hide the menu on ESC key\n\n\t // restore previous selection and focus\n\t if (this.selection) {\n\t util.setSelection(this.selection);\n\t }\n\t if (this.anchor) {\n\t this.anchor.focus();\n\t }\n\n\t this.hide();\n\n\t handled = true;\n\t }\n\t else if (keynum == 9) { // Tab\n\t if (!event.shiftKey) { // Tab\n\t buttons = this._getVisibleButtons();\n\t targetIndex = buttons.indexOf(target);\n\t if (targetIndex == buttons.length - 1) {\n\t // move to first button\n\t buttons[0].focus();\n\t handled = true;\n\t }\n\t }\n\t else { // Shift+Tab\n\t buttons = this._getVisibleButtons();\n\t targetIndex = buttons.indexOf(target);\n\t if (targetIndex == 0) {\n\t // move to last button\n\t buttons[buttons.length - 1].focus();\n\t handled = true;\n\t }\n\t }\n\t }\n\t else if (keynum == 37) { // Arrow Left\n\t if (target.className == 'jsoneditor-expand') {\n\t buttons = this._getVisibleButtons();\n\t targetIndex = buttons.indexOf(target);\n\t prevButton = buttons[targetIndex - 1];\n\t if (prevButton) {\n\t prevButton.focus();\n\t }\n\t }\n\t handled = true;\n\t }\n\t else if (keynum == 38) { // Arrow Up\n\t buttons = this._getVisibleButtons();\n\t targetIndex = buttons.indexOf(target);\n\t prevButton = buttons[targetIndex - 1];\n\t if (prevButton && prevButton.className == 'jsoneditor-expand') {\n\t // skip expand button\n\t prevButton = buttons[targetIndex - 2];\n\t }\n\t if (!prevButton) {\n\t // move to last button\n\t prevButton = buttons[buttons.length - 1];\n\t }\n\t if (prevButton) {\n\t prevButton.focus();\n\t }\n\t handled = true;\n\t }\n\t else if (keynum == 39) { // Arrow Right\n\t buttons = this._getVisibleButtons();\n\t targetIndex = buttons.indexOf(target);\n\t nextButton = buttons[targetIndex + 1];\n\t if (nextButton && nextButton.className == 'jsoneditor-expand') {\n\t nextButton.focus();\n\t }\n\t handled = true;\n\t }\n\t else if (keynum == 40) { // Arrow Down\n\t buttons = this._getVisibleButtons();\n\t targetIndex = buttons.indexOf(target);\n\t nextButton = buttons[targetIndex + 1];\n\t if (nextButton && nextButton.className == 'jsoneditor-expand') {\n\t // skip expand button\n\t nextButton = buttons[targetIndex + 2];\n\t }\n\t if (!nextButton) {\n\t // move to first button\n\t nextButton = buttons[0];\n\t }\n\t if (nextButton) {\n\t nextButton.focus();\n\t handled = true;\n\t }\n\t handled = true;\n\t }\n\t // TODO: arrow left and right\n\n\t if (handled) {\n\t event.stopPropagation();\n\t event.preventDefault();\n\t }\n\t};\n\n\t/**\n\t * Test if an element is a child of a parent element.\n\t * @param {Element} child\n\t * @param {Element} parent\n\t * @return {boolean} isChild\n\t */\n\tContextMenu.prototype._isChildOf = function (child, parent) {\n\t var e = child.parentNode;\n\t while (e) {\n\t if (e == parent) {\n\t return true;\n\t }\n\t e = e.parentNode;\n\t }\n\n\t return false;\n\t};\n\n\tmodule.exports = ContextMenu;\n\n\n/***/ },\n/* 61 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar naturalSort = __webpack_require__(62);\n\tvar ContextMenu = __webpack_require__(60);\n\tvar appendNodeFactory = __webpack_require__(63);\n\tvar util = __webpack_require__(57);\n\n\t/**\n\t * @constructor Node\n\t * Create a new Node\n\t * @param {./treemode} editor\n\t * @param {Object} [params] Can contain parameters:\n\t * {string} field\n\t * {boolean} fieldEditable\n\t * {*} value\n\t * {String} type Can have values 'auto', 'array',\n\t * 'object', or 'string'.\n\t */\n\tfunction Node (editor, params) {\n\t /** @type {./treemode} */\n\t this.editor = editor;\n\t this.dom = {};\n\t this.expanded = false;\n\n\t if(params && (params instanceof Object)) {\n\t this.setField(params.field, params.fieldEditable);\n\t this.setValue(params.value, params.type);\n\t }\n\t else {\n\t this.setField('');\n\t this.setValue(null);\n\t }\n\n\t this._debouncedOnChangeValue = util.debounce(this._onChangeValue.bind(this), Node.prototype.DEBOUNCE_INTERVAL);\n\t this._debouncedOnChangeField = util.debounce(this._onChangeField.bind(this), Node.prototype.DEBOUNCE_INTERVAL);\n\t}\n\n\t// debounce interval for keyboard input in milliseconds\n\tNode.prototype.DEBOUNCE_INTERVAL = 150;\n\n\t/**\n\t * Determine whether the field and/or value of this node are editable\n\t * @private\n\t */\n\tNode.prototype._updateEditability = function () {\n\t this.editable = {\n\t field: true,\n\t value: true\n\t };\n\n\t if (this.editor) {\n\t this.editable.field = this.editor.options.mode === 'tree';\n\t this.editable.value = this.editor.options.mode !== 'view';\n\n\t if ((this.editor.options.mode === 'tree' || this.editor.options.mode === 'form') &&\n\t (typeof this.editor.options.onEditable === 'function')) {\n\t var editable = this.editor.options.onEditable({\n\t field: this.field,\n\t value: this.value,\n\t path: this.getPath()\n\t });\n\n\t if (typeof editable === 'boolean') {\n\t this.editable.field = editable;\n\t this.editable.value = editable;\n\t }\n\t else {\n\t if (typeof editable.field === 'boolean') this.editable.field = editable.field;\n\t if (typeof editable.value === 'boolean') this.editable.value = editable.value;\n\t }\n\t }\n\t }\n\t};\n\n\t/**\n\t * Get the path of this node\n\t * @return {String[]} Array containing the path to this node\n\t */\n\tNode.prototype.getPath = function () {\n\t var node = this;\n\t var path = [];\n\t while (node) {\n\t var field = !node.parent\n\t ? undefined // do not add an (optional) field name of the root node\n\t : (node.parent.type != 'array')\n\t ? node.field\n\t : node.index;\n\n\t if (field !== undefined) {\n\t path.unshift(field);\n\t }\n\t node = node.parent;\n\t }\n\t return path;\n\t};\n\n\t/**\n\t * Find a Node from a JSON path like '.items[3].name'\n\t * @param {string} jsonPath\n\t * @return {Node | null} Returns the Node when found, returns null if not found\n\t */\n\tNode.prototype.findNode = function (jsonPath) {\n\t var path = util.parsePath(jsonPath);\n\t var node = this;\n\t while (node && path.length > 0) {\n\t var prop = path.shift();\n\t if (typeof prop === 'number') {\n\t if (node.type !== 'array') {\n\t throw new Error('Cannot get child node at index ' + prop + ': node is no array');\n\t }\n\t node = node.childs[prop];\n\t }\n\t else { // string\n\t if (node.type !== 'object') {\n\t throw new Error('Cannot get child node ' + prop + ': node is no object');\n\t }\n\t node = node.childs.filter(function (child) {\n\t return child.field === prop;\n\t })[0];\n\t }\n\t }\n\n\t return node;\n\t};\n\n\t/**\n\t * Find all parents of this node. The parents are ordered from root node towards\n\t * the original node.\n\t * @return {Array.<Node>}\n\t */\n\tNode.prototype.findParents = function () {\n\t var parents = [];\n\t var parent = this.parent;\n\t while (parent) {\n\t parents.unshift(parent);\n\t parent = parent.parent;\n\t }\n\t return parents;\n\t};\n\n\t/**\n\t *\n\t * @param {{dataPath: string, keyword: string, message: string, params: Object, schemaPath: string} | null} error\n\t * @param {Node} [child] When this is the error of a parent node, pointing\n\t * to an invalid child node, the child node itself\n\t * can be provided. If provided, clicking the error\n\t * icon will set focus to the invalid child node.\n\t */\n\tNode.prototype.setError = function (error, child) {\n\t // ensure the dom exists\n\t this.getDom();\n\n\t this.error = error;\n\t var tdError = this.dom.tdError;\n\t if (error) {\n\t if (!tdError) {\n\t tdError = document.createElement('td');\n\t this.dom.tdError = tdError;\n\t this.dom.tdValue.parentNode.appendChild(tdError);\n\t }\n\n\t var popover = document.createElement('div');\n\t popover.className = 'jsoneditor-popover jsoneditor-right';\n\t popover.appendChild(document.createTextNode(error.message));\n\n\t var button = document.createElement('button');\n\t button.type = 'button';\n\t button.className = 'jsoneditor-schema-error';\n\t button.appendChild(popover);\n\n\t // update the direction of the popover\n\t button.onmouseover = button.onfocus = function updateDirection() {\n\t var directions = ['right', 'above', 'below', 'left'];\n\t for (var i = 0; i < directions.length; i++) {\n\t var direction = directions[i];\n\t popover.className = 'jsoneditor-popover jsoneditor-' + direction;\n\n\t var contentRect = this.editor.content.getBoundingClientRect();\n\t var popoverRect = popover.getBoundingClientRect();\n\t var margin = 20; // account for a scroll bar\n\t var fit = util.insideRect(contentRect, popoverRect, margin);\n\n\t if (fit) {\n\t break;\n\t }\n\t }\n\t }.bind(this);\n\n\t // when clicking the error icon, expand all nodes towards the invalid\n\t // child node, and set focus to the child node\n\t if (child) {\n\t button.onclick = function showInvalidNode() {\n\t child.findParents().forEach(function (parent) {\n\t parent.expand(false);\n\t });\n\n\t child.scrollTo(function () {\n\t child.focus();\n\t });\n\t };\n\t }\n\n\t // apply the error message to the node\n\t while (tdError.firstChild) {\n\t tdError.removeChild(tdError.firstChild);\n\t }\n\t tdError.appendChild(button);\n\t }\n\t else {\n\t if (tdError) {\n\t this.dom.tdError.parentNode.removeChild(this.dom.tdError);\n\t delete this.dom.tdError;\n\t }\n\t }\n\t};\n\n\t/**\n\t * Get the index of this node: the index in the list of childs where this\n\t * node is part of\n\t * @return {number} Returns the index, or -1 if this is the root node\n\t */\n\tNode.prototype.getIndex = function () {\n\t return this.parent ? this.parent.childs.indexOf(this) : -1;\n\t};\n\n\t/**\n\t * Set parent node\n\t * @param {Node} parent\n\t */\n\tNode.prototype.setParent = function(parent) {\n\t this.parent = parent;\n\t};\n\n\t/**\n\t * Set field\n\t * @param {String} field\n\t * @param {boolean} [fieldEditable]\n\t */\n\tNode.prototype.setField = function(field, fieldEditable) {\n\t this.field = field;\n\t this.previousField = field;\n\t this.fieldEditable = (fieldEditable === true);\n\t};\n\n\t/**\n\t * Get field\n\t * @return {String}\n\t */\n\tNode.prototype.getField = function() {\n\t if (this.field === undefined) {\n\t this._getDomField();\n\t }\n\n\t return this.field;\n\t};\n\n\t/**\n\t * Set value. Value is a JSON structure or an element String, Boolean, etc.\n\t * @param {*} value\n\t * @param {String} [type] Specify the type of the value. Can be 'auto',\n\t * 'array', 'object', or 'string'\n\t */\n\tNode.prototype.setValue = function(value, type) {\n\t var childValue, child;\n\n\t // first clear all current childs (if any)\n\t var childs = this.childs;\n\t if (childs) {\n\t while (childs.length) {\n\t this.removeChild(childs[0]);\n\t }\n\t }\n\n\t // TODO: remove the DOM of this Node\n\n\t this.type = this._getType(value);\n\n\t // check if type corresponds with the provided type\n\t if (type && type != this.type) {\n\t if (type == 'string' && this.type == 'auto') {\n\t this.type = type;\n\t }\n\t else {\n\t throw new Error('Type mismatch: ' +\n\t 'cannot cast value of type \"' + this.type +\n\t ' to the specified type \"' + type + '\"');\n\t }\n\t }\n\n\t if (this.type == 'array') {\n\t // array\n\t this.childs = [];\n\t for (var i = 0, iMax = value.length; i < iMax; i++) {\n\t childValue = value[i];\n\t if (childValue !== undefined && !(childValue instanceof Function)) {\n\t // ignore undefined and functions\n\t child = new Node(this.editor, {\n\t value: childValue\n\t });\n\t this.appendChild(child);\n\t }\n\t }\n\t this.value = '';\n\t }\n\t else if (this.type == 'object') {\n\t // object\n\t this.childs = [];\n\t for (var childField in value) {\n\t if (value.hasOwnProperty(childField)) {\n\t childValue = value[childField];\n\t if (childValue !== undefined && !(childValue instanceof Function)) {\n\t // ignore undefined and functions\n\t child = new Node(this.editor, {\n\t field: childField,\n\t value: childValue\n\t });\n\t this.appendChild(child);\n\t }\n\t }\n\t }\n\t this.value = '';\n\n\t // sort object keys\n\t if (this.editor.options.sortObjectKeys === true) {\n\t this.sort('asc');\n\t }\n\t }\n\t else {\n\t // value\n\t this.childs = undefined;\n\t this.value = value;\n\t }\n\n\t this.previousValue = this.value;\n\t};\n\n\t/**\n\t * Get value. Value is a JSON structure\n\t * @return {*} value\n\t */\n\tNode.prototype.getValue = function() {\n\t //var childs, i, iMax;\n\n\t if (this.type == 'array') {\n\t var arr = [];\n\t this.childs.forEach (function (child) {\n\t arr.push(child.getValue());\n\t });\n\t return arr;\n\t }\n\t else if (this.type == 'object') {\n\t var obj = {};\n\t this.childs.forEach (function (child) {\n\t obj[child.getField()] = child.getValue();\n\t });\n\t return obj;\n\t }\n\t else {\n\t if (this.value === undefined) {\n\t this._getDomValue();\n\t }\n\n\t return this.value;\n\t }\n\t};\n\n\t/**\n\t * Get the nesting level of this node\n\t * @return {Number} level\n\t */\n\tNode.prototype.getLevel = function() {\n\t return (this.parent ? this.parent.getLevel() + 1 : 0);\n\t};\n\n\t/**\n\t * Get jsonpath of the current node\n\t * @return {Node[]} Returns an array with nodes\n\t */\n\tNode.prototype.getNodePath = function () {\n\t var path = this.parent ? this.parent.getNodePath() : [];\n\t path.push(this);\n\t return path;\n\t};\n\n\t/**\n\t * Create a clone of a node\n\t * The complete state of a clone is copied, including whether it is expanded or\n\t * not. The DOM elements are not cloned.\n\t * @return {Node} clone\n\t */\n\tNode.prototype.clone = function() {\n\t var clone = new Node(this.editor);\n\t clone.type = this.type;\n\t clone.field = this.field;\n\t clone.fieldInnerText = this.fieldInnerText;\n\t clone.fieldEditable = this.fieldEditable;\n\t clone.value = this.value;\n\t clone.valueInnerText = this.valueInnerText;\n\t clone.expanded = this.expanded;\n\n\t if (this.childs) {\n\t // an object or array\n\t var cloneChilds = [];\n\t this.childs.forEach(function (child) {\n\t var childClone = child.clone();\n\t childClone.setParent(clone);\n\t cloneChilds.push(childClone);\n\t });\n\t clone.childs = cloneChilds;\n\t }\n\t else {\n\t // a value\n\t clone.childs = undefined;\n\t }\n\n\t return clone;\n\t};\n\n\t/**\n\t * Expand this node and optionally its childs.\n\t * @param {boolean} [recurse] Optional recursion, true by default. When\n\t * true, all childs will be expanded recursively\n\t */\n\tNode.prototype.expand = function(recurse) {\n\t if (!this.childs) {\n\t return;\n\t }\n\n\t // set this node expanded\n\t this.expanded = true;\n\t if (this.dom.expand) {\n\t this.dom.expand.className = 'jsoneditor-expanded';\n\t }\n\n\t this.showChilds();\n\n\t if (recurse !== false) {\n\t this.childs.forEach(function (child) {\n\t child.expand(recurse);\n\t });\n\t }\n\t};\n\n\t/**\n\t * Collapse this node and optionally its childs.\n\t * @param {boolean} [recurse] Optional recursion, true by default. When\n\t * true, all childs will be collapsed recursively\n\t */\n\tNode.prototype.collapse = function(recurse) {\n\t if (!this.childs) {\n\t return;\n\t }\n\n\t this.hideChilds();\n\n\t // collapse childs in case of recurse\n\t if (recurse !== false) {\n\t this.childs.forEach(function (child) {\n\t child.collapse(recurse);\n\t });\n\n\t }\n\n\t // make this node collapsed\n\t if (this.dom.expand) {\n\t this.dom.expand.className = 'jsoneditor-collapsed';\n\t }\n\t this.expanded = false;\n\t};\n\n\t/**\n\t * Recursively show all childs when they are expanded\n\t */\n\tNode.prototype.showChilds = function() {\n\t var childs = this.childs;\n\t if (!childs) {\n\t return;\n\t }\n\t if (!this.expanded) {\n\t return;\n\t }\n\n\t var tr = this.dom.tr;\n\t var table = tr ? tr.parentNode : undefined;\n\t if (table) {\n\t // show row with append button\n\t var append = this.getAppend();\n\t var nextTr = tr.nextSibling;\n\t if (nextTr) {\n\t table.insertBefore(append, nextTr);\n\t }\n\t else {\n\t table.appendChild(append);\n\t }\n\n\t // show childs\n\t this.childs.forEach(function (child) {\n\t table.insertBefore(child.getDom(), append);\n\t child.showChilds();\n\t });\n\t }\n\t};\n\n\t/**\n\t * Hide the node with all its childs\n\t */\n\tNode.prototype.hide = function() {\n\t var tr = this.dom.tr;\n\t var table = tr ? tr.parentNode : undefined;\n\t if (table) {\n\t table.removeChild(tr);\n\t }\n\t this.hideChilds();\n\t};\n\n\n\t/**\n\t * Recursively hide all childs\n\t */\n\tNode.prototype.hideChilds = function() {\n\t var childs = this.childs;\n\t if (!childs) {\n\t return;\n\t }\n\t if (!this.expanded) {\n\t return;\n\t }\n\n\t // hide append row\n\t var append = this.getAppend();\n\t if (append.parentNode) {\n\t append.parentNode.removeChild(append);\n\t }\n\n\t // hide childs\n\t this.childs.forEach(function (child) {\n\t child.hide();\n\t });\n\t};\n\n\n\t/**\n\t * Add a new child to the node.\n\t * Only applicable when Node value is of type array or object\n\t * @param {Node} node\n\t */\n\tNode.prototype.appendChild = function(node) {\n\t if (this._hasChilds()) {\n\t // adjust the link to the parent\n\t node.setParent(this);\n\t node.fieldEditable = (this.type == 'object');\n\t if (this.type == 'array') {\n\t node.index = this.childs.length;\n\t }\n\t this.childs.push(node);\n\n\t if (this.expanded) {\n\t // insert into the DOM, before the appendRow\n\t var newTr = node.getDom();\n\t var appendTr = this.getAppend();\n\t var table = appendTr ? appendTr.parentNode : undefined;\n\t if (appendTr && table) {\n\t table.insertBefore(newTr, appendTr);\n\t }\n\n\t node.showChilds();\n\t }\n\n\t this.updateDom({'updateIndexes': true});\n\t node.updateDom({'recurse': true});\n\t }\n\t};\n\n\n\t/**\n\t * Move a node from its current parent to this node\n\t * Only applicable when Node value is of type array or object\n\t * @param {Node} node\n\t * @param {Node} beforeNode\n\t */\n\tNode.prototype.moveBefore = function(node, beforeNode) {\n\t if (this._hasChilds()) {\n\t // create a temporary row, to prevent the scroll position from jumping\n\t // when removing the node\n\t var tbody = (this.dom.tr) ? this.dom.tr.parentNode : undefined;\n\t if (tbody) {\n\t var trTemp = document.createElement('tr');\n\t trTemp.style.height = tbody.clientHeight + 'px';\n\t tbody.appendChild(trTemp);\n\t }\n\n\t if (node.parent) {\n\t node.parent.removeChild(node);\n\t }\n\n\t if (beforeNode instanceof AppendNode) {\n\t this.appendChild(node);\n\t }\n\t else {\n\t this.insertBefore(node, beforeNode);\n\t }\n\n\t if (tbody) {\n\t tbody.removeChild(trTemp);\n\t }\n\t }\n\t};\n\n\t/**\n\t * Move a node from its current parent to this node\n\t * Only applicable when Node value is of type array or object.\n\t * If index is out of range, the node will be appended to the end\n\t * @param {Node} node\n\t * @param {Number} index\n\t */\n\tNode.prototype.moveTo = function (node, index) {\n\t if (node.parent == this) {\n\t // same parent\n\t var currentIndex = this.childs.indexOf(node);\n\t if (currentIndex < index) {\n\t // compensate the index for removal of the node itself\n\t index++;\n\t }\n\t }\n\n\t var beforeNode = this.childs[index] || this.append;\n\t this.moveBefore(node, beforeNode);\n\t};\n\n\t/**\n\t * Insert a new child before a given node\n\t * Only applicable when Node value is of type array or object\n\t * @param {Node} node\n\t * @param {Node} beforeNode\n\t */\n\tNode.prototype.insertBefore = function(node, beforeNode) {\n\t if (this._hasChilds()) {\n\t if (beforeNode == this.append) {\n\t // append to the child nodes\n\n\t // adjust the link to the parent\n\t node.setParent(this);\n\t node.fieldEditable = (this.type == 'object');\n\t this.childs.push(node);\n\t }\n\t else {\n\t // insert before a child node\n\t var index = this.childs.indexOf(beforeNode);\n\t if (index == -1) {\n\t throw new Error('Node not found');\n\t }\n\n\t // adjust the link to the parent\n\t node.setParent(this);\n\t node.fieldEditable = (this.type == 'object');\n\t this.childs.splice(index, 0, node);\n\t }\n\n\t if (this.expanded) {\n\t // insert into the DOM\n\t var newTr = node.getDom();\n\t var nextTr = beforeNode.getDom();\n\t var table = nextTr ? nextTr.parentNode : undefined;\n\t if (nextTr && table) {\n\t table.insertBefore(newTr, nextTr);\n\t }\n\n\t node.showChilds();\n\t }\n\n\t this.updateDom({'updateIndexes': true});\n\t node.updateDom({'recurse': true});\n\t }\n\t};\n\n\t/**\n\t * Insert a new child before a given node\n\t * Only applicable when Node value is of type array or object\n\t * @param {Node} node\n\t * @param {Node} afterNode\n\t */\n\tNode.prototype.insertAfter = function(node, afterNode) {\n\t if (this._hasChilds()) {\n\t var index = this.childs.indexOf(afterNode);\n\t var beforeNode = this.childs[index + 1];\n\t if (beforeNode) {\n\t this.insertBefore(node, beforeNode);\n\t }\n\t else {\n\t this.appendChild(node);\n\t }\n\t }\n\t};\n\n\t/**\n\t * Search in this node\n\t * The node will be expanded when the text is found one of its childs, else\n\t * it will be collapsed. Searches are case insensitive.\n\t * @param {String} text\n\t * @return {Node[]} results Array with nodes containing the search text\n\t */\n\tNode.prototype.search = function(text) {\n\t var results = [];\n\t var index;\n\t var search = text ? text.toLowerCase() : undefined;\n\n\t // delete old search data\n\t delete this.searchField;\n\t delete this.searchValue;\n\n\t // search in field\n\t if (this.field != undefined) {\n\t var field = String(this.field).toLowerCase();\n\t index = field.indexOf(search);\n\t if (index != -1) {\n\t this.searchField = true;\n\t results.push({\n\t 'node': this,\n\t 'elem': 'field'\n\t });\n\t }\n\n\t // update dom\n\t this._updateDomField();\n\t }\n\n\t // search in value\n\t if (this._hasChilds()) {\n\t // array, object\n\n\t // search the nodes childs\n\t if (this.childs) {\n\t var childResults = [];\n\t this.childs.forEach(function (child) {\n\t childResults = childResults.concat(child.search(text));\n\t });\n\t results = results.concat(childResults);\n\t }\n\n\t // update dom\n\t if (search != undefined) {\n\t var recurse = false;\n\t if (childResults.length == 0) {\n\t this.collapse(recurse);\n\t }\n\t else {\n\t this.expand(recurse);\n\t }\n\t }\n\t }\n\t else {\n\t // string, auto\n\t if (this.value != undefined ) {\n\t var value = String(this.value).toLowerCase();\n\t index = value.indexOf(search);\n\t if (index != -1) {\n\t this.searchValue = true;\n\t results.push({\n\t 'node': this,\n\t 'elem': 'value'\n\t });\n\t }\n\t }\n\n\t // update dom\n\t this._updateDomValue();\n\t }\n\n\t return results;\n\t};\n\n\t/**\n\t * Move the scroll position such that this node is in the visible area.\n\t * The node will not get the focus\n\t * @param {function(boolean)} [callback]\n\t */\n\tNode.prototype.scrollTo = function(callback) {\n\t if (!this.dom.tr || !this.dom.tr.parentNode) {\n\t // if the node is not visible, expand its parents\n\t var parent = this.parent;\n\t var recurse = false;\n\t while (parent) {\n\t parent.expand(recurse);\n\t parent = parent.parent;\n\t }\n\t }\n\n\t if (this.dom.tr && this.dom.tr.parentNode) {\n\t this.editor.scrollTo(this.dom.tr.offsetTop, callback);\n\t }\n\t};\n\n\n\t// stores the element name currently having the focus\n\tNode.focusElement = undefined;\n\n\t/**\n\t * Set focus to this node\n\t * @param {String} [elementName] The field name of the element to get the\n\t * focus available values: 'drag', 'menu',\n\t * 'expand', 'field', 'value' (default)\n\t */\n\tNode.prototype.focus = function(elementName) {\n\t Node.focusElement = elementName;\n\n\t if (this.dom.tr && this.dom.tr.parentNode) {\n\t var dom = this.dom;\n\n\t switch (elementName) {\n\t case 'drag':\n\t if (dom.drag) {\n\t dom.drag.focus();\n\t }\n\t else {\n\t dom.menu.focus();\n\t }\n\t break;\n\n\t case 'menu':\n\t dom.menu.focus();\n\t break;\n\n\t case 'expand':\n\t if (this._hasChilds()) {\n\t dom.expand.focus();\n\t }\n\t else if (dom.field && this.fieldEditable) {\n\t dom.field.focus();\n\t util.selectContentEditable(dom.field);\n\t }\n\t else if (dom.value && !this._hasChilds()) {\n\t dom.value.focus();\n\t util.selectContentEditable(dom.value);\n\t }\n\t else {\n\t dom.menu.focus();\n\t }\n\t break;\n\n\t case 'field':\n\t if (dom.field && this.fieldEditable) {\n\t dom.field.focus();\n\t util.selectContentEditable(dom.field);\n\t }\n\t else if (dom.value && !this._hasChilds()) {\n\t dom.value.focus();\n\t util.selectContentEditable(dom.value);\n\t }\n\t else if (this._hasChilds()) {\n\t dom.expand.focus();\n\t }\n\t else {\n\t dom.menu.focus();\n\t }\n\t break;\n\n\t case 'value':\n\t default:\n\t if (dom.select) {\n\t // enum select box\n\t dom.select.focus();\n\t }\n\t else if (dom.value && !this._hasChilds()) {\n\t dom.value.focus();\n\t util.selectContentEditable(dom.value);\n\t }\n\t else if (dom.field && this.fieldEditable) {\n\t dom.field.focus();\n\t util.selectContentEditable(dom.field);\n\t }\n\t else if (this._hasChilds()) {\n\t dom.expand.focus();\n\t }\n\t else {\n\t dom.menu.focus();\n\t }\n\t break;\n\t }\n\t }\n\t};\n\n\t/**\n\t * Select all text in an editable div after a delay of 0 ms\n\t * @param {Element} editableDiv\n\t */\n\tNode.select = function(editableDiv) {\n\t setTimeout(function () {\n\t util.selectContentEditable(editableDiv);\n\t }, 0);\n\t};\n\n\t/**\n\t * Update the values from the DOM field and value of this node\n\t */\n\tNode.prototype.blur = function() {\n\t // retrieve the actual field and value from the DOM.\n\t this._getDomValue(false);\n\t this._getDomField(false);\n\t};\n\n\t/**\n\t * Check if given node is a child. The method will check recursively to find\n\t * this node.\n\t * @param {Node} node\n\t * @return {boolean} containsNode\n\t */\n\tNode.prototype.containsNode = function(node) {\n\t if (this == node) {\n\t return true;\n\t }\n\n\t var childs = this.childs;\n\t if (childs) {\n\t // TODO: use the js5 Array.some() here?\n\t for (var i = 0, iMax = childs.length; i < iMax; i++) {\n\t if (childs[i].containsNode(node)) {\n\t return true;\n\t }\n\t }\n\t }\n\n\t return false;\n\t};\n\n\t/**\n\t * Move given node into this node\n\t * @param {Node} node the childNode to be moved\n\t * @param {Node} beforeNode node will be inserted before given\n\t * node. If no beforeNode is given,\n\t * the node is appended at the end\n\t * @private\n\t */\n\tNode.prototype._move = function(node, beforeNode) {\n\t if (node == beforeNode) {\n\t // nothing to do...\n\t return;\n\t }\n\n\t // check if this node is not a child of the node to be moved here\n\t if (node.containsNode(this)) {\n\t throw new Error('Cannot move a field into a child of itself');\n\t }\n\n\t // remove the original node\n\t if (node.parent) {\n\t node.parent.removeChild(node);\n\t }\n\n\t // create a clone of the node\n\t var clone = node.clone();\n\t node.clearDom();\n\n\t // insert or append the node\n\t if (beforeNode) {\n\t this.insertBefore(clone, beforeNode);\n\t }\n\t else {\n\t this.appendChild(clone);\n\t }\n\n\t /* TODO: adjust the field name (to prevent equal field names)\n\t if (this.type == 'object') {\n\t }\n\t */\n\t};\n\n\t/**\n\t * Remove a child from the node.\n\t * Only applicable when Node value is of type array or object\n\t * @param {Node} node The child node to be removed;\n\t * @return {Node | undefined} node The removed node on success,\n\t * else undefined\n\t */\n\tNode.prototype.removeChild = function(node) {\n\t if (this.childs) {\n\t var index = this.childs.indexOf(node);\n\n\t if (index != -1) {\n\t node.hide();\n\n\t // delete old search results\n\t delete node.searchField;\n\t delete node.searchValue;\n\n\t var removedNode = this.childs.splice(index, 1)[0];\n\t removedNode.parent = null;\n\n\t this.updateDom({'updateIndexes': true});\n\n\t return removedNode;\n\t }\n\t }\n\n\t return undefined;\n\t};\n\n\t/**\n\t * Remove a child node node from this node\n\t * This method is equal to Node.removeChild, except that _remove fire an\n\t * onChange event.\n\t * @param {Node} node\n\t * @private\n\t */\n\tNode.prototype._remove = function (node) {\n\t this.removeChild(node);\n\t};\n\n\t/**\n\t * Change the type of the value of this Node\n\t * @param {String} newType\n\t */\n\tNode.prototype.changeType = function (newType) {\n\t var oldType = this.type;\n\n\t if (oldType == newType) {\n\t // type is not changed\n\t return;\n\t }\n\n\t if ((newType == 'string' || newType == 'auto') &&\n\t (oldType == 'string' || oldType == 'auto')) {\n\t // this is an easy change\n\t this.type = newType;\n\t }\n\t else {\n\t // change from array to object, or from string/auto to object/array\n\t var table = this.dom.tr ? this.dom.tr.parentNode : undefined;\n\t var lastTr;\n\t if (this.expanded) {\n\t lastTr = this.getAppend();\n\t }\n\t else {\n\t lastTr = this.getDom();\n\t }\n\t var nextTr = (lastTr && lastTr.parentNode) ? lastTr.nextSibling : undefined;\n\n\t // hide current field and all its childs\n\t this.hide();\n\t this.clearDom();\n\n\t // adjust the field and the value\n\t this.type = newType;\n\n\t // adjust childs\n\t if (newType == 'object') {\n\t if (!this.childs) {\n\t this.childs = [];\n\t }\n\n\t this.childs.forEach(function (child, index) {\n\t child.clearDom();\n\t delete child.index;\n\t child.fieldEditable = true;\n\t if (child.field == undefined) {\n\t child.field = '';\n\t }\n\t });\n\n\t if (oldType == 'string' || oldType == 'auto') {\n\t this.expanded = true;\n\t }\n\t }\n\t else if (newType == 'array') {\n\t if (!this.childs) {\n\t this.childs = [];\n\t }\n\n\t this.childs.forEach(function (child, index) {\n\t child.clearDom();\n\t child.fieldEditable = false;\n\t child.index = index;\n\t });\n\n\t if (oldType == 'string' || oldType == 'auto') {\n\t this.expanded = true;\n\t }\n\t }\n\t else {\n\t this.expanded = false;\n\t }\n\n\t // create new DOM\n\t if (table) {\n\t if (nextTr) {\n\t table.insertBefore(this.getDom(), nextTr);\n\t }\n\t else {\n\t table.appendChild(this.getDom());\n\t }\n\t }\n\t this.showChilds();\n\t }\n\n\t if (newType == 'auto' || newType == 'string') {\n\t // cast value to the correct type\n\t if (newType == 'string') {\n\t this.value = String(this.value);\n\t }\n\t else {\n\t this.value = this._stringCast(String(this.value));\n\t }\n\n\t this.focus();\n\t }\n\n\t this.updateDom({'updateIndexes': true});\n\t};\n\n\t/**\n\t * Retrieve value from DOM\n\t * @param {boolean} [silent] If true (default), no errors will be thrown in\n\t * case of invalid data\n\t * @private\n\t */\n\tNode.prototype._getDomValue = function(silent) {\n\t if (this.dom.value && this.type != 'array' && this.type != 'object') {\n\t this.valueInnerText = util.getInnerText(this.dom.value);\n\t }\n\n\t if (this.valueInnerText != undefined) {\n\t try {\n\t // retrieve the value\n\t var value;\n\t if (this.type == 'string') {\n\t value = this._unescapeHTML(this.valueInnerText);\n\t }\n\t else {\n\t var str = this._unescapeHTML(this.valueInnerText);\n\t value = this._stringCast(str);\n\t }\n\t if (value !== this.value) {\n\t this.value = value;\n\t this._debouncedOnChangeValue();\n\t }\n\t }\n\t catch (err) {\n\t this.value = undefined;\n\t // TODO: sent an action with the new, invalid value?\n\t if (silent !== true) {\n\t throw err;\n\t }\n\t }\n\t }\n\t};\n\n\t/**\n\t * Handle a changed value\n\t * @private\n\t */\n\tNode.prototype._onChangeValue = function () {\n\t // get current selection, then override the range such that we can select\n\t // the added/removed text on undo/redo\n\t var oldSelection = this.editor.getSelection();\n\t if (oldSelection.range) {\n\t var undoDiff = util.textDiff(String(this.value), String(this.previousValue));\n\t oldSelection.range.startOffset = undoDiff.start;\n\t oldSelection.range.endOffset = undoDiff.end;\n\t }\n\t var newSelection = this.editor.getSelection();\n\t if (newSelection.range) {\n\t var redoDiff = util.textDiff(String(this.previousValue), String(this.value));\n\t newSelection.range.startOffset = redoDiff.start;\n\t newSelection.range.endOffset = redoDiff.end;\n\t }\n\n\t this.editor._onAction('editValue', {\n\t node: this,\n\t oldValue: this.previousValue,\n\t newValue: this.value,\n\t oldSelection: oldSelection,\n\t newSelection: newSelection\n\t });\n\n\t this.previousValue = this.value;\n\t};\n\n\t/**\n\t * Handle a changed field\n\t * @private\n\t */\n\tNode.prototype._onChangeField = function () {\n\t // get current selection, then override the range such that we can select\n\t // the added/removed text on undo/redo\n\t var oldSelection = this.editor.getSelection();\n\t if (oldSelection.range) {\n\t var undoDiff = util.textDiff(this.field, this.previousField);\n\t oldSelection.range.startOffset = undoDiff.start;\n\t oldSelection.range.endOffset = undoDiff.end;\n\t }\n\t var newSelection = this.editor.getSelection();\n\t if (newSelection.range) {\n\t var redoDiff = util.textDiff(this.previousField, this.field);\n\t newSelection.range.startOffset = redoDiff.start;\n\t newSelection.range.endOffset = redoDiff.end;\n\t }\n\n\t this.editor._onAction('editField', {\n\t node: this,\n\t oldValue: this.previousField,\n\t newValue: this.field,\n\t oldSelection: oldSelection,\n\t newSelection: newSelection\n\t });\n\n\t this.previousField = this.field;\n\t};\n\n\t/**\n\t * Update dom value:\n\t * - the text color of the value, depending on the type of the value\n\t * - the height of the field, depending on the width\n\t * - background color in case it is empty\n\t * @private\n\t */\n\tNode.prototype._updateDomValue = function () {\n\t var domValue = this.dom.value;\n\t if (domValue) {\n\t var classNames = ['jsoneditor-value'];\n\n\n\t // set text color depending on value type\n\t var value = this.value;\n\t var type = (this.type == 'auto') ? util.type(value) : this.type;\n\t var isUrl = type == 'string' && util.isUrl(value);\n\t classNames.push('jsoneditor-' + type);\n\t if (isUrl) {\n\t classNames.push('jsoneditor-url');\n\t }\n\n\t // visual styling when empty\n\t var isEmpty = (String(this.value) == '' && this.type != 'array' && this.type != 'object');\n\t if (isEmpty) {\n\t classNames.push('jsoneditor-empty');\n\t }\n\n\t // highlight when there is a search result\n\t if (this.searchValueActive) {\n\t classNames.push('jsoneditor-highlight-active');\n\t }\n\t if (this.searchValue) {\n\t classNames.push('jsoneditor-highlight');\n\t }\n\n\t domValue.className = classNames.join(' ');\n\n\t // update title\n\t if (type == 'array' || type == 'object') {\n\t var count = this.childs ? this.childs.length : 0;\n\t domValue.title = this.type + ' containing ' + count + ' items';\n\t }\n\t else if (isUrl && this.editable.value) {\n\t domValue.title = 'Ctrl+Click or Ctrl+Enter to open url in new window';\n\t }\n\t else {\n\t domValue.title = '';\n\t }\n\n\t // show checkbox when the value is a boolean\n\t if (type === 'boolean' && this.editable.value) {\n\t if (!this.dom.checkbox) {\n\t this.dom.checkbox = document.createElement('input');\n\t this.dom.checkbox.type = 'checkbox';\n\t this.dom.tdCheckbox = document.createElement('td');\n\t this.dom.tdCheckbox.className = 'jsoneditor-tree';\n\t this.dom.tdCheckbox.appendChild(this.dom.checkbox);\n\n\t this.dom.tdValue.parentNode.insertBefore(this.dom.tdCheckbox, this.dom.tdValue);\n\t }\n\n\t this.dom.checkbox.checked = this.value;\n\t }\n\t else {\n\t // cleanup checkbox when displayed\n\t if (this.dom.tdCheckbox) {\n\t this.dom.tdCheckbox.parentNode.removeChild(this.dom.tdCheckbox);\n\t delete this.dom.tdCheckbox;\n\t delete this.dom.checkbox;\n\t }\n\t }\n\n\t if (this.enum && this.editable.value) {\n\t // create select box when this node has an enum object\n\t if (!this.dom.select) {\n\t this.dom.select = document.createElement('select');\n\t this.id = this.field + \"_\" + new Date().getUTCMilliseconds();\n\t this.dom.select.id = this.id;\n\t this.dom.select.name = this.dom.select.id;\n\n\t //Create the default empty option\n\t this.dom.select.option = document.createElement('option');\n\t this.dom.select.option.value = '';\n\t this.dom.select.option.innerHTML = '--';\n\t this.dom.select.appendChild(this.dom.select.option);\n\n\t //Iterate all enum values and add them as options\n\t for(var i = 0; i < this.enum.length; i++) {\n\t this.dom.select.option = document.createElement('option');\n\t this.dom.select.option.value = this.enum[i];\n\t this.dom.select.option.innerHTML = this.enum[i];\n\t if(this.dom.select.option.value == this.value){\n\t this.dom.select.option.selected = true;\n\t }\n\t this.dom.select.appendChild(this.dom.select.option);\n\t }\n\n\t this.dom.tdSelect = document.createElement('td');\n\t this.dom.tdSelect.className = 'jsoneditor-tree';\n\t this.dom.tdSelect.appendChild(this.dom.select);\n\t this.dom.tdValue.parentNode.insertBefore(this.dom.tdSelect, this.dom.tdValue);\n\t }\n\n\t // If the enum is inside a composite type display\n\t // both the simple input and the dropdown field\n\t if(this.schema && (\n\t !this.schema.hasOwnProperty(\"oneOf\") &&\n\t !this.schema.hasOwnProperty(\"anyOf\") &&\n\t !this.schema.hasOwnProperty(\"allOf\"))\n\t ) {\n\t this.valueFieldHTML = this.dom.tdValue.innerHTML;\n\t this.dom.tdValue.style.visibility = 'hidden';\n\t this.dom.tdValue.innerHTML = '';\n\t } else {\n\t delete this.valueFieldHTML;\n\t }\n\t }\n\t else {\n\t // cleanup select box when displayed\n\t if (this.dom.tdSelect) {\n\t this.dom.tdSelect.parentNode.removeChild(this.dom.tdSelect);\n\t delete this.dom.tdSelect;\n\t delete this.dom.select;\n\t this.dom.tdValue.innerHTML = this.valueFieldHTML;\n\t this.dom.tdValue.style.visibility = '';\n\t delete this.valueFieldHTML;\n\t }\n\t }\n\n\t // strip formatting from the contents of the editable div\n\t util.stripFormatting(domValue);\n\t }\n\t};\n\n\t/**\n\t * Update dom field:\n\t * - the text color of the field, depending on the text\n\t * - the height of the field, depending on the width\n\t * - background color in case it is empty\n\t * @private\n\t */\n\tNode.prototype._updateDomField = function () {\n\t var domField = this.dom.field;\n\t if (domField) {\n\t // make backgound color lightgray when empty\n\t var isEmpty = (String(this.field) == '' && this.parent.type != 'array');\n\t if (isEmpty) {\n\t util.addClassName(domField, 'jsoneditor-empty');\n\t }\n\t else {\n\t util.removeClassName(domField, 'jsoneditor-empty');\n\t }\n\n\t // highlight when there is a search result\n\t if (this.searchFieldActive) {\n\t util.addClassName(domField, 'jsoneditor-highlight-active');\n\t }\n\t else {\n\t util.removeClassName(domField, 'jsoneditor-highlight-active');\n\t }\n\t if (this.searchField) {\n\t util.addClassName(domField, 'jsoneditor-highlight');\n\t }\n\t else {\n\t util.removeClassName(domField, 'jsoneditor-highlight');\n\t }\n\n\t // strip formatting from the contents of the editable div\n\t util.stripFormatting(domField);\n\t }\n\t};\n\n\t/**\n\t * Retrieve field from DOM\n\t * @param {boolean} [silent] If true (default), no errors will be thrown in\n\t * case of invalid data\n\t * @private\n\t */\n\tNode.prototype._getDomField = function(silent) {\n\t if (this.dom.field && this.fieldEditable) {\n\t this.fieldInnerText = util.getInnerText(this.dom.field);\n\t }\n\n\t if (this.fieldInnerText != undefined) {\n\t try {\n\t var field = this._unescapeHTML(this.fieldInnerText);\n\n\t if (field !== this.field) {\n\t this.field = field;\n\t this._debouncedOnChangeField();\n\t }\n\t }\n\t catch (err) {\n\t this.field = undefined;\n\t // TODO: sent an action here, with the new, invalid value?\n\t if (silent !== true) {\n\t throw err;\n\t }\n\t }\n\t }\n\t};\n\n\t/**\n\t * Validate this node and all it's childs\n\t * @return {Array.<{node: Node, error: {message: string}}>} Returns a list with duplicates\n\t */\n\tNode.prototype.validate = function () {\n\t var errors = [];\n\n\t // find duplicate keys\n\t if (this.type === 'object') {\n\t var keys = {};\n\t var duplicateKeys = [];\n\t for (var i = 0; i < this.childs.length; i++) {\n\t var child = this.childs[i];\n\t if (keys.hasOwnProperty(child.field)) {\n\t duplicateKeys.push(child.field);\n\t }\n\t keys[child.field] = true;\n\t }\n\n\t if (duplicateKeys.length > 0) {\n\t errors = this.childs\n\t .filter(function (node) {\n\t return duplicateKeys.indexOf(node.field) !== -1;\n\t })\n\t .map(function (node) {\n\t return {\n\t node: node,\n\t error: {\n\t message: 'duplicate key \"' + node.field + '\"'\n\t }\n\t }\n\t });\n\t }\n\t }\n\n\t // recurse over the childs\n\t if (this.childs) {\n\t for (var i = 0; i < this.childs.length; i++) {\n\t var e = this.childs[i].validate();\n\t if (e.length > 0) {\n\t errors = errors.concat(e);\n\t }\n\t }\n\t }\n\n\t return errors;\n\t};\n\n\t/**\n\t * Clear the dom of the node\n\t */\n\tNode.prototype.clearDom = function() {\n\t // TODO: hide the node first?\n\t //this.hide();\n\t // TODO: recursively clear dom?\n\n\t this.dom = {};\n\t};\n\n\t/**\n\t * Get the HTML DOM TR element of the node.\n\t * The dom will be generated when not yet created\n\t * @return {Element} tr HTML DOM TR Element\n\t */\n\tNode.prototype.getDom = function() {\n\t var dom = this.dom;\n\t if (dom.tr) {\n\t return dom.tr;\n\t }\n\n\t this._updateEditability();\n\n\t // create row\n\t dom.tr = document.createElement('tr');\n\t dom.tr.node = this;\n\n\t if (this.editor.options.mode === 'tree') { // note: we take here the global setting\n\t var tdDrag = document.createElement('td');\n\t if (this.editable.field) {\n\t // create draggable area\n\t if (this.parent) {\n\t var domDrag = document.createElement('button');\n\t domDrag.type = 'button';\n\t dom.drag = domDrag;\n\t domDrag.className = 'jsoneditor-dragarea';\n\t domDrag.title = 'Drag to move this field (Alt+Shift+Arrows)';\n\t tdDrag.appendChild(domDrag);\n\t }\n\t }\n\t dom.tr.appendChild(tdDrag);\n\n\t // create context menu\n\t var tdMenu = document.createElement('td');\n\t var menu = document.createElement('button');\n\t menu.type = 'button';\n\t dom.menu = menu;\n\t menu.className = 'jsoneditor-contextmenu';\n\t menu.title = 'Click to open the actions menu (Ctrl+M)';\n\t tdMenu.appendChild(dom.menu);\n\t dom.tr.appendChild(tdMenu);\n\t }\n\n\t // create tree and field\n\t var tdField = document.createElement('td');\n\t dom.tr.appendChild(tdField);\n\t dom.tree = this._createDomTree();\n\t tdField.appendChild(dom.tree);\n\n\t this.updateDom({'updateIndexes': true});\n\n\t return dom.tr;\n\t};\n\n\t/**\n\t * DragStart event, fired on mousedown on the dragarea at the left side of a Node\n\t * @param {Node[] | Node} nodes\n\t * @param {Event} event\n\t */\n\tNode.onDragStart = function (nodes, event) {\n\t if (!Array.isArray(nodes)) {\n\t return Node.onDragStart([nodes], event);\n\t }\n\t if (nodes.length === 0) {\n\t return;\n\t }\n\n\t var firstNode = nodes[0];\n\t var lastNode = nodes[nodes.length - 1];\n\t var draggedNode = Node.getNodeFromTarget(event.target);\n\t var beforeNode = lastNode._nextSibling();\n\t var editor = firstNode.editor;\n\n\t // in case of multiple selected nodes, offsetY prevents the selection from\n\t // jumping when you start dragging one of the lower down nodes in the selection\n\t var offsetY = util.getAbsoluteTop(draggedNode.dom.tr) - util.getAbsoluteTop(firstNode.dom.tr);\n\n\t if (!editor.mousemove) {\n\t editor.mousemove = util.addEventListener(window, 'mousemove', function (event) {\n\t Node.onDrag(nodes, event);\n\t });\n\t }\n\n\t if (!editor.mouseup) {\n\t editor.mouseup = util.addEventListener(window, 'mouseup',function (event ) {\n\t Node.onDragEnd(nodes, event);\n\t });\n\t }\n\n\t editor.highlighter.lock();\n\t editor.drag = {\n\t oldCursor: document.body.style.cursor,\n\t oldSelection: editor.getSelection(),\n\t oldBeforeNode: beforeNode,\n\t mouseX: event.pageX,\n\t offsetY: offsetY,\n\t level: firstNode.getLevel()\n\t };\n\t document.body.style.cursor = 'move';\n\n\t event.preventDefault();\n\t};\n\n\t/**\n\t * Drag event, fired when moving the mouse while dragging a Node\n\t * @param {Node[] | Node} nodes\n\t * @param {Event} event\n\t */\n\tNode.onDrag = function (nodes, event) {\n\t if (!Array.isArray(nodes)) {\n\t return Node.onDrag([nodes], event);\n\t }\n\t if (nodes.length === 0) {\n\t return;\n\t }\n\n\t // TODO: this method has grown too large. Split it in a number of methods\n\t var editor = nodes[0].editor;\n\t var mouseY = event.pageY - editor.drag.offsetY;\n\t var mouseX = event.pageX;\n\t var trThis, trPrev, trNext, trFirst, trLast, trRoot;\n\t var nodePrev, nodeNext;\n\t var topThis, topPrev, topFirst, heightThis, bottomNext, heightNext;\n\t var moved = false;\n\n\t // TODO: add an ESC option, which resets to the original position\n\n\t // move up/down\n\t var firstNode = nodes[0];\n\t trThis = firstNode.dom.tr;\n\t topThis = util.getAbsoluteTop(trThis);\n\t heightThis = trThis.offsetHeight;\n\t if (mouseY < topThis) {\n\t // move up\n\t trPrev = trThis;\n\t do {\n\t trPrev = trPrev.previousSibling;\n\t nodePrev = Node.getNodeFromTarget(trPrev);\n\t topPrev = trPrev ? util.getAbsoluteTop(trPrev) : 0;\n\t }\n\t while (trPrev && mouseY < topPrev);\n\n\t if (nodePrev && !nodePrev.parent) {\n\t nodePrev = undefined;\n\t }\n\n\t if (!nodePrev) {\n\t // move to the first node\n\t trRoot = trThis.parentNode.firstChild;\n\t trPrev = trRoot ? trRoot.nextSibling : undefined;\n\t nodePrev = Node.getNodeFromTarget(trPrev);\n\t if (nodePrev == firstNode) {\n\t nodePrev = undefined;\n\t }\n\t }\n\n\t if (nodePrev) {\n\t // check if mouseY is really inside the found node\n\t trPrev = nodePrev.dom.tr;\n\t topPrev = trPrev ? util.getAbsoluteTop(trPrev) : 0;\n\t if (mouseY > topPrev + heightThis) {\n\t nodePrev = undefined;\n\t }\n\t }\n\n\t if (nodePrev) {\n\t nodes.forEach(function (node) {\n\t nodePrev.parent.moveBefore(node, nodePrev);\n\t });\n\t moved = true;\n\t }\n\t }\n\t else {\n\t // move down\n\t var lastNode = nodes[nodes.length - 1];\n\t trLast = (lastNode.expanded && lastNode.append) ? lastNode.append.getDom() : lastNode.dom.tr;\n\t trFirst = trLast ? trLast.nextSibling : undefined;\n\t if (trFirst) {\n\t topFirst = util.getAbsoluteTop(trFirst);\n\t trNext = trFirst;\n\t do {\n\t nodeNext = Node.getNodeFromTarget(trNext);\n\t if (trNext) {\n\t bottomNext = trNext.nextSibling ?\n\t util.getAbsoluteTop(trNext.nextSibling) : 0;\n\t heightNext = trNext ? (bottomNext - topFirst) : 0;\n\n\t if (nodeNext.parent.childs.length == nodes.length &&\n\t nodeNext.parent.childs[nodes.length - 1] == lastNode) {\n\t // We are about to remove the last child of this parent,\n\t // which will make the parents appendNode visible.\n\t topThis += 27;\n\t // TODO: dangerous to suppose the height of the appendNode a constant of 27 px.\n\t }\n\t }\n\n\t trNext = trNext.nextSibling;\n\t }\n\t while (trNext && mouseY > topThis + heightNext);\n\n\t if (nodeNext && nodeNext.parent) {\n\t // calculate the desired level\n\t var diffX = (mouseX - editor.drag.mouseX);\n\t var diffLevel = Math.round(diffX / 24 / 2);\n\t var level = editor.drag.level + diffLevel; // desired level\n\t var levelNext = nodeNext.getLevel(); // level to be\n\n\t // find the best fitting level (move upwards over the append nodes)\n\t trPrev = nodeNext.dom.tr.previousSibling;\n\t while (levelNext < level && trPrev) {\n\t nodePrev = Node.getNodeFromTarget(trPrev);\n\n\t var isDraggedNode = nodes.some(function (node) {\n\t return node === nodePrev || nodePrev._isChildOf(node);\n\t });\n\n\t if (isDraggedNode) {\n\t // neglect the dragged nodes themselves and their childs\n\t }\n\t else if (nodePrev instanceof AppendNode) {\n\t var childs = nodePrev.parent.childs;\n\t if (childs.length != nodes.length || childs[nodes.length - 1] != lastNode) {\n\t // non-visible append node of a list of childs\n\t // consisting of not only this node (else the\n\t // append node will change into a visible \"empty\"\n\t // text when removing this node).\n\t nodeNext = Node.getNodeFromTarget(trPrev);\n\t levelNext = nodeNext.getLevel();\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t else {\n\t break;\n\t }\n\n\t trPrev = trPrev.previousSibling;\n\t }\n\n\t // move the node when its position is changed\n\t if (trLast.nextSibling != nodeNext.dom.tr) {\n\t nodes.forEach(function (node) {\n\t nodeNext.parent.moveBefore(node, nodeNext);\n\t });\n\t moved = true;\n\t }\n\t }\n\t }\n\t }\n\n\t if (moved) {\n\t // update the dragging parameters when moved\n\t editor.drag.mouseX = mouseX;\n\t editor.drag.level = firstNode.getLevel();\n\t }\n\n\t // auto scroll when hovering around the top of the editor\n\t editor.startAutoScroll(mouseY);\n\n\t event.preventDefault();\n\t};\n\n\t/**\n\t * Drag event, fired on mouseup after having dragged a node\n\t * @param {Node[] | Node} nodes\n\t * @param {Event} event\n\t */\n\tNode.onDragEnd = function (nodes, event) {\n\t if (!Array.isArray(nodes)) {\n\t return Node.onDrag([nodes], event);\n\t }\n\t if (nodes.length === 0) {\n\t return;\n\t }\n\n\t var firstNode = nodes[0];\n\t var editor = firstNode.editor;\n\t var parent = firstNode.parent;\n\t var firstIndex = parent.childs.indexOf(firstNode);\n\t var beforeNode = parent.childs[firstIndex + nodes.length] || parent.append;\n\n\t // set focus to the context menu button of the first node\n\t if (nodes[0]) {\n\t nodes[0].dom.menu.focus();\n\t }\n\n\t var params = {\n\t nodes: nodes,\n\t oldSelection: editor.drag.oldSelection,\n\t newSelection: editor.getSelection(),\n\t oldBeforeNode: editor.drag.oldBeforeNode,\n\t newBeforeNode: beforeNode\n\t };\n\n\t if (params.oldBeforeNode != params.newBeforeNode) {\n\t // only register this action if the node is actually moved to another place\n\t editor._onAction('moveNodes', params);\n\t }\n\n\t document.body.style.cursor = editor.drag.oldCursor;\n\t editor.highlighter.unlock();\n\t nodes.forEach(function (node) {\n\t if (event.target !== node.dom.drag && event.target !== node.dom.menu) {\n\t editor.highlighter.unhighlight();\n\t }\n\t });\n\t delete editor.drag;\n\n\t if (editor.mousemove) {\n\t util.removeEventListener(window, 'mousemove', editor.mousemove);\n\t delete editor.mousemove;\n\t }\n\t if (editor.mouseup) {\n\t util.removeEventListener(window, 'mouseup', editor.mouseup);\n\t delete editor.mouseup;\n\t }\n\n\t // Stop any running auto scroll\n\t editor.stopAutoScroll();\n\n\t event.preventDefault();\n\t};\n\n\t/**\n\t * Test if this node is a child of an other node\n\t * @param {Node} node\n\t * @return {boolean} isChild\n\t * @private\n\t */\n\tNode.prototype._isChildOf = function (node) {\n\t var n = this.parent;\n\t while (n) {\n\t if (n == node) {\n\t return true;\n\t }\n\t n = n.parent;\n\t }\n\n\t return false;\n\t};\n\n\t/**\n\t * Create an editable field\n\t * @return {Element} domField\n\t * @private\n\t */\n\tNode.prototype._createDomField = function () {\n\t return document.createElement('div');\n\t};\n\n\t/**\n\t * Set highlighting for this node and all its childs.\n\t * Only applied to the currently visible (expanded childs)\n\t * @param {boolean} highlight\n\t */\n\tNode.prototype.setHighlight = function (highlight) {\n\t if (this.dom.tr) {\n\t if (highlight) {\n\t util.addClassName(this.dom.tr, 'jsoneditor-highlight');\n\t }\n\t else {\n\t util.removeClassName(this.dom.tr, 'jsoneditor-highlight');\n\t }\n\n\t if (this.append) {\n\t this.append.setHighlight(highlight);\n\t }\n\n\t if (this.childs) {\n\t this.childs.forEach(function (child) {\n\t child.setHighlight(highlight);\n\t });\n\t }\n\t }\n\t};\n\n\t/**\n\t * Select or deselect a node\n\t * @param {boolean} selected\n\t * @param {boolean} [isFirst]\n\t */\n\tNode.prototype.setSelected = function (selected, isFirst) {\n\t this.selected = selected;\n\n\t if (this.dom.tr) {\n\t if (selected) {\n\t util.addClassName(this.dom.tr, 'jsoneditor-selected');\n\t }\n\t else {\n\t util.removeClassName(this.dom.tr, 'jsoneditor-selected');\n\t }\n\n\t if (isFirst) {\n\t util.addClassName(this.dom.tr, 'jsoneditor-first');\n\t }\n\t else {\n\t util.removeClassName(this.dom.tr, 'jsoneditor-first');\n\t }\n\n\t if (this.append) {\n\t this.append.setSelected(selected);\n\t }\n\n\t if (this.childs) {\n\t this.childs.forEach(function (child) {\n\t child.setSelected(selected);\n\t });\n\t }\n\t }\n\t};\n\n\t/**\n\t * Update the value of the node. Only primitive types are allowed, no Object\n\t * or Array is allowed.\n\t * @param {String | Number | Boolean | null} value\n\t */\n\tNode.prototype.updateValue = function (value) {\n\t this.value = value;\n\t this.updateDom();\n\t};\n\n\t/**\n\t * Update the field of the node.\n\t * @param {String} field\n\t */\n\tNode.prototype.updateField = function (field) {\n\t this.field = field;\n\t this.updateDom();\n\t};\n\n\t/**\n\t * Update the HTML DOM, optionally recursing through the childs\n\t * @param {Object} [options] Available parameters:\n\t * {boolean} [recurse] If true, the\n\t * DOM of the childs will be updated recursively.\n\t * False by default.\n\t * {boolean} [updateIndexes] If true, the childs\n\t * indexes of the node will be updated too. False by\n\t * default.\n\t */\n\tNode.prototype.updateDom = function (options) {\n\t // update level indentation\n\t var domTree = this.dom.tree;\n\t if (domTree) {\n\t domTree.style.marginLeft = this.getLevel() * 24 + 'px';\n\t }\n\n\t // apply field to DOM\n\t var domField = this.dom.field;\n\t if (domField) {\n\t if (this.fieldEditable) {\n\t // parent is an object\n\t domField.contentEditable = this.editable.field;\n\t domField.spellcheck = false;\n\t domField.className = 'jsoneditor-field';\n\t }\n\t else {\n\t // parent is an array this is the root node\n\t domField.className = 'jsoneditor-readonly';\n\t }\n\n\t var fieldText;\n\t if (this.index != undefined) {\n\t fieldText = this.index;\n\t }\n\t else if (this.field != undefined) {\n\t fieldText = this.field;\n\t }\n\t else if (this._hasChilds()) {\n\t fieldText = this.type;\n\t }\n\t else {\n\t fieldText = '';\n\t }\n\t domField.innerHTML = this._escapeHTML(fieldText);\n\n\t this._updateSchema();\n\t }\n\n\t // apply value to DOM\n\t var domValue = this.dom.value;\n\t if (domValue) {\n\t var count = this.childs ? this.childs.length : 0;\n\t if (this.type == 'array') {\n\t domValue.innerHTML = '[' + count + ']';\n\t util.addClassName(this.dom.tr, 'jsoneditor-expandable');\n\t }\n\t else if (this.type == 'object') {\n\t domValue.innerHTML = '{' + count + '}';\n\t util.addClassName(this.dom.tr, 'jsoneditor-expandable');\n\t }\n\t else {\n\t domValue.innerHTML = this._escapeHTML(this.value);\n\t util.removeClassName(this.dom.tr, 'jsoneditor-expandable');\n\t }\n\t }\n\n\t // update field and value\n\t this._updateDomField();\n\t this._updateDomValue();\n\n\t // update childs indexes\n\t if (options && options.updateIndexes === true) {\n\t // updateIndexes is true or undefined\n\t this._updateDomIndexes();\n\t }\n\n\t if (options && options.recurse === true) {\n\t // recurse is true or undefined. update childs recursively\n\t if (this.childs) {\n\t this.childs.forEach(function (child) {\n\t child.updateDom(options);\n\t });\n\t }\n\t }\n\n\t // update row with append button\n\t if (this.append) {\n\t this.append.updateDom();\n\t }\n\t};\n\n\t/**\n\t * Locate the JSON schema of the node and check for any enum type\n\t * @private\n\t */\n\tNode.prototype._updateSchema = function () {\n\t //Locating the schema of the node and checking for any enum type\n\t if(this.editor && this.editor.options) {\n\t // find the part of the json schema matching this nodes path\n\t this.schema = this.editor.options.schema \n\t ? Node._findSchema(this.editor.options.schema, this.getPath())\n\t : null;\n\t if (this.schema) {\n\t this.enum = Node._findEnum(this.schema);\n\t }\n\t else {\n\t delete this.enum;\n\t }\n\t }\n\t};\n\n\t/**\n\t * find an enum definition in a JSON schema, as property `enum` or inside\n\t * one of the schemas composites (`oneOf`, `anyOf`, `allOf`)\n\t * @param {Object} schema\n\t * @return {Array | null} Returns the enum when found, null otherwise.\n\t * @private\n\t */\n\tNode._findEnum = function (schema) {\n\t if (schema.enum) {\n\t return schema.enum;\n\t }\n\n\t var composite = schema.oneOf || schema.anyOf || schema.allOf;\n\t if (composite) {\n\t var match = composite.filter(function (entry) {return entry.enum});\n\t if (match.length > 0) {\n\t return match[0].enum;\n\t }\n\t }\n\n\t return null\n\t};\n\n\t/**\n\t * Return the part of a JSON schema matching given path.\n\t * @param {Object} schema\n\t * @param {Array.<string | number>} path\n\t * @return {Object | null}\n\t * @private\n\t */\n\tNode._findSchema = function (schema, path) {\n\t var childSchema = schema;\n\t var foundSchema = childSchema;\n\n\t var allSchemas = schema.oneOf || schema.anyOf || schema.allOf;\n\t if (!allSchemas) {\n\t allSchemas = [schema];\n\t }\n\n\t for (var j = 0; j < allSchemas.length; j++) {\n\t childSchema = allSchemas[j];\n\n\t for (var i = 0; i < path.length && childSchema; i++) {\n\t var key = path[i];\n\n\t if (typeof key === 'string' && childSchema.properties) {\n\t childSchema = childSchema.properties[key] || null;\n\t if (childSchema) {\n\t foundSchema = Node._findSchema(childSchema, path.slice(i, path.length));\n\t }\n\t }\n\t else if (typeof key === 'number' && childSchema.items) {\n\t childSchema = childSchema.items;\n\t if (childSchema) {\n\t foundSchema = Node._findSchema(childSchema, path.slice(i, path.length));\n\t }\n\t }\n\t }\n\n\t }\n\t return foundSchema\n\t};\n\n\t/**\n\t * Update the DOM of the childs of a node: update indexes and undefined field\n\t * names.\n\t * Only applicable when structure is an array or object\n\t * @private\n\t */\n\tNode.prototype._updateDomIndexes = function () {\n\t var domValue = this.dom.value;\n\t var childs = this.childs;\n\t if (domValue && childs) {\n\t if (this.type == 'array') {\n\t childs.forEach(function (child, index) {\n\t child.index = index;\n\t var childField = child.dom.field;\n\t if (childField) {\n\t childField.innerHTML = index;\n\t }\n\t });\n\t }\n\t else if (this.type == 'object') {\n\t childs.forEach(function (child) {\n\t if (child.index != undefined) {\n\t delete child.index;\n\n\t if (child.field == undefined) {\n\t child.field = '';\n\t }\n\t }\n\t });\n\t }\n\t }\n\t};\n\n\t/**\n\t * Create an editable value\n\t * @private\n\t */\n\tNode.prototype._createDomValue = function () {\n\t var domValue;\n\n\t if (this.type == 'array') {\n\t domValue = document.createElement('div');\n\t domValue.innerHTML = '[...]';\n\t }\n\t else if (this.type == 'object') {\n\t domValue = document.createElement('div');\n\t domValue.innerHTML = '{...}';\n\t }\n\t else {\n\t if (!this.editable.value && util.isUrl(this.value)) {\n\t // create a link in case of read-only editor and value containing an url\n\t domValue = document.createElement('a');\n\t domValue.href = this.value;\n\t domValue.target = '_blank';\n\t domValue.innerHTML = this._escapeHTML(this.value);\n\t }\n\t else {\n\t // create an editable or read-only div\n\t domValue = document.createElement('div');\n\t domValue.contentEditable = this.editable.value;\n\t domValue.spellcheck = false;\n\t domValue.innerHTML = this._escapeHTML(this.value);\n\t }\n\t }\n\n\t return domValue;\n\t};\n\n\t/**\n\t * Create an expand/collapse button\n\t * @return {Element} expand\n\t * @private\n\t */\n\tNode.prototype._createDomExpandButton = function () {\n\t // create expand button\n\t var expand = document.createElement('button');\n\t expand.type = 'button';\n\t if (this._hasChilds()) {\n\t expand.className = this.expanded ? 'jsoneditor-expanded' : 'jsoneditor-collapsed';\n\t expand.title =\n\t 'Click to expand/collapse this field (Ctrl+E). \\n' +\n\t 'Ctrl+Click to expand/collapse including all childs.';\n\t }\n\t else {\n\t expand.className = 'jsoneditor-invisible';\n\t expand.title = '';\n\t }\n\n\t return expand;\n\t};\n\n\n\t/**\n\t * Create a DOM tree element, containing the expand/collapse button\n\t * @return {Element} domTree\n\t * @private\n\t */\n\tNode.prototype._createDomTree = function () {\n\t var dom = this.dom;\n\t var domTree = document.createElement('table');\n\t var tbody = document.createElement('tbody');\n\t domTree.style.borderCollapse = 'collapse'; // TODO: put in css\n\t domTree.className = 'jsoneditor-values';\n\t domTree.appendChild(tbody);\n\t var tr = document.createElement('tr');\n\t tbody.appendChild(tr);\n\n\t // create expand button\n\t var tdExpand = document.createElement('td');\n\t tdExpand.className = 'jsoneditor-tree';\n\t tr.appendChild(tdExpand);\n\t dom.expand = this._createDomExpandButton();\n\t tdExpand.appendChild(dom.expand);\n\t dom.tdExpand = tdExpand;\n\n\t // create the field\n\t var tdField = document.createElement('td');\n\t tdField.className = 'jsoneditor-tree';\n\t tr.appendChild(tdField);\n\t dom.field = this._createDomField();\n\t tdField.appendChild(dom.field);\n\t dom.tdField = tdField;\n\n\t // create a separator\n\t var tdSeparator = document.createElement('td');\n\t tdSeparator.className = 'jsoneditor-tree';\n\t tr.appendChild(tdSeparator);\n\t if (this.type != 'object' && this.type != 'array') {\n\t tdSeparator.appendChild(document.createTextNode(':'));\n\t tdSeparator.className = 'jsoneditor-separator';\n\t }\n\t dom.tdSeparator = tdSeparator;\n\n\t // create the value\n\t var tdValue = document.createElement('td');\n\t tdValue.className = 'jsoneditor-tree';\n\t tr.appendChild(tdValue);\n\t dom.value = this._createDomValue();\n\t tdValue.appendChild(dom.value);\n\t dom.tdValue = tdValue;\n\n\t return domTree;\n\t};\n\n\t/**\n\t * Handle an event. The event is caught centrally by the editor\n\t * @param {Event} event\n\t */\n\tNode.prototype.onEvent = function (event) {\n\t var type = event.type,\n\t target = event.target || event.srcElement,\n\t dom = this.dom,\n\t node = this,\n\t expandable = this._hasChilds();\n\n\t // check if mouse is on menu or on dragarea.\n\t // If so, highlight current row and its childs\n\t if (target == dom.drag || target == dom.menu) {\n\t if (type == 'mouseover') {\n\t this.editor.highlighter.highlight(this);\n\t }\n\t else if (type == 'mouseout') {\n\t this.editor.highlighter.unhighlight();\n\t }\n\t }\n\n\t // context menu events\n\t if (type == 'click' && target == dom.menu) {\n\t var highlighter = node.editor.highlighter;\n\t highlighter.highlight(node);\n\t highlighter.lock();\n\t util.addClassName(dom.menu, 'jsoneditor-selected');\n\t this.showContextMenu(dom.menu, function () {\n\t util.removeClassName(dom.menu, 'jsoneditor-selected');\n\t highlighter.unlock();\n\t highlighter.unhighlight();\n\t });\n\t }\n\n\t // expand events\n\t if (type == 'click') {\n\t if (target == dom.expand ||\n\t ((node.editor.options.mode === 'view' || node.editor.options.mode === 'form') && target.nodeName === 'DIV')) {\n\t if (expandable) {\n\t var recurse = event.ctrlKey; // with ctrl-key, expand/collapse all\n\t this._onExpand(recurse);\n\t }\n\t }\n\t }\n\n\t // swap the value of a boolean when the checkbox displayed left is clicked\n\t if (type == 'change' && target == dom.checkbox) {\n\t this.dom.value.innerHTML = !this.value;\n\t this._getDomValue();\n\t }\n\n\t // update the value of the node based on the selected option\n\t if (type == 'change' && target == dom.select) {\n\t this.dom.value.innerHTML = dom.select.value;\n\t this._getDomValue();\n\t this._updateDomValue();\n\t }\n\n\t // value events\n\t var domValue = dom.value;\n\t if (target == domValue) {\n\t //noinspection FallthroughInSwitchStatementJS\n\t switch (type) {\n\t case 'blur':\n\t case 'change':\n\t this._getDomValue(true);\n\t this._updateDomValue();\n\t if (this.value) {\n\t domValue.innerHTML = this._escapeHTML(this.value);\n\t }\n\t break;\n\n\t case 'input':\n\t //this._debouncedGetDomValue(true); // TODO\n\t this._getDomValue(true);\n\t this._updateDomValue();\n\t break;\n\n\t case 'keydown':\n\t case 'mousedown':\n\t // TODO: cleanup\n\t this.editor.selection = this.editor.getSelection();\n\t break;\n\n\t case 'click':\n\t if (event.ctrlKey && this.editable.value) {\n\t // if read-only, we use the regular click behavior of an anchor\n\t if (util.isUrl(this.value)) {\n\t event.preventDefault();\n\t window.open(this.value, '_blank');\n\t }\n\t }\n\t break;\n\n\t case 'keyup':\n\t //this._debouncedGetDomValue(true); // TODO\n\t this._getDomValue(true);\n\t this._updateDomValue();\n\t break;\n\n\t case 'cut':\n\t case 'paste':\n\t setTimeout(function () {\n\t node._getDomValue(true);\n\t node._updateDomValue();\n\t }, 1);\n\t break;\n\t }\n\t }\n\n\t // field events\n\t var domField = dom.field;\n\t if (target == domField) {\n\t switch (type) {\n\t case 'blur':\n\t case 'change':\n\t this._getDomField(true);\n\t this._updateDomField();\n\t if (this.field) {\n\t domField.innerHTML = this._escapeHTML(this.field);\n\t }\n\t break;\n\n\t case 'input':\n\t this._getDomField(true);\n\t this._updateSchema();\n\t this._updateDomField();\n\t this._updateDomValue();\n\t break;\n\n\t case 'keydown':\n\t case 'mousedown':\n\t this.editor.selection = this.editor.getSelection();\n\t break;\n\n\t case 'keyup':\n\t this._getDomField(true);\n\t this._updateDomField();\n\t break;\n\n\t case 'cut':\n\t case 'paste':\n\t setTimeout(function () {\n\t node._getDomField(true);\n\t node._updateDomField();\n\t }, 1);\n\t break;\n\t }\n\t }\n\n\t // focus\n\t // when clicked in whitespace left or right from the field or value, set focus\n\t var domTree = dom.tree;\n\t if (target == domTree.parentNode && type == 'click' && !event.hasMoved) {\n\t var left = (event.offsetX != undefined) ?\n\t (event.offsetX < (this.getLevel() + 1) * 24) :\n\t (event.pageX < util.getAbsoluteLeft(dom.tdSeparator));// for FF\n\t if (left || expandable) {\n\t // node is expandable when it is an object or array\n\t if (domField) {\n\t util.setEndOfContentEditable(domField);\n\t domField.focus();\n\t }\n\t }\n\t else {\n\t if (domValue && !this.enum) {\n\t util.setEndOfContentEditable(domValue);\n\t domValue.focus();\n\t }\n\t }\n\t }\n\t if (((target == dom.tdExpand && !expandable) || target == dom.tdField || target == dom.tdSeparator) &&\n\t (type == 'click' && !event.hasMoved)) {\n\t if (domField) {\n\t util.setEndOfContentEditable(domField);\n\t domField.focus();\n\t }\n\t }\n\n\t if (type == 'keydown') {\n\t this.onKeyDown(event);\n\t }\n\t};\n\n\t/**\n\t * Key down event handler\n\t * @param {Event} event\n\t */\n\tNode.prototype.onKeyDown = function (event) {\n\t var keynum = event.which || event.keyCode;\n\t var target = event.target || event.srcElement;\n\t var ctrlKey = event.ctrlKey;\n\t var shiftKey = event.shiftKey;\n\t var altKey = event.altKey;\n\t var handled = false;\n\t var prevNode, nextNode, nextDom, nextDom2;\n\t var editable = this.editor.options.mode === 'tree';\n\t var oldSelection;\n\t var oldBeforeNode;\n\t var nodes;\n\t var multiselection;\n\t var selectedNodes = this.editor.multiselection.nodes.length > 0\n\t ? this.editor.multiselection.nodes\n\t : [this];\n\t var firstNode = selectedNodes[0];\n\t var lastNode = selectedNodes[selectedNodes.length - 1];\n\n\t // console.log(ctrlKey, keynum, event.charCode); // TODO: cleanup\n\t if (keynum == 13) { // Enter\n\t if (target == this.dom.value) {\n\t if (!this.editable.value || event.ctrlKey) {\n\t if (util.isUrl(this.value)) {\n\t window.open(this.value, '_blank');\n\t handled = true;\n\t }\n\t }\n\t }\n\t else if (target == this.dom.expand) {\n\t var expandable = this._hasChilds();\n\t if (expandable) {\n\t var recurse = event.ctrlKey; // with ctrl-key, expand/collapse all\n\t this._onExpand(recurse);\n\t target.focus();\n\t handled = true;\n\t }\n\t }\n\t }\n\t else if (keynum == 68) { // D\n\t if (ctrlKey && editable) { // Ctrl+D\n\t Node.onDuplicate(selectedNodes);\n\t handled = true;\n\t }\n\t }\n\t else if (keynum == 69) { // E\n\t if (ctrlKey) { // Ctrl+E and Ctrl+Shift+E\n\t this._onExpand(shiftKey); // recurse = shiftKey\n\t target.focus(); // TODO: should restore focus in case of recursing expand (which takes DOM offline)\n\t handled = true;\n\t }\n\t }\n\t else if (keynum == 77 && editable) { // M\n\t if (ctrlKey) { // Ctrl+M\n\t this.showContextMenu(target);\n\t handled = true;\n\t }\n\t }\n\t else if (keynum == 46 && editable) { // Del\n\t if (ctrlKey) { // Ctrl+Del\n\t Node.onRemove(selectedNodes);\n\t handled = true;\n\t }\n\t }\n\t else if (keynum == 45 && editable) { // Ins\n\t if (ctrlKey && !shiftKey) { // Ctrl+Ins\n\t this._onInsertBefore();\n\t handled = true;\n\t }\n\t else if (ctrlKey && shiftKey) { // Ctrl+Shift+Ins\n\t this._onInsertAfter();\n\t handled = true;\n\t }\n\t }\n\t else if (keynum == 35) { // End\n\t if (altKey) { // Alt+End\n\t // find the last node\n\t var endNode = this._lastNode();\n\t if (endNode) {\n\t endNode.focus(Node.focusElement || this._getElementName(target));\n\t }\n\t handled = true;\n\t }\n\t }\n\t else if (keynum == 36) { // Home\n\t if (altKey) { // Alt+Home\n\t // find the first node\n\t var homeNode = this._firstNode();\n\t if (homeNode) {\n\t homeNode.focus(Node.focusElement || this._getElementName(target));\n\t }\n\t handled = true;\n\t }\n\t }\n\t else if (keynum == 37) { // Arrow Left\n\t if (altKey && !shiftKey) { // Alt + Arrow Left\n\t // move to left element\n\t var prevElement = this._previousElement(target);\n\t if (prevElement) {\n\t this.focus(this._getElementName(prevElement));\n\t }\n\t handled = true;\n\t }\n\t else if (altKey && shiftKey && editable) { // Alt + Shift + Arrow left\n\t if (lastNode.expanded) {\n\t var appendDom = lastNode.getAppend();\n\t nextDom = appendDom ? appendDom.nextSibling : undefined;\n\t }\n\t else {\n\t var dom = lastNode.getDom();\n\t nextDom = dom.nextSibling;\n\t }\n\t if (nextDom) {\n\t nextNode = Node.getNodeFromTarget(nextDom);\n\t nextDom2 = nextDom.nextSibling;\n\t nextNode2 = Node.getNodeFromTarget(nextDom2);\n\t if (nextNode && nextNode instanceof AppendNode &&\n\t !(lastNode.parent.childs.length == 1) &&\n\t nextNode2 && nextNode2.parent) {\n\t oldSelection = this.editor.getSelection();\n\t oldBeforeNode = lastNode._nextSibling();\n\n\t selectedNodes.forEach(function (node) {\n\t nextNode2.parent.moveBefore(node, nextNode2);\n\t });\n\t this.focus(Node.focusElement || this._getElementName(target));\n\n\t this.editor._onAction('moveNodes', {\n\t nodes: selectedNodes,\n\t oldBeforeNode: oldBeforeNode,\n\t newBeforeNode: nextNode2,\n\t oldSelection: oldSelection,\n\t newSelection: this.editor.getSelection()\n\t });\n\t }\n\t }\n\t }\n\t }\n\t else if (keynum == 38) { // Arrow Up\n\t if (altKey && !shiftKey) { // Alt + Arrow Up\n\t // find the previous node\n\t prevNode = this._previousNode();\n\t if (prevNode) {\n\t this.editor.deselect(true);\n\t prevNode.focus(Node.focusElement || this._getElementName(target));\n\t }\n\t handled = true;\n\t }\n\t else if (!altKey && ctrlKey && shiftKey && editable) { // Ctrl + Shift + Arrow Up\n\t // select multiple nodes\n\t prevNode = this._previousNode();\n\t if (prevNode) {\n\t multiselection = this.editor.multiselection;\n\t multiselection.start = multiselection.start || this;\n\t multiselection.end = prevNode;\n\t nodes = this.editor._findTopLevelNodes(multiselection.start, multiselection.end);\n\n\t this.editor.select(nodes);\n\t prevNode.focus('field'); // select field as we know this always exists\n\t }\n\t handled = true;\n\t }\n\t else if (altKey && shiftKey && editable) { // Alt + Shift + Arrow Up\n\t // find the previous node\n\t prevNode = firstNode._previousNode();\n\t if (prevNode && prevNode.parent) {\n\t oldSelection = this.editor.getSelection();\n\t oldBeforeNode = lastNode._nextSibling();\n\n\t selectedNodes.forEach(function (node) {\n\t prevNode.parent.moveBefore(node, prevNode);\n\t });\n\t this.focus(Node.focusElement || this._getElementName(target));\n\n\t this.editor._onAction('moveNodes', {\n\t nodes: selectedNodes,\n\t oldBeforeNode: oldBeforeNode,\n\t newBeforeNode: prevNode,\n\t oldSelection: oldSelection,\n\t newSelection: this.editor.getSelection()\n\t });\n\t }\n\t handled = true;\n\t }\n\t }\n\t else if (keynum == 39) { // Arrow Right\n\t if (altKey && !shiftKey) { // Alt + Arrow Right\n\t // move to right element\n\t var nextElement = this._nextElement(target);\n\t if (nextElement) {\n\t this.focus(this._getElementName(nextElement));\n\t }\n\t handled = true;\n\t }\n\t else if (altKey && shiftKey && editable) { // Alt + Shift + Arrow Right\n\t dom = firstNode.getDom();\n\t var prevDom = dom.previousSibling;\n\t if (prevDom) {\n\t prevNode = Node.getNodeFromTarget(prevDom);\n\t if (prevNode && prevNode.parent &&\n\t (prevNode instanceof AppendNode)\n\t && !prevNode.isVisible()) {\n\t oldSelection = this.editor.getSelection();\n\t oldBeforeNode = lastNode._nextSibling();\n\n\t selectedNodes.forEach(function (node) {\n\t prevNode.parent.moveBefore(node, prevNode);\n\t });\n\t this.focus(Node.focusElement || this._getElementName(target));\n\n\t this.editor._onAction('moveNodes', {\n\t nodes: selectedNodes,\n\t oldBeforeNode: oldBeforeNode,\n\t newBeforeNode: prevNode,\n\t oldSelection: oldSelection,\n\t newSelection: this.editor.getSelection()\n\t });\n\t }\n\t }\n\t }\n\t }\n\t else if (keynum == 40) { // Arrow Down\n\t if (altKey && !shiftKey) { // Alt + Arrow Down\n\t // find the next node\n\t nextNode = this._nextNode();\n\t if (nextNode) {\n\t this.editor.deselect(true);\n\t nextNode.focus(Node.focusElement || this._getElementName(target));\n\t }\n\t handled = true;\n\t }\n\t else if (!altKey && ctrlKey && shiftKey && editable) { // Ctrl + Shift + Arrow Down\n\t // select multiple nodes\n\t nextNode = this._nextNode();\n\t if (nextNode) {\n\t multiselection = this.editor.multiselection;\n\t multiselection.start = multiselection.start || this;\n\t multiselection.end = nextNode;\n\t nodes = this.editor._findTopLevelNodes(multiselection.start, multiselection.end);\n\n\t this.editor.select(nodes);\n\t nextNode.focus('field'); // select field as we know this always exists\n\t }\n\t handled = true;\n\t }\n\t else if (altKey && shiftKey && editable) { // Alt + Shift + Arrow Down\n\t // find the 2nd next node and move before that one\n\t if (lastNode.expanded) {\n\t nextNode = lastNode.append ? lastNode.append._nextNode() : undefined;\n\t }\n\t else {\n\t nextNode = lastNode._nextNode();\n\t }\n\t var nextNode2 = nextNode && (nextNode._nextNode() || nextNode.parent.append);\n\t if (nextNode2 && nextNode2.parent) {\n\t oldSelection = this.editor.getSelection();\n\t oldBeforeNode = lastNode._nextSibling();\n\n\t selectedNodes.forEach(function (node) {\n\t nextNode2.parent.moveBefore(node, nextNode2);\n\t });\n\t this.focus(Node.focusElement || this._getElementName(target));\n\n\t this.editor._onAction('moveNodes', {\n\t nodes: selectedNodes,\n\t oldBeforeNode: oldBeforeNode,\n\t newBeforeNode: nextNode2,\n\t oldSelection: oldSelection,\n\t newSelection: this.editor.getSelection()\n\t });\n\t }\n\t handled = true;\n\t }\n\t }\n\n\t if (handled) {\n\t event.preventDefault();\n\t event.stopPropagation();\n\t }\n\t};\n\n\t/**\n\t * Handle the expand event, when clicked on the expand button\n\t * @param {boolean} recurse If true, child nodes will be expanded too\n\t * @private\n\t */\n\tNode.prototype._onExpand = function (recurse) {\n\t if (recurse) {\n\t // Take the table offline\n\t var table = this.dom.tr.parentNode; // TODO: not nice to access the main table like this\n\t var frame = table.parentNode;\n\t var scrollTop = frame.scrollTop;\n\t frame.removeChild(table);\n\t }\n\n\t if (this.expanded) {\n\t this.collapse(recurse);\n\t }\n\t else {\n\t this.expand(recurse);\n\t }\n\n\t if (recurse) {\n\t // Put the table online again\n\t frame.appendChild(table);\n\t frame.scrollTop = scrollTop;\n\t }\n\t};\n\n\t/**\n\t * Remove nodes\n\t * @param {Node[] | Node} nodes\n\t */\n\tNode.onRemove = function(nodes) {\n\t if (!Array.isArray(nodes)) {\n\t return Node.onRemove([nodes]);\n\t }\n\n\t if (nodes && nodes.length > 0) {\n\t var firstNode = nodes[0];\n\t var parent = firstNode.parent;\n\t var editor = firstNode.editor;\n\t var firstIndex = firstNode.getIndex();\n\t editor.highlighter.unhighlight();\n\n\t // adjust the focus\n\t var oldSelection = editor.getSelection();\n\t Node.blurNodes(nodes);\n\t var newSelection = editor.getSelection();\n\n\t // remove the nodes\n\t nodes.forEach(function (node) {\n\t node.parent._remove(node);\n\t });\n\n\t // store history action\n\t editor._onAction('removeNodes', {\n\t nodes: nodes.slice(0), // store a copy of the array!\n\t parent: parent,\n\t index: firstIndex,\n\t oldSelection: oldSelection,\n\t newSelection: newSelection\n\t });\n\t }\n\t};\n\n\n\t/**\n\t * Duplicate nodes\n\t * duplicated nodes will be added right after the original nodes\n\t * @param {Node[] | Node} nodes\n\t */\n\tNode.onDuplicate = function(nodes) {\n\t if (!Array.isArray(nodes)) {\n\t return Node.onDuplicate([nodes]);\n\t }\n\n\t if (nodes && nodes.length > 0) {\n\t var lastNode = nodes[nodes.length - 1];\n\t var parent = lastNode.parent;\n\t var editor = lastNode.editor;\n\n\t editor.deselect(editor.multiselection.nodes);\n\n\t // duplicate the nodes\n\t var oldSelection = editor.getSelection();\n\t var afterNode = lastNode;\n\t var clones = nodes.map(function (node) {\n\t var clone = node.clone();\n\t parent.insertAfter(clone, afterNode);\n\t afterNode = clone;\n\t return clone;\n\t });\n\n\t // set selection to the duplicated nodes\n\t if (nodes.length === 1) {\n\t clones[0].focus();\n\t }\n\t else {\n\t editor.select(clones);\n\t }\n\t var newSelection = editor.getSelection();\n\n\t editor._onAction('duplicateNodes', {\n\t afterNode: lastNode,\n\t nodes: clones,\n\t parent: parent,\n\t oldSelection: oldSelection,\n\t newSelection: newSelection\n\t });\n\t }\n\t};\n\n\t/**\n\t * Handle insert before event\n\t * @param {String} [field]\n\t * @param {*} [value]\n\t * @param {String} [type] Can be 'auto', 'array', 'object', or 'string'\n\t * @private\n\t */\n\tNode.prototype._onInsertBefore = function (field, value, type) {\n\t var oldSelection = this.editor.getSelection();\n\n\t var newNode = new Node(this.editor, {\n\t field: (field != undefined) ? field : '',\n\t value: (value != undefined) ? value : '',\n\t type: type\n\t });\n\t newNode.expand(true);\n\t this.parent.insertBefore(newNode, this);\n\t this.editor.highlighter.unhighlight();\n\t newNode.focus('field');\n\t var newSelection = this.editor.getSelection();\n\n\t this.editor._onAction('insertBeforeNodes', {\n\t nodes: [newNode],\n\t beforeNode: this,\n\t parent: this.parent,\n\t oldSelection: oldSelection,\n\t newSelection: newSelection\n\t });\n\t};\n\n\t/**\n\t * Handle insert after event\n\t * @param {String} [field]\n\t * @param {*} [value]\n\t * @param {String} [type] Can be 'auto', 'array', 'object', or 'string'\n\t * @private\n\t */\n\tNode.prototype._onInsertAfter = function (field, value, type) {\n\t var oldSelection = this.editor.getSelection();\n\n\t var newNode = new Node(this.editor, {\n\t field: (field != undefined) ? field : '',\n\t value: (value != undefined) ? value : '',\n\t type: type\n\t });\n\t newNode.expand(true);\n\t this.parent.insertAfter(newNode, this);\n\t this.editor.highlighter.unhighlight();\n\t newNode.focus('field');\n\t var newSelection = this.editor.getSelection();\n\n\t this.editor._onAction('insertAfterNodes', {\n\t nodes: [newNode],\n\t afterNode: this,\n\t parent: this.parent,\n\t oldSelection: oldSelection,\n\t newSelection: newSelection\n\t });\n\t};\n\n\t/**\n\t * Handle append event\n\t * @param {String} [field]\n\t * @param {*} [value]\n\t * @param {String} [type] Can be 'auto', 'array', 'object', or 'string'\n\t * @private\n\t */\n\tNode.prototype._onAppend = function (field, value, type) {\n\t var oldSelection = this.editor.getSelection();\n\n\t var newNode = new Node(this.editor, {\n\t field: (field != undefined) ? field : '',\n\t value: (value != undefined) ? value : '',\n\t type: type\n\t });\n\t newNode.expand(true);\n\t this.parent.appendChild(newNode);\n\t this.editor.highlighter.unhighlight();\n\t newNode.focus('field');\n\t var newSelection = this.editor.getSelection();\n\n\t this.editor._onAction('appendNodes', {\n\t nodes: [newNode],\n\t parent: this.parent,\n\t oldSelection: oldSelection,\n\t newSelection: newSelection\n\t });\n\t};\n\n\t/**\n\t * Change the type of the node's value\n\t * @param {String} newType\n\t * @private\n\t */\n\tNode.prototype._onChangeType = function (newType) {\n\t var oldType = this.type;\n\t if (newType != oldType) {\n\t var oldSelection = this.editor.getSelection();\n\t this.changeType(newType);\n\t var newSelection = this.editor.getSelection();\n\n\t this.editor._onAction('changeType', {\n\t node: this,\n\t oldType: oldType,\n\t newType: newType,\n\t oldSelection: oldSelection,\n\t newSelection: newSelection\n\t });\n\t }\n\t};\n\n\t/**\n\t * Sort the child's of the node. Only applicable when the node has type 'object'\n\t * or 'array'.\n\t * @param {String} direction Sorting direction. Available values: \"asc\", \"desc\"\n\t * @private\n\t */\n\tNode.prototype.sort = function (direction) {\n\t if (!this._hasChilds()) {\n\t return;\n\t }\n\n\t var order = (direction == 'desc') ? -1 : 1;\n\t var prop = (this.type == 'array') ? 'value': 'field';\n\t this.hideChilds();\n\n\t var oldChilds = this.childs;\n\t var oldSortOrder = this.sortOrder;\n\n\t // copy the array (the old one will be kept for an undo action\n\t this.childs = this.childs.concat();\n\n\t // sort the arrays\n\t this.childs.sort(function (a, b) {\n\t return order * naturalSort(a[prop], b[prop]);\n\t });\n\t this.sortOrder = (order == 1) ? 'asc' : 'desc';\n\n\t this.editor._onAction('sort', {\n\t node: this,\n\t oldChilds: oldChilds,\n\t oldSort: oldSortOrder,\n\t newChilds: this.childs,\n\t newSort: this.sortOrder\n\t });\n\n\t this.showChilds();\n\t};\n\n\t/**\n\t * Create a table row with an append button.\n\t * @return {HTMLElement | undefined} buttonAppend or undefined when inapplicable\n\t */\n\tNode.prototype.getAppend = function () {\n\t if (!this.append) {\n\t this.append = new AppendNode(this.editor);\n\t this.append.setParent(this);\n\t }\n\t return this.append.getDom();\n\t};\n\n\t/**\n\t * Find the node from an event target\n\t * @param {Node} target\n\t * @return {Node | undefined} node or undefined when not found\n\t * @static\n\t */\n\tNode.getNodeFromTarget = function (target) {\n\t while (target) {\n\t if (target.node) {\n\t return target.node;\n\t }\n\t target = target.parentNode;\n\t }\n\n\t return undefined;\n\t};\n\n\t/**\n\t * Remove the focus of given nodes, and move the focus to the (a) node before,\n\t * (b) the node after, or (c) the parent node.\n\t * @param {Array.<Node> | Node} nodes\n\t */\n\tNode.blurNodes = function (nodes) {\n\t if (!Array.isArray(nodes)) {\n\t Node.blurNodes([nodes]);\n\t return;\n\t }\n\n\t var firstNode = nodes[0];\n\t var parent = firstNode.parent;\n\t var firstIndex = firstNode.getIndex();\n\n\t if (parent.childs[firstIndex + nodes.length]) {\n\t parent.childs[firstIndex + nodes.length].focus();\n\t }\n\t else if (parent.childs[firstIndex - 1]) {\n\t parent.childs[firstIndex - 1].focus();\n\t }\n\t else {\n\t parent.focus();\n\t }\n\t};\n\n\t/**\n\t * Get the next sibling of current node\n\t * @return {Node} nextSibling\n\t * @private\n\t */\n\tNode.prototype._nextSibling = function () {\n\t var index = this.parent.childs.indexOf(this);\n\t return this.parent.childs[index + 1] || this.parent.append;\n\t};\n\n\t/**\n\t * Get the previously rendered node\n\t * @return {Node | null} previousNode\n\t * @private\n\t */\n\tNode.prototype._previousNode = function () {\n\t var prevNode = null;\n\t var dom = this.getDom();\n\t if (dom && dom.parentNode) {\n\t // find the previous field\n\t var prevDom = dom;\n\t do {\n\t prevDom = prevDom.previousSibling;\n\t prevNode = Node.getNodeFromTarget(prevDom);\n\t }\n\t while (prevDom && (prevNode instanceof AppendNode && !prevNode.isVisible()));\n\t }\n\t return prevNode;\n\t};\n\n\t/**\n\t * Get the next rendered node\n\t * @return {Node | null} nextNode\n\t * @private\n\t */\n\tNode.prototype._nextNode = function () {\n\t var nextNode = null;\n\t var dom = this.getDom();\n\t if (dom && dom.parentNode) {\n\t // find the previous field\n\t var nextDom = dom;\n\t do {\n\t nextDom = nextDom.nextSibling;\n\t nextNode = Node.getNodeFromTarget(nextDom);\n\t }\n\t while (nextDom && (nextNode instanceof AppendNode && !nextNode.isVisible()));\n\t }\n\n\t return nextNode;\n\t};\n\n\t/**\n\t * Get the first rendered node\n\t * @return {Node | null} firstNode\n\t * @private\n\t */\n\tNode.prototype._firstNode = function () {\n\t var firstNode = null;\n\t var dom = this.getDom();\n\t if (dom && dom.parentNode) {\n\t var firstDom = dom.parentNode.firstChild;\n\t firstNode = Node.getNodeFromTarget(firstDom);\n\t }\n\n\t return firstNode;\n\t};\n\n\t/**\n\t * Get the last rendered node\n\t * @return {Node | null} lastNode\n\t * @private\n\t */\n\tNode.prototype._lastNode = function () {\n\t var lastNode = null;\n\t var dom = this.getDom();\n\t if (dom && dom.parentNode) {\n\t var lastDom = dom.parentNode.lastChild;\n\t lastNode = Node.getNodeFromTarget(lastDom);\n\t while (lastDom && (lastNode instanceof AppendNode && !lastNode.isVisible())) {\n\t lastDom = lastDom.previousSibling;\n\t lastNode = Node.getNodeFromTarget(lastDom);\n\t }\n\t }\n\t return lastNode;\n\t};\n\n\t/**\n\t * Get the next element which can have focus.\n\t * @param {Element} elem\n\t * @return {Element | null} nextElem\n\t * @private\n\t */\n\tNode.prototype._previousElement = function (elem) {\n\t var dom = this.dom;\n\t // noinspection FallthroughInSwitchStatementJS\n\t switch (elem) {\n\t case dom.value:\n\t if (this.fieldEditable) {\n\t return dom.field;\n\t }\n\t // intentional fall through\n\t case dom.field:\n\t if (this._hasChilds()) {\n\t return dom.expand;\n\t }\n\t // intentional fall through\n\t case dom.expand:\n\t return dom.menu;\n\t case dom.menu:\n\t if (dom.drag) {\n\t return dom.drag;\n\t }\n\t // intentional fall through\n\t default:\n\t return null;\n\t }\n\t};\n\n\t/**\n\t * Get the next element which can have focus.\n\t * @param {Element} elem\n\t * @return {Element | null} nextElem\n\t * @private\n\t */\n\tNode.prototype._nextElement = function (elem) {\n\t var dom = this.dom;\n\t // noinspection FallthroughInSwitchStatementJS\n\t switch (elem) {\n\t case dom.drag:\n\t return dom.menu;\n\t case dom.menu:\n\t if (this._hasChilds()) {\n\t return dom.expand;\n\t }\n\t // intentional fall through\n\t case dom.expand:\n\t if (this.fieldEditable) {\n\t return dom.field;\n\t }\n\t // intentional fall through\n\t case dom.field:\n\t if (!this._hasChilds()) {\n\t return dom.value;\n\t }\n\t default:\n\t return null;\n\t }\n\t};\n\n\t/**\n\t * Get the dom name of given element. returns null if not found.\n\t * For example when element == dom.field, \"field\" is returned.\n\t * @param {Element} element\n\t * @return {String | null} elementName Available elements with name: 'drag',\n\t * 'menu', 'expand', 'field', 'value'\n\t * @private\n\t */\n\tNode.prototype._getElementName = function (element) {\n\t var dom = this.dom;\n\t for (var name in dom) {\n\t if (dom.hasOwnProperty(name)) {\n\t if (dom[name] == element) {\n\t return name;\n\t }\n\t }\n\t }\n\t return null;\n\t};\n\n\t/**\n\t * Test if this node has childs. This is the case when the node is an object\n\t * or array.\n\t * @return {boolean} hasChilds\n\t * @private\n\t */\n\tNode.prototype._hasChilds = function () {\n\t return this.type == 'array' || this.type == 'object';\n\t};\n\n\t// titles with explanation for the different types\n\tNode.TYPE_TITLES = {\n\t 'auto': 'Field type \"auto\". ' +\n\t 'The field type is automatically determined from the value ' +\n\t 'and can be a string, number, boolean, or null.',\n\t 'object': 'Field type \"object\". ' +\n\t 'An object contains an unordered set of key/value pairs.',\n\t 'array': 'Field type \"array\". ' +\n\t 'An array contains an ordered collection of values.',\n\t 'string': 'Field type \"string\". ' +\n\t 'Field type is not determined from the value, ' +\n\t 'but always returned as string.'\n\t};\n\n\tNode.prototype.addTemplates = function (menu, append) {\n\t var node = this;\n\t var templates = node.editor.options.templates;\n\t if (templates == null) return;\n\t if (templates.length) {\n\t // create a separator\n\t menu.push({\n\t 'type': 'separator'\n\t });\n\t }\n\t var appendData = function (name, data) {\n\t node._onAppend(name, data);\n\t };\n\t var insertData = function (name, data) {\n\t node._onInsertBefore(name, data);\n\t };\n\t templates.forEach(function (template) {\n\t menu.push({\n\t text: template.text,\n\t className: (template.className || 'jsoneditor-type-object'),\n\t title: template.title,\n\t click: (append ? appendData.bind(this, template.field, template.value) : insertData.bind(this, template.field, template.value))\n\t });\n\t });\n\t};\n\n\t/**\n\t * Show a contextmenu for this node\n\t * @param {HTMLElement} anchor Anchor element to attach the context menu to\n\t * as sibling.\n\t * @param {function} [onClose] Callback method called when the context menu\n\t * is being closed.\n\t */\n\tNode.prototype.showContextMenu = function (anchor, onClose) {\n\t var node = this;\n\t var titles = Node.TYPE_TITLES;\n\t var items = [];\n\n\t if (this.editable.value) {\n\t items.push({\n\t text: 'Type',\n\t title: 'Change the type of this field',\n\t className: 'jsoneditor-type-' + this.type,\n\t submenu: [\n\t {\n\t text: 'Auto',\n\t className: 'jsoneditor-type-auto' +\n\t (this.type == 'auto' ? ' jsoneditor-selected' : ''),\n\t title: titles.auto,\n\t click: function () {\n\t node._onChangeType('auto');\n\t }\n\t },\n\t {\n\t text: 'Array',\n\t className: 'jsoneditor-type-array' +\n\t (this.type == 'array' ? ' jsoneditor-selected' : ''),\n\t title: titles.array,\n\t click: function () {\n\t node._onChangeType('array');\n\t }\n\t },\n\t {\n\t text: 'Object',\n\t className: 'jsoneditor-type-object' +\n\t (this.type == 'object' ? ' jsoneditor-selected' : ''),\n\t title: titles.object,\n\t click: function () {\n\t node._onChangeType('object');\n\t }\n\t },\n\t {\n\t text: 'String',\n\t className: 'jsoneditor-type-string' +\n\t (this.type == 'string' ? ' jsoneditor-selected' : ''),\n\t title: titles.string,\n\t click: function () {\n\t node._onChangeType('string');\n\t }\n\t }\n\t ]\n\t });\n\t }\n\n\t if (this._hasChilds()) {\n\t var direction = ((this.sortOrder == 'asc') ? 'desc': 'asc');\n\t items.push({\n\t text: 'Sort',\n\t title: 'Sort the childs of this ' + this.type,\n\t className: 'jsoneditor-sort-' + direction,\n\t click: function () {\n\t node.sort(direction);\n\t },\n\t submenu: [\n\t {\n\t text: 'Ascending',\n\t className: 'jsoneditor-sort-asc',\n\t title: 'Sort the childs of this ' + this.type + ' in ascending order',\n\t click: function () {\n\t node.sort('asc');\n\t }\n\t },\n\t {\n\t text: 'Descending',\n\t className: 'jsoneditor-sort-desc',\n\t title: 'Sort the childs of this ' + this.type +' in descending order',\n\t click: function () {\n\t node.sort('desc');\n\t }\n\t }\n\t ]\n\t });\n\t }\n\n\t if (this.parent && this.parent._hasChilds()) {\n\t if (items.length) {\n\t // create a separator\n\t items.push({\n\t 'type': 'separator'\n\t });\n\t }\n\n\t // create append button (for last child node only)\n\t var childs = node.parent.childs;\n\t if (node == childs[childs.length - 1]) {\n\t var appendSubmenu = [\n\t {\n\t text: 'Auto',\n\t className: 'jsoneditor-type-auto',\n\t title: titles.auto,\n\t click: function () {\n\t node._onAppend('', '', 'auto');\n\t }\n\t },\n\t {\n\t text: 'Array',\n\t className: 'jsoneditor-type-array',\n\t title: titles.array,\n\t click: function () {\n\t node._onAppend('', []);\n\t }\n\t },\n\t {\n\t text: 'Object',\n\t className: 'jsoneditor-type-object',\n\t title: titles.object,\n\t click: function () {\n\t node._onAppend('', {});\n\t }\n\t },\n\t {\n\t text: 'String',\n\t className: 'jsoneditor-type-string',\n\t title: titles.string,\n\t click: function () {\n\t node._onAppend('', '', 'string');\n\t }\n\t }\n\t ];\n\t node.addTemplates(appendSubmenu, true);\n\t items.push({\n\t text: 'Append',\n\t title: 'Append a new field with type \\'auto\\' after this field (Ctrl+Shift+Ins)',\n\t submenuTitle: 'Select the type of the field to be appended',\n\t className: 'jsoneditor-append',\n\t click: function () {\n\t node._onAppend('', '', 'auto');\n\t },\n\t submenu: appendSubmenu\n\t });\n\t }\n\n\n\n\t // create insert button\n\t var insertSubmenu = [\n\t {\n\t text: 'Auto',\n\t className: 'jsoneditor-type-auto',\n\t title: titles.auto,\n\t click: function () {\n\t node._onInsertBefore('', '', 'auto');\n\t }\n\t },\n\t {\n\t text: 'Array',\n\t className: 'jsoneditor-type-array',\n\t title: titles.array,\n\t click: function () {\n\t node._onInsertBefore('', []);\n\t }\n\t },\n\t {\n\t text: 'Object',\n\t className: 'jsoneditor-type-object',\n\t title: titles.object,\n\t click: function () {\n\t node._onInsertBefore('', {});\n\t }\n\t },\n\t {\n\t text: 'String',\n\t className: 'jsoneditor-type-string',\n\t title: titles.string,\n\t click: function () {\n\t node._onInsertBefore('', '', 'string');\n\t }\n\t }\n\t ];\n\t node.addTemplates(insertSubmenu, false);\n\t items.push({\n\t text: 'Insert',\n\t title: 'Insert a new field with type \\'auto\\' before this field (Ctrl+Ins)',\n\t submenuTitle: 'Select the type of the field to be inserted',\n\t className: 'jsoneditor-insert',\n\t click: function () {\n\t node._onInsertBefore('', '', 'auto');\n\t },\n\t submenu: insertSubmenu\n\t });\n\n\t if (this.editable.field) {\n\t // create duplicate button\n\t items.push({\n\t text: 'Duplicate',\n\t title: 'Duplicate this field (Ctrl+D)',\n\t className: 'jsoneditor-duplicate',\n\t click: function () {\n\t Node.onDuplicate(node);\n\t }\n\t });\n\n\t // create remove button\n\t items.push({\n\t text: 'Remove',\n\t title: 'Remove this field (Ctrl+Del)',\n\t className: 'jsoneditor-remove',\n\t click: function () {\n\t Node.onRemove(node);\n\t }\n\t });\n\t }\n\t }\n\n\t var menu = new ContextMenu(items, {close: onClose});\n\t menu.show(anchor, this.editor.content);\n\t};\n\n\t/**\n\t * get the type of a value\n\t * @param {*} value\n\t * @return {String} type Can be 'object', 'array', 'string', 'auto'\n\t * @private\n\t */\n\tNode.prototype._getType = function(value) {\n\t if (value instanceof Array) {\n\t return 'array';\n\t }\n\t if (value instanceof Object) {\n\t return 'object';\n\t }\n\t if (typeof(value) == 'string' && typeof(this._stringCast(value)) != 'string') {\n\t return 'string';\n\t }\n\n\t return 'auto';\n\t};\n\n\t/**\n\t * cast contents of a string to the correct type. This can be a string,\n\t * a number, a boolean, etc\n\t * @param {String} str\n\t * @return {*} castedStr\n\t * @private\n\t */\n\tNode.prototype._stringCast = function(str) {\n\t var lower = str.toLowerCase(),\n\t num = Number(str), // will nicely fail with '123ab'\n\t numFloat = parseFloat(str); // will nicely fail with ' '\n\n\t if (str == '') {\n\t return '';\n\t }\n\t else if (lower == 'null') {\n\t return null;\n\t }\n\t else if (lower == 'true') {\n\t return true;\n\t }\n\t else if (lower == 'false') {\n\t return false;\n\t }\n\t else if (!isNaN(num) && !isNaN(numFloat)) {\n\t return num;\n\t }\n\t else {\n\t return str;\n\t }\n\t};\n\n\t/**\n\t * escape a text, such that it can be displayed safely in an HTML element\n\t * @param {String} text\n\t * @return {String} escapedText\n\t * @private\n\t */\n\tNode.prototype._escapeHTML = function (text) {\n\t if (typeof text !== 'string') {\n\t return String(text);\n\t }\n\t else {\n\t var htmlEscaped = String(text)\n\t .replace(/&/g, '&') // must be replaced first!\n\t .replace(/</g, '<')\n\t .replace(/>/g, '>')\n\t .replace(/ /g, '  ') // replace double space with an nbsp and space\n\t .replace(/^ /, ' ') // space at start\n\t .replace(/ $/, ' '); // space at end\n\n\t var json = JSON.stringify(htmlEscaped);\n\t var html = json.substring(1, json.length - 1);\n\t if (this.editor.options.escapeUnicode === true) {\n\t html = util.escapeUnicodeChars(html);\n\t }\n\t return html;\n\t }\n\t};\n\n\t/**\n\t * unescape a string.\n\t * @param {String} escapedText\n\t * @return {String} text\n\t * @private\n\t */\n\tNode.prototype._unescapeHTML = function (escapedText) {\n\t var json = '\"' + this._escapeJSON(escapedText) + '\"';\n\t var htmlEscaped = util.parse(json);\n\n\t return htmlEscaped\n\t .replace(/</g, '<')\n\t .replace(/>/g, '>')\n\t .replace(/ |\\u00A0/g, ' ')\n\t .replace(/&/g, '&'); // must be replaced last\n\t};\n\n\t/**\n\t * escape a text to make it a valid JSON string. The method will:\n\t * - replace unescaped double quotes with '\\\"'\n\t * - replace unescaped backslash with '\\\\'\n\t * - replace returns with '\\n'\n\t * @param {String} text\n\t * @return {String} escapedText\n\t * @private\n\t */\n\tNode.prototype._escapeJSON = function (text) {\n\t // TODO: replace with some smart regex (only when a new solution is faster!)\n\t var escaped = '';\n\t var i = 0;\n\t while (i < text.length) {\n\t var c = text.charAt(i);\n\t if (c == '\\n') {\n\t escaped += '\\\\n';\n\t }\n\t else if (c == '\\\\') {\n\t escaped += c;\n\t i++;\n\n\t c = text.charAt(i);\n\t if (c === '' || '\"\\\\/bfnrtu'.indexOf(c) == -1) {\n\t escaped += '\\\\'; // no valid escape character\n\t }\n\t escaped += c;\n\t }\n\t else if (c == '\"') {\n\t escaped += '\\\\\"';\n\t }\n\t else {\n\t escaped += c;\n\t }\n\t i++;\n\t }\n\n\t return escaped;\n\t};\n\n\t// TODO: find a nicer solution to resolve this circular dependency between Node and AppendNode\n\tvar AppendNode = appendNodeFactory(Node);\n\n\tmodule.exports = Node;\n\n\n/***/ },\n/* 62 */\n/***/ function(module, exports) {\n\n\t/*\n\t * Natural Sort algorithm for Javascript - Version 0.7 - Released under MIT license\n\t * Author: Jim Palmer (based on chunking idea from Dave Koelle)\n\t */\n\t/*jshint unused:false */\n\tmodule.exports = function naturalSort (a, b) {\n\t\t\"use strict\";\n\t\tvar re = /(^([+\\-]?(?:0|[1-9]\\d*)(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?)?$|^0x[0-9a-f]+$|\\d+)/gi,\n\t\t\tsre = /(^[ ]*|[ ]*$)/g,\n\t\t\tdre = /(^([\\w ]+,?[\\w ]+)?[\\w ]+,?[\\w ]+\\d+:\\d+(:\\d+)?[\\w ]?|^\\d{1,4}[\\/\\-]\\d{1,4}[\\/\\-]\\d{1,4}|^\\w+, \\w+ \\d+, \\d{4})/,\n\t\t\thre = /^0x[0-9a-f]+$/i,\n\t\t\tore = /^0/,\n\t\t\ti = function(s) { return naturalSort.insensitive && ('' + s).toLowerCase() || '' + s; },\n\t\t\t// convert all to strings strip whitespace\n\t\t\tx = i(a).replace(sre, '') || '',\n\t\t\ty = i(b).replace(sre, '') || '',\n\t\t\t// chunk/tokenize\n\t\t\txN = x.replace(re, '\\0$1\\0').replace(/\\0$/,'').replace(/^\\0/,'').split('\\0'),\n\t\t\tyN = y.replace(re, '\\0$1\\0').replace(/\\0$/,'').replace(/^\\0/,'').split('\\0'),\n\t\t\t// numeric, hex or date detection\n\t\t\txD = parseInt(x.match(hre), 16) || (xN.length !== 1 && x.match(dre) && Date.parse(x)),\n\t\t\tyD = parseInt(y.match(hre), 16) || xD && y.match(dre) && Date.parse(y) || null,\n\t\t\toFxNcL, oFyNcL;\n\t\t// first try and sort Hex codes or Dates\n\t\tif (yD) {\n\t\t\tif ( xD < yD ) { return -1; }\n\t\t\telse if ( xD > yD ) { return 1; }\n\t\t}\n\t\t// natural sorting through split numeric strings and default strings\n\t\tfor(var cLoc=0, numS=Math.max(xN.length, yN.length); cLoc < numS; cLoc++) {\n\t\t\t// find floats not starting with '0', string or 0 if not defined (Clint Priest)\n\t\t\toFxNcL = !(xN[cLoc] || '').match(ore) && parseFloat(xN[cLoc]) || xN[cLoc] || 0;\n\t\t\toFyNcL = !(yN[cLoc] || '').match(ore) && parseFloat(yN[cLoc]) || yN[cLoc] || 0;\n\t\t\t// handle numeric vs string comparison - number < string - (Kyle Adams)\n\t\t\tif (isNaN(oFxNcL) !== isNaN(oFyNcL)) { return (isNaN(oFxNcL)) ? 1 : -1; }\n\t\t\t// rely on string comparison if different types - i.e. '02' < 2 != '02' < '2'\n\t\t\telse if (typeof oFxNcL !== typeof oFyNcL) {\n\t\t\t\toFxNcL += '';\n\t\t\t\toFyNcL += '';\n\t\t\t}\n\t\t\tif (oFxNcL < oFyNcL) { return -1; }\n\t\t\tif (oFxNcL > oFyNcL) { return 1; }\n\t\t}\n\t\treturn 0;\n\t};\n\n\n/***/ },\n/* 63 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar util = __webpack_require__(57);\n\tvar ContextMenu = __webpack_require__(60);\n\n\t/**\n\t * A factory function to create an AppendNode, which depends on a Node\n\t * @param {Node} Node\n\t */\n\tfunction appendNodeFactory(Node) {\n\t /**\n\t * @constructor AppendNode\n\t * @extends Node\n\t * @param {TreeEditor} editor\n\t * Create a new AppendNode. This is a special node which is created at the\n\t * end of the list with childs for an object or array\n\t */\n\t function AppendNode (editor) {\n\t /** @type {TreeEditor} */\n\t this.editor = editor;\n\t this.dom = {};\n\t }\n\n\t AppendNode.prototype = new Node();\n\n\t /**\n\t * Return a table row with an append button.\n\t * @return {Element} dom TR element\n\t */\n\t AppendNode.prototype.getDom = function () {\n\t // TODO: implement a new solution for the append node\n\t var dom = this.dom;\n\n\t if (dom.tr) {\n\t return dom.tr;\n\t }\n\n\t this._updateEditability();\n\n\t // a row for the append button\n\t var trAppend = document.createElement('tr');\n\t trAppend.node = this;\n\t dom.tr = trAppend;\n\n\t // TODO: consistent naming\n\n\t if (this.editor.options.mode === 'tree') {\n\t // a cell for the dragarea column\n\t dom.tdDrag = document.createElement('td');\n\n\t // create context menu\n\t var tdMenu = document.createElement('td');\n\t dom.tdMenu = tdMenu;\n\t var menu = document.createElement('button');\n\t menu.type = 'button';\n\t menu.className = 'jsoneditor-contextmenu';\n\t menu.title = 'Click to open the actions menu (Ctrl+M)';\n\t dom.menu = menu;\n\t tdMenu.appendChild(dom.menu);\n\t }\n\n\t // a cell for the contents (showing text 'empty')\n\t var tdAppend = document.createElement('td');\n\t var domText = document.createElement('div');\n\t domText.innerHTML = '(empty)';\n\t domText.className = 'jsoneditor-readonly';\n\t tdAppend.appendChild(domText);\n\t dom.td = tdAppend;\n\t dom.text = domText;\n\n\t this.updateDom();\n\n\t return trAppend;\n\t };\n\n\t /**\n\t * Update the HTML dom of the Node\n\t */\n\t AppendNode.prototype.updateDom = function () {\n\t var dom = this.dom;\n\t var tdAppend = dom.td;\n\t if (tdAppend) {\n\t tdAppend.style.paddingLeft = (this.getLevel() * 24 + 26) + 'px';\n\t // TODO: not so nice hard coded offset\n\t }\n\n\t var domText = dom.text;\n\t if (domText) {\n\t domText.innerHTML = '(empty ' + this.parent.type + ')';\n\t }\n\n\t // attach or detach the contents of the append node:\n\t // hide when the parent has childs, show when the parent has no childs\n\t var trAppend = dom.tr;\n\t if (!this.isVisible()) {\n\t if (dom.tr.firstChild) {\n\t if (dom.tdDrag) {\n\t trAppend.removeChild(dom.tdDrag);\n\t }\n\t if (dom.tdMenu) {\n\t trAppend.removeChild(dom.tdMenu);\n\t }\n\t trAppend.removeChild(tdAppend);\n\t }\n\t }\n\t else {\n\t if (!dom.tr.firstChild) {\n\t if (dom.tdDrag) {\n\t trAppend.appendChild(dom.tdDrag);\n\t }\n\t if (dom.tdMenu) {\n\t trAppend.appendChild(dom.tdMenu);\n\t }\n\t trAppend.appendChild(tdAppend);\n\t }\n\t }\n\t };\n\n\t /**\n\t * Check whether the AppendNode is currently visible.\n\t * the AppendNode is visible when its parent has no childs (i.e. is empty).\n\t * @return {boolean} isVisible\n\t */\n\t AppendNode.prototype.isVisible = function () {\n\t return (this.parent.childs.length == 0);\n\t };\n\n\t /**\n\t * Show a contextmenu for this node\n\t * @param {HTMLElement} anchor The element to attach the menu to.\n\t * @param {function} [onClose] Callback method called when the context menu\n\t * is being closed.\n\t */\n\t AppendNode.prototype.showContextMenu = function (anchor, onClose) {\n\t var node = this;\n\t var titles = Node.TYPE_TITLES;\n\t var appendSubmenu = [\n\t {\n\t text: 'Auto',\n\t className: 'jsoneditor-type-auto',\n\t title: titles.auto,\n\t click: function () {\n\t node._onAppend('', '', 'auto');\n\t }\n\t },\n\t {\n\t text: 'Array',\n\t className: 'jsoneditor-type-array',\n\t title: titles.array,\n\t click: function () {\n\t node._onAppend('', []);\n\t }\n\t },\n\t {\n\t text: 'Object',\n\t className: 'jsoneditor-type-object',\n\t title: titles.object,\n\t click: function () {\n\t node._onAppend('', {});\n\t }\n\t },\n\t {\n\t text: 'String',\n\t className: 'jsoneditor-type-string',\n\t title: titles.string,\n\t click: function () {\n\t node._onAppend('', '', 'string');\n\t }\n\t }\n\t ];\n\t node.addTemplates(appendSubmenu, true);\n\t var items = [\n\t // create append button\n\t {\n\t 'text': 'Append',\n\t 'title': 'Append a new field with type \\'auto\\' (Ctrl+Shift+Ins)',\n\t 'submenuTitle': 'Select the type of the field to be appended',\n\t 'className': 'jsoneditor-insert',\n\t 'click': function () {\n\t node._onAppend('', '', 'auto');\n\t },\n\t 'submenu': appendSubmenu\n\t }\n\t ];\n\n\t var menu = new ContextMenu(items, {close: onClose});\n\t menu.show(anchor, this.editor.content);\n\t };\n\n\t /**\n\t * Handle an event. The event is catched centrally by the editor\n\t * @param {Event} event\n\t */\n\t AppendNode.prototype.onEvent = function (event) {\n\t var type = event.type;\n\t var target = event.target || event.srcElement;\n\t var dom = this.dom;\n\n\t // highlight the append nodes parent\n\t var menu = dom.menu;\n\t if (target == menu) {\n\t if (type == 'mouseover') {\n\t this.editor.highlighter.highlight(this.parent);\n\t }\n\t else if (type == 'mouseout') {\n\t this.editor.highlighter.unhighlight();\n\t }\n\t }\n\n\t // context menu events\n\t if (type == 'click' && target == dom.menu) {\n\t var highlighter = this.editor.highlighter;\n\t highlighter.highlight(this.parent);\n\t highlighter.lock();\n\t util.addClassName(dom.menu, 'jsoneditor-selected');\n\t this.showContextMenu(dom.menu, function () {\n\t util.removeClassName(dom.menu, 'jsoneditor-selected');\n\t highlighter.unlock();\n\t highlighter.unhighlight();\n\t });\n\t }\n\n\t if (type == 'keydown') {\n\t this.onKeyDown(event);\n\t }\n\t };\n\n\t return AppendNode;\n\t}\n\n\tmodule.exports = appendNodeFactory;\n\n\n/***/ },\n/* 64 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar ContextMenu = __webpack_require__(60);\n\n\t/**\n\t * Create a select box to be used in the editor menu's, which allows to switch mode\n\t * @param {HTMLElement} container\n\t * @param {String[]} modes Available modes: 'code', 'form', 'text', 'tree', 'view'\n\t * @param {String} current Available modes: 'code', 'form', 'text', 'tree', 'view'\n\t * @param {function(mode: string)} onSwitch Callback invoked on switch\n\t * @constructor\n\t */\n\tfunction ModeSwitcher(container, modes, current, onSwitch) {\n\t // available modes\n\t var availableModes = {\n\t code: {\n\t 'text': 'Code',\n\t 'title': 'Switch to code highlighter',\n\t 'click': function () {\n\t onSwitch('code')\n\t }\n\t },\n\t form: {\n\t 'text': 'Form',\n\t 'title': 'Switch to form editor',\n\t 'click': function () {\n\t onSwitch('form');\n\t }\n\t },\n\t text: {\n\t 'text': 'Text',\n\t 'title': 'Switch to plain text editor',\n\t 'click': function () {\n\t onSwitch('text');\n\t }\n\t },\n\t tree: {\n\t 'text': 'Tree',\n\t 'title': 'Switch to tree editor',\n\t 'click': function () {\n\t onSwitch('tree');\n\t }\n\t },\n\t view: {\n\t 'text': 'View',\n\t 'title': 'Switch to tree view',\n\t 'click': function () {\n\t onSwitch('view');\n\t }\n\t }\n\t };\n\n\t // list the selected modes\n\t var items = [];\n\t for (var i = 0; i < modes.length; i++) {\n\t var mode = modes[i];\n\t var item = availableModes[mode];\n\t if (!item) {\n\t throw new Error('Unknown mode \"' + mode + '\"');\n\t }\n\n\t item.className = 'jsoneditor-type-modes' + ((current == mode) ? ' jsoneditor-selected' : '');\n\t items.push(item);\n\t }\n\n\t // retrieve the title of current mode\n\t var currentMode = availableModes[current];\n\t if (!currentMode) {\n\t throw new Error('Unknown mode \"' + current + '\"');\n\t }\n\t var currentTitle = currentMode.text;\n\n\t // create the html element\n\t var box = document.createElement('button');\n\t box.type = 'button';\n\t box.className = 'jsoneditor-modes jsoneditor-separator';\n\t box.innerHTML = currentTitle + ' ▾';\n\t box.title = 'Switch editor mode';\n\t box.onclick = function () {\n\t var menu = new ContextMenu(items);\n\t menu.show(box);\n\t };\n\n\t var frame = document.createElement('div');\n\t frame.className = 'jsoneditor-modes';\n\t frame.style.position = 'relative';\n\t frame.appendChild(box);\n\n\t container.appendChild(frame);\n\n\t this.dom = {\n\t container: container,\n\t box: box,\n\t frame: frame\n\t };\n\t}\n\n\t/**\n\t * Set focus to switcher\n\t */\n\tModeSwitcher.prototype.focus = function () {\n\t this.dom.box.focus();\n\t};\n\n\t/**\n\t * Destroy the ModeSwitcher, remove from DOM\n\t */\n\tModeSwitcher.prototype.destroy = function () {\n\t if (this.dom && this.dom.frame && this.dom.frame.parentNode) {\n\t this.dom.frame.parentNode.removeChild(this.dom.frame);\n\t }\n\t this.dom = null;\n\t};\n\n\tmodule.exports = ModeSwitcher;\n\n\n/***/ },\n/* 65 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\n\tfunction completely(config) {\n\t config = config || {};\n\t config.confirmKeys = config.confirmKeys || [39, 35, 9] // right, end, tab \n\n\t var fontSize = '';\n\t var fontFamily = ''; \n\n\t var wrapper = document.createElement('div');\n\t wrapper.style.position = 'relative';\n\t wrapper.style.outline = '0';\n\t wrapper.style.border = '0';\n\t wrapper.style.margin = '0';\n\t wrapper.style.padding = '0';\n\n\t var dropDown = document.createElement('div');\n\t dropDown.className = 'autocomplete dropdown';\n\t dropDown.style.position = 'absolute';\n\t dropDown.style.visibility = 'hidden';\n\n\t var spacer;\n\t var leftSide; // <-- it will contain the leftSide part of the textfield (the bit that was already autocompleted)\n\t var createDropDownController = function (elem, rs) {\n\t var rows = [];\n\t var ix = 0;\n\t var oldIndex = -1;\n\n\t var onMouseOver = function () { this.style.outline = '1px solid #ddd'; }\n\t var onMouseOut = function () { this.style.outline = '0'; }\n\t var onMouseDown = function () { p.hide(); p.onmouseselection(this.__hint, p.rs); }\n\n\t var p = {\n\t rs: rs,\n\t hide: function () {\n\t elem.style.visibility = 'hidden';\n\t //rs.hideDropDown();\n\t },\n\t refresh: function (token, array) {\n\t elem.style.visibility = 'hidden';\n\t ix = 0;\n\t elem.innerHTML = '';\n\t var vph = (window.innerHeight || document.documentElement.clientHeight);\n\t var rect = elem.parentNode.getBoundingClientRect();\n\t var distanceToTop = rect.top - 6; // heuristic give 6px \n\t var distanceToBottom = vph - rect.bottom - 6; // distance from the browser border.\n\n\t rows = [];\n\t for (var i = 0; i < array.length; i++) {\n\t if (array[i].indexOf(token) !== 0) { continue; }\n\t var divRow = document.createElement('div');\n\t divRow.className = 'item';\n\t //divRow.style.color = config.color;\n\t divRow.onmouseover = onMouseOver;\n\t divRow.onmouseout = onMouseOut;\n\t divRow.onmousedown = onMouseDown;\n\t divRow.__hint = array[i];\n\t divRow.innerHTML = token + '<b>' + array[i].substring(token.length) + '</b>';\n\t rows.push(divRow);\n\t elem.appendChild(divRow);\n\t }\n\t if (rows.length === 0) {\n\t return; // nothing to show.\n\t }\n\t if (rows.length === 1 && token === rows[0].__hint) {\n\t return; // do not show the dropDown if it has only one element which matches what we have just displayed.\n\t }\n\n\t if (rows.length < 2) return;\n\t p.highlight(0);\n\n\t if (distanceToTop > distanceToBottom * 3) { // Heuristic (only when the distance to the to top is 4 times more than distance to the bottom\n\t elem.style.maxHeight = distanceToTop + 'px'; // we display the dropDown on the top of the input text\n\t elem.style.top = '';\n\t elem.style.bottom = '100%';\n\t } else {\n\t elem.style.top = '100%';\n\t elem.style.bottom = '';\n\t elem.style.maxHeight = distanceToBottom + 'px';\n\t }\n\t elem.style.visibility = 'visible';\n\t },\n\t highlight: function (index) {\n\t if (oldIndex != -1 && rows[oldIndex]) {\n\t rows[oldIndex].className = \"item\";\n\t }\n\t rows[index].className = \"item hover\"; \n\t oldIndex = index;\n\t },\n\t move: function (step) { // moves the selection either up or down (unless it's not possible) step is either +1 or -1.\n\t if (elem.style.visibility === 'hidden') return ''; // nothing to move if there is no dropDown. (this happens if the user hits escape and then down or up)\n\t if (ix + step === -1 || ix + step === rows.length) return rows[ix].__hint; // NO CIRCULAR SCROLLING. \n\t ix += step;\n\t p.highlight(ix);\n\t return rows[ix].__hint;//txtShadow.value = uRows[uIndex].__hint ;\n\t },\n\t onmouseselection: function () { } // it will be overwritten. \n\t };\n\t return p;\n\t }\n\n\t function setEndOfContenteditable(contentEditableElement) {\n\t var range, selection;\n\t if (document.createRange)//Firefox, Chrome, Opera, Safari, IE 9+\n\t {\n\t range = document.createRange();//Create a range (a range is a like the selection but invisible)\n\t range.selectNodeContents(contentEditableElement);//Select the entire contents of the element with the range\n\t range.collapse(false);//collapse the range to the end point. false means collapse to end rather than the start\n\t selection = window.getSelection();//get the selection object (allows you to change selection)\n\t selection.removeAllRanges();//remove any selections already made\n\t selection.addRange(range);//make the range you have just created the visible selection\n\t }\n\t else if (document.selection)//IE 8 and lower\n\t {\n\t range = document.body.createTextRange();//Create a range (a range is a like the selection but invisible)\n\t range.moveToElementText(contentEditableElement);//Select the entire contents of the element with the range\n\t range.collapse(false);//collapse the range to the end point. false means collapse to end rather than the start\n\t range.select();//Select the range (make it the visible selection\n\t }\n\t }\n\n\t function calculateWidthForText(text) {\n\t if (spacer === undefined) { // on first call only.\n\t spacer = document.createElement('span');\n\t spacer.style.visibility = 'hidden';\n\t spacer.style.position = 'fixed';\n\t spacer.style.outline = '0';\n\t spacer.style.margin = '0';\n\t spacer.style.padding = '0';\n\t spacer.style.border = '0';\n\t spacer.style.left = '0';\n\t spacer.style.whiteSpace = 'pre';\n\t spacer.style.fontSize = fontSize;\n\t spacer.style.fontFamily = fontFamily;\n\t spacer.style.fontWeight = 'normal';\n\t document.body.appendChild(spacer);\n\t }\n\n\t // Used to encode an HTML string into a plain text.\n\t // taken from http://stackoverflow.com/questions/1219860/javascript-jquery-html-encoding\n\t spacer.innerHTML = String(text).replace(/&/g, '&')\n\t .replace(/\"/g, '"')\n\t .replace(/'/g, ''')\n\t .replace(/</g, '<')\n\t .replace(/>/g, '>');\n\t return spacer.getBoundingClientRect().right;\n\t }\n\n\t var rs = {\n\t onArrowDown: function () { }, // defaults to no action.\n\t onArrowUp: function () { }, // defaults to no action.\n\t onEnter: function () { }, // defaults to no action.\n\t onTab: function () { }, // defaults to no action.\n\t startFrom: 0,\n\t options: [],\n\t element: null,\n\t elementHint: null,\n\t elementStyle: null,\n\t wrapper: wrapper, // Only to allow easy access to the HTML elements to the final user (possibly for minor customizations)\n\t show: function (element, startPos, options) {\n\t this.startFrom = startPos;\n\t this.wrapper.remove();\n\t if (this.elementHint) {\n\t this.elementHint.remove();\n\t this.elementHint = null;\n\t }\n\t \n\t if (fontSize == '') {\n\t fontSize = window.getComputedStyle(element).getPropertyValue('font-size');\n\t }\n\t if (fontFamily == '') {\n\t fontFamily = window.getComputedStyle(element).getPropertyValue('font-family');\n\t }\n\t \n\t var w = element.getBoundingClientRect().right - element.getBoundingClientRect().left;\n\t dropDown.style.marginLeft = '0';\n\t dropDown.style.marginTop = element.getBoundingClientRect().height + 'px';\n\t this.options = options;\n\n\t if (this.element != element) {\n\t this.element = element;\n\t this.elementStyle = {\n\t zIndex: this.element.style.zIndex,\n\t position: this.element.style.position,\n\t backgroundColor: this.element.style.backgroundColor,\n\t borderColor: this.element.style.borderColor\n\t }\n\t }\n\n\t this.element.style.zIndex = 3;\n\t this.element.style.position = 'relative';\n\t this.element.style.backgroundColor = 'transparent';\n\t this.element.style.borderColor = 'transparent';\n\n\t this.elementHint = element.cloneNode();\n\t this.elementHint.className = 'autocomplete hint';\n\t this.elementHint.style.zIndex = 2;\n\t this.elementHint.style.position = 'absolute';\n\t this.elementHint.onfocus = function () { this.element.focus(); }.bind(this);\n\n\n\n\t if (this.element.addEventListener) {\n\t this.element.removeEventListener(\"keydown\", keyDownHandler);\n\t this.element.addEventListener(\"keydown\", keyDownHandler, false);\n\t this.element.removeEventListener(\"blur\", onBlurHandler);\n\t this.element.addEventListener(\"blur\", onBlurHandler, false); \n\t } \n\n\t wrapper.appendChild(this.elementHint);\n\t wrapper.appendChild(dropDown);\n\t element.parentElement.appendChild(wrapper);\n\n\n\t this.repaint(element);\n\t },\n\t setText: function (text) {\n\t this.element.innerText = text;\n\t },\n\t getText: function () {\n\t return this.element.innerText;\n\t },\n\t hideDropDown: function () {\n\t this.wrapper.remove();\n\t if (this.elementHint) {\n\t this.elementHint.remove();\n\t this.elementHint = null;\n\t dropDownController.hide();\n\t this.element.style.zIndex = this.elementStyle.zIndex;\n\t this.element.style.position = this.elementStyle.position;\n\t this.element.style.backgroundColor = this.elementStyle.backgroundColor;\n\t this.element.style.borderColor = this.elementStyle.borderColor;\n\t }\n\t \n\t },\n\t repaint: function (element) {\n\t var text = element.innerText;\n\t text = text.replace('\\n', '');\n\n\t var startFrom = this.startFrom;\n\t var options = this.options;\n\t var optionsLength = this.options.length;\n\n\t // breaking text in leftSide and token.\n\t \n\t var token = text.substring(this.startFrom);\n\t leftSide = text.substring(0, this.startFrom);\n\t \n\t for (var i = 0; i < optionsLength; i++) {\n\t var opt = this.options[i];\n\t if (opt.indexOf(token) === 0) { // <-- how about upperCase vs. lowercase\n\t this.elementHint.innerText = leftSide + opt;\n\t break;\n\t }\n\t }\n\t // moving the dropDown and refreshing it.\n\t dropDown.style.left = calculateWidthForText(leftSide) + 'px';\n\t dropDownController.refresh(token, this.options);\n\t this.elementHint.style.width = calculateWidthForText(this.elementHint.innerText) + 10 + 'px'\n\t var wasDropDownHidden = (dropDown.style.visibility == 'hidden');\n\t if (!wasDropDownHidden)\n\t this.elementHint.style.width = calculateWidthForText(this.elementHint.innerText) + dropDown.clientWidth + 'px';\n\t }\n\t };\n\n\t var dropDownController = createDropDownController(dropDown, rs);\n\n\t var keyDownHandler = function (e) {\n\t //console.log(\"Keydown:\" + e.keyCode);\n\t e = e || window.event;\n\t var keyCode = e.keyCode;\n\n\t if (this.elementHint == null) return;\n\n\t if (keyCode == 33) { return; } // page up (do nothing)\n\t if (keyCode == 34) { return; } // page down (do nothing);\n\n\t if (keyCode == 27) { //escape\n\t rs.hideDropDown();\n\t rs.element.focus();\n\t e.preventDefault();\n\t e.stopPropagation();\n\t return;\n\t }\n\n\t if (config.confirmKeys.indexOf(keyCode) >= 0) { // (autocomplete triggered)\n\t if (keyCode == 9) { \n\t if (this.elementHint.innerText.length == 0) {\n\t rs.onTab(); \n\t }\n\t }\n\t if (this.elementHint.innerText.length > 0) { // if there is a hint \n\t if (this.element.innerText != this.elementHint.innerText) {\n\t this.element.innerText = this.elementHint.innerText;\n\t rs.hideDropDown();\n\t setEndOfContenteditable(this.element);\n\t if (keyCode == 9) { \n\t rs.element.focus();\n\t e.preventDefault();\n\t e.stopPropagation();\n\t }\n\t } \n\t }\n\t return;\n\t }\n\n\t if (keyCode == 13) { // enter (autocomplete triggered)\n\t if (this.elementHint.innerText.length == 0) { // if there is a hint\n\t rs.onEnter();\n\t } else {\n\t var wasDropDownHidden = (dropDown.style.visibility == 'hidden');\n\t dropDownController.hide();\n\n\t if (wasDropDownHidden) {\n\t rs.hideDropDown();\n\t rs.element.focus();\n\t rs.onEnter();\n\t return;\n\t }\n\n\t this.element.innerText = this.elementHint.innerText;\n\t rs.hideDropDown();\n\t setEndOfContenteditable(this.element);\n\t e.preventDefault();\n\t e.stopPropagation();\n\t }\n\t return;\n\t }\n\n\t if (keyCode == 40) { // down\n\t var m = dropDownController.move(+1);\n\t if (m == '') { rs.onArrowDown(); }\n\t this.elementHint.innerText = leftSide + m;\n\t e.preventDefault();\n\t e.stopPropagation();\n\t return;\n\t }\n\n\t if (keyCode == 38) { // up\n\t var m = dropDownController.move(-1);\n\t if (m == '') { rs.onArrowUp(); }\n\t this.elementHint.innerText = leftSide + m;\n\t e.preventDefault();\n\t e.stopPropagation();\n\t return;\n\t }\n\n\t }.bind(rs);\n\n\t var onBlurHandler = function (e) {\n\t rs.hideDropDown();\n\t //console.log(\"Lost focus.\");\n\t }.bind(rs);\n\n\t dropDownController.onmouseselection = function (text, rs) {\n\t rs.element.innerText = rs.elementHint.innerText = leftSide + text; \n\t rs.hideDropDown(); \n\t window.setTimeout(function () {\n\t rs.element.focus();\n\t setEndOfContenteditable(rs.element); \n\t }, 1); \n\t };\n\n\t return rs;\n\t}\n\n\tmodule.exports = completely;\n\n/***/ },\n/* 66 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar ace = __webpack_require__(67);\n\tvar ModeSwitcher = __webpack_require__(64);\n\tvar util = __webpack_require__(57);\n\n\t// create a mixin with the functions for text mode\n\tvar textmode = {};\n\n\tvar MAX_ERRORS = 3; // maximum number of displayed errors at the bottom\n\n\tvar DEFAULT_THEME = 'ace/theme/jsoneditor';\n\n\t/**\n\t * Create a text editor\n\t * @param {Element} container\n\t * @param {Object} [options] Object with options. available options:\n\t * {String} mode Available values:\n\t * \"text\" (default)\n\t * or \"code\".\n\t * {Number} indentation Number of indentation\n\t * spaces. 2 by default.\n\t * {function} onChange Callback method\n\t * triggered on change\n\t * {function} onModeChange Callback method\n\t * triggered after setMode\n\t * {function} onEditable Determine if textarea is readOnly\n\t * readOnly defaults true\n\t * {Object} ace A custom instance of\n\t * Ace editor.\n\t * {boolean} escapeUnicode If true, unicode\n\t * characters are escaped.\n\t * false by default.\n\t * @private\n\t */\n\ttextmode.create = function (container, options) {\n\t // read options\n\t options = options || {};\n\t this.options = options;\n\n\t // indentation\n\t if (options.indentation) {\n\t this.indentation = Number(options.indentation);\n\t }\n\t else {\n\t this.indentation = 2; // number of spaces\n\t }\n\n\t // grab ace from options if provided\n\t var _ace = options.ace ? options.ace : ace;\n\t // TODO: make the option options.ace deprecated, it's not needed anymore (see #309)\n\n\t // determine mode\n\t this.mode = (options.mode == 'code') ? 'code' : 'text';\n\t if (this.mode == 'code') {\n\t // verify whether Ace editor is available and supported\n\t if (typeof _ace === 'undefined') {\n\t this.mode = 'text';\n\t console.warn('Failed to load Ace editor, falling back to plain text mode. Please use a JSONEditor bundle including Ace, or pass Ace as via the configuration option `ace`.');\n\t }\n\t }\n\n\t // determine theme\n\t this.theme = options.theme || DEFAULT_THEME;\n\t if (this.theme === DEFAULT_THEME && _ace) {\n\t try {\n\t __webpack_require__(74);\n\t }\n\t catch (err) {\n\t console.error(err);\n\t }\n\t }\n\n\t var me = this;\n\t this.container = container;\n\t this.dom = {};\n\t this.aceEditor = undefined; // ace code editor\n\t this.textarea = undefined; // plain text editor (fallback when Ace is not available)\n\t this.validateSchema = null;\n\n\t // create a debounced validate function\n\t this._debouncedValidate = util.debounce(this.validate.bind(this), this.DEBOUNCE_INTERVAL);\n\n\t this.width = container.clientWidth;\n\t this.height = container.clientHeight;\n\n\t this.frame = document.createElement('div');\n\t this.frame.className = 'jsoneditor jsoneditor-mode-' + this.options.mode;\n\t this.frame.onclick = function (event) {\n\t // prevent default submit action when the editor is located inside a form\n\t event.preventDefault();\n\t };\n\t this.frame.onkeydown = function (event) {\n\t me._onKeyDown(event);\n\t };\n\n\t // create menu\n\t this.menu = document.createElement('div');\n\t this.menu.className = 'jsoneditor-menu';\n\t this.frame.appendChild(this.menu);\n\n\t // create format button\n\t var buttonFormat = document.createElement('button');\n\t buttonFormat.type = 'button';\n\t buttonFormat.className = 'jsoneditor-format';\n\t buttonFormat.title = 'Format JSON data, with proper indentation and line feeds (Ctrl+\\\\)';\n\t this.menu.appendChild(buttonFormat);\n\t buttonFormat.onclick = function () {\n\t try {\n\t me.format();\n\t me._onChange();\n\t }\n\t catch (err) {\n\t me._onError(err);\n\t }\n\t };\n\n\t // create compact button\n\t var buttonCompact = document.createElement('button');\n\t buttonCompact.type = 'button';\n\t buttonCompact.className = 'jsoneditor-compact';\n\t buttonCompact.title = 'Compact JSON data, remove all whitespaces (Ctrl+Shift+\\\\)';\n\t this.menu.appendChild(buttonCompact);\n\t buttonCompact.onclick = function () {\n\t try {\n\t me.compact();\n\t me._onChange();\n\t }\n\t catch (err) {\n\t me._onError(err);\n\t }\n\t };\n\n\t // create mode box\n\t if (this.options && this.options.modes && this.options.modes.length) {\n\t this.modeSwitcher = new ModeSwitcher(this.menu, this.options.modes, this.options.mode, function onSwitch(mode) {\n\t // switch mode and restore focus\n\t me.setMode(mode);\n\t me.modeSwitcher.focus();\n\t });\n\t }\n\n\t var emptyNode = {};\n\t var isReadOnly = (this.options.onEditable\n\t && typeof(this.options.onEditable === 'function')\n\t && !this.options.onEditable(emptyNode));\n\n\t this.content = document.createElement('div');\n\t this.content.className = 'jsoneditor-outer';\n\t this.frame.appendChild(this.content);\n\n\t this.container.appendChild(this.frame);\n\n\t if (this.mode == 'code') {\n\t this.editorDom = document.createElement('div');\n\t this.editorDom.style.height = '100%'; // TODO: move to css\n\t this.editorDom.style.width = '100%'; // TODO: move to css\n\t this.content.appendChild(this.editorDom);\n\n\t var aceEditor = _ace.edit(this.editorDom);\n\t aceEditor.$blockScrolling = Infinity;\n\t aceEditor.setTheme(this.theme);\n\t aceEditor.setOptions({ readOnly: isReadOnly });\n\t aceEditor.setShowPrintMargin(false);\n\t aceEditor.setFontSize(13);\n\t aceEditor.getSession().setMode('ace/mode/json');\n\t aceEditor.getSession().setTabSize(this.indentation);\n\t aceEditor.getSession().setUseSoftTabs(true);\n\t aceEditor.getSession().setUseWrapMode(true);\n\t aceEditor.commands.bindKey('Ctrl-L', null); // disable Ctrl+L (is used by the browser to select the address bar)\n\t aceEditor.commands.bindKey('Command-L', null); // disable Ctrl+L (is used by the browser to select the address bar)\n\t this.aceEditor = aceEditor;\n\n\t // TODO: deprecated since v5.0.0. Cleanup backward compatibility some day\n\t if (!this.hasOwnProperty('editor')) {\n\t Object.defineProperty(this, 'editor', {\n\t get: function () {\n\t console.warn('Property \"editor\" has been renamed to \"aceEditor\".');\n\t return me.aceEditor;\n\t },\n\t set: function (aceEditor) {\n\t console.warn('Property \"editor\" has been renamed to \"aceEditor\".');\n\t me.aceEditor = aceEditor;\n\t }\n\t });\n\t }\n\n\t var poweredBy = document.createElement('a');\n\t poweredBy.appendChild(document.createTextNode('powered by ace'));\n\t poweredBy.href = 'http://ace.ajax.org';\n\t poweredBy.target = '_blank';\n\t poweredBy.className = 'jsoneditor-poweredBy';\n\t poweredBy.onclick = function () {\n\t // TODO: this anchor falls below the margin of the content,\n\t // therefore the normal a.href does not work. We use a click event\n\t // for now, but this should be fixed.\n\t window.open(poweredBy.href, poweredBy.target);\n\t };\n\t this.menu.appendChild(poweredBy);\n\n\t // register onchange event\n\t aceEditor.on('change', this._onChange.bind(this));\n\t }\n\t else {\n\t // load a plain text textarea\n\t var textarea = document.createElement('textarea');\n\t textarea.className = 'jsoneditor-text';\n\t textarea.spellcheck = false;\n\t this.content.appendChild(textarea);\n\t this.textarea = textarea;\n\t this.textarea.readOnly = isReadOnly;\n\n\t // register onchange event\n\t if (this.textarea.oninput === null) {\n\t this.textarea.oninput = this._onChange.bind(this);\n\t }\n\t else {\n\t // oninput is undefined. For IE8-\n\t this.textarea.onchange = this._onChange.bind(this);\n\t }\n\t }\n\n\t this.setSchema(this.options.schema, this.options.schemaRefs);\n\t};\n\n\t/**\n\t * Handle a change:\n\t * - Validate JSON schema\n\t * - Send a callback to the onChange listener if provided\n\t * @private\n\t */\n\ttextmode._onChange = function () {\n\t // validate JSON schema (if configured)\n\t this._debouncedValidate();\n\n\t // trigger the onChange callback\n\t if (this.options.onChange) {\n\t try {\n\t this.options.onChange();\n\t }\n\t catch (err) {\n\t console.error('Error in onChange callback: ', err);\n\t }\n\t }\n\t};\n\n\t/**\n\t * Event handler for keydown. Handles shortcut keys\n\t * @param {Event} event\n\t * @private\n\t */\n\ttextmode._onKeyDown = function (event) {\n\t var keynum = event.which || event.keyCode;\n\t var handled = false;\n\n\t if (keynum == 220 && event.ctrlKey) {\n\t if (event.shiftKey) { // Ctrl+Shift+\\\n\t this.compact();\n\t this._onChange();\n\t }\n\t else { // Ctrl+\\\n\t this.format();\n\t this._onChange();\n\t }\n\t handled = true;\n\t }\n\n\t if (handled) {\n\t event.preventDefault();\n\t event.stopPropagation();\n\t }\n\t};\n\n\t/**\n\t * Destroy the editor. Clean up DOM, event listeners, and web workers.\n\t */\n\ttextmode.destroy = function () {\n\t // remove old ace editor\n\t if (this.aceEditor) {\n\t this.aceEditor.destroy();\n\t this.aceEditor = null;\n\t }\n\n\t if (this.frame && this.container && this.frame.parentNode == this.container) {\n\t this.container.removeChild(this.frame);\n\t }\n\n\t if (this.modeSwitcher) {\n\t this.modeSwitcher.destroy();\n\t this.modeSwitcher = null;\n\t }\n\n\t this.textarea = null;\n\t \n\t this._debouncedValidate = null;\n\t};\n\n\t/**\n\t * Compact the code in the formatter\n\t */\n\ttextmode.compact = function () {\n\t var json = this.get();\n\t var text = JSON.stringify(json);\n\t this.setText(text);\n\t};\n\n\t/**\n\t * Format the code in the formatter\n\t */\n\ttextmode.format = function () {\n\t var json = this.get();\n\t var text = JSON.stringify(json, null, this.indentation);\n\t this.setText(text);\n\t};\n\n\t/**\n\t * Set focus to the formatter\n\t */\n\ttextmode.focus = function () {\n\t if (this.textarea) {\n\t this.textarea.focus();\n\t }\n\t if (this.aceEditor) {\n\t this.aceEditor.focus();\n\t }\n\t};\n\n\t/**\n\t * Resize the formatter\n\t */\n\ttextmode.resize = function () {\n\t if (this.aceEditor) {\n\t var force = false;\n\t this.aceEditor.resize(force);\n\t }\n\t};\n\n\t/**\n\t * Set json data in the formatter\n\t * @param {Object} json\n\t */\n\ttextmode.set = function(json) {\n\t this.setText(JSON.stringify(json, null, this.indentation));\n\t};\n\n\t/**\n\t * Get json data from the formatter\n\t * @return {Object} json\n\t */\n\ttextmode.get = function() {\n\t var text = this.getText();\n\t var json;\n\n\t try {\n\t json = util.parse(text); // this can throw an error\n\t }\n\t catch (err) {\n\t // try to sanitize json, replace JavaScript notation with JSON notation\n\t text = util.sanitize(text);\n\n\t // try to parse again\n\t json = util.parse(text); // this can throw an error\n\t }\n\n\t return json;\n\t};\n\n\t/**\n\t * Get the text contents of the editor\n\t * @return {String} jsonText\n\t */\n\ttextmode.getText = function() {\n\t if (this.textarea) {\n\t return this.textarea.value;\n\t }\n\t if (this.aceEditor) {\n\t return this.aceEditor.getValue();\n\t }\n\t return '';\n\t};\n\n\t/**\n\t * Set the text contents of the editor\n\t * @param {String} jsonText\n\t */\n\ttextmode.setText = function(jsonText) {\n\t var text;\n\n\t if (this.options.escapeUnicode === true) {\n\t text = util.escapeUnicodeChars(jsonText);\n\t }\n\t else {\n\t text = jsonText;\n\t }\n\n\t if (this.textarea) {\n\t this.textarea.value = text;\n\t }\n\t if (this.aceEditor) {\n\t // prevent emitting onChange events while setting new text\n\t var originalOnChange = this.options.onChange;\n\t this.options.onChange = null;\n\n\t this.aceEditor.setValue(text, -1);\n\n\t this.options.onChange = originalOnChange;\n\t }\n\n\t // validate JSON schema\n\t this.validate();\n\t};\n\n\t/**\n\t * Validate current JSON object against the configured JSON schema\n\t * Throws an exception when no JSON schema is configured\n\t */\n\ttextmode.validate = function () {\n\t // clear all current errors\n\t if (this.dom.validationErrors) {\n\t this.dom.validationErrors.parentNode.removeChild(this.dom.validationErrors);\n\t this.dom.validationErrors = null;\n\n\t this.content.style.marginBottom = '';\n\t this.content.style.paddingBottom = '';\n\t }\n\n\t var doValidate = false;\n\t var errors = [];\n\t var json;\n\t try {\n\t json = this.get(); // this can fail when there is no valid json\n\t doValidate = true;\n\t }\n\t catch (err) {\n\t // no valid JSON, don't validate\n\t }\n\n\t // only validate the JSON when parsing the JSON succeeded\n\t if (doValidate && this.validateSchema) {\n\t var valid = this.validateSchema(json);\n\t if (!valid) {\n\t errors = this.validateSchema.errors.map(function (error) {\n\t return util.improveSchemaError(error);\n\t });\n\t }\n\t }\n\n\t if (errors.length > 0) {\n\t // limit the number of displayed errors\n\t var limit = errors.length > MAX_ERRORS;\n\t if (limit) {\n\t errors = errors.slice(0, MAX_ERRORS);\n\t var hidden = this.validateSchema.errors.length - MAX_ERRORS;\n\t errors.push('(' + hidden + ' more errors...)')\n\t }\n\n\t var validationErrors = document.createElement('div');\n\t validationErrors.innerHTML = '<table class=\"jsoneditor-text-errors\">' +\n\t '<tbody>' +\n\t errors.map(function (error) {\n\t var message;\n\t if (typeof error === 'string') {\n\t message = '<td colspan=\"2\"><pre>' + error + '</pre></td>';\n\t }\n\t else {\n\t message = '<td>' + error.dataPath + '</td>' +\n\t '<td>' + error.message + '</td>';\n\t }\n\n\t return '<tr><td><button class=\"jsoneditor-schema-error\"></button></td>' + message + '</tr>'\n\t }).join('') +\n\t '</tbody>' +\n\t '</table>';\n\n\t this.dom.validationErrors = validationErrors;\n\t this.frame.appendChild(validationErrors);\n\n\t var height = validationErrors.clientHeight;\n\t this.content.style.marginBottom = (-height) + 'px';\n\t this.content.style.paddingBottom = height + 'px';\n\t }\n\n\t // update the height of the ace editor\n\t if (this.aceEditor) {\n\t var force = false;\n\t this.aceEditor.resize(force);\n\t }\n\t};\n\n\t// define modes\n\tmodule.exports = [\n\t {\n\t mode: 'text',\n\t mixin: textmode,\n\t data: 'text',\n\t load: textmode.format\n\t },\n\t {\n\t mode: 'code',\n\t mixin: textmode,\n\t data: 'text',\n\t load: textmode.format\n\t }\n\t];\n\n\n/***/ },\n/* 67 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar ace\n\tif (window.ace) {\n\t // use the already loaded instance of Ace\n\t ace = window.ace\n\t}\n\telse {\n\t try {\n\t // load brace\n\t ace = __webpack_require__(68);\n\n\t // load required Ace plugins\n\t __webpack_require__(71);\n\t __webpack_require__(73);\n\t }\n\t catch (err) {\n\t // failed to load brace (can be minimalist bundle).\n\t // No worries, the editor will fall back to plain text if needed.\n\t }\n\t}\n\n\tmodule.exports = ace;\n\n\n/***/ },\n/* 68 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* ***** BEGIN LICENSE BLOCK *****\n\t * Distributed under the BSD license:\n\t *\n\t * Copyright (c) 2010, Ajax.org B.V.\n\t * All rights reserved.\n\t *\n\t * Redistribution and use in source and binary forms, with or without\n\t * modification, are permitted provided that the following conditions are met:\n\t * * Redistributions of source code must retain the above copyright\n\t * notice, this list of conditions and the following disclaimer.\n\t * * Redistributions in binary form must reproduce the above copyright\n\t * notice, this list of conditions and the following disclaimer in the\n\t * documentation and/or other materials provided with the distribution.\n\t * * Neither the name of Ajax.org B.V. nor the\n\t * names of its contributors may be used to endorse or promote products\n\t * derived from this software without specific prior written permission.\n\t *\n\t * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n\t * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n\t * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n\t * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY\n\t * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n\t * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n\t * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n\t * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n\t * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n\t * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t *\n\t * ***** END LICENSE BLOCK ***** */\n\n\t/**\n\t * Define a module along with a payload\n\t * @param module a name for the payload\n\t * @param payload a function to call with (acequire, exports, module) params\n\t */\n\n\t(function() {\n\n\tvar ACE_NAMESPACE = \"ace\";\n\n\tvar global = (function() { return this; })();\n\tif (!global && typeof window != \"undefined\") global = window; // strict mode\n\n\n\tif (!ACE_NAMESPACE && typeof acequirejs !== \"undefined\")\n\t return;\n\n\n\tvar define = function(module, deps, payload) {\n\t if (typeof module !== \"string\") {\n\t if (define.original)\n\t define.original.apply(this, arguments);\n\t else {\n\t console.error(\"dropping module because define wasn\\'t a string.\");\n\t console.trace();\n\t }\n\t return;\n\t }\n\t if (arguments.length == 2)\n\t payload = deps;\n\t if (!define.modules[module]) {\n\t define.payloads[module] = payload;\n\t define.modules[module] = null;\n\t }\n\t};\n\n\tdefine.modules = {};\n\tdefine.payloads = {};\n\n\t/**\n\t * Get at functionality define()ed using the function above\n\t */\n\tvar _acequire = function(parentId, module, callback) {\n\t if (typeof module === \"string\") {\n\t var payload = lookup(parentId, module);\n\t if (payload != undefined) {\n\t callback && callback();\n\t return payload;\n\t }\n\t } else if (Object.prototype.toString.call(module) === \"[object Array]\") {\n\t var params = [];\n\t for (var i = 0, l = module.length; i < l; ++i) {\n\t var dep = lookup(parentId, module[i]);\n\t if (dep == undefined && acequire.original)\n\t return;\n\t params.push(dep);\n\t }\n\t return callback && callback.apply(null, params) || true;\n\t }\n\t};\n\n\tvar acequire = function(module, callback) {\n\t var packagedModule = _acequire(\"\", module, callback);\n\t if (packagedModule == undefined && acequire.original)\n\t return acequire.original.apply(this, arguments);\n\t return packagedModule;\n\t};\n\n\tvar normalizeModule = function(parentId, moduleName) {\n\t // normalize plugin acequires\n\t if (moduleName.indexOf(\"!\") !== -1) {\n\t var chunks = moduleName.split(\"!\");\n\t return normalizeModule(parentId, chunks[0]) + \"!\" + normalizeModule(parentId, chunks[1]);\n\t }\n\t // normalize relative acequires\n\t if (moduleName.charAt(0) == \".\") {\n\t var base = parentId.split(\"/\").slice(0, -1).join(\"/\");\n\t moduleName = base + \"/\" + moduleName;\n\n\t while(moduleName.indexOf(\".\") !== -1 && previous != moduleName) {\n\t var previous = moduleName;\n\t moduleName = moduleName.replace(/\\/\\.\\//, \"/\").replace(/[^\\/]+\\/\\.\\.\\//, \"\");\n\t }\n\t }\n\t return moduleName;\n\t};\n\n\t/**\n\t * Internal function to lookup moduleNames and resolve them by calling the\n\t * definition function if needed.\n\t */\n\tvar lookup = function(parentId, moduleName) {\n\t moduleName = normalizeModule(parentId, moduleName);\n\n\t var module = define.modules[moduleName];\n\t if (!module) {\n\t module = define.payloads[moduleName];\n\t if (typeof module === 'function') {\n\t var exports = {};\n\t var mod = {\n\t id: moduleName,\n\t uri: '',\n\t exports: exports,\n\t packaged: true\n\t };\n\n\t var req = function(module, callback) {\n\t return _acequire(moduleName, module, callback);\n\t };\n\n\t var returnValue = module(req, exports, mod);\n\t exports = returnValue || mod.exports;\n\t define.modules[moduleName] = exports;\n\t delete define.payloads[moduleName];\n\t }\n\t module = define.modules[moduleName] = exports || module;\n\t }\n\t return module;\n\t};\n\n\tfunction exportAce(ns) {\n\t var root = global;\n\t if (ns) {\n\t if (!global[ns])\n\t global[ns] = {};\n\t root = global[ns];\n\t }\n\n\t if (!root.define || !root.define.packaged) {\n\t define.original = root.define;\n\t root.define = define;\n\t root.define.packaged = true;\n\t }\n\n\t if (!root.acequire || !root.acequire.packaged) {\n\t acequire.original = root.acequire;\n\t root.acequire = acequire;\n\t root.acequire.packaged = true;\n\t }\n\t}\n\n\texportAce(ACE_NAMESPACE);\n\n\t})();\n\n\tace.define(\"ace/lib/regexp\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\t var real = {\n\t exec: RegExp.prototype.exec,\n\t test: RegExp.prototype.test,\n\t match: String.prototype.match,\n\t replace: String.prototype.replace,\n\t split: String.prototype.split\n\t },\n\t compliantExecNpcg = real.exec.call(/()??/, \"\")[1] === undefined, // check `exec` handling of nonparticipating capturing groups\n\t compliantLastIndexIncrement = function () {\n\t var x = /^/g;\n\t real.test.call(x, \"\");\n\t return !x.lastIndex;\n\t }();\n\n\t if (compliantLastIndexIncrement && compliantExecNpcg)\n\t return;\n\t RegExp.prototype.exec = function (str) {\n\t var match = real.exec.apply(this, arguments),\n\t name, r2;\n\t if ( typeof(str) == 'string' && match) {\n\t if (!compliantExecNpcg && match.length > 1 && indexOf(match, \"\") > -1) {\n\t r2 = RegExp(this.source, real.replace.call(getNativeFlags(this), \"g\", \"\"));\n\t real.replace.call(str.slice(match.index), r2, function () {\n\t for (var i = 1; i < arguments.length - 2; i++) {\n\t if (arguments[i] === undefined)\n\t match[i] = undefined;\n\t }\n\t });\n\t }\n\t if (this._xregexp && this._xregexp.captureNames) {\n\t for (var i = 1; i < match.length; i++) {\n\t name = this._xregexp.captureNames[i - 1];\n\t if (name)\n\t match[name] = match[i];\n\t }\n\t }\n\t if (!compliantLastIndexIncrement && this.global && !match[0].length && (this.lastIndex > match.index))\n\t this.lastIndex--;\n\t }\n\t return match;\n\t };\n\t if (!compliantLastIndexIncrement) {\n\t RegExp.prototype.test = function (str) {\n\t var match = real.exec.call(this, str);\n\t if (match && this.global && !match[0].length && (this.lastIndex > match.index))\n\t this.lastIndex--;\n\t return !!match;\n\t };\n\t }\n\n\t function getNativeFlags (regex) {\n\t return (regex.global ? \"g\" : \"\") +\n\t (regex.ignoreCase ? \"i\" : \"\") +\n\t (regex.multiline ? \"m\" : \"\") +\n\t (regex.extended ? \"x\" : \"\") + // Proposed for ES4; included in AS3\n\t (regex.sticky ? \"y\" : \"\");\n\t }\n\n\t function indexOf (array, item, from) {\n\t if (Array.prototype.indexOf) // Use the native array method if available\n\t return array.indexOf(item, from);\n\t for (var i = from || 0; i < array.length; i++) {\n\t if (array[i] === item)\n\t return i;\n\t }\n\t return -1;\n\t }\n\n\t});\n\n\tace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\n\tfunction Empty() {}\n\n\tif (!Function.prototype.bind) {\n\t Function.prototype.bind = function bind(that) { // .length is 1\n\t var target = this;\n\t if (typeof target != \"function\") {\n\t throw new TypeError(\"Function.prototype.bind called on incompatible \" + target);\n\t }\n\t var args = slice.call(arguments, 1); // for normal call\n\t var bound = function () {\n\n\t if (this instanceof bound) {\n\n\t var result = target.apply(\n\t this,\n\t args.concat(slice.call(arguments))\n\t );\n\t if (Object(result) === result) {\n\t return result;\n\t }\n\t return this;\n\n\t } else {\n\t return target.apply(\n\t that,\n\t args.concat(slice.call(arguments))\n\t );\n\n\t }\n\n\t };\n\t if(target.prototype) {\n\t Empty.prototype = target.prototype;\n\t bound.prototype = new Empty();\n\t Empty.prototype = null;\n\t }\n\t return bound;\n\t };\n\t}\n\tvar call = Function.prototype.call;\n\tvar prototypeOfArray = Array.prototype;\n\tvar prototypeOfObject = Object.prototype;\n\tvar slice = prototypeOfArray.slice;\n\tvar _toString = call.bind(prototypeOfObject.toString);\n\tvar owns = call.bind(prototypeOfObject.hasOwnProperty);\n\tvar defineGetter;\n\tvar defineSetter;\n\tvar lookupGetter;\n\tvar lookupSetter;\n\tvar supportsAccessors;\n\tif ((supportsAccessors = owns(prototypeOfObject, \"__defineGetter__\"))) {\n\t defineGetter = call.bind(prototypeOfObject.__defineGetter__);\n\t defineSetter = call.bind(prototypeOfObject.__defineSetter__);\n\t lookupGetter = call.bind(prototypeOfObject.__lookupGetter__);\n\t lookupSetter = call.bind(prototypeOfObject.__lookupSetter__);\n\t}\n\tif ([1,2].splice(0).length != 2) {\n\t if(function() { // test IE < 9 to splice bug - see issue #138\n\t function makeArray(l) {\n\t var a = new Array(l+2);\n\t a[0] = a[1] = 0;\n\t return a;\n\t }\n\t var array = [], lengthBefore;\n\t \n\t array.splice.apply(array, makeArray(20));\n\t array.splice.apply(array, makeArray(26));\n\n\t lengthBefore = array.length; //46\n\t array.splice(5, 0, \"XXX\"); // add one element\n\n\t lengthBefore + 1 == array.length\n\n\t if (lengthBefore + 1 == array.length) {\n\t return true;// has right splice implementation without bugs\n\t }\n\t }()) {//IE 6/7\n\t var array_splice = Array.prototype.splice;\n\t Array.prototype.splice = function(start, deleteCount) {\n\t if (!arguments.length) {\n\t return [];\n\t } else {\n\t return array_splice.apply(this, [\n\t start === void 0 ? 0 : start,\n\t deleteCount === void 0 ? (this.length - start) : deleteCount\n\t ].concat(slice.call(arguments, 2)))\n\t }\n\t };\n\t } else {//IE8\n\t Array.prototype.splice = function(pos, removeCount){\n\t var length = this.length;\n\t if (pos > 0) {\n\t if (pos > length)\n\t pos = length;\n\t } else if (pos == void 0) {\n\t pos = 0;\n\t } else if (pos < 0) {\n\t pos = Math.max(length + pos, 0);\n\t }\n\n\t if (!(pos+removeCount < length))\n\t removeCount = length - pos;\n\n\t var removed = this.slice(pos, pos+removeCount);\n\t var insert = slice.call(arguments, 2);\n\t var add = insert.length; \n\t if (pos === length) {\n\t if (add) {\n\t this.push.apply(this, insert);\n\t }\n\t } else {\n\t var remove = Math.min(removeCount, length - pos);\n\t var tailOldPos = pos + remove;\n\t var tailNewPos = tailOldPos + add - remove;\n\t var tailCount = length - tailOldPos;\n\t var lengthAfterRemove = length - remove;\n\n\t if (tailNewPos < tailOldPos) { // case A\n\t for (var i = 0; i < tailCount; ++i) {\n\t this[tailNewPos+i] = this[tailOldPos+i];\n\t }\n\t } else if (tailNewPos > tailOldPos) { // case B\n\t for (i = tailCount; i--; ) {\n\t this[tailNewPos+i] = this[tailOldPos+i];\n\t }\n\t } // else, add == remove (nothing to do)\n\n\t if (add && pos === lengthAfterRemove) {\n\t this.length = lengthAfterRemove; // truncate array\n\t this.push.apply(this, insert);\n\t } else {\n\t this.length = lengthAfterRemove + add; // reserves space\n\t for (i = 0; i < add; ++i) {\n\t this[pos+i] = insert[i];\n\t }\n\t }\n\t }\n\t return removed;\n\t };\n\t }\n\t}\n\tif (!Array.isArray) {\n\t Array.isArray = function isArray(obj) {\n\t return _toString(obj) == \"[object Array]\";\n\t };\n\t}\n\tvar boxedString = Object(\"a\"),\n\t splitString = boxedString[0] != \"a\" || !(0 in boxedString);\n\n\tif (!Array.prototype.forEach) {\n\t Array.prototype.forEach = function forEach(fun /*, thisp*/) {\n\t var object = toObject(this),\n\t self = splitString && _toString(this) == \"[object String]\" ?\n\t this.split(\"\") :\n\t object,\n\t thisp = arguments[1],\n\t i = -1,\n\t length = self.length >>> 0;\n\t if (_toString(fun) != \"[object Function]\") {\n\t throw new TypeError(); // TODO message\n\t }\n\n\t while (++i < length) {\n\t if (i in self) {\n\t fun.call(thisp, self[i], i, object);\n\t }\n\t }\n\t };\n\t}\n\tif (!Array.prototype.map) {\n\t Array.prototype.map = function map(fun /*, thisp*/) {\n\t var object = toObject(this),\n\t self = splitString && _toString(this) == \"[object String]\" ?\n\t this.split(\"\") :\n\t object,\n\t length = self.length >>> 0,\n\t result = Array(length),\n\t thisp = arguments[1];\n\t if (_toString(fun) != \"[object Function]\") {\n\t throw new TypeError(fun + \" is not a function\");\n\t }\n\n\t for (var i = 0; i < length; i++) {\n\t if (i in self)\n\t result[i] = fun.call(thisp, self[i], i, object);\n\t }\n\t return result;\n\t };\n\t}\n\tif (!Array.prototype.filter) {\n\t Array.prototype.filter = function filter(fun /*, thisp */) {\n\t var object = toObject(this),\n\t self = splitString && _toString(this) == \"[object String]\" ?\n\t this.split(\"\") :\n\t object,\n\t length = self.length >>> 0,\n\t result = [],\n\t value,\n\t thisp = arguments[1];\n\t if (_toString(fun) != \"[object Function]\") {\n\t throw new TypeError(fun + \" is not a function\");\n\t }\n\n\t for (var i = 0; i < length; i++) {\n\t if (i in self) {\n\t value = self[i];\n\t if (fun.call(thisp, value, i, object)) {\n\t result.push(value);\n\t }\n\t }\n\t }\n\t return result;\n\t };\n\t}\n\tif (!Array.prototype.every) {\n\t Array.prototype.every = function every(fun /*, thisp */) {\n\t var object = toObject(this),\n\t self = splitString && _toString(this) == \"[object String]\" ?\n\t this.split(\"\") :\n\t object,\n\t length = self.length >>> 0,\n\t thisp = arguments[1];\n\t if (_toString(fun) != \"[object Function]\") {\n\t throw new TypeError(fun + \" is not a function\");\n\t }\n\n\t for (var i = 0; i < length; i++) {\n\t if (i in self && !fun.call(thisp, self[i], i, object)) {\n\t return false;\n\t }\n\t }\n\t return true;\n\t };\n\t}\n\tif (!Array.prototype.some) {\n\t Array.prototype.some = function some(fun /*, thisp */) {\n\t var object = toObject(this),\n\t self = splitString && _toString(this) == \"[object String]\" ?\n\t this.split(\"\") :\n\t object,\n\t length = self.length >>> 0,\n\t thisp = arguments[1];\n\t if (_toString(fun) != \"[object Function]\") {\n\t throw new TypeError(fun + \" is not a function\");\n\t }\n\n\t for (var i = 0; i < length; i++) {\n\t if (i in self && fun.call(thisp, self[i], i, object)) {\n\t return true;\n\t }\n\t }\n\t return false;\n\t };\n\t}\n\tif (!Array.prototype.reduce) {\n\t Array.prototype.reduce = function reduce(fun /*, initial*/) {\n\t var object = toObject(this),\n\t self = splitString && _toString(this) == \"[object String]\" ?\n\t this.split(\"\") :\n\t object,\n\t length = self.length >>> 0;\n\t if (_toString(fun) != \"[object Function]\") {\n\t throw new TypeError(fun + \" is not a function\");\n\t }\n\t if (!length && arguments.length == 1) {\n\t throw new TypeError(\"reduce of empty array with no initial value\");\n\t }\n\n\t var i = 0;\n\t var result;\n\t if (arguments.length >= 2) {\n\t result = arguments[1];\n\t } else {\n\t do {\n\t if (i in self) {\n\t result = self[i++];\n\t break;\n\t }\n\t if (++i >= length) {\n\t throw new TypeError(\"reduce of empty array with no initial value\");\n\t }\n\t } while (true);\n\t }\n\n\t for (; i < length; i++) {\n\t if (i in self) {\n\t result = fun.call(void 0, result, self[i], i, object);\n\t }\n\t }\n\n\t return result;\n\t };\n\t}\n\tif (!Array.prototype.reduceRight) {\n\t Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) {\n\t var object = toObject(this),\n\t self = splitString && _toString(this) == \"[object String]\" ?\n\t this.split(\"\") :\n\t object,\n\t length = self.length >>> 0;\n\t if (_toString(fun) != \"[object Function]\") {\n\t throw new TypeError(fun + \" is not a function\");\n\t }\n\t if (!length && arguments.length == 1) {\n\t throw new TypeError(\"reduceRight of empty array with no initial value\");\n\t }\n\n\t var result, i = length - 1;\n\t if (arguments.length >= 2) {\n\t result = arguments[1];\n\t } else {\n\t do {\n\t if (i in self) {\n\t result = self[i--];\n\t break;\n\t }\n\t if (--i < 0) {\n\t throw new TypeError(\"reduceRight of empty array with no initial value\");\n\t }\n\t } while (true);\n\t }\n\n\t do {\n\t if (i in this) {\n\t result = fun.call(void 0, result, self[i], i, object);\n\t }\n\t } while (i--);\n\n\t return result;\n\t };\n\t}\n\tif (!Array.prototype.indexOf || ([0, 1].indexOf(1, 2) != -1)) {\n\t Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) {\n\t var self = splitString && _toString(this) == \"[object String]\" ?\n\t this.split(\"\") :\n\t toObject(this),\n\t length = self.length >>> 0;\n\n\t if (!length) {\n\t return -1;\n\t }\n\n\t var i = 0;\n\t if (arguments.length > 1) {\n\t i = toInteger(arguments[1]);\n\t }\n\t i = i >= 0 ? i : Math.max(0, length + i);\n\t for (; i < length; i++) {\n\t if (i in self && self[i] === sought) {\n\t return i;\n\t }\n\t }\n\t return -1;\n\t };\n\t}\n\tif (!Array.prototype.lastIndexOf || ([0, 1].lastIndexOf(0, -3) != -1)) {\n\t Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) {\n\t var self = splitString && _toString(this) == \"[object String]\" ?\n\t this.split(\"\") :\n\t toObject(this),\n\t length = self.length >>> 0;\n\n\t if (!length) {\n\t return -1;\n\t }\n\t var i = length - 1;\n\t if (arguments.length > 1) {\n\t i = Math.min(i, toInteger(arguments[1]));\n\t }\n\t i = i >= 0 ? i : length - Math.abs(i);\n\t for (; i >= 0; i--) {\n\t if (i in self && sought === self[i]) {\n\t return i;\n\t }\n\t }\n\t return -1;\n\t };\n\t}\n\tif (!Object.getPrototypeOf) {\n\t Object.getPrototypeOf = function getPrototypeOf(object) {\n\t return object.__proto__ || (\n\t object.constructor ?\n\t object.constructor.prototype :\n\t prototypeOfObject\n\t );\n\t };\n\t}\n\tif (!Object.getOwnPropertyDescriptor) {\n\t var ERR_NON_OBJECT = \"Object.getOwnPropertyDescriptor called on a \" +\n\t \"non-object: \";\n\t Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) {\n\t if ((typeof object != \"object\" && typeof object != \"function\") || object === null)\n\t throw new TypeError(ERR_NON_OBJECT + object);\n\t if (!owns(object, property))\n\t return;\n\n\t var descriptor, getter, setter;\n\t descriptor = { enumerable: true, configurable: true };\n\t if (supportsAccessors) {\n\t var prototype = object.__proto__;\n\t object.__proto__ = prototypeOfObject;\n\n\t var getter = lookupGetter(object, property);\n\t var setter = lookupSetter(object, property);\n\t object.__proto__ = prototype;\n\n\t if (getter || setter) {\n\t if (getter) descriptor.get = getter;\n\t if (setter) descriptor.set = setter;\n\t return descriptor;\n\t }\n\t }\n\t descriptor.value = object[property];\n\t return descriptor;\n\t };\n\t}\n\tif (!Object.getOwnPropertyNames) {\n\t Object.getOwnPropertyNames = function getOwnPropertyNames(object) {\n\t return Object.keys(object);\n\t };\n\t}\n\tif (!Object.create) {\n\t var createEmpty;\n\t if (Object.prototype.__proto__ === null) {\n\t createEmpty = function () {\n\t return { \"__proto__\": null };\n\t };\n\t } else {\n\t createEmpty = function () {\n\t var empty = {};\n\t for (var i in empty)\n\t empty[i] = null;\n\t empty.constructor =\n\t empty.hasOwnProperty =\n\t empty.propertyIsEnumerable =\n\t empty.isPrototypeOf =\n\t empty.toLocaleString =\n\t empty.toString =\n\t empty.valueOf =\n\t empty.__proto__ = null;\n\t return empty;\n\t }\n\t }\n\n\t Object.create = function create(prototype, properties) {\n\t var object;\n\t if (prototype === null) {\n\t object = createEmpty();\n\t } else {\n\t if (typeof prototype != \"object\")\n\t throw new TypeError(\"typeof prototype[\"+(typeof prototype)+\"] != 'object'\");\n\t var Type = function () {};\n\t Type.prototype = prototype;\n\t object = new Type();\n\t object.__proto__ = prototype;\n\t }\n\t if (properties !== void 0)\n\t Object.defineProperties(object, properties);\n\t return object;\n\t };\n\t}\n\n\tfunction doesDefinePropertyWork(object) {\n\t try {\n\t Object.defineProperty(object, \"sentinel\", {});\n\t return \"sentinel\" in object;\n\t } catch (exception) {\n\t }\n\t}\n\tif (Object.defineProperty) {\n\t var definePropertyWorksOnObject = doesDefinePropertyWork({});\n\t var definePropertyWorksOnDom = typeof document == \"undefined\" ||\n\t doesDefinePropertyWork(document.createElement(\"div\"));\n\t if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) {\n\t var definePropertyFallback = Object.defineProperty;\n\t }\n\t}\n\n\tif (!Object.defineProperty || definePropertyFallback) {\n\t var ERR_NON_OBJECT_DESCRIPTOR = \"Property description must be an object: \";\n\t var ERR_NON_OBJECT_TARGET = \"Object.defineProperty called on non-object: \"\n\t var ERR_ACCESSORS_NOT_SUPPORTED = \"getters & setters can not be defined \" +\n\t \"on this javascript engine\";\n\n\t Object.defineProperty = function defineProperty(object, property, descriptor) {\n\t if ((typeof object != \"object\" && typeof object != \"function\") || object === null)\n\t throw new TypeError(ERR_NON_OBJECT_TARGET + object);\n\t if ((typeof descriptor != \"object\" && typeof descriptor != \"function\") || descriptor === null)\n\t throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor);\n\t if (definePropertyFallback) {\n\t try {\n\t return definePropertyFallback.call(Object, object, property, descriptor);\n\t } catch (exception) {\n\t }\n\t }\n\t if (owns(descriptor, \"value\")) {\n\n\t if (supportsAccessors && (lookupGetter(object, property) ||\n\t lookupSetter(object, property)))\n\t {\n\t var prototype = object.__proto__;\n\t object.__proto__ = prototypeOfObject;\n\t delete object[property];\n\t object[property] = descriptor.value;\n\t object.__proto__ = prototype;\n\t } else {\n\t object[property] = descriptor.value;\n\t }\n\t } else {\n\t if (!supportsAccessors)\n\t throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);\n\t if (owns(descriptor, \"get\"))\n\t defineGetter(object, property, descriptor.get);\n\t if (owns(descriptor, \"set\"))\n\t defineSetter(object, property, descriptor.set);\n\t }\n\n\t return object;\n\t };\n\t}\n\tif (!Object.defineProperties) {\n\t Object.defineProperties = function defineProperties(object, properties) {\n\t for (var property in properties) {\n\t if (owns(properties, property))\n\t Object.defineProperty(object, property, properties[property]);\n\t }\n\t return object;\n\t };\n\t}\n\tif (!Object.seal) {\n\t Object.seal = function seal(object) {\n\t return object;\n\t };\n\t}\n\tif (!Object.freeze) {\n\t Object.freeze = function freeze(object) {\n\t return object;\n\t };\n\t}\n\ttry {\n\t Object.freeze(function () {});\n\t} catch (exception) {\n\t Object.freeze = (function freeze(freezeObject) {\n\t return function freeze(object) {\n\t if (typeof object == \"function\") {\n\t return object;\n\t } else {\n\t return freezeObject(object);\n\t }\n\t };\n\t })(Object.freeze);\n\t}\n\tif (!Object.preventExtensions) {\n\t Object.preventExtensions = function preventExtensions(object) {\n\t return object;\n\t };\n\t}\n\tif (!Object.isSealed) {\n\t Object.isSealed = function isSealed(object) {\n\t return false;\n\t };\n\t}\n\tif (!Object.isFrozen) {\n\t Object.isFrozen = function isFrozen(object) {\n\t return false;\n\t };\n\t}\n\tif (!Object.isExtensible) {\n\t Object.isExtensible = function isExtensible(object) {\n\t if (Object(object) === object) {\n\t throw new TypeError(); // TODO message\n\t }\n\t var name = '';\n\t while (owns(object, name)) {\n\t name += '?';\n\t }\n\t object[name] = true;\n\t var returnValue = owns(object, name);\n\t delete object[name];\n\t return returnValue;\n\t };\n\t}\n\tif (!Object.keys) {\n\t var hasDontEnumBug = true,\n\t dontEnums = [\n\t \"toString\",\n\t \"toLocaleString\",\n\t \"valueOf\",\n\t \"hasOwnProperty\",\n\t \"isPrototypeOf\",\n\t \"propertyIsEnumerable\",\n\t \"constructor\"\n\t ],\n\t dontEnumsLength = dontEnums.length;\n\n\t for (var key in {\"toString\": null}) {\n\t hasDontEnumBug = false;\n\t }\n\n\t Object.keys = function keys(object) {\n\n\t if (\n\t (typeof object != \"object\" && typeof object != \"function\") ||\n\t object === null\n\t ) {\n\t throw new TypeError(\"Object.keys called on a non-object\");\n\t }\n\n\t var keys = [];\n\t for (var name in object) {\n\t if (owns(object, name)) {\n\t keys.push(name);\n\t }\n\t }\n\n\t if (hasDontEnumBug) {\n\t for (var i = 0, ii = dontEnumsLength; i < ii; i++) {\n\t var dontEnum = dontEnums[i];\n\t if (owns(object, dontEnum)) {\n\t keys.push(dontEnum);\n\t }\n\t }\n\t }\n\t return keys;\n\t };\n\n\t}\n\tif (!Date.now) {\n\t Date.now = function now() {\n\t return new Date().getTime();\n\t };\n\t}\n\tvar ws = \"\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\" +\n\t \"\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\" +\n\t \"\\u2029\\uFEFF\";\n\tif (!String.prototype.trim || ws.trim()) {\n\t ws = \"[\" + ws + \"]\";\n\t var trimBeginRegexp = new RegExp(\"^\" + ws + ws + \"*\"),\n\t trimEndRegexp = new RegExp(ws + ws + \"*$\");\n\t String.prototype.trim = function trim() {\n\t return String(this).replace(trimBeginRegexp, \"\").replace(trimEndRegexp, \"\");\n\t };\n\t}\n\n\tfunction toInteger(n) {\n\t n = +n;\n\t if (n !== n) { // isNaN\n\t n = 0;\n\t } else if (n !== 0 && n !== (1/0) && n !== -(1/0)) {\n\t n = (n > 0 || -1) * Math.floor(Math.abs(n));\n\t }\n\t return n;\n\t}\n\n\tfunction isPrimitive(input) {\n\t var type = typeof input;\n\t return (\n\t input === null ||\n\t type === \"undefined\" ||\n\t type === \"boolean\" ||\n\t type === \"number\" ||\n\t type === \"string\"\n\t );\n\t}\n\n\tfunction toPrimitive(input) {\n\t var val, valueOf, toString;\n\t if (isPrimitive(input)) {\n\t return input;\n\t }\n\t valueOf = input.valueOf;\n\t if (typeof valueOf === \"function\") {\n\t val = valueOf.call(input);\n\t if (isPrimitive(val)) {\n\t return val;\n\t }\n\t }\n\t toString = input.toString;\n\t if (typeof toString === \"function\") {\n\t val = toString.call(input);\n\t if (isPrimitive(val)) {\n\t return val;\n\t }\n\t }\n\t throw new TypeError();\n\t}\n\tvar toObject = function (o) {\n\t if (o == null) { // this matches both null and undefined\n\t throw new TypeError(\"can't convert \"+o+\" to object\");\n\t }\n\t return Object(o);\n\t};\n\n\t});\n\n\tace.define(\"ace/lib/fixoldbrowsers\",[\"require\",\"exports\",\"module\",\"ace/lib/regexp\",\"ace/lib/es5-shim\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tacequire(\"./regexp\");\n\tacequire(\"./es5-shim\");\n\n\t});\n\n\tace.define(\"ace/lib/dom\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar XHTML_NS = \"http://www.w3.org/1999/xhtml\";\n\n\texports.getDocumentHead = function(doc) {\n\t if (!doc)\n\t doc = document;\n\t return doc.head || doc.getElementsByTagName(\"head\")[0] || doc.documentElement;\n\t}\n\n\texports.createElement = function(tag, ns) {\n\t return document.createElementNS ?\n\t document.createElementNS(ns || XHTML_NS, tag) :\n\t document.createElement(tag);\n\t};\n\n\texports.hasCssClass = function(el, name) {\n\t var classes = (el.className + \"\").split(/\\s+/g);\n\t return classes.indexOf(name) !== -1;\n\t};\n\texports.addCssClass = function(el, name) {\n\t if (!exports.hasCssClass(el, name)) {\n\t el.className += \" \" + name;\n\t }\n\t};\n\texports.removeCssClass = function(el, name) {\n\t var classes = el.className.split(/\\s+/g);\n\t while (true) {\n\t var index = classes.indexOf(name);\n\t if (index == -1) {\n\t break;\n\t }\n\t classes.splice(index, 1);\n\t }\n\t el.className = classes.join(\" \");\n\t};\n\n\texports.toggleCssClass = function(el, name) {\n\t var classes = el.className.split(/\\s+/g), add = true;\n\t while (true) {\n\t var index = classes.indexOf(name);\n\t if (index == -1) {\n\t break;\n\t }\n\t add = false;\n\t classes.splice(index, 1);\n\t }\n\t if (add)\n\t classes.push(name);\n\n\t el.className = classes.join(\" \");\n\t return add;\n\t};\n\texports.setCssClass = function(node, className, include) {\n\t if (include) {\n\t exports.addCssClass(node, className);\n\t } else {\n\t exports.removeCssClass(node, className);\n\t }\n\t};\n\n\texports.hasCssString = function(id, doc) {\n\t var index = 0, sheets;\n\t doc = doc || document;\n\n\t if (doc.createStyleSheet && (sheets = doc.styleSheets)) {\n\t while (index < sheets.length)\n\t if (sheets[index++].owningElement.id === id) return true;\n\t } else if ((sheets = doc.getElementsByTagName(\"style\"))) {\n\t while (index < sheets.length)\n\t if (sheets[index++].id === id) return true;\n\t }\n\n\t return false;\n\t};\n\n\texports.importCssString = function importCssString(cssText, id, doc) {\n\t doc = doc || document;\n\t if (id && exports.hasCssString(id, doc))\n\t return null;\n\t \n\t var style;\n\t \n\t if (id)\n\t cssText += \"\\n/*# sourceURL=ace/css/\" + id + \" */\";\n\t \n\t if (doc.createStyleSheet) {\n\t style = doc.createStyleSheet();\n\t style.cssText = cssText;\n\t if (id)\n\t style.owningElement.id = id;\n\t } else {\n\t style = exports.createElement(\"style\");\n\t style.appendChild(doc.createTextNode(cssText));\n\t if (id)\n\t style.id = id;\n\n\t exports.getDocumentHead(doc).appendChild(style);\n\t }\n\t};\n\n\texports.importCssStylsheet = function(uri, doc) {\n\t if (doc.createStyleSheet) {\n\t doc.createStyleSheet(uri);\n\t } else {\n\t var link = exports.createElement('link');\n\t link.rel = 'stylesheet';\n\t link.href = uri;\n\n\t exports.getDocumentHead(doc).appendChild(link);\n\t }\n\t};\n\n\texports.getInnerWidth = function(element) {\n\t return (\n\t parseInt(exports.computedStyle(element, \"paddingLeft\"), 10) +\n\t parseInt(exports.computedStyle(element, \"paddingRight\"), 10) + \n\t element.clientWidth\n\t );\n\t};\n\n\texports.getInnerHeight = function(element) {\n\t return (\n\t parseInt(exports.computedStyle(element, \"paddingTop\"), 10) +\n\t parseInt(exports.computedStyle(element, \"paddingBottom\"), 10) +\n\t element.clientHeight\n\t );\n\t};\n\n\texports.scrollbarWidth = function(document) {\n\t var inner = exports.createElement(\"ace_inner\");\n\t inner.style.width = \"100%\";\n\t inner.style.minWidth = \"0px\";\n\t inner.style.height = \"200px\";\n\t inner.style.display = \"block\";\n\n\t var outer = exports.createElement(\"ace_outer\");\n\t var style = outer.style;\n\n\t style.position = \"absolute\";\n\t style.left = \"-10000px\";\n\t style.overflow = \"hidden\";\n\t style.width = \"200px\";\n\t style.minWidth = \"0px\";\n\t style.height = \"150px\";\n\t style.display = \"block\";\n\n\t outer.appendChild(inner);\n\n\t var body = document.documentElement;\n\t body.appendChild(outer);\n\n\t var noScrollbar = inner.offsetWidth;\n\n\t style.overflow = \"scroll\";\n\t var withScrollbar = inner.offsetWidth;\n\n\t if (noScrollbar == withScrollbar) {\n\t withScrollbar = outer.clientWidth;\n\t }\n\n\t body.removeChild(outer);\n\n\t return noScrollbar-withScrollbar;\n\t};\n\n\tif (typeof document == \"undefined\") {\n\t exports.importCssString = function() {};\n\t return;\n\t}\n\n\tif (window.pageYOffset !== undefined) {\n\t exports.getPageScrollTop = function() {\n\t return window.pageYOffset;\n\t };\n\n\t exports.getPageScrollLeft = function() {\n\t return window.pageXOffset;\n\t };\n\t}\n\telse {\n\t exports.getPageScrollTop = function() {\n\t return document.body.scrollTop;\n\t };\n\n\t exports.getPageScrollLeft = function() {\n\t return document.body.scrollLeft;\n\t };\n\t}\n\n\tif (window.getComputedStyle)\n\t exports.computedStyle = function(element, style) {\n\t if (style)\n\t return (window.getComputedStyle(element, \"\") || {})[style] || \"\";\n\t return window.getComputedStyle(element, \"\") || {};\n\t };\n\telse\n\t exports.computedStyle = function(element, style) {\n\t if (style)\n\t return element.currentStyle[style];\n\t return element.currentStyle;\n\t };\n\texports.setInnerHtml = function(el, innerHtml) {\n\t var element = el.cloneNode(false);//document.createElement(\"div\");\n\t element.innerHTML = innerHtml;\n\t el.parentNode.replaceChild(element, el);\n\t return element;\n\t};\n\n\tif (\"textContent\" in document.documentElement) {\n\t exports.setInnerText = function(el, innerText) {\n\t el.textContent = innerText;\n\t };\n\n\t exports.getInnerText = function(el) {\n\t return el.textContent;\n\t };\n\t}\n\telse {\n\t exports.setInnerText = function(el, innerText) {\n\t el.innerText = innerText;\n\t };\n\n\t exports.getInnerText = function(el) {\n\t return el.innerText;\n\t };\n\t}\n\n\texports.getParentWindow = function(document) {\n\t return document.defaultView || document.parentWindow;\n\t};\n\n\t});\n\n\tace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\texports.inherits = function(ctor, superCtor) {\n\t ctor.super_ = superCtor;\n\t ctor.prototype = Object.create(superCtor.prototype, {\n\t constructor: {\n\t value: ctor,\n\t enumerable: false,\n\t writable: true,\n\t configurable: true\n\t }\n\t });\n\t};\n\n\texports.mixin = function(obj, mixin) {\n\t for (var key in mixin) {\n\t obj[key] = mixin[key];\n\t }\n\t return obj;\n\t};\n\n\texports.implement = function(proto, mixin) {\n\t exports.mixin(proto, mixin);\n\t};\n\n\t});\n\n\tace.define(\"ace/lib/keys\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/oop\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tacequire(\"./fixoldbrowsers\");\n\n\tvar oop = acequire(\"./oop\");\n\tvar Keys = (function() {\n\t var ret = {\n\t MODIFIER_KEYS: {\n\t 16: 'Shift', 17: 'Ctrl', 18: 'Alt', 224: 'Meta'\n\t },\n\n\t KEY_MODS: {\n\t \"ctrl\": 1, \"alt\": 2, \"option\" : 2, \"shift\": 4,\n\t \"super\": 8, \"meta\": 8, \"command\": 8, \"cmd\": 8\n\t },\n\n\t FUNCTION_KEYS : {\n\t 8 : \"Backspace\",\n\t 9 : \"Tab\",\n\t 13 : \"Return\",\n\t 19 : \"Pause\",\n\t 27 : \"Esc\",\n\t 32 : \"Space\",\n\t 33 : \"PageUp\",\n\t 34 : \"PageDown\",\n\t 35 : \"End\",\n\t 36 : \"Home\",\n\t 37 : \"Left\",\n\t 38 : \"Up\",\n\t 39 : \"Right\",\n\t 40 : \"Down\",\n\t 44 : \"Print\",\n\t 45 : \"Insert\",\n\t 46 : \"Delete\",\n\t 96 : \"Numpad0\",\n\t 97 : \"Numpad1\",\n\t 98 : \"Numpad2\",\n\t 99 : \"Numpad3\",\n\t 100: \"Numpad4\",\n\t 101: \"Numpad5\",\n\t 102: \"Numpad6\",\n\t 103: \"Numpad7\",\n\t 104: \"Numpad8\",\n\t 105: \"Numpad9\",\n\t '-13': \"NumpadEnter\",\n\t 112: \"F1\",\n\t 113: \"F2\",\n\t 114: \"F3\",\n\t 115: \"F4\",\n\t 116: \"F5\",\n\t 117: \"F6\",\n\t 118: \"F7\",\n\t 119: \"F8\",\n\t 120: \"F9\",\n\t 121: \"F10\",\n\t 122: \"F11\",\n\t 123: \"F12\",\n\t 144: \"Numlock\",\n\t 145: \"Scrolllock\"\n\t },\n\n\t PRINTABLE_KEYS: {\n\t 32: ' ', 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5',\n\t 54: '6', 55: '7', 56: '8', 57: '9', 59: ';', 61: '=', 65: 'a',\n\t 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h',\n\t 73: 'i', 74: 'j', 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o',\n\t 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't', 85: 'u', 86: 'v',\n\t 87: 'w', 88: 'x', 89: 'y', 90: 'z', 107: '+', 109: '-', 110: '.',\n\t 186: ';', 187: '=', 188: ',', 189: '-', 190: '.', 191: '/', 192: '`',\n\t 219: '[', 220: '\\\\',221: ']', 222: \"'\", 111: '/', 106: '*'\n\t }\n\t };\n\t var name, i;\n\t for (i in ret.FUNCTION_KEYS) {\n\t name = ret.FUNCTION_KEYS[i].toLowerCase();\n\t ret[name] = parseInt(i, 10);\n\t }\n\t for (i in ret.PRINTABLE_KEYS) {\n\t name = ret.PRINTABLE_KEYS[i].toLowerCase();\n\t ret[name] = parseInt(i, 10);\n\t }\n\t oop.mixin(ret, ret.MODIFIER_KEYS);\n\t oop.mixin(ret, ret.PRINTABLE_KEYS);\n\t oop.mixin(ret, ret.FUNCTION_KEYS);\n\t ret.enter = ret[\"return\"];\n\t ret.escape = ret.esc;\n\t ret.del = ret[\"delete\"];\n\t ret[173] = '-';\n\t \n\t (function() {\n\t var mods = [\"cmd\", \"ctrl\", \"alt\", \"shift\"];\n\t for (var i = Math.pow(2, mods.length); i--;) { \n\t ret.KEY_MODS[i] = mods.filter(function(x) {\n\t return i & ret.KEY_MODS[x];\n\t }).join(\"-\") + \"-\";\n\t }\n\t })();\n\n\t ret.KEY_MODS[0] = \"\";\n\t ret.KEY_MODS[-1] = \"input-\";\n\n\t return ret;\n\t})();\n\toop.mixin(exports, Keys);\n\n\texports.keyCodeToString = function(keyCode) {\n\t var keyString = Keys[keyCode];\n\t if (typeof keyString != \"string\")\n\t keyString = String.fromCharCode(keyCode);\n\t return keyString.toLowerCase();\n\t};\n\n\t});\n\n\tace.define(\"ace/lib/useragent\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\t\"use strict\";\n\texports.OS = {\n\t LINUX: \"LINUX\",\n\t MAC: \"MAC\",\n\t WINDOWS: \"WINDOWS\"\n\t};\n\texports.getOS = function() {\n\t if (exports.isMac) {\n\t return exports.OS.MAC;\n\t } else if (exports.isLinux) {\n\t return exports.OS.LINUX;\n\t } else {\n\t return exports.OS.WINDOWS;\n\t }\n\t};\n\tif (typeof navigator != \"object\")\n\t return;\n\n\tvar os = (navigator.platform.match(/mac|win|linux/i) || [\"other\"])[0].toLowerCase();\n\tvar ua = navigator.userAgent;\n\texports.isWin = (os == \"win\");\n\texports.isMac = (os == \"mac\");\n\texports.isLinux = (os == \"linux\");\n\texports.isIE = \n\t (navigator.appName == \"Microsoft Internet Explorer\" || navigator.appName.indexOf(\"MSAppHost\") >= 0)\n\t ? parseFloat((ua.match(/(?:MSIE |Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/)||[])[1])\n\t : parseFloat((ua.match(/(?:Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/)||[])[1]); // for ie\n\t \n\texports.isOldIE = exports.isIE && exports.isIE < 9;\n\texports.isGecko = exports.isMozilla = (window.Controllers || window.controllers) && window.navigator.product === \"Gecko\";\n\texports.isOldGecko = exports.isGecko && parseInt((ua.match(/rv:(\\d+)/)||[])[1], 10) < 4;\n\texports.isOpera = window.opera && Object.prototype.toString.call(window.opera) == \"[object Opera]\";\n\texports.isWebKit = parseFloat(ua.split(\"WebKit/\")[1]) || undefined;\n\n\texports.isChrome = parseFloat(ua.split(\" Chrome/\")[1]) || undefined;\n\n\texports.isAIR = ua.indexOf(\"AdobeAIR\") >= 0;\n\n\texports.isIPad = ua.indexOf(\"iPad\") >= 0;\n\n\texports.isTouchPad = ua.indexOf(\"TouchPad\") >= 0;\n\n\texports.isChromeOS = ua.indexOf(\" CrOS \") >= 0;\n\n\t});\n\n\tace.define(\"ace/lib/event\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar keys = acequire(\"./keys\");\n\tvar useragent = acequire(\"./useragent\");\n\n\tvar pressedKeys = null;\n\tvar ts = 0;\n\n\texports.addListener = function(elem, type, callback) {\n\t if (elem.addEventListener) {\n\t return elem.addEventListener(type, callback, false);\n\t }\n\t if (elem.attachEvent) {\n\t var wrapper = function() {\n\t callback.call(elem, window.event);\n\t };\n\t callback._wrapper = wrapper;\n\t elem.attachEvent(\"on\" + type, wrapper);\n\t }\n\t};\n\n\texports.removeListener = function(elem, type, callback) {\n\t if (elem.removeEventListener) {\n\t return elem.removeEventListener(type, callback, false);\n\t }\n\t if (elem.detachEvent) {\n\t elem.detachEvent(\"on\" + type, callback._wrapper || callback);\n\t }\n\t};\n\texports.stopEvent = function(e) {\n\t exports.stopPropagation(e);\n\t exports.preventDefault(e);\n\t return false;\n\t};\n\n\texports.stopPropagation = function(e) {\n\t if (e.stopPropagation)\n\t e.stopPropagation();\n\t else\n\t e.cancelBubble = true;\n\t};\n\n\texports.preventDefault = function(e) {\n\t if (e.preventDefault)\n\t e.preventDefault();\n\t else\n\t e.returnValue = false;\n\t};\n\texports.getButton = function(e) {\n\t if (e.type == \"dblclick\")\n\t return 0;\n\t if (e.type == \"contextmenu\" || (useragent.isMac && (e.ctrlKey && !e.altKey && !e.shiftKey)))\n\t return 2;\n\t if (e.preventDefault) {\n\t return e.button;\n\t }\n\t else {\n\t return {1:0, 2:2, 4:1}[e.button];\n\t }\n\t};\n\n\texports.capture = function(el, eventHandler, releaseCaptureHandler) {\n\t function onMouseUp(e) {\n\t eventHandler && eventHandler(e);\n\t releaseCaptureHandler && releaseCaptureHandler(e);\n\n\t exports.removeListener(document, \"mousemove\", eventHandler, true);\n\t exports.removeListener(document, \"mouseup\", onMouseUp, true);\n\t exports.removeListener(document, \"dragstart\", onMouseUp, true);\n\t }\n\n\t exports.addListener(document, \"mousemove\", eventHandler, true);\n\t exports.addListener(document, \"mouseup\", onMouseUp, true);\n\t exports.addListener(document, \"dragstart\", onMouseUp, true);\n\t \n\t return onMouseUp;\n\t};\n\n\texports.addTouchMoveListener = function (el, callback) {\n\t if (\"ontouchmove\" in el) {\n\t var startx, starty;\n\t exports.addListener(el, \"touchstart\", function (e) {\n\t var touchObj = e.changedTouches[0];\n\t startx = touchObj.clientX;\n\t starty = touchObj.clientY;\n\t });\n\t exports.addListener(el, \"touchmove\", function (e) {\n\t var factor = 1,\n\t touchObj = e.changedTouches[0];\n\n\t e.wheelX = -(touchObj.clientX - startx) / factor;\n\t e.wheelY = -(touchObj.clientY - starty) / factor;\n\n\t startx = touchObj.clientX;\n\t starty = touchObj.clientY;\n\n\t callback(e);\n\t });\n\t } \n\t};\n\n\texports.addMouseWheelListener = function(el, callback) {\n\t if (\"onmousewheel\" in el) {\n\t exports.addListener(el, \"mousewheel\", function(e) {\n\t var factor = 8;\n\t if (e.wheelDeltaX !== undefined) {\n\t e.wheelX = -e.wheelDeltaX / factor;\n\t e.wheelY = -e.wheelDeltaY / factor;\n\t } else {\n\t e.wheelX = 0;\n\t e.wheelY = -e.wheelDelta / factor;\n\t }\n\t callback(e);\n\t });\n\t } else if (\"onwheel\" in el) {\n\t exports.addListener(el, \"wheel\", function(e) {\n\t var factor = 0.35;\n\t switch (e.deltaMode) {\n\t case e.DOM_DELTA_PIXEL:\n\t e.wheelX = e.deltaX * factor || 0;\n\t e.wheelY = e.deltaY * factor || 0;\n\t break;\n\t case e.DOM_DELTA_LINE:\n\t case e.DOM_DELTA_PAGE:\n\t e.wheelX = (e.deltaX || 0) * 5;\n\t e.wheelY = (e.deltaY || 0) * 5;\n\t break;\n\t }\n\t \n\t callback(e);\n\t });\n\t } else {\n\t exports.addListener(el, \"DOMMouseScroll\", function(e) {\n\t if (e.axis && e.axis == e.HORIZONTAL_AXIS) {\n\t e.wheelX = (e.detail || 0) * 5;\n\t e.wheelY = 0;\n\t } else {\n\t e.wheelX = 0;\n\t e.wheelY = (e.detail || 0) * 5;\n\t }\n\t callback(e);\n\t });\n\t }\n\t};\n\n\texports.addMultiMouseDownListener = function(elements, timeouts, eventHandler, callbackName) {\n\t var clicks = 0;\n\t var startX, startY, timer; \n\t var eventNames = {\n\t 2: \"dblclick\",\n\t 3: \"tripleclick\",\n\t 4: \"quadclick\"\n\t };\n\n\t function onMousedown(e) {\n\t if (exports.getButton(e) !== 0) {\n\t clicks = 0;\n\t } else if (e.detail > 1) {\n\t clicks++;\n\t if (clicks > 4)\n\t clicks = 1;\n\t } else {\n\t clicks = 1;\n\t }\n\t if (useragent.isIE) {\n\t var isNewClick = Math.abs(e.clientX - startX) > 5 || Math.abs(e.clientY - startY) > 5;\n\t if (!timer || isNewClick)\n\t clicks = 1;\n\t if (timer)\n\t clearTimeout(timer);\n\t timer = setTimeout(function() {timer = null}, timeouts[clicks - 1] || 600);\n\n\t if (clicks == 1) {\n\t startX = e.clientX;\n\t startY = e.clientY;\n\t }\n\t }\n\t \n\t e._clicks = clicks;\n\n\t eventHandler[callbackName](\"mousedown\", e);\n\n\t if (clicks > 4)\n\t clicks = 0;\n\t else if (clicks > 1)\n\t return eventHandler[callbackName](eventNames[clicks], e);\n\t }\n\t function onDblclick(e) {\n\t clicks = 2;\n\t if (timer)\n\t clearTimeout(timer);\n\t timer = setTimeout(function() {timer = null}, timeouts[clicks - 1] || 600);\n\t eventHandler[callbackName](\"mousedown\", e);\n\t eventHandler[callbackName](eventNames[clicks], e);\n\t }\n\t if (!Array.isArray(elements))\n\t elements = [elements];\n\t elements.forEach(function(el) {\n\t exports.addListener(el, \"mousedown\", onMousedown);\n\t if (useragent.isOldIE)\n\t exports.addListener(el, \"dblclick\", onDblclick);\n\t });\n\t};\n\n\tvar getModifierHash = useragent.isMac && useragent.isOpera && !(\"KeyboardEvent\" in window)\n\t ? function(e) {\n\t return 0 | (e.metaKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.ctrlKey ? 8 : 0);\n\t }\n\t : function(e) {\n\t return 0 | (e.ctrlKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.metaKey ? 8 : 0);\n\t };\n\n\texports.getModifierString = function(e) {\n\t return keys.KEY_MODS[getModifierHash(e)];\n\t};\n\n\tfunction normalizeCommandKeys(callback, e, keyCode) {\n\t var hashId = getModifierHash(e);\n\n\t if (!useragent.isMac && pressedKeys) {\n\t if (e.getModifierState && (e.getModifierState(\"OS\") || e.getModifierState(\"Win\")))\n\t hashId |= 8;\n\t if (pressedKeys.altGr) {\n\t if ((3 & hashId) != 3)\n\t pressedKeys.altGr = 0;\n\t else\n\t return;\n\t }\n\t if (keyCode === 18 || keyCode === 17) {\n\t var location = \"location\" in e ? e.location : e.keyLocation;\n\t if (keyCode === 17 && location === 1) {\n\t if (pressedKeys[keyCode] == 1)\n\t ts = e.timeStamp;\n\t } else if (keyCode === 18 && hashId === 3 && location === 2) {\n\t var dt = e.timeStamp - ts;\n\t if (dt < 50)\n\t pressedKeys.altGr = true;\n\t }\n\t }\n\t }\n\t \n\t if (keyCode in keys.MODIFIER_KEYS) {\n\t keyCode = -1;\n\t }\n\t if (hashId & 8 && (keyCode >= 91 && keyCode <= 93)) {\n\t keyCode = -1;\n\t }\n\t \n\t if (!hashId && keyCode === 13) {\n\t var location = \"location\" in e ? e.location : e.keyLocation;\n\t if (location === 3) {\n\t callback(e, hashId, -keyCode);\n\t if (e.defaultPrevented)\n\t return;\n\t }\n\t }\n\t \n\t if (useragent.isChromeOS && hashId & 8) {\n\t callback(e, hashId, keyCode);\n\t if (e.defaultPrevented)\n\t return;\n\t else\n\t hashId &= ~8;\n\t }\n\t if (!hashId && !(keyCode in keys.FUNCTION_KEYS) && !(keyCode in keys.PRINTABLE_KEYS)) {\n\t return false;\n\t }\n\t \n\t return callback(e, hashId, keyCode);\n\t}\n\n\n\texports.addCommandKeyListener = function(el, callback) {\n\t var addListener = exports.addListener;\n\t if (useragent.isOldGecko || (useragent.isOpera && !(\"KeyboardEvent\" in window))) {\n\t var lastKeyDownKeyCode = null;\n\t addListener(el, \"keydown\", function(e) {\n\t lastKeyDownKeyCode = e.keyCode;\n\t });\n\t addListener(el, \"keypress\", function(e) {\n\t return normalizeCommandKeys(callback, e, lastKeyDownKeyCode);\n\t });\n\t } else {\n\t var lastDefaultPrevented = null;\n\n\t addListener(el, \"keydown\", function(e) {\n\t pressedKeys[e.keyCode] = (pressedKeys[e.keyCode] || 0) + 1;\n\t var result = normalizeCommandKeys(callback, e, e.keyCode);\n\t lastDefaultPrevented = e.defaultPrevented;\n\t return result;\n\t });\n\n\t addListener(el, \"keypress\", function(e) {\n\t if (lastDefaultPrevented && (e.ctrlKey || e.altKey || e.shiftKey || e.metaKey)) {\n\t exports.stopEvent(e);\n\t lastDefaultPrevented = null;\n\t }\n\t });\n\n\t addListener(el, \"keyup\", function(e) {\n\t pressedKeys[e.keyCode] = null;\n\t });\n\n\t if (!pressedKeys) {\n\t resetPressedKeys();\n\t addListener(window, \"focus\", resetPressedKeys);\n\t }\n\t }\n\t};\n\tfunction resetPressedKeys() {\n\t pressedKeys = Object.create(null);\n\t}\n\n\tif (typeof window == \"object\" && window.postMessage && !useragent.isOldIE) {\n\t var postMessageId = 1;\n\t exports.nextTick = function(callback, win) {\n\t win = win || window;\n\t var messageName = \"zero-timeout-message-\" + postMessageId;\n\t exports.addListener(win, \"message\", function listener(e) {\n\t if (e.data == messageName) {\n\t exports.stopPropagation(e);\n\t exports.removeListener(win, \"message\", listener);\n\t callback();\n\t }\n\t });\n\t win.postMessage(messageName, \"*\");\n\t };\n\t}\n\n\n\texports.nextFrame = typeof window == \"object\" && (window.requestAnimationFrame\n\t || window.mozRequestAnimationFrame\n\t || window.webkitRequestAnimationFrame\n\t || window.msRequestAnimationFrame\n\t || window.oRequestAnimationFrame);\n\n\tif (exports.nextFrame)\n\t exports.nextFrame = exports.nextFrame.bind(window);\n\telse\n\t exports.nextFrame = function(callback) {\n\t setTimeout(callback, 17);\n\t };\n\t});\n\n\tace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\texports.last = function(a) {\n\t return a[a.length - 1];\n\t};\n\n\texports.stringReverse = function(string) {\n\t return string.split(\"\").reverse().join(\"\");\n\t};\n\n\texports.stringRepeat = function (string, count) {\n\t var result = '';\n\t while (count > 0) {\n\t if (count & 1)\n\t result += string;\n\n\t if (count >>= 1)\n\t string += string;\n\t }\n\t return result;\n\t};\n\n\tvar trimBeginRegexp = /^\\s\\s*/;\n\tvar trimEndRegexp = /\\s\\s*$/;\n\n\texports.stringTrimLeft = function (string) {\n\t return string.replace(trimBeginRegexp, '');\n\t};\n\n\texports.stringTrimRight = function (string) {\n\t return string.replace(trimEndRegexp, '');\n\t};\n\n\texports.copyObject = function(obj) {\n\t var copy = {};\n\t for (var key in obj) {\n\t copy[key] = obj[key];\n\t }\n\t return copy;\n\t};\n\n\texports.copyArray = function(array){\n\t var copy = [];\n\t for (var i=0, l=array.length; i<l; i++) {\n\t if (array[i] && typeof array[i] == \"object\")\n\t copy[i] = this.copyObject(array[i]);\n\t else \n\t copy[i] = array[i];\n\t }\n\t return copy;\n\t};\n\n\texports.deepCopy = function deepCopy(obj) {\n\t if (typeof obj !== \"object\" || !obj)\n\t return obj;\n\t var copy;\n\t if (Array.isArray(obj)) {\n\t copy = [];\n\t for (var key = 0; key < obj.length; key++) {\n\t copy[key] = deepCopy(obj[key]);\n\t }\n\t return copy;\n\t }\n\t if (Object.prototype.toString.call(obj) !== \"[object Object]\")\n\t return obj;\n\t \n\t copy = {};\n\t for (var key in obj)\n\t copy[key] = deepCopy(obj[key]);\n\t return copy;\n\t};\n\n\texports.arrayToMap = function(arr) {\n\t var map = {};\n\t for (var i=0; i<arr.length; i++) {\n\t map[arr[i]] = 1;\n\t }\n\t return map;\n\n\t};\n\n\texports.createMap = function(props) {\n\t var map = Object.create(null);\n\t for (var i in props) {\n\t map[i] = props[i];\n\t }\n\t return map;\n\t};\n\texports.arrayRemove = function(array, value) {\n\t for (var i = 0; i <= array.length; i++) {\n\t if (value === array[i]) {\n\t array.splice(i, 1);\n\t }\n\t }\n\t};\n\n\texports.escapeRegExp = function(str) {\n\t return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g, '\\\\$1');\n\t};\n\n\texports.escapeHTML = function(str) {\n\t return str.replace(/&/g, \"&\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(/</g, \"<\");\n\t};\n\n\texports.getMatchOffsets = function(string, regExp) {\n\t var matches = [];\n\n\t string.replace(regExp, function(str) {\n\t matches.push({\n\t offset: arguments[arguments.length-2],\n\t length: str.length\n\t });\n\t });\n\n\t return matches;\n\t};\n\texports.deferredCall = function(fcn) {\n\t var timer = null;\n\t var callback = function() {\n\t timer = null;\n\t fcn();\n\t };\n\n\t var deferred = function(timeout) {\n\t deferred.cancel();\n\t timer = setTimeout(callback, timeout || 0);\n\t return deferred;\n\t };\n\n\t deferred.schedule = deferred;\n\n\t deferred.call = function() {\n\t this.cancel();\n\t fcn();\n\t return deferred;\n\t };\n\n\t deferred.cancel = function() {\n\t clearTimeout(timer);\n\t timer = null;\n\t return deferred;\n\t };\n\t \n\t deferred.isPending = function() {\n\t return timer;\n\t };\n\n\t return deferred;\n\t};\n\n\n\texports.delayedCall = function(fcn, defaultTimeout) {\n\t var timer = null;\n\t var callback = function() {\n\t timer = null;\n\t fcn();\n\t };\n\n\t var _self = function(timeout) {\n\t if (timer == null)\n\t timer = setTimeout(callback, timeout || defaultTimeout);\n\t };\n\n\t _self.delay = function(timeout) {\n\t timer && clearTimeout(timer);\n\t timer = setTimeout(callback, timeout || defaultTimeout);\n\t };\n\t _self.schedule = _self;\n\n\t _self.call = function() {\n\t this.cancel();\n\t fcn();\n\t };\n\n\t _self.cancel = function() {\n\t timer && clearTimeout(timer);\n\t timer = null;\n\t };\n\n\t _self.isPending = function() {\n\t return timer;\n\t };\n\n\t return _self;\n\t};\n\t});\n\n\tace.define(\"ace/keyboard/textinput\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/lib/dom\",\"ace/lib/lang\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar event = acequire(\"../lib/event\");\n\tvar useragent = acequire(\"../lib/useragent\");\n\tvar dom = acequire(\"../lib/dom\");\n\tvar lang = acequire(\"../lib/lang\");\n\tvar BROKEN_SETDATA = useragent.isChrome < 18;\n\tvar USE_IE_MIME_TYPE = useragent.isIE;\n\n\tvar TextInput = function(parentNode, host) {\n\t var text = dom.createElement(\"textarea\");\n\t text.className = \"ace_text-input\";\n\n\t if (useragent.isTouchPad)\n\t text.setAttribute(\"x-palm-disable-auto-cap\", true);\n\n\t text.setAttribute(\"wrap\", \"off\");\n\t text.setAttribute(\"autocorrect\", \"off\");\n\t text.setAttribute(\"autocapitalize\", \"off\");\n\t text.setAttribute(\"spellcheck\", false);\n\n\t text.style.opacity = \"0\";\n\t if (useragent.isOldIE) text.style.top = \"-1000px\";\n\t parentNode.insertBefore(text, parentNode.firstChild);\n\n\t var PLACEHOLDER = \"\\x01\\x01\";\n\n\t var copied = false;\n\t var pasted = false;\n\t var inComposition = false;\n\t var tempStyle = '';\n\t var isSelectionEmpty = true;\n\t try { var isFocused = document.activeElement === text; } catch(e) {}\n\t \n\t event.addListener(text, \"blur\", function(e) {\n\t host.onBlur(e);\n\t isFocused = false;\n\t });\n\t event.addListener(text, \"focus\", function(e) {\n\t isFocused = true;\n\t host.onFocus(e);\n\t resetSelection();\n\t });\n\t this.focus = function() {\n\t if (tempStyle) return text.focus();\n\t var top = text.style.top;\n\t text.style.position = \"fixed\";\n\t text.style.top = \"0px\";\n\t text.focus();\n\t setTimeout(function() {\n\t text.style.position = \"\";\n\t if (text.style.top == \"0px\")\n\t text.style.top = top;\n\t }, 0);\n\t };\n\t this.blur = function() {\n\t text.blur();\n\t };\n\t this.isFocused = function() {\n\t return isFocused;\n\t };\n\t var syncSelection = lang.delayedCall(function() {\n\t isFocused && resetSelection(isSelectionEmpty);\n\t });\n\t var syncValue = lang.delayedCall(function() {\n\t if (!inComposition) {\n\t text.value = PLACEHOLDER;\n\t isFocused && resetSelection();\n\t }\n\t });\n\n\t function resetSelection(isEmpty) {\n\t if (inComposition)\n\t return;\n\t inComposition = true;\n\t \n\t if (inputHandler) {\n\t selectionStart = 0;\n\t selectionEnd = isEmpty ? 0 : text.value.length - 1;\n\t } else {\n\t var selectionStart = isEmpty ? 2 : 1;\n\t var selectionEnd = 2;\n\t }\n\t try {\n\t text.setSelectionRange(selectionStart, selectionEnd);\n\t } catch(e){}\n\t \n\t inComposition = false;\n\t }\n\n\t function resetValue() {\n\t if (inComposition)\n\t return;\n\t text.value = PLACEHOLDER;\n\t if (useragent.isWebKit)\n\t syncValue.schedule();\n\t }\n\n\t useragent.isWebKit || host.addEventListener('changeSelection', function() {\n\t if (host.selection.isEmpty() != isSelectionEmpty) {\n\t isSelectionEmpty = !isSelectionEmpty;\n\t syncSelection.schedule();\n\t }\n\t });\n\n\t resetValue();\n\t if (isFocused)\n\t host.onFocus();\n\n\n\t var isAllSelected = function(text) {\n\t return text.selectionStart === 0 && text.selectionEnd === text.value.length;\n\t };\n\t if (!text.setSelectionRange && text.createTextRange) {\n\t text.setSelectionRange = function(selectionStart, selectionEnd) {\n\t var range = this.createTextRange();\n\t range.collapse(true);\n\t range.moveStart('character', selectionStart);\n\t range.moveEnd('character', selectionEnd);\n\t range.select();\n\t };\n\t isAllSelected = function(text) {\n\t try {\n\t var range = text.ownerDocument.selection.createRange();\n\t }catch(e) {}\n\t if (!range || range.parentElement() != text) return false;\n\t return range.text == text.value;\n\t }\n\t }\n\t if (useragent.isOldIE) {\n\t var inPropertyChange = false;\n\t var onPropertyChange = function(e){\n\t if (inPropertyChange)\n\t return;\n\t var data = text.value;\n\t if (inComposition || !data || data == PLACEHOLDER)\n\t return;\n\t if (e && data == PLACEHOLDER[0])\n\t return syncProperty.schedule();\n\n\t sendText(data);\n\t inPropertyChange = true;\n\t resetValue();\n\t inPropertyChange = false;\n\t };\n\t var syncProperty = lang.delayedCall(onPropertyChange);\n\t event.addListener(text, \"propertychange\", onPropertyChange);\n\n\t var keytable = { 13:1, 27:1 };\n\t event.addListener(text, \"keyup\", function (e) {\n\t if (inComposition && (!text.value || keytable[e.keyCode]))\n\t setTimeout(onCompositionEnd, 0);\n\t if ((text.value.charCodeAt(0)||0) < 129) {\n\t return syncProperty.call();\n\t }\n\t inComposition ? onCompositionUpdate() : onCompositionStart();\n\t });\n\t event.addListener(text, \"keydown\", function (e) {\n\t syncProperty.schedule(50);\n\t });\n\t }\n\n\t var onSelect = function(e) {\n\t if (copied) {\n\t copied = false;\n\t } else if (isAllSelected(text)) {\n\t host.selectAll();\n\t resetSelection();\n\t } else if (inputHandler) {\n\t resetSelection(host.selection.isEmpty());\n\t }\n\t };\n\n\t var inputHandler = null;\n\t this.setInputHandler = function(cb) {inputHandler = cb};\n\t this.getInputHandler = function() {return inputHandler};\n\t var afterContextMenu = false;\n\t \n\t var sendText = function(data) {\n\t if (inputHandler) {\n\t data = inputHandler(data);\n\t inputHandler = null;\n\t }\n\t if (pasted) {\n\t resetSelection();\n\t if (data)\n\t host.onPaste(data);\n\t pasted = false;\n\t } else if (data == PLACEHOLDER.charAt(0)) {\n\t if (afterContextMenu)\n\t host.execCommand(\"del\", {source: \"ace\"});\n\t else // some versions of android do not fire keydown when pressing backspace\n\t host.execCommand(\"backspace\", {source: \"ace\"});\n\t } else {\n\t if (data.substring(0, 2) == PLACEHOLDER)\n\t data = data.substr(2);\n\t else if (data.charAt(0) == PLACEHOLDER.charAt(0))\n\t data = data.substr(1);\n\t else if (data.charAt(data.length - 1) == PLACEHOLDER.charAt(0))\n\t data = data.slice(0, -1);\n\t if (data.charAt(data.length - 1) == PLACEHOLDER.charAt(0))\n\t data = data.slice(0, -1);\n\t \n\t if (data)\n\t host.onTextInput(data);\n\t }\n\t if (afterContextMenu)\n\t afterContextMenu = false;\n\t };\n\t var onInput = function(e) {\n\t if (inComposition)\n\t return;\n\t var data = text.value;\n\t sendText(data);\n\t resetValue();\n\t };\n\t \n\t var handleClipboardData = function(e, data, forceIEMime) {\n\t var clipboardData = e.clipboardData || window.clipboardData;\n\t if (!clipboardData || BROKEN_SETDATA)\n\t return;\n\t var mime = USE_IE_MIME_TYPE || forceIEMime ? \"Text\" : \"text/plain\";\n\t try {\n\t if (data) {\n\t return clipboardData.setData(mime, data) !== false;\n\t } else {\n\t return clipboardData.getData(mime);\n\t }\n\t } catch(e) {\n\t if (!forceIEMime)\n\t return handleClipboardData(e, data, true);\n\t }\n\t };\n\n\t var doCopy = function(e, isCut) {\n\t var data = host.getCopyText();\n\t if (!data)\n\t return event.preventDefault(e);\n\n\t if (handleClipboardData(e, data)) {\n\t isCut ? host.onCut() : host.onCopy();\n\t event.preventDefault(e);\n\t } else {\n\t copied = true;\n\t text.value = data;\n\t text.select();\n\t setTimeout(function(){\n\t copied = false;\n\t resetValue();\n\t resetSelection();\n\t isCut ? host.onCut() : host.onCopy();\n\t });\n\t }\n\t };\n\t \n\t var onCut = function(e) {\n\t doCopy(e, true);\n\t };\n\t \n\t var onCopy = function(e) {\n\t doCopy(e, false);\n\t };\n\t \n\t var onPaste = function(e) {\n\t var data = handleClipboardData(e);\n\t if (typeof data == \"string\") {\n\t if (data)\n\t host.onPaste(data, e);\n\t if (useragent.isIE)\n\t setTimeout(resetSelection);\n\t event.preventDefault(e);\n\t }\n\t else {\n\t text.value = \"\";\n\t pasted = true;\n\t }\n\t };\n\n\t event.addCommandKeyListener(text, host.onCommandKey.bind(host));\n\n\t event.addListener(text, \"select\", onSelect);\n\n\t event.addListener(text, \"input\", onInput);\n\n\t event.addListener(text, \"cut\", onCut);\n\t event.addListener(text, \"copy\", onCopy);\n\t event.addListener(text, \"paste\", onPaste);\n\t if (!('oncut' in text) || !('oncopy' in text) || !('onpaste' in text)){\n\t event.addListener(parentNode, \"keydown\", function(e) {\n\t if ((useragent.isMac && !e.metaKey) || !e.ctrlKey)\n\t return;\n\n\t switch (e.keyCode) {\n\t case 67:\n\t onCopy(e);\n\t break;\n\t case 86:\n\t onPaste(e);\n\t break;\n\t case 88:\n\t onCut(e);\n\t break;\n\t }\n\t });\n\t }\n\t var onCompositionStart = function(e) {\n\t if (inComposition || !host.onCompositionStart || host.$readOnly) \n\t return;\n\t inComposition = {};\n\t inComposition.canUndo = host.session.$undoManager;\n\t host.onCompositionStart();\n\t setTimeout(onCompositionUpdate, 0);\n\t host.on(\"mousedown\", onCompositionEnd);\n\t if (inComposition.canUndo && !host.selection.isEmpty()) {\n\t host.insert(\"\");\n\t host.session.markUndoGroup();\n\t host.selection.clearSelection();\n\t }\n\t host.session.markUndoGroup();\n\t };\n\n\t var onCompositionUpdate = function() {\n\t if (!inComposition || !host.onCompositionUpdate || host.$readOnly)\n\t return;\n\t var val = text.value.replace(/\\x01/g, \"\");\n\t if (inComposition.lastValue === val) return;\n\t \n\t host.onCompositionUpdate(val);\n\t if (inComposition.lastValue)\n\t host.undo();\n\t if (inComposition.canUndo)\n\t inComposition.lastValue = val;\n\t if (inComposition.lastValue) {\n\t var r = host.selection.getRange();\n\t host.insert(inComposition.lastValue);\n\t host.session.markUndoGroup();\n\t inComposition.range = host.selection.getRange();\n\t host.selection.setRange(r);\n\t host.selection.clearSelection();\n\t }\n\t };\n\n\t var onCompositionEnd = function(e) {\n\t if (!host.onCompositionEnd || host.$readOnly) return;\n\t var c = inComposition;\n\t inComposition = false;\n\t var timer = setTimeout(function() {\n\t timer = null;\n\t var str = text.value.replace(/\\x01/g, \"\");\n\t if (inComposition)\n\t return;\n\t else if (str == c.lastValue)\n\t resetValue();\n\t else if (!c.lastValue && str) {\n\t resetValue();\n\t sendText(str);\n\t }\n\t });\n\t inputHandler = function compositionInputHandler(str) {\n\t if (timer)\n\t clearTimeout(timer);\n\t str = str.replace(/\\x01/g, \"\");\n\t if (str == c.lastValue)\n\t return \"\";\n\t if (c.lastValue && timer)\n\t host.undo();\n\t return str;\n\t };\n\t host.onCompositionEnd();\n\t host.removeListener(\"mousedown\", onCompositionEnd);\n\t if (e.type == \"compositionend\" && c.range) {\n\t host.selection.setRange(c.range);\n\t }\n\t if (useragent.isChrome && useragent.isChrome >= 53) {\n\t onInput();\n\t }\n\t };\n\t \n\t \n\n\t var syncComposition = lang.delayedCall(onCompositionUpdate, 50);\n\n\t event.addListener(text, \"compositionstart\", onCompositionStart);\n\t if (useragent.isGecko) {\n\t event.addListener(text, \"text\", function(){syncComposition.schedule()});\n\t } else {\n\t event.addListener(text, \"keyup\", function(){syncComposition.schedule()});\n\t event.addListener(text, \"keydown\", function(){syncComposition.schedule()});\n\t }\n\t event.addListener(text, \"compositionend\", onCompositionEnd);\n\n\t this.getElement = function() {\n\t return text;\n\t };\n\n\t this.setReadOnly = function(readOnly) {\n\t text.readOnly = readOnly;\n\t };\n\n\t this.onContextMenu = function(e) {\n\t afterContextMenu = true;\n\t resetSelection(host.selection.isEmpty());\n\t host._emit(\"nativecontextmenu\", {target: host, domEvent: e});\n\t this.moveToMouse(e, true);\n\t };\n\t \n\t this.moveToMouse = function(e, bringToFront) {\n\t if (!bringToFront && useragent.isOldIE)\n\t return;\n\t if (!tempStyle)\n\t tempStyle = text.style.cssText;\n\t text.style.cssText = (bringToFront ? \"z-index:100000;\" : \"\")\n\t + \"height:\" + text.style.height + \";\"\n\t + (useragent.isIE ? \"opacity:0.1;\" : \"\");\n\n\t var rect = host.container.getBoundingClientRect();\n\t var style = dom.computedStyle(host.container);\n\t var top = rect.top + (parseInt(style.borderTopWidth) || 0);\n\t var left = rect.left + (parseInt(rect.borderLeftWidth) || 0);\n\t var maxTop = rect.bottom - top - text.clientHeight -2;\n\t var move = function(e) {\n\t text.style.left = e.clientX - left - 2 + \"px\";\n\t text.style.top = Math.min(e.clientY - top - 2, maxTop) + \"px\";\n\t }; \n\t move(e);\n\n\t if (e.type != \"mousedown\")\n\t return;\n\n\t if (host.renderer.$keepTextAreaAtCursor)\n\t host.renderer.$keepTextAreaAtCursor = null;\n\n\t clearTimeout(closeTimeout);\n\t if (useragent.isWin && !useragent.isOldIE)\n\t event.capture(host.container, move, onContextMenuClose);\n\t };\n\n\t this.onContextMenuClose = onContextMenuClose;\n\t var closeTimeout;\n\t function onContextMenuClose() {\n\t clearTimeout(closeTimeout);\n\t closeTimeout = setTimeout(function () {\n\t if (tempStyle) {\n\t text.style.cssText = tempStyle;\n\t tempStyle = '';\n\t }\n\t if (host.renderer.$keepTextAreaAtCursor == null) {\n\t host.renderer.$keepTextAreaAtCursor = true;\n\t host.renderer.$moveTextAreaToCursor();\n\t }\n\t }, useragent.isOldIE ? 200 : 0);\n\t }\n\n\t var onContextMenu = function(e) {\n\t host.textInput.onContextMenu(e);\n\t onContextMenuClose();\n\t };\n\t event.addListener(text, \"mouseup\", onContextMenu);\n\t event.addListener(text, \"mousedown\", function(e) {\n\t e.preventDefault();\n\t onContextMenuClose();\n\t });\n\t event.addListener(host.renderer.scroller, \"contextmenu\", onContextMenu);\n\t event.addListener(text, \"contextmenu\", onContextMenu);\n\t};\n\n\texports.TextInput = TextInput;\n\t});\n\n\tace.define(\"ace/mouse/default_handlers\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar dom = acequire(\"../lib/dom\");\n\tvar event = acequire(\"../lib/event\");\n\tvar useragent = acequire(\"../lib/useragent\");\n\n\tvar DRAG_OFFSET = 0; // pixels\n\n\tfunction DefaultHandlers(mouseHandler) {\n\t mouseHandler.$clickSelection = null;\n\n\t var editor = mouseHandler.editor;\n\t editor.setDefaultHandler(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n\t editor.setDefaultHandler(\"dblclick\", this.onDoubleClick.bind(mouseHandler));\n\t editor.setDefaultHandler(\"tripleclick\", this.onTripleClick.bind(mouseHandler));\n\t editor.setDefaultHandler(\"quadclick\", this.onQuadClick.bind(mouseHandler));\n\t editor.setDefaultHandler(\"mousewheel\", this.onMouseWheel.bind(mouseHandler));\n\t editor.setDefaultHandler(\"touchmove\", this.onTouchMove.bind(mouseHandler));\n\n\t var exports = [\"select\", \"startSelect\", \"selectEnd\", \"selectAllEnd\", \"selectByWordsEnd\",\n\t \"selectByLinesEnd\", \"dragWait\", \"dragWaitEnd\", \"focusWait\"];\n\n\t exports.forEach(function(x) {\n\t mouseHandler[x] = this[x];\n\t }, this);\n\n\t mouseHandler.selectByLines = this.extendSelectionBy.bind(mouseHandler, \"getLineRange\");\n\t mouseHandler.selectByWords = this.extendSelectionBy.bind(mouseHandler, \"getWordRange\");\n\t}\n\n\t(function() {\n\n\t this.onMouseDown = function(ev) {\n\t var inSelection = ev.inSelection();\n\t var pos = ev.getDocumentPosition();\n\t this.mousedownEvent = ev;\n\t var editor = this.editor;\n\n\t var button = ev.getButton();\n\t if (button !== 0) {\n\t var selectionRange = editor.getSelectionRange();\n\t var selectionEmpty = selectionRange.isEmpty();\n\t editor.$blockScrolling++;\n\t if (selectionEmpty || button == 1)\n\t editor.selection.moveToPosition(pos);\n\t editor.$blockScrolling--;\n\t if (button == 2)\n\t editor.textInput.onContextMenu(ev.domEvent);\n\t return; // stopping event here breaks contextmenu on ff mac\n\t }\n\n\t this.mousedownEvent.time = Date.now();\n\t if (inSelection && !editor.isFocused()) {\n\t editor.focus();\n\t if (this.$focusTimout && !this.$clickSelection && !editor.inMultiSelectMode) {\n\t this.setState(\"focusWait\");\n\t this.captureMouse(ev);\n\t return;\n\t }\n\t }\n\n\t this.captureMouse(ev);\n\t this.startSelect(pos, ev.domEvent._clicks > 1);\n\t return ev.preventDefault();\n\t };\n\n\t this.startSelect = function(pos, waitForClickSelection) {\n\t pos = pos || this.editor.renderer.screenToTextCoordinates(this.x, this.y);\n\t var editor = this.editor;\n\t editor.$blockScrolling++;\n\t if (this.mousedownEvent.getShiftKey())\n\t editor.selection.selectToPosition(pos);\n\t else if (!waitForClickSelection)\n\t editor.selection.moveToPosition(pos);\n\t if (!waitForClickSelection)\n\t this.select();\n\t if (editor.renderer.scroller.setCapture) {\n\t editor.renderer.scroller.setCapture();\n\t }\n\t editor.setStyle(\"ace_selecting\");\n\t this.setState(\"select\");\n\t editor.$blockScrolling--;\n\t };\n\n\t this.select = function() {\n\t var anchor, editor = this.editor;\n\t var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n\t editor.$blockScrolling++;\n\t if (this.$clickSelection) {\n\t var cmp = this.$clickSelection.comparePoint(cursor);\n\n\t if (cmp == -1) {\n\t anchor = this.$clickSelection.end;\n\t } else if (cmp == 1) {\n\t anchor = this.$clickSelection.start;\n\t } else {\n\t var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n\t cursor = orientedRange.cursor;\n\t anchor = orientedRange.anchor;\n\t }\n\t editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n\t }\n\t editor.selection.selectToPosition(cursor);\n\t editor.$blockScrolling--;\n\t editor.renderer.scrollCursorIntoView();\n\t };\n\n\t this.extendSelectionBy = function(unitName) {\n\t var anchor, editor = this.editor;\n\t var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n\t var range = editor.selection[unitName](cursor.row, cursor.column);\n\t editor.$blockScrolling++;\n\t if (this.$clickSelection) {\n\t var cmpStart = this.$clickSelection.comparePoint(range.start);\n\t var cmpEnd = this.$clickSelection.comparePoint(range.end);\n\n\t if (cmpStart == -1 && cmpEnd <= 0) {\n\t anchor = this.$clickSelection.end;\n\t if (range.end.row != cursor.row || range.end.column != cursor.column)\n\t cursor = range.start;\n\t } else if (cmpEnd == 1 && cmpStart >= 0) {\n\t anchor = this.$clickSelection.start;\n\t if (range.start.row != cursor.row || range.start.column != cursor.column)\n\t cursor = range.end;\n\t } else if (cmpStart == -1 && cmpEnd == 1) {\n\t cursor = range.end;\n\t anchor = range.start;\n\t } else {\n\t var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n\t cursor = orientedRange.cursor;\n\t anchor = orientedRange.anchor;\n\t }\n\t editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n\t }\n\t editor.selection.selectToPosition(cursor);\n\t editor.$blockScrolling--;\n\t editor.renderer.scrollCursorIntoView();\n\t };\n\n\t this.selectEnd =\n\t this.selectAllEnd =\n\t this.selectByWordsEnd =\n\t this.selectByLinesEnd = function() {\n\t this.$clickSelection = null;\n\t this.editor.unsetStyle(\"ace_selecting\");\n\t if (this.editor.renderer.scroller.releaseCapture) {\n\t this.editor.renderer.scroller.releaseCapture();\n\t }\n\t };\n\n\t this.focusWait = function() {\n\t var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n\t var time = Date.now();\n\n\t if (distance > DRAG_OFFSET || time - this.mousedownEvent.time > this.$focusTimout)\n\t this.startSelect(this.mousedownEvent.getDocumentPosition());\n\t };\n\n\t this.onDoubleClick = function(ev) {\n\t var pos = ev.getDocumentPosition();\n\t var editor = this.editor;\n\t var session = editor.session;\n\n\t var range = session.getBracketRange(pos);\n\t if (range) {\n\t if (range.isEmpty()) {\n\t range.start.column--;\n\t range.end.column++;\n\t }\n\t this.setState(\"select\");\n\t } else {\n\t range = editor.selection.getWordRange(pos.row, pos.column);\n\t this.setState(\"selectByWords\");\n\t }\n\t this.$clickSelection = range;\n\t this.select();\n\t };\n\n\t this.onTripleClick = function(ev) {\n\t var pos = ev.getDocumentPosition();\n\t var editor = this.editor;\n\n\t this.setState(\"selectByLines\");\n\t var range = editor.getSelectionRange();\n\t if (range.isMultiLine() && range.contains(pos.row, pos.column)) {\n\t this.$clickSelection = editor.selection.getLineRange(range.start.row);\n\t this.$clickSelection.end = editor.selection.getLineRange(range.end.row).end;\n\t } else {\n\t this.$clickSelection = editor.selection.getLineRange(pos.row);\n\t }\n\t this.select();\n\t };\n\n\t this.onQuadClick = function(ev) {\n\t var editor = this.editor;\n\n\t editor.selectAll();\n\t this.$clickSelection = editor.getSelectionRange();\n\t this.setState(\"selectAll\");\n\t };\n\n\t this.onMouseWheel = function(ev) {\n\t if (ev.getAccelKey())\n\t return;\n\t if (ev.getShiftKey() && ev.wheelY && !ev.wheelX) {\n\t ev.wheelX = ev.wheelY;\n\t ev.wheelY = 0;\n\t }\n\n\t var t = ev.domEvent.timeStamp;\n\t var dt = t - (this.$lastScrollTime||0);\n\t \n\t var editor = this.editor;\n\t var isScrolable = editor.renderer.isScrollableBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed);\n\t if (isScrolable || dt < 200) {\n\t this.$lastScrollTime = t;\n\t editor.renderer.scrollBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed);\n\t return ev.stop();\n\t }\n\t };\n\t \n\t this.onTouchMove = function (ev) {\n\t var t = ev.domEvent.timeStamp;\n\t var dt = t - (this.$lastScrollTime || 0);\n\n\t var editor = this.editor;\n\t var isScrolable = editor.renderer.isScrollableBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed);\n\t if (isScrolable || dt < 200) {\n\t this.$lastScrollTime = t;\n\t editor.renderer.scrollBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed);\n\t return ev.stop();\n\t }\n\t };\n\n\t}).call(DefaultHandlers.prototype);\n\n\texports.DefaultHandlers = DefaultHandlers;\n\n\tfunction calcDistance(ax, ay, bx, by) {\n\t return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n\t}\n\n\tfunction calcRangeOrientation(range, cursor) {\n\t if (range.start.row == range.end.row)\n\t var cmp = 2 * cursor.column - range.start.column - range.end.column;\n\t else if (range.start.row == range.end.row - 1 && !range.start.column && !range.end.column)\n\t var cmp = cursor.column - 4;\n\t else\n\t var cmp = 2 * cursor.row - range.start.row - range.end.row;\n\n\t if (cmp < 0)\n\t return {cursor: range.start, anchor: range.end};\n\t else\n\t return {cursor: range.end, anchor: range.start};\n\t}\n\n\t});\n\n\tace.define(\"ace/tooltip\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar oop = acequire(\"./lib/oop\");\n\tvar dom = acequire(\"./lib/dom\");\n\tfunction Tooltip (parentNode) {\n\t this.isOpen = false;\n\t this.$element = null;\n\t this.$parentNode = parentNode;\n\t}\n\n\t(function() {\n\t this.$init = function() {\n\t this.$element = dom.createElement(\"div\");\n\t this.$element.className = \"ace_tooltip\";\n\t this.$element.style.display = \"none\";\n\t this.$parentNode.appendChild(this.$element);\n\t return this.$element;\n\t };\n\t this.getElement = function() {\n\t return this.$element || this.$init();\n\t };\n\t this.setText = function(text) {\n\t dom.setInnerText(this.getElement(), text);\n\t };\n\t this.setHtml = function(html) {\n\t this.getElement().innerHTML = html;\n\t };\n\t this.setPosition = function(x, y) {\n\t this.getElement().style.left = x + \"px\";\n\t this.getElement().style.top = y + \"px\";\n\t };\n\t this.setClassName = function(className) {\n\t dom.addCssClass(this.getElement(), className);\n\t };\n\t this.show = function(text, x, y) {\n\t if (text != null)\n\t this.setText(text);\n\t if (x != null && y != null)\n\t this.setPosition(x, y);\n\t if (!this.isOpen) {\n\t this.getElement().style.display = \"block\";\n\t this.isOpen = true;\n\t }\n\t };\n\n\t this.hide = function() {\n\t if (this.isOpen) {\n\t this.getElement().style.display = \"none\";\n\t this.isOpen = false;\n\t }\n\t };\n\t this.getHeight = function() {\n\t return this.getElement().offsetHeight;\n\t };\n\t this.getWidth = function() {\n\t return this.getElement().offsetWidth;\n\t };\n\n\t}).call(Tooltip.prototype);\n\n\texports.Tooltip = Tooltip;\n\t});\n\n\tace.define(\"ace/mouse/default_gutter_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/event\",\"ace/tooltip\"], function(acequire, exports, module) {\n\t\"use strict\";\n\tvar dom = acequire(\"../lib/dom\");\n\tvar oop = acequire(\"../lib/oop\");\n\tvar event = acequire(\"../lib/event\");\n\tvar Tooltip = acequire(\"../tooltip\").Tooltip;\n\n\tfunction GutterHandler(mouseHandler) {\n\t var editor = mouseHandler.editor;\n\t var gutter = editor.renderer.$gutterLayer;\n\t var tooltip = new GutterTooltip(editor.container);\n\n\t mouseHandler.editor.setDefaultHandler(\"guttermousedown\", function(e) {\n\t if (!editor.isFocused() || e.getButton() != 0)\n\t return;\n\t var gutterRegion = gutter.getRegion(e);\n\n\t if (gutterRegion == \"foldWidgets\")\n\t return;\n\n\t var row = e.getDocumentPosition().row;\n\t var selection = editor.session.selection;\n\n\t if (e.getShiftKey())\n\t selection.selectTo(row, 0);\n\t else {\n\t if (e.domEvent.detail == 2) {\n\t editor.selectAll();\n\t return e.preventDefault();\n\t }\n\t mouseHandler.$clickSelection = editor.selection.getLineRange(row);\n\t }\n\t mouseHandler.setState(\"selectByLines\");\n\t mouseHandler.captureMouse(e);\n\t return e.preventDefault();\n\t });\n\n\n\t var tooltipTimeout, mouseEvent, tooltipAnnotation;\n\n\t function showTooltip() {\n\t var row = mouseEvent.getDocumentPosition().row;\n\t var annotation = gutter.$annotations[row];\n\t if (!annotation)\n\t return hideTooltip();\n\n\t var maxRow = editor.session.getLength();\n\t if (row == maxRow) {\n\t var screenRow = editor.renderer.pixelToScreenCoordinates(0, mouseEvent.y).row;\n\t var pos = mouseEvent.$pos;\n\t if (screenRow > editor.session.documentToScreenRow(pos.row, pos.column))\n\t return hideTooltip();\n\t }\n\n\t if (tooltipAnnotation == annotation)\n\t return;\n\t tooltipAnnotation = annotation.text.join(\"<br/>\");\n\n\t tooltip.setHtml(tooltipAnnotation);\n\t tooltip.show();\n\t editor._signal(\"showGutterTooltip\", tooltip);\n\t editor.on(\"mousewheel\", hideTooltip);\n\n\t if (mouseHandler.$tooltipFollowsMouse) {\n\t moveTooltip(mouseEvent);\n\t } else {\n\t var gutterElement = mouseEvent.domEvent.target;\n\t var rect = gutterElement.getBoundingClientRect();\n\t var style = tooltip.getElement().style;\n\t style.left = rect.right + \"px\";\n\t style.top = rect.bottom + \"px\";\n\t }\n\t }\n\n\t function hideTooltip() {\n\t if (tooltipTimeout)\n\t tooltipTimeout = clearTimeout(tooltipTimeout);\n\t if (tooltipAnnotation) {\n\t tooltip.hide();\n\t tooltipAnnotation = null;\n\t editor._signal(\"hideGutterTooltip\", tooltip);\n\t editor.removeEventListener(\"mousewheel\", hideTooltip);\n\t }\n\t }\n\n\t function moveTooltip(e) {\n\t tooltip.setPosition(e.x, e.y);\n\t }\n\n\t mouseHandler.editor.setDefaultHandler(\"guttermousemove\", function(e) {\n\t var target = e.domEvent.target || e.domEvent.srcElement;\n\t if (dom.hasCssClass(target, \"ace_fold-widget\"))\n\t return hideTooltip();\n\n\t if (tooltipAnnotation && mouseHandler.$tooltipFollowsMouse)\n\t moveTooltip(e);\n\n\t mouseEvent = e;\n\t if (tooltipTimeout)\n\t return;\n\t tooltipTimeout = setTimeout(function() {\n\t tooltipTimeout = null;\n\t if (mouseEvent && !mouseHandler.isMousePressed)\n\t showTooltip();\n\t else\n\t hideTooltip();\n\t }, 50);\n\t });\n\n\t event.addListener(editor.renderer.$gutter, \"mouseout\", function(e) {\n\t mouseEvent = null;\n\t if (!tooltipAnnotation || tooltipTimeout)\n\t return;\n\n\t tooltipTimeout = setTimeout(function() {\n\t tooltipTimeout = null;\n\t hideTooltip();\n\t }, 50);\n\t });\n\t \n\t editor.on(\"changeSession\", hideTooltip);\n\t}\n\n\tfunction GutterTooltip(parentNode) {\n\t Tooltip.call(this, parentNode);\n\t}\n\n\toop.inherits(GutterTooltip, Tooltip);\n\n\t(function(){\n\t this.setPosition = function(x, y) {\n\t var windowWidth = window.innerWidth || document.documentElement.clientWidth;\n\t var windowHeight = window.innerHeight || document.documentElement.clientHeight;\n\t var width = this.getWidth();\n\t var height = this.getHeight();\n\t x += 15;\n\t y += 15;\n\t if (x + width > windowWidth) {\n\t x -= (x + width) - windowWidth;\n\t }\n\t if (y + height > windowHeight) {\n\t y -= 20 + height;\n\t }\n\t Tooltip.prototype.setPosition.call(this, x, y);\n\t };\n\n\t}).call(GutterTooltip.prototype);\n\n\n\n\texports.GutterHandler = GutterHandler;\n\n\t});\n\n\tace.define(\"ace/mouse/mouse_event\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar event = acequire(\"../lib/event\");\n\tvar useragent = acequire(\"../lib/useragent\");\n\tvar MouseEvent = exports.MouseEvent = function(domEvent, editor) {\n\t this.domEvent = domEvent;\n\t this.editor = editor;\n\t \n\t this.x = this.clientX = domEvent.clientX;\n\t this.y = this.clientY = domEvent.clientY;\n\n\t this.$pos = null;\n\t this.$inSelection = null;\n\t \n\t this.propagationStopped = false;\n\t this.defaultPrevented = false;\n\t};\n\n\t(function() { \n\t \n\t this.stopPropagation = function() {\n\t event.stopPropagation(this.domEvent);\n\t this.propagationStopped = true;\n\t };\n\t \n\t this.preventDefault = function() {\n\t event.preventDefault(this.domEvent);\n\t this.defaultPrevented = true;\n\t };\n\t \n\t this.stop = function() {\n\t this.stopPropagation();\n\t this.preventDefault();\n\t };\n\t this.getDocumentPosition = function() {\n\t if (this.$pos)\n\t return this.$pos;\n\t \n\t this.$pos = this.editor.renderer.screenToTextCoordinates(this.clientX, this.clientY);\n\t return this.$pos;\n\t };\n\t this.inSelection = function() {\n\t if (this.$inSelection !== null)\n\t return this.$inSelection;\n\t \n\t var editor = this.editor;\n\t \n\n\t var selectionRange = editor.getSelectionRange();\n\t if (selectionRange.isEmpty())\n\t this.$inSelection = false;\n\t else {\n\t var pos = this.getDocumentPosition();\n\t this.$inSelection = selectionRange.contains(pos.row, pos.column);\n\t }\n\n\t return this.$inSelection;\n\t };\n\t this.getButton = function() {\n\t return event.getButton(this.domEvent);\n\t };\n\t this.getShiftKey = function() {\n\t return this.domEvent.shiftKey;\n\t };\n\t \n\t this.getAccelKey = useragent.isMac\n\t ? function() { return this.domEvent.metaKey; }\n\t : function() { return this.domEvent.ctrlKey; };\n\t \n\t}).call(MouseEvent.prototype);\n\n\t});\n\n\tace.define(\"ace/mouse/dragdrop_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar dom = acequire(\"../lib/dom\");\n\tvar event = acequire(\"../lib/event\");\n\tvar useragent = acequire(\"../lib/useragent\");\n\n\tvar AUTOSCROLL_DELAY = 200;\n\tvar SCROLL_CURSOR_DELAY = 200;\n\tvar SCROLL_CURSOR_HYSTERESIS = 5;\n\n\tfunction DragdropHandler(mouseHandler) {\n\n\t var editor = mouseHandler.editor;\n\n\t var blankImage = dom.createElement(\"img\");\n\t blankImage.src = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n\t if (useragent.isOpera)\n\t blankImage.style.cssText = \"width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;\";\n\n\t var exports = [\"dragWait\", \"dragWaitEnd\", \"startDrag\", \"dragReadyEnd\", \"onMouseDrag\"];\n\n\t exports.forEach(function(x) {\n\t mouseHandler[x] = this[x];\n\t }, this);\n\t editor.addEventListener(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n\n\n\t var mouseTarget = editor.container;\n\t var dragSelectionMarker, x, y;\n\t var timerId, range;\n\t var dragCursor, counter = 0;\n\t var dragOperation;\n\t var isInternal;\n\t var autoScrollStartTime;\n\t var cursorMovedTime;\n\t var cursorPointOnCaretMoved;\n\n\t this.onDragStart = function(e) {\n\t if (this.cancelDrag || !mouseTarget.draggable) {\n\t var self = this;\n\t setTimeout(function(){\n\t self.startSelect();\n\t self.captureMouse(e);\n\t }, 0);\n\t return e.preventDefault();\n\t }\n\t range = editor.getSelectionRange();\n\n\t var dataTransfer = e.dataTransfer;\n\t dataTransfer.effectAllowed = editor.getReadOnly() ? \"copy\" : \"copyMove\";\n\t if (useragent.isOpera) {\n\t editor.container.appendChild(blankImage);\n\t blankImage.scrollTop = 0;\n\t }\n\t dataTransfer.setDragImage && dataTransfer.setDragImage(blankImage, 0, 0);\n\t if (useragent.isOpera) {\n\t editor.container.removeChild(blankImage);\n\t }\n\t dataTransfer.clearData();\n\t dataTransfer.setData(\"Text\", editor.session.getTextRange());\n\n\t isInternal = true;\n\t this.setState(\"drag\");\n\t };\n\n\t this.onDragEnd = function(e) {\n\t mouseTarget.draggable = false;\n\t isInternal = false;\n\t this.setState(null);\n\t if (!editor.getReadOnly()) {\n\t var dropEffect = e.dataTransfer.dropEffect;\n\t if (!dragOperation && dropEffect == \"move\")\n\t editor.session.remove(editor.getSelectionRange());\n\t editor.renderer.$cursorLayer.setBlinking(true);\n\t }\n\t this.editor.unsetStyle(\"ace_dragging\");\n\t this.editor.renderer.setCursorStyle(\"\");\n\t };\n\n\t this.onDragEnter = function(e) {\n\t if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n\t return;\n\t x = e.clientX;\n\t y = e.clientY;\n\t if (!dragSelectionMarker)\n\t addDragMarker();\n\t counter++;\n\t e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n\t return event.preventDefault(e);\n\t };\n\n\t this.onDragOver = function(e) {\n\t if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n\t return;\n\t x = e.clientX;\n\t y = e.clientY;\n\t if (!dragSelectionMarker) {\n\t addDragMarker();\n\t counter++;\n\t }\n\t if (onMouseMoveTimer !== null)\n\t onMouseMoveTimer = null;\n\n\t e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n\t return event.preventDefault(e);\n\t };\n\n\t this.onDragLeave = function(e) {\n\t counter--;\n\t if (counter <= 0 && dragSelectionMarker) {\n\t clearDragMarker();\n\t dragOperation = null;\n\t return event.preventDefault(e);\n\t }\n\t };\n\n\t this.onDrop = function(e) {\n\t if (!dragCursor)\n\t return;\n\t var dataTransfer = e.dataTransfer;\n\t if (isInternal) {\n\t switch (dragOperation) {\n\t case \"move\":\n\t if (range.contains(dragCursor.row, dragCursor.column)) {\n\t range = {\n\t start: dragCursor,\n\t end: dragCursor\n\t };\n\t } else {\n\t range = editor.moveText(range, dragCursor);\n\t }\n\t break;\n\t case \"copy\":\n\t range = editor.moveText(range, dragCursor, true);\n\t break;\n\t }\n\t } else {\n\t var dropData = dataTransfer.getData('Text');\n\t range = {\n\t start: dragCursor,\n\t end: editor.session.insert(dragCursor, dropData)\n\t };\n\t editor.focus();\n\t dragOperation = null;\n\t }\n\t clearDragMarker();\n\t return event.preventDefault(e);\n\t };\n\n\t event.addListener(mouseTarget, \"dragstart\", this.onDragStart.bind(mouseHandler));\n\t event.addListener(mouseTarget, \"dragend\", this.onDragEnd.bind(mouseHandler));\n\t event.addListener(mouseTarget, \"dragenter\", this.onDragEnter.bind(mouseHandler));\n\t event.addListener(mouseTarget, \"dragover\", this.onDragOver.bind(mouseHandler));\n\t event.addListener(mouseTarget, \"dragleave\", this.onDragLeave.bind(mouseHandler));\n\t event.addListener(mouseTarget, \"drop\", this.onDrop.bind(mouseHandler));\n\n\t function scrollCursorIntoView(cursor, prevCursor) {\n\t var now = Date.now();\n\t var vMovement = !prevCursor || cursor.row != prevCursor.row;\n\t var hMovement = !prevCursor || cursor.column != prevCursor.column;\n\t if (!cursorMovedTime || vMovement || hMovement) {\n\t editor.$blockScrolling += 1;\n\t editor.moveCursorToPosition(cursor);\n\t editor.$blockScrolling -= 1;\n\t cursorMovedTime = now;\n\t cursorPointOnCaretMoved = {x: x, y: y};\n\t } else {\n\t var distance = calcDistance(cursorPointOnCaretMoved.x, cursorPointOnCaretMoved.y, x, y);\n\t if (distance > SCROLL_CURSOR_HYSTERESIS) {\n\t cursorMovedTime = null;\n\t } else if (now - cursorMovedTime >= SCROLL_CURSOR_DELAY) {\n\t editor.renderer.scrollCursorIntoView();\n\t cursorMovedTime = null;\n\t }\n\t }\n\t }\n\n\t function autoScroll(cursor, prevCursor) {\n\t var now = Date.now();\n\t var lineHeight = editor.renderer.layerConfig.lineHeight;\n\t var characterWidth = editor.renderer.layerConfig.characterWidth;\n\t var editorRect = editor.renderer.scroller.getBoundingClientRect();\n\t var offsets = {\n\t x: {\n\t left: x - editorRect.left,\n\t right: editorRect.right - x\n\t },\n\t y: {\n\t top: y - editorRect.top,\n\t bottom: editorRect.bottom - y\n\t }\n\t };\n\t var nearestXOffset = Math.min(offsets.x.left, offsets.x.right);\n\t var nearestYOffset = Math.min(offsets.y.top, offsets.y.bottom);\n\t var scrollCursor = {row: cursor.row, column: cursor.column};\n\t if (nearestXOffset / characterWidth <= 2) {\n\t scrollCursor.column += (offsets.x.left < offsets.x.right ? -3 : +2);\n\t }\n\t if (nearestYOffset / lineHeight <= 1) {\n\t scrollCursor.row += (offsets.y.top < offsets.y.bottom ? -1 : +1);\n\t }\n\t var vScroll = cursor.row != scrollCursor.row;\n\t var hScroll = cursor.column != scrollCursor.column;\n\t var vMovement = !prevCursor || cursor.row != prevCursor.row;\n\t if (vScroll || (hScroll && !vMovement)) {\n\t if (!autoScrollStartTime)\n\t autoScrollStartTime = now;\n\t else if (now - autoScrollStartTime >= AUTOSCROLL_DELAY)\n\t editor.renderer.scrollCursorIntoView(scrollCursor);\n\t } else {\n\t autoScrollStartTime = null;\n\t }\n\t }\n\n\t function onDragInterval() {\n\t var prevCursor = dragCursor;\n\t dragCursor = editor.renderer.screenToTextCoordinates(x, y);\n\t scrollCursorIntoView(dragCursor, prevCursor);\n\t autoScroll(dragCursor, prevCursor);\n\t }\n\n\t function addDragMarker() {\n\t range = editor.selection.toOrientedRange();\n\t dragSelectionMarker = editor.session.addMarker(range, \"ace_selection\", editor.getSelectionStyle());\n\t editor.clearSelection();\n\t if (editor.isFocused())\n\t editor.renderer.$cursorLayer.setBlinking(false);\n\t clearInterval(timerId);\n\t onDragInterval();\n\t timerId = setInterval(onDragInterval, 20);\n\t counter = 0;\n\t event.addListener(document, \"mousemove\", onMouseMove);\n\t }\n\n\t function clearDragMarker() {\n\t clearInterval(timerId);\n\t editor.session.removeMarker(dragSelectionMarker);\n\t dragSelectionMarker = null;\n\t editor.$blockScrolling += 1;\n\t editor.selection.fromOrientedRange(range);\n\t editor.$blockScrolling -= 1;\n\t if (editor.isFocused() && !isInternal)\n\t editor.renderer.$cursorLayer.setBlinking(!editor.getReadOnly());\n\t range = null;\n\t dragCursor = null;\n\t counter = 0;\n\t autoScrollStartTime = null;\n\t cursorMovedTime = null;\n\t event.removeListener(document, \"mousemove\", onMouseMove);\n\t }\n\t var onMouseMoveTimer = null;\n\t function onMouseMove() {\n\t if (onMouseMoveTimer == null) {\n\t onMouseMoveTimer = setTimeout(function() {\n\t if (onMouseMoveTimer != null && dragSelectionMarker)\n\t clearDragMarker();\n\t }, 20);\n\t }\n\t }\n\n\t function canAccept(dataTransfer) {\n\t var types = dataTransfer.types;\n\t return !types || Array.prototype.some.call(types, function(type) {\n\t return type == 'text/plain' || type == 'Text';\n\t });\n\t }\n\n\t function getDropEffect(e) {\n\t var copyAllowed = ['copy', 'copymove', 'all', 'uninitialized'];\n\t var moveAllowed = ['move', 'copymove', 'linkmove', 'all', 'uninitialized'];\n\n\t var copyModifierState = useragent.isMac ? e.altKey : e.ctrlKey;\n\t var effectAllowed = \"uninitialized\";\n\t try {\n\t effectAllowed = e.dataTransfer.effectAllowed.toLowerCase();\n\t } catch (e) {}\n\t var dropEffect = \"none\";\n\n\t if (copyModifierState && copyAllowed.indexOf(effectAllowed) >= 0)\n\t dropEffect = \"copy\";\n\t else if (moveAllowed.indexOf(effectAllowed) >= 0)\n\t dropEffect = \"move\";\n\t else if (copyAllowed.indexOf(effectAllowed) >= 0)\n\t dropEffect = \"copy\";\n\n\t return dropEffect;\n\t }\n\t}\n\n\t(function() {\n\n\t this.dragWait = function() {\n\t var interval = Date.now() - this.mousedownEvent.time;\n\t if (interval > this.editor.getDragDelay())\n\t this.startDrag();\n\t };\n\n\t this.dragWaitEnd = function() {\n\t var target = this.editor.container;\n\t target.draggable = false;\n\t this.startSelect(this.mousedownEvent.getDocumentPosition());\n\t this.selectEnd();\n\t };\n\n\t this.dragReadyEnd = function(e) {\n\t this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly());\n\t this.editor.unsetStyle(\"ace_dragging\");\n\t this.editor.renderer.setCursorStyle(\"\");\n\t this.dragWaitEnd();\n\t };\n\n\t this.startDrag = function(){\n\t this.cancelDrag = false;\n\t var editor = this.editor;\n\t var target = editor.container;\n\t target.draggable = true;\n\t editor.renderer.$cursorLayer.setBlinking(false);\n\t editor.setStyle(\"ace_dragging\");\n\t var cursorStyle = useragent.isWin ? \"default\" : \"move\";\n\t editor.renderer.setCursorStyle(cursorStyle);\n\t this.setState(\"dragReady\");\n\t };\n\n\t this.onMouseDrag = function(e) {\n\t var target = this.editor.container;\n\t if (useragent.isIE && this.state == \"dragReady\") {\n\t var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n\t if (distance > 3)\n\t target.dragDrop();\n\t }\n\t if (this.state === \"dragWait\") {\n\t var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n\t if (distance > 0) {\n\t target.draggable = false;\n\t this.startSelect(this.mousedownEvent.getDocumentPosition());\n\t }\n\t }\n\t };\n\n\t this.onMouseDown = function(e) {\n\t if (!this.$dragEnabled)\n\t return;\n\t this.mousedownEvent = e;\n\t var editor = this.editor;\n\n\t var inSelection = e.inSelection();\n\t var button = e.getButton();\n\t var clickCount = e.domEvent.detail || 1;\n\t if (clickCount === 1 && button === 0 && inSelection) {\n\t if (e.editor.inMultiSelectMode && (e.getAccelKey() || e.getShiftKey()))\n\t return;\n\t this.mousedownEvent.time = Date.now();\n\t var eventTarget = e.domEvent.target || e.domEvent.srcElement;\n\t if (\"unselectable\" in eventTarget)\n\t eventTarget.unselectable = \"on\";\n\t if (editor.getDragDelay()) {\n\t if (useragent.isWebKit) {\n\t this.cancelDrag = true;\n\t var mouseTarget = editor.container;\n\t mouseTarget.draggable = true;\n\t }\n\t this.setState(\"dragWait\");\n\t } else {\n\t this.startDrag();\n\t }\n\t this.captureMouse(e, this.onMouseDrag.bind(this));\n\t e.defaultPrevented = true;\n\t }\n\t };\n\n\t}).call(DragdropHandler.prototype);\n\n\n\tfunction calcDistance(ax, ay, bx, by) {\n\t return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n\t}\n\n\texports.DragdropHandler = DragdropHandler;\n\n\t});\n\n\tace.define(\"ace/lib/net\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\t\"use strict\";\n\tvar dom = acequire(\"./dom\");\n\n\texports.get = function (url, callback) {\n\t var xhr = new XMLHttpRequest();\n\t xhr.open('GET', url, true);\n\t xhr.onreadystatechange = function () {\n\t if (xhr.readyState === 4) {\n\t callback(xhr.responseText);\n\t }\n\t };\n\t xhr.send(null);\n\t};\n\n\texports.loadScript = function(path, callback) {\n\t var head = dom.getDocumentHead();\n\t var s = document.createElement('script');\n\n\t s.src = path;\n\t head.appendChild(s);\n\n\t s.onload = s.onreadystatechange = function(_, isAbort) {\n\t if (isAbort || !s.readyState || s.readyState == \"loaded\" || s.readyState == \"complete\") {\n\t s = s.onload = s.onreadystatechange = null;\n\t if (!isAbort)\n\t callback();\n\t }\n\t };\n\t};\n\texports.qualifyURL = function(url) {\n\t var a = document.createElement('a');\n\t a.href = url;\n\t return a.href;\n\t}\n\n\t});\n\n\tace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar EventEmitter = {};\n\tvar stopPropagation = function() { this.propagationStopped = true; };\n\tvar preventDefault = function() { this.defaultPrevented = true; };\n\n\tEventEmitter._emit =\n\tEventEmitter._dispatchEvent = function(eventName, e) {\n\t this._eventRegistry || (this._eventRegistry = {});\n\t this._defaultHandlers || (this._defaultHandlers = {});\n\n\t var listeners = this._eventRegistry[eventName] || [];\n\t var defaultHandler = this._defaultHandlers[eventName];\n\t if (!listeners.length && !defaultHandler)\n\t return;\n\n\t if (typeof e != \"object\" || !e)\n\t e = {};\n\n\t if (!e.type)\n\t e.type = eventName;\n\t if (!e.stopPropagation)\n\t e.stopPropagation = stopPropagation;\n\t if (!e.preventDefault)\n\t e.preventDefault = preventDefault;\n\n\t listeners = listeners.slice();\n\t for (var i=0; i<listeners.length; i++) {\n\t listeners[i](e, this);\n\t if (e.propagationStopped)\n\t break;\n\t }\n\t \n\t if (defaultHandler && !e.defaultPrevented)\n\t return defaultHandler(e, this);\n\t};\n\n\n\tEventEmitter._signal = function(eventName, e) {\n\t var listeners = (this._eventRegistry || {})[eventName];\n\t if (!listeners)\n\t return;\n\t listeners = listeners.slice();\n\t for (var i=0; i<listeners.length; i++)\n\t listeners[i](e, this);\n\t};\n\n\tEventEmitter.once = function(eventName, callback) {\n\t var _self = this;\n\t callback && this.addEventListener(eventName, function newCallback() {\n\t _self.removeEventListener(eventName, newCallback);\n\t callback.apply(null, arguments);\n\t });\n\t};\n\n\n\tEventEmitter.setDefaultHandler = function(eventName, callback) {\n\t var handlers = this._defaultHandlers\n\t if (!handlers)\n\t handlers = this._defaultHandlers = {_disabled_: {}};\n\t \n\t if (handlers[eventName]) {\n\t var old = handlers[eventName];\n\t var disabled = handlers._disabled_[eventName];\n\t if (!disabled)\n\t handlers._disabled_[eventName] = disabled = [];\n\t disabled.push(old);\n\t var i = disabled.indexOf(callback);\n\t if (i != -1) \n\t disabled.splice(i, 1);\n\t }\n\t handlers[eventName] = callback;\n\t};\n\tEventEmitter.removeDefaultHandler = function(eventName, callback) {\n\t var handlers = this._defaultHandlers\n\t if (!handlers)\n\t return;\n\t var disabled = handlers._disabled_[eventName];\n\t \n\t if (handlers[eventName] == callback) {\n\t var old = handlers[eventName];\n\t if (disabled)\n\t this.setDefaultHandler(eventName, disabled.pop());\n\t } else if (disabled) {\n\t var i = disabled.indexOf(callback);\n\t if (i != -1)\n\t disabled.splice(i, 1);\n\t }\n\t};\n\n\tEventEmitter.on =\n\tEventEmitter.addEventListener = function(eventName, callback, capturing) {\n\t this._eventRegistry = this._eventRegistry || {};\n\n\t var listeners = this._eventRegistry[eventName];\n\t if (!listeners)\n\t listeners = this._eventRegistry[eventName] = [];\n\n\t if (listeners.indexOf(callback) == -1)\n\t listeners[capturing ? \"unshift\" : \"push\"](callback);\n\t return callback;\n\t};\n\n\tEventEmitter.off =\n\tEventEmitter.removeListener =\n\tEventEmitter.removeEventListener = function(eventName, callback) {\n\t this._eventRegistry = this._eventRegistry || {};\n\n\t var listeners = this._eventRegistry[eventName];\n\t if (!listeners)\n\t return;\n\n\t var index = listeners.indexOf(callback);\n\t if (index !== -1)\n\t listeners.splice(index, 1);\n\t};\n\n\tEventEmitter.removeAllListeners = function(eventName) {\n\t if (this._eventRegistry) this._eventRegistry[eventName] = [];\n\t};\n\n\texports.EventEmitter = EventEmitter;\n\n\t});\n\n\tace.define(\"ace/lib/app_config\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\t\"no use strict\";\n\n\tvar oop = acequire(\"./oop\");\n\tvar EventEmitter = acequire(\"./event_emitter\").EventEmitter;\n\n\tvar optionsProvider = {\n\t setOptions: function(optList) {\n\t Object.keys(optList).forEach(function(key) {\n\t this.setOption(key, optList[key]);\n\t }, this);\n\t },\n\t getOptions: function(optionNames) {\n\t var result = {};\n\t if (!optionNames) {\n\t optionNames = Object.keys(this.$options);\n\t } else if (!Array.isArray(optionNames)) {\n\t result = optionNames;\n\t optionNames = Object.keys(result);\n\t }\n\t optionNames.forEach(function(key) {\n\t result[key] = this.getOption(key);\n\t }, this);\n\t return result;\n\t },\n\t setOption: function(name, value) {\n\t if (this[\"$\" + name] === value)\n\t return;\n\t var opt = this.$options[name];\n\t if (!opt) {\n\t return warn('misspelled option \"' + name + '\"');\n\t }\n\t if (opt.forwardTo)\n\t return this[opt.forwardTo] && this[opt.forwardTo].setOption(name, value);\n\n\t if (!opt.handlesSet)\n\t this[\"$\" + name] = value;\n\t if (opt && opt.set)\n\t opt.set.call(this, value);\n\t },\n\t getOption: function(name) {\n\t var opt = this.$options[name];\n\t if (!opt) {\n\t return warn('misspelled option \"' + name + '\"');\n\t }\n\t if (opt.forwardTo)\n\t return this[opt.forwardTo] && this[opt.forwardTo].getOption(name);\n\t return opt && opt.get ? opt.get.call(this) : this[\"$\" + name];\n\t }\n\t};\n\n\tfunction warn(message) {\n\t if (typeof console != \"undefined\" && console.warn)\n\t console.warn.apply(console, arguments);\n\t}\n\n\tfunction reportError(msg, data) {\n\t var e = new Error(msg);\n\t e.data = data;\n\t if (typeof console == \"object\" && console.error)\n\t console.error(e);\n\t setTimeout(function() { throw e; });\n\t}\n\n\tvar AppConfig = function() {\n\t this.$defaultOptions = {};\n\t};\n\n\t(function() {\n\t oop.implement(this, EventEmitter);\n\t this.defineOptions = function(obj, path, options) {\n\t if (!obj.$options)\n\t this.$defaultOptions[path] = obj.$options = {};\n\n\t Object.keys(options).forEach(function(key) {\n\t var opt = options[key];\n\t if (typeof opt == \"string\")\n\t opt = {forwardTo: opt};\n\n\t opt.name || (opt.name = key);\n\t obj.$options[opt.name] = opt;\n\t if (\"initialValue\" in opt)\n\t obj[\"$\" + opt.name] = opt.initialValue;\n\t });\n\t oop.implement(obj, optionsProvider);\n\n\t return this;\n\t };\n\n\t this.resetOptions = function(obj) {\n\t Object.keys(obj.$options).forEach(function(key) {\n\t var opt = obj.$options[key];\n\t if (\"value\" in opt)\n\t obj.setOption(key, opt.value);\n\t });\n\t };\n\n\t this.setDefaultValue = function(path, name, value) {\n\t var opts = this.$defaultOptions[path] || (this.$defaultOptions[path] = {});\n\t if (opts[name]) {\n\t if (opts.forwardTo)\n\t this.setDefaultValue(opts.forwardTo, name, value);\n\t else\n\t opts[name].value = value;\n\t }\n\t };\n\n\t this.setDefaultValues = function(path, optionHash) {\n\t Object.keys(optionHash).forEach(function(key) {\n\t this.setDefaultValue(path, key, optionHash[key]);\n\t }, this);\n\t };\n\t \n\t this.warn = warn;\n\t this.reportError = reportError;\n\t \n\t}).call(AppConfig.prototype);\n\n\texports.AppConfig = AppConfig;\n\n\t});\n\n\tace.define(\"ace/config\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/lib/net\",\"ace/lib/app_config\"], function(acequire, exports, module) {\n\t\"no use strict\";\n\n\tvar lang = acequire(\"./lib/lang\");\n\tvar oop = acequire(\"./lib/oop\");\n\tvar net = acequire(\"./lib/net\");\n\tvar AppConfig = acequire(\"./lib/app_config\").AppConfig;\n\n\tmodule.exports = exports = new AppConfig();\n\n\tvar global = (function() {\n\t return this || typeof window != \"undefined\" && window;\n\t})();\n\n\tvar options = {\n\t packaged: false,\n\t workerPath: null,\n\t modePath: null,\n\t themePath: null,\n\t basePath: \"\",\n\t suffix: \".js\",\n\t $moduleUrls: {}\n\t};\n\n\texports.get = function(key) {\n\t if (!options.hasOwnProperty(key))\n\t throw new Error(\"Unknown config key: \" + key);\n\n\t return options[key];\n\t};\n\n\texports.set = function(key, value) {\n\t if (!options.hasOwnProperty(key))\n\t throw new Error(\"Unknown config key: \" + key);\n\n\t options[key] = value;\n\t};\n\n\texports.all = function() {\n\t return lang.copyObject(options);\n\t};\n\texports.moduleUrl = function(name, component) {\n\t if (options.$moduleUrls[name])\n\t return options.$moduleUrls[name];\n\n\t var parts = name.split(\"/\");\n\t component = component || parts[parts.length - 2] || \"\";\n\t var sep = component == \"snippets\" ? \"/\" : \"-\";\n\t var base = parts[parts.length - 1];\n\t if (component == \"worker\" && sep == \"-\") {\n\t var re = new RegExp(\"^\" + component + \"[\\\\-_]|[\\\\-_]\" + component + \"$\", \"g\");\n\t base = base.replace(re, \"\");\n\t }\n\n\t if ((!base || base == component) && parts.length > 1)\n\t base = parts[parts.length - 2];\n\t var path = options[component + \"Path\"];\n\t if (path == null) {\n\t path = options.basePath;\n\t } else if (sep == \"/\") {\n\t component = sep = \"\";\n\t }\n\t if (path && path.slice(-1) != \"/\")\n\t path += \"/\";\n\t return path + component + sep + base + this.get(\"suffix\");\n\t};\n\n\texports.setModuleUrl = function(name, subst) {\n\t return options.$moduleUrls[name] = subst;\n\t};\n\n\texports.$loading = {};\n\texports.loadModule = function(moduleName, onLoad) {\n\t var module, moduleType;\n\t if (Array.isArray(moduleName)) {\n\t moduleType = moduleName[0];\n\t moduleName = moduleName[1];\n\t }\n\n\t try {\n\t module = acequire(moduleName);\n\t } catch (e) {}\n\t if (module && !exports.$loading[moduleName])\n\t return onLoad && onLoad(module);\n\n\t if (!exports.$loading[moduleName])\n\t exports.$loading[moduleName] = [];\n\n\t exports.$loading[moduleName].push(onLoad);\n\n\t if (exports.$loading[moduleName].length > 1)\n\t return;\n\n\t var afterLoad = function() {\n\t acequire([moduleName], function(module) {\n\t exports._emit(\"load.module\", {name: moduleName, module: module});\n\t var listeners = exports.$loading[moduleName];\n\t exports.$loading[moduleName] = null;\n\t listeners.forEach(function(onLoad) {\n\t onLoad && onLoad(module);\n\t });\n\t });\n\t };\n\n\t if (!exports.get(\"packaged\"))\n\t return afterLoad();\n\t net.loadScript(exports.moduleUrl(moduleName, moduleType), afterLoad);\n\t};\n\tinit(true);function init(packaged) {\n\n\t if (!global || !global.document)\n\t return;\n\t \n\t options.packaged = packaged || acequire.packaged || module.packaged || (global.define && __webpack_require__(69).packaged);\n\n\t var scriptOptions = {};\n\t var scriptUrl = \"\";\n\t var currentScript = (document.currentScript || document._currentScript ); // native or polyfill\n\t var currentDocument = currentScript && currentScript.ownerDocument || document;\n\t \n\t var scripts = currentDocument.getElementsByTagName(\"script\");\n\t for (var i=0; i<scripts.length; i++) {\n\t var script = scripts[i];\n\n\t var src = script.src || script.getAttribute(\"src\");\n\t if (!src)\n\t continue;\n\n\t var attributes = script.attributes;\n\t for (var j=0, l=attributes.length; j < l; j++) {\n\t var attr = attributes[j];\n\t if (attr.name.indexOf(\"data-ace-\") === 0) {\n\t scriptOptions[deHyphenate(attr.name.replace(/^data-ace-/, \"\"))] = attr.value;\n\t }\n\t }\n\n\t var m = src.match(/^(.*)\\/ace(\\-\\w+)?\\.js(\\?|$)/);\n\t if (m)\n\t scriptUrl = m[1];\n\t }\n\n\t if (scriptUrl) {\n\t scriptOptions.base = scriptOptions.base || scriptUrl;\n\t scriptOptions.packaged = true;\n\t }\n\n\t scriptOptions.basePath = scriptOptions.base;\n\t scriptOptions.workerPath = scriptOptions.workerPath || scriptOptions.base;\n\t scriptOptions.modePath = scriptOptions.modePath || scriptOptions.base;\n\t scriptOptions.themePath = scriptOptions.themePath || scriptOptions.base;\n\t delete scriptOptions.base;\n\n\t for (var key in scriptOptions)\n\t if (typeof scriptOptions[key] !== \"undefined\")\n\t exports.set(key, scriptOptions[key]);\n\t}\n\n\texports.init = init;\n\n\tfunction deHyphenate(str) {\n\t return str.replace(/-(.)/g, function(m, m1) { return m1.toUpperCase(); });\n\t}\n\n\t});\n\n\tace.define(\"ace/mouse/mouse_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/mouse/default_handlers\",\"ace/mouse/default_gutter_handler\",\"ace/mouse/mouse_event\",\"ace/mouse/dragdrop_handler\",\"ace/config\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar event = acequire(\"../lib/event\");\n\tvar useragent = acequire(\"../lib/useragent\");\n\tvar DefaultHandlers = acequire(\"./default_handlers\").DefaultHandlers;\n\tvar DefaultGutterHandler = acequire(\"./default_gutter_handler\").GutterHandler;\n\tvar MouseEvent = acequire(\"./mouse_event\").MouseEvent;\n\tvar DragdropHandler = acequire(\"./dragdrop_handler\").DragdropHandler;\n\tvar config = acequire(\"../config\");\n\n\tvar MouseHandler = function(editor) {\n\t var _self = this;\n\t this.editor = editor;\n\n\t new DefaultHandlers(this);\n\t new DefaultGutterHandler(this);\n\t new DragdropHandler(this);\n\n\t var focusEditor = function(e) {\n\t var windowBlurred = !document.hasFocus || !document.hasFocus()\n\t || !editor.isFocused() && document.activeElement == (editor.textInput && editor.textInput.getElement())\n\t if (windowBlurred)\n\t window.focus();\n\t editor.focus();\n\t };\n\n\t var mouseTarget = editor.renderer.getMouseEventTarget();\n\t event.addListener(mouseTarget, \"click\", this.onMouseEvent.bind(this, \"click\"));\n\t event.addListener(mouseTarget, \"mousemove\", this.onMouseMove.bind(this, \"mousemove\"));\n\t event.addMultiMouseDownListener([\n\t mouseTarget,\n\t editor.renderer.scrollBarV && editor.renderer.scrollBarV.inner,\n\t editor.renderer.scrollBarH && editor.renderer.scrollBarH.inner,\n\t editor.textInput && editor.textInput.getElement()\n\t ].filter(Boolean), [400, 300, 250], this, \"onMouseEvent\");\n\t event.addMouseWheelListener(editor.container, this.onMouseWheel.bind(this, \"mousewheel\"));\n\t event.addTouchMoveListener(editor.container, this.onTouchMove.bind(this, \"touchmove\"));\n\n\t var gutterEl = editor.renderer.$gutter;\n\t event.addListener(gutterEl, \"mousedown\", this.onMouseEvent.bind(this, \"guttermousedown\"));\n\t event.addListener(gutterEl, \"click\", this.onMouseEvent.bind(this, \"gutterclick\"));\n\t event.addListener(gutterEl, \"dblclick\", this.onMouseEvent.bind(this, \"gutterdblclick\"));\n\t event.addListener(gutterEl, \"mousemove\", this.onMouseEvent.bind(this, \"guttermousemove\"));\n\n\t event.addListener(mouseTarget, \"mousedown\", focusEditor);\n\t event.addListener(gutterEl, \"mousedown\", focusEditor);\n\t if (useragent.isIE && editor.renderer.scrollBarV) {\n\t event.addListener(editor.renderer.scrollBarV.element, \"mousedown\", focusEditor);\n\t event.addListener(editor.renderer.scrollBarH.element, \"mousedown\", focusEditor);\n\t }\n\n\t editor.on(\"mousemove\", function(e){\n\t if (_self.state || _self.$dragDelay || !_self.$dragEnabled)\n\t return;\n\n\t var character = editor.renderer.screenToTextCoordinates(e.x, e.y);\n\t var range = editor.session.selection.getRange();\n\t var renderer = editor.renderer;\n\n\t if (!range.isEmpty() && range.insideStart(character.row, character.column)) {\n\t renderer.setCursorStyle(\"default\");\n\t } else {\n\t renderer.setCursorStyle(\"\");\n\t }\n\t });\n\t};\n\n\t(function() {\n\t this.onMouseEvent = function(name, e) {\n\t this.editor._emit(name, new MouseEvent(e, this.editor));\n\t };\n\n\t this.onMouseMove = function(name, e) {\n\t var listeners = this.editor._eventRegistry && this.editor._eventRegistry.mousemove;\n\t if (!listeners || !listeners.length)\n\t return;\n\n\t this.editor._emit(name, new MouseEvent(e, this.editor));\n\t };\n\n\t this.onMouseWheel = function(name, e) {\n\t var mouseEvent = new MouseEvent(e, this.editor);\n\t mouseEvent.speed = this.$scrollSpeed * 2;\n\t mouseEvent.wheelX = e.wheelX;\n\t mouseEvent.wheelY = e.wheelY;\n\n\t this.editor._emit(name, mouseEvent);\n\t };\n\t \n\t this.onTouchMove = function (name, e) {\n\t var mouseEvent = new MouseEvent(e, this.editor);\n\t mouseEvent.speed = 1;//this.$scrollSpeed * 2;\n\t mouseEvent.wheelX = e.wheelX;\n\t mouseEvent.wheelY = e.wheelY;\n\t this.editor._emit(name, mouseEvent);\n\t };\n\n\t this.setState = function(state) {\n\t this.state = state;\n\t };\n\n\t this.captureMouse = function(ev, mouseMoveHandler) {\n\t this.x = ev.x;\n\t this.y = ev.y;\n\n\t this.isMousePressed = true;\n\t var renderer = this.editor.renderer;\n\t if (renderer.$keepTextAreaAtCursor)\n\t renderer.$keepTextAreaAtCursor = null;\n\n\t var self = this;\n\t var onMouseMove = function(e) {\n\t if (!e) return;\n\t if (useragent.isWebKit && !e.which && self.releaseMouse)\n\t return self.releaseMouse();\n\n\t self.x = e.clientX;\n\t self.y = e.clientY;\n\t mouseMoveHandler && mouseMoveHandler(e);\n\t self.mouseEvent = new MouseEvent(e, self.editor);\n\t self.$mouseMoved = true;\n\t };\n\n\t var onCaptureEnd = function(e) {\n\t clearInterval(timerId);\n\t onCaptureInterval();\n\t self[self.state + \"End\"] && self[self.state + \"End\"](e);\n\t self.state = \"\";\n\t if (renderer.$keepTextAreaAtCursor == null) {\n\t renderer.$keepTextAreaAtCursor = true;\n\t renderer.$moveTextAreaToCursor();\n\t }\n\t self.isMousePressed = false;\n\t self.$onCaptureMouseMove = self.releaseMouse = null;\n\t e && self.onMouseEvent(\"mouseup\", e);\n\t };\n\n\t var onCaptureInterval = function() {\n\t self[self.state] && self[self.state]();\n\t self.$mouseMoved = false;\n\t };\n\n\t if (useragent.isOldIE && ev.domEvent.type == \"dblclick\") {\n\t return setTimeout(function() {onCaptureEnd(ev);});\n\t }\n\n\t self.$onCaptureMouseMove = onMouseMove;\n\t self.releaseMouse = event.capture(this.editor.container, onMouseMove, onCaptureEnd);\n\t var timerId = setInterval(onCaptureInterval, 20);\n\t };\n\t this.releaseMouse = null;\n\t this.cancelContextMenu = function() {\n\t var stop = function(e) {\n\t if (e && e.domEvent && e.domEvent.type != \"contextmenu\")\n\t return;\n\t this.editor.off(\"nativecontextmenu\", stop);\n\t if (e && e.domEvent)\n\t event.stopEvent(e.domEvent);\n\t }.bind(this);\n\t setTimeout(stop, 10);\n\t this.editor.on(\"nativecontextmenu\", stop);\n\t };\n\t}).call(MouseHandler.prototype);\n\n\tconfig.defineOptions(MouseHandler.prototype, \"mouseHandler\", {\n\t scrollSpeed: {initialValue: 2},\n\t dragDelay: {initialValue: (useragent.isMac ? 150 : 0)},\n\t dragEnabled: {initialValue: true},\n\t focusTimout: {initialValue: 0},\n\t tooltipFollowsMouse: {initialValue: true}\n\t});\n\n\n\texports.MouseHandler = MouseHandler;\n\t});\n\n\tace.define(\"ace/mouse/fold_handler\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tfunction FoldHandler(editor) {\n\n\t editor.on(\"click\", function(e) {\n\t var position = e.getDocumentPosition();\n\t var session = editor.session;\n\t var fold = session.getFoldAt(position.row, position.column, 1);\n\t if (fold) {\n\t if (e.getAccelKey())\n\t session.removeFold(fold);\n\t else\n\t session.expandFold(fold);\n\n\t e.stop();\n\t }\n\t });\n\n\t editor.on(\"gutterclick\", function(e) {\n\t var gutterRegion = editor.renderer.$gutterLayer.getRegion(e);\n\n\t if (gutterRegion == \"foldWidgets\") {\n\t var row = e.getDocumentPosition().row;\n\t var session = editor.session;\n\t if (session.foldWidgets && session.foldWidgets[row])\n\t editor.session.onFoldWidgetClick(row, e);\n\t if (!editor.isFocused())\n\t editor.focus();\n\t e.stop();\n\t }\n\t });\n\n\t editor.on(\"gutterdblclick\", function(e) {\n\t var gutterRegion = editor.renderer.$gutterLayer.getRegion(e);\n\n\t if (gutterRegion == \"foldWidgets\") {\n\t var row = e.getDocumentPosition().row;\n\t var session = editor.session;\n\t var data = session.getParentFoldRangeData(row, true);\n\t var range = data.range || data.firstRange;\n\n\t if (range) {\n\t row = range.start.row;\n\t var fold = session.getFoldAt(row, session.getLine(row).length, 1);\n\n\t if (fold) {\n\t session.removeFold(fold);\n\t } else {\n\t session.addFold(\"...\", range);\n\t editor.renderer.scrollCursorIntoView({row: range.start.row, column: 0});\n\t }\n\t }\n\t e.stop();\n\t }\n\t });\n\t}\n\n\texports.FoldHandler = FoldHandler;\n\n\t});\n\n\tace.define(\"ace/keyboard/keybinding\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/event\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar keyUtil = acequire(\"../lib/keys\");\n\tvar event = acequire(\"../lib/event\");\n\n\tvar KeyBinding = function(editor) {\n\t this.$editor = editor;\n\t this.$data = {editor: editor};\n\t this.$handlers = [];\n\t this.setDefaultHandler(editor.commands);\n\t};\n\n\t(function() {\n\t this.setDefaultHandler = function(kb) {\n\t this.removeKeyboardHandler(this.$defaultHandler);\n\t this.$defaultHandler = kb;\n\t this.addKeyboardHandler(kb, 0);\n\t };\n\n\t this.setKeyboardHandler = function(kb) {\n\t var h = this.$handlers;\n\t if (h[h.length - 1] == kb)\n\t return;\n\n\t while (h[h.length - 1] && h[h.length - 1] != this.$defaultHandler)\n\t this.removeKeyboardHandler(h[h.length - 1]);\n\n\t this.addKeyboardHandler(kb, 1);\n\t };\n\n\t this.addKeyboardHandler = function(kb, pos) {\n\t if (!kb)\n\t return;\n\t if (typeof kb == \"function\" && !kb.handleKeyboard)\n\t kb.handleKeyboard = kb;\n\t var i = this.$handlers.indexOf(kb);\n\t if (i != -1)\n\t this.$handlers.splice(i, 1);\n\n\t if (pos == undefined)\n\t this.$handlers.push(kb);\n\t else\n\t this.$handlers.splice(pos, 0, kb);\n\n\t if (i == -1 && kb.attach)\n\t kb.attach(this.$editor);\n\t };\n\n\t this.removeKeyboardHandler = function(kb) {\n\t var i = this.$handlers.indexOf(kb);\n\t if (i == -1)\n\t return false;\n\t this.$handlers.splice(i, 1);\n\t kb.detach && kb.detach(this.$editor);\n\t return true;\n\t };\n\n\t this.getKeyboardHandler = function() {\n\t return this.$handlers[this.$handlers.length - 1];\n\t };\n\t \n\t this.getStatusText = function() {\n\t var data = this.$data;\n\t var editor = data.editor;\n\t return this.$handlers.map(function(h) {\n\t return h.getStatusText && h.getStatusText(editor, data) || \"\";\n\t }).filter(Boolean).join(\" \");\n\t };\n\n\t this.$callKeyboardHandlers = function(hashId, keyString, keyCode, e) {\n\t var toExecute;\n\t var success = false;\n\t var commands = this.$editor.commands;\n\n\t for (var i = this.$handlers.length; i--;) {\n\t toExecute = this.$handlers[i].handleKeyboard(\n\t this.$data, hashId, keyString, keyCode, e\n\t );\n\t if (!toExecute || !toExecute.command)\n\t continue;\n\t if (toExecute.command == \"null\") {\n\t success = true;\n\t } else {\n\t success = commands.exec(toExecute.command, this.$editor, toExecute.args, e);\n\t }\n\t if (success && e && hashId != -1 && \n\t toExecute.passEvent != true && toExecute.command.passEvent != true\n\t ) {\n\t event.stopEvent(e);\n\t }\n\t if (success)\n\t break;\n\t }\n\t \n\t if (!success && hashId == -1) {\n\t toExecute = {command: \"insertstring\"};\n\t success = commands.exec(\"insertstring\", this.$editor, keyString);\n\t }\n\t \n\t if (success && this.$editor._signal)\n\t this.$editor._signal(\"keyboardActivity\", toExecute);\n\t \n\t return success;\n\t };\n\n\t this.onCommandKey = function(e, hashId, keyCode) {\n\t var keyString = keyUtil.keyCodeToString(keyCode);\n\t this.$callKeyboardHandlers(hashId, keyString, keyCode, e);\n\t };\n\n\t this.onTextInput = function(text) {\n\t this.$callKeyboardHandlers(-1, text);\n\t };\n\n\t}).call(KeyBinding.prototype);\n\n\texports.KeyBinding = KeyBinding;\n\t});\n\n\tace.define(\"ace/range\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\t\"use strict\";\n\tvar comparePoints = function(p1, p2) {\n\t return p1.row - p2.row || p1.column - p2.column;\n\t};\n\tvar Range = function(startRow, startColumn, endRow, endColumn) {\n\t this.start = {\n\t row: startRow,\n\t column: startColumn\n\t };\n\n\t this.end = {\n\t row: endRow,\n\t column: endColumn\n\t };\n\t};\n\n\t(function() {\n\t this.isEqual = function(range) {\n\t return this.start.row === range.start.row &&\n\t this.end.row === range.end.row &&\n\t this.start.column === range.start.column &&\n\t this.end.column === range.end.column;\n\t };\n\t this.toString = function() {\n\t return (\"Range: [\" + this.start.row + \"/\" + this.start.column +\n\t \"] -> [\" + this.end.row + \"/\" + this.end.column + \"]\");\n\t };\n\n\t this.contains = function(row, column) {\n\t return this.compare(row, column) == 0;\n\t };\n\t this.compareRange = function(range) {\n\t var cmp,\n\t end = range.end,\n\t start = range.start;\n\n\t cmp = this.compare(end.row, end.column);\n\t if (cmp == 1) {\n\t cmp = this.compare(start.row, start.column);\n\t if (cmp == 1) {\n\t return 2;\n\t } else if (cmp == 0) {\n\t return 1;\n\t } else {\n\t return 0;\n\t }\n\t } else if (cmp == -1) {\n\t return -2;\n\t } else {\n\t cmp = this.compare(start.row, start.column);\n\t if (cmp == -1) {\n\t return -1;\n\t } else if (cmp == 1) {\n\t return 42;\n\t } else {\n\t return 0;\n\t }\n\t }\n\t };\n\t this.comparePoint = function(p) {\n\t return this.compare(p.row, p.column);\n\t };\n\t this.containsRange = function(range) {\n\t return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;\n\t };\n\t this.intersects = function(range) {\n\t var cmp = this.compareRange(range);\n\t return (cmp == -1 || cmp == 0 || cmp == 1);\n\t };\n\t this.isEnd = function(row, column) {\n\t return this.end.row == row && this.end.column == column;\n\t };\n\t this.isStart = function(row, column) {\n\t return this.start.row == row && this.start.column == column;\n\t };\n\t this.setStart = function(row, column) {\n\t if (typeof row == \"object\") {\n\t this.start.column = row.column;\n\t this.start.row = row.row;\n\t } else {\n\t this.start.row = row;\n\t this.start.column = column;\n\t }\n\t };\n\t this.setEnd = function(row, column) {\n\t if (typeof row == \"object\") {\n\t this.end.column = row.column;\n\t this.end.row = row.row;\n\t } else {\n\t this.end.row = row;\n\t this.end.column = column;\n\t }\n\t };\n\t this.inside = function(row, column) {\n\t if (this.compare(row, column) == 0) {\n\t if (this.isEnd(row, column) || this.isStart(row, column)) {\n\t return false;\n\t } else {\n\t return true;\n\t }\n\t }\n\t return false;\n\t };\n\t this.insideStart = function(row, column) {\n\t if (this.compare(row, column) == 0) {\n\t if (this.isEnd(row, column)) {\n\t return false;\n\t } else {\n\t return true;\n\t }\n\t }\n\t return false;\n\t };\n\t this.insideEnd = function(row, column) {\n\t if (this.compare(row, column) == 0) {\n\t if (this.isStart(row, column)) {\n\t return false;\n\t } else {\n\t return true;\n\t }\n\t }\n\t return false;\n\t };\n\t this.compare = function(row, column) {\n\t if (!this.isMultiLine()) {\n\t if (row === this.start.row) {\n\t return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);\n\t }\n\t }\n\n\t if (row < this.start.row)\n\t return -1;\n\n\t if (row > this.end.row)\n\t return 1;\n\n\t if (this.start.row === row)\n\t return column >= this.start.column ? 0 : -1;\n\n\t if (this.end.row === row)\n\t return column <= this.end.column ? 0 : 1;\n\n\t return 0;\n\t };\n\t this.compareStart = function(row, column) {\n\t if (this.start.row == row && this.start.column == column) {\n\t return -1;\n\t } else {\n\t return this.compare(row, column);\n\t }\n\t };\n\t this.compareEnd = function(row, column) {\n\t if (this.end.row == row && this.end.column == column) {\n\t return 1;\n\t } else {\n\t return this.compare(row, column);\n\t }\n\t };\n\t this.compareInside = function(row, column) {\n\t if (this.end.row == row && this.end.column == column) {\n\t return 1;\n\t } else if (this.start.row == row && this.start.column == column) {\n\t return -1;\n\t } else {\n\t return this.compare(row, column);\n\t }\n\t };\n\t this.clipRows = function(firstRow, lastRow) {\n\t if (this.end.row > lastRow)\n\t var end = {row: lastRow + 1, column: 0};\n\t else if (this.end.row < firstRow)\n\t var end = {row: firstRow, column: 0};\n\n\t if (this.start.row > lastRow)\n\t var start = {row: lastRow + 1, column: 0};\n\t else if (this.start.row < firstRow)\n\t var start = {row: firstRow, column: 0};\n\n\t return Range.fromPoints(start || this.start, end || this.end);\n\t };\n\t this.extend = function(row, column) {\n\t var cmp = this.compare(row, column);\n\n\t if (cmp == 0)\n\t return this;\n\t else if (cmp == -1)\n\t var start = {row: row, column: column};\n\t else\n\t var end = {row: row, column: column};\n\n\t return Range.fromPoints(start || this.start, end || this.end);\n\t };\n\n\t this.isEmpty = function() {\n\t return (this.start.row === this.end.row && this.start.column === this.end.column);\n\t };\n\t this.isMultiLine = function() {\n\t return (this.start.row !== this.end.row);\n\t };\n\t this.clone = function() {\n\t return Range.fromPoints(this.start, this.end);\n\t };\n\t this.collapseRows = function() {\n\t if (this.end.column == 0)\n\t return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0)\n\t else\n\t return new Range(this.start.row, 0, this.end.row, 0)\n\t };\n\t this.toScreenRange = function(session) {\n\t var screenPosStart = session.documentToScreenPosition(this.start);\n\t var screenPosEnd = session.documentToScreenPosition(this.end);\n\n\t return new Range(\n\t screenPosStart.row, screenPosStart.column,\n\t screenPosEnd.row, screenPosEnd.column\n\t );\n\t };\n\t this.moveBy = function(row, column) {\n\t this.start.row += row;\n\t this.start.column += column;\n\t this.end.row += row;\n\t this.end.column += column;\n\t };\n\n\t}).call(Range.prototype);\n\tRange.fromPoints = function(start, end) {\n\t return new Range(start.row, start.column, end.row, end.column);\n\t};\n\tRange.comparePoints = comparePoints;\n\n\tRange.comparePoints = function(p1, p2) {\n\t return p1.row - p2.row || p1.column - p2.column;\n\t};\n\n\n\texports.Range = Range;\n\t});\n\n\tace.define(\"ace/selection\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/range\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar oop = acequire(\"./lib/oop\");\n\tvar lang = acequire(\"./lib/lang\");\n\tvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\n\tvar Range = acequire(\"./range\").Range;\n\tvar Selection = function(session) {\n\t this.session = session;\n\t this.doc = session.getDocument();\n\n\t this.clearSelection();\n\t this.lead = this.selectionLead = this.doc.createAnchor(0, 0);\n\t this.anchor = this.selectionAnchor = this.doc.createAnchor(0, 0);\n\n\t var self = this;\n\t this.lead.on(\"change\", function(e) {\n\t self._emit(\"changeCursor\");\n\t if (!self.$isEmpty)\n\t self._emit(\"changeSelection\");\n\t if (!self.$keepDesiredColumnOnChange && e.old.column != e.value.column)\n\t self.$desiredColumn = null;\n\t });\n\n\t this.selectionAnchor.on(\"change\", function() {\n\t if (!self.$isEmpty)\n\t self._emit(\"changeSelection\");\n\t });\n\t};\n\n\t(function() {\n\n\t oop.implement(this, EventEmitter);\n\t this.isEmpty = function() {\n\t return (this.$isEmpty || (\n\t this.anchor.row == this.lead.row &&\n\t this.anchor.column == this.lead.column\n\t ));\n\t };\n\t this.isMultiLine = function() {\n\t if (this.isEmpty()) {\n\t return false;\n\t }\n\n\t return this.getRange().isMultiLine();\n\t };\n\t this.getCursor = function() {\n\t return this.lead.getPosition();\n\t };\n\t this.setSelectionAnchor = function(row, column) {\n\t this.anchor.setPosition(row, column);\n\n\t if (this.$isEmpty) {\n\t this.$isEmpty = false;\n\t this._emit(\"changeSelection\");\n\t }\n\t };\n\t this.getSelectionAnchor = function() {\n\t if (this.$isEmpty)\n\t return this.getSelectionLead();\n\t else\n\t return this.anchor.getPosition();\n\t };\n\t this.getSelectionLead = function() {\n\t return this.lead.getPosition();\n\t };\n\t this.shiftSelection = function(columns) {\n\t if (this.$isEmpty) {\n\t this.moveCursorTo(this.lead.row, this.lead.column + columns);\n\t return;\n\t }\n\n\t var anchor = this.getSelectionAnchor();\n\t var lead = this.getSelectionLead();\n\n\t var isBackwards = this.isBackwards();\n\n\t if (!isBackwards || anchor.column !== 0)\n\t this.setSelectionAnchor(anchor.row, anchor.column + columns);\n\n\t if (isBackwards || lead.column !== 0) {\n\t this.$moveSelection(function() {\n\t this.moveCursorTo(lead.row, lead.column + columns);\n\t });\n\t }\n\t };\n\t this.isBackwards = function() {\n\t var anchor = this.anchor;\n\t var lead = this.lead;\n\t return (anchor.row > lead.row || (anchor.row == lead.row && anchor.column > lead.column));\n\t };\n\t this.getRange = function() {\n\t var anchor = this.anchor;\n\t var lead = this.lead;\n\n\t if (this.isEmpty())\n\t return Range.fromPoints(lead, lead);\n\n\t if (this.isBackwards()) {\n\t return Range.fromPoints(lead, anchor);\n\t }\n\t else {\n\t return Range.fromPoints(anchor, lead);\n\t }\n\t };\n\t this.clearSelection = function() {\n\t if (!this.$isEmpty) {\n\t this.$isEmpty = true;\n\t this._emit(\"changeSelection\");\n\t }\n\t };\n\t this.selectAll = function() {\n\t var lastRow = this.doc.getLength() - 1;\n\t this.setSelectionAnchor(0, 0);\n\t this.moveCursorTo(lastRow, this.doc.getLine(lastRow).length);\n\t };\n\t this.setRange =\n\t this.setSelectionRange = function(range, reverse) {\n\t if (reverse) {\n\t this.setSelectionAnchor(range.end.row, range.end.column);\n\t this.selectTo(range.start.row, range.start.column);\n\t } else {\n\t this.setSelectionAnchor(range.start.row, range.start.column);\n\t this.selectTo(range.end.row, range.end.column);\n\t }\n\t if (this.getRange().isEmpty())\n\t this.$isEmpty = true;\n\t this.$desiredColumn = null;\n\t };\n\n\t this.$moveSelection = function(mover) {\n\t var lead = this.lead;\n\t if (this.$isEmpty)\n\t this.setSelectionAnchor(lead.row, lead.column);\n\n\t mover.call(this);\n\t };\n\t this.selectTo = function(row, column) {\n\t this.$moveSelection(function() {\n\t this.moveCursorTo(row, column);\n\t });\n\t };\n\t this.selectToPosition = function(pos) {\n\t this.$moveSelection(function() {\n\t this.moveCursorToPosition(pos);\n\t });\n\t };\n\t this.moveTo = function(row, column) {\n\t this.clearSelection();\n\t this.moveCursorTo(row, column);\n\t };\n\t this.moveToPosition = function(pos) {\n\t this.clearSelection();\n\t this.moveCursorToPosition(pos);\n\t };\n\t this.selectUp = function() {\n\t this.$moveSelection(this.moveCursorUp);\n\t };\n\t this.selectDown = function() {\n\t this.$moveSelection(this.moveCursorDown);\n\t };\n\t this.selectRight = function() {\n\t this.$moveSelection(this.moveCursorRight);\n\t };\n\t this.selectLeft = function() {\n\t this.$moveSelection(this.moveCursorLeft);\n\t };\n\t this.selectLineStart = function() {\n\t this.$moveSelection(this.moveCursorLineStart);\n\t };\n\t this.selectLineEnd = function() {\n\t this.$moveSelection(this.moveCursorLineEnd);\n\t };\n\t this.selectFileEnd = function() {\n\t this.$moveSelection(this.moveCursorFileEnd);\n\t };\n\t this.selectFileStart = function() {\n\t this.$moveSelection(this.moveCursorFileStart);\n\t };\n\t this.selectWordRight = function() {\n\t this.$moveSelection(this.moveCursorWordRight);\n\t };\n\t this.selectWordLeft = function() {\n\t this.$moveSelection(this.moveCursorWordLeft);\n\t };\n\t this.getWordRange = function(row, column) {\n\t if (typeof column == \"undefined\") {\n\t var cursor = row || this.lead;\n\t row = cursor.row;\n\t column = cursor.column;\n\t }\n\t return this.session.getWordRange(row, column);\n\t };\n\t this.selectWord = function() {\n\t this.setSelectionRange(this.getWordRange());\n\t };\n\t this.selectAWord = function() {\n\t var cursor = this.getCursor();\n\t var range = this.session.getAWordRange(cursor.row, cursor.column);\n\t this.setSelectionRange(range);\n\t };\n\n\t this.getLineRange = function(row, excludeLastChar) {\n\t var rowStart = typeof row == \"number\" ? row : this.lead.row;\n\t var rowEnd;\n\n\t var foldLine = this.session.getFoldLine(rowStart);\n\t if (foldLine) {\n\t rowStart = foldLine.start.row;\n\t rowEnd = foldLine.end.row;\n\t } else {\n\t rowEnd = rowStart;\n\t }\n\t if (excludeLastChar === true)\n\t return new Range(rowStart, 0, rowEnd, this.session.getLine(rowEnd).length);\n\t else\n\t return new Range(rowStart, 0, rowEnd + 1, 0);\n\t };\n\t this.selectLine = function() {\n\t this.setSelectionRange(this.getLineRange());\n\t };\n\t this.moveCursorUp = function() {\n\t this.moveCursorBy(-1, 0);\n\t };\n\t this.moveCursorDown = function() {\n\t this.moveCursorBy(1, 0);\n\t };\n\t this.moveCursorLeft = function() {\n\t var cursor = this.lead.getPosition(),\n\t fold;\n\n\t if (fold = this.session.getFoldAt(cursor.row, cursor.column, -1)) {\n\t this.moveCursorTo(fold.start.row, fold.start.column);\n\t } else if (cursor.column === 0) {\n\t if (cursor.row > 0) {\n\t this.moveCursorTo(cursor.row - 1, this.doc.getLine(cursor.row - 1).length);\n\t }\n\t }\n\t else {\n\t var tabSize = this.session.getTabSize();\n\t if (this.session.isTabStop(cursor) && this.doc.getLine(cursor.row).slice(cursor.column-tabSize, cursor.column).split(\" \").length-1 == tabSize)\n\t this.moveCursorBy(0, -tabSize);\n\t else\n\t this.moveCursorBy(0, -1);\n\t }\n\t };\n\t this.moveCursorRight = function() {\n\t var cursor = this.lead.getPosition(),\n\t fold;\n\t if (fold = this.session.getFoldAt(cursor.row, cursor.column, 1)) {\n\t this.moveCursorTo(fold.end.row, fold.end.column);\n\t }\n\t else if (this.lead.column == this.doc.getLine(this.lead.row).length) {\n\t if (this.lead.row < this.doc.getLength() - 1) {\n\t this.moveCursorTo(this.lead.row + 1, 0);\n\t }\n\t }\n\t else {\n\t var tabSize = this.session.getTabSize();\n\t var cursor = this.lead;\n\t if (this.session.isTabStop(cursor) && this.doc.getLine(cursor.row).slice(cursor.column, cursor.column+tabSize).split(\" \").length-1 == tabSize)\n\t this.moveCursorBy(0, tabSize);\n\t else\n\t this.moveCursorBy(0, 1);\n\t }\n\t };\n\t this.moveCursorLineStart = function() {\n\t var row = this.lead.row;\n\t var column = this.lead.column;\n\t var screenRow = this.session.documentToScreenRow(row, column);\n\t var firstColumnPosition = this.session.screenToDocumentPosition(screenRow, 0);\n\t var beforeCursor = this.session.getDisplayLine(\n\t row, null, firstColumnPosition.row,\n\t firstColumnPosition.column\n\t );\n\n\t var leadingSpace = beforeCursor.match(/^\\s*/);\n\t if (leadingSpace[0].length != column && !this.session.$useEmacsStyleLineStart)\n\t firstColumnPosition.column += leadingSpace[0].length;\n\t this.moveCursorToPosition(firstColumnPosition);\n\t };\n\t this.moveCursorLineEnd = function() {\n\t var lead = this.lead;\n\t var lineEnd = this.session.getDocumentLastRowColumnPosition(lead.row, lead.column);\n\t if (this.lead.column == lineEnd.column) {\n\t var line = this.session.getLine(lineEnd.row);\n\t if (lineEnd.column == line.length) {\n\t var textEnd = line.search(/\\s+$/);\n\t if (textEnd > 0)\n\t lineEnd.column = textEnd;\n\t }\n\t }\n\n\t this.moveCursorTo(lineEnd.row, lineEnd.column);\n\t };\n\t this.moveCursorFileEnd = function() {\n\t var row = this.doc.getLength() - 1;\n\t var column = this.doc.getLine(row).length;\n\t this.moveCursorTo(row, column);\n\t };\n\t this.moveCursorFileStart = function() {\n\t this.moveCursorTo(0, 0);\n\t };\n\t this.moveCursorLongWordRight = function() {\n\t var row = this.lead.row;\n\t var column = this.lead.column;\n\t var line = this.doc.getLine(row);\n\t var rightOfCursor = line.substring(column);\n\n\t var match;\n\t this.session.nonTokenRe.lastIndex = 0;\n\t this.session.tokenRe.lastIndex = 0;\n\t var fold = this.session.getFoldAt(row, column, 1);\n\t if (fold) {\n\t this.moveCursorTo(fold.end.row, fold.end.column);\n\t return;\n\t }\n\t if (match = this.session.nonTokenRe.exec(rightOfCursor)) {\n\t column += this.session.nonTokenRe.lastIndex;\n\t this.session.nonTokenRe.lastIndex = 0;\n\t rightOfCursor = line.substring(column);\n\t }\n\t if (column >= line.length) {\n\t this.moveCursorTo(row, line.length);\n\t this.moveCursorRight();\n\t if (row < this.doc.getLength() - 1)\n\t this.moveCursorWordRight();\n\t return;\n\t }\n\t if (match = this.session.tokenRe.exec(rightOfCursor)) {\n\t column += this.session.tokenRe.lastIndex;\n\t this.session.tokenRe.lastIndex = 0;\n\t }\n\n\t this.moveCursorTo(row, column);\n\t };\n\t this.moveCursorLongWordLeft = function() {\n\t var row = this.lead.row;\n\t var column = this.lead.column;\n\t var fold;\n\t if (fold = this.session.getFoldAt(row, column, -1)) {\n\t this.moveCursorTo(fold.start.row, fold.start.column);\n\t return;\n\t }\n\n\t var str = this.session.getFoldStringAt(row, column, -1);\n\t if (str == null) {\n\t str = this.doc.getLine(row).substring(0, column);\n\t }\n\n\t var leftOfCursor = lang.stringReverse(str);\n\t var match;\n\t this.session.nonTokenRe.lastIndex = 0;\n\t this.session.tokenRe.lastIndex = 0;\n\t if (match = this.session.nonTokenRe.exec(leftOfCursor)) {\n\t column -= this.session.nonTokenRe.lastIndex;\n\t leftOfCursor = leftOfCursor.slice(this.session.nonTokenRe.lastIndex);\n\t this.session.nonTokenRe.lastIndex = 0;\n\t }\n\t if (column <= 0) {\n\t this.moveCursorTo(row, 0);\n\t this.moveCursorLeft();\n\t if (row > 0)\n\t this.moveCursorWordLeft();\n\t return;\n\t }\n\t if (match = this.session.tokenRe.exec(leftOfCursor)) {\n\t column -= this.session.tokenRe.lastIndex;\n\t this.session.tokenRe.lastIndex = 0;\n\t }\n\n\t this.moveCursorTo(row, column);\n\t };\n\n\t this.$shortWordEndIndex = function(rightOfCursor) {\n\t var match, index = 0, ch;\n\t var whitespaceRe = /\\s/;\n\t var tokenRe = this.session.tokenRe;\n\n\t tokenRe.lastIndex = 0;\n\t if (match = this.session.tokenRe.exec(rightOfCursor)) {\n\t index = this.session.tokenRe.lastIndex;\n\t } else {\n\t while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n\t index ++;\n\n\t if (index < 1) {\n\t tokenRe.lastIndex = 0;\n\t while ((ch = rightOfCursor[index]) && !tokenRe.test(ch)) {\n\t tokenRe.lastIndex = 0;\n\t index ++;\n\t if (whitespaceRe.test(ch)) {\n\t if (index > 2) {\n\t index--;\n\t break;\n\t } else {\n\t while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n\t index ++;\n\t if (index > 2)\n\t break;\n\t }\n\t }\n\t }\n\t }\n\t }\n\t tokenRe.lastIndex = 0;\n\n\t return index;\n\t };\n\n\t this.moveCursorShortWordRight = function() {\n\t var row = this.lead.row;\n\t var column = this.lead.column;\n\t var line = this.doc.getLine(row);\n\t var rightOfCursor = line.substring(column);\n\n\t var fold = this.session.getFoldAt(row, column, 1);\n\t if (fold)\n\t return this.moveCursorTo(fold.end.row, fold.end.column);\n\n\t if (column == line.length) {\n\t var l = this.doc.getLength();\n\t do {\n\t row++;\n\t rightOfCursor = this.doc.getLine(row);\n\t } while (row < l && /^\\s*$/.test(rightOfCursor));\n\n\t if (!/^\\s+/.test(rightOfCursor))\n\t rightOfCursor = \"\";\n\t column = 0;\n\t }\n\n\t var index = this.$shortWordEndIndex(rightOfCursor);\n\n\t this.moveCursorTo(row, column + index);\n\t };\n\n\t this.moveCursorShortWordLeft = function() {\n\t var row = this.lead.row;\n\t var column = this.lead.column;\n\n\t var fold;\n\t if (fold = this.session.getFoldAt(row, column, -1))\n\t return this.moveCursorTo(fold.start.row, fold.start.column);\n\n\t var line = this.session.getLine(row).substring(0, column);\n\t if (column === 0) {\n\t do {\n\t row--;\n\t line = this.doc.getLine(row);\n\t } while (row > 0 && /^\\s*$/.test(line));\n\n\t column = line.length;\n\t if (!/\\s+$/.test(line))\n\t line = \"\";\n\t }\n\n\t var leftOfCursor = lang.stringReverse(line);\n\t var index = this.$shortWordEndIndex(leftOfCursor);\n\n\t return this.moveCursorTo(row, column - index);\n\t };\n\n\t this.moveCursorWordRight = function() {\n\t if (this.session.$selectLongWords)\n\t this.moveCursorLongWordRight();\n\t else\n\t this.moveCursorShortWordRight();\n\t };\n\n\t this.moveCursorWordLeft = function() {\n\t if (this.session.$selectLongWords)\n\t this.moveCursorLongWordLeft();\n\t else\n\t this.moveCursorShortWordLeft();\n\t };\n\t this.moveCursorBy = function(rows, chars) {\n\t var screenPos = this.session.documentToScreenPosition(\n\t this.lead.row,\n\t this.lead.column\n\t );\n\n\t if (chars === 0) {\n\t if (this.$desiredColumn)\n\t screenPos.column = this.$desiredColumn;\n\t else\n\t this.$desiredColumn = screenPos.column;\n\t }\n\n\t var docPos = this.session.screenToDocumentPosition(screenPos.row + rows, screenPos.column);\n\t \n\t if (rows !== 0 && chars === 0 && docPos.row === this.lead.row && docPos.column === this.lead.column) {\n\t if (this.session.lineWidgets && this.session.lineWidgets[docPos.row]) {\n\t if (docPos.row > 0 || rows > 0)\n\t docPos.row++;\n\t }\n\t }\n\t this.moveCursorTo(docPos.row, docPos.column + chars, chars === 0);\n\t };\n\t this.moveCursorToPosition = function(position) {\n\t this.moveCursorTo(position.row, position.column);\n\t };\n\t this.moveCursorTo = function(row, column, keepDesiredColumn) {\n\t var fold = this.session.getFoldAt(row, column, 1);\n\t if (fold) {\n\t row = fold.start.row;\n\t column = fold.start.column;\n\t }\n\n\t this.$keepDesiredColumnOnChange = true;\n\t this.lead.setPosition(row, column);\n\t this.$keepDesiredColumnOnChange = false;\n\n\t if (!keepDesiredColumn)\n\t this.$desiredColumn = null;\n\t };\n\t this.moveCursorToScreen = function(row, column, keepDesiredColumn) {\n\t var pos = this.session.screenToDocumentPosition(row, column);\n\t this.moveCursorTo(pos.row, pos.column, keepDesiredColumn);\n\t };\n\t this.detach = function() {\n\t this.lead.detach();\n\t this.anchor.detach();\n\t this.session = this.doc = null;\n\t };\n\n\t this.fromOrientedRange = function(range) {\n\t this.setSelectionRange(range, range.cursor == range.start);\n\t this.$desiredColumn = range.desiredColumn || this.$desiredColumn;\n\t };\n\n\t this.toOrientedRange = function(range) {\n\t var r = this.getRange();\n\t if (range) {\n\t range.start.column = r.start.column;\n\t range.start.row = r.start.row;\n\t range.end.column = r.end.column;\n\t range.end.row = r.end.row;\n\t } else {\n\t range = r;\n\t }\n\n\t range.cursor = this.isBackwards() ? range.start : range.end;\n\t range.desiredColumn = this.$desiredColumn;\n\t return range;\n\t };\n\t this.getRangeOfMovements = function(func) {\n\t var start = this.getCursor();\n\t try {\n\t func(this);\n\t var end = this.getCursor();\n\t return Range.fromPoints(start,end);\n\t } catch(e) {\n\t return Range.fromPoints(start,start);\n\t } finally {\n\t this.moveCursorToPosition(start);\n\t }\n\t };\n\n\t this.toJSON = function() {\n\t if (this.rangeCount) {\n\t var data = this.ranges.map(function(r) {\n\t var r1 = r.clone();\n\t r1.isBackwards = r.cursor == r.start;\n\t return r1;\n\t });\n\t } else {\n\t var data = this.getRange();\n\t data.isBackwards = this.isBackwards();\n\t }\n\t return data;\n\t };\n\n\t this.fromJSON = function(data) {\n\t if (data.start == undefined) {\n\t if (this.rangeList) {\n\t this.toSingleRange(data[0]);\n\t for (var i = data.length; i--; ) {\n\t var r = Range.fromPoints(data[i].start, data[i].end);\n\t if (data[i].isBackwards)\n\t r.cursor = r.start;\n\t this.addRange(r, true);\n\t }\n\t return;\n\t } else\n\t data = data[0];\n\t }\n\t if (this.rangeList)\n\t this.toSingleRange(data);\n\t this.setSelectionRange(data, data.isBackwards);\n\t };\n\n\t this.isEqual = function(data) {\n\t if ((data.length || this.rangeCount) && data.length != this.rangeCount)\n\t return false;\n\t if (!data.length || !this.ranges)\n\t return this.getRange().isEqual(data);\n\n\t for (var i = this.ranges.length; i--; ) {\n\t if (!this.ranges[i].isEqual(data[i]))\n\t return false;\n\t }\n\t return true;\n\t };\n\n\t}).call(Selection.prototype);\n\n\texports.Selection = Selection;\n\t});\n\n\tace.define(\"ace/tokenizer\",[\"require\",\"exports\",\"module\",\"ace/config\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar config = acequire(\"./config\");\n\tvar MAX_TOKEN_COUNT = 2000;\n\tvar Tokenizer = function(rules) {\n\t this.states = rules;\n\n\t this.regExps = {};\n\t this.matchMappings = {};\n\t for (var key in this.states) {\n\t var state = this.states[key];\n\t var ruleRegExps = [];\n\t var matchTotal = 0;\n\t var mapping = this.matchMappings[key] = {defaultToken: \"text\"};\n\t var flag = \"g\";\n\n\t var splitterRurles = [];\n\t for (var i = 0; i < state.length; i++) {\n\t var rule = state[i];\n\t if (rule.defaultToken)\n\t mapping.defaultToken = rule.defaultToken;\n\t if (rule.caseInsensitive)\n\t flag = \"gi\";\n\t if (rule.regex == null)\n\t continue;\n\n\t if (rule.regex instanceof RegExp)\n\t rule.regex = rule.regex.toString().slice(1, -1);\n\t var adjustedregex = rule.regex;\n\t var matchcount = new RegExp(\"(?:(\" + adjustedregex + \")|(.))\").exec(\"a\").length - 2;\n\t if (Array.isArray(rule.token)) {\n\t if (rule.token.length == 1 || matchcount == 1) {\n\t rule.token = rule.token[0];\n\t } else if (matchcount - 1 != rule.token.length) {\n\t this.reportError(\"number of classes and regexp groups doesn't match\", { \n\t rule: rule,\n\t groupCount: matchcount - 1\n\t });\n\t rule.token = rule.token[0];\n\t } else {\n\t rule.tokenArray = rule.token;\n\t rule.token = null;\n\t rule.onMatch = this.$arrayTokens;\n\t }\n\t } else if (typeof rule.token == \"function\" && !rule.onMatch) {\n\t if (matchcount > 1)\n\t rule.onMatch = this.$applyToken;\n\t else\n\t rule.onMatch = rule.token;\n\t }\n\n\t if (matchcount > 1) {\n\t if (/\\\\\\d/.test(rule.regex)) {\n\t adjustedregex = rule.regex.replace(/\\\\([0-9]+)/g, function(match, digit) {\n\t return \"\\\\\" + (parseInt(digit, 10) + matchTotal + 1);\n\t });\n\t } else {\n\t matchcount = 1;\n\t adjustedregex = this.removeCapturingGroups(rule.regex);\n\t }\n\t if (!rule.splitRegex && typeof rule.token != \"string\")\n\t splitterRurles.push(rule); // flag will be known only at the very end\n\t }\n\n\t mapping[matchTotal] = i;\n\t matchTotal += matchcount;\n\n\t ruleRegExps.push(adjustedregex);\n\t if (!rule.onMatch)\n\t rule.onMatch = null;\n\t }\n\t \n\t if (!ruleRegExps.length) {\n\t mapping[0] = 0;\n\t ruleRegExps.push(\"$\");\n\t }\n\t \n\t splitterRurles.forEach(function(rule) {\n\t rule.splitRegex = this.createSplitterRegexp(rule.regex, flag);\n\t }, this);\n\n\t this.regExps[key] = new RegExp(\"(\" + ruleRegExps.join(\")|(\") + \")|($)\", flag);\n\t }\n\t};\n\n\t(function() {\n\t this.$setMaxTokenCount = function(m) {\n\t MAX_TOKEN_COUNT = m | 0;\n\t };\n\t \n\t this.$applyToken = function(str) {\n\t var values = this.splitRegex.exec(str).slice(1);\n\t var types = this.token.apply(this, values);\n\t if (typeof types === \"string\")\n\t return [{type: types, value: str}];\n\n\t var tokens = [];\n\t for (var i = 0, l = types.length; i < l; i++) {\n\t if (values[i])\n\t tokens[tokens.length] = {\n\t type: types[i],\n\t value: values[i]\n\t };\n\t }\n\t return tokens;\n\t };\n\n\t this.$arrayTokens = function(str) {\n\t if (!str)\n\t return [];\n\t var values = this.splitRegex.exec(str);\n\t if (!values)\n\t return \"text\";\n\t var tokens = [];\n\t var types = this.tokenArray;\n\t for (var i = 0, l = types.length; i < l; i++) {\n\t if (values[i + 1])\n\t tokens[tokens.length] = {\n\t type: types[i],\n\t value: values[i + 1]\n\t };\n\t }\n\t return tokens;\n\t };\n\n\t this.removeCapturingGroups = function(src) {\n\t var r = src.replace(\n\t /\\[(?:\\\\.|[^\\]])*?\\]|\\\\.|\\(\\?[:=!]|(\\()/g,\n\t function(x, y) {return y ? \"(?:\" : x;}\n\t );\n\t return r;\n\t };\n\n\t this.createSplitterRegexp = function(src, flag) {\n\t if (src.indexOf(\"(?=\") != -1) {\n\t var stack = 0;\n\t var inChClass = false;\n\t var lastCapture = {};\n\t src.replace(/(\\\\.)|(\\((?:\\?[=!])?)|(\\))|([\\[\\]])/g, function(\n\t m, esc, parenOpen, parenClose, square, index\n\t ) {\n\t if (inChClass) {\n\t inChClass = square != \"]\";\n\t } else if (square) {\n\t inChClass = true;\n\t } else if (parenClose) {\n\t if (stack == lastCapture.stack) {\n\t lastCapture.end = index+1;\n\t lastCapture.stack = -1;\n\t }\n\t stack--;\n\t } else if (parenOpen) {\n\t stack++;\n\t if (parenOpen.length != 1) {\n\t lastCapture.stack = stack\n\t lastCapture.start = index;\n\t }\n\t }\n\t return m;\n\t });\n\n\t if (lastCapture.end != null && /^\\)*$/.test(src.substr(lastCapture.end)))\n\t src = src.substring(0, lastCapture.start) + src.substr(lastCapture.end);\n\t }\n\t if (src.charAt(0) != \"^\") src = \"^\" + src;\n\t if (src.charAt(src.length - 1) != \"$\") src += \"$\";\n\t \n\t return new RegExp(src, (flag||\"\").replace(\"g\", \"\"));\n\t };\n\t this.getLineTokens = function(line, startState) {\n\t if (startState && typeof startState != \"string\") {\n\t var stack = startState.slice(0);\n\t startState = stack[0];\n\t if (startState === \"#tmp\") {\n\t stack.shift()\n\t startState = stack.shift()\n\t }\n\t } else\n\t var stack = [];\n\n\t var currentState = startState || \"start\";\n\t var state = this.states[currentState];\n\t if (!state) {\n\t currentState = \"start\";\n\t state = this.states[currentState];\n\t }\n\t var mapping = this.matchMappings[currentState];\n\t var re = this.regExps[currentState];\n\t re.lastIndex = 0;\n\n\t var match, tokens = [];\n\t var lastIndex = 0;\n\t var matchAttempts = 0;\n\n\t var token = {type: null, value: \"\"};\n\n\t while (match = re.exec(line)) {\n\t var type = mapping.defaultToken;\n\t var rule = null;\n\t var value = match[0];\n\t var index = re.lastIndex;\n\n\t if (index - value.length > lastIndex) {\n\t var skipped = line.substring(lastIndex, index - value.length);\n\t if (token.type == type) {\n\t token.value += skipped;\n\t } else {\n\t if (token.type)\n\t tokens.push(token);\n\t token = {type: type, value: skipped};\n\t }\n\t }\n\n\t for (var i = 0; i < match.length-2; i++) {\n\t if (match[i + 1] === undefined)\n\t continue;\n\n\t rule = state[mapping[i]];\n\n\t if (rule.onMatch)\n\t type = rule.onMatch(value, currentState, stack);\n\t else\n\t type = rule.token;\n\n\t if (rule.next) {\n\t if (typeof rule.next == \"string\") {\n\t currentState = rule.next;\n\t } else {\n\t currentState = rule.next(currentState, stack);\n\t }\n\t \n\t state = this.states[currentState];\n\t if (!state) {\n\t this.reportError(\"state doesn't exist\", currentState);\n\t currentState = \"start\";\n\t state = this.states[currentState];\n\t }\n\t mapping = this.matchMappings[currentState];\n\t lastIndex = index;\n\t re = this.regExps[currentState];\n\t re.lastIndex = index;\n\t }\n\t break;\n\t }\n\n\t if (value) {\n\t if (typeof type === \"string\") {\n\t if ((!rule || rule.merge !== false) && token.type === type) {\n\t token.value += value;\n\t } else {\n\t if (token.type)\n\t tokens.push(token);\n\t token = {type: type, value: value};\n\t }\n\t } else if (type) {\n\t if (token.type)\n\t tokens.push(token);\n\t token = {type: null, value: \"\"};\n\t for (var i = 0; i < type.length; i++)\n\t tokens.push(type[i]);\n\t }\n\t }\n\n\t if (lastIndex == line.length)\n\t break;\n\n\t lastIndex = index;\n\n\t if (matchAttempts++ > MAX_TOKEN_COUNT) {\n\t if (matchAttempts > 2 * line.length) {\n\t this.reportError(\"infinite loop with in ace tokenizer\", {\n\t startState: startState,\n\t line: line\n\t });\n\t }\n\t while (lastIndex < line.length) {\n\t if (token.type)\n\t tokens.push(token);\n\t token = {\n\t value: line.substring(lastIndex, lastIndex += 2000),\n\t type: \"overflow\"\n\t };\n\t }\n\t currentState = \"start\";\n\t stack = [];\n\t break;\n\t }\n\t }\n\n\t if (token.type)\n\t tokens.push(token);\n\t \n\t if (stack.length > 1) {\n\t if (stack[0] !== currentState)\n\t stack.unshift(\"#tmp\", currentState);\n\t }\n\t return {\n\t tokens : tokens,\n\t state : stack.length ? stack : currentState\n\t };\n\t };\n\t \n\t this.reportError = config.reportError;\n\t \n\t}).call(Tokenizer.prototype);\n\n\texports.Tokenizer = Tokenizer;\n\t});\n\n\tace.define(\"ace/mode/text_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar lang = acequire(\"../lib/lang\");\n\n\tvar TextHighlightRules = function() {\n\n\t this.$rules = {\n\t \"start\" : [{\n\t token : \"empty_line\",\n\t regex : '^$'\n\t }, {\n\t defaultToken : \"text\"\n\t }]\n\t };\n\t};\n\n\t(function() {\n\n\t this.addRules = function(rules, prefix) {\n\t if (!prefix) {\n\t for (var key in rules)\n\t this.$rules[key] = rules[key];\n\t return;\n\t }\n\t for (var key in rules) {\n\t var state = rules[key];\n\t for (var i = 0; i < state.length; i++) {\n\t var rule = state[i];\n\t if (rule.next || rule.onMatch) {\n\t if (typeof rule.next == \"string\") {\n\t if (rule.next.indexOf(prefix) !== 0)\n\t rule.next = prefix + rule.next;\n\t }\n\t if (rule.nextState && rule.nextState.indexOf(prefix) !== 0)\n\t rule.nextState = prefix + rule.nextState;\n\t }\n\t }\n\t this.$rules[prefix + key] = state;\n\t }\n\t };\n\n\t this.getRules = function() {\n\t return this.$rules;\n\t };\n\n\t this.embedRules = function (HighlightRules, prefix, escapeRules, states, append) {\n\t var embedRules = typeof HighlightRules == \"function\"\n\t ? new HighlightRules().getRules()\n\t : HighlightRules;\n\t if (states) {\n\t for (var i = 0; i < states.length; i++)\n\t states[i] = prefix + states[i];\n\t } else {\n\t states = [];\n\t for (var key in embedRules)\n\t states.push(prefix + key);\n\t }\n\n\t this.addRules(embedRules, prefix);\n\n\t if (escapeRules) {\n\t var addRules = Array.prototype[append ? \"push\" : \"unshift\"];\n\t for (var i = 0; i < states.length; i++)\n\t addRules.apply(this.$rules[states[i]], lang.deepCopy(escapeRules));\n\t }\n\n\t if (!this.$embeds)\n\t this.$embeds = [];\n\t this.$embeds.push(prefix);\n\t };\n\n\t this.getEmbeds = function() {\n\t return this.$embeds;\n\t };\n\n\t var pushState = function(currentState, stack) {\n\t if (currentState != \"start\" || stack.length)\n\t stack.unshift(this.nextState, currentState);\n\t return this.nextState;\n\t };\n\t var popState = function(currentState, stack) {\n\t stack.shift();\n\t return stack.shift() || \"start\";\n\t };\n\n\t this.normalizeRules = function() {\n\t var id = 0;\n\t var rules = this.$rules;\n\t function processState(key) {\n\t var state = rules[key];\n\t state.processed = true;\n\t for (var i = 0; i < state.length; i++) {\n\t var rule = state[i];\n\t var toInsert = null;\n\t if (Array.isArray(rule)) {\n\t toInsert = rule;\n\t rule = {};\n\t }\n\t if (!rule.regex && rule.start) {\n\t rule.regex = rule.start;\n\t if (!rule.next)\n\t rule.next = [];\n\t rule.next.push({\n\t defaultToken: rule.token\n\t }, {\n\t token: rule.token + \".end\",\n\t regex: rule.end || rule.start,\n\t next: \"pop\"\n\t });\n\t rule.token = rule.token + \".start\";\n\t rule.push = true;\n\t }\n\t var next = rule.next || rule.push;\n\t if (next && Array.isArray(next)) {\n\t var stateName = rule.stateName;\n\t if (!stateName) {\n\t stateName = rule.token;\n\t if (typeof stateName != \"string\")\n\t stateName = stateName[0] || \"\";\n\t if (rules[stateName])\n\t stateName += id++;\n\t }\n\t rules[stateName] = next;\n\t rule.next = stateName;\n\t processState(stateName);\n\t } else if (next == \"pop\") {\n\t rule.next = popState;\n\t }\n\n\t if (rule.push) {\n\t rule.nextState = rule.next || rule.push;\n\t rule.next = pushState;\n\t delete rule.push;\n\t }\n\n\t if (rule.rules) {\n\t for (var r in rule.rules) {\n\t if (rules[r]) {\n\t if (rules[r].push)\n\t rules[r].push.apply(rules[r], rule.rules[r]);\n\t } else {\n\t rules[r] = rule.rules[r];\n\t }\n\t }\n\t }\n\t var includeName = typeof rule == \"string\"\n\t ? rule\n\t : typeof rule.include == \"string\"\n\t ? rule.include\n\t : \"\";\n\t if (includeName) {\n\t toInsert = rules[includeName];\n\t }\n\n\t if (toInsert) {\n\t var args = [i, 1].concat(toInsert);\n\t if (rule.noEscape)\n\t args = args.filter(function(x) {return !x.next;});\n\t state.splice.apply(state, args);\n\t i--;\n\t }\n\t \n\t if (rule.keywordMap) {\n\t rule.token = this.createKeywordMapper(\n\t rule.keywordMap, rule.defaultToken || \"text\", rule.caseInsensitive\n\t );\n\t delete rule.defaultToken;\n\t }\n\t }\n\t }\n\t Object.keys(rules).forEach(processState, this);\n\t };\n\n\t this.createKeywordMapper = function(map, defaultToken, ignoreCase, splitChar) {\n\t var keywords = Object.create(null);\n\t Object.keys(map).forEach(function(className) {\n\t var a = map[className];\n\t if (ignoreCase)\n\t a = a.toLowerCase();\n\t var list = a.split(splitChar || \"|\");\n\t for (var i = list.length; i--; )\n\t keywords[list[i]] = className;\n\t });\n\t if (Object.getPrototypeOf(keywords)) {\n\t keywords.__proto__ = null;\n\t }\n\t this.$keywordList = Object.keys(keywords);\n\t map = null;\n\t return ignoreCase\n\t ? function(value) {return keywords[value.toLowerCase()] || defaultToken }\n\t : function(value) {return keywords[value] || defaultToken };\n\t };\n\n\t this.getKeywords = function() {\n\t return this.$keywords;\n\t };\n\n\t}).call(TextHighlightRules.prototype);\n\n\texports.TextHighlightRules = TextHighlightRules;\n\t});\n\n\tace.define(\"ace/mode/behaviour\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar Behaviour = function() {\n\t this.$behaviours = {};\n\t};\n\n\t(function () {\n\n\t this.add = function (name, action, callback) {\n\t switch (undefined) {\n\t case this.$behaviours:\n\t this.$behaviours = {};\n\t case this.$behaviours[name]:\n\t this.$behaviours[name] = {};\n\t }\n\t this.$behaviours[name][action] = callback;\n\t }\n\t \n\t this.addBehaviours = function (behaviours) {\n\t for (var key in behaviours) {\n\t for (var action in behaviours[key]) {\n\t this.add(key, action, behaviours[key][action]);\n\t }\n\t }\n\t }\n\t \n\t this.remove = function (name) {\n\t if (this.$behaviours && this.$behaviours[name]) {\n\t delete this.$behaviours[name];\n\t }\n\t }\n\t \n\t this.inherit = function (mode, filter) {\n\t if (typeof mode === \"function\") {\n\t var behaviours = new mode().getBehaviours(filter);\n\t } else {\n\t var behaviours = mode.getBehaviours(filter);\n\t }\n\t this.addBehaviours(behaviours);\n\t }\n\t \n\t this.getBehaviours = function (filter) {\n\t if (!filter) {\n\t return this.$behaviours;\n\t } else {\n\t var ret = {}\n\t for (var i = 0; i < filter.length; i++) {\n\t if (this.$behaviours[filter[i]]) {\n\t ret[filter[i]] = this.$behaviours[filter[i]];\n\t }\n\t }\n\t return ret;\n\t }\n\t }\n\n\t}).call(Behaviour.prototype);\n\n\texports.Behaviour = Behaviour;\n\t});\n\n\tace.define(\"ace/token_iterator\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\t\"use strict\";\n\tvar TokenIterator = function(session, initialRow, initialColumn) {\n\t this.$session = session;\n\t this.$row = initialRow;\n\t this.$rowTokens = session.getTokens(initialRow);\n\n\t var token = session.getTokenAt(initialRow, initialColumn);\n\t this.$tokenIndex = token ? token.index : -1;\n\t};\n\n\t(function() { \n\t this.stepBackward = function() {\n\t this.$tokenIndex -= 1;\n\t \n\t while (this.$tokenIndex < 0) {\n\t this.$row -= 1;\n\t if (this.$row < 0) {\n\t this.$row = 0;\n\t return null;\n\t }\n\t \n\t this.$rowTokens = this.$session.getTokens(this.$row);\n\t this.$tokenIndex = this.$rowTokens.length - 1;\n\t }\n\t \n\t return this.$rowTokens[this.$tokenIndex];\n\t }; \n\t this.stepForward = function() {\n\t this.$tokenIndex += 1;\n\t var rowCount;\n\t while (this.$tokenIndex >= this.$rowTokens.length) {\n\t this.$row += 1;\n\t if (!rowCount)\n\t rowCount = this.$session.getLength();\n\t if (this.$row >= rowCount) {\n\t this.$row = rowCount - 1;\n\t return null;\n\t }\n\n\t this.$rowTokens = this.$session.getTokens(this.$row);\n\t this.$tokenIndex = 0;\n\t }\n\t \n\t return this.$rowTokens[this.$tokenIndex];\n\t }; \n\t this.getCurrentToken = function () {\n\t return this.$rowTokens[this.$tokenIndex];\n\t }; \n\t this.getCurrentTokenRow = function () {\n\t return this.$row;\n\t }; \n\t this.getCurrentTokenColumn = function() {\n\t var rowTokens = this.$rowTokens;\n\t var tokenIndex = this.$tokenIndex;\n\t var column = rowTokens[tokenIndex].start;\n\t if (column !== undefined)\n\t return column;\n\t \n\t column = 0;\n\t while (tokenIndex > 0) {\n\t tokenIndex -= 1;\n\t column += rowTokens[tokenIndex].value.length;\n\t }\n\t \n\t return column; \n\t };\n\t this.getCurrentTokenPosition = function() {\n\t return {row: this.$row, column: this.getCurrentTokenColumn()};\n\t };\n\t \n\t}).call(TokenIterator.prototype);\n\n\texports.TokenIterator = TokenIterator;\n\t});\n\n\tace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar oop = acequire(\"../../lib/oop\");\n\tvar Behaviour = acequire(\"../behaviour\").Behaviour;\n\tvar TokenIterator = acequire(\"../../token_iterator\").TokenIterator;\n\tvar lang = acequire(\"../../lib/lang\");\n\n\tvar SAFE_INSERT_IN_TOKENS =\n\t [\"text\", \"paren.rparen\", \"punctuation.operator\"];\n\tvar SAFE_INSERT_BEFORE_TOKENS =\n\t [\"text\", \"paren.rparen\", \"punctuation.operator\", \"comment\"];\n\n\tvar context;\n\tvar contextCache = {};\n\tvar initContext = function(editor) {\n\t var id = -1;\n\t if (editor.multiSelect) {\n\t id = editor.selection.index;\n\t if (contextCache.rangeCount != editor.multiSelect.rangeCount)\n\t contextCache = {rangeCount: editor.multiSelect.rangeCount};\n\t }\n\t if (contextCache[id])\n\t return context = contextCache[id];\n\t context = contextCache[id] = {\n\t autoInsertedBrackets: 0,\n\t autoInsertedRow: -1,\n\t autoInsertedLineEnd: \"\",\n\t maybeInsertedBrackets: 0,\n\t maybeInsertedRow: -1,\n\t maybeInsertedLineStart: \"\",\n\t maybeInsertedLineEnd: \"\"\n\t };\n\t};\n\n\tvar getWrapped = function(selection, selected, opening, closing) {\n\t var rowDiff = selection.end.row - selection.start.row;\n\t return {\n\t text: opening + selected + closing,\n\t selection: [\n\t 0,\n\t selection.start.column + 1,\n\t rowDiff,\n\t selection.end.column + (rowDiff ? 0 : 1)\n\t ]\n\t };\n\t};\n\n\tvar CstyleBehaviour = function() {\n\t this.add(\"braces\", \"insertion\", function(state, action, editor, session, text) {\n\t var cursor = editor.getCursorPosition();\n\t var line = session.doc.getLine(cursor.row);\n\t if (text == '{') {\n\t initContext(editor);\n\t var selection = editor.getSelectionRange();\n\t var selected = session.doc.getTextRange(selection);\n\t if (selected !== \"\" && selected !== \"{\" && editor.getWrapBehavioursEnabled()) {\n\t return getWrapped(selection, selected, '{', '}');\n\t } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n\t if (/[\\]\\}\\)]/.test(line[cursor.column]) || editor.inMultiSelectMode) {\n\t CstyleBehaviour.recordAutoInsert(editor, session, \"}\");\n\t return {\n\t text: '{}',\n\t selection: [1, 1]\n\t };\n\t } else {\n\t CstyleBehaviour.recordMaybeInsert(editor, session, \"{\");\n\t return {\n\t text: '{',\n\t selection: [1, 1]\n\t };\n\t }\n\t }\n\t } else if (text == '}') {\n\t initContext(editor);\n\t var rightChar = line.substring(cursor.column, cursor.column + 1);\n\t if (rightChar == '}') {\n\t var matching = session.$findOpeningBracket('}', {column: cursor.column + 1, row: cursor.row});\n\t if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n\t CstyleBehaviour.popAutoInsertedClosing();\n\t return {\n\t text: '',\n\t selection: [1, 1]\n\t };\n\t }\n\t }\n\t } else if (text == \"\\n\" || text == \"\\r\\n\") {\n\t initContext(editor);\n\t var closing = \"\";\n\t if (CstyleBehaviour.isMaybeInsertedClosing(cursor, line)) {\n\t closing = lang.stringRepeat(\"}\", context.maybeInsertedBrackets);\n\t CstyleBehaviour.clearMaybeInsertedClosing();\n\t }\n\t var rightChar = line.substring(cursor.column, cursor.column + 1);\n\t if (rightChar === '}') {\n\t var openBracePos = session.findMatchingBracket({row: cursor.row, column: cursor.column+1}, '}');\n\t if (!openBracePos)\n\t return null;\n\t var next_indent = this.$getIndent(session.getLine(openBracePos.row));\n\t } else if (closing) {\n\t var next_indent = this.$getIndent(line);\n\t } else {\n\t CstyleBehaviour.clearMaybeInsertedClosing();\n\t return;\n\t }\n\t var indent = next_indent + session.getTabString();\n\n\t return {\n\t text: '\\n' + indent + '\\n' + next_indent + closing,\n\t selection: [1, indent.length, 1, indent.length]\n\t };\n\t } else {\n\t CstyleBehaviour.clearMaybeInsertedClosing();\n\t }\n\t });\n\n\t this.add(\"braces\", \"deletion\", function(state, action, editor, session, range) {\n\t var selected = session.doc.getTextRange(range);\n\t if (!range.isMultiLine() && selected == '{') {\n\t initContext(editor);\n\t var line = session.doc.getLine(range.start.row);\n\t var rightChar = line.substring(range.end.column, range.end.column + 1);\n\t if (rightChar == '}') {\n\t range.end.column++;\n\t return range;\n\t } else {\n\t context.maybeInsertedBrackets--;\n\t }\n\t }\n\t });\n\n\t this.add(\"parens\", \"insertion\", function(state, action, editor, session, text) {\n\t if (text == '(') {\n\t initContext(editor);\n\t var selection = editor.getSelectionRange();\n\t var selected = session.doc.getTextRange(selection);\n\t if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n\t return getWrapped(selection, selected, '(', ')');\n\t } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n\t CstyleBehaviour.recordAutoInsert(editor, session, \")\");\n\t return {\n\t text: '()',\n\t selection: [1, 1]\n\t };\n\t }\n\t } else if (text == ')') {\n\t initContext(editor);\n\t var cursor = editor.getCursorPosition();\n\t var line = session.doc.getLine(cursor.row);\n\t var rightChar = line.substring(cursor.column, cursor.column + 1);\n\t if (rightChar == ')') {\n\t var matching = session.$findOpeningBracket(')', {column: cursor.column + 1, row: cursor.row});\n\t if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n\t CstyleBehaviour.popAutoInsertedClosing();\n\t return {\n\t text: '',\n\t selection: [1, 1]\n\t };\n\t }\n\t }\n\t }\n\t });\n\n\t this.add(\"parens\", \"deletion\", function(state, action, editor, session, range) {\n\t var selected = session.doc.getTextRange(range);\n\t if (!range.isMultiLine() && selected == '(') {\n\t initContext(editor);\n\t var line = session.doc.getLine(range.start.row);\n\t var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n\t if (rightChar == ')') {\n\t range.end.column++;\n\t return range;\n\t }\n\t }\n\t });\n\n\t this.add(\"brackets\", \"insertion\", function(state, action, editor, session, text) {\n\t if (text == '[') {\n\t initContext(editor);\n\t var selection = editor.getSelectionRange();\n\t var selected = session.doc.getTextRange(selection);\n\t if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n\t return getWrapped(selection, selected, '[', ']');\n\t } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n\t CstyleBehaviour.recordAutoInsert(editor, session, \"]\");\n\t return {\n\t text: '[]',\n\t selection: [1, 1]\n\t };\n\t }\n\t } else if (text == ']') {\n\t initContext(editor);\n\t var cursor = editor.getCursorPosition();\n\t var line = session.doc.getLine(cursor.row);\n\t var rightChar = line.substring(cursor.column, cursor.column + 1);\n\t if (rightChar == ']') {\n\t var matching = session.$findOpeningBracket(']', {column: cursor.column + 1, row: cursor.row});\n\t if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n\t CstyleBehaviour.popAutoInsertedClosing();\n\t return {\n\t text: '',\n\t selection: [1, 1]\n\t };\n\t }\n\t }\n\t }\n\t });\n\n\t this.add(\"brackets\", \"deletion\", function(state, action, editor, session, range) {\n\t var selected = session.doc.getTextRange(range);\n\t if (!range.isMultiLine() && selected == '[') {\n\t initContext(editor);\n\t var line = session.doc.getLine(range.start.row);\n\t var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n\t if (rightChar == ']') {\n\t range.end.column++;\n\t return range;\n\t }\n\t }\n\t });\n\n\t this.add(\"string_dquotes\", \"insertion\", function(state, action, editor, session, text) {\n\t if (text == '\"' || text == \"'\") {\n\t if (this.lineCommentStart && this.lineCommentStart.indexOf(text) != -1)\n\t return;\n\t initContext(editor);\n\t var quote = text;\n\t var selection = editor.getSelectionRange();\n\t var selected = session.doc.getTextRange(selection);\n\t if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n\t return getWrapped(selection, selected, quote, quote);\n\t } else if (!selected) {\n\t var cursor = editor.getCursorPosition();\n\t var line = session.doc.getLine(cursor.row);\n\t var leftChar = line.substring(cursor.column-1, cursor.column);\n\t var rightChar = line.substring(cursor.column, cursor.column + 1);\n\n\t var token = session.getTokenAt(cursor.row, cursor.column);\n\t var rightToken = session.getTokenAt(cursor.row, cursor.column + 1);\n\t if (leftChar == \"\\\\\" && token && /escape/.test(token.type))\n\t return null;\n\n\t var stringBefore = token && /string|escape/.test(token.type);\n\t var stringAfter = !rightToken || /string|escape/.test(rightToken.type);\n\n\t var pair;\n\t if (rightChar == quote) {\n\t pair = stringBefore !== stringAfter;\n\t if (pair && /string\\.end/.test(rightToken.type))\n\t pair = false;\n\t } else {\n\t if (stringBefore && !stringAfter)\n\t return null; // wrap string with different quote\n\t if (stringBefore && stringAfter)\n\t return null; // do not pair quotes inside strings\n\t var wordRe = session.$mode.tokenRe;\n\t wordRe.lastIndex = 0;\n\t var isWordBefore = wordRe.test(leftChar);\n\t wordRe.lastIndex = 0;\n\t var isWordAfter = wordRe.test(leftChar);\n\t if (isWordBefore || isWordAfter)\n\t return null; // before or after alphanumeric\n\t if (rightChar && !/[\\s;,.})\\]\\\\]/.test(rightChar))\n\t return null; // there is rightChar and it isn't closing\n\t pair = true;\n\t }\n\t return {\n\t text: pair ? quote + quote : \"\",\n\t selection: [1,1]\n\t };\n\t }\n\t }\n\t });\n\n\t this.add(\"string_dquotes\", \"deletion\", function(state, action, editor, session, range) {\n\t var selected = session.doc.getTextRange(range);\n\t if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n\t initContext(editor);\n\t var line = session.doc.getLine(range.start.row);\n\t var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n\t if (rightChar == selected) {\n\t range.end.column++;\n\t return range;\n\t }\n\t }\n\t });\n\n\t};\n\n\n\tCstyleBehaviour.isSaneInsertion = function(editor, session) {\n\t var cursor = editor.getCursorPosition();\n\t var iterator = new TokenIterator(session, cursor.row, cursor.column);\n\t if (!this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS)) {\n\t var iterator2 = new TokenIterator(session, cursor.row, cursor.column + 1);\n\t if (!this.$matchTokenType(iterator2.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS))\n\t return false;\n\t }\n\t iterator.stepForward();\n\t return iterator.getCurrentTokenRow() !== cursor.row ||\n\t this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_BEFORE_TOKENS);\n\t};\n\n\tCstyleBehaviour.$matchTokenType = function(token, types) {\n\t return types.indexOf(token.type || token) > -1;\n\t};\n\n\tCstyleBehaviour.recordAutoInsert = function(editor, session, bracket) {\n\t var cursor = editor.getCursorPosition();\n\t var line = session.doc.getLine(cursor.row);\n\t if (!this.isAutoInsertedClosing(cursor, line, context.autoInsertedLineEnd[0]))\n\t context.autoInsertedBrackets = 0;\n\t context.autoInsertedRow = cursor.row;\n\t context.autoInsertedLineEnd = bracket + line.substr(cursor.column);\n\t context.autoInsertedBrackets++;\n\t};\n\n\tCstyleBehaviour.recordMaybeInsert = function(editor, session, bracket) {\n\t var cursor = editor.getCursorPosition();\n\t var line = session.doc.getLine(cursor.row);\n\t if (!this.isMaybeInsertedClosing(cursor, line))\n\t context.maybeInsertedBrackets = 0;\n\t context.maybeInsertedRow = cursor.row;\n\t context.maybeInsertedLineStart = line.substr(0, cursor.column) + bracket;\n\t context.maybeInsertedLineEnd = line.substr(cursor.column);\n\t context.maybeInsertedBrackets++;\n\t};\n\n\tCstyleBehaviour.isAutoInsertedClosing = function(cursor, line, bracket) {\n\t return context.autoInsertedBrackets > 0 &&\n\t cursor.row === context.autoInsertedRow &&\n\t bracket === context.autoInsertedLineEnd[0] &&\n\t line.substr(cursor.column) === context.autoInsertedLineEnd;\n\t};\n\n\tCstyleBehaviour.isMaybeInsertedClosing = function(cursor, line) {\n\t return context.maybeInsertedBrackets > 0 &&\n\t cursor.row === context.maybeInsertedRow &&\n\t line.substr(cursor.column) === context.maybeInsertedLineEnd &&\n\t line.substr(0, cursor.column) == context.maybeInsertedLineStart;\n\t};\n\n\tCstyleBehaviour.popAutoInsertedClosing = function() {\n\t context.autoInsertedLineEnd = context.autoInsertedLineEnd.substr(1);\n\t context.autoInsertedBrackets--;\n\t};\n\n\tCstyleBehaviour.clearMaybeInsertedClosing = function() {\n\t if (context) {\n\t context.maybeInsertedBrackets = 0;\n\t context.maybeInsertedRow = -1;\n\t }\n\t};\n\n\n\n\toop.inherits(CstyleBehaviour, Behaviour);\n\n\texports.CstyleBehaviour = CstyleBehaviour;\n\t});\n\n\tace.define(\"ace/unicode\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\t\"use strict\";\n\texports.packages = {};\n\n\taddUnicodePackage({\n\t L: \"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC\",\n\t Ll: \"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A\",\n\t Lu: \"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A\",\n\t Lt: \"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC\",\n\t Lm: \"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F\",\n\t Lo: \"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC\",\n\t M: \"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26\",\n\t Mn: \"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26\",\n\t Mc: \"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC\",\n\t Me: \"0488048906DE20DD-20E020E2-20E4A670-A672\",\n\t N: \"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19\",\n\t Nd: \"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19\",\n\t Nl: \"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF\",\n\t No: \"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835\",\n\t P: \"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65\",\n\t Pd: \"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D\",\n\t Ps: \"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62\",\n\t Pe: \"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63\",\n\t Pi: \"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20\",\n\t Pf: \"00BB2019201D203A2E032E052E0A2E0D2E1D2E21\",\n\t Pc: \"005F203F20402054FE33FE34FE4D-FE4FFF3F\",\n\t Po: \"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65\",\n\t S: \"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD\",\n\t Sm: \"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC\",\n\t Sc: \"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6\",\n\t Sk: \"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3\",\n\t So: \"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD\",\n\t Z: \"002000A01680180E2000-200A20282029202F205F3000\",\n\t Zs: \"002000A01680180E2000-200A202F205F3000\",\n\t Zl: \"2028\",\n\t Zp: \"2029\",\n\t C: \"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF\",\n\t Cc: \"0000-001F007F-009F\",\n\t Cf: \"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB\",\n\t Co: \"E000-F8FF\",\n\t Cs: \"D800-DFFF\",\n\t Cn: \"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF\"\n\t});\n\n\tfunction addUnicodePackage (pack) {\n\t var codePoint = /\\w{4}/g;\n\t for (var name in pack)\n\t exports.packages[name] = pack[name].replace(codePoint, \"\\\\u$&\");\n\t}\n\n\t});\n\n\tace.define(\"ace/mode/text\",[\"require\",\"exports\",\"module\",\"ace/tokenizer\",\"ace/mode/text_highlight_rules\",\"ace/mode/behaviour/cstyle\",\"ace/unicode\",\"ace/lib/lang\",\"ace/token_iterator\",\"ace/range\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar Tokenizer = acequire(\"../tokenizer\").Tokenizer;\n\tvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\n\tvar CstyleBehaviour = acequire(\"./behaviour/cstyle\").CstyleBehaviour;\n\tvar unicode = acequire(\"../unicode\");\n\tvar lang = acequire(\"../lib/lang\");\n\tvar TokenIterator = acequire(\"../token_iterator\").TokenIterator;\n\tvar Range = acequire(\"../range\").Range;\n\n\tvar Mode = function() {\n\t this.HighlightRules = TextHighlightRules;\n\t};\n\n\t(function() {\n\t this.$defaultBehaviour = new CstyleBehaviour();\n\n\t this.tokenRe = new RegExp(\"^[\"\n\t + unicode.packages.L\n\t + unicode.packages.Mn + unicode.packages.Mc\n\t + unicode.packages.Nd\n\t + unicode.packages.Pc + \"\\\\$_]+\", \"g\"\n\t );\n\n\t this.nonTokenRe = new RegExp(\"^(?:[^\"\n\t + unicode.packages.L\n\t + unicode.packages.Mn + unicode.packages.Mc\n\t + unicode.packages.Nd\n\t + unicode.packages.Pc + \"\\\\$_]|\\\\s])+\", \"g\"\n\t );\n\n\t this.getTokenizer = function() {\n\t if (!this.$tokenizer) {\n\t this.$highlightRules = this.$highlightRules || new this.HighlightRules(this.$highlightRuleConfig);\n\t this.$tokenizer = new Tokenizer(this.$highlightRules.getRules());\n\t }\n\t return this.$tokenizer;\n\t };\n\n\t this.lineCommentStart = \"\";\n\t this.blockComment = \"\";\n\n\t this.toggleCommentLines = function(state, session, startRow, endRow) {\n\t var doc = session.doc;\n\n\t var ignoreBlankLines = true;\n\t var shouldRemove = true;\n\t var minIndent = Infinity;\n\t var tabSize = session.getTabSize();\n\t var insertAtTabStop = false;\n\n\t if (!this.lineCommentStart) {\n\t if (!this.blockComment)\n\t return false;\n\t var lineCommentStart = this.blockComment.start;\n\t var lineCommentEnd = this.blockComment.end;\n\t var regexpStart = new RegExp(\"^(\\\\s*)(?:\" + lang.escapeRegExp(lineCommentStart) + \")\");\n\t var regexpEnd = new RegExp(\"(?:\" + lang.escapeRegExp(lineCommentEnd) + \")\\\\s*$\");\n\n\t var comment = function(line, i) {\n\t if (testRemove(line, i))\n\t return;\n\t if (!ignoreBlankLines || /\\S/.test(line)) {\n\t doc.insertInLine({row: i, column: line.length}, lineCommentEnd);\n\t doc.insertInLine({row: i, column: minIndent}, lineCommentStart);\n\t }\n\t };\n\n\t var uncomment = function(line, i) {\n\t var m;\n\t if (m = line.match(regexpEnd))\n\t doc.removeInLine(i, line.length - m[0].length, line.length);\n\t if (m = line.match(regexpStart))\n\t doc.removeInLine(i, m[1].length, m[0].length);\n\t };\n\n\t var testRemove = function(line, row) {\n\t if (regexpStart.test(line))\n\t return true;\n\t var tokens = session.getTokens(row);\n\t for (var i = 0; i < tokens.length; i++) {\n\t if (tokens[i].type === \"comment\")\n\t return true;\n\t }\n\t };\n\t } else {\n\t if (Array.isArray(this.lineCommentStart)) {\n\t var regexpStart = this.lineCommentStart.map(lang.escapeRegExp).join(\"|\");\n\t var lineCommentStart = this.lineCommentStart[0];\n\t } else {\n\t var regexpStart = lang.escapeRegExp(this.lineCommentStart);\n\t var lineCommentStart = this.lineCommentStart;\n\t }\n\t regexpStart = new RegExp(\"^(\\\\s*)(?:\" + regexpStart + \") ?\");\n\t \n\t insertAtTabStop = session.getUseSoftTabs();\n\n\t var uncomment = function(line, i) {\n\t var m = line.match(regexpStart);\n\t if (!m) return;\n\t var start = m[1].length, end = m[0].length;\n\t if (!shouldInsertSpace(line, start, end) && m[0][end - 1] == \" \")\n\t end--;\n\t doc.removeInLine(i, start, end);\n\t };\n\t var commentWithSpace = lineCommentStart + \" \";\n\t var comment = function(line, i) {\n\t if (!ignoreBlankLines || /\\S/.test(line)) {\n\t if (shouldInsertSpace(line, minIndent, minIndent))\n\t doc.insertInLine({row: i, column: minIndent}, commentWithSpace);\n\t else\n\t doc.insertInLine({row: i, column: minIndent}, lineCommentStart);\n\t }\n\t };\n\t var testRemove = function(line, i) {\n\t return regexpStart.test(line);\n\t };\n\t \n\t var shouldInsertSpace = function(line, before, after) {\n\t var spaces = 0;\n\t while (before-- && line.charAt(before) == \" \")\n\t spaces++;\n\t if (spaces % tabSize != 0)\n\t return false;\n\t var spaces = 0;\n\t while (line.charAt(after++) == \" \")\n\t spaces++;\n\t if (tabSize > 2)\n\t return spaces % tabSize != tabSize - 1;\n\t else\n\t return spaces % tabSize == 0;\n\t return true;\n\t };\n\t }\n\n\t function iter(fun) {\n\t for (var i = startRow; i <= endRow; i++)\n\t fun(doc.getLine(i), i);\n\t }\n\n\n\t var minEmptyLength = Infinity;\n\t iter(function(line, i) {\n\t var indent = line.search(/\\S/);\n\t if (indent !== -1) {\n\t if (indent < minIndent)\n\t minIndent = indent;\n\t if (shouldRemove && !testRemove(line, i))\n\t shouldRemove = false;\n\t } else if (minEmptyLength > line.length) {\n\t minEmptyLength = line.length;\n\t }\n\t });\n\n\t if (minIndent == Infinity) {\n\t minIndent = minEmptyLength;\n\t ignoreBlankLines = false;\n\t shouldRemove = false;\n\t }\n\n\t if (insertAtTabStop && minIndent % tabSize != 0)\n\t minIndent = Math.floor(minIndent / tabSize) * tabSize;\n\n\t iter(shouldRemove ? uncomment : comment);\n\t };\n\n\t this.toggleBlockComment = function(state, session, range, cursor) {\n\t var comment = this.blockComment;\n\t if (!comment)\n\t return;\n\t if (!comment.start && comment[0])\n\t comment = comment[0];\n\n\t var iterator = new TokenIterator(session, cursor.row, cursor.column);\n\t var token = iterator.getCurrentToken();\n\n\t var sel = session.selection;\n\t var initialRange = session.selection.toOrientedRange();\n\t var startRow, colDiff;\n\n\t if (token && /comment/.test(token.type)) {\n\t var startRange, endRange;\n\t while (token && /comment/.test(token.type)) {\n\t var i = token.value.indexOf(comment.start);\n\t if (i != -1) {\n\t var row = iterator.getCurrentTokenRow();\n\t var column = iterator.getCurrentTokenColumn() + i;\n\t startRange = new Range(row, column, row, column + comment.start.length);\n\t break;\n\t }\n\t token = iterator.stepBackward();\n\t }\n\n\t var iterator = new TokenIterator(session, cursor.row, cursor.column);\n\t var token = iterator.getCurrentToken();\n\t while (token && /comment/.test(token.type)) {\n\t var i = token.value.indexOf(comment.end);\n\t if (i != -1) {\n\t var row = iterator.getCurrentTokenRow();\n\t var column = iterator.getCurrentTokenColumn() + i;\n\t endRange = new Range(row, column, row, column + comment.end.length);\n\t break;\n\t }\n\t token = iterator.stepForward();\n\t }\n\t if (endRange)\n\t session.remove(endRange);\n\t if (startRange) {\n\t session.remove(startRange);\n\t startRow = startRange.start.row;\n\t colDiff = -comment.start.length;\n\t }\n\t } else {\n\t colDiff = comment.start.length;\n\t startRow = range.start.row;\n\t session.insert(range.end, comment.end);\n\t session.insert(range.start, comment.start);\n\t }\n\t if (initialRange.start.row == startRow)\n\t initialRange.start.column += colDiff;\n\t if (initialRange.end.row == startRow)\n\t initialRange.end.column += colDiff;\n\t session.selection.fromOrientedRange(initialRange);\n\t };\n\n\t this.getNextLineIndent = function(state, line, tab) {\n\t return this.$getIndent(line);\n\t };\n\n\t this.checkOutdent = function(state, line, input) {\n\t return false;\n\t };\n\n\t this.autoOutdent = function(state, doc, row) {\n\t };\n\n\t this.$getIndent = function(line) {\n\t return line.match(/^\\s*/)[0];\n\t };\n\n\t this.createWorker = function(session) {\n\t return null;\n\t };\n\n\t this.createModeDelegates = function (mapping) {\n\t this.$embeds = [];\n\t this.$modes = {};\n\t for (var i in mapping) {\n\t if (mapping[i]) {\n\t this.$embeds.push(i);\n\t this.$modes[i] = new mapping[i]();\n\t }\n\t }\n\n\t var delegations = [\"toggleBlockComment\", \"toggleCommentLines\", \"getNextLineIndent\", \n\t \"checkOutdent\", \"autoOutdent\", \"transformAction\", \"getCompletions\"];\n\n\t for (var i = 0; i < delegations.length; i++) {\n\t (function(scope) {\n\t var functionName = delegations[i];\n\t var defaultHandler = scope[functionName];\n\t scope[delegations[i]] = function() {\n\t return this.$delegator(functionName, arguments, defaultHandler);\n\t };\n\t }(this));\n\t }\n\t };\n\n\t this.$delegator = function(method, args, defaultHandler) {\n\t var state = args[0];\n\t if (typeof state != \"string\")\n\t state = state[0];\n\t for (var i = 0; i < this.$embeds.length; i++) {\n\t if (!this.$modes[this.$embeds[i]]) continue;\n\n\t var split = state.split(this.$embeds[i]);\n\t if (!split[0] && split[1]) {\n\t args[0] = split[1];\n\t var mode = this.$modes[this.$embeds[i]];\n\t return mode[method].apply(mode, args);\n\t }\n\t }\n\t var ret = defaultHandler.apply(this, args);\n\t return defaultHandler ? ret : undefined;\n\t };\n\n\t this.transformAction = function(state, action, editor, session, param) {\n\t if (this.$behaviour) {\n\t var behaviours = this.$behaviour.getBehaviours();\n\t for (var key in behaviours) {\n\t if (behaviours[key][action]) {\n\t var ret = behaviours[key][action].apply(this, arguments);\n\t if (ret) {\n\t return ret;\n\t }\n\t }\n\t }\n\t }\n\t };\n\t \n\t this.getKeywords = function(append) {\n\t if (!this.completionKeywords) {\n\t var rules = this.$tokenizer.rules;\n\t var completionKeywords = [];\n\t for (var rule in rules) {\n\t var ruleItr = rules[rule];\n\t for (var r = 0, l = ruleItr.length; r < l; r++) {\n\t if (typeof ruleItr[r].token === \"string\") {\n\t if (/keyword|support|storage/.test(ruleItr[r].token))\n\t completionKeywords.push(ruleItr[r].regex);\n\t }\n\t else if (typeof ruleItr[r].token === \"object\") {\n\t for (var a = 0, aLength = ruleItr[r].token.length; a < aLength; a++) { \n\t if (/keyword|support|storage/.test(ruleItr[r].token[a])) {\n\t var rule = ruleItr[r].regex.match(/\\(.+?\\)/g)[a];\n\t completionKeywords.push(rule.substr(1, rule.length - 2));\n\t }\n\t }\n\t }\n\t }\n\t }\n\t this.completionKeywords = completionKeywords;\n\t }\n\t if (!append)\n\t return this.$keywordList;\n\t return completionKeywords.concat(this.$keywordList || []);\n\t };\n\t \n\t this.$createKeywordList = function() {\n\t if (!this.$highlightRules)\n\t this.getTokenizer();\n\t return this.$keywordList = this.$highlightRules.$keywordList || [];\n\t };\n\n\t this.getCompletions = function(state, session, pos, prefix) {\n\t var keywords = this.$keywordList || this.$createKeywordList();\n\t return keywords.map(function(word) {\n\t return {\n\t name: word,\n\t value: word,\n\t score: 0,\n\t meta: \"keyword\"\n\t };\n\t });\n\t };\n\n\t this.$id = \"ace/mode/text\";\n\t}).call(Mode.prototype);\n\n\texports.Mode = Mode;\n\t});\n\n\tace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tfunction throwDeltaError(delta, errorText){\n\t console.log(\"Invalid Delta:\", delta);\n\t throw \"Invalid Delta: \" + errorText;\n\t}\n\n\tfunction positionInDocument(docLines, position) {\n\t return position.row >= 0 && position.row < docLines.length &&\n\t position.column >= 0 && position.column <= docLines[position.row].length;\n\t}\n\n\tfunction validateDelta(docLines, delta) {\n\t if (delta.action != \"insert\" && delta.action != \"remove\")\n\t throwDeltaError(delta, \"delta.action must be 'insert' or 'remove'\");\n\t if (!(delta.lines instanceof Array))\n\t throwDeltaError(delta, \"delta.lines must be an Array\");\n\t if (!delta.start || !delta.end)\n\t throwDeltaError(delta, \"delta.start/end must be an present\");\n\t var start = delta.start;\n\t if (!positionInDocument(docLines, delta.start))\n\t throwDeltaError(delta, \"delta.start must be contained in document\");\n\t var end = delta.end;\n\t if (delta.action == \"remove\" && !positionInDocument(docLines, end))\n\t throwDeltaError(delta, \"delta.end must contained in document for 'remove' actions\");\n\t var numRangeRows = end.row - start.row;\n\t var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0));\n\t if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars)\n\t throwDeltaError(delta, \"delta.range must match delta lines\");\n\t}\n\n\texports.applyDelta = function(docLines, delta, doNotValidate) {\n\t \n\t var row = delta.start.row;\n\t var startColumn = delta.start.column;\n\t var line = docLines[row] || \"\";\n\t switch (delta.action) {\n\t case \"insert\":\n\t var lines = delta.lines;\n\t if (lines.length === 1) {\n\t docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn);\n\t } else {\n\t var args = [row, 1].concat(delta.lines);\n\t docLines.splice.apply(docLines, args);\n\t docLines[row] = line.substring(0, startColumn) + docLines[row];\n\t docLines[row + delta.lines.length - 1] += line.substring(startColumn);\n\t }\n\t break;\n\t case \"remove\":\n\t var endColumn = delta.end.column;\n\t var endRow = delta.end.row;\n\t if (row === endRow) {\n\t docLines[row] = line.substring(0, startColumn) + line.substring(endColumn);\n\t } else {\n\t docLines.splice(\n\t row, endRow - row + 1,\n\t line.substring(0, startColumn) + docLines[endRow].substring(endColumn)\n\t );\n\t }\n\t break;\n\t }\n\t}\n\t});\n\n\tace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar oop = acequire(\"./lib/oop\");\n\tvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\n\n\tvar Anchor = exports.Anchor = function(doc, row, column) {\n\t this.$onChange = this.onChange.bind(this);\n\t this.attach(doc);\n\t \n\t if (typeof column == \"undefined\")\n\t this.setPosition(row.row, row.column);\n\t else\n\t this.setPosition(row, column);\n\t};\n\n\t(function() {\n\n\t oop.implement(this, EventEmitter);\n\t this.getPosition = function() {\n\t return this.$clipPositionToDocument(this.row, this.column);\n\t };\n\t this.getDocument = function() {\n\t return this.document;\n\t };\n\t this.$insertRight = false;\n\t this.onChange = function(delta) {\n\t if (delta.start.row == delta.end.row && delta.start.row != this.row)\n\t return;\n\n\t if (delta.start.row > this.row)\n\t return;\n\t \n\t var point = $getTransformedPoint(delta, {row: this.row, column: this.column}, this.$insertRight);\n\t this.setPosition(point.row, point.column, true);\n\t };\n\t \n\t function $pointsInOrder(point1, point2, equalPointsInOrder) {\n\t var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column;\n\t return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter);\n\t }\n\t \n\t function $getTransformedPoint(delta, point, moveIfEqual) {\n\t var deltaIsInsert = delta.action == \"insert\";\n\t var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row - delta.start.row);\n\t var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column);\n\t var deltaStart = delta.start;\n\t var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range.\n\t if ($pointsInOrder(point, deltaStart, moveIfEqual)) {\n\t return {\n\t row: point.row,\n\t column: point.column\n\t };\n\t }\n\t if ($pointsInOrder(deltaEnd, point, !moveIfEqual)) {\n\t return {\n\t row: point.row + deltaRowShift,\n\t column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0)\n\t };\n\t }\n\t \n\t return {\n\t row: deltaStart.row,\n\t column: deltaStart.column\n\t };\n\t }\n\t this.setPosition = function(row, column, noClip) {\n\t var pos;\n\t if (noClip) {\n\t pos = {\n\t row: row,\n\t column: column\n\t };\n\t } else {\n\t pos = this.$clipPositionToDocument(row, column);\n\t }\n\n\t if (this.row == pos.row && this.column == pos.column)\n\t return;\n\n\t var old = {\n\t row: this.row,\n\t column: this.column\n\t };\n\n\t this.row = pos.row;\n\t this.column = pos.column;\n\t this._signal(\"change\", {\n\t old: old,\n\t value: pos\n\t });\n\t };\n\t this.detach = function() {\n\t this.document.removeEventListener(\"change\", this.$onChange);\n\t };\n\t this.attach = function(doc) {\n\t this.document = doc || this.document;\n\t this.document.on(\"change\", this.$onChange);\n\t };\n\t this.$clipPositionToDocument = function(row, column) {\n\t var pos = {};\n\n\t if (row >= this.document.getLength()) {\n\t pos.row = Math.max(0, this.document.getLength() - 1);\n\t pos.column = this.document.getLine(pos.row).length;\n\t }\n\t else if (row < 0) {\n\t pos.row = 0;\n\t pos.column = 0;\n\t }\n\t else {\n\t pos.row = row;\n\t pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));\n\t }\n\n\t if (column < 0)\n\t pos.column = 0;\n\n\t return pos;\n\t };\n\n\t}).call(Anchor.prototype);\n\n\t});\n\n\tace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar oop = acequire(\"./lib/oop\");\n\tvar applyDelta = acequire(\"./apply_delta\").applyDelta;\n\tvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\n\tvar Range = acequire(\"./range\").Range;\n\tvar Anchor = acequire(\"./anchor\").Anchor;\n\n\tvar Document = function(textOrLines) {\n\t this.$lines = [\"\"];\n\t if (textOrLines.length === 0) {\n\t this.$lines = [\"\"];\n\t } else if (Array.isArray(textOrLines)) {\n\t this.insertMergedLines({row: 0, column: 0}, textOrLines);\n\t } else {\n\t this.insert({row: 0, column:0}, textOrLines);\n\t }\n\t};\n\n\t(function() {\n\n\t oop.implement(this, EventEmitter);\n\t this.setValue = function(text) {\n\t var len = this.getLength() - 1;\n\t this.remove(new Range(0, 0, len, this.getLine(len).length));\n\t this.insert({row: 0, column: 0}, text);\n\t };\n\t this.getValue = function() {\n\t return this.getAllLines().join(this.getNewLineCharacter());\n\t };\n\t this.createAnchor = function(row, column) {\n\t return new Anchor(this, row, column);\n\t };\n\t if (\"aaa\".split(/a/).length === 0) {\n\t this.$split = function(text) {\n\t return text.replace(/\\r\\n|\\r/g, \"\\n\").split(\"\\n\");\n\t };\n\t } else {\n\t this.$split = function(text) {\n\t return text.split(/\\r\\n|\\r|\\n/);\n\t };\n\t }\n\n\n\t this.$detectNewLine = function(text) {\n\t var match = text.match(/^.*?(\\r\\n|\\r|\\n)/m);\n\t this.$autoNewLine = match ? match[1] : \"\\n\";\n\t this._signal(\"changeNewLineMode\");\n\t };\n\t this.getNewLineCharacter = function() {\n\t switch (this.$newLineMode) {\n\t case \"windows\":\n\t return \"\\r\\n\";\n\t case \"unix\":\n\t return \"\\n\";\n\t default:\n\t return this.$autoNewLine || \"\\n\";\n\t }\n\t };\n\n\t this.$autoNewLine = \"\";\n\t this.$newLineMode = \"auto\";\n\t this.setNewLineMode = function(newLineMode) {\n\t if (this.$newLineMode === newLineMode)\n\t return;\n\n\t this.$newLineMode = newLineMode;\n\t this._signal(\"changeNewLineMode\");\n\t };\n\t this.getNewLineMode = function() {\n\t return this.$newLineMode;\n\t };\n\t this.isNewLine = function(text) {\n\t return (text == \"\\r\\n\" || text == \"\\r\" || text == \"\\n\");\n\t };\n\t this.getLine = function(row) {\n\t return this.$lines[row] || \"\";\n\t };\n\t this.getLines = function(firstRow, lastRow) {\n\t return this.$lines.slice(firstRow, lastRow + 1);\n\t };\n\t this.getAllLines = function() {\n\t return this.getLines(0, this.getLength());\n\t };\n\t this.getLength = function() {\n\t return this.$lines.length;\n\t };\n\t this.getTextRange = function(range) {\n\t return this.getLinesForRange(range).join(this.getNewLineCharacter());\n\t };\n\t this.getLinesForRange = function(range) {\n\t var lines;\n\t if (range.start.row === range.end.row) {\n\t lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)];\n\t } else {\n\t lines = this.getLines(range.start.row, range.end.row);\n\t lines[0] = (lines[0] || \"\").substring(range.start.column);\n\t var l = lines.length - 1;\n\t if (range.end.row - range.start.row == l)\n\t lines[l] = lines[l].substring(0, range.end.column);\n\t }\n\t return lines;\n\t };\n\t this.insertLines = function(row, lines) {\n\t console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\");\n\t return this.insertFullLines(row, lines);\n\t };\n\t this.removeLines = function(firstRow, lastRow) {\n\t console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\");\n\t return this.removeFullLines(firstRow, lastRow);\n\t };\n\t this.insertNewLine = function(position) {\n\t console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\");\n\t return this.insertMergedLines(position, [\"\", \"\"]);\n\t };\n\t this.insert = function(position, text) {\n\t if (this.getLength() <= 1)\n\t this.$detectNewLine(text);\n\t \n\t return this.insertMergedLines(position, this.$split(text));\n\t };\n\t this.insertInLine = function(position, text) {\n\t var start = this.clippedPos(position.row, position.column);\n\t var end = this.pos(position.row, position.column + text.length);\n\t \n\t this.applyDelta({\n\t start: start,\n\t end: end,\n\t action: \"insert\",\n\t lines: [text]\n\t }, true);\n\t \n\t return this.clonePos(end);\n\t };\n\t \n\t this.clippedPos = function(row, column) {\n\t var length = this.getLength();\n\t if (row === undefined) {\n\t row = length;\n\t } else if (row < 0) {\n\t row = 0;\n\t } else if (row >= length) {\n\t row = length - 1;\n\t column = undefined;\n\t }\n\t var line = this.getLine(row);\n\t if (column == undefined)\n\t column = line.length;\n\t column = Math.min(Math.max(column, 0), line.length);\n\t return {row: row, column: column};\n\t };\n\t \n\t this.clonePos = function(pos) {\n\t return {row: pos.row, column: pos.column};\n\t };\n\t \n\t this.pos = function(row, column) {\n\t return {row: row, column: column};\n\t };\n\t \n\t this.$clipPosition = function(position) {\n\t var length = this.getLength();\n\t if (position.row >= length) {\n\t position.row = Math.max(0, length - 1);\n\t position.column = this.getLine(length - 1).length;\n\t } else {\n\t position.row = Math.max(0, position.row);\n\t position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length);\n\t }\n\t return position;\n\t };\n\t this.insertFullLines = function(row, lines) {\n\t row = Math.min(Math.max(row, 0), this.getLength());\n\t var column = 0;\n\t if (row < this.getLength()) {\n\t lines = lines.concat([\"\"]);\n\t column = 0;\n\t } else {\n\t lines = [\"\"].concat(lines);\n\t row--;\n\t column = this.$lines[row].length;\n\t }\n\t this.insertMergedLines({row: row, column: column}, lines);\n\t }; \n\t this.insertMergedLines = function(position, lines) {\n\t var start = this.clippedPos(position.row, position.column);\n\t var end = {\n\t row: start.row + lines.length - 1,\n\t column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length\n\t };\n\t \n\t this.applyDelta({\n\t start: start,\n\t end: end,\n\t action: \"insert\",\n\t lines: lines\n\t });\n\t \n\t return this.clonePos(end);\n\t };\n\t this.remove = function(range) {\n\t var start = this.clippedPos(range.start.row, range.start.column);\n\t var end = this.clippedPos(range.end.row, range.end.column);\n\t this.applyDelta({\n\t start: start,\n\t end: end,\n\t action: \"remove\",\n\t lines: this.getLinesForRange({start: start, end: end})\n\t });\n\t return this.clonePos(start);\n\t };\n\t this.removeInLine = function(row, startColumn, endColumn) {\n\t var start = this.clippedPos(row, startColumn);\n\t var end = this.clippedPos(row, endColumn);\n\t \n\t this.applyDelta({\n\t start: start,\n\t end: end,\n\t action: \"remove\",\n\t lines: this.getLinesForRange({start: start, end: end})\n\t }, true);\n\t \n\t return this.clonePos(start);\n\t };\n\t this.removeFullLines = function(firstRow, lastRow) {\n\t firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1);\n\t lastRow = Math.min(Math.max(0, lastRow ), this.getLength() - 1);\n\t var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0;\n\t var deleteLastNewLine = lastRow < this.getLength() - 1;\n\t var startRow = ( deleteFirstNewLine ? firstRow - 1 : firstRow );\n\t var startCol = ( deleteFirstNewLine ? this.getLine(startRow).length : 0 );\n\t var endRow = ( deleteLastNewLine ? lastRow + 1 : lastRow );\n\t var endCol = ( deleteLastNewLine ? 0 : this.getLine(endRow).length ); \n\t var range = new Range(startRow, startCol, endRow, endCol);\n\t var deletedLines = this.$lines.slice(firstRow, lastRow + 1);\n\t \n\t this.applyDelta({\n\t start: range.start,\n\t end: range.end,\n\t action: \"remove\",\n\t lines: this.getLinesForRange(range)\n\t });\n\t return deletedLines;\n\t };\n\t this.removeNewLine = function(row) {\n\t if (row < this.getLength() - 1 && row >= 0) {\n\t this.applyDelta({\n\t start: this.pos(row, this.getLine(row).length),\n\t end: this.pos(row + 1, 0),\n\t action: \"remove\",\n\t lines: [\"\", \"\"]\n\t });\n\t }\n\t };\n\t this.replace = function(range, text) {\n\t if (!(range instanceof Range))\n\t range = Range.fromPoints(range.start, range.end);\n\t if (text.length === 0 && range.isEmpty())\n\t return range.start;\n\t if (text == this.getTextRange(range))\n\t return range.end;\n\n\t this.remove(range);\n\t var end;\n\t if (text) {\n\t end = this.insert(range.start, text);\n\t }\n\t else {\n\t end = range.start;\n\t }\n\t \n\t return end;\n\t };\n\t this.applyDeltas = function(deltas) {\n\t for (var i=0; i<deltas.length; i++) {\n\t this.applyDelta(deltas[i]);\n\t }\n\t };\n\t this.revertDeltas = function(deltas) {\n\t for (var i=deltas.length-1; i>=0; i--) {\n\t this.revertDelta(deltas[i]);\n\t }\n\t };\n\t this.applyDelta = function(delta, doNotValidate) {\n\t var isInsert = delta.action == \"insert\";\n\t if (isInsert ? delta.lines.length <= 1 && !delta.lines[0]\n\t : !Range.comparePoints(delta.start, delta.end)) {\n\t return;\n\t }\n\t \n\t if (isInsert && delta.lines.length > 20000)\n\t this.$splitAndapplyLargeDelta(delta, 20000);\n\t applyDelta(this.$lines, delta, doNotValidate);\n\t this._signal(\"change\", delta);\n\t };\n\t \n\t this.$splitAndapplyLargeDelta = function(delta, MAX) {\n\t var lines = delta.lines;\n\t var l = lines.length;\n\t var row = delta.start.row; \n\t var column = delta.start.column;\n\t var from = 0, to = 0;\n\t do {\n\t from = to;\n\t to += MAX - 1;\n\t var chunk = lines.slice(from, to);\n\t if (to > l) {\n\t delta.lines = chunk;\n\t delta.start.row = row + from;\n\t delta.start.column = column;\n\t break;\n\t }\n\t chunk.push(\"\");\n\t this.applyDelta({\n\t start: this.pos(row + from, column),\n\t end: this.pos(row + to, column = 0),\n\t action: delta.action,\n\t lines: chunk\n\t }, true);\n\t } while(true);\n\t };\n\t this.revertDelta = function(delta) {\n\t this.applyDelta({\n\t start: this.clonePos(delta.start),\n\t end: this.clonePos(delta.end),\n\t action: (delta.action == \"insert\" ? \"remove\" : \"insert\"),\n\t lines: delta.lines.slice()\n\t });\n\t };\n\t this.indexToPosition = function(index, startRow) {\n\t var lines = this.$lines || this.getAllLines();\n\t var newlineLength = this.getNewLineCharacter().length;\n\t for (var i = startRow || 0, l = lines.length; i < l; i++) {\n\t index -= lines[i].length + newlineLength;\n\t if (index < 0)\n\t return {row: i, column: index + lines[i].length + newlineLength};\n\t }\n\t return {row: l-1, column: lines[l-1].length};\n\t };\n\t this.positionToIndex = function(pos, startRow) {\n\t var lines = this.$lines || this.getAllLines();\n\t var newlineLength = this.getNewLineCharacter().length;\n\t var index = 0;\n\t var row = Math.min(pos.row, lines.length);\n\t for (var i = startRow || 0; i < row; ++i)\n\t index += lines[i].length + newlineLength;\n\n\t return index + pos.column;\n\t };\n\n\t}).call(Document.prototype);\n\n\texports.Document = Document;\n\t});\n\n\tace.define(\"ace/background_tokenizer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar oop = acequire(\"./lib/oop\");\n\tvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\n\n\tvar BackgroundTokenizer = function(tokenizer, editor) {\n\t this.running = false;\n\t this.lines = [];\n\t this.states = [];\n\t this.currentLine = 0;\n\t this.tokenizer = tokenizer;\n\n\t var self = this;\n\n\t this.$worker = function() {\n\t if (!self.running) { return; }\n\n\t var workerStart = new Date();\n\t var currentLine = self.currentLine;\n\t var endLine = -1;\n\t var doc = self.doc;\n\n\t var startLine = currentLine;\n\t while (self.lines[currentLine])\n\t currentLine++;\n\t \n\t var len = doc.getLength();\n\t var processedLines = 0;\n\t self.running = false;\n\t while (currentLine < len) {\n\t self.$tokenizeRow(currentLine);\n\t endLine = currentLine;\n\t do {\n\t currentLine++;\n\t } while (self.lines[currentLine]);\n\t processedLines ++;\n\t if ((processedLines % 5 === 0) && (new Date() - workerStart) > 20) { \n\t self.running = setTimeout(self.$worker, 20);\n\t break;\n\t }\n\t }\n\t self.currentLine = currentLine;\n\t \n\t if (startLine <= endLine)\n\t self.fireUpdateEvent(startLine, endLine);\n\t };\n\t};\n\n\t(function(){\n\n\t oop.implement(this, EventEmitter);\n\t this.setTokenizer = function(tokenizer) {\n\t this.tokenizer = tokenizer;\n\t this.lines = [];\n\t this.states = [];\n\n\t this.start(0);\n\t };\n\t this.setDocument = function(doc) {\n\t this.doc = doc;\n\t this.lines = [];\n\t this.states = [];\n\n\t this.stop();\n\t };\n\t this.fireUpdateEvent = function(firstRow, lastRow) {\n\t var data = {\n\t first: firstRow,\n\t last: lastRow\n\t };\n\t this._signal(\"update\", {data: data});\n\t };\n\t this.start = function(startRow) {\n\t this.currentLine = Math.min(startRow || 0, this.currentLine, this.doc.getLength());\n\t this.lines.splice(this.currentLine, this.lines.length);\n\t this.states.splice(this.currentLine, this.states.length);\n\n\t this.stop();\n\t this.running = setTimeout(this.$worker, 700);\n\t };\n\t \n\t this.scheduleStart = function() {\n\t if (!this.running)\n\t this.running = setTimeout(this.$worker, 700);\n\t }\n\n\t this.$updateOnChange = function(delta) {\n\t var startRow = delta.start.row;\n\t var len = delta.end.row - startRow;\n\n\t if (len === 0) {\n\t this.lines[startRow] = null;\n\t } else if (delta.action == \"remove\") {\n\t this.lines.splice(startRow, len + 1, null);\n\t this.states.splice(startRow, len + 1, null);\n\t } else {\n\t var args = Array(len + 1);\n\t args.unshift(startRow, 1);\n\t this.lines.splice.apply(this.lines, args);\n\t this.states.splice.apply(this.states, args);\n\t }\n\n\t this.currentLine = Math.min(startRow, this.currentLine, this.doc.getLength());\n\n\t this.stop();\n\t };\n\t this.stop = function() {\n\t if (this.running)\n\t clearTimeout(this.running);\n\t this.running = false;\n\t };\n\t this.getTokens = function(row) {\n\t return this.lines[row] || this.$tokenizeRow(row);\n\t };\n\t this.getState = function(row) {\n\t if (this.currentLine == row)\n\t this.$tokenizeRow(row);\n\t return this.states[row] || \"start\";\n\t };\n\n\t this.$tokenizeRow = function(row) {\n\t var line = this.doc.getLine(row);\n\t var state = this.states[row - 1];\n\n\t var data = this.tokenizer.getLineTokens(line, state, row);\n\n\t if (this.states[row] + \"\" !== data.state + \"\") {\n\t this.states[row] = data.state;\n\t this.lines[row + 1] = null;\n\t if (this.currentLine > row + 1)\n\t this.currentLine = row + 1;\n\t } else if (this.currentLine == row) {\n\t this.currentLine = row + 1;\n\t }\n\n\t return this.lines[row] = data.tokens;\n\t };\n\n\t}).call(BackgroundTokenizer.prototype);\n\n\texports.BackgroundTokenizer = BackgroundTokenizer;\n\t});\n\n\tace.define(\"ace/search_highlight\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar lang = acequire(\"./lib/lang\");\n\tvar oop = acequire(\"./lib/oop\");\n\tvar Range = acequire(\"./range\").Range;\n\n\tvar SearchHighlight = function(regExp, clazz, type) {\n\t this.setRegexp(regExp);\n\t this.clazz = clazz;\n\t this.type = type || \"text\";\n\t};\n\n\t(function() {\n\t this.MAX_RANGES = 500;\n\t \n\t this.setRegexp = function(regExp) {\n\t if (this.regExp+\"\" == regExp+\"\")\n\t return;\n\t this.regExp = regExp;\n\t this.cache = [];\n\t };\n\n\t this.update = function(html, markerLayer, session, config) {\n\t if (!this.regExp)\n\t return;\n\t var start = config.firstRow, end = config.lastRow;\n\n\t for (var i = start; i <= end; i++) {\n\t var ranges = this.cache[i];\n\t if (ranges == null) {\n\t ranges = lang.getMatchOffsets(session.getLine(i), this.regExp);\n\t if (ranges.length > this.MAX_RANGES)\n\t ranges = ranges.slice(0, this.MAX_RANGES);\n\t ranges = ranges.map(function(match) {\n\t return new Range(i, match.offset, i, match.offset + match.length);\n\t });\n\t this.cache[i] = ranges.length ? ranges : \"\";\n\t }\n\n\t for (var j = ranges.length; j --; ) {\n\t markerLayer.drawSingleLineMarker(\n\t html, ranges[j].toScreenRange(session), this.clazz, config);\n\t }\n\t }\n\t };\n\n\t}).call(SearchHighlight.prototype);\n\n\texports.SearchHighlight = SearchHighlight;\n\t});\n\n\tace.define(\"ace/edit_session/fold_line\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar Range = acequire(\"../range\").Range;\n\tfunction FoldLine(foldData, folds) {\n\t this.foldData = foldData;\n\t if (Array.isArray(folds)) {\n\t this.folds = folds;\n\t } else {\n\t folds = this.folds = [ folds ];\n\t }\n\n\t var last = folds[folds.length - 1];\n\t this.range = new Range(folds[0].start.row, folds[0].start.column,\n\t last.end.row, last.end.column);\n\t this.start = this.range.start;\n\t this.end = this.range.end;\n\n\t this.folds.forEach(function(fold) {\n\t fold.setFoldLine(this);\n\t }, this);\n\t}\n\n\t(function() {\n\t this.shiftRow = function(shift) {\n\t this.start.row += shift;\n\t this.end.row += shift;\n\t this.folds.forEach(function(fold) {\n\t fold.start.row += shift;\n\t fold.end.row += shift;\n\t });\n\t };\n\n\t this.addFold = function(fold) {\n\t if (fold.sameRow) {\n\t if (fold.start.row < this.startRow || fold.endRow > this.endRow) {\n\t throw new Error(\"Can't add a fold to this FoldLine as it has no connection\");\n\t }\n\t this.folds.push(fold);\n\t this.folds.sort(function(a, b) {\n\t return -a.range.compareEnd(b.start.row, b.start.column);\n\t });\n\t if (this.range.compareEnd(fold.start.row, fold.start.column) > 0) {\n\t this.end.row = fold.end.row;\n\t this.end.column = fold.end.column;\n\t } else if (this.range.compareStart(fold.end.row, fold.end.column) < 0) {\n\t this.start.row = fold.start.row;\n\t this.start.column = fold.start.column;\n\t }\n\t } else if (fold.start.row == this.end.row) {\n\t this.folds.push(fold);\n\t this.end.row = fold.end.row;\n\t this.end.column = fold.end.column;\n\t } else if (fold.end.row == this.start.row) {\n\t this.folds.unshift(fold);\n\t this.start.row = fold.start.row;\n\t this.start.column = fold.start.column;\n\t } else {\n\t throw new Error(\"Trying to add fold to FoldRow that doesn't have a matching row\");\n\t }\n\t fold.foldLine = this;\n\t };\n\n\t this.containsRow = function(row) {\n\t return row >= this.start.row && row <= this.end.row;\n\t };\n\n\t this.walk = function(callback, endRow, endColumn) {\n\t var lastEnd = 0,\n\t folds = this.folds,\n\t fold,\n\t cmp, stop, isNewRow = true;\n\n\t if (endRow == null) {\n\t endRow = this.end.row;\n\t endColumn = this.end.column;\n\t }\n\n\t for (var i = 0; i < folds.length; i++) {\n\t fold = folds[i];\n\n\t cmp = fold.range.compareStart(endRow, endColumn);\n\t if (cmp == -1) {\n\t callback(null, endRow, endColumn, lastEnd, isNewRow);\n\t return;\n\t }\n\n\t stop = callback(null, fold.start.row, fold.start.column, lastEnd, isNewRow);\n\t stop = !stop && callback(fold.placeholder, fold.start.row, fold.start.column, lastEnd);\n\t if (stop || cmp === 0) {\n\t return;\n\t }\n\t isNewRow = !fold.sameRow;\n\t lastEnd = fold.end.column;\n\t }\n\t callback(null, endRow, endColumn, lastEnd, isNewRow);\n\t };\n\n\t this.getNextFoldTo = function(row, column) {\n\t var fold, cmp;\n\t for (var i = 0; i < this.folds.length; i++) {\n\t fold = this.folds[i];\n\t cmp = fold.range.compareEnd(row, column);\n\t if (cmp == -1) {\n\t return {\n\t fold: fold,\n\t kind: \"after\"\n\t };\n\t } else if (cmp === 0) {\n\t return {\n\t fold: fold,\n\t kind: \"inside\"\n\t };\n\t }\n\t }\n\t return null;\n\t };\n\n\t this.addRemoveChars = function(row, column, len) {\n\t var ret = this.getNextFoldTo(row, column),\n\t fold, folds;\n\t if (ret) {\n\t fold = ret.fold;\n\t if (ret.kind == \"inside\"\n\t && fold.start.column != column\n\t && fold.start.row != row)\n\t {\n\t window.console && window.console.log(row, column, fold);\n\t } else if (fold.start.row == row) {\n\t folds = this.folds;\n\t var i = folds.indexOf(fold);\n\t if (i === 0) {\n\t this.start.column += len;\n\t }\n\t for (i; i < folds.length; i++) {\n\t fold = folds[i];\n\t fold.start.column += len;\n\t if (!fold.sameRow) {\n\t return;\n\t }\n\t fold.end.column += len;\n\t }\n\t this.end.column += len;\n\t }\n\t }\n\t };\n\n\t this.split = function(row, column) {\n\t var pos = this.getNextFoldTo(row, column);\n\t \n\t if (!pos || pos.kind == \"inside\")\n\t return null;\n\t \n\t var fold = pos.fold;\n\t var folds = this.folds;\n\t var foldData = this.foldData;\n\t \n\t var i = folds.indexOf(fold);\n\t var foldBefore = folds[i - 1];\n\t this.end.row = foldBefore.end.row;\n\t this.end.column = foldBefore.end.column;\n\t folds = folds.splice(i, folds.length - i);\n\n\t var newFoldLine = new FoldLine(foldData, folds);\n\t foldData.splice(foldData.indexOf(this) + 1, 0, newFoldLine);\n\t return newFoldLine;\n\t };\n\n\t this.merge = function(foldLineNext) {\n\t var folds = foldLineNext.folds;\n\t for (var i = 0; i < folds.length; i++) {\n\t this.addFold(folds[i]);\n\t }\n\t var foldData = this.foldData;\n\t foldData.splice(foldData.indexOf(foldLineNext), 1);\n\t };\n\n\t this.toString = function() {\n\t var ret = [this.range.toString() + \": [\" ];\n\n\t this.folds.forEach(function(fold) {\n\t ret.push(\" \" + fold.toString());\n\t });\n\t ret.push(\"]\");\n\t return ret.join(\"\\n\");\n\t };\n\n\t this.idxToPosition = function(idx) {\n\t var lastFoldEndColumn = 0;\n\n\t for (var i = 0; i < this.folds.length; i++) {\n\t var fold = this.folds[i];\n\n\t idx -= fold.start.column - lastFoldEndColumn;\n\t if (idx < 0) {\n\t return {\n\t row: fold.start.row,\n\t column: fold.start.column + idx\n\t };\n\t }\n\n\t idx -= fold.placeholder.length;\n\t if (idx < 0) {\n\t return fold.start;\n\t }\n\n\t lastFoldEndColumn = fold.end.column;\n\t }\n\n\t return {\n\t row: this.end.row,\n\t column: this.end.column + idx\n\t };\n\t };\n\t}).call(FoldLine.prototype);\n\n\texports.FoldLine = FoldLine;\n\t});\n\n\tace.define(\"ace/range_list\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\t\"use strict\";\n\tvar Range = acequire(\"./range\").Range;\n\tvar comparePoints = Range.comparePoints;\n\n\tvar RangeList = function() {\n\t this.ranges = [];\n\t};\n\n\t(function() {\n\t this.comparePoints = comparePoints;\n\n\t this.pointIndex = function(pos, excludeEdges, startIndex) {\n\t var list = this.ranges;\n\n\t for (var i = startIndex || 0; i < list.length; i++) {\n\t var range = list[i];\n\t var cmpEnd = comparePoints(pos, range.end);\n\t if (cmpEnd > 0)\n\t continue;\n\t var cmpStart = comparePoints(pos, range.start);\n\t if (cmpEnd === 0)\n\t return excludeEdges && cmpStart !== 0 ? -i-2 : i;\n\t if (cmpStart > 0 || (cmpStart === 0 && !excludeEdges))\n\t return i;\n\n\t return -i-1;\n\t }\n\t return -i - 1;\n\t };\n\n\t this.add = function(range) {\n\t var excludeEdges = !range.isEmpty();\n\t var startIndex = this.pointIndex(range.start, excludeEdges);\n\t if (startIndex < 0)\n\t startIndex = -startIndex - 1;\n\n\t var endIndex = this.pointIndex(range.end, excludeEdges, startIndex);\n\n\t if (endIndex < 0)\n\t endIndex = -endIndex - 1;\n\t else\n\t endIndex++;\n\t return this.ranges.splice(startIndex, endIndex - startIndex, range);\n\t };\n\n\t this.addList = function(list) {\n\t var removed = [];\n\t for (var i = list.length; i--; ) {\n\t removed.push.apply(removed, this.add(list[i]));\n\t }\n\t return removed;\n\t };\n\n\t this.substractPoint = function(pos) {\n\t var i = this.pointIndex(pos);\n\n\t if (i >= 0)\n\t return this.ranges.splice(i, 1);\n\t };\n\t this.merge = function() {\n\t var removed = [];\n\t var list = this.ranges;\n\t \n\t list = list.sort(function(a, b) {\n\t return comparePoints(a.start, b.start);\n\t });\n\t \n\t var next = list[0], range;\n\t for (var i = 1; i < list.length; i++) {\n\t range = next;\n\t next = list[i];\n\t var cmp = comparePoints(range.end, next.start);\n\t if (cmp < 0)\n\t continue;\n\n\t if (cmp == 0 && !range.isEmpty() && !next.isEmpty())\n\t continue;\n\n\t if (comparePoints(range.end, next.end) < 0) {\n\t range.end.row = next.end.row;\n\t range.end.column = next.end.column;\n\t }\n\n\t list.splice(i, 1);\n\t removed.push(next);\n\t next = range;\n\t i--;\n\t }\n\t \n\t this.ranges = list;\n\n\t return removed;\n\t };\n\n\t this.contains = function(row, column) {\n\t return this.pointIndex({row: row, column: column}) >= 0;\n\t };\n\n\t this.containsPoint = function(pos) {\n\t return this.pointIndex(pos) >= 0;\n\t };\n\n\t this.rangeAtPoint = function(pos) {\n\t var i = this.pointIndex(pos);\n\t if (i >= 0)\n\t return this.ranges[i];\n\t };\n\n\n\t this.clipRows = function(startRow, endRow) {\n\t var list = this.ranges;\n\t if (list[0].start.row > endRow || list[list.length - 1].start.row < startRow)\n\t return [];\n\n\t var startIndex = this.pointIndex({row: startRow, column: 0});\n\t if (startIndex < 0)\n\t startIndex = -startIndex - 1;\n\t var endIndex = this.pointIndex({row: endRow, column: 0}, startIndex);\n\t if (endIndex < 0)\n\t endIndex = -endIndex - 1;\n\n\t var clipped = [];\n\t for (var i = startIndex; i < endIndex; i++) {\n\t clipped.push(list[i]);\n\t }\n\t return clipped;\n\t };\n\n\t this.removeAll = function() {\n\t return this.ranges.splice(0, this.ranges.length);\n\t };\n\n\t this.attach = function(session) {\n\t if (this.session)\n\t this.detach();\n\n\t this.session = session;\n\t this.onChange = this.$onChange.bind(this);\n\n\t this.session.on('change', this.onChange);\n\t };\n\n\t this.detach = function() {\n\t if (!this.session)\n\t return;\n\t this.session.removeListener('change', this.onChange);\n\t this.session = null;\n\t };\n\n\t this.$onChange = function(delta) {\n\t if (delta.action == \"insert\"){\n\t var start = delta.start;\n\t var end = delta.end;\n\t } else {\n\t var end = delta.start;\n\t var start = delta.end;\n\t }\n\t var startRow = start.row;\n\t var endRow = end.row;\n\t var lineDif = endRow - startRow;\n\n\t var colDiff = -start.column + end.column;\n\t var ranges = this.ranges;\n\n\t for (var i = 0, n = ranges.length; i < n; i++) {\n\t var r = ranges[i];\n\t if (r.end.row < startRow)\n\t continue;\n\t if (r.start.row > startRow)\n\t break;\n\n\t if (r.start.row == startRow && r.start.column >= start.column ) {\n\t if (r.start.column == start.column && this.$insertRight) {\n\t } else {\n\t r.start.column += colDiff;\n\t r.start.row += lineDif;\n\t }\n\t }\n\t if (r.end.row == startRow && r.end.column >= start.column) {\n\t if (r.end.column == start.column && this.$insertRight) {\n\t continue;\n\t }\n\t if (r.end.column == start.column && colDiff > 0 && i < n - 1) { \n\t if (r.end.column > r.start.column && r.end.column == ranges[i+1].start.column)\n\t r.end.column -= colDiff;\n\t }\n\t r.end.column += colDiff;\n\t r.end.row += lineDif;\n\t }\n\t }\n\n\t if (lineDif != 0 && i < n) {\n\t for (; i < n; i++) {\n\t var r = ranges[i];\n\t r.start.row += lineDif;\n\t r.end.row += lineDif;\n\t }\n\t }\n\t };\n\n\t}).call(RangeList.prototype);\n\n\texports.RangeList = RangeList;\n\t});\n\n\tace.define(\"ace/edit_session/fold\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/range_list\",\"ace/lib/oop\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar Range = acequire(\"../range\").Range;\n\tvar RangeList = acequire(\"../range_list\").RangeList;\n\tvar oop = acequire(\"../lib/oop\")\n\tvar Fold = exports.Fold = function(range, placeholder) {\n\t this.foldLine = null;\n\t this.placeholder = placeholder;\n\t this.range = range;\n\t this.start = range.start;\n\t this.end = range.end;\n\n\t this.sameRow = range.start.row == range.end.row;\n\t this.subFolds = this.ranges = [];\n\t};\n\n\toop.inherits(Fold, RangeList);\n\n\t(function() {\n\n\t this.toString = function() {\n\t return '\"' + this.placeholder + '\" ' + this.range.toString();\n\t };\n\n\t this.setFoldLine = function(foldLine) {\n\t this.foldLine = foldLine;\n\t this.subFolds.forEach(function(fold) {\n\t fold.setFoldLine(foldLine);\n\t });\n\t };\n\n\t this.clone = function() {\n\t var range = this.range.clone();\n\t var fold = new Fold(range, this.placeholder);\n\t this.subFolds.forEach(function(subFold) {\n\t fold.subFolds.push(subFold.clone());\n\t });\n\t fold.collapseChildren = this.collapseChildren;\n\t return fold;\n\t };\n\n\t this.addSubFold = function(fold) {\n\t if (this.range.isEqual(fold))\n\t return;\n\n\t if (!this.range.containsRange(fold))\n\t throw new Error(\"A fold can't intersect already existing fold\" + fold.range + this.range);\n\t consumeRange(fold, this.start);\n\n\t var row = fold.start.row, column = fold.start.column;\n\t for (var i = 0, cmp = -1; i < this.subFolds.length; i++) {\n\t cmp = this.subFolds[i].range.compare(row, column);\n\t if (cmp != 1)\n\t break;\n\t }\n\t var afterStart = this.subFolds[i];\n\n\t if (cmp == 0)\n\t return afterStart.addSubFold(fold);\n\t var row = fold.range.end.row, column = fold.range.end.column;\n\t for (var j = i, cmp = -1; j < this.subFolds.length; j++) {\n\t cmp = this.subFolds[j].range.compare(row, column);\n\t if (cmp != 1)\n\t break;\n\t }\n\t var afterEnd = this.subFolds[j];\n\n\t if (cmp == 0)\n\t throw new Error(\"A fold can't intersect already existing fold\" + fold.range + this.range);\n\n\t var consumedFolds = this.subFolds.splice(i, j - i, fold);\n\t fold.setFoldLine(this.foldLine);\n\n\t return fold;\n\t };\n\t \n\t this.restoreRange = function(range) {\n\t return restoreRange(range, this.start);\n\t };\n\n\t}).call(Fold.prototype);\n\n\tfunction consumePoint(point, anchor) {\n\t point.row -= anchor.row;\n\t if (point.row == 0)\n\t point.column -= anchor.column;\n\t}\n\tfunction consumeRange(range, anchor) {\n\t consumePoint(range.start, anchor);\n\t consumePoint(range.end, anchor);\n\t}\n\tfunction restorePoint(point, anchor) {\n\t if (point.row == 0)\n\t point.column += anchor.column;\n\t point.row += anchor.row;\n\t}\n\tfunction restoreRange(range, anchor) {\n\t restorePoint(range.start, anchor);\n\t restorePoint(range.end, anchor);\n\t}\n\n\t});\n\n\tace.define(\"ace/edit_session/folding\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/edit_session/fold_line\",\"ace/edit_session/fold\",\"ace/token_iterator\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar Range = acequire(\"../range\").Range;\n\tvar FoldLine = acequire(\"./fold_line\").FoldLine;\n\tvar Fold = acequire(\"./fold\").Fold;\n\tvar TokenIterator = acequire(\"../token_iterator\").TokenIterator;\n\n\tfunction Folding() {\n\t this.getFoldAt = function(row, column, side) {\n\t var foldLine = this.getFoldLine(row);\n\t if (!foldLine)\n\t return null;\n\n\t var folds = foldLine.folds;\n\t for (var i = 0; i < folds.length; i++) {\n\t var fold = folds[i];\n\t if (fold.range.contains(row, column)) {\n\t if (side == 1 && fold.range.isEnd(row, column)) {\n\t continue;\n\t } else if (side == -1 && fold.range.isStart(row, column)) {\n\t continue;\n\t }\n\t return fold;\n\t }\n\t }\n\t };\n\t this.getFoldsInRange = function(range) {\n\t var start = range.start;\n\t var end = range.end;\n\t var foldLines = this.$foldData;\n\t var foundFolds = [];\n\n\t start.column += 1;\n\t end.column -= 1;\n\n\t for (var i = 0; i < foldLines.length; i++) {\n\t var cmp = foldLines[i].range.compareRange(range);\n\t if (cmp == 2) {\n\t continue;\n\t }\n\t else if (cmp == -2) {\n\t break;\n\t }\n\n\t var folds = foldLines[i].folds;\n\t for (var j = 0; j < folds.length; j++) {\n\t var fold = folds[j];\n\t cmp = fold.range.compareRange(range);\n\t if (cmp == -2) {\n\t break;\n\t } else if (cmp == 2) {\n\t continue;\n\t } else\n\t if (cmp == 42) {\n\t break;\n\t }\n\t foundFolds.push(fold);\n\t }\n\t }\n\t start.column -= 1;\n\t end.column += 1;\n\n\t return foundFolds;\n\t };\n\n\t this.getFoldsInRangeList = function(ranges) {\n\t if (Array.isArray(ranges)) {\n\t var folds = [];\n\t ranges.forEach(function(range) {\n\t folds = folds.concat(this.getFoldsInRange(range));\n\t }, this);\n\t } else {\n\t var folds = this.getFoldsInRange(ranges);\n\t }\n\t return folds;\n\t };\n\t this.getAllFolds = function() {\n\t var folds = [];\n\t var foldLines = this.$foldData;\n\t \n\t for (var i = 0; i < foldLines.length; i++)\n\t for (var j = 0; j < foldLines[i].folds.length; j++)\n\t folds.push(foldLines[i].folds[j]);\n\n\t return folds;\n\t };\n\t this.getFoldStringAt = function(row, column, trim, foldLine) {\n\t foldLine = foldLine || this.getFoldLine(row);\n\t if (!foldLine)\n\t return null;\n\n\t var lastFold = {\n\t end: { column: 0 }\n\t };\n\t var str, fold;\n\t for (var i = 0; i < foldLine.folds.length; i++) {\n\t fold = foldLine.folds[i];\n\t var cmp = fold.range.compareEnd(row, column);\n\t if (cmp == -1) {\n\t str = this\n\t .getLine(fold.start.row)\n\t .substring(lastFold.end.column, fold.start.column);\n\t break;\n\t }\n\t else if (cmp === 0) {\n\t return null;\n\t }\n\t lastFold = fold;\n\t }\n\t if (!str)\n\t str = this.getLine(fold.start.row).substring(lastFold.end.column);\n\n\t if (trim == -1)\n\t return str.substring(0, column - lastFold.end.column);\n\t else if (trim == 1)\n\t return str.substring(column - lastFold.end.column);\n\t else\n\t return str;\n\t };\n\n\t this.getFoldLine = function(docRow, startFoldLine) {\n\t var foldData = this.$foldData;\n\t var i = 0;\n\t if (startFoldLine)\n\t i = foldData.indexOf(startFoldLine);\n\t if (i == -1)\n\t i = 0;\n\t for (i; i < foldData.length; i++) {\n\t var foldLine = foldData[i];\n\t if (foldLine.start.row <= docRow && foldLine.end.row >= docRow) {\n\t return foldLine;\n\t } else if (foldLine.end.row > docRow) {\n\t return null;\n\t }\n\t }\n\t return null;\n\t };\n\t this.getNextFoldLine = function(docRow, startFoldLine) {\n\t var foldData = this.$foldData;\n\t var i = 0;\n\t if (startFoldLine)\n\t i = foldData.indexOf(startFoldLine);\n\t if (i == -1)\n\t i = 0;\n\t for (i; i < foldData.length; i++) {\n\t var foldLine = foldData[i];\n\t if (foldLine.end.row >= docRow) {\n\t return foldLine;\n\t }\n\t }\n\t return null;\n\t };\n\n\t this.getFoldedRowCount = function(first, last) {\n\t var foldData = this.$foldData, rowCount = last-first+1;\n\t for (var i = 0; i < foldData.length; i++) {\n\t var foldLine = foldData[i],\n\t end = foldLine.end.row,\n\t start = foldLine.start.row;\n\t if (end >= last) {\n\t if (start < last) {\n\t if (start >= first)\n\t rowCount -= last-start;\n\t else\n\t rowCount = 0; // in one fold\n\t }\n\t break;\n\t } else if (end >= first){\n\t if (start >= first) // fold inside range\n\t rowCount -= end-start;\n\t else\n\t rowCount -= end-first+1;\n\t }\n\t }\n\t return rowCount;\n\t };\n\n\t this.$addFoldLine = function(foldLine) {\n\t this.$foldData.push(foldLine);\n\t this.$foldData.sort(function(a, b) {\n\t return a.start.row - b.start.row;\n\t });\n\t return foldLine;\n\t };\n\t this.addFold = function(placeholder, range) {\n\t var foldData = this.$foldData;\n\t var added = false;\n\t var fold;\n\t \n\t if (placeholder instanceof Fold)\n\t fold = placeholder;\n\t else {\n\t fold = new Fold(range, placeholder);\n\t fold.collapseChildren = range.collapseChildren;\n\t }\n\t this.$clipRangeToDocument(fold.range);\n\n\t var startRow = fold.start.row;\n\t var startColumn = fold.start.column;\n\t var endRow = fold.end.row;\n\t var endColumn = fold.end.column;\n\t if (!(startRow < endRow || \n\t startRow == endRow && startColumn <= endColumn - 2))\n\t throw new Error(\"The range has to be at least 2 characters width\");\n\n\t var startFold = this.getFoldAt(startRow, startColumn, 1);\n\t var endFold = this.getFoldAt(endRow, endColumn, -1);\n\t if (startFold && endFold == startFold)\n\t return startFold.addSubFold(fold);\n\n\t if (startFold && !startFold.range.isStart(startRow, startColumn))\n\t this.removeFold(startFold);\n\t \n\t if (endFold && !endFold.range.isEnd(endRow, endColumn))\n\t this.removeFold(endFold);\n\t var folds = this.getFoldsInRange(fold.range);\n\t if (folds.length > 0) {\n\t this.removeFolds(folds);\n\t folds.forEach(function(subFold) {\n\t fold.addSubFold(subFold);\n\t });\n\t }\n\n\t for (var i = 0; i < foldData.length; i++) {\n\t var foldLine = foldData[i];\n\t if (endRow == foldLine.start.row) {\n\t foldLine.addFold(fold);\n\t added = true;\n\t break;\n\t } else if (startRow == foldLine.end.row) {\n\t foldLine.addFold(fold);\n\t added = true;\n\t if (!fold.sameRow) {\n\t var foldLineNext = foldData[i + 1];\n\t if (foldLineNext && foldLineNext.start.row == endRow) {\n\t foldLine.merge(foldLineNext);\n\t break;\n\t }\n\t }\n\t break;\n\t } else if (endRow <= foldLine.start.row) {\n\t break;\n\t }\n\t }\n\n\t if (!added)\n\t foldLine = this.$addFoldLine(new FoldLine(this.$foldData, fold));\n\n\t if (this.$useWrapMode)\n\t this.$updateWrapData(foldLine.start.row, foldLine.start.row);\n\t else\n\t this.$updateRowLengthCache(foldLine.start.row, foldLine.start.row);\n\t this.$modified = true;\n\t this._signal(\"changeFold\", { data: fold, action: \"add\" });\n\n\t return fold;\n\t };\n\n\t this.addFolds = function(folds) {\n\t folds.forEach(function(fold) {\n\t this.addFold(fold);\n\t }, this);\n\t };\n\n\t this.removeFold = function(fold) {\n\t var foldLine = fold.foldLine;\n\t var startRow = foldLine.start.row;\n\t var endRow = foldLine.end.row;\n\n\t var foldLines = this.$foldData;\n\t var folds = foldLine.folds;\n\t if (folds.length == 1) {\n\t foldLines.splice(foldLines.indexOf(foldLine), 1);\n\t } else\n\t if (foldLine.range.isEnd(fold.end.row, fold.end.column)) {\n\t folds.pop();\n\t foldLine.end.row = folds[folds.length - 1].end.row;\n\t foldLine.end.column = folds[folds.length - 1].end.column;\n\t } else\n\t if (foldLine.range.isStart(fold.start.row, fold.start.column)) {\n\t folds.shift();\n\t foldLine.start.row = folds[0].start.row;\n\t foldLine.start.column = folds[0].start.column;\n\t } else\n\t if (fold.sameRow) {\n\t folds.splice(folds.indexOf(fold), 1);\n\t } else\n\t {\n\t var newFoldLine = foldLine.split(fold.start.row, fold.start.column);\n\t folds = newFoldLine.folds;\n\t folds.shift();\n\t newFoldLine.start.row = folds[0].start.row;\n\t newFoldLine.start.column = folds[0].start.column;\n\t }\n\n\t if (!this.$updating) {\n\t if (this.$useWrapMode)\n\t this.$updateWrapData(startRow, endRow);\n\t else\n\t this.$updateRowLengthCache(startRow, endRow);\n\t }\n\t this.$modified = true;\n\t this._signal(\"changeFold\", { data: fold, action: \"remove\" });\n\t };\n\n\t this.removeFolds = function(folds) {\n\t var cloneFolds = [];\n\t for (var i = 0; i < folds.length; i++) {\n\t cloneFolds.push(folds[i]);\n\t }\n\n\t cloneFolds.forEach(function(fold) {\n\t this.removeFold(fold);\n\t }, this);\n\t this.$modified = true;\n\t };\n\n\t this.expandFold = function(fold) {\n\t this.removeFold(fold);\n\t fold.subFolds.forEach(function(subFold) {\n\t fold.restoreRange(subFold);\n\t this.addFold(subFold);\n\t }, this);\n\t if (fold.collapseChildren > 0) {\n\t this.foldAll(fold.start.row+1, fold.end.row, fold.collapseChildren-1);\n\t }\n\t fold.subFolds = [];\n\t };\n\n\t this.expandFolds = function(folds) {\n\t folds.forEach(function(fold) {\n\t this.expandFold(fold);\n\t }, this);\n\t };\n\n\t this.unfold = function(location, expandInner) {\n\t var range, folds;\n\t if (location == null) {\n\t range = new Range(0, 0, this.getLength(), 0);\n\t expandInner = true;\n\t } else if (typeof location == \"number\")\n\t range = new Range(location, 0, location, this.getLine(location).length);\n\t else if (\"row\" in location)\n\t range = Range.fromPoints(location, location);\n\t else\n\t range = location;\n\t \n\t folds = this.getFoldsInRangeList(range);\n\t if (expandInner) {\n\t this.removeFolds(folds);\n\t } else {\n\t var subFolds = folds;\n\t while (subFolds.length) {\n\t this.expandFolds(subFolds);\n\t subFolds = this.getFoldsInRangeList(range);\n\t }\n\t }\n\t if (folds.length)\n\t return folds;\n\t };\n\t this.isRowFolded = function(docRow, startFoldRow) {\n\t return !!this.getFoldLine(docRow, startFoldRow);\n\t };\n\n\t this.getRowFoldEnd = function(docRow, startFoldRow) {\n\t var foldLine = this.getFoldLine(docRow, startFoldRow);\n\t return foldLine ? foldLine.end.row : docRow;\n\t };\n\n\t this.getRowFoldStart = function(docRow, startFoldRow) {\n\t var foldLine = this.getFoldLine(docRow, startFoldRow);\n\t return foldLine ? foldLine.start.row : docRow;\n\t };\n\n\t this.getFoldDisplayLine = function(foldLine, endRow, endColumn, startRow, startColumn) {\n\t if (startRow == null)\n\t startRow = foldLine.start.row;\n\t if (startColumn == null)\n\t startColumn = 0;\n\t if (endRow == null)\n\t endRow = foldLine.end.row;\n\t if (endColumn == null)\n\t endColumn = this.getLine(endRow).length;\n\t var doc = this.doc;\n\t var textLine = \"\";\n\n\t foldLine.walk(function(placeholder, row, column, lastColumn) {\n\t if (row < startRow)\n\t return;\n\t if (row == startRow) {\n\t if (column < startColumn)\n\t return;\n\t lastColumn = Math.max(startColumn, lastColumn);\n\t }\n\n\t if (placeholder != null) {\n\t textLine += placeholder;\n\t } else {\n\t textLine += doc.getLine(row).substring(lastColumn, column);\n\t }\n\t }, endRow, endColumn);\n\t return textLine;\n\t };\n\n\t this.getDisplayLine = function(row, endColumn, startRow, startColumn) {\n\t var foldLine = this.getFoldLine(row);\n\n\t if (!foldLine) {\n\t var line;\n\t line = this.doc.getLine(row);\n\t return line.substring(startColumn || 0, endColumn || line.length);\n\t } else {\n\t return this.getFoldDisplayLine(\n\t foldLine, row, endColumn, startRow, startColumn);\n\t }\n\t };\n\n\t this.$cloneFoldData = function() {\n\t var fd = [];\n\t fd = this.$foldData.map(function(foldLine) {\n\t var folds = foldLine.folds.map(function(fold) {\n\t return fold.clone();\n\t });\n\t return new FoldLine(fd, folds);\n\t });\n\n\t return fd;\n\t };\n\n\t this.toggleFold = function(tryToUnfold) {\n\t var selection = this.selection;\n\t var range = selection.getRange();\n\t var fold;\n\t var bracketPos;\n\n\t if (range.isEmpty()) {\n\t var cursor = range.start;\n\t fold = this.getFoldAt(cursor.row, cursor.column);\n\n\t if (fold) {\n\t this.expandFold(fold);\n\t return;\n\t } else if (bracketPos = this.findMatchingBracket(cursor)) {\n\t if (range.comparePoint(bracketPos) == 1) {\n\t range.end = bracketPos;\n\t } else {\n\t range.start = bracketPos;\n\t range.start.column++;\n\t range.end.column--;\n\t }\n\t } else if (bracketPos = this.findMatchingBracket({row: cursor.row, column: cursor.column + 1})) {\n\t if (range.comparePoint(bracketPos) == 1)\n\t range.end = bracketPos;\n\t else\n\t range.start = bracketPos;\n\n\t range.start.column++;\n\t } else {\n\t range = this.getCommentFoldRange(cursor.row, cursor.column) || range;\n\t }\n\t } else {\n\t var folds = this.getFoldsInRange(range);\n\t if (tryToUnfold && folds.length) {\n\t this.expandFolds(folds);\n\t return;\n\t } else if (folds.length == 1 ) {\n\t fold = folds[0];\n\t }\n\t }\n\n\t if (!fold)\n\t fold = this.getFoldAt(range.start.row, range.start.column);\n\n\t if (fold && fold.range.toString() == range.toString()) {\n\t this.expandFold(fold);\n\t return;\n\t }\n\n\t var placeholder = \"...\";\n\t if (!range.isMultiLine()) {\n\t placeholder = this.getTextRange(range);\n\t if (placeholder.length < 4)\n\t return;\n\t placeholder = placeholder.trim().substring(0, 2) + \"..\";\n\t }\n\n\t this.addFold(placeholder, range);\n\t };\n\n\t this.getCommentFoldRange = function(row, column, dir) {\n\t var iterator = new TokenIterator(this, row, column);\n\t var token = iterator.getCurrentToken();\n\t if (token && /^comment|string/.test(token.type)) {\n\t var range = new Range();\n\t var re = new RegExp(token.type.replace(/\\..*/, \"\\\\.\"));\n\t if (dir != 1) {\n\t do {\n\t token = iterator.stepBackward();\n\t } while (token && re.test(token.type));\n\t iterator.stepForward();\n\t }\n\t \n\t range.start.row = iterator.getCurrentTokenRow();\n\t range.start.column = iterator.getCurrentTokenColumn() + 2;\n\n\t iterator = new TokenIterator(this, row, column);\n\t \n\t if (dir != -1) {\n\t do {\n\t token = iterator.stepForward();\n\t } while (token && re.test(token.type));\n\t token = iterator.stepBackward();\n\t } else\n\t token = iterator.getCurrentToken();\n\n\t range.end.row = iterator.getCurrentTokenRow();\n\t range.end.column = iterator.getCurrentTokenColumn() + token.value.length - 2;\n\t return range;\n\t }\n\t };\n\n\t this.foldAll = function(startRow, endRow, depth) {\n\t if (depth == undefined)\n\t depth = 100000; // JSON.stringify doesn't hanle Infinity\n\t var foldWidgets = this.foldWidgets;\n\t if (!foldWidgets)\n\t return; // mode doesn't support folding\n\t endRow = endRow || this.getLength();\n\t startRow = startRow || 0;\n\t for (var row = startRow; row < endRow; row++) {\n\t if (foldWidgets[row] == null)\n\t foldWidgets[row] = this.getFoldWidget(row);\n\t if (foldWidgets[row] != \"start\")\n\t continue;\n\n\t var range = this.getFoldWidgetRange(row);\n\t if (range && range.isMultiLine()\n\t && range.end.row <= endRow\n\t && range.start.row >= startRow\n\t ) {\n\t row = range.end.row;\n\t try {\n\t var fold = this.addFold(\"...\", range);\n\t if (fold)\n\t fold.collapseChildren = depth;\n\t } catch(e) {}\n\t }\n\t }\n\t };\n\t this.$foldStyles = {\n\t \"manual\": 1,\n\t \"markbegin\": 1,\n\t \"markbeginend\": 1\n\t };\n\t this.$foldStyle = \"markbegin\";\n\t this.setFoldStyle = function(style) {\n\t if (!this.$foldStyles[style])\n\t throw new Error(\"invalid fold style: \" + style + \"[\" + Object.keys(this.$foldStyles).join(\", \") + \"]\");\n\t \n\t if (this.$foldStyle == style)\n\t return;\n\n\t this.$foldStyle = style;\n\t \n\t if (style == \"manual\")\n\t this.unfold();\n\t var mode = this.$foldMode;\n\t this.$setFolding(null);\n\t this.$setFolding(mode);\n\t };\n\n\t this.$setFolding = function(foldMode) {\n\t if (this.$foldMode == foldMode)\n\t return;\n\t \n\t this.$foldMode = foldMode;\n\t \n\t this.off('change', this.$updateFoldWidgets);\n\t this.off('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n\t this._signal(\"changeAnnotation\");\n\t \n\t if (!foldMode || this.$foldStyle == \"manual\") {\n\t this.foldWidgets = null;\n\t return;\n\t }\n\t \n\t this.foldWidgets = [];\n\t this.getFoldWidget = foldMode.getFoldWidget.bind(foldMode, this, this.$foldStyle);\n\t this.getFoldWidgetRange = foldMode.getFoldWidgetRange.bind(foldMode, this, this.$foldStyle);\n\t \n\t this.$updateFoldWidgets = this.updateFoldWidgets.bind(this);\n\t this.$tokenizerUpdateFoldWidgets = this.tokenizerUpdateFoldWidgets.bind(this);\n\t this.on('change', this.$updateFoldWidgets);\n\t this.on('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n\t };\n\n\t this.getParentFoldRangeData = function (row, ignoreCurrent) {\n\t var fw = this.foldWidgets;\n\t if (!fw || (ignoreCurrent && fw[row]))\n\t return {};\n\n\t var i = row - 1, firstRange;\n\t while (i >= 0) {\n\t var c = fw[i];\n\t if (c == null)\n\t c = fw[i] = this.getFoldWidget(i);\n\n\t if (c == \"start\") {\n\t var range = this.getFoldWidgetRange(i);\n\t if (!firstRange)\n\t firstRange = range;\n\t if (range && range.end.row >= row)\n\t break;\n\t }\n\t i--;\n\t }\n\n\t return {\n\t range: i !== -1 && range,\n\t firstRange: firstRange\n\t };\n\t };\n\n\t this.onFoldWidgetClick = function(row, e) {\n\t e = e.domEvent;\n\t var options = {\n\t children: e.shiftKey,\n\t all: e.ctrlKey || e.metaKey,\n\t siblings: e.altKey\n\t };\n\t \n\t var range = this.$toggleFoldWidget(row, options);\n\t if (!range) {\n\t var el = (e.target || e.srcElement);\n\t if (el && /ace_fold-widget/.test(el.className))\n\t el.className += \" ace_invalid\";\n\t }\n\t };\n\t \n\t this.$toggleFoldWidget = function(row, options) {\n\t if (!this.getFoldWidget)\n\t return;\n\t var type = this.getFoldWidget(row);\n\t var line = this.getLine(row);\n\n\t var dir = type === \"end\" ? -1 : 1;\n\t var fold = this.getFoldAt(row, dir === -1 ? 0 : line.length, dir);\n\n\t if (fold) {\n\t if (options.children || options.all)\n\t this.removeFold(fold);\n\t else\n\t this.expandFold(fold);\n\t return fold;\n\t }\n\n\t var range = this.getFoldWidgetRange(row, true);\n\t if (range && !range.isMultiLine()) {\n\t fold = this.getFoldAt(range.start.row, range.start.column, 1);\n\t if (fold && range.isEqual(fold.range)) {\n\t this.removeFold(fold);\n\t return fold;\n\t }\n\t }\n\t \n\t if (options.siblings) {\n\t var data = this.getParentFoldRangeData(row);\n\t if (data.range) {\n\t var startRow = data.range.start.row + 1;\n\t var endRow = data.range.end.row;\n\t }\n\t this.foldAll(startRow, endRow, options.all ? 10000 : 0);\n\t } else if (options.children) {\n\t endRow = range ? range.end.row : this.getLength();\n\t this.foldAll(row + 1, endRow, options.all ? 10000 : 0);\n\t } else if (range) {\n\t if (options.all) \n\t range.collapseChildren = 10000;\n\t this.addFold(\"...\", range);\n\t }\n\t \n\t return range;\n\t };\n\t \n\t \n\t \n\t this.toggleFoldWidget = function(toggleParent) {\n\t var row = this.selection.getCursor().row;\n\t row = this.getRowFoldStart(row);\n\t var range = this.$toggleFoldWidget(row, {});\n\t \n\t if (range)\n\t return;\n\t var data = this.getParentFoldRangeData(row, true);\n\t range = data.range || data.firstRange;\n\t \n\t if (range) {\n\t row = range.start.row;\n\t var fold = this.getFoldAt(row, this.getLine(row).length, 1);\n\n\t if (fold) {\n\t this.removeFold(fold);\n\t } else {\n\t this.addFold(\"...\", range);\n\t }\n\t }\n\t };\n\n\t this.updateFoldWidgets = function(delta) {\n\t var firstRow = delta.start.row;\n\t var len = delta.end.row - firstRow;\n\n\t if (len === 0) {\n\t this.foldWidgets[firstRow] = null;\n\t } else if (delta.action == 'remove') {\n\t this.foldWidgets.splice(firstRow, len + 1, null);\n\t } else {\n\t var args = Array(len + 1);\n\t args.unshift(firstRow, 1);\n\t this.foldWidgets.splice.apply(this.foldWidgets, args);\n\t }\n\t };\n\t this.tokenizerUpdateFoldWidgets = function(e) {\n\t var rows = e.data;\n\t if (rows.first != rows.last) {\n\t if (this.foldWidgets.length > rows.first)\n\t this.foldWidgets.splice(rows.first, this.foldWidgets.length);\n\t }\n\t };\n\t}\n\n\texports.Folding = Folding;\n\n\t});\n\n\tace.define(\"ace/edit_session/bracket_match\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\",\"ace/range\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar TokenIterator = acequire(\"../token_iterator\").TokenIterator;\n\tvar Range = acequire(\"../range\").Range;\n\n\n\tfunction BracketMatch() {\n\n\t this.findMatchingBracket = function(position, chr) {\n\t if (position.column == 0) return null;\n\n\t var charBeforeCursor = chr || this.getLine(position.row).charAt(position.column-1);\n\t if (charBeforeCursor == \"\") return null;\n\n\t var match = charBeforeCursor.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n\t if (!match)\n\t return null;\n\n\t if (match[1])\n\t return this.$findClosingBracket(match[1], position);\n\t else\n\t return this.$findOpeningBracket(match[2], position);\n\t };\n\t \n\t this.getBracketRange = function(pos) {\n\t var line = this.getLine(pos.row);\n\t var before = true, range;\n\n\t var chr = line.charAt(pos.column-1);\n\t var match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n\t if (!match) {\n\t chr = line.charAt(pos.column);\n\t pos = {row: pos.row, column: pos.column + 1};\n\t match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n\t before = false;\n\t }\n\t if (!match)\n\t return null;\n\n\t if (match[1]) {\n\t var bracketPos = this.$findClosingBracket(match[1], pos);\n\t if (!bracketPos)\n\t return null;\n\t range = Range.fromPoints(pos, bracketPos);\n\t if (!before) {\n\t range.end.column++;\n\t range.start.column--;\n\t }\n\t range.cursor = range.end;\n\t } else {\n\t var bracketPos = this.$findOpeningBracket(match[2], pos);\n\t if (!bracketPos)\n\t return null;\n\t range = Range.fromPoints(bracketPos, pos);\n\t if (!before) {\n\t range.start.column++;\n\t range.end.column--;\n\t }\n\t range.cursor = range.start;\n\t }\n\t \n\t return range;\n\t };\n\n\t this.$brackets = {\n\t \")\": \"(\",\n\t \"(\": \")\",\n\t \"]\": \"[\",\n\t \"[\": \"]\",\n\t \"{\": \"}\",\n\t \"}\": \"{\"\n\t };\n\n\t this.$findOpeningBracket = function(bracket, position, typeRe) {\n\t var openBracket = this.$brackets[bracket];\n\t var depth = 1;\n\n\t var iterator = new TokenIterator(this, position.row, position.column);\n\t var token = iterator.getCurrentToken();\n\t if (!token)\n\t token = iterator.stepForward();\n\t if (!token)\n\t return;\n\t \n\t if (!typeRe){\n\t typeRe = new RegExp(\n\t \"(\\\\.?\" +\n\t token.type.replace(\".\", \"\\\\.\").replace(\"rparen\", \".paren\")\n\t .replace(/\\b(?:end)\\b/, \"(?:start|begin|end)\")\n\t + \")+\"\n\t );\n\t }\n\t var valueIndex = position.column - iterator.getCurrentTokenColumn() - 2;\n\t var value = token.value;\n\t \n\t while (true) {\n\t \n\t while (valueIndex >= 0) {\n\t var chr = value.charAt(valueIndex);\n\t if (chr == openBracket) {\n\t depth -= 1;\n\t if (depth == 0) {\n\t return {row: iterator.getCurrentTokenRow(),\n\t column: valueIndex + iterator.getCurrentTokenColumn()};\n\t }\n\t }\n\t else if (chr == bracket) {\n\t depth += 1;\n\t }\n\t valueIndex -= 1;\n\t }\n\t do {\n\t token = iterator.stepBackward();\n\t } while (token && !typeRe.test(token.type));\n\n\t if (token == null)\n\t break;\n\t \n\t value = token.value;\n\t valueIndex = value.length - 1;\n\t }\n\t \n\t return null;\n\t };\n\n\t this.$findClosingBracket = function(bracket, position, typeRe) {\n\t var closingBracket = this.$brackets[bracket];\n\t var depth = 1;\n\n\t var iterator = new TokenIterator(this, position.row, position.column);\n\t var token = iterator.getCurrentToken();\n\t if (!token)\n\t token = iterator.stepForward();\n\t if (!token)\n\t return;\n\n\t if (!typeRe){\n\t typeRe = new RegExp(\n\t \"(\\\\.?\" +\n\t token.type.replace(\".\", \"\\\\.\").replace(\"lparen\", \".paren\")\n\t .replace(/\\b(?:start|begin)\\b/, \"(?:start|begin|end)\")\n\t + \")+\"\n\t );\n\t }\n\t var valueIndex = position.column - iterator.getCurrentTokenColumn();\n\n\t while (true) {\n\n\t var value = token.value;\n\t var valueLength = value.length;\n\t while (valueIndex < valueLength) {\n\t var chr = value.charAt(valueIndex);\n\t if (chr == closingBracket) {\n\t depth -= 1;\n\t if (depth == 0) {\n\t return {row: iterator.getCurrentTokenRow(),\n\t column: valueIndex + iterator.getCurrentTokenColumn()};\n\t }\n\t }\n\t else if (chr == bracket) {\n\t depth += 1;\n\t }\n\t valueIndex += 1;\n\t }\n\t do {\n\t token = iterator.stepForward();\n\t } while (token && !typeRe.test(token.type));\n\n\t if (token == null)\n\t break;\n\n\t valueIndex = 0;\n\t }\n\t \n\t return null;\n\t };\n\t}\n\texports.BracketMatch = BracketMatch;\n\n\t});\n\n\tace.define(\"ace/edit_session\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/config\",\"ace/lib/event_emitter\",\"ace/selection\",\"ace/mode/text\",\"ace/range\",\"ace/document\",\"ace/background_tokenizer\",\"ace/search_highlight\",\"ace/edit_session/folding\",\"ace/edit_session/bracket_match\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar oop = acequire(\"./lib/oop\");\n\tvar lang = acequire(\"./lib/lang\");\n\tvar config = acequire(\"./config\");\n\tvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\n\tvar Selection = acequire(\"./selection\").Selection;\n\tvar TextMode = acequire(\"./mode/text\").Mode;\n\tvar Range = acequire(\"./range\").Range;\n\tvar Document = acequire(\"./document\").Document;\n\tvar BackgroundTokenizer = acequire(\"./background_tokenizer\").BackgroundTokenizer;\n\tvar SearchHighlight = acequire(\"./search_highlight\").SearchHighlight;\n\n\tvar EditSession = function(text, mode) {\n\t this.$breakpoints = [];\n\t this.$decorations = [];\n\t this.$frontMarkers = {};\n\t this.$backMarkers = {};\n\t this.$markerId = 1;\n\t this.$undoSelect = true;\n\n\t this.$foldData = [];\n\t this.id = \"session\" + (++EditSession.$uid);\n\t this.$foldData.toString = function() {\n\t return this.join(\"\\n\");\n\t };\n\t this.on(\"changeFold\", this.onChangeFold.bind(this));\n\t this.$onChange = this.onChange.bind(this);\n\n\t if (typeof text != \"object\" || !text.getLine)\n\t text = new Document(text);\n\n\t this.setDocument(text);\n\t this.selection = new Selection(this);\n\n\t config.resetOptions(this);\n\t this.setMode(mode);\n\t config._signal(\"session\", this);\n\t};\n\n\n\t(function() {\n\n\t oop.implement(this, EventEmitter);\n\t this.setDocument = function(doc) {\n\t if (this.doc)\n\t this.doc.removeListener(\"change\", this.$onChange);\n\n\t this.doc = doc;\n\t doc.on(\"change\", this.$onChange);\n\n\t if (this.bgTokenizer)\n\t this.bgTokenizer.setDocument(this.getDocument());\n\n\t this.resetCaches();\n\t };\n\t this.getDocument = function() {\n\t return this.doc;\n\t };\n\t this.$resetRowCache = function(docRow) {\n\t if (!docRow) {\n\t this.$docRowCache = [];\n\t this.$screenRowCache = [];\n\t return;\n\t }\n\t var l = this.$docRowCache.length;\n\t var i = this.$getRowCacheIndex(this.$docRowCache, docRow) + 1;\n\t if (l > i) {\n\t this.$docRowCache.splice(i, l);\n\t this.$screenRowCache.splice(i, l);\n\t }\n\t };\n\n\t this.$getRowCacheIndex = function(cacheArray, val) {\n\t var low = 0;\n\t var hi = cacheArray.length - 1;\n\n\t while (low <= hi) {\n\t var mid = (low + hi) >> 1;\n\t var c = cacheArray[mid];\n\n\t if (val > c)\n\t low = mid + 1;\n\t else if (val < c)\n\t hi = mid - 1;\n\t else\n\t return mid;\n\t }\n\n\t return low -1;\n\t };\n\n\t this.resetCaches = function() {\n\t this.$modified = true;\n\t this.$wrapData = [];\n\t this.$rowLengthCache = [];\n\t this.$resetRowCache(0);\n\t if (this.bgTokenizer)\n\t this.bgTokenizer.start(0);\n\t };\n\n\t this.onChangeFold = function(e) {\n\t var fold = e.data;\n\t this.$resetRowCache(fold.start.row);\n\t };\n\n\t this.onChange = function(delta) {\n\t this.$modified = true;\n\n\t this.$resetRowCache(delta.start.row);\n\n\t var removedFolds = this.$updateInternalDataOnChange(delta);\n\t if (!this.$fromUndo && this.$undoManager && !delta.ignore) {\n\t this.$deltasDoc.push(delta);\n\t if (removedFolds && removedFolds.length != 0) {\n\t this.$deltasFold.push({\n\t action: \"removeFolds\",\n\t folds: removedFolds\n\t });\n\t }\n\n\t this.$informUndoManager.schedule();\n\t }\n\n\t this.bgTokenizer && this.bgTokenizer.$updateOnChange(delta);\n\t this._signal(\"change\", delta);\n\t };\n\t this.setValue = function(text) {\n\t this.doc.setValue(text);\n\t this.selection.moveTo(0, 0);\n\n\t this.$resetRowCache(0);\n\t this.$deltas = [];\n\t this.$deltasDoc = [];\n\t this.$deltasFold = [];\n\t this.setUndoManager(this.$undoManager);\n\t this.getUndoManager().reset();\n\t };\n\t this.getValue =\n\t this.toString = function() {\n\t return this.doc.getValue();\n\t };\n\t this.getSelection = function() {\n\t return this.selection;\n\t };\n\t this.getState = function(row) {\n\t return this.bgTokenizer.getState(row);\n\t };\n\t this.getTokens = function(row) {\n\t return this.bgTokenizer.getTokens(row);\n\t };\n\t this.getTokenAt = function(row, column) {\n\t var tokens = this.bgTokenizer.getTokens(row);\n\t var token, c = 0;\n\t if (column == null) {\n\t i = tokens.length - 1;\n\t c = this.getLine(row).length;\n\t } else {\n\t for (var i = 0; i < tokens.length; i++) {\n\t c += tokens[i].value.length;\n\t if (c >= column)\n\t break;\n\t }\n\t }\n\t token = tokens[i];\n\t if (!token)\n\t return null;\n\t token.index = i;\n\t token.start = c - token.value.length;\n\t return token;\n\t };\n\t this.setUndoManager = function(undoManager) {\n\t this.$undoManager = undoManager;\n\t this.$deltas = [];\n\t this.$deltasDoc = [];\n\t this.$deltasFold = [];\n\n\t if (this.$informUndoManager)\n\t this.$informUndoManager.cancel();\n\n\t if (undoManager) {\n\t var self = this;\n\n\t this.$syncInformUndoManager = function() {\n\t self.$informUndoManager.cancel();\n\n\t if (self.$deltasFold.length) {\n\t self.$deltas.push({\n\t group: \"fold\",\n\t deltas: self.$deltasFold\n\t });\n\t self.$deltasFold = [];\n\t }\n\n\t if (self.$deltasDoc.length) {\n\t self.$deltas.push({\n\t group: \"doc\",\n\t deltas: self.$deltasDoc\n\t });\n\t self.$deltasDoc = [];\n\t }\n\n\t if (self.$deltas.length > 0) {\n\t undoManager.execute({\n\t action: \"aceupdate\",\n\t args: [self.$deltas, self],\n\t merge: self.mergeUndoDeltas\n\t });\n\t }\n\t self.mergeUndoDeltas = false;\n\t self.$deltas = [];\n\t };\n\t this.$informUndoManager = lang.delayedCall(this.$syncInformUndoManager);\n\t }\n\t };\n\t this.markUndoGroup = function() {\n\t if (this.$syncInformUndoManager)\n\t this.$syncInformUndoManager();\n\t };\n\t \n\t this.$defaultUndoManager = {\n\t undo: function() {},\n\t redo: function() {},\n\t reset: function() {}\n\t };\n\t this.getUndoManager = function() {\n\t return this.$undoManager || this.$defaultUndoManager;\n\t };\n\t this.getTabString = function() {\n\t if (this.getUseSoftTabs()) {\n\t return lang.stringRepeat(\" \", this.getTabSize());\n\t } else {\n\t return \"\\t\";\n\t }\n\t };\n\t this.setUseSoftTabs = function(val) {\n\t this.setOption(\"useSoftTabs\", val);\n\t };\n\t this.getUseSoftTabs = function() {\n\t return this.$useSoftTabs && !this.$mode.$indentWithTabs;\n\t };\n\t this.setTabSize = function(tabSize) {\n\t this.setOption(\"tabSize\", tabSize);\n\t };\n\t this.getTabSize = function() {\n\t return this.$tabSize;\n\t };\n\t this.isTabStop = function(position) {\n\t return this.$useSoftTabs && (position.column % this.$tabSize === 0);\n\t };\n\n\t this.$overwrite = false;\n\t this.setOverwrite = function(overwrite) {\n\t this.setOption(\"overwrite\", overwrite);\n\t };\n\t this.getOverwrite = function() {\n\t return this.$overwrite;\n\t };\n\t this.toggleOverwrite = function() {\n\t this.setOverwrite(!this.$overwrite);\n\t };\n\t this.addGutterDecoration = function(row, className) {\n\t if (!this.$decorations[row])\n\t this.$decorations[row] = \"\";\n\t this.$decorations[row] += \" \" + className;\n\t this._signal(\"changeBreakpoint\", {});\n\t };\n\t this.removeGutterDecoration = function(row, className) {\n\t this.$decorations[row] = (this.$decorations[row] || \"\").replace(\" \" + className, \"\");\n\t this._signal(\"changeBreakpoint\", {});\n\t };\n\t this.getBreakpoints = function() {\n\t return this.$breakpoints;\n\t };\n\t this.setBreakpoints = function(rows) {\n\t this.$breakpoints = [];\n\t for (var i=0; i<rows.length; i++) {\n\t this.$breakpoints[rows[i]] = \"ace_breakpoint\";\n\t }\n\t this._signal(\"changeBreakpoint\", {});\n\t };\n\t this.clearBreakpoints = function() {\n\t this.$breakpoints = [];\n\t this._signal(\"changeBreakpoint\", {});\n\t };\n\t this.setBreakpoint = function(row, className) {\n\t if (className === undefined)\n\t className = \"ace_breakpoint\";\n\t if (className)\n\t this.$breakpoints[row] = className;\n\t else\n\t delete this.$breakpoints[row];\n\t this._signal(\"changeBreakpoint\", {});\n\t };\n\t this.clearBreakpoint = function(row) {\n\t delete this.$breakpoints[row];\n\t this._signal(\"changeBreakpoint\", {});\n\t };\n\t this.addMarker = function(range, clazz, type, inFront) {\n\t var id = this.$markerId++;\n\n\t var marker = {\n\t range : range,\n\t type : type || \"line\",\n\t renderer: typeof type == \"function\" ? type : null,\n\t clazz : clazz,\n\t inFront: !!inFront,\n\t id: id\n\t };\n\n\t if (inFront) {\n\t this.$frontMarkers[id] = marker;\n\t this._signal(\"changeFrontMarker\");\n\t } else {\n\t this.$backMarkers[id] = marker;\n\t this._signal(\"changeBackMarker\");\n\t }\n\n\t return id;\n\t };\n\t this.addDynamicMarker = function(marker, inFront) {\n\t if (!marker.update)\n\t return;\n\t var id = this.$markerId++;\n\t marker.id = id;\n\t marker.inFront = !!inFront;\n\n\t if (inFront) {\n\t this.$frontMarkers[id] = marker;\n\t this._signal(\"changeFrontMarker\");\n\t } else {\n\t this.$backMarkers[id] = marker;\n\t this._signal(\"changeBackMarker\");\n\t }\n\n\t return marker;\n\t };\n\t this.removeMarker = function(markerId) {\n\t var marker = this.$frontMarkers[markerId] || this.$backMarkers[markerId];\n\t if (!marker)\n\t return;\n\n\t var markers = marker.inFront ? this.$frontMarkers : this.$backMarkers;\n\t if (marker) {\n\t delete (markers[markerId]);\n\t this._signal(marker.inFront ? \"changeFrontMarker\" : \"changeBackMarker\");\n\t }\n\t };\n\t this.getMarkers = function(inFront) {\n\t return inFront ? this.$frontMarkers : this.$backMarkers;\n\t };\n\n\t this.highlight = function(re) {\n\t if (!this.$searchHighlight) {\n\t var highlight = new SearchHighlight(null, \"ace_selected-word\", \"text\");\n\t this.$searchHighlight = this.addDynamicMarker(highlight);\n\t }\n\t this.$searchHighlight.setRegexp(re);\n\t };\n\t this.highlightLines = function(startRow, endRow, clazz, inFront) {\n\t if (typeof endRow != \"number\") {\n\t clazz = endRow;\n\t endRow = startRow;\n\t }\n\t if (!clazz)\n\t clazz = \"ace_step\";\n\n\t var range = new Range(startRow, 0, endRow, Infinity);\n\t range.id = this.addMarker(range, clazz, \"fullLine\", inFront);\n\t return range;\n\t };\n\t this.setAnnotations = function(annotations) {\n\t this.$annotations = annotations;\n\t this._signal(\"changeAnnotation\", {});\n\t };\n\t this.getAnnotations = function() {\n\t return this.$annotations || [];\n\t };\n\t this.clearAnnotations = function() {\n\t this.setAnnotations([]);\n\t };\n\t this.$detectNewLine = function(text) {\n\t var match = text.match(/^.*?(\\r?\\n)/m);\n\t if (match) {\n\t this.$autoNewLine = match[1];\n\t } else {\n\t this.$autoNewLine = \"\\n\";\n\t }\n\t };\n\t this.getWordRange = function(row, column) {\n\t var line = this.getLine(row);\n\n\t var inToken = false;\n\t if (column > 0)\n\t inToken = !!line.charAt(column - 1).match(this.tokenRe);\n\n\t if (!inToken)\n\t inToken = !!line.charAt(column).match(this.tokenRe);\n\n\t if (inToken)\n\t var re = this.tokenRe;\n\t else if (/^\\s+$/.test(line.slice(column-1, column+1)))\n\t var re = /\\s/;\n\t else\n\t var re = this.nonTokenRe;\n\n\t var start = column;\n\t if (start > 0) {\n\t do {\n\t start--;\n\t }\n\t while (start >= 0 && line.charAt(start).match(re));\n\t start++;\n\t }\n\n\t var end = column;\n\t while (end < line.length && line.charAt(end).match(re)) {\n\t end++;\n\t }\n\n\t return new Range(row, start, row, end);\n\t };\n\t this.getAWordRange = function(row, column) {\n\t var wordRange = this.getWordRange(row, column);\n\t var line = this.getLine(wordRange.end.row);\n\n\t while (line.charAt(wordRange.end.column).match(/[ \\t]/)) {\n\t wordRange.end.column += 1;\n\t }\n\t return wordRange;\n\t };\n\t this.setNewLineMode = function(newLineMode) {\n\t this.doc.setNewLineMode(newLineMode);\n\t };\n\t this.getNewLineMode = function() {\n\t return this.doc.getNewLineMode();\n\t };\n\t this.setUseWorker = function(useWorker) { this.setOption(\"useWorker\", useWorker); };\n\t this.getUseWorker = function() { return this.$useWorker; };\n\t this.onReloadTokenizer = function(e) {\n\t var rows = e.data;\n\t this.bgTokenizer.start(rows.first);\n\t this._signal(\"tokenizerUpdate\", e);\n\t };\n\n\t this.$modes = {};\n\t this.$mode = null;\n\t this.$modeId = null;\n\t this.setMode = function(mode, cb) {\n\t if (mode && typeof mode === \"object\") {\n\t if (mode.getTokenizer)\n\t return this.$onChangeMode(mode);\n\t var options = mode;\n\t var path = options.path;\n\t } else {\n\t path = mode || \"ace/mode/text\";\n\t }\n\t if (!this.$modes[\"ace/mode/text\"])\n\t this.$modes[\"ace/mode/text\"] = new TextMode();\n\n\t if (this.$modes[path] && !options) {\n\t this.$onChangeMode(this.$modes[path]);\n\t cb && cb();\n\t return;\n\t }\n\t this.$modeId = path;\n\t config.loadModule([\"mode\", path], function(m) {\n\t if (this.$modeId !== path)\n\t return cb && cb();\n\t if (this.$modes[path] && !options) {\n\t this.$onChangeMode(this.$modes[path]);\n\t } else if (m && m.Mode) {\n\t m = new m.Mode(options);\n\t if (!options) {\n\t this.$modes[path] = m;\n\t m.$id = path;\n\t }\n\t this.$onChangeMode(m);\n\t }\n\t cb && cb();\n\t }.bind(this));\n\t if (!this.$mode)\n\t this.$onChangeMode(this.$modes[\"ace/mode/text\"], true);\n\t };\n\n\t this.$onChangeMode = function(mode, $isPlaceholder) {\n\t if (!$isPlaceholder)\n\t this.$modeId = mode.$id;\n\t if (this.$mode === mode) \n\t return;\n\n\t this.$mode = mode;\n\n\t this.$stopWorker();\n\n\t if (this.$useWorker)\n\t this.$startWorker();\n\n\t var tokenizer = mode.getTokenizer();\n\n\t if(tokenizer.addEventListener !== undefined) {\n\t var onReloadTokenizer = this.onReloadTokenizer.bind(this);\n\t tokenizer.addEventListener(\"update\", onReloadTokenizer);\n\t }\n\n\t if (!this.bgTokenizer) {\n\t this.bgTokenizer = new BackgroundTokenizer(tokenizer);\n\t var _self = this;\n\t this.bgTokenizer.addEventListener(\"update\", function(e) {\n\t _self._signal(\"tokenizerUpdate\", e);\n\t });\n\t } else {\n\t this.bgTokenizer.setTokenizer(tokenizer);\n\t }\n\n\t this.bgTokenizer.setDocument(this.getDocument());\n\n\t this.tokenRe = mode.tokenRe;\n\t this.nonTokenRe = mode.nonTokenRe;\n\n\t \n\t if (!$isPlaceholder) {\n\t if (mode.attachToSession)\n\t mode.attachToSession(this);\n\t this.$options.wrapMethod.set.call(this, this.$wrapMethod);\n\t this.$setFolding(mode.foldingRules);\n\t this.bgTokenizer.start(0);\n\t this._emit(\"changeMode\");\n\t }\n\t };\n\n\t this.$stopWorker = function() {\n\t if (this.$worker) {\n\t this.$worker.terminate();\n\t this.$worker = null;\n\t }\n\t };\n\n\t this.$startWorker = function() {\n\t try {\n\t this.$worker = this.$mode.createWorker(this);\n\t } catch (e) {\n\t config.warn(\"Could not load worker\", e);\n\t this.$worker = null;\n\t }\n\t };\n\t this.getMode = function() {\n\t return this.$mode;\n\t };\n\n\t this.$scrollTop = 0;\n\t this.setScrollTop = function(scrollTop) {\n\t if (this.$scrollTop === scrollTop || isNaN(scrollTop))\n\t return;\n\n\t this.$scrollTop = scrollTop;\n\t this._signal(\"changeScrollTop\", scrollTop);\n\t };\n\t this.getScrollTop = function() {\n\t return this.$scrollTop;\n\t };\n\n\t this.$scrollLeft = 0;\n\t this.setScrollLeft = function(scrollLeft) {\n\t if (this.$scrollLeft === scrollLeft || isNaN(scrollLeft))\n\t return;\n\n\t this.$scrollLeft = scrollLeft;\n\t this._signal(\"changeScrollLeft\", scrollLeft);\n\t };\n\t this.getScrollLeft = function() {\n\t return this.$scrollLeft;\n\t };\n\t this.getScreenWidth = function() {\n\t this.$computeWidth();\n\t if (this.lineWidgets) \n\t return Math.max(this.getLineWidgetMaxWidth(), this.screenWidth);\n\t return this.screenWidth;\n\t };\n\t \n\t this.getLineWidgetMaxWidth = function() {\n\t if (this.lineWidgetsWidth != null) return this.lineWidgetsWidth;\n\t var width = 0;\n\t this.lineWidgets.forEach(function(w) {\n\t if (w && w.screenWidth > width)\n\t width = w.screenWidth;\n\t });\n\t return this.lineWidgetWidth = width;\n\t };\n\n\t this.$computeWidth = function(force) {\n\t if (this.$modified || force) {\n\t this.$modified = false;\n\n\t if (this.$useWrapMode)\n\t return this.screenWidth = this.$wrapLimit;\n\n\t var lines = this.doc.getAllLines();\n\t var cache = this.$rowLengthCache;\n\t var longestScreenLine = 0;\n\t var foldIndex = 0;\n\t var foldLine = this.$foldData[foldIndex];\n\t var foldStart = foldLine ? foldLine.start.row : Infinity;\n\t var len = lines.length;\n\n\t for (var i = 0; i < len; i++) {\n\t if (i > foldStart) {\n\t i = foldLine.end.row + 1;\n\t if (i >= len)\n\t break;\n\t foldLine = this.$foldData[foldIndex++];\n\t foldStart = foldLine ? foldLine.start.row : Infinity;\n\t }\n\n\t if (cache[i] == null)\n\t cache[i] = this.$getStringScreenWidth(lines[i])[0];\n\n\t if (cache[i] > longestScreenLine)\n\t longestScreenLine = cache[i];\n\t }\n\t this.screenWidth = longestScreenLine;\n\t }\n\t };\n\t this.getLine = function(row) {\n\t return this.doc.getLine(row);\n\t };\n\t this.getLines = function(firstRow, lastRow) {\n\t return this.doc.getLines(firstRow, lastRow);\n\t };\n\t this.getLength = function() {\n\t return this.doc.getLength();\n\t };\n\t this.getTextRange = function(range) {\n\t return this.doc.getTextRange(range || this.selection.getRange());\n\t };\n\t this.insert = function(position, text) {\n\t return this.doc.insert(position, text);\n\t };\n\t this.remove = function(range) {\n\t return this.doc.remove(range);\n\t };\n\t this.removeFullLines = function(firstRow, lastRow){\n\t return this.doc.removeFullLines(firstRow, lastRow);\n\t };\n\t this.undoChanges = function(deltas, dontSelect) {\n\t if (!deltas.length)\n\t return;\n\n\t this.$fromUndo = true;\n\t var lastUndoRange = null;\n\t for (var i = deltas.length - 1; i != -1; i--) {\n\t var delta = deltas[i];\n\t if (delta.group == \"doc\") {\n\t this.doc.revertDeltas(delta.deltas);\n\t lastUndoRange =\n\t this.$getUndoSelection(delta.deltas, true, lastUndoRange);\n\t } else {\n\t delta.deltas.forEach(function(foldDelta) {\n\t this.addFolds(foldDelta.folds);\n\t }, this);\n\t }\n\t }\n\t this.$fromUndo = false;\n\t lastUndoRange &&\n\t this.$undoSelect &&\n\t !dontSelect &&\n\t this.selection.setSelectionRange(lastUndoRange);\n\t return lastUndoRange;\n\t };\n\t this.redoChanges = function(deltas, dontSelect) {\n\t if (!deltas.length)\n\t return;\n\n\t this.$fromUndo = true;\n\t var lastUndoRange = null;\n\t for (var i = 0; i < deltas.length; i++) {\n\t var delta = deltas[i];\n\t if (delta.group == \"doc\") {\n\t this.doc.applyDeltas(delta.deltas);\n\t lastUndoRange =\n\t this.$getUndoSelection(delta.deltas, false, lastUndoRange);\n\t }\n\t }\n\t this.$fromUndo = false;\n\t lastUndoRange &&\n\t this.$undoSelect &&\n\t !dontSelect &&\n\t this.selection.setSelectionRange(lastUndoRange);\n\t return lastUndoRange;\n\t };\n\t this.setUndoSelect = function(enable) {\n\t this.$undoSelect = enable;\n\t };\n\n\t this.$getUndoSelection = function(deltas, isUndo, lastUndoRange) {\n\t function isInsert(delta) {\n\t return isUndo ? delta.action !== \"insert\" : delta.action === \"insert\";\n\t }\n\n\t var delta = deltas[0];\n\t var range, point;\n\t var lastDeltaIsInsert = false;\n\t if (isInsert(delta)) {\n\t range = Range.fromPoints(delta.start, delta.end);\n\t lastDeltaIsInsert = true;\n\t } else {\n\t range = Range.fromPoints(delta.start, delta.start);\n\t lastDeltaIsInsert = false;\n\t }\n\n\t for (var i = 1; i < deltas.length; i++) {\n\t delta = deltas[i];\n\t if (isInsert(delta)) {\n\t point = delta.start;\n\t if (range.compare(point.row, point.column) == -1) {\n\t range.setStart(point);\n\t }\n\t point = delta.end;\n\t if (range.compare(point.row, point.column) == 1) {\n\t range.setEnd(point);\n\t }\n\t lastDeltaIsInsert = true;\n\t } else {\n\t point = delta.start;\n\t if (range.compare(point.row, point.column) == -1) {\n\t range = Range.fromPoints(delta.start, delta.start);\n\t }\n\t lastDeltaIsInsert = false;\n\t }\n\t }\n\t if (lastUndoRange != null) {\n\t if (Range.comparePoints(lastUndoRange.start, range.start) === 0) {\n\t lastUndoRange.start.column += range.end.column - range.start.column;\n\t lastUndoRange.end.column += range.end.column - range.start.column;\n\t }\n\n\t var cmp = lastUndoRange.compareRange(range);\n\t if (cmp == 1) {\n\t range.setStart(lastUndoRange.start);\n\t } else if (cmp == -1) {\n\t range.setEnd(lastUndoRange.end);\n\t }\n\t }\n\n\t return range;\n\t };\n\t this.replace = function(range, text) {\n\t return this.doc.replace(range, text);\n\t };\n\t this.moveText = function(fromRange, toPosition, copy) {\n\t var text = this.getTextRange(fromRange);\n\t var folds = this.getFoldsInRange(fromRange);\n\n\t var toRange = Range.fromPoints(toPosition, toPosition);\n\t if (!copy) {\n\t this.remove(fromRange);\n\t var rowDiff = fromRange.start.row - fromRange.end.row;\n\t var collDiff = rowDiff ? -fromRange.end.column : fromRange.start.column - fromRange.end.column;\n\t if (collDiff) {\n\t if (toRange.start.row == fromRange.end.row && toRange.start.column > fromRange.end.column)\n\t toRange.start.column += collDiff;\n\t if (toRange.end.row == fromRange.end.row && toRange.end.column > fromRange.end.column)\n\t toRange.end.column += collDiff;\n\t }\n\t if (rowDiff && toRange.start.row >= fromRange.end.row) {\n\t toRange.start.row += rowDiff;\n\t toRange.end.row += rowDiff;\n\t }\n\t }\n\n\t toRange.end = this.insert(toRange.start, text);\n\t if (folds.length) {\n\t var oldStart = fromRange.start;\n\t var newStart = toRange.start;\n\t var rowDiff = newStart.row - oldStart.row;\n\t var collDiff = newStart.column - oldStart.column;\n\t this.addFolds(folds.map(function(x) {\n\t x = x.clone();\n\t if (x.start.row == oldStart.row)\n\t x.start.column += collDiff;\n\t if (x.end.row == oldStart.row)\n\t x.end.column += collDiff;\n\t x.start.row += rowDiff;\n\t x.end.row += rowDiff;\n\t return x;\n\t }));\n\t }\n\n\t return toRange;\n\t };\n\t this.indentRows = function(startRow, endRow, indentString) {\n\t indentString = indentString.replace(/\\t/g, this.getTabString());\n\t for (var row=startRow; row<=endRow; row++)\n\t this.doc.insertInLine({row: row, column: 0}, indentString);\n\t };\n\t this.outdentRows = function (range) {\n\t var rowRange = range.collapseRows();\n\t var deleteRange = new Range(0, 0, 0, 0);\n\t var size = this.getTabSize();\n\n\t for (var i = rowRange.start.row; i <= rowRange.end.row; ++i) {\n\t var line = this.getLine(i);\n\n\t deleteRange.start.row = i;\n\t deleteRange.end.row = i;\n\t for (var j = 0; j < size; ++j)\n\t if (line.charAt(j) != ' ')\n\t break;\n\t if (j < size && line.charAt(j) == '\\t') {\n\t deleteRange.start.column = j;\n\t deleteRange.end.column = j + 1;\n\t } else {\n\t deleteRange.start.column = 0;\n\t deleteRange.end.column = j;\n\t }\n\t this.remove(deleteRange);\n\t }\n\t };\n\n\t this.$moveLines = function(firstRow, lastRow, dir) {\n\t firstRow = this.getRowFoldStart(firstRow);\n\t lastRow = this.getRowFoldEnd(lastRow);\n\t if (dir < 0) {\n\t var row = this.getRowFoldStart(firstRow + dir);\n\t if (row < 0) return 0;\n\t var diff = row-firstRow;\n\t } else if (dir > 0) {\n\t var row = this.getRowFoldEnd(lastRow + dir);\n\t if (row > this.doc.getLength()-1) return 0;\n\t var diff = row-lastRow;\n\t } else {\n\t firstRow = this.$clipRowToDocument(firstRow);\n\t lastRow = this.$clipRowToDocument(lastRow);\n\t var diff = lastRow - firstRow + 1;\n\t }\n\n\t var range = new Range(firstRow, 0, lastRow, Number.MAX_VALUE);\n\t var folds = this.getFoldsInRange(range).map(function(x){\n\t x = x.clone();\n\t x.start.row += diff;\n\t x.end.row += diff;\n\t return x;\n\t });\n\t \n\t var lines = dir == 0\n\t ? this.doc.getLines(firstRow, lastRow)\n\t : this.doc.removeFullLines(firstRow, lastRow);\n\t this.doc.insertFullLines(firstRow+diff, lines);\n\t folds.length && this.addFolds(folds);\n\t return diff;\n\t };\n\t this.moveLinesUp = function(firstRow, lastRow) {\n\t return this.$moveLines(firstRow, lastRow, -1);\n\t };\n\t this.moveLinesDown = function(firstRow, lastRow) {\n\t return this.$moveLines(firstRow, lastRow, 1);\n\t };\n\t this.duplicateLines = function(firstRow, lastRow) {\n\t return this.$moveLines(firstRow, lastRow, 0);\n\t };\n\n\n\t this.$clipRowToDocument = function(row) {\n\t return Math.max(0, Math.min(row, this.doc.getLength()-1));\n\t };\n\n\t this.$clipColumnToRow = function(row, column) {\n\t if (column < 0)\n\t return 0;\n\t return Math.min(this.doc.getLine(row).length, column);\n\t };\n\n\n\t this.$clipPositionToDocument = function(row, column) {\n\t column = Math.max(0, column);\n\n\t if (row < 0) {\n\t row = 0;\n\t column = 0;\n\t } else {\n\t var len = this.doc.getLength();\n\t if (row >= len) {\n\t row = len - 1;\n\t column = this.doc.getLine(len-1).length;\n\t } else {\n\t column = Math.min(this.doc.getLine(row).length, column);\n\t }\n\t }\n\n\t return {\n\t row: row,\n\t column: column\n\t };\n\t };\n\n\t this.$clipRangeToDocument = function(range) {\n\t if (range.start.row < 0) {\n\t range.start.row = 0;\n\t range.start.column = 0;\n\t } else {\n\t range.start.column = this.$clipColumnToRow(\n\t range.start.row,\n\t range.start.column\n\t );\n\t }\n\n\t var len = this.doc.getLength() - 1;\n\t if (range.end.row > len) {\n\t range.end.row = len;\n\t range.end.column = this.doc.getLine(len).length;\n\t } else {\n\t range.end.column = this.$clipColumnToRow(\n\t range.end.row,\n\t range.end.column\n\t );\n\t }\n\t return range;\n\t };\n\t this.$wrapLimit = 80;\n\t this.$useWrapMode = false;\n\t this.$wrapLimitRange = {\n\t min : null,\n\t max : null\n\t };\n\t this.setUseWrapMode = function(useWrapMode) {\n\t if (useWrapMode != this.$useWrapMode) {\n\t this.$useWrapMode = useWrapMode;\n\t this.$modified = true;\n\t this.$resetRowCache(0);\n\t if (useWrapMode) {\n\t var len = this.getLength();\n\t this.$wrapData = Array(len);\n\t this.$updateWrapData(0, len - 1);\n\t }\n\n\t this._signal(\"changeWrapMode\");\n\t }\n\t };\n\t this.getUseWrapMode = function() {\n\t return this.$useWrapMode;\n\t };\n\t this.setWrapLimitRange = function(min, max) {\n\t if (this.$wrapLimitRange.min !== min || this.$wrapLimitRange.max !== max) {\n\t this.$wrapLimitRange = { min: min, max: max };\n\t this.$modified = true;\n\t if (this.$useWrapMode)\n\t this._signal(\"changeWrapMode\");\n\t }\n\t };\n\t this.adjustWrapLimit = function(desiredLimit, $printMargin) {\n\t var limits = this.$wrapLimitRange;\n\t if (limits.max < 0)\n\t limits = {min: $printMargin, max: $printMargin};\n\t var wrapLimit = this.$constrainWrapLimit(desiredLimit, limits.min, limits.max);\n\t if (wrapLimit != this.$wrapLimit && wrapLimit > 1) {\n\t this.$wrapLimit = wrapLimit;\n\t this.$modified = true;\n\t if (this.$useWrapMode) {\n\t this.$updateWrapData(0, this.getLength() - 1);\n\t this.$resetRowCache(0);\n\t this._signal(\"changeWrapLimit\");\n\t }\n\t return true;\n\t }\n\t return false;\n\t };\n\n\t this.$constrainWrapLimit = function(wrapLimit, min, max) {\n\t if (min)\n\t wrapLimit = Math.max(min, wrapLimit);\n\n\t if (max)\n\t wrapLimit = Math.min(max, wrapLimit);\n\n\t return wrapLimit;\n\t };\n\t this.getWrapLimit = function() {\n\t return this.$wrapLimit;\n\t };\n\t this.setWrapLimit = function (limit) {\n\t this.setWrapLimitRange(limit, limit);\n\t };\n\t this.getWrapLimitRange = function() {\n\t return {\n\t min : this.$wrapLimitRange.min,\n\t max : this.$wrapLimitRange.max\n\t };\n\t };\n\n\t this.$updateInternalDataOnChange = function(delta) {\n\t var useWrapMode = this.$useWrapMode;\n\t var action = delta.action;\n\t var start = delta.start;\n\t var end = delta.end;\n\t var firstRow = start.row;\n\t var lastRow = end.row;\n\t var len = lastRow - firstRow;\n\t var removedFolds = null;\n\t \n\t this.$updating = true;\n\t if (len != 0) {\n\t if (action === \"remove\") {\n\t this[useWrapMode ? \"$wrapData\" : \"$rowLengthCache\"].splice(firstRow, len);\n\n\t var foldLines = this.$foldData;\n\t removedFolds = this.getFoldsInRange(delta);\n\t this.removeFolds(removedFolds);\n\n\t var foldLine = this.getFoldLine(end.row);\n\t var idx = 0;\n\t if (foldLine) {\n\t foldLine.addRemoveChars(end.row, end.column, start.column - end.column);\n\t foldLine.shiftRow(-len);\n\n\t var foldLineBefore = this.getFoldLine(firstRow);\n\t if (foldLineBefore && foldLineBefore !== foldLine) {\n\t foldLineBefore.merge(foldLine);\n\t foldLine = foldLineBefore;\n\t }\n\t idx = foldLines.indexOf(foldLine) + 1;\n\t }\n\n\t for (idx; idx < foldLines.length; idx++) {\n\t var foldLine = foldLines[idx];\n\t if (foldLine.start.row >= end.row) {\n\t foldLine.shiftRow(-len);\n\t }\n\t }\n\n\t lastRow = firstRow;\n\t } else {\n\t var args = Array(len);\n\t args.unshift(firstRow, 0);\n\t var arr = useWrapMode ? this.$wrapData : this.$rowLengthCache\n\t arr.splice.apply(arr, args);\n\t var foldLines = this.$foldData;\n\t var foldLine = this.getFoldLine(firstRow);\n\t var idx = 0;\n\t if (foldLine) {\n\t var cmp = foldLine.range.compareInside(start.row, start.column);\n\t if (cmp == 0) {\n\t foldLine = foldLine.split(start.row, start.column);\n\t if (foldLine) {\n\t foldLine.shiftRow(len);\n\t foldLine.addRemoveChars(lastRow, 0, end.column - start.column);\n\t }\n\t } else\n\t if (cmp == -1) {\n\t foldLine.addRemoveChars(firstRow, 0, end.column - start.column);\n\t foldLine.shiftRow(len);\n\t }\n\t idx = foldLines.indexOf(foldLine) + 1;\n\t }\n\n\t for (idx; idx < foldLines.length; idx++) {\n\t var foldLine = foldLines[idx];\n\t if (foldLine.start.row >= firstRow) {\n\t foldLine.shiftRow(len);\n\t }\n\t }\n\t }\n\t } else {\n\t len = Math.abs(delta.start.column - delta.end.column);\n\t if (action === \"remove\") {\n\t removedFolds = this.getFoldsInRange(delta);\n\t this.removeFolds(removedFolds);\n\n\t len = -len;\n\t }\n\t var foldLine = this.getFoldLine(firstRow);\n\t if (foldLine) {\n\t foldLine.addRemoveChars(firstRow, start.column, len);\n\t }\n\t }\n\n\t if (useWrapMode && this.$wrapData.length != this.doc.getLength()) {\n\t console.error(\"doc.getLength() and $wrapData.length have to be the same!\");\n\t }\n\t this.$updating = false;\n\n\t if (useWrapMode)\n\t this.$updateWrapData(firstRow, lastRow);\n\t else\n\t this.$updateRowLengthCache(firstRow, lastRow);\n\n\t return removedFolds;\n\t };\n\n\t this.$updateRowLengthCache = function(firstRow, lastRow, b) {\n\t this.$rowLengthCache[firstRow] = null;\n\t this.$rowLengthCache[lastRow] = null;\n\t };\n\n\t this.$updateWrapData = function(firstRow, lastRow) {\n\t var lines = this.doc.getAllLines();\n\t var tabSize = this.getTabSize();\n\t var wrapData = this.$wrapData;\n\t var wrapLimit = this.$wrapLimit;\n\t var tokens;\n\t var foldLine;\n\n\t var row = firstRow;\n\t lastRow = Math.min(lastRow, lines.length - 1);\n\t while (row <= lastRow) {\n\t foldLine = this.getFoldLine(row, foldLine);\n\t if (!foldLine) {\n\t tokens = this.$getDisplayTokens(lines[row]);\n\t wrapData[row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n\t row ++;\n\t } else {\n\t tokens = [];\n\t foldLine.walk(function(placeholder, row, column, lastColumn) {\n\t var walkTokens;\n\t if (placeholder != null) {\n\t walkTokens = this.$getDisplayTokens(\n\t placeholder, tokens.length);\n\t walkTokens[0] = PLACEHOLDER_START;\n\t for (var i = 1; i < walkTokens.length; i++) {\n\t walkTokens[i] = PLACEHOLDER_BODY;\n\t }\n\t } else {\n\t walkTokens = this.$getDisplayTokens(\n\t lines[row].substring(lastColumn, column),\n\t tokens.length);\n\t }\n\t tokens = tokens.concat(walkTokens);\n\t }.bind(this),\n\t foldLine.end.row,\n\t lines[foldLine.end.row].length + 1\n\t );\n\n\t wrapData[foldLine.start.row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n\t row = foldLine.end.row + 1;\n\t }\n\t }\n\t };\n\t var CHAR = 1,\n\t CHAR_EXT = 2,\n\t PLACEHOLDER_START = 3,\n\t PLACEHOLDER_BODY = 4,\n\t PUNCTUATION = 9,\n\t SPACE = 10,\n\t TAB = 11,\n\t TAB_SPACE = 12;\n\n\n\t this.$computeWrapSplits = function(tokens, wrapLimit, tabSize) {\n\t if (tokens.length == 0) {\n\t return [];\n\t }\n\n\t var splits = [];\n\t var displayLength = tokens.length;\n\t var lastSplit = 0, lastDocSplit = 0;\n\n\t var isCode = this.$wrapAsCode;\n\n\t var indentedSoftWrap = this.$indentedSoftWrap;\n\t var maxIndent = wrapLimit <= Math.max(2 * tabSize, 8)\n\t || indentedSoftWrap === false ? 0 : Math.floor(wrapLimit / 2);\n\n\t function getWrapIndent() {\n\t var indentation = 0;\n\t if (maxIndent === 0)\n\t return indentation;\n\t if (indentedSoftWrap) {\n\t for (var i = 0; i < tokens.length; i++) {\n\t var token = tokens[i];\n\t if (token == SPACE)\n\t indentation += 1;\n\t else if (token == TAB)\n\t indentation += tabSize;\n\t else if (token == TAB_SPACE)\n\t continue;\n\t else\n\t break;\n\t }\n\t }\n\t if (isCode && indentedSoftWrap !== false)\n\t indentation += tabSize;\n\t return Math.min(indentation, maxIndent);\n\t }\n\t function addSplit(screenPos) {\n\t var displayed = tokens.slice(lastSplit, screenPos);\n\t var len = displayed.length;\n\t displayed.join(\"\")\n\t .replace(/12/g, function() {\n\t len -= 1;\n\t })\n\t .replace(/2/g, function() {\n\t len -= 1;\n\t });\n\n\t if (!splits.length) {\n\t indent = getWrapIndent();\n\t splits.indent = indent;\n\t }\n\t lastDocSplit += len;\n\t splits.push(lastDocSplit);\n\t lastSplit = screenPos;\n\t }\n\t var indent = 0;\n\t while (displayLength - lastSplit > wrapLimit - indent) {\n\t var split = lastSplit + wrapLimit - indent;\n\t if (tokens[split - 1] >= SPACE && tokens[split] >= SPACE) {\n\t addSplit(split);\n\t continue;\n\t }\n\t if (tokens[split] == PLACEHOLDER_START || tokens[split] == PLACEHOLDER_BODY) {\n\t for (split; split != lastSplit - 1; split--) {\n\t if (tokens[split] == PLACEHOLDER_START) {\n\t break;\n\t }\n\t }\n\t if (split > lastSplit) {\n\t addSplit(split);\n\t continue;\n\t }\n\t split = lastSplit + wrapLimit;\n\t for (split; split < tokens.length; split++) {\n\t if (tokens[split] != PLACEHOLDER_BODY) {\n\t break;\n\t }\n\t }\n\t if (split == tokens.length) {\n\t break; // Breaks the while-loop.\n\t }\n\t addSplit(split);\n\t continue;\n\t }\n\t var minSplit = Math.max(split - (wrapLimit -(wrapLimit>>2)), lastSplit - 1);\n\t while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n\t split --;\n\t }\n\t if (isCode) {\n\t while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n\t split --;\n\t }\n\t while (split > minSplit && tokens[split] == PUNCTUATION) {\n\t split --;\n\t }\n\t } else {\n\t while (split > minSplit && tokens[split] < SPACE) {\n\t split --;\n\t }\n\t }\n\t if (split > minSplit) {\n\t addSplit(++split);\n\t continue;\n\t }\n\t split = lastSplit + wrapLimit;\n\t if (tokens[split] == CHAR_EXT)\n\t split--;\n\t addSplit(split - indent);\n\t }\n\t return splits;\n\t };\n\t this.$getDisplayTokens = function(str, offset) {\n\t var arr = [];\n\t var tabSize;\n\t offset = offset || 0;\n\n\t for (var i = 0; i < str.length; i++) {\n\t var c = str.charCodeAt(i);\n\t if (c == 9) {\n\t tabSize = this.getScreenTabSize(arr.length + offset);\n\t arr.push(TAB);\n\t for (var n = 1; n < tabSize; n++) {\n\t arr.push(TAB_SPACE);\n\t }\n\t }\n\t else if (c == 32) {\n\t arr.push(SPACE);\n\t } else if((c > 39 && c < 48) || (c > 57 && c < 64)) {\n\t arr.push(PUNCTUATION);\n\t }\n\t else if (c >= 0x1100 && isFullWidth(c)) {\n\t arr.push(CHAR, CHAR_EXT);\n\t } else {\n\t arr.push(CHAR);\n\t }\n\t }\n\t return arr;\n\t };\n\t this.$getStringScreenWidth = function(str, maxScreenColumn, screenColumn) {\n\t if (maxScreenColumn == 0)\n\t return [0, 0];\n\t if (maxScreenColumn == null)\n\t maxScreenColumn = Infinity;\n\t screenColumn = screenColumn || 0;\n\n\t var c, column;\n\t for (column = 0; column < str.length; column++) {\n\t c = str.charCodeAt(column);\n\t if (c == 9) {\n\t screenColumn += this.getScreenTabSize(screenColumn);\n\t }\n\t else if (c >= 0x1100 && isFullWidth(c)) {\n\t screenColumn += 2;\n\t } else {\n\t screenColumn += 1;\n\t }\n\t if (screenColumn > maxScreenColumn) {\n\t break;\n\t }\n\t }\n\n\t return [screenColumn, column];\n\t };\n\n\t this.lineWidgets = null;\n\t this.getRowLength = function(row) {\n\t if (this.lineWidgets)\n\t var h = this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n\t else \n\t h = 0\n\t if (!this.$useWrapMode || !this.$wrapData[row]) {\n\t return 1 + h;\n\t } else {\n\t return this.$wrapData[row].length + 1 + h;\n\t }\n\t };\n\t this.getRowLineCount = function(row) {\n\t if (!this.$useWrapMode || !this.$wrapData[row]) {\n\t return 1;\n\t } else {\n\t return this.$wrapData[row].length + 1;\n\t }\n\t };\n\n\t this.getRowWrapIndent = function(screenRow) {\n\t if (this.$useWrapMode) {\n\t var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n\t var splits = this.$wrapData[pos.row];\n\t return splits.length && splits[0] < pos.column ? splits.indent : 0;\n\t } else {\n\t return 0;\n\t }\n\t }\n\t this.getScreenLastRowColumn = function(screenRow) {\n\t var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n\t return this.documentToScreenColumn(pos.row, pos.column);\n\t };\n\t this.getDocumentLastRowColumn = function(docRow, docColumn) {\n\t var screenRow = this.documentToScreenRow(docRow, docColumn);\n\t return this.getScreenLastRowColumn(screenRow);\n\t };\n\t this.getDocumentLastRowColumnPosition = function(docRow, docColumn) {\n\t var screenRow = this.documentToScreenRow(docRow, docColumn);\n\t return this.screenToDocumentPosition(screenRow, Number.MAX_VALUE / 10);\n\t };\n\t this.getRowSplitData = function(row) {\n\t if (!this.$useWrapMode) {\n\t return undefined;\n\t } else {\n\t return this.$wrapData[row];\n\t }\n\t };\n\t this.getScreenTabSize = function(screenColumn) {\n\t return this.$tabSize - screenColumn % this.$tabSize;\n\t };\n\n\n\t this.screenToDocumentRow = function(screenRow, screenColumn) {\n\t return this.screenToDocumentPosition(screenRow, screenColumn).row;\n\t };\n\n\n\t this.screenToDocumentColumn = function(screenRow, screenColumn) {\n\t return this.screenToDocumentPosition(screenRow, screenColumn).column;\n\t };\n\t this.screenToDocumentPosition = function(screenRow, screenColumn) {\n\t if (screenRow < 0)\n\t return {row: 0, column: 0};\n\n\t var line;\n\t var docRow = 0;\n\t var docColumn = 0;\n\t var column;\n\t var row = 0;\n\t var rowLength = 0;\n\n\t var rowCache = this.$screenRowCache;\n\t var i = this.$getRowCacheIndex(rowCache, screenRow);\n\t var l = rowCache.length;\n\t if (l && i >= 0) {\n\t var row = rowCache[i];\n\t var docRow = this.$docRowCache[i];\n\t var doCache = screenRow > rowCache[l - 1];\n\t } else {\n\t var doCache = !l;\n\t }\n\n\t var maxRow = this.getLength() - 1;\n\t var foldLine = this.getNextFoldLine(docRow);\n\t var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n\t while (row <= screenRow) {\n\t rowLength = this.getRowLength(docRow);\n\t if (row + rowLength > screenRow || docRow >= maxRow) {\n\t break;\n\t } else {\n\t row += rowLength;\n\t docRow++;\n\t if (docRow > foldStart) {\n\t docRow = foldLine.end.row+1;\n\t foldLine = this.getNextFoldLine(docRow, foldLine);\n\t foldStart = foldLine ? foldLine.start.row : Infinity;\n\t }\n\t }\n\n\t if (doCache) {\n\t this.$docRowCache.push(docRow);\n\t this.$screenRowCache.push(row);\n\t }\n\t }\n\n\t if (foldLine && foldLine.start.row <= docRow) {\n\t line = this.getFoldDisplayLine(foldLine);\n\t docRow = foldLine.start.row;\n\t } else if (row + rowLength <= screenRow || docRow > maxRow) {\n\t return {\n\t row: maxRow,\n\t column: this.getLine(maxRow).length\n\t };\n\t } else {\n\t line = this.getLine(docRow);\n\t foldLine = null;\n\t }\n\t var wrapIndent = 0;\n\t if (this.$useWrapMode) {\n\t var splits = this.$wrapData[docRow];\n\t if (splits) {\n\t var splitIndex = Math.floor(screenRow - row);\n\t column = splits[splitIndex];\n\t if(splitIndex > 0 && splits.length) {\n\t wrapIndent = splits.indent;\n\t docColumn = splits[splitIndex - 1] || splits[splits.length - 1];\n\t line = line.substring(docColumn);\n\t }\n\t }\n\t }\n\n\t docColumn += this.$getStringScreenWidth(line, screenColumn - wrapIndent)[1];\n\t if (this.$useWrapMode && docColumn >= column)\n\t docColumn = column - 1;\n\n\t if (foldLine)\n\t return foldLine.idxToPosition(docColumn);\n\n\t return {row: docRow, column: docColumn};\n\t };\n\t this.documentToScreenPosition = function(docRow, docColumn) {\n\t if (typeof docColumn === \"undefined\")\n\t var pos = this.$clipPositionToDocument(docRow.row, docRow.column);\n\t else\n\t pos = this.$clipPositionToDocument(docRow, docColumn);\n\n\t docRow = pos.row;\n\t docColumn = pos.column;\n\n\t var screenRow = 0;\n\t var foldStartRow = null;\n\t var fold = null;\n\t fold = this.getFoldAt(docRow, docColumn, 1);\n\t if (fold) {\n\t docRow = fold.start.row;\n\t docColumn = fold.start.column;\n\t }\n\n\t var rowEnd, row = 0;\n\n\n\t var rowCache = this.$docRowCache;\n\t var i = this.$getRowCacheIndex(rowCache, docRow);\n\t var l = rowCache.length;\n\t if (l && i >= 0) {\n\t var row = rowCache[i];\n\t var screenRow = this.$screenRowCache[i];\n\t var doCache = docRow > rowCache[l - 1];\n\t } else {\n\t var doCache = !l;\n\t }\n\n\t var foldLine = this.getNextFoldLine(row);\n\t var foldStart = foldLine ?foldLine.start.row :Infinity;\n\n\t while (row < docRow) {\n\t if (row >= foldStart) {\n\t rowEnd = foldLine.end.row + 1;\n\t if (rowEnd > docRow)\n\t break;\n\t foldLine = this.getNextFoldLine(rowEnd, foldLine);\n\t foldStart = foldLine ?foldLine.start.row :Infinity;\n\t }\n\t else {\n\t rowEnd = row + 1;\n\t }\n\n\t screenRow += this.getRowLength(row);\n\t row = rowEnd;\n\n\t if (doCache) {\n\t this.$docRowCache.push(row);\n\t this.$screenRowCache.push(screenRow);\n\t }\n\t }\n\t var textLine = \"\";\n\t if (foldLine && row >= foldStart) {\n\t textLine = this.getFoldDisplayLine(foldLine, docRow, docColumn);\n\t foldStartRow = foldLine.start.row;\n\t } else {\n\t textLine = this.getLine(docRow).substring(0, docColumn);\n\t foldStartRow = docRow;\n\t }\n\t var wrapIndent = 0;\n\t if (this.$useWrapMode) {\n\t var wrapRow = this.$wrapData[foldStartRow];\n\t if (wrapRow) {\n\t var screenRowOffset = 0;\n\t while (textLine.length >= wrapRow[screenRowOffset]) {\n\t screenRow ++;\n\t screenRowOffset++;\n\t }\n\t textLine = textLine.substring(\n\t wrapRow[screenRowOffset - 1] || 0, textLine.length\n\t );\n\t wrapIndent = screenRowOffset > 0 ? wrapRow.indent : 0;\n\t }\n\t }\n\n\t return {\n\t row: screenRow,\n\t column: wrapIndent + this.$getStringScreenWidth(textLine)[0]\n\t };\n\t };\n\t this.documentToScreenColumn = function(row, docColumn) {\n\t return this.documentToScreenPosition(row, docColumn).column;\n\t };\n\t this.documentToScreenRow = function(docRow, docColumn) {\n\t return this.documentToScreenPosition(docRow, docColumn).row;\n\t };\n\t this.getScreenLength = function() {\n\t var screenRows = 0;\n\t var fold = null;\n\t if (!this.$useWrapMode) {\n\t screenRows = this.getLength();\n\t var foldData = this.$foldData;\n\t for (var i = 0; i < foldData.length; i++) {\n\t fold = foldData[i];\n\t screenRows -= fold.end.row - fold.start.row;\n\t }\n\t } else {\n\t var lastRow = this.$wrapData.length;\n\t var row = 0, i = 0;\n\t var fold = this.$foldData[i++];\n\t var foldStart = fold ? fold.start.row :Infinity;\n\n\t while (row < lastRow) {\n\t var splits = this.$wrapData[row];\n\t screenRows += splits ? splits.length + 1 : 1;\n\t row ++;\n\t if (row > foldStart) {\n\t row = fold.end.row+1;\n\t fold = this.$foldData[i++];\n\t foldStart = fold ?fold.start.row :Infinity;\n\t }\n\t }\n\t }\n\t if (this.lineWidgets)\n\t screenRows += this.$getWidgetScreenLength();\n\n\t return screenRows;\n\t };\n\t this.$setFontMetrics = function(fm) {\n\t if (!this.$enableVarChar) return;\n\t this.$getStringScreenWidth = function(str, maxScreenColumn, screenColumn) {\n\t if (maxScreenColumn === 0)\n\t return [0, 0];\n\t if (!maxScreenColumn)\n\t maxScreenColumn = Infinity;\n\t screenColumn = screenColumn || 0;\n\t \n\t var c, column;\n\t for (column = 0; column < str.length; column++) {\n\t c = str.charAt(column);\n\t if (c === \"\\t\") {\n\t screenColumn += this.getScreenTabSize(screenColumn);\n\t } else {\n\t screenColumn += fm.getCharacterWidth(c);\n\t }\n\t if (screenColumn > maxScreenColumn) {\n\t break;\n\t }\n\t }\n\t \n\t return [screenColumn, column];\n\t };\n\t };\n\t \n\t this.destroy = function() {\n\t if (this.bgTokenizer) {\n\t this.bgTokenizer.setDocument(null);\n\t this.bgTokenizer = null;\n\t }\n\t this.$stopWorker();\n\t };\n\t function isFullWidth(c) {\n\t if (c < 0x1100)\n\t return false;\n\t return c >= 0x1100 && c <= 0x115F ||\n\t c >= 0x11A3 && c <= 0x11A7 ||\n\t c >= 0x11FA && c <= 0x11FF ||\n\t c >= 0x2329 && c <= 0x232A ||\n\t c >= 0x2E80 && c <= 0x2E99 ||\n\t c >= 0x2E9B && c <= 0x2EF3 ||\n\t c >= 0x2F00 && c <= 0x2FD5 ||\n\t c >= 0x2FF0 && c <= 0x2FFB ||\n\t c >= 0x3000 && c <= 0x303E ||\n\t c >= 0x3041 && c <= 0x3096 ||\n\t c >= 0x3099 && c <= 0x30FF ||\n\t c >= 0x3105 && c <= 0x312D ||\n\t c >= 0x3131 && c <= 0x318E ||\n\t c >= 0x3190 && c <= 0x31BA ||\n\t c >= 0x31C0 && c <= 0x31E3 ||\n\t c >= 0x31F0 && c <= 0x321E ||\n\t c >= 0x3220 && c <= 0x3247 ||\n\t c >= 0x3250 && c <= 0x32FE ||\n\t c >= 0x3300 && c <= 0x4DBF ||\n\t c >= 0x4E00 && c <= 0xA48C ||\n\t c >= 0xA490 && c <= 0xA4C6 ||\n\t c >= 0xA960 && c <= 0xA97C ||\n\t c >= 0xAC00 && c <= 0xD7A3 ||\n\t c >= 0xD7B0 && c <= 0xD7C6 ||\n\t c >= 0xD7CB && c <= 0xD7FB ||\n\t c >= 0xF900 && c <= 0xFAFF ||\n\t c >= 0xFE10 && c <= 0xFE19 ||\n\t c >= 0xFE30 && c <= 0xFE52 ||\n\t c >= 0xFE54 && c <= 0xFE66 ||\n\t c >= 0xFE68 && c <= 0xFE6B ||\n\t c >= 0xFF01 && c <= 0xFF60 ||\n\t c >= 0xFFE0 && c <= 0xFFE6;\n\t }\n\n\t}).call(EditSession.prototype);\n\n\tacequire(\"./edit_session/folding\").Folding.call(EditSession.prototype);\n\tacequire(\"./edit_session/bracket_match\").BracketMatch.call(EditSession.prototype);\n\n\n\tconfig.defineOptions(EditSession.prototype, \"session\", {\n\t wrap: {\n\t set: function(value) {\n\t if (!value || value == \"off\")\n\t value = false;\n\t else if (value == \"free\")\n\t value = true;\n\t else if (value == \"printMargin\")\n\t value = -1;\n\t else if (typeof value == \"string\")\n\t value = parseInt(value, 10) || false;\n\n\t if (this.$wrap == value)\n\t return;\n\t this.$wrap = value;\n\t if (!value) {\n\t this.setUseWrapMode(false);\n\t } else {\n\t var col = typeof value == \"number\" ? value : null;\n\t this.setWrapLimitRange(col, col);\n\t this.setUseWrapMode(true);\n\t }\n\t },\n\t get: function() {\n\t if (this.getUseWrapMode()) {\n\t if (this.$wrap == -1)\n\t return \"printMargin\";\n\t if (!this.getWrapLimitRange().min)\n\t return \"free\";\n\t return this.$wrap;\n\t }\n\t return \"off\";\n\t },\n\t handlesSet: true\n\t }, \n\t wrapMethod: {\n\t set: function(val) {\n\t val = val == \"auto\"\n\t ? this.$mode.type != \"text\"\n\t : val != \"text\";\n\t if (val != this.$wrapAsCode) {\n\t this.$wrapAsCode = val;\n\t if (this.$useWrapMode) {\n\t this.$modified = true;\n\t this.$resetRowCache(0);\n\t this.$updateWrapData(0, this.getLength() - 1);\n\t }\n\t }\n\t },\n\t initialValue: \"auto\"\n\t },\n\t indentedSoftWrap: { initialValue: true },\n\t firstLineNumber: {\n\t set: function() {this._signal(\"changeBreakpoint\");},\n\t initialValue: 1\n\t },\n\t useWorker: {\n\t set: function(useWorker) {\n\t this.$useWorker = useWorker;\n\n\t this.$stopWorker();\n\t if (useWorker)\n\t this.$startWorker();\n\t },\n\t initialValue: true\n\t },\n\t useSoftTabs: {initialValue: true},\n\t tabSize: {\n\t set: function(tabSize) {\n\t if (isNaN(tabSize) || this.$tabSize === tabSize) return;\n\n\t this.$modified = true;\n\t this.$rowLengthCache = [];\n\t this.$tabSize = tabSize;\n\t this._signal(\"changeTabSize\");\n\t },\n\t initialValue: 4,\n\t handlesSet: true\n\t },\n\t overwrite: {\n\t set: function(val) {this._signal(\"changeOverwrite\");},\n\t initialValue: false\n\t },\n\t newLineMode: {\n\t set: function(val) {this.doc.setNewLineMode(val)},\n\t get: function() {return this.doc.getNewLineMode()},\n\t handlesSet: true\n\t },\n\t mode: {\n\t set: function(val) { this.setMode(val) },\n\t get: function() { return this.$modeId }\n\t }\n\t});\n\n\texports.EditSession = EditSession;\n\t});\n\n\tace.define(\"ace/search\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar lang = acequire(\"./lib/lang\");\n\tvar oop = acequire(\"./lib/oop\");\n\tvar Range = acequire(\"./range\").Range;\n\n\tvar Search = function() {\n\t this.$options = {};\n\t};\n\n\t(function() {\n\t this.set = function(options) {\n\t oop.mixin(this.$options, options);\n\t return this;\n\t };\n\t this.getOptions = function() {\n\t return lang.copyObject(this.$options);\n\t };\n\t this.setOptions = function(options) {\n\t this.$options = options;\n\t };\n\t this.find = function(session) {\n\t var options = this.$options;\n\t var iterator = this.$matchIterator(session, options);\n\t if (!iterator)\n\t return false;\n\n\t var firstRange = null;\n\t iterator.forEach(function(range, row, offset) {\n\t if (!range.start) {\n\t var column = range.offset + (offset || 0);\n\t firstRange = new Range(row, column, row, column + range.length);\n\t if (!range.length && options.start && options.start.start\n\t && options.skipCurrent != false && firstRange.isEqual(options.start)\n\t ) {\n\t firstRange = null;\n\t return false;\n\t }\n\t } else\n\t firstRange = range;\n\t return true;\n\t });\n\n\t return firstRange;\n\t };\n\t this.findAll = function(session) {\n\t var options = this.$options;\n\t if (!options.needle)\n\t return [];\n\t this.$assembleRegExp(options);\n\n\t var range = options.range;\n\t var lines = range\n\t ? session.getLines(range.start.row, range.end.row)\n\t : session.doc.getAllLines();\n\n\t var ranges = [];\n\t var re = options.re;\n\t if (options.$isMultiLine) {\n\t var len = re.length;\n\t var maxRow = lines.length - len;\n\t var prevRange;\n\t outer: for (var row = re.offset || 0; row <= maxRow; row++) {\n\t for (var j = 0; j < len; j++)\n\t if (lines[row + j].search(re[j]) == -1)\n\t continue outer;\n\t \n\t var startLine = lines[row];\n\t var line = lines[row + len - 1];\n\t var startIndex = startLine.length - startLine.match(re[0])[0].length;\n\t var endIndex = line.match(re[len - 1])[0].length;\n\t \n\t if (prevRange && prevRange.end.row === row &&\n\t prevRange.end.column > startIndex\n\t ) {\n\t continue;\n\t }\n\t ranges.push(prevRange = new Range(\n\t row, startIndex, row + len - 1, endIndex\n\t ));\n\t if (len > 2)\n\t row = row + len - 2;\n\t }\n\t } else {\n\t for (var i = 0; i < lines.length; i++) {\n\t var matches = lang.getMatchOffsets(lines[i], re);\n\t for (var j = 0; j < matches.length; j++) {\n\t var match = matches[j];\n\t ranges.push(new Range(i, match.offset, i, match.offset + match.length));\n\t }\n\t }\n\t }\n\n\t if (range) {\n\t var startColumn = range.start.column;\n\t var endColumn = range.start.column;\n\t var i = 0, j = ranges.length - 1;\n\t while (i < j && ranges[i].start.column < startColumn && ranges[i].start.row == range.start.row)\n\t i++;\n\n\t while (i < j && ranges[j].end.column > endColumn && ranges[j].end.row == range.end.row)\n\t j--;\n\t \n\t ranges = ranges.slice(i, j + 1);\n\t for (i = 0, j = ranges.length; i < j; i++) {\n\t ranges[i].start.row += range.start.row;\n\t ranges[i].end.row += range.start.row;\n\t }\n\t }\n\n\t return ranges;\n\t };\n\t this.replace = function(input, replacement) {\n\t var options = this.$options;\n\n\t var re = this.$assembleRegExp(options);\n\t if (options.$isMultiLine)\n\t return replacement;\n\n\t if (!re)\n\t return;\n\n\t var match = re.exec(input);\n\t if (!match || match[0].length != input.length)\n\t return null;\n\t \n\t replacement = input.replace(re, replacement);\n\t if (options.preserveCase) {\n\t replacement = replacement.split(\"\");\n\t for (var i = Math.min(input.length, input.length); i--; ) {\n\t var ch = input[i];\n\t if (ch && ch.toLowerCase() != ch)\n\t replacement[i] = replacement[i].toUpperCase();\n\t else\n\t replacement[i] = replacement[i].toLowerCase();\n\t }\n\t replacement = replacement.join(\"\");\n\t }\n\t \n\t return replacement;\n\t };\n\n\t this.$matchIterator = function(session, options) {\n\t var re = this.$assembleRegExp(options);\n\t if (!re)\n\t return false;\n\n\t var callback;\n\t if (options.$isMultiLine) {\n\t var len = re.length;\n\t var matchIterator = function(line, row, offset) {\n\t var startIndex = line.search(re[0]);\n\t if (startIndex == -1)\n\t return;\n\t for (var i = 1; i < len; i++) {\n\t line = session.getLine(row + i);\n\t if (line.search(re[i]) == -1)\n\t return;\n\t }\n\n\t var endIndex = line.match(re[len - 1])[0].length;\n\n\t var range = new Range(row, startIndex, row + len - 1, endIndex);\n\t if (re.offset == 1) {\n\t range.start.row--;\n\t range.start.column = Number.MAX_VALUE;\n\t } else if (offset)\n\t range.start.column += offset;\n\n\t if (callback(range))\n\t return true;\n\t };\n\t } else if (options.backwards) {\n\t var matchIterator = function(line, row, startIndex) {\n\t var matches = lang.getMatchOffsets(line, re);\n\t for (var i = matches.length-1; i >= 0; i--)\n\t if (callback(matches[i], row, startIndex))\n\t return true;\n\t };\n\t } else {\n\t var matchIterator = function(line, row, startIndex) {\n\t var matches = lang.getMatchOffsets(line, re);\n\t for (var i = 0; i < matches.length; i++)\n\t if (callback(matches[i], row, startIndex))\n\t return true;\n\t };\n\t }\n\t \n\t var lineIterator = this.$lineIterator(session, options);\n\n\t return {\n\t forEach: function(_callback) {\n\t callback = _callback;\n\t lineIterator.forEach(matchIterator);\n\t }\n\t };\n\t };\n\n\t this.$assembleRegExp = function(options, $disableFakeMultiline) {\n\t if (options.needle instanceof RegExp)\n\t return options.re = options.needle;\n\n\t var needle = options.needle;\n\n\t if (!options.needle)\n\t return options.re = false;\n\n\t if (!options.regExp)\n\t needle = lang.escapeRegExp(needle);\n\n\t if (options.wholeWord)\n\t needle = addWordBoundary(needle, options);\n\n\t var modifier = options.caseSensitive ? \"gm\" : \"gmi\";\n\n\t options.$isMultiLine = !$disableFakeMultiline && /[\\n\\r]/.test(needle);\n\t if (options.$isMultiLine)\n\t return options.re = this.$assembleMultilineRegExp(needle, modifier);\n\n\t try {\n\t var re = new RegExp(needle, modifier);\n\t } catch(e) {\n\t re = false;\n\t }\n\t return options.re = re;\n\t };\n\n\t this.$assembleMultilineRegExp = function(needle, modifier) {\n\t var parts = needle.replace(/\\r\\n|\\r|\\n/g, \"$\\n^\").split(\"\\n\");\n\t var re = [];\n\t for (var i = 0; i < parts.length; i++) try {\n\t re.push(new RegExp(parts[i], modifier));\n\t } catch(e) {\n\t return false;\n\t }\n\t if (parts[0] == \"\") {\n\t re.shift();\n\t re.offset = 1;\n\t } else {\n\t re.offset = 0;\n\t }\n\t return re;\n\t };\n\n\t this.$lineIterator = function(session, options) {\n\t var backwards = options.backwards == true;\n\t var skipCurrent = options.skipCurrent != false;\n\n\t var range = options.range;\n\t var start = options.start;\n\t if (!start)\n\t start = range ? range[backwards ? \"end\" : \"start\"] : session.selection.getRange();\n\t \n\t if (start.start)\n\t start = start[skipCurrent != backwards ? \"end\" : \"start\"];\n\n\t var firstRow = range ? range.start.row : 0;\n\t var lastRow = range ? range.end.row : session.getLength() - 1;\n\n\t var forEach = backwards ? function(callback) {\n\t var row = start.row;\n\n\t var line = session.getLine(row).substring(0, start.column);\n\t if (callback(line, row))\n\t return;\n\n\t for (row--; row >= firstRow; row--)\n\t if (callback(session.getLine(row), row))\n\t return;\n\n\t if (options.wrap == false)\n\t return;\n\n\t for (row = lastRow, firstRow = start.row; row >= firstRow; row--)\n\t if (callback(session.getLine(row), row))\n\t return;\n\t } : function(callback) {\n\t var row = start.row;\n\n\t var line = session.getLine(row).substr(start.column);\n\t if (callback(line, row, start.column))\n\t return;\n\n\t for (row = row+1; row <= lastRow; row++)\n\t if (callback(session.getLine(row), row))\n\t return;\n\n\t if (options.wrap == false)\n\t return;\n\n\t for (row = firstRow, lastRow = start.row; row <= lastRow; row++)\n\t if (callback(session.getLine(row), row))\n\t return;\n\t };\n\t \n\t return {forEach: forEach};\n\t };\n\n\t}).call(Search.prototype);\n\n\tfunction addWordBoundary(needle, options) {\n\t function wordBoundary(c) {\n\t if (/\\w/.test(c) || options.regExp) return \"\\\\b\";\n\t return \"\";\n\t }\n\t return wordBoundary(needle[0]) + needle\n\t + wordBoundary(needle[needle.length - 1]);\n\t}\n\n\texports.Search = Search;\n\t});\n\n\tace.define(\"ace/keyboard/hash_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar keyUtil = acequire(\"../lib/keys\");\n\tvar useragent = acequire(\"../lib/useragent\");\n\tvar KEY_MODS = keyUtil.KEY_MODS;\n\n\tfunction HashHandler(config, platform) {\n\t this.platform = platform || (useragent.isMac ? \"mac\" : \"win\");\n\t this.commands = {};\n\t this.commandKeyBinding = {};\n\t this.addCommands(config);\n\t this.$singleCommand = true;\n\t}\n\n\tfunction MultiHashHandler(config, platform) {\n\t HashHandler.call(this, config, platform);\n\t this.$singleCommand = false;\n\t}\n\n\tMultiHashHandler.prototype = HashHandler.prototype;\n\n\t(function() {\n\t \n\n\t this.addCommand = function(command) {\n\t if (this.commands[command.name])\n\t this.removeCommand(command);\n\n\t this.commands[command.name] = command;\n\n\t if (command.bindKey)\n\t this._buildKeyHash(command);\n\t };\n\n\t this.removeCommand = function(command, keepCommand) {\n\t var name = command && (typeof command === 'string' ? command : command.name);\n\t command = this.commands[name];\n\t if (!keepCommand)\n\t delete this.commands[name];\n\t var ckb = this.commandKeyBinding;\n\t for (var keyId in ckb) {\n\t var cmdGroup = ckb[keyId];\n\t if (cmdGroup == command) {\n\t delete ckb[keyId];\n\t } else if (Array.isArray(cmdGroup)) {\n\t var i = cmdGroup.indexOf(command);\n\t if (i != -1) {\n\t cmdGroup.splice(i, 1);\n\t if (cmdGroup.length == 1)\n\t ckb[keyId] = cmdGroup[0];\n\t }\n\t }\n\t }\n\t };\n\n\t this.bindKey = function(key, command, position) {\n\t if (typeof key == \"object\" && key) {\n\t if (position == undefined)\n\t position = key.position;\n\t key = key[this.platform];\n\t }\n\t if (!key)\n\t return;\n\t if (typeof command == \"function\")\n\t return this.addCommand({exec: command, bindKey: key, name: command.name || key});\n\t \n\t key.split(\"|\").forEach(function(keyPart) {\n\t var chain = \"\";\n\t if (keyPart.indexOf(\" \") != -1) {\n\t var parts = keyPart.split(/\\s+/);\n\t keyPart = parts.pop();\n\t parts.forEach(function(keyPart) {\n\t var binding = this.parseKeys(keyPart);\n\t var id = KEY_MODS[binding.hashId] + binding.key;\n\t chain += (chain ? \" \" : \"\") + id;\n\t this._addCommandToBinding(chain, \"chainKeys\");\n\t }, this);\n\t chain += \" \";\n\t }\n\t var binding = this.parseKeys(keyPart);\n\t var id = KEY_MODS[binding.hashId] + binding.key;\n\t this._addCommandToBinding(chain + id, command, position);\n\t }, this);\n\t };\n\t \n\t function getPosition(command) {\n\t return typeof command == \"object\" && command.bindKey\n\t && command.bindKey.position || 0;\n\t }\n\t this._addCommandToBinding = function(keyId, command, position) {\n\t var ckb = this.commandKeyBinding, i;\n\t if (!command) {\n\t delete ckb[keyId];\n\t } else if (!ckb[keyId] || this.$singleCommand) {\n\t ckb[keyId] = command;\n\t } else {\n\t if (!Array.isArray(ckb[keyId])) {\n\t ckb[keyId] = [ckb[keyId]];\n\t } else if ((i = ckb[keyId].indexOf(command)) != -1) {\n\t ckb[keyId].splice(i, 1);\n\t }\n\n\t if (typeof position != \"number\") {\n\t if (position || command.isDefault)\n\t position = -100;\n\t else\n\t position = getPosition(command);\n\t }\n\t var commands = ckb[keyId];\n\t for (i = 0; i < commands.length; i++) {\n\t var other = commands[i];\n\t var otherPos = getPosition(other);\n\t if (otherPos > position)\n\t break;\n\t }\n\t commands.splice(i, 0, command);\n\t }\n\t };\n\n\t this.addCommands = function(commands) {\n\t commands && Object.keys(commands).forEach(function(name) {\n\t var command = commands[name];\n\t if (!command)\n\t return;\n\t \n\t if (typeof command === \"string\")\n\t return this.bindKey(command, name);\n\n\t if (typeof command === \"function\")\n\t command = { exec: command };\n\n\t if (typeof command !== \"object\")\n\t return;\n\n\t if (!command.name)\n\t command.name = name;\n\n\t this.addCommand(command);\n\t }, this);\n\t };\n\n\t this.removeCommands = function(commands) {\n\t Object.keys(commands).forEach(function(name) {\n\t this.removeCommand(commands[name]);\n\t }, this);\n\t };\n\n\t this.bindKeys = function(keyList) {\n\t Object.keys(keyList).forEach(function(key) {\n\t this.bindKey(key, keyList[key]);\n\t }, this);\n\t };\n\n\t this._buildKeyHash = function(command) {\n\t this.bindKey(command.bindKey, command);\n\t };\n\t this.parseKeys = function(keys) {\n\t var parts = keys.toLowerCase().split(/[\\-\\+]([\\-\\+])?/).filter(function(x){return x});\n\t var key = parts.pop();\n\n\t var keyCode = keyUtil[key];\n\t if (keyUtil.FUNCTION_KEYS[keyCode])\n\t key = keyUtil.FUNCTION_KEYS[keyCode].toLowerCase();\n\t else if (!parts.length)\n\t return {key: key, hashId: -1};\n\t else if (parts.length == 1 && parts[0] == \"shift\")\n\t return {key: key.toUpperCase(), hashId: -1};\n\n\t var hashId = 0;\n\t for (var i = parts.length; i--;) {\n\t var modifier = keyUtil.KEY_MODS[parts[i]];\n\t if (modifier == null) {\n\t if (typeof console != \"undefined\")\n\t console.error(\"invalid modifier \" + parts[i] + \" in \" + keys);\n\t return false;\n\t }\n\t hashId |= modifier;\n\t }\n\t return {key: key, hashId: hashId};\n\t };\n\n\t this.findKeyCommand = function findKeyCommand(hashId, keyString) {\n\t var key = KEY_MODS[hashId] + keyString;\n\t return this.commandKeyBinding[key];\n\t };\n\n\t this.handleKeyboard = function(data, hashId, keyString, keyCode) {\n\t if (keyCode < 0) return;\n\t var key = KEY_MODS[hashId] + keyString;\n\t var command = this.commandKeyBinding[key];\n\t if (data.$keyChain) {\n\t data.$keyChain += \" \" + key;\n\t command = this.commandKeyBinding[data.$keyChain] || command;\n\t }\n\t \n\t if (command) {\n\t if (command == \"chainKeys\" || command[command.length - 1] == \"chainKeys\") {\n\t data.$keyChain = data.$keyChain || key;\n\t return {command: \"null\"};\n\t }\n\t }\n\t \n\t if (data.$keyChain) {\n\t if ((!hashId || hashId == 4) && keyString.length == 1)\n\t data.$keyChain = data.$keyChain.slice(0, -key.length - 1); // wait for input\n\t else if (hashId == -1 || keyCode > 0)\n\t data.$keyChain = \"\"; // reset keyChain\n\t }\n\t return {command: command};\n\t };\n\t \n\t this.getStatusText = function(editor, data) {\n\t return data.$keyChain || \"\";\n\t };\n\n\t}).call(HashHandler.prototype);\n\n\texports.HashHandler = HashHandler;\n\texports.MultiHashHandler = MultiHashHandler;\n\t});\n\n\tace.define(\"ace/commands/command_manager\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/keyboard/hash_handler\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar oop = acequire(\"../lib/oop\");\n\tvar MultiHashHandler = acequire(\"../keyboard/hash_handler\").MultiHashHandler;\n\tvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\n\tvar CommandManager = function(platform, commands) {\n\t MultiHashHandler.call(this, commands, platform);\n\t this.byName = this.commands;\n\t this.setDefaultHandler(\"exec\", function(e) {\n\t return e.command.exec(e.editor, e.args || {});\n\t });\n\t};\n\n\toop.inherits(CommandManager, MultiHashHandler);\n\n\t(function() {\n\n\t oop.implement(this, EventEmitter);\n\n\t this.exec = function(command, editor, args) {\n\t if (Array.isArray(command)) {\n\t for (var i = command.length; i--; ) {\n\t if (this.exec(command[i], editor, args)) return true;\n\t }\n\t return false;\n\t }\n\t \n\t if (typeof command === \"string\")\n\t command = this.commands[command];\n\n\t if (!command)\n\t return false;\n\n\t if (editor && editor.$readOnly && !command.readOnly)\n\t return false;\n\n\t var e = {editor: editor, command: command, args: args};\n\t e.returnValue = this._emit(\"exec\", e);\n\t this._signal(\"afterExec\", e);\n\n\t return e.returnValue === false ? false : true;\n\t };\n\n\t this.toggleRecording = function(editor) {\n\t if (this.$inReplay)\n\t return;\n\n\t editor && editor._emit(\"changeStatus\");\n\t if (this.recording) {\n\t this.macro.pop();\n\t this.removeEventListener(\"exec\", this.$addCommandToMacro);\n\n\t if (!this.macro.length)\n\t this.macro = this.oldMacro;\n\n\t return this.recording = false;\n\t }\n\t if (!this.$addCommandToMacro) {\n\t this.$addCommandToMacro = function(e) {\n\t this.macro.push([e.command, e.args]);\n\t }.bind(this);\n\t }\n\n\t this.oldMacro = this.macro;\n\t this.macro = [];\n\t this.on(\"exec\", this.$addCommandToMacro);\n\t return this.recording = true;\n\t };\n\n\t this.replay = function(editor) {\n\t if (this.$inReplay || !this.macro)\n\t return;\n\n\t if (this.recording)\n\t return this.toggleRecording(editor);\n\n\t try {\n\t this.$inReplay = true;\n\t this.macro.forEach(function(x) {\n\t if (typeof x == \"string\")\n\t this.exec(x, editor);\n\t else\n\t this.exec(x[0], editor, x[1]);\n\t }, this);\n\t } finally {\n\t this.$inReplay = false;\n\t }\n\t };\n\n\t this.trimMacro = function(m) {\n\t return m.map(function(x){\n\t if (typeof x[0] != \"string\")\n\t x[0] = x[0].name;\n\t if (!x[1])\n\t x = x[0];\n\t return x;\n\t });\n\t };\n\n\t}).call(CommandManager.prototype);\n\n\texports.CommandManager = CommandManager;\n\n\t});\n\n\tace.define(\"ace/commands/default_commands\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/config\",\"ace/range\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar lang = acequire(\"../lib/lang\");\n\tvar config = acequire(\"../config\");\n\tvar Range = acequire(\"../range\").Range;\n\n\tfunction bindKey(win, mac) {\n\t return {win: win, mac: mac};\n\t}\n\texports.commands = [{\n\t name: \"showSettingsMenu\",\n\t bindKey: bindKey(\"Ctrl-,\", \"Command-,\"),\n\t exec: function(editor) {\n\t config.loadModule(\"ace/ext/settings_menu\", function(module) {\n\t module.init(editor);\n\t editor.showSettingsMenu();\n\t });\n\t },\n\t readOnly: true\n\t}, {\n\t name: \"goToNextError\",\n\t bindKey: bindKey(\"Alt-E\", \"F4\"),\n\t exec: function(editor) {\n\t config.loadModule(\"ace/ext/error_marker\", function(module) {\n\t module.showErrorMarker(editor, 1);\n\t });\n\t },\n\t scrollIntoView: \"animate\",\n\t readOnly: true\n\t}, {\n\t name: \"goToPreviousError\",\n\t bindKey: bindKey(\"Alt-Shift-E\", \"Shift-F4\"),\n\t exec: function(editor) {\n\t config.loadModule(\"ace/ext/error_marker\", function(module) {\n\t module.showErrorMarker(editor, -1);\n\t });\n\t },\n\t scrollIntoView: \"animate\",\n\t readOnly: true\n\t}, {\n\t name: \"selectall\",\n\t bindKey: bindKey(\"Ctrl-A\", \"Command-A\"),\n\t exec: function(editor) { editor.selectAll(); },\n\t readOnly: true\n\t}, {\n\t name: \"centerselection\",\n\t bindKey: bindKey(null, \"Ctrl-L\"),\n\t exec: function(editor) { editor.centerSelection(); },\n\t readOnly: true\n\t}, {\n\t name: \"gotoline\",\n\t bindKey: bindKey(\"Ctrl-L\", \"Command-L\"),\n\t exec: function(editor) {\n\t var line = parseInt(prompt(\"Enter line number:\"), 10);\n\t if (!isNaN(line)) {\n\t editor.gotoLine(line);\n\t }\n\t },\n\t readOnly: true\n\t}, {\n\t name: \"fold\",\n\t bindKey: bindKey(\"Alt-L|Ctrl-F1\", \"Command-Alt-L|Command-F1\"),\n\t exec: function(editor) { editor.session.toggleFold(false); },\n\t multiSelectAction: \"forEach\",\n\t scrollIntoView: \"center\",\n\t readOnly: true\n\t}, {\n\t name: \"unfold\",\n\t bindKey: bindKey(\"Alt-Shift-L|Ctrl-Shift-F1\", \"Command-Alt-Shift-L|Command-Shift-F1\"),\n\t exec: function(editor) { editor.session.toggleFold(true); },\n\t multiSelectAction: \"forEach\",\n\t scrollIntoView: \"center\",\n\t readOnly: true\n\t}, {\n\t name: \"toggleFoldWidget\",\n\t bindKey: bindKey(\"F2\", \"F2\"),\n\t exec: function(editor) { editor.session.toggleFoldWidget(); },\n\t multiSelectAction: \"forEach\",\n\t scrollIntoView: \"center\",\n\t readOnly: true\n\t}, {\n\t name: \"toggleParentFoldWidget\",\n\t bindKey: bindKey(\"Alt-F2\", \"Alt-F2\"),\n\t exec: function(editor) { editor.session.toggleFoldWidget(true); },\n\t multiSelectAction: \"forEach\",\n\t scrollIntoView: \"center\",\n\t readOnly: true\n\t}, {\n\t name: \"foldall\",\n\t bindKey: bindKey(null, \"Ctrl-Command-Option-0\"),\n\t exec: function(editor) { editor.session.foldAll(); },\n\t scrollIntoView: \"center\",\n\t readOnly: true\n\t}, {\n\t name: \"foldOther\",\n\t bindKey: bindKey(\"Alt-0\", \"Command-Option-0\"),\n\t exec: function(editor) { \n\t editor.session.foldAll();\n\t editor.session.unfold(editor.selection.getAllRanges());\n\t },\n\t scrollIntoView: \"center\",\n\t readOnly: true\n\t}, {\n\t name: \"unfoldall\",\n\t bindKey: bindKey(\"Alt-Shift-0\", \"Command-Option-Shift-0\"),\n\t exec: function(editor) { editor.session.unfold(); },\n\t scrollIntoView: \"center\",\n\t readOnly: true\n\t}, {\n\t name: \"findnext\",\n\t bindKey: bindKey(\"Ctrl-K\", \"Command-G\"),\n\t exec: function(editor) { editor.findNext(); },\n\t multiSelectAction: \"forEach\",\n\t scrollIntoView: \"center\",\n\t readOnly: true\n\t}, {\n\t name: \"findprevious\",\n\t bindKey: bindKey(\"Ctrl-Shift-K\", \"Command-Shift-G\"),\n\t exec: function(editor) { editor.findPrevious(); },\n\t multiSelectAction: \"forEach\",\n\t scrollIntoView: \"center\",\n\t readOnly: true\n\t}, {\n\t name: \"selectOrFindNext\",\n\t bindKey: bindKey(\"Alt-K\", \"Ctrl-G\"),\n\t exec: function(editor) {\n\t if (editor.selection.isEmpty())\n\t editor.selection.selectWord();\n\t else\n\t editor.findNext(); \n\t },\n\t readOnly: true\n\t}, {\n\t name: \"selectOrFindPrevious\",\n\t bindKey: bindKey(\"Alt-Shift-K\", \"Ctrl-Shift-G\"),\n\t exec: function(editor) { \n\t if (editor.selection.isEmpty())\n\t editor.selection.selectWord();\n\t else\n\t editor.findPrevious();\n\t },\n\t readOnly: true\n\t}, {\n\t name: \"find\",\n\t bindKey: bindKey(\"Ctrl-F\", \"Command-F\"),\n\t exec: function(editor) {\n\t config.loadModule(\"ace/ext/searchbox\", function(e) {e.Search(editor)});\n\t },\n\t readOnly: true\n\t}, {\n\t name: \"overwrite\",\n\t bindKey: \"Insert\",\n\t exec: function(editor) { editor.toggleOverwrite(); },\n\t readOnly: true\n\t}, {\n\t name: \"selecttostart\",\n\t bindKey: bindKey(\"Ctrl-Shift-Home\", \"Command-Shift-Home|Command-Shift-Up\"),\n\t exec: function(editor) { editor.getSelection().selectFileStart(); },\n\t multiSelectAction: \"forEach\",\n\t readOnly: true,\n\t scrollIntoView: \"animate\",\n\t aceCommandGroup: \"fileJump\"\n\t}, {\n\t name: \"gotostart\",\n\t bindKey: bindKey(\"Ctrl-Home\", \"Command-Home|Command-Up\"),\n\t exec: function(editor) { editor.navigateFileStart(); },\n\t multiSelectAction: \"forEach\",\n\t readOnly: true,\n\t scrollIntoView: \"animate\",\n\t aceCommandGroup: \"fileJump\"\n\t}, {\n\t name: \"selectup\",\n\t bindKey: bindKey(\"Shift-Up\", \"Shift-Up|Ctrl-Shift-P\"),\n\t exec: function(editor) { editor.getSelection().selectUp(); },\n\t multiSelectAction: \"forEach\",\n\t scrollIntoView: \"cursor\",\n\t readOnly: true\n\t}, {\n\t name: \"golineup\",\n\t bindKey: bindKey(\"Up\", \"Up|Ctrl-P\"),\n\t exec: function(editor, args) { editor.navigateUp(args.times); },\n\t multiSelectAction: \"forEach\",\n\t scrollIntoView: \"cursor\",\n\t readOnly: true\n\t}, {\n\t name: \"selecttoend\",\n\t bindKey: bindKey(\"Ctrl-Shift-End\", \"Command-Shift-End|Command-Shift-Down\"),\n\t exec: function(editor) { editor.getSelection().selectFileEnd(); },\n\t multiSelectAction: \"forEach\",\n\t readOnly: true,\n\t scrollIntoView: \"animate\",\n\t aceCommandGroup: \"fileJump\"\n\t}, {\n\t name: \"gotoend\",\n\t bindKey: bindKey(\"Ctrl-End\", \"Command-End|Command-Down\"),\n\t exec: function(editor) { editor.navigateFileEnd(); },\n\t multiSelectAction: \"forEach\",\n\t readOnly: true,\n\t scrollIntoView: \"animate\",\n\t aceCommandGroup: \"fileJump\"\n\t}, {\n\t name: \"selectdown\",\n\t bindKey: bindKey(\"Shift-Down\", \"Shift-Down|Ctrl-Shift-N\"),\n\t exec: function(editor) { editor.getSelection().selectDown(); },\n\t multiSelectAction: \"forEach\",\n\t scrollIntoView: \"cursor\",\n\t readOnly: true\n\t}, {\n\t name: \"golinedown\",\n\t bindKey: bindKey(\"Down\", \"Down|Ctrl-N\"),\n\t exec: function(editor, args) { editor.navigateDown(args.times); },\n\t multiSelectAction: \"forEach\",\n\t scrollIntoView: \"cursor\",\n\t readOnly: true\n\t}, {\n\t name: \"selectwordleft\",\n\t bindKey: bindKey(\"Ctrl-Shift-Left\", \"Option-Shift-Left\"),\n\t exec: function(editor) { editor.getSelection().selectWordLeft(); },\n\t multiSelectAction: \"forEach\",\n\t scrollIntoView: \"cursor\",\n\t readOnly: true\n\t}, {\n\t name: \"gotowordleft\",\n\t bindKey: bindKey(\"Ctrl-Left\", \"Option-Left\"),\n\t exec: function(editor) { editor.navigateWordLeft(); },\n\t multiSelectAction: \"forEach\",\n\t scrollIntoView: \"cursor\",\n\t readOnly: true\n\t}, {\n\t name: \"selecttolinestart\",\n\t bindKey: bindKey(\"Alt-Shift-Left\", \"Command-Shift-Left|Ctrl-Shift-A\"),\n\t exec: function(editor) { editor.getSelection().selectLineStart(); },\n\t multiSelectAction: \"forEach\",\n\t scrollIntoView: \"cursor\",\n\t readOnly: true\n\t}, {\n\t name: \"gotolinestart\",\n\t bindKey: bindKey(\"Alt-Left|Home\", \"Command-Left|Home|Ctrl-A\"),\n\t exec: function(editor) { editor.navigateLineStart(); },\n\t multiSelectAction: \"forEach\",\n\t scrollIntoView: \"cursor\",\n\t readOnly: true\n\t}, {\n\t name: \"selectleft\",\n\t bindKey: bindKey(\"Shift-Left\", \"Shift-Left|Ctrl-Shift-B\"),\n\t exec: function(editor) { editor.getSelection().selectLeft(); },\n\t multiSelectAction: \"forEach\",\n\t scrollIntoView: \"cursor\",\n\t readOnly: true\n\t}, {\n\t name: \"gotoleft\",\n\t bindKey: bindKey(\"Left\", \"Left|Ctrl-B\"),\n\t exec: function(editor, args) { editor.navigateLeft(args.times); },\n\t multiSelectAction: \"forEach\",\n\t scrollIntoView: \"cursor\",\n\t readOnly: true\n\t}, {\n\t name: \"selectwordright\",\n\t bindKey: bindKey(\"Ctrl-Shift-Right\", \"Option-Shift-Right\"),\n\t exec: function(editor) { editor.getSelection().selectWordRight(); },\n\t multiSelectAction: \"forEach\",\n\t scrollIntoView: \"cursor\",\n\t readOnly: true\n\t}, {\n\t name: \"gotowordright\",\n\t bindKey: bindKey(\"Ctrl-Right\", \"Option-Right\"),\n\t exec: function(editor) { editor.navigateWordRight(); },\n\t multiSelectAction: \"forEach\",\n\t scrollIntoView: \"cursor\",\n\t readOnly: true\n\t}, {\n\t name: \"selecttolineend\",\n\t bindKey: bindKey(\"Alt-Shift-Right\", \"Command-Shift-Right|Shift-End|Ctrl-Shift-E\"),\n\t exec: function(editor) { editor.getSelection().selectLineEnd(); },\n\t multiSelectAction: \"forEach\",\n\t scrollIntoView: \"cursor\",\n\t readOnly: true\n\t}, {\n\t name: \"gotolineend\",\n\t bindKey: bindKey(\"Alt-Right|End\", \"Command-Right|End|Ctrl-E\"),\n\t exec: function(editor) { editor.navigateLineEnd(); },\n\t multiSelectAction: \"forEach\",\n\t scrollIntoView: \"cursor\",\n\t readOnly: true\n\t}, {\n\t name: \"selectright\",\n\t bindKey: bindKey(\"Shift-Right\", \"Shift-Right\"),\n\t exec: function(editor) { editor.getSelection().selectRight(); },\n\t multiSelectAction: \"forEach\",\n\t scrollIntoView: \"cursor\",\n\t readOnly: true\n\t}, {\n\t name: \"gotoright\",\n\t bindKey: bindKey(\"Right\", \"Right|Ctrl-F\"),\n\t exec: function(editor, args) { editor.navigateRight(args.times); },\n\t multiSelectAction: \"forEach\",\n\t scrollIntoView: \"cursor\",\n\t readOnly: true\n\t}, {\n\t name: \"selectpagedown\",\n\t bindKey: \"Shift-PageDown\",\n\t exec: function(editor) { editor.selectPageDown(); },\n\t readOnly: true\n\t}, {\n\t name: \"pagedown\",\n\t bindKey: bindKey(null, \"Option-PageDown\"),\n\t exec: function(editor) { editor.scrollPageDown(); },\n\t readOnly: true\n\t}, {\n\t name: \"gotopagedown\",\n\t bindKey: bindKey(\"PageDown\", \"PageDown|Ctrl-V\"),\n\t exec: function(editor) { editor.gotoPageDown(); },\n\t readOnly: true\n\t}, {\n\t name: \"selectpageup\",\n\t bindKey: \"Shift-PageUp\",\n\t exec: function(editor) { editor.selectPageUp(); },\n\t readOnly: true\n\t}, {\n\t name: \"pageup\",\n\t bindKey: bindKey(null, \"Option-PageUp\"),\n\t exec: function(editor) { editor.scrollPageUp(); },\n\t readOnly: true\n\t}, {\n\t name: \"gotopageup\",\n\t bindKey: \"PageUp\",\n\t exec: function(editor) { editor.gotoPageUp(); },\n\t readOnly: true\n\t}, {\n\t name: \"scrollup\",\n\t bindKey: bindKey(\"Ctrl-Up\", null),\n\t exec: function(e) { e.renderer.scrollBy(0, -2 * e.renderer.layerConfig.lineHeight); },\n\t readOnly: true\n\t}, {\n\t name: \"scrolldown\",\n\t bindKey: bindKey(\"Ctrl-Down\", null),\n\t exec: function(e) { e.renderer.scrollBy(0, 2 * e.renderer.layerConfig.lineHeight); },\n\t readOnly: true\n\t}, {\n\t name: \"selectlinestart\",\n\t bindKey: \"Shift-Home\",\n\t exec: function(editor) { editor.getSelection().selectLineStart(); },\n\t multiSelectAction: \"forEach\",\n\t scrollIntoView: \"cursor\",\n\t readOnly: true\n\t}, {\n\t name: \"selectlineend\",\n\t bindKey: \"Shift-End\",\n\t exec: function(editor) { editor.getSelection().selectLineEnd(); },\n\t multiSelectAction: \"forEach\",\n\t scrollIntoView: \"cursor\",\n\t readOnly: true\n\t}, {\n\t name: \"togglerecording\",\n\t bindKey: bindKey(\"Ctrl-Alt-E\", \"Command-Option-E\"),\n\t exec: function(editor) { editor.commands.toggleRecording(editor); },\n\t readOnly: true\n\t}, {\n\t name: \"replaymacro\",\n\t bindKey: bindKey(\"Ctrl-Shift-E\", \"Command-Shift-E\"),\n\t exec: function(editor) { editor.commands.replay(editor); },\n\t readOnly: true\n\t}, {\n\t name: \"jumptomatching\",\n\t bindKey: bindKey(\"Ctrl-P\", \"Ctrl-P\"),\n\t exec: function(editor) { editor.jumpToMatching(); },\n\t multiSelectAction: \"forEach\",\n\t scrollIntoView: \"animate\",\n\t readOnly: true\n\t}, {\n\t name: \"selecttomatching\",\n\t bindKey: bindKey(\"Ctrl-Shift-P\", \"Ctrl-Shift-P\"),\n\t exec: function(editor) { editor.jumpToMatching(true); },\n\t multiSelectAction: \"forEach\",\n\t scrollIntoView: \"animate\",\n\t readOnly: true\n\t}, {\n\t name: \"expandToMatching\",\n\t bindKey: bindKey(\"Ctrl-Shift-M\", \"Ctrl-Shift-M\"),\n\t exec: function(editor) { editor.jumpToMatching(true, true); },\n\t multiSelectAction: \"forEach\",\n\t scrollIntoView: \"animate\",\n\t readOnly: true\n\t}, {\n\t name: \"passKeysToBrowser\",\n\t bindKey: bindKey(null, null),\n\t exec: function() {},\n\t passEvent: true,\n\t readOnly: true\n\t}, {\n\t name: \"copy\",\n\t exec: function(editor) {\n\t },\n\t readOnly: true\n\t},\n\t{\n\t name: \"cut\",\n\t exec: function(editor) {\n\t var range = editor.getSelectionRange();\n\t editor._emit(\"cut\", range);\n\n\t if (!editor.selection.isEmpty()) {\n\t editor.session.remove(range);\n\t editor.clearSelection();\n\t }\n\t },\n\t scrollIntoView: \"cursor\",\n\t multiSelectAction: \"forEach\"\n\t}, {\n\t name: \"paste\",\n\t exec: function(editor, args) {\n\t editor.$handlePaste(args);\n\t },\n\t scrollIntoView: \"cursor\"\n\t}, {\n\t name: \"removeline\",\n\t bindKey: bindKey(\"Ctrl-D\", \"Command-D\"),\n\t exec: function(editor) { editor.removeLines(); },\n\t scrollIntoView: \"cursor\",\n\t multiSelectAction: \"forEachLine\"\n\t}, {\n\t name: \"duplicateSelection\",\n\t bindKey: bindKey(\"Ctrl-Shift-D\", \"Command-Shift-D\"),\n\t exec: function(editor) { editor.duplicateSelection(); },\n\t scrollIntoView: \"cursor\",\n\t multiSelectAction: \"forEach\"\n\t}, {\n\t name: \"sortlines\",\n\t bindKey: bindKey(\"Ctrl-Alt-S\", \"Command-Alt-S\"),\n\t exec: function(editor) { editor.sortLines(); },\n\t scrollIntoView: \"selection\",\n\t multiSelectAction: \"forEachLine\"\n\t}, {\n\t name: \"togglecomment\",\n\t bindKey: bindKey(\"Ctrl-/\", \"Command-/\"),\n\t exec: function(editor) { editor.toggleCommentLines(); },\n\t multiSelectAction: \"forEachLine\",\n\t scrollIntoView: \"selectionPart\"\n\t}, {\n\t name: \"toggleBlockComment\",\n\t bindKey: bindKey(\"Ctrl-Shift-/\", \"Command-Shift-/\"),\n\t exec: function(editor) { editor.toggleBlockComment(); },\n\t multiSelectAction: \"forEach\",\n\t scrollIntoView: \"selectionPart\"\n\t}, {\n\t name: \"modifyNumberUp\",\n\t bindKey: bindKey(\"Ctrl-Shift-Up\", \"Alt-Shift-Up\"),\n\t exec: function(editor) { editor.modifyNumber(1); },\n\t scrollIntoView: \"cursor\",\n\t multiSelectAction: \"forEach\"\n\t}, {\n\t name: \"modifyNumberDown\",\n\t bindKey: bindKey(\"Ctrl-Shift-Down\", \"Alt-Shift-Down\"),\n\t exec: function(editor) { editor.modifyNumber(-1); },\n\t scrollIntoView: \"cursor\",\n\t multiSelectAction: \"forEach\"\n\t}, {\n\t name: \"replace\",\n\t bindKey: bindKey(\"Ctrl-H\", \"Command-Option-F\"),\n\t exec: function(editor) {\n\t config.loadModule(\"ace/ext/searchbox\", function(e) {e.Search(editor, true)});\n\t }\n\t}, {\n\t name: \"undo\",\n\t bindKey: bindKey(\"Ctrl-Z\", \"Command-Z\"),\n\t exec: function(editor) { editor.undo(); }\n\t}, {\n\t name: \"redo\",\n\t bindKey: bindKey(\"Ctrl-Shift-Z|Ctrl-Y\", \"Command-Shift-Z|Command-Y\"),\n\t exec: function(editor) { editor.redo(); }\n\t}, {\n\t name: \"copylinesup\",\n\t bindKey: bindKey(\"Alt-Shift-Up\", \"Command-Option-Up\"),\n\t exec: function(editor) { editor.copyLinesUp(); },\n\t scrollIntoView: \"cursor\"\n\t}, {\n\t name: \"movelinesup\",\n\t bindKey: bindKey(\"Alt-Up\", \"Option-Up\"),\n\t exec: function(editor) { editor.moveLinesUp(); },\n\t scrollIntoView: \"cursor\"\n\t}, {\n\t name: \"copylinesdown\",\n\t bindKey: bindKey(\"Alt-Shift-Down\", \"Command-Option-Down\"),\n\t exec: function(editor) { editor.copyLinesDown(); },\n\t scrollIntoView: \"cursor\"\n\t}, {\n\t name: \"movelinesdown\",\n\t bindKey: bindKey(\"Alt-Down\", \"Option-Down\"),\n\t exec: function(editor) { editor.moveLinesDown(); },\n\t scrollIntoView: \"cursor\"\n\t}, {\n\t name: \"del\",\n\t bindKey: bindKey(\"Delete\", \"Delete|Ctrl-D|Shift-Delete\"),\n\t exec: function(editor) { editor.remove(\"right\"); },\n\t multiSelectAction: \"forEach\",\n\t scrollIntoView: \"cursor\"\n\t}, {\n\t name: \"backspace\",\n\t bindKey: bindKey(\n\t \"Shift-Backspace|Backspace\",\n\t \"Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H\"\n\t ),\n\t exec: function(editor) { editor.remove(\"left\"); },\n\t multiSelectAction: \"forEach\",\n\t scrollIntoView: \"cursor\"\n\t}, {\n\t name: \"cut_or_delete\",\n\t bindKey: bindKey(\"Shift-Delete\", null),\n\t exec: function(editor) { \n\t if (editor.selection.isEmpty()) {\n\t editor.remove(\"left\");\n\t } else {\n\t return false;\n\t }\n\t },\n\t multiSelectAction: \"forEach\",\n\t scrollIntoView: \"cursor\"\n\t}, {\n\t name: \"removetolinestart\",\n\t bindKey: bindKey(\"Alt-Backspace\", \"Command-Backspace\"),\n\t exec: function(editor) { editor.removeToLineStart(); },\n\t multiSelectAction: \"forEach\",\n\t scrollIntoView: \"cursor\"\n\t}, {\n\t name: \"removetolineend\",\n\t bindKey: bindKey(\"Alt-Delete\", \"Ctrl-K\"),\n\t exec: function(editor) { editor.removeToLineEnd(); },\n\t multiSelectAction: \"forEach\",\n\t scrollIntoView: \"cursor\"\n\t}, {\n\t name: \"removewordleft\",\n\t bindKey: bindKey(\"Ctrl-Backspace\", \"Alt-Backspace|Ctrl-Alt-Backspace\"),\n\t exec: function(editor) { editor.removeWordLeft(); },\n\t multiSelectAction: \"forEach\",\n\t scrollIntoView: \"cursor\"\n\t}, {\n\t name: \"removewordright\",\n\t bindKey: bindKey(\"Ctrl-Delete\", \"Alt-Delete\"),\n\t exec: function(editor) { editor.removeWordRight(); },\n\t multiSelectAction: \"forEach\",\n\t scrollIntoView: \"cursor\"\n\t}, {\n\t name: \"outdent\",\n\t bindKey: bindKey(\"Shift-Tab\", \"Shift-Tab\"),\n\t exec: function(editor) { editor.blockOutdent(); },\n\t multiSelectAction: \"forEach\",\n\t scrollIntoView: \"selectionPart\"\n\t}, {\n\t name: \"indent\",\n\t bindKey: bindKey(\"Tab\", \"Tab\"),\n\t exec: function(editor) { editor.indent(); },\n\t multiSelectAction: \"forEach\",\n\t scrollIntoView: \"selectionPart\"\n\t}, {\n\t name: \"blockoutdent\",\n\t bindKey: bindKey(\"Ctrl-[\", \"Ctrl-[\"),\n\t exec: function(editor) { editor.blockOutdent(); },\n\t multiSelectAction: \"forEachLine\",\n\t scrollIntoView: \"selectionPart\"\n\t}, {\n\t name: \"blockindent\",\n\t bindKey: bindKey(\"Ctrl-]\", \"Ctrl-]\"),\n\t exec: function(editor) { editor.blockIndent(); },\n\t multiSelectAction: \"forEachLine\",\n\t scrollIntoView: \"selectionPart\"\n\t}, {\n\t name: \"insertstring\",\n\t exec: function(editor, str) { editor.insert(str); },\n\t multiSelectAction: \"forEach\",\n\t scrollIntoView: \"cursor\"\n\t}, {\n\t name: \"inserttext\",\n\t exec: function(editor, args) {\n\t editor.insert(lang.stringRepeat(args.text || \"\", args.times || 1));\n\t },\n\t multiSelectAction: \"forEach\",\n\t scrollIntoView: \"cursor\"\n\t}, {\n\t name: \"splitline\",\n\t bindKey: bindKey(null, \"Ctrl-O\"),\n\t exec: function(editor) { editor.splitLine(); },\n\t multiSelectAction: \"forEach\",\n\t scrollIntoView: \"cursor\"\n\t}, {\n\t name: \"transposeletters\",\n\t bindKey: bindKey(\"Ctrl-T\", \"Ctrl-T\"),\n\t exec: function(editor) { editor.transposeLetters(); },\n\t multiSelectAction: function(editor) {editor.transposeSelections(1); },\n\t scrollIntoView: \"cursor\"\n\t}, {\n\t name: \"touppercase\",\n\t bindKey: bindKey(\"Ctrl-U\", \"Ctrl-U\"),\n\t exec: function(editor) { editor.toUpperCase(); },\n\t multiSelectAction: \"forEach\",\n\t scrollIntoView: \"cursor\"\n\t}, {\n\t name: \"tolowercase\",\n\t bindKey: bindKey(\"Ctrl-Shift-U\", \"Ctrl-Shift-U\"),\n\t exec: function(editor) { editor.toLowerCase(); },\n\t multiSelectAction: \"forEach\",\n\t scrollIntoView: \"cursor\"\n\t}, {\n\t name: \"expandtoline\",\n\t bindKey: bindKey(\"Ctrl-Shift-L\", \"Command-Shift-L\"),\n\t exec: function(editor) {\n\t var range = editor.selection.getRange();\n\n\t range.start.column = range.end.column = 0;\n\t range.end.row++;\n\t editor.selection.setRange(range, false);\n\t },\n\t multiSelectAction: \"forEach\",\n\t scrollIntoView: \"cursor\",\n\t readOnly: true\n\t}, {\n\t name: \"joinlines\",\n\t bindKey: bindKey(null, null),\n\t exec: function(editor) {\n\t var isBackwards = editor.selection.isBackwards();\n\t var selectionStart = isBackwards ? editor.selection.getSelectionLead() : editor.selection.getSelectionAnchor();\n\t var selectionEnd = isBackwards ? editor.selection.getSelectionAnchor() : editor.selection.getSelectionLead();\n\t var firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length;\n\t var selectedText = editor.session.doc.getTextRange(editor.selection.getRange());\n\t var selectedCount = selectedText.replace(/\\n\\s*/, \" \").length;\n\t var insertLine = editor.session.doc.getLine(selectionStart.row);\n\n\t for (var i = selectionStart.row + 1; i <= selectionEnd.row + 1; i++) {\n\t var curLine = lang.stringTrimLeft(lang.stringTrimRight(editor.session.doc.getLine(i)));\n\t if (curLine.length !== 0) {\n\t curLine = \" \" + curLine;\n\t }\n\t insertLine += curLine;\n\t }\n\n\t if (selectionEnd.row + 1 < (editor.session.doc.getLength() - 1)) {\n\t insertLine += editor.session.doc.getNewLineCharacter();\n\t }\n\n\t editor.clearSelection();\n\t editor.session.doc.replace(new Range(selectionStart.row, 0, selectionEnd.row + 2, 0), insertLine);\n\n\t if (selectedCount > 0) {\n\t editor.selection.moveCursorTo(selectionStart.row, selectionStart.column);\n\t editor.selection.selectTo(selectionStart.row, selectionStart.column + selectedCount);\n\t } else {\n\t firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length > firstLineEndCol ? (firstLineEndCol + 1) : firstLineEndCol;\n\t editor.selection.moveCursorTo(selectionStart.row, firstLineEndCol);\n\t }\n\t },\n\t multiSelectAction: \"forEach\",\n\t readOnly: true\n\t}, {\n\t name: \"invertSelection\",\n\t bindKey: bindKey(null, null),\n\t exec: function(editor) {\n\t var endRow = editor.session.doc.getLength() - 1;\n\t var endCol = editor.session.doc.getLine(endRow).length;\n\t var ranges = editor.selection.rangeList.ranges;\n\t var newRanges = [];\n\t if (ranges.length < 1) {\n\t ranges = [editor.selection.getRange()];\n\t }\n\n\t for (var i = 0; i < ranges.length; i++) {\n\t if (i == (ranges.length - 1)) {\n\t if (!(ranges[i].end.row === endRow && ranges[i].end.column === endCol)) {\n\t newRanges.push(new Range(ranges[i].end.row, ranges[i].end.column, endRow, endCol));\n\t }\n\t }\n\n\t if (i === 0) {\n\t if (!(ranges[i].start.row === 0 && ranges[i].start.column === 0)) {\n\t newRanges.push(new Range(0, 0, ranges[i].start.row, ranges[i].start.column));\n\t }\n\t } else {\n\t newRanges.push(new Range(ranges[i-1].end.row, ranges[i-1].end.column, ranges[i].start.row, ranges[i].start.column));\n\t }\n\t }\n\n\t editor.exitMultiSelectMode();\n\t editor.clearSelection();\n\n\t for(var i = 0; i < newRanges.length; i++) {\n\t editor.selection.addRange(newRanges[i], false);\n\t }\n\t },\n\t readOnly: true,\n\t scrollIntoView: \"none\"\n\t}];\n\n\t});\n\n\tace.define(\"ace/editor\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/keyboard/textinput\",\"ace/mouse/mouse_handler\",\"ace/mouse/fold_handler\",\"ace/keyboard/keybinding\",\"ace/edit_session\",\"ace/search\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/commands/command_manager\",\"ace/commands/default_commands\",\"ace/config\",\"ace/token_iterator\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tacequire(\"./lib/fixoldbrowsers\");\n\n\tvar oop = acequire(\"./lib/oop\");\n\tvar dom = acequire(\"./lib/dom\");\n\tvar lang = acequire(\"./lib/lang\");\n\tvar useragent = acequire(\"./lib/useragent\");\n\tvar TextInput = acequire(\"./keyboard/textinput\").TextInput;\n\tvar MouseHandler = acequire(\"./mouse/mouse_handler\").MouseHandler;\n\tvar FoldHandler = acequire(\"./mouse/fold_handler\").FoldHandler;\n\tvar KeyBinding = acequire(\"./keyboard/keybinding\").KeyBinding;\n\tvar EditSession = acequire(\"./edit_session\").EditSession;\n\tvar Search = acequire(\"./search\").Search;\n\tvar Range = acequire(\"./range\").Range;\n\tvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\n\tvar CommandManager = acequire(\"./commands/command_manager\").CommandManager;\n\tvar defaultCommands = acequire(\"./commands/default_commands\").commands;\n\tvar config = acequire(\"./config\");\n\tvar TokenIterator = acequire(\"./token_iterator\").TokenIterator;\n\tvar Editor = function(renderer, session) {\n\t var container = renderer.getContainerElement();\n\t this.container = container;\n\t this.renderer = renderer;\n\n\t this.commands = new CommandManager(useragent.isMac ? \"mac\" : \"win\", defaultCommands);\n\t this.textInput = new TextInput(renderer.getTextAreaContainer(), this);\n\t this.renderer.textarea = this.textInput.getElement();\n\t this.keyBinding = new KeyBinding(this);\n\t this.$mouseHandler = new MouseHandler(this);\n\t new FoldHandler(this);\n\n\t this.$blockScrolling = 0;\n\t this.$search = new Search().set({\n\t wrap: true\n\t });\n\n\t this.$historyTracker = this.$historyTracker.bind(this);\n\t this.commands.on(\"exec\", this.$historyTracker);\n\n\t this.$initOperationListeners();\n\t \n\t this._$emitInputEvent = lang.delayedCall(function() {\n\t this._signal(\"input\", {});\n\t if (this.session && this.session.bgTokenizer)\n\t this.session.bgTokenizer.scheduleStart();\n\t }.bind(this));\n\t \n\t this.on(\"change\", function(_, _self) {\n\t _self._$emitInputEvent.schedule(31);\n\t });\n\n\t this.setSession(session || new EditSession(\"\"));\n\t config.resetOptions(this);\n\t config._signal(\"editor\", this);\n\t};\n\n\t(function(){\n\n\t oop.implement(this, EventEmitter);\n\n\t this.$initOperationListeners = function() {\n\t function last(a) {return a[a.length - 1]}\n\n\t this.selections = [];\n\t this.commands.on(\"exec\", this.startOperation.bind(this), true);\n\t this.commands.on(\"afterExec\", this.endOperation.bind(this), true);\n\n\t this.$opResetTimer = lang.delayedCall(this.endOperation.bind(this));\n\n\t this.on(\"change\", function() {\n\t this.curOp || this.startOperation();\n\t this.curOp.docChanged = true;\n\t }.bind(this), true);\n\n\t this.on(\"changeSelection\", function() {\n\t this.curOp || this.startOperation();\n\t this.curOp.selectionChanged = true;\n\t }.bind(this), true);\n\t };\n\n\t this.curOp = null;\n\t this.prevOp = {};\n\t this.startOperation = function(commadEvent) {\n\t if (this.curOp) {\n\t if (!commadEvent || this.curOp.command)\n\t return;\n\t this.prevOp = this.curOp;\n\t }\n\t if (!commadEvent) {\n\t this.previousCommand = null;\n\t commadEvent = {};\n\t }\n\n\t this.$opResetTimer.schedule();\n\t this.curOp = {\n\t command: commadEvent.command || {},\n\t args: commadEvent.args,\n\t scrollTop: this.renderer.scrollTop\n\t };\n\t if (this.curOp.command.name && this.curOp.command.scrollIntoView !== undefined)\n\t this.$blockScrolling++;\n\t };\n\n\t this.endOperation = function(e) {\n\t if (this.curOp) {\n\t if (e && e.returnValue === false)\n\t return this.curOp = null;\n\t this._signal(\"beforeEndOperation\");\n\t var command = this.curOp.command;\n\t if (command.name && this.$blockScrolling > 0)\n\t this.$blockScrolling--;\n\t var scrollIntoView = command && command.scrollIntoView;\n\t if (scrollIntoView) {\n\t switch (scrollIntoView) {\n\t case \"center-animate\":\n\t scrollIntoView = \"animate\";\n\t case \"center\":\n\t this.renderer.scrollCursorIntoView(null, 0.5);\n\t break;\n\t case \"animate\":\n\t case \"cursor\":\n\t this.renderer.scrollCursorIntoView();\n\t break;\n\t case \"selectionPart\":\n\t var range = this.selection.getRange();\n\t var config = this.renderer.layerConfig;\n\t if (range.start.row >= config.lastRow || range.end.row <= config.firstRow) {\n\t this.renderer.scrollSelectionIntoView(this.selection.anchor, this.selection.lead);\n\t }\n\t break;\n\t default:\n\t break;\n\t }\n\t if (scrollIntoView == \"animate\")\n\t this.renderer.animateScrolling(this.curOp.scrollTop);\n\t }\n\t \n\t this.prevOp = this.curOp;\n\t this.curOp = null;\n\t }\n\t };\n\t this.$mergeableCommands = [\"backspace\", \"del\", \"insertstring\"];\n\t this.$historyTracker = function(e) {\n\t if (!this.$mergeUndoDeltas)\n\t return;\n\n\t var prev = this.prevOp;\n\t var mergeableCommands = this.$mergeableCommands;\n\t var shouldMerge = prev.command && (e.command.name == prev.command.name);\n\t if (e.command.name == \"insertstring\") {\n\t var text = e.args;\n\t if (this.mergeNextCommand === undefined)\n\t this.mergeNextCommand = true;\n\n\t shouldMerge = shouldMerge\n\t && this.mergeNextCommand // previous command allows to coalesce with\n\t && (!/\\s/.test(text) || /\\s/.test(prev.args)); // previous insertion was of same type\n\n\t this.mergeNextCommand = true;\n\t } else {\n\t shouldMerge = shouldMerge\n\t && mergeableCommands.indexOf(e.command.name) !== -1; // the command is mergeable\n\t }\n\n\t if (\n\t this.$mergeUndoDeltas != \"always\"\n\t && Date.now() - this.sequenceStartTime > 2000\n\t ) {\n\t shouldMerge = false; // the sequence is too long\n\t }\n\n\t if (shouldMerge)\n\t this.session.mergeUndoDeltas = true;\n\t else if (mergeableCommands.indexOf(e.command.name) !== -1)\n\t this.sequenceStartTime = Date.now();\n\t };\n\t this.setKeyboardHandler = function(keyboardHandler, cb) {\n\t if (keyboardHandler && typeof keyboardHandler === \"string\") {\n\t this.$keybindingId = keyboardHandler;\n\t var _self = this;\n\t config.loadModule([\"keybinding\", keyboardHandler], function(module) {\n\t if (_self.$keybindingId == keyboardHandler)\n\t _self.keyBinding.setKeyboardHandler(module && module.handler);\n\t cb && cb();\n\t });\n\t } else {\n\t this.$keybindingId = null;\n\t this.keyBinding.setKeyboardHandler(keyboardHandler);\n\t cb && cb();\n\t }\n\t };\n\t this.getKeyboardHandler = function() {\n\t return this.keyBinding.getKeyboardHandler();\n\t };\n\t this.setSession = function(session) {\n\t if (this.session == session)\n\t return;\n\t if (this.curOp) this.endOperation();\n\t this.curOp = {};\n\n\t var oldSession = this.session;\n\t if (oldSession) {\n\t this.session.off(\"change\", this.$onDocumentChange);\n\t this.session.off(\"changeMode\", this.$onChangeMode);\n\t this.session.off(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n\t this.session.off(\"changeTabSize\", this.$onChangeTabSize);\n\t this.session.off(\"changeWrapLimit\", this.$onChangeWrapLimit);\n\t this.session.off(\"changeWrapMode\", this.$onChangeWrapMode);\n\t this.session.off(\"changeFold\", this.$onChangeFold);\n\t this.session.off(\"changeFrontMarker\", this.$onChangeFrontMarker);\n\t this.session.off(\"changeBackMarker\", this.$onChangeBackMarker);\n\t this.session.off(\"changeBreakpoint\", this.$onChangeBreakpoint);\n\t this.session.off(\"changeAnnotation\", this.$onChangeAnnotation);\n\t this.session.off(\"changeOverwrite\", this.$onCursorChange);\n\t this.session.off(\"changeScrollTop\", this.$onScrollTopChange);\n\t this.session.off(\"changeScrollLeft\", this.$onScrollLeftChange);\n\n\t var selection = this.session.getSelection();\n\t selection.off(\"changeCursor\", this.$onCursorChange);\n\t selection.off(\"changeSelection\", this.$onSelectionChange);\n\t }\n\n\t this.session = session;\n\t if (session) {\n\t this.$onDocumentChange = this.onDocumentChange.bind(this);\n\t session.on(\"change\", this.$onDocumentChange);\n\t this.renderer.setSession(session);\n\t \n\t this.$onChangeMode = this.onChangeMode.bind(this);\n\t session.on(\"changeMode\", this.$onChangeMode);\n\t \n\t this.$onTokenizerUpdate = this.onTokenizerUpdate.bind(this);\n\t session.on(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n\t \n\t this.$onChangeTabSize = this.renderer.onChangeTabSize.bind(this.renderer);\n\t session.on(\"changeTabSize\", this.$onChangeTabSize);\n\t \n\t this.$onChangeWrapLimit = this.onChangeWrapLimit.bind(this);\n\t session.on(\"changeWrapLimit\", this.$onChangeWrapLimit);\n\t \n\t this.$onChangeWrapMode = this.onChangeWrapMode.bind(this);\n\t session.on(\"changeWrapMode\", this.$onChangeWrapMode);\n\t \n\t this.$onChangeFold = this.onChangeFold.bind(this);\n\t session.on(\"changeFold\", this.$onChangeFold);\n\t \n\t this.$onChangeFrontMarker = this.onChangeFrontMarker.bind(this);\n\t this.session.on(\"changeFrontMarker\", this.$onChangeFrontMarker);\n\t \n\t this.$onChangeBackMarker = this.onChangeBackMarker.bind(this);\n\t this.session.on(\"changeBackMarker\", this.$onChangeBackMarker);\n\t \n\t this.$onChangeBreakpoint = this.onChangeBreakpoint.bind(this);\n\t this.session.on(\"changeBreakpoint\", this.$onChangeBreakpoint);\n\t \n\t this.$onChangeAnnotation = this.onChangeAnnotation.bind(this);\n\t this.session.on(\"changeAnnotation\", this.$onChangeAnnotation);\n\t \n\t this.$onCursorChange = this.onCursorChange.bind(this);\n\t this.session.on(\"changeOverwrite\", this.$onCursorChange);\n\t \n\t this.$onScrollTopChange = this.onScrollTopChange.bind(this);\n\t this.session.on(\"changeScrollTop\", this.$onScrollTopChange);\n\t \n\t this.$onScrollLeftChange = this.onScrollLeftChange.bind(this);\n\t this.session.on(\"changeScrollLeft\", this.$onScrollLeftChange);\n\t \n\t this.selection = session.getSelection();\n\t this.selection.on(\"changeCursor\", this.$onCursorChange);\n\t \n\t this.$onSelectionChange = this.onSelectionChange.bind(this);\n\t this.selection.on(\"changeSelection\", this.$onSelectionChange);\n\t \n\t this.onChangeMode();\n\t \n\t this.$blockScrolling += 1;\n\t this.onCursorChange();\n\t this.$blockScrolling -= 1;\n\t \n\t this.onScrollTopChange();\n\t this.onScrollLeftChange();\n\t this.onSelectionChange();\n\t this.onChangeFrontMarker();\n\t this.onChangeBackMarker();\n\t this.onChangeBreakpoint();\n\t this.onChangeAnnotation();\n\t this.session.getUseWrapMode() && this.renderer.adjustWrapLimit();\n\t this.renderer.updateFull();\n\t } else {\n\t this.selection = null;\n\t this.renderer.setSession(session);\n\t }\n\n\t this._signal(\"changeSession\", {\n\t session: session,\n\t oldSession: oldSession\n\t });\n\t \n\t this.curOp = null;\n\t \n\t oldSession && oldSession._signal(\"changeEditor\", {oldEditor: this});\n\t session && session._signal(\"changeEditor\", {editor: this});\n\t };\n\t this.getSession = function() {\n\t return this.session;\n\t };\n\t this.setValue = function(val, cursorPos) {\n\t this.session.doc.setValue(val);\n\n\t if (!cursorPos)\n\t this.selectAll();\n\t else if (cursorPos == 1)\n\t this.navigateFileEnd();\n\t else if (cursorPos == -1)\n\t this.navigateFileStart();\n\n\t return val;\n\t };\n\t this.getValue = function() {\n\t return this.session.getValue();\n\t };\n\t this.getSelection = function() {\n\t return this.selection;\n\t };\n\t this.resize = function(force) {\n\t this.renderer.onResize(force);\n\t };\n\t this.setTheme = function(theme, cb) {\n\t this.renderer.setTheme(theme, cb);\n\t };\n\t this.getTheme = function() {\n\t return this.renderer.getTheme();\n\t };\n\t this.setStyle = function(style) {\n\t this.renderer.setStyle(style);\n\t };\n\t this.unsetStyle = function(style) {\n\t this.renderer.unsetStyle(style);\n\t };\n\t this.getFontSize = function () {\n\t return this.getOption(\"fontSize\") ||\n\t dom.computedStyle(this.container, \"fontSize\");\n\t };\n\t this.setFontSize = function(size) {\n\t this.setOption(\"fontSize\", size);\n\t };\n\n\t this.$highlightBrackets = function() {\n\t if (this.session.$bracketHighlight) {\n\t this.session.removeMarker(this.session.$bracketHighlight);\n\t this.session.$bracketHighlight = null;\n\t }\n\n\t if (this.$highlightPending) {\n\t return;\n\t }\n\t var self = this;\n\t this.$highlightPending = true;\n\t setTimeout(function() {\n\t self.$highlightPending = false;\n\t var session = self.session;\n\t if (!session || !session.bgTokenizer) return;\n\t var pos = session.findMatchingBracket(self.getCursorPosition());\n\t if (pos) {\n\t var range = new Range(pos.row, pos.column, pos.row, pos.column + 1);\n\t } else if (session.$mode.getMatching) {\n\t var range = session.$mode.getMatching(self.session);\n\t }\n\t if (range)\n\t session.$bracketHighlight = session.addMarker(range, \"ace_bracket\", \"text\");\n\t }, 50);\n\t };\n\t this.$highlightTags = function() {\n\t if (this.$highlightTagPending)\n\t return;\n\t var self = this;\n\t this.$highlightTagPending = true;\n\t setTimeout(function() {\n\t self.$highlightTagPending = false;\n\t \n\t var session = self.session;\n\t if (!session || !session.bgTokenizer) return;\n\t \n\t var pos = self.getCursorPosition();\n\t var iterator = new TokenIterator(self.session, pos.row, pos.column);\n\t var token = iterator.getCurrentToken();\n\t \n\t if (!token || !/\\b(?:tag-open|tag-name)/.test(token.type)) {\n\t session.removeMarker(session.$tagHighlight);\n\t session.$tagHighlight = null;\n\t return;\n\t }\n\t \n\t if (token.type.indexOf(\"tag-open\") != -1) {\n\t token = iterator.stepForward();\n\t if (!token)\n\t return;\n\t }\n\t \n\t var tag = token.value;\n\t var depth = 0;\n\t var prevToken = iterator.stepBackward();\n\t \n\t if (prevToken.value == '<'){\n\t do {\n\t prevToken = token;\n\t token = iterator.stepForward();\n\t \n\t if (token && token.value === tag && token.type.indexOf('tag-name') !== -1) {\n\t if (prevToken.value === '<'){\n\t depth++;\n\t } else if (prevToken.value === '</'){\n\t depth--;\n\t }\n\t }\n\t \n\t } while (token && depth >= 0);\n\t } else {\n\t do {\n\t token = prevToken;\n\t prevToken = iterator.stepBackward();\n\t \n\t if (token && token.value === tag && token.type.indexOf('tag-name') !== -1) {\n\t if (prevToken.value === '<') {\n\t depth++;\n\t } else if (prevToken.value === '</') {\n\t depth--;\n\t }\n\t }\n\t } while (prevToken && depth <= 0);\n\t iterator.stepForward();\n\t }\n\t \n\t if (!token) {\n\t session.removeMarker(session.$tagHighlight);\n\t session.$tagHighlight = null;\n\t return;\n\t }\n\t \n\t var row = iterator.getCurrentTokenRow();\n\t var column = iterator.getCurrentTokenColumn();\n\t var range = new Range(row, column, row, column+token.value.length);\n\t var sbm = session.$backMarkers[session.$tagHighlight];\n\t if (session.$tagHighlight && sbm != undefined && range.compareRange(sbm.range) !== 0) {\n\t session.removeMarker(session.$tagHighlight);\n\t session.$tagHighlight = null;\n\t }\n\t \n\t if (range && !session.$tagHighlight)\n\t session.$tagHighlight = session.addMarker(range, \"ace_bracket\", \"text\");\n\t }, 50);\n\t };\n\t this.focus = function() {\n\t var _self = this;\n\t setTimeout(function() {\n\t _self.textInput.focus();\n\t });\n\t this.textInput.focus();\n\t };\n\t this.isFocused = function() {\n\t return this.textInput.isFocused();\n\t };\n\t this.blur = function() {\n\t this.textInput.blur();\n\t };\n\t this.onFocus = function(e) {\n\t if (this.$isFocused)\n\t return;\n\t this.$isFocused = true;\n\t this.renderer.showCursor();\n\t this.renderer.visualizeFocus();\n\t this._emit(\"focus\", e);\n\t };\n\t this.onBlur = function(e) {\n\t if (!this.$isFocused)\n\t return;\n\t this.$isFocused = false;\n\t this.renderer.hideCursor();\n\t this.renderer.visualizeBlur();\n\t this._emit(\"blur\", e);\n\t };\n\n\t this.$cursorChange = function() {\n\t this.renderer.updateCursor();\n\t };\n\t this.onDocumentChange = function(delta) {\n\t var wrap = this.session.$useWrapMode;\n\t var lastRow = (delta.start.row == delta.end.row ? delta.end.row : Infinity);\n\t this.renderer.updateLines(delta.start.row, lastRow, wrap);\n\n\t this._signal(\"change\", delta);\n\t this.$cursorChange();\n\t this.$updateHighlightActiveLine();\n\t };\n\n\t this.onTokenizerUpdate = function(e) {\n\t var rows = e.data;\n\t this.renderer.updateLines(rows.first, rows.last);\n\t };\n\n\n\t this.onScrollTopChange = function() {\n\t this.renderer.scrollToY(this.session.getScrollTop());\n\t };\n\n\t this.onScrollLeftChange = function() {\n\t this.renderer.scrollToX(this.session.getScrollLeft());\n\t };\n\t this.onCursorChange = function() {\n\t this.$cursorChange();\n\n\t if (!this.$blockScrolling) {\n\t config.warn(\"Automatically scrolling cursor into view after selection change\",\n\t \"this will be disabled in the next version\",\n\t \"set editor.$blockScrolling = Infinity to disable this message\"\n\t );\n\t this.renderer.scrollCursorIntoView();\n\t }\n\n\t this.$highlightBrackets();\n\t this.$highlightTags();\n\t this.$updateHighlightActiveLine();\n\t this._signal(\"changeSelection\");\n\t };\n\n\t this.$updateHighlightActiveLine = function() {\n\t var session = this.getSession();\n\n\t var highlight;\n\t if (this.$highlightActiveLine) {\n\t if ((this.$selectionStyle != \"line\" || !this.selection.isMultiLine()))\n\t highlight = this.getCursorPosition();\n\t if (this.renderer.$maxLines && this.session.getLength() === 1 && !(this.renderer.$minLines > 1))\n\t highlight = false;\n\t }\n\n\t if (session.$highlightLineMarker && !highlight) {\n\t session.removeMarker(session.$highlightLineMarker.id);\n\t session.$highlightLineMarker = null;\n\t } else if (!session.$highlightLineMarker && highlight) {\n\t var range = new Range(highlight.row, highlight.column, highlight.row, Infinity);\n\t range.id = session.addMarker(range, \"ace_active-line\", \"screenLine\");\n\t session.$highlightLineMarker = range;\n\t } else if (highlight) {\n\t session.$highlightLineMarker.start.row = highlight.row;\n\t session.$highlightLineMarker.end.row = highlight.row;\n\t session.$highlightLineMarker.start.column = highlight.column;\n\t session._signal(\"changeBackMarker\");\n\t }\n\t };\n\n\t this.onSelectionChange = function(e) {\n\t var session = this.session;\n\n\t if (session.$selectionMarker) {\n\t session.removeMarker(session.$selectionMarker);\n\t }\n\t session.$selectionMarker = null;\n\n\t if (!this.selection.isEmpty()) {\n\t var range = this.selection.getRange();\n\t var style = this.getSelectionStyle();\n\t session.$selectionMarker = session.addMarker(range, \"ace_selection\", style);\n\t } else {\n\t this.$updateHighlightActiveLine();\n\t }\n\n\t var re = this.$highlightSelectedWord && this.$getSelectionHighLightRegexp();\n\t this.session.highlight(re);\n\n\t this._signal(\"changeSelection\");\n\t };\n\n\t this.$getSelectionHighLightRegexp = function() {\n\t var session = this.session;\n\n\t var selection = this.getSelectionRange();\n\t if (selection.isEmpty() || selection.isMultiLine())\n\t return;\n\n\t var startOuter = selection.start.column - 1;\n\t var endOuter = selection.end.column + 1;\n\t var line = session.getLine(selection.start.row);\n\t var lineCols = line.length;\n\t var needle = line.substring(Math.max(startOuter, 0),\n\t Math.min(endOuter, lineCols));\n\t if ((startOuter >= 0 && /^[\\w\\d]/.test(needle)) ||\n\t (endOuter <= lineCols && /[\\w\\d]$/.test(needle)))\n\t return;\n\n\t needle = line.substring(selection.start.column, selection.end.column);\n\t if (!/^[\\w\\d]+$/.test(needle))\n\t return;\n\n\t var re = this.$search.$assembleRegExp({\n\t wholeWord: true,\n\t caseSensitive: true,\n\t needle: needle\n\t });\n\n\t return re;\n\t };\n\n\n\t this.onChangeFrontMarker = function() {\n\t this.renderer.updateFrontMarkers();\n\t };\n\n\t this.onChangeBackMarker = function() {\n\t this.renderer.updateBackMarkers();\n\t };\n\n\n\t this.onChangeBreakpoint = function() {\n\t this.renderer.updateBreakpoints();\n\t };\n\n\t this.onChangeAnnotation = function() {\n\t this.renderer.setAnnotations(this.session.getAnnotations());\n\t };\n\n\n\t this.onChangeMode = function(e) {\n\t this.renderer.updateText();\n\t this._emit(\"changeMode\", e);\n\t };\n\n\n\t this.onChangeWrapLimit = function() {\n\t this.renderer.updateFull();\n\t };\n\n\t this.onChangeWrapMode = function() {\n\t this.renderer.onResize(true);\n\t };\n\n\n\t this.onChangeFold = function() {\n\t this.$updateHighlightActiveLine();\n\t this.renderer.updateFull();\n\t };\n\t this.getSelectedText = function() {\n\t return this.session.getTextRange(this.getSelectionRange());\n\t };\n\t this.getCopyText = function() {\n\t var text = this.getSelectedText();\n\t this._signal(\"copy\", text);\n\t return text;\n\t };\n\t this.onCopy = function() {\n\t this.commands.exec(\"copy\", this);\n\t };\n\t this.onCut = function() {\n\t this.commands.exec(\"cut\", this);\n\t };\n\t this.onPaste = function(text, event) {\n\t var e = {text: text, event: event};\n\t this.commands.exec(\"paste\", this, e);\n\t };\n\t \n\t this.$handlePaste = function(e) {\n\t if (typeof e == \"string\") \n\t e = {text: e};\n\t this._signal(\"paste\", e);\n\t var text = e.text;\n\t if (!this.inMultiSelectMode || this.inVirtualSelectionMode) {\n\t this.insert(text);\n\t } else {\n\t var lines = text.split(/\\r\\n|\\r|\\n/);\n\t var ranges = this.selection.rangeList.ranges;\n\t \n\t if (lines.length > ranges.length || lines.length < 2 || !lines[1])\n\t return this.commands.exec(\"insertstring\", this, text);\n\t \n\t for (var i = ranges.length; i--;) {\n\t var range = ranges[i];\n\t if (!range.isEmpty())\n\t this.session.remove(range);\n\t \n\t this.session.insert(range.start, lines[i]);\n\t }\n\t }\n\t };\n\n\t this.execCommand = function(command, args) {\n\t return this.commands.exec(command, this, args);\n\t };\n\t this.insert = function(text, pasted) {\n\t var session = this.session;\n\t var mode = session.getMode();\n\t var cursor = this.getCursorPosition();\n\n\t if (this.getBehavioursEnabled() && !pasted) {\n\t var transform = mode.transformAction(session.getState(cursor.row), 'insertion', this, session, text);\n\t if (transform) {\n\t if (text !== transform.text) {\n\t this.session.mergeUndoDeltas = false;\n\t this.$mergeNextCommand = false;\n\t }\n\t text = transform.text;\n\n\t }\n\t }\n\t \n\t if (text == \"\\t\")\n\t text = this.session.getTabString();\n\t if (!this.selection.isEmpty()) {\n\t var range = this.getSelectionRange();\n\t cursor = this.session.remove(range);\n\t this.clearSelection();\n\t }\n\t else if (this.session.getOverwrite()) {\n\t var range = new Range.fromPoints(cursor, cursor);\n\t range.end.column += text.length;\n\t this.session.remove(range);\n\t }\n\n\t if (text == \"\\n\" || text == \"\\r\\n\") {\n\t var line = session.getLine(cursor.row);\n\t if (cursor.column > line.search(/\\S|$/)) {\n\t var d = line.substr(cursor.column).search(/\\S|$/);\n\t session.doc.removeInLine(cursor.row, cursor.column, cursor.column + d);\n\t }\n\t }\n\t this.clearSelection();\n\n\t var start = cursor.column;\n\t var lineState = session.getState(cursor.row);\n\t var line = session.getLine(cursor.row);\n\t var shouldOutdent = mode.checkOutdent(lineState, line, text);\n\t var end = session.insert(cursor, text);\n\n\t if (transform && transform.selection) {\n\t if (transform.selection.length == 2) { // Transform relative to the current column\n\t this.selection.setSelectionRange(\n\t new Range(cursor.row, start + transform.selection[0],\n\t cursor.row, start + transform.selection[1]));\n\t } else { // Transform relative to the current row.\n\t this.selection.setSelectionRange(\n\t new Range(cursor.row + transform.selection[0],\n\t transform.selection[1],\n\t cursor.row + transform.selection[2],\n\t transform.selection[3]));\n\t }\n\t }\n\n\t if (session.getDocument().isNewLine(text)) {\n\t var lineIndent = mode.getNextLineIndent(lineState, line.slice(0, cursor.column), session.getTabString());\n\n\t session.insert({row: cursor.row+1, column: 0}, lineIndent);\n\t }\n\t if (shouldOutdent)\n\t mode.autoOutdent(lineState, session, cursor.row);\n\t };\n\n\t this.onTextInput = function(text) {\n\t this.keyBinding.onTextInput(text);\n\t };\n\n\t this.onCommandKey = function(e, hashId, keyCode) {\n\t this.keyBinding.onCommandKey(e, hashId, keyCode);\n\t };\n\t this.setOverwrite = function(overwrite) {\n\t this.session.setOverwrite(overwrite);\n\t };\n\t this.getOverwrite = function() {\n\t return this.session.getOverwrite();\n\t };\n\t this.toggleOverwrite = function() {\n\t this.session.toggleOverwrite();\n\t };\n\t this.setScrollSpeed = function(speed) {\n\t this.setOption(\"scrollSpeed\", speed);\n\t };\n\t this.getScrollSpeed = function() {\n\t return this.getOption(\"scrollSpeed\");\n\t };\n\t this.setDragDelay = function(dragDelay) {\n\t this.setOption(\"dragDelay\", dragDelay);\n\t };\n\t this.getDragDelay = function() {\n\t return this.getOption(\"dragDelay\");\n\t };\n\t this.setSelectionStyle = function(val) {\n\t this.setOption(\"selectionStyle\", val);\n\t };\n\t this.getSelectionStyle = function() {\n\t return this.getOption(\"selectionStyle\");\n\t };\n\t this.setHighlightActiveLine = function(shouldHighlight) {\n\t this.setOption(\"highlightActiveLine\", shouldHighlight);\n\t };\n\t this.getHighlightActiveLine = function() {\n\t return this.getOption(\"highlightActiveLine\");\n\t };\n\t this.setHighlightGutterLine = function(shouldHighlight) {\n\t this.setOption(\"highlightGutterLine\", shouldHighlight);\n\t };\n\n\t this.getHighlightGutterLine = function() {\n\t return this.getOption(\"highlightGutterLine\");\n\t };\n\t this.setHighlightSelectedWord = function(shouldHighlight) {\n\t this.setOption(\"highlightSelectedWord\", shouldHighlight);\n\t };\n\t this.getHighlightSelectedWord = function() {\n\t return this.$highlightSelectedWord;\n\t };\n\n\t this.setAnimatedScroll = function(shouldAnimate){\n\t this.renderer.setAnimatedScroll(shouldAnimate);\n\t };\n\n\t this.getAnimatedScroll = function(){\n\t return this.renderer.getAnimatedScroll();\n\t };\n\t this.setShowInvisibles = function(showInvisibles) {\n\t this.renderer.setShowInvisibles(showInvisibles);\n\t };\n\t this.getShowInvisibles = function() {\n\t return this.renderer.getShowInvisibles();\n\t };\n\n\t this.setDisplayIndentGuides = function(display) {\n\t this.renderer.setDisplayIndentGuides(display);\n\t };\n\n\t this.getDisplayIndentGuides = function() {\n\t return this.renderer.getDisplayIndentGuides();\n\t };\n\t this.setShowPrintMargin = function(showPrintMargin) {\n\t this.renderer.setShowPrintMargin(showPrintMargin);\n\t };\n\t this.getShowPrintMargin = function() {\n\t return this.renderer.getShowPrintMargin();\n\t };\n\t this.setPrintMarginColumn = function(showPrintMargin) {\n\t this.renderer.setPrintMarginColumn(showPrintMargin);\n\t };\n\t this.getPrintMarginColumn = function() {\n\t return this.renderer.getPrintMarginColumn();\n\t };\n\t this.setReadOnly = function(readOnly) {\n\t this.setOption(\"readOnly\", readOnly);\n\t };\n\t this.getReadOnly = function() {\n\t return this.getOption(\"readOnly\");\n\t };\n\t this.setBehavioursEnabled = function (enabled) {\n\t this.setOption(\"behavioursEnabled\", enabled);\n\t };\n\t this.getBehavioursEnabled = function () {\n\t return this.getOption(\"behavioursEnabled\");\n\t };\n\t this.setWrapBehavioursEnabled = function (enabled) {\n\t this.setOption(\"wrapBehavioursEnabled\", enabled);\n\t };\n\t this.getWrapBehavioursEnabled = function () {\n\t return this.getOption(\"wrapBehavioursEnabled\");\n\t };\n\t this.setShowFoldWidgets = function(show) {\n\t this.setOption(\"showFoldWidgets\", show);\n\n\t };\n\t this.getShowFoldWidgets = function() {\n\t return this.getOption(\"showFoldWidgets\");\n\t };\n\n\t this.setFadeFoldWidgets = function(fade) {\n\t this.setOption(\"fadeFoldWidgets\", fade);\n\t };\n\n\t this.getFadeFoldWidgets = function() {\n\t return this.getOption(\"fadeFoldWidgets\");\n\t };\n\t this.remove = function(dir) {\n\t if (this.selection.isEmpty()){\n\t if (dir == \"left\")\n\t this.selection.selectLeft();\n\t else\n\t this.selection.selectRight();\n\t }\n\n\t var range = this.getSelectionRange();\n\t if (this.getBehavioursEnabled()) {\n\t var session = this.session;\n\t var state = session.getState(range.start.row);\n\t var new_range = session.getMode().transformAction(state, 'deletion', this, session, range);\n\n\t if (range.end.column === 0) {\n\t var text = session.getTextRange(range);\n\t if (text[text.length - 1] == \"\\n\") {\n\t var line = session.getLine(range.end.row);\n\t if (/^\\s+$/.test(line)) {\n\t range.end.column = line.length;\n\t }\n\t }\n\t }\n\t if (new_range)\n\t range = new_range;\n\t }\n\n\t this.session.remove(range);\n\t this.clearSelection();\n\t };\n\t this.removeWordRight = function() {\n\t if (this.selection.isEmpty())\n\t this.selection.selectWordRight();\n\n\t this.session.remove(this.getSelectionRange());\n\t this.clearSelection();\n\t };\n\t this.removeWordLeft = function() {\n\t if (this.selection.isEmpty())\n\t this.selection.selectWordLeft();\n\n\t this.session.remove(this.getSelectionRange());\n\t this.clearSelection();\n\t };\n\t this.removeToLineStart = function() {\n\t if (this.selection.isEmpty())\n\t this.selection.selectLineStart();\n\n\t this.session.remove(this.getSelectionRange());\n\t this.clearSelection();\n\t };\n\t this.removeToLineEnd = function() {\n\t if (this.selection.isEmpty())\n\t this.selection.selectLineEnd();\n\n\t var range = this.getSelectionRange();\n\t if (range.start.column == range.end.column && range.start.row == range.end.row) {\n\t range.end.column = 0;\n\t range.end.row++;\n\t }\n\n\t this.session.remove(range);\n\t this.clearSelection();\n\t };\n\t this.splitLine = function() {\n\t if (!this.selection.isEmpty()) {\n\t this.session.remove(this.getSelectionRange());\n\t this.clearSelection();\n\t }\n\n\t var cursor = this.getCursorPosition();\n\t this.insert(\"\\n\");\n\t this.moveCursorToPosition(cursor);\n\t };\n\t this.transposeLetters = function() {\n\t if (!this.selection.isEmpty()) {\n\t return;\n\t }\n\n\t var cursor = this.getCursorPosition();\n\t var column = cursor.column;\n\t if (column === 0)\n\t return;\n\n\t var line = this.session.getLine(cursor.row);\n\t var swap, range;\n\t if (column < line.length) {\n\t swap = line.charAt(column) + line.charAt(column-1);\n\t range = new Range(cursor.row, column-1, cursor.row, column+1);\n\t }\n\t else {\n\t swap = line.charAt(column-1) + line.charAt(column-2);\n\t range = new Range(cursor.row, column-2, cursor.row, column);\n\t }\n\t this.session.replace(range, swap);\n\t };\n\t this.toLowerCase = function() {\n\t var originalRange = this.getSelectionRange();\n\t if (this.selection.isEmpty()) {\n\t this.selection.selectWord();\n\t }\n\n\t var range = this.getSelectionRange();\n\t var text = this.session.getTextRange(range);\n\t this.session.replace(range, text.toLowerCase());\n\t this.selection.setSelectionRange(originalRange);\n\t };\n\t this.toUpperCase = function() {\n\t var originalRange = this.getSelectionRange();\n\t if (this.selection.isEmpty()) {\n\t this.selection.selectWord();\n\t }\n\n\t var range = this.getSelectionRange();\n\t var text = this.session.getTextRange(range);\n\t this.session.replace(range, text.toUpperCase());\n\t this.selection.setSelectionRange(originalRange);\n\t };\n\t this.indent = function() {\n\t var session = this.session;\n\t var range = this.getSelectionRange();\n\n\t if (range.start.row < range.end.row) {\n\t var rows = this.$getSelectedRows();\n\t session.indentRows(rows.first, rows.last, \"\\t\");\n\t return;\n\t } else if (range.start.column < range.end.column) {\n\t var text = session.getTextRange(range);\n\t if (!/^\\s+$/.test(text)) {\n\t var rows = this.$getSelectedRows();\n\t session.indentRows(rows.first, rows.last, \"\\t\");\n\t return;\n\t }\n\t }\n\t \n\t var line = session.getLine(range.start.row);\n\t var position = range.start;\n\t var size = session.getTabSize();\n\t var column = session.documentToScreenColumn(position.row, position.column);\n\n\t if (this.session.getUseSoftTabs()) {\n\t var count = (size - column % size);\n\t var indentString = lang.stringRepeat(\" \", count);\n\t } else {\n\t var count = column % size;\n\t while (line[range.start.column - 1] == \" \" && count) {\n\t range.start.column--;\n\t count--;\n\t }\n\t this.selection.setSelectionRange(range);\n\t indentString = \"\\t\";\n\t }\n\t return this.insert(indentString);\n\t };\n\t this.blockIndent = function() {\n\t var rows = this.$getSelectedRows();\n\t this.session.indentRows(rows.first, rows.last, \"\\t\");\n\t };\n\t this.blockOutdent = function() {\n\t var selection = this.session.getSelection();\n\t this.session.outdentRows(selection.getRange());\n\t };\n\t this.sortLines = function() {\n\t var rows = this.$getSelectedRows();\n\t var session = this.session;\n\n\t var lines = [];\n\t for (i = rows.first; i <= rows.last; i++)\n\t lines.push(session.getLine(i));\n\n\t lines.sort(function(a, b) {\n\t if (a.toLowerCase() < b.toLowerCase()) return -1;\n\t if (a.toLowerCase() > b.toLowerCase()) return 1;\n\t return 0;\n\t });\n\n\t var deleteRange = new Range(0, 0, 0, 0);\n\t for (var i = rows.first; i <= rows.last; i++) {\n\t var line = session.getLine(i);\n\t deleteRange.start.row = i;\n\t deleteRange.end.row = i;\n\t deleteRange.end.column = line.length;\n\t session.replace(deleteRange, lines[i-rows.first]);\n\t }\n\t };\n\t this.toggleCommentLines = function() {\n\t var state = this.session.getState(this.getCursorPosition().row);\n\t var rows = this.$getSelectedRows();\n\t this.session.getMode().toggleCommentLines(state, this.session, rows.first, rows.last);\n\t };\n\n\t this.toggleBlockComment = function() {\n\t var cursor = this.getCursorPosition();\n\t var state = this.session.getState(cursor.row);\n\t var range = this.getSelectionRange();\n\t this.session.getMode().toggleBlockComment(state, this.session, range, cursor);\n\t };\n\t this.getNumberAt = function(row, column) {\n\t var _numberRx = /[\\-]?[0-9]+(?:\\.[0-9]+)?/g;\n\t _numberRx.lastIndex = 0;\n\n\t var s = this.session.getLine(row);\n\t while (_numberRx.lastIndex < column) {\n\t var m = _numberRx.exec(s);\n\t if(m.index <= column && m.index+m[0].length >= column){\n\t var number = {\n\t value: m[0],\n\t start: m.index,\n\t end: m.index+m[0].length\n\t };\n\t return number;\n\t }\n\t }\n\t return null;\n\t };\n\t this.modifyNumber = function(amount) {\n\t var row = this.selection.getCursor().row;\n\t var column = this.selection.getCursor().column;\n\t var charRange = new Range(row, column-1, row, column);\n\n\t var c = this.session.getTextRange(charRange);\n\t if (!isNaN(parseFloat(c)) && isFinite(c)) {\n\t var nr = this.getNumberAt(row, column);\n\t if (nr) {\n\t var fp = nr.value.indexOf(\".\") >= 0 ? nr.start + nr.value.indexOf(\".\") + 1 : nr.end;\n\t var decimals = nr.start + nr.value.length - fp;\n\n\t var t = parseFloat(nr.value);\n\t t *= Math.pow(10, decimals);\n\n\n\t if(fp !== nr.end && column < fp){\n\t amount *= Math.pow(10, nr.end - column - 1);\n\t } else {\n\t amount *= Math.pow(10, nr.end - column);\n\t }\n\n\t t += amount;\n\t t /= Math.pow(10, decimals);\n\t var nnr = t.toFixed(decimals);\n\t var replaceRange = new Range(row, nr.start, row, nr.end);\n\t this.session.replace(replaceRange, nnr);\n\t this.moveCursorTo(row, Math.max(nr.start +1, column + nnr.length - nr.value.length));\n\n\t }\n\t }\n\t };\n\t this.removeLines = function() {\n\t var rows = this.$getSelectedRows();\n\t this.session.removeFullLines(rows.first, rows.last);\n\t this.clearSelection();\n\t };\n\n\t this.duplicateSelection = function() {\n\t var sel = this.selection;\n\t var doc = this.session;\n\t var range = sel.getRange();\n\t var reverse = sel.isBackwards();\n\t if (range.isEmpty()) {\n\t var row = range.start.row;\n\t doc.duplicateLines(row, row);\n\t } else {\n\t var point = reverse ? range.start : range.end;\n\t var endPoint = doc.insert(point, doc.getTextRange(range), false);\n\t range.start = point;\n\t range.end = endPoint;\n\n\t sel.setSelectionRange(range, reverse);\n\t }\n\t };\n\t this.moveLinesDown = function() {\n\t this.$moveLines(1, false);\n\t };\n\t this.moveLinesUp = function() {\n\t this.$moveLines(-1, false);\n\t };\n\t this.moveText = function(range, toPosition, copy) {\n\t return this.session.moveText(range, toPosition, copy);\n\t };\n\t this.copyLinesUp = function() {\n\t this.$moveLines(-1, true);\n\t };\n\t this.copyLinesDown = function() {\n\t this.$moveLines(1, true);\n\t };\n\t this.$moveLines = function(dir, copy) {\n\t var rows, moved;\n\t var selection = this.selection;\n\t if (!selection.inMultiSelectMode || this.inVirtualSelectionMode) {\n\t var range = selection.toOrientedRange();\n\t rows = this.$getSelectedRows(range);\n\t moved = this.session.$moveLines(rows.first, rows.last, copy ? 0 : dir);\n\t if (copy && dir == -1) moved = 0;\n\t range.moveBy(moved, 0);\n\t selection.fromOrientedRange(range);\n\t } else {\n\t var ranges = selection.rangeList.ranges;\n\t selection.rangeList.detach(this.session);\n\t this.inVirtualSelectionMode = true;\n\t \n\t var diff = 0;\n\t var totalDiff = 0;\n\t var l = ranges.length;\n\t for (var i = 0; i < l; i++) {\n\t var rangeIndex = i;\n\t ranges[i].moveBy(diff, 0);\n\t rows = this.$getSelectedRows(ranges[i]);\n\t var first = rows.first;\n\t var last = rows.last;\n\t while (++i < l) {\n\t if (totalDiff) ranges[i].moveBy(totalDiff, 0);\n\t var subRows = this.$getSelectedRows(ranges[i]);\n\t if (copy && subRows.first != last)\n\t break;\n\t else if (!copy && subRows.first > last + 1)\n\t break;\n\t last = subRows.last;\n\t }\n\t i--;\n\t diff = this.session.$moveLines(first, last, copy ? 0 : dir);\n\t if (copy && dir == -1) rangeIndex = i + 1;\n\t while (rangeIndex <= i) {\n\t ranges[rangeIndex].moveBy(diff, 0);\n\t rangeIndex++;\n\t }\n\t if (!copy) diff = 0;\n\t totalDiff += diff;\n\t }\n\t \n\t selection.fromOrientedRange(selection.ranges[0]);\n\t selection.rangeList.attach(this.session);\n\t this.inVirtualSelectionMode = false;\n\t }\n\t };\n\t this.$getSelectedRows = function(range) {\n\t range = (range || this.getSelectionRange()).collapseRows();\n\n\t return {\n\t first: this.session.getRowFoldStart(range.start.row),\n\t last: this.session.getRowFoldEnd(range.end.row)\n\t };\n\t };\n\n\t this.onCompositionStart = function(text) {\n\t this.renderer.showComposition(this.getCursorPosition());\n\t };\n\n\t this.onCompositionUpdate = function(text) {\n\t this.renderer.setCompositionText(text);\n\t };\n\n\t this.onCompositionEnd = function() {\n\t this.renderer.hideComposition();\n\t };\n\t this.getFirstVisibleRow = function() {\n\t return this.renderer.getFirstVisibleRow();\n\t };\n\t this.getLastVisibleRow = function() {\n\t return this.renderer.getLastVisibleRow();\n\t };\n\t this.isRowVisible = function(row) {\n\t return (row >= this.getFirstVisibleRow() && row <= this.getLastVisibleRow());\n\t };\n\t this.isRowFullyVisible = function(row) {\n\t return (row >= this.renderer.getFirstFullyVisibleRow() && row <= this.renderer.getLastFullyVisibleRow());\n\t };\n\t this.$getVisibleRowCount = function() {\n\t return this.renderer.getScrollBottomRow() - this.renderer.getScrollTopRow() + 1;\n\t };\n\n\t this.$moveByPage = function(dir, select) {\n\t var renderer = this.renderer;\n\t var config = this.renderer.layerConfig;\n\t var rows = dir * Math.floor(config.height / config.lineHeight);\n\n\t this.$blockScrolling++;\n\t if (select === true) {\n\t this.selection.$moveSelection(function(){\n\t this.moveCursorBy(rows, 0);\n\t });\n\t } else if (select === false) {\n\t this.selection.moveCursorBy(rows, 0);\n\t this.selection.clearSelection();\n\t }\n\t this.$blockScrolling--;\n\n\t var scrollTop = renderer.scrollTop;\n\n\t renderer.scrollBy(0, rows * config.lineHeight);\n\t if (select != null)\n\t renderer.scrollCursorIntoView(null, 0.5);\n\n\t renderer.animateScrolling(scrollTop);\n\t };\n\t this.selectPageDown = function() {\n\t this.$moveByPage(1, true);\n\t };\n\t this.selectPageUp = function() {\n\t this.$moveByPage(-1, true);\n\t };\n\t this.gotoPageDown = function() {\n\t this.$moveByPage(1, false);\n\t };\n\t this.gotoPageUp = function() {\n\t this.$moveByPage(-1, false);\n\t };\n\t this.scrollPageDown = function() {\n\t this.$moveByPage(1);\n\t };\n\t this.scrollPageUp = function() {\n\t this.$moveByPage(-1);\n\t };\n\t this.scrollToRow = function(row) {\n\t this.renderer.scrollToRow(row);\n\t };\n\t this.scrollToLine = function(line, center, animate, callback) {\n\t this.renderer.scrollToLine(line, center, animate, callback);\n\t };\n\t this.centerSelection = function() {\n\t var range = this.getSelectionRange();\n\t var pos = {\n\t row: Math.floor(range.start.row + (range.end.row - range.start.row) / 2),\n\t column: Math.floor(range.start.column + (range.end.column - range.start.column) / 2)\n\t };\n\t this.renderer.alignCursor(pos, 0.5);\n\t };\n\t this.getCursorPosition = function() {\n\t return this.selection.getCursor();\n\t };\n\t this.getCursorPositionScreen = function() {\n\t return this.session.documentToScreenPosition(this.getCursorPosition());\n\t };\n\t this.getSelectionRange = function() {\n\t return this.selection.getRange();\n\t };\n\t this.selectAll = function() {\n\t this.$blockScrolling += 1;\n\t this.selection.selectAll();\n\t this.$blockScrolling -= 1;\n\t };\n\t this.clearSelection = function() {\n\t this.selection.clearSelection();\n\t };\n\t this.moveCursorTo = function(row, column) {\n\t this.selection.moveCursorTo(row, column);\n\t };\n\t this.moveCursorToPosition = function(pos) {\n\t this.selection.moveCursorToPosition(pos);\n\t };\n\t this.jumpToMatching = function(select, expand) {\n\t var cursor = this.getCursorPosition();\n\t var iterator = new TokenIterator(this.session, cursor.row, cursor.column);\n\t var prevToken = iterator.getCurrentToken();\n\t var token = prevToken || iterator.stepForward();\n\n\t if (!token) return;\n\t var matchType;\n\t var found = false;\n\t var depth = {};\n\t var i = cursor.column - token.start;\n\t var bracketType;\n\t var brackets = {\n\t \")\": \"(\",\n\t \"(\": \"(\",\n\t \"]\": \"[\",\n\t \"[\": \"[\",\n\t \"{\": \"{\",\n\t \"}\": \"{\"\n\t };\n\t \n\t do {\n\t if (token.value.match(/[{}()\\[\\]]/g)) {\n\t for (; i < token.value.length && !found; i++) {\n\t if (!brackets[token.value[i]]) {\n\t continue;\n\t }\n\n\t bracketType = brackets[token.value[i]] + '.' + token.type.replace(\"rparen\", \"lparen\");\n\n\t if (isNaN(depth[bracketType])) {\n\t depth[bracketType] = 0;\n\t }\n\n\t switch (token.value[i]) {\n\t case '(':\n\t case '[':\n\t case '{':\n\t depth[bracketType]++;\n\t break;\n\t case ')':\n\t case ']':\n\t case '}':\n\t depth[bracketType]--;\n\n\t if (depth[bracketType] === -1) {\n\t matchType = 'bracket';\n\t found = true;\n\t }\n\t break;\n\t }\n\t }\n\t }\n\t else if (token && token.type.indexOf('tag-name') !== -1) {\n\t if (isNaN(depth[token.value])) {\n\t depth[token.value] = 0;\n\t }\n\t \n\t if (prevToken.value === '<') {\n\t depth[token.value]++;\n\t }\n\t else if (prevToken.value === '</') {\n\t depth[token.value]--;\n\t }\n\t \n\t if (depth[token.value] === -1) {\n\t matchType = 'tag';\n\t found = true;\n\t }\n\t }\n\n\t if (!found) {\n\t prevToken = token;\n\t token = iterator.stepForward();\n\t i = 0;\n\t }\n\t } while (token && !found);\n\t if (!matchType)\n\t return;\n\n\t var range, pos;\n\t if (matchType === 'bracket') {\n\t range = this.session.getBracketRange(cursor);\n\t if (!range) {\n\t range = new Range(\n\t iterator.getCurrentTokenRow(),\n\t iterator.getCurrentTokenColumn() + i - 1,\n\t iterator.getCurrentTokenRow(),\n\t iterator.getCurrentTokenColumn() + i - 1\n\t );\n\t pos = range.start;\n\t if (expand || pos.row === cursor.row && Math.abs(pos.column - cursor.column) < 2)\n\t range = this.session.getBracketRange(pos);\n\t }\n\t }\n\t else if (matchType === 'tag') {\n\t if (token && token.type.indexOf('tag-name') !== -1) \n\t var tag = token.value;\n\t else\n\t return;\n\n\t range = new Range(\n\t iterator.getCurrentTokenRow(),\n\t iterator.getCurrentTokenColumn() - 2,\n\t iterator.getCurrentTokenRow(),\n\t iterator.getCurrentTokenColumn() - 2\n\t );\n\t if (range.compare(cursor.row, cursor.column) === 0) {\n\t found = false;\n\t do {\n\t token = prevToken;\n\t prevToken = iterator.stepBackward();\n\t \n\t if (prevToken) {\n\t if (prevToken.type.indexOf('tag-close') !== -1) {\n\t range.setEnd(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1);\n\t }\n\n\t if (token.value === tag && token.type.indexOf('tag-name') !== -1) {\n\t if (prevToken.value === '<') {\n\t depth[tag]++;\n\t }\n\t else if (prevToken.value === '</') {\n\t depth[tag]--;\n\t }\n\t \n\t if (depth[tag] === 0)\n\t found = true;\n\t }\n\t }\n\t } while (prevToken && !found);\n\t }\n\t if (token && token.type.indexOf('tag-name')) {\n\t pos = range.start;\n\t if (pos.row == cursor.row && Math.abs(pos.column - cursor.column) < 2)\n\t pos = range.end;\n\t }\n\t }\n\n\t pos = range && range.cursor || pos;\n\t if (pos) {\n\t if (select) {\n\t if (range && expand) {\n\t this.selection.setRange(range);\n\t } else if (range && range.isEqual(this.getSelectionRange())) {\n\t this.clearSelection();\n\t } else {\n\t this.selection.selectTo(pos.row, pos.column);\n\t }\n\t } else {\n\t this.selection.moveTo(pos.row, pos.column);\n\t }\n\t }\n\t };\n\t this.gotoLine = function(lineNumber, column, animate) {\n\t this.selection.clearSelection();\n\t this.session.unfold({row: lineNumber - 1, column: column || 0});\n\n\t this.$blockScrolling += 1;\n\t this.exitMultiSelectMode && this.exitMultiSelectMode();\n\t this.moveCursorTo(lineNumber - 1, column || 0);\n\t this.$blockScrolling -= 1;\n\n\t if (!this.isRowFullyVisible(lineNumber - 1))\n\t this.scrollToLine(lineNumber - 1, true, animate);\n\t };\n\t this.navigateTo = function(row, column) {\n\t this.selection.moveTo(row, column);\n\t };\n\t this.navigateUp = function(times) {\n\t if (this.selection.isMultiLine() && !this.selection.isBackwards()) {\n\t var selectionStart = this.selection.anchor.getPosition();\n\t return this.moveCursorToPosition(selectionStart);\n\t }\n\t this.selection.clearSelection();\n\t this.selection.moveCursorBy(-times || -1, 0);\n\t };\n\t this.navigateDown = function(times) {\n\t if (this.selection.isMultiLine() && this.selection.isBackwards()) {\n\t var selectionEnd = this.selection.anchor.getPosition();\n\t return this.moveCursorToPosition(selectionEnd);\n\t }\n\t this.selection.clearSelection();\n\t this.selection.moveCursorBy(times || 1, 0);\n\t };\n\t this.navigateLeft = function(times) {\n\t if (!this.selection.isEmpty()) {\n\t var selectionStart = this.getSelectionRange().start;\n\t this.moveCursorToPosition(selectionStart);\n\t }\n\t else {\n\t times = times || 1;\n\t while (times--) {\n\t this.selection.moveCursorLeft();\n\t }\n\t }\n\t this.clearSelection();\n\t };\n\t this.navigateRight = function(times) {\n\t if (!this.selection.isEmpty()) {\n\t var selectionEnd = this.getSelectionRange().end;\n\t this.moveCursorToPosition(selectionEnd);\n\t }\n\t else {\n\t times = times || 1;\n\t while (times--) {\n\t this.selection.moveCursorRight();\n\t }\n\t }\n\t this.clearSelection();\n\t };\n\t this.navigateLineStart = function() {\n\t this.selection.moveCursorLineStart();\n\t this.clearSelection();\n\t };\n\t this.navigateLineEnd = function() {\n\t this.selection.moveCursorLineEnd();\n\t this.clearSelection();\n\t };\n\t this.navigateFileEnd = function() {\n\t this.selection.moveCursorFileEnd();\n\t this.clearSelection();\n\t };\n\t this.navigateFileStart = function() {\n\t this.selection.moveCursorFileStart();\n\t this.clearSelection();\n\t };\n\t this.navigateWordRight = function() {\n\t this.selection.moveCursorWordRight();\n\t this.clearSelection();\n\t };\n\t this.navigateWordLeft = function() {\n\t this.selection.moveCursorWordLeft();\n\t this.clearSelection();\n\t };\n\t this.replace = function(replacement, options) {\n\t if (options)\n\t this.$search.set(options);\n\n\t var range = this.$search.find(this.session);\n\t var replaced = 0;\n\t if (!range)\n\t return replaced;\n\n\t if (this.$tryReplace(range, replacement)) {\n\t replaced = 1;\n\t }\n\t if (range !== null) {\n\t this.selection.setSelectionRange(range);\n\t this.renderer.scrollSelectionIntoView(range.start, range.end);\n\t }\n\n\t return replaced;\n\t };\n\t this.replaceAll = function(replacement, options) {\n\t if (options) {\n\t this.$search.set(options);\n\t }\n\n\t var ranges = this.$search.findAll(this.session);\n\t var replaced = 0;\n\t if (!ranges.length)\n\t return replaced;\n\n\t this.$blockScrolling += 1;\n\n\t var selection = this.getSelectionRange();\n\t this.selection.moveTo(0, 0);\n\n\t for (var i = ranges.length - 1; i >= 0; --i) {\n\t if(this.$tryReplace(ranges[i], replacement)) {\n\t replaced++;\n\t }\n\t }\n\n\t this.selection.setSelectionRange(selection);\n\t this.$blockScrolling -= 1;\n\n\t return replaced;\n\t };\n\n\t this.$tryReplace = function(range, replacement) {\n\t var input = this.session.getTextRange(range);\n\t replacement = this.$search.replace(input, replacement);\n\t if (replacement !== null) {\n\t range.end = this.session.replace(range, replacement);\n\t return range;\n\t } else {\n\t return null;\n\t }\n\t };\n\t this.getLastSearchOptions = function() {\n\t return this.$search.getOptions();\n\t };\n\t this.find = function(needle, options, animate) {\n\t if (!options)\n\t options = {};\n\n\t if (typeof needle == \"string\" || needle instanceof RegExp)\n\t options.needle = needle;\n\t else if (typeof needle == \"object\")\n\t oop.mixin(options, needle);\n\n\t var range = this.selection.getRange();\n\t if (options.needle == null) {\n\t needle = this.session.getTextRange(range)\n\t || this.$search.$options.needle;\n\t if (!needle) {\n\t range = this.session.getWordRange(range.start.row, range.start.column);\n\t needle = this.session.getTextRange(range);\n\t }\n\t this.$search.set({needle: needle});\n\t }\n\n\t this.$search.set(options);\n\t if (!options.start)\n\t this.$search.set({start: range});\n\n\t var newRange = this.$search.find(this.session);\n\t if (options.preventScroll)\n\t return newRange;\n\t if (newRange) {\n\t this.revealRange(newRange, animate);\n\t return newRange;\n\t }\n\t if (options.backwards)\n\t range.start = range.end;\n\t else\n\t range.end = range.start;\n\t this.selection.setRange(range);\n\t };\n\t this.findNext = function(options, animate) {\n\t this.find({skipCurrent: true, backwards: false}, options, animate);\n\t };\n\t this.findPrevious = function(options, animate) {\n\t this.find(options, {skipCurrent: true, backwards: true}, animate);\n\t };\n\n\t this.revealRange = function(range, animate) {\n\t this.$blockScrolling += 1;\n\t this.session.unfold(range);\n\t this.selection.setSelectionRange(range);\n\t this.$blockScrolling -= 1;\n\n\t var scrollTop = this.renderer.scrollTop;\n\t this.renderer.scrollSelectionIntoView(range.start, range.end, 0.5);\n\t if (animate !== false)\n\t this.renderer.animateScrolling(scrollTop);\n\t };\n\t this.undo = function() {\n\t this.$blockScrolling++;\n\t this.session.getUndoManager().undo();\n\t this.$blockScrolling--;\n\t this.renderer.scrollCursorIntoView(null, 0.5);\n\t };\n\t this.redo = function() {\n\t this.$blockScrolling++;\n\t this.session.getUndoManager().redo();\n\t this.$blockScrolling--;\n\t this.renderer.scrollCursorIntoView(null, 0.5);\n\t };\n\t this.destroy = function() {\n\t this.renderer.destroy();\n\t this._signal(\"destroy\", this);\n\t if (this.session) {\n\t this.session.destroy();\n\t }\n\t };\n\t this.setAutoScrollEditorIntoView = function(enable) {\n\t if (!enable)\n\t return;\n\t var rect;\n\t var self = this;\n\t var shouldScroll = false;\n\t if (!this.$scrollAnchor)\n\t this.$scrollAnchor = document.createElement(\"div\");\n\t var scrollAnchor = this.$scrollAnchor;\n\t scrollAnchor.style.cssText = \"position:absolute\";\n\t this.container.insertBefore(scrollAnchor, this.container.firstChild);\n\t var onChangeSelection = this.on(\"changeSelection\", function() {\n\t shouldScroll = true;\n\t });\n\t var onBeforeRender = this.renderer.on(\"beforeRender\", function() {\n\t if (shouldScroll)\n\t rect = self.renderer.container.getBoundingClientRect();\n\t });\n\t var onAfterRender = this.renderer.on(\"afterRender\", function() {\n\t if (shouldScroll && rect && (self.isFocused()\n\t || self.searchBox && self.searchBox.isFocused())\n\t ) {\n\t var renderer = self.renderer;\n\t var pos = renderer.$cursorLayer.$pixelPos;\n\t var config = renderer.layerConfig;\n\t var top = pos.top - config.offset;\n\t if (pos.top >= 0 && top + rect.top < 0) {\n\t shouldScroll = true;\n\t } else if (pos.top < config.height &&\n\t pos.top + rect.top + config.lineHeight > window.innerHeight) {\n\t shouldScroll = false;\n\t } else {\n\t shouldScroll = null;\n\t }\n\t if (shouldScroll != null) {\n\t scrollAnchor.style.top = top + \"px\";\n\t scrollAnchor.style.left = pos.left + \"px\";\n\t scrollAnchor.style.height = config.lineHeight + \"px\";\n\t scrollAnchor.scrollIntoView(shouldScroll);\n\t }\n\t shouldScroll = rect = null;\n\t }\n\t });\n\t this.setAutoScrollEditorIntoView = function(enable) {\n\t if (enable)\n\t return;\n\t delete this.setAutoScrollEditorIntoView;\n\t this.off(\"changeSelection\", onChangeSelection);\n\t this.renderer.off(\"afterRender\", onAfterRender);\n\t this.renderer.off(\"beforeRender\", onBeforeRender);\n\t };\n\t };\n\n\n\t this.$resetCursorStyle = function() {\n\t var style = this.$cursorStyle || \"ace\";\n\t var cursorLayer = this.renderer.$cursorLayer;\n\t if (!cursorLayer)\n\t return;\n\t cursorLayer.setSmoothBlinking(/smooth/.test(style));\n\t cursorLayer.isBlinking = !this.$readOnly && style != \"wide\";\n\t dom.setCssClass(cursorLayer.element, \"ace_slim-cursors\", /slim/.test(style));\n\t };\n\n\t}).call(Editor.prototype);\n\n\n\n\tconfig.defineOptions(Editor.prototype, \"editor\", {\n\t selectionStyle: {\n\t set: function(style) {\n\t this.onSelectionChange();\n\t this._signal(\"changeSelectionStyle\", {data: style});\n\t },\n\t initialValue: \"line\"\n\t },\n\t highlightActiveLine: {\n\t set: function() {this.$updateHighlightActiveLine();},\n\t initialValue: true\n\t },\n\t highlightSelectedWord: {\n\t set: function(shouldHighlight) {this.$onSelectionChange();},\n\t initialValue: true\n\t },\n\t readOnly: {\n\t set: function(readOnly) {\n\t this.$resetCursorStyle(); \n\t },\n\t initialValue: false\n\t },\n\t cursorStyle: {\n\t set: function(val) { this.$resetCursorStyle(); },\n\t values: [\"ace\", \"slim\", \"smooth\", \"wide\"],\n\t initialValue: \"ace\"\n\t },\n\t mergeUndoDeltas: {\n\t values: [false, true, \"always\"],\n\t initialValue: true\n\t },\n\t behavioursEnabled: {initialValue: true},\n\t wrapBehavioursEnabled: {initialValue: true},\n\t autoScrollEditorIntoView: {\n\t set: function(val) {this.setAutoScrollEditorIntoView(val)}\n\t },\n\t keyboardHandler: {\n\t set: function(val) { this.setKeyboardHandler(val); },\n\t get: function() { return this.keybindingId; },\n\t handlesSet: true\n\t },\n\n\t hScrollBarAlwaysVisible: \"renderer\",\n\t vScrollBarAlwaysVisible: \"renderer\",\n\t highlightGutterLine: \"renderer\",\n\t animatedScroll: \"renderer\",\n\t showInvisibles: \"renderer\",\n\t showPrintMargin: \"renderer\",\n\t printMarginColumn: \"renderer\",\n\t printMargin: \"renderer\",\n\t fadeFoldWidgets: \"renderer\",\n\t showFoldWidgets: \"renderer\",\n\t showLineNumbers: \"renderer\",\n\t showGutter: \"renderer\",\n\t displayIndentGuides: \"renderer\",\n\t fontSize: \"renderer\",\n\t fontFamily: \"renderer\",\n\t maxLines: \"renderer\",\n\t minLines: \"renderer\",\n\t scrollPastEnd: \"renderer\",\n\t fixedWidthGutter: \"renderer\",\n\t theme: \"renderer\",\n\n\t scrollSpeed: \"$mouseHandler\",\n\t dragDelay: \"$mouseHandler\",\n\t dragEnabled: \"$mouseHandler\",\n\t focusTimout: \"$mouseHandler\",\n\t tooltipFollowsMouse: \"$mouseHandler\",\n\n\t firstLineNumber: \"session\",\n\t overwrite: \"session\",\n\t newLineMode: \"session\",\n\t useWorker: \"session\",\n\t useSoftTabs: \"session\",\n\t tabSize: \"session\",\n\t wrap: \"session\",\n\t indentedSoftWrap: \"session\",\n\t foldStyle: \"session\",\n\t mode: \"session\"\n\t});\n\n\texports.Editor = Editor;\n\t});\n\n\tace.define(\"ace/undomanager\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\t\"use strict\";\n\tvar UndoManager = function() {\n\t this.reset();\n\t};\n\n\t(function() {\n\t this.execute = function(options) {\n\t var deltaSets = options.args[0];\n\t this.$doc = options.args[1];\n\t if (options.merge && this.hasUndo()){\n\t this.dirtyCounter--;\n\t deltaSets = this.$undoStack.pop().concat(deltaSets);\n\t }\n\t this.$undoStack.push(deltaSets);\n\t this.$redoStack = [];\n\t if (this.dirtyCounter < 0) {\n\t this.dirtyCounter = NaN;\n\t }\n\t this.dirtyCounter++;\n\t };\n\t this.undo = function(dontSelect) {\n\t var deltaSets = this.$undoStack.pop();\n\t var undoSelectionRange = null;\n\t if (deltaSets) {\n\t undoSelectionRange = this.$doc.undoChanges(deltaSets, dontSelect);\n\t this.$redoStack.push(deltaSets);\n\t this.dirtyCounter--;\n\t }\n\n\t return undoSelectionRange;\n\t };\n\t this.redo = function(dontSelect) {\n\t var deltaSets = this.$redoStack.pop();\n\t var redoSelectionRange = null;\n\t if (deltaSets) {\n\t redoSelectionRange =\n\t this.$doc.redoChanges(this.$deserializeDeltas(deltaSets), dontSelect);\n\t this.$undoStack.push(deltaSets);\n\t this.dirtyCounter++;\n\t }\n\t return redoSelectionRange;\n\t };\n\t this.reset = function() {\n\t this.$undoStack = [];\n\t this.$redoStack = [];\n\t this.dirtyCounter = 0;\n\t };\n\t this.hasUndo = function() {\n\t return this.$undoStack.length > 0;\n\t };\n\t this.hasRedo = function() {\n\t return this.$redoStack.length > 0;\n\t };\n\t this.markClean = function() {\n\t this.dirtyCounter = 0;\n\t };\n\t this.isClean = function() {\n\t return this.dirtyCounter === 0;\n\t };\n\t this.$serializeDeltas = function(deltaSets) {\n\t return cloneDeltaSetsObj(deltaSets, $serializeDelta);\n\t };\n\t this.$deserializeDeltas = function(deltaSets) {\n\t return cloneDeltaSetsObj(deltaSets, $deserializeDelta);\n\t };\n\t \n\t function $serializeDelta(delta){\n\t return {\n\t action: delta.action,\n\t start: delta.start,\n\t end: delta.end,\n\t lines: delta.lines.length == 1 ? null : delta.lines,\n\t text: delta.lines.length == 1 ? delta.lines[0] : null\n\t };\n\t }\n\t \n\t function $deserializeDelta(delta) {\n\t return {\n\t action: delta.action,\n\t start: delta.start,\n\t end: delta.end,\n\t lines: delta.lines || [delta.text]\n\t };\n\t }\n\t \n\t function cloneDeltaSetsObj(deltaSets_old, fnGetModifiedDelta) {\n\t var deltaSets_new = new Array(deltaSets_old.length);\n\t for (var i = 0; i < deltaSets_old.length; i++) {\n\t var deltaSet_old = deltaSets_old[i];\n\t var deltaSet_new = { group: deltaSet_old.group, deltas: new Array(deltaSet_old.length)};\n\t \n\t for (var j = 0; j < deltaSet_old.deltas.length; j++) {\n\t var delta_old = deltaSet_old.deltas[j];\n\t deltaSet_new.deltas[j] = fnGetModifiedDelta(delta_old);\n\t }\n\t \n\t deltaSets_new[i] = deltaSet_new;\n\t }\n\t return deltaSets_new;\n\t }\n\t \n\t}).call(UndoManager.prototype);\n\n\texports.UndoManager = UndoManager;\n\t});\n\n\tace.define(\"ace/layer/gutter\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar dom = acequire(\"../lib/dom\");\n\tvar oop = acequire(\"../lib/oop\");\n\tvar lang = acequire(\"../lib/lang\");\n\tvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\n\tvar Gutter = function(parentEl) {\n\t this.element = dom.createElement(\"div\");\n\t this.element.className = \"ace_layer ace_gutter-layer\";\n\t parentEl.appendChild(this.element);\n\t this.setShowFoldWidgets(this.$showFoldWidgets);\n\t \n\t this.gutterWidth = 0;\n\n\t this.$annotations = [];\n\t this.$updateAnnotations = this.$updateAnnotations.bind(this);\n\n\t this.$cells = [];\n\t};\n\n\t(function() {\n\n\t oop.implement(this, EventEmitter);\n\n\t this.setSession = function(session) {\n\t if (this.session)\n\t this.session.removeEventListener(\"change\", this.$updateAnnotations);\n\t this.session = session;\n\t if (session)\n\t session.on(\"change\", this.$updateAnnotations);\n\t };\n\n\t this.addGutterDecoration = function(row, className){\n\t if (window.console)\n\t console.warn && console.warn(\"deprecated use session.addGutterDecoration\");\n\t this.session.addGutterDecoration(row, className);\n\t };\n\n\t this.removeGutterDecoration = function(row, className){\n\t if (window.console)\n\t console.warn && console.warn(\"deprecated use session.removeGutterDecoration\");\n\t this.session.removeGutterDecoration(row, className);\n\t };\n\n\t this.setAnnotations = function(annotations) {\n\t this.$annotations = [];\n\t for (var i = 0; i < annotations.length; i++) {\n\t var annotation = annotations[i];\n\t var row = annotation.row;\n\t var rowInfo = this.$annotations[row];\n\t if (!rowInfo)\n\t rowInfo = this.$annotations[row] = {text: []};\n\t \n\t var annoText = annotation.text;\n\t annoText = annoText ? lang.escapeHTML(annoText) : annotation.html || \"\";\n\n\t if (rowInfo.text.indexOf(annoText) === -1)\n\t rowInfo.text.push(annoText);\n\n\t var type = annotation.type;\n\t if (type == \"error\")\n\t rowInfo.className = \" ace_error\";\n\t else if (type == \"warning\" && rowInfo.className != \" ace_error\")\n\t rowInfo.className = \" ace_warning\";\n\t else if (type == \"info\" && (!rowInfo.className))\n\t rowInfo.className = \" ace_info\";\n\t }\n\t };\n\n\t this.$updateAnnotations = function (delta) {\n\t if (!this.$annotations.length)\n\t return;\n\t var firstRow = delta.start.row;\n\t var len = delta.end.row - firstRow;\n\t if (len === 0) {\n\t } else if (delta.action == 'remove') {\n\t this.$annotations.splice(firstRow, len + 1, null);\n\t } else {\n\t var args = new Array(len + 1);\n\t args.unshift(firstRow, 1);\n\t this.$annotations.splice.apply(this.$annotations, args);\n\t }\n\t };\n\n\t this.update = function(config) {\n\t var session = this.session;\n\t var firstRow = config.firstRow;\n\t var lastRow = Math.min(config.lastRow + config.gutterOffset, // needed to compensate for hor scollbar\n\t session.getLength() - 1);\n\t var fold = session.getNextFoldLine(firstRow);\n\t var foldStart = fold ? fold.start.row : Infinity;\n\t var foldWidgets = this.$showFoldWidgets && session.foldWidgets;\n\t var breakpoints = session.$breakpoints;\n\t var decorations = session.$decorations;\n\t var firstLineNumber = session.$firstLineNumber;\n\t var lastLineNumber = 0;\n\t \n\t var gutterRenderer = session.gutterRenderer || this.$renderer;\n\n\t var cell = null;\n\t var index = -1;\n\t var row = firstRow;\n\t while (true) {\n\t if (row > foldStart) {\n\t row = fold.end.row + 1;\n\t fold = session.getNextFoldLine(row, fold);\n\t foldStart = fold ? fold.start.row : Infinity;\n\t }\n\t if (row > lastRow) {\n\t while (this.$cells.length > index + 1) {\n\t cell = this.$cells.pop();\n\t this.element.removeChild(cell.element);\n\t }\n\t break;\n\t }\n\n\t cell = this.$cells[++index];\n\t if (!cell) {\n\t cell = {element: null, textNode: null, foldWidget: null};\n\t cell.element = dom.createElement(\"div\");\n\t cell.textNode = document.createTextNode('');\n\t cell.element.appendChild(cell.textNode);\n\t this.element.appendChild(cell.element);\n\t this.$cells[index] = cell;\n\t }\n\n\t var className = \"ace_gutter-cell \";\n\t if (breakpoints[row])\n\t className += breakpoints[row];\n\t if (decorations[row])\n\t className += decorations[row];\n\t if (this.$annotations[row])\n\t className += this.$annotations[row].className;\n\t if (cell.element.className != className)\n\t cell.element.className = className;\n\n\t var height = session.getRowLength(row) * config.lineHeight + \"px\";\n\t if (height != cell.element.style.height)\n\t cell.element.style.height = height;\n\n\t if (foldWidgets) {\n\t var c = foldWidgets[row];\n\t if (c == null)\n\t c = foldWidgets[row] = session.getFoldWidget(row);\n\t }\n\n\t if (c) {\n\t if (!cell.foldWidget) {\n\t cell.foldWidget = dom.createElement(\"span\");\n\t cell.element.appendChild(cell.foldWidget);\n\t }\n\t var className = \"ace_fold-widget ace_\" + c;\n\t if (c == \"start\" && row == foldStart && row < fold.end.row)\n\t className += \" ace_closed\";\n\t else\n\t className += \" ace_open\";\n\t if (cell.foldWidget.className != className)\n\t cell.foldWidget.className = className;\n\n\t var height = config.lineHeight + \"px\";\n\t if (cell.foldWidget.style.height != height)\n\t cell.foldWidget.style.height = height;\n\t } else {\n\t if (cell.foldWidget) {\n\t cell.element.removeChild(cell.foldWidget);\n\t cell.foldWidget = null;\n\t }\n\t }\n\t \n\t var text = lastLineNumber = gutterRenderer\n\t ? gutterRenderer.getText(session, row)\n\t : row + firstLineNumber;\n\t if (text != cell.textNode.data)\n\t cell.textNode.data = text;\n\n\t row++;\n\t }\n\n\t this.element.style.height = config.minHeight + \"px\";\n\n\t if (this.$fixedWidth || session.$useWrapMode)\n\t lastLineNumber = session.getLength() + firstLineNumber;\n\n\t var gutterWidth = gutterRenderer \n\t ? gutterRenderer.getWidth(session, lastLineNumber, config)\n\t : lastLineNumber.toString().length * config.characterWidth;\n\t \n\t var padding = this.$padding || this.$computePadding();\n\t gutterWidth += padding.left + padding.right;\n\t if (gutterWidth !== this.gutterWidth && !isNaN(gutterWidth)) {\n\t this.gutterWidth = gutterWidth;\n\t this.element.style.width = Math.ceil(this.gutterWidth) + \"px\";\n\t this._emit(\"changeGutterWidth\", gutterWidth);\n\t }\n\t };\n\n\t this.$fixedWidth = false;\n\t \n\t this.$showLineNumbers = true;\n\t this.$renderer = \"\";\n\t this.setShowLineNumbers = function(show) {\n\t this.$renderer = !show && {\n\t getWidth: function() {return \"\"},\n\t getText: function() {return \"\"}\n\t };\n\t };\n\t \n\t this.getShowLineNumbers = function() {\n\t return this.$showLineNumbers;\n\t };\n\t \n\t this.$showFoldWidgets = true;\n\t this.setShowFoldWidgets = function(show) {\n\t if (show)\n\t dom.addCssClass(this.element, \"ace_folding-enabled\");\n\t else\n\t dom.removeCssClass(this.element, \"ace_folding-enabled\");\n\n\t this.$showFoldWidgets = show;\n\t this.$padding = null;\n\t };\n\t \n\t this.getShowFoldWidgets = function() {\n\t return this.$showFoldWidgets;\n\t };\n\n\t this.$computePadding = function() {\n\t if (!this.element.firstChild)\n\t return {left: 0, right: 0};\n\t var style = dom.computedStyle(this.element.firstChild);\n\t this.$padding = {};\n\t this.$padding.left = parseInt(style.paddingLeft) + 1 || 0;\n\t this.$padding.right = parseInt(style.paddingRight) || 0;\n\t return this.$padding;\n\t };\n\n\t this.getRegion = function(point) {\n\t var padding = this.$padding || this.$computePadding();\n\t var rect = this.element.getBoundingClientRect();\n\t if (point.x < padding.left + rect.left)\n\t return \"markers\";\n\t if (this.$showFoldWidgets && point.x > rect.right - padding.right)\n\t return \"foldWidgets\";\n\t };\n\n\t}).call(Gutter.prototype);\n\n\texports.Gutter = Gutter;\n\n\t});\n\n\tace.define(\"ace/layer/marker\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar Range = acequire(\"../range\").Range;\n\tvar dom = acequire(\"../lib/dom\");\n\n\tvar Marker = function(parentEl) {\n\t this.element = dom.createElement(\"div\");\n\t this.element.className = \"ace_layer ace_marker-layer\";\n\t parentEl.appendChild(this.element);\n\t};\n\n\t(function() {\n\n\t this.$padding = 0;\n\n\t this.setPadding = function(padding) {\n\t this.$padding = padding;\n\t };\n\t this.setSession = function(session) {\n\t this.session = session;\n\t };\n\t \n\t this.setMarkers = function(markers) {\n\t this.markers = markers;\n\t };\n\n\t this.update = function(config) {\n\t var config = config || this.config;\n\t if (!config)\n\t return;\n\n\t this.config = config;\n\n\n\t var html = [];\n\t for (var key in this.markers) {\n\t var marker = this.markers[key];\n\n\t if (!marker.range) {\n\t marker.update(html, this, this.session, config);\n\t continue;\n\t }\n\n\t var range = marker.range.clipRows(config.firstRow, config.lastRow);\n\t if (range.isEmpty()) continue;\n\n\t range = range.toScreenRange(this.session);\n\t if (marker.renderer) {\n\t var top = this.$getTop(range.start.row, config);\n\t var left = this.$padding + range.start.column * config.characterWidth;\n\t marker.renderer(html, range, left, top, config);\n\t } else if (marker.type == \"fullLine\") {\n\t this.drawFullLineMarker(html, range, marker.clazz, config);\n\t } else if (marker.type == \"screenLine\") {\n\t this.drawScreenLineMarker(html, range, marker.clazz, config);\n\t } else if (range.isMultiLine()) {\n\t if (marker.type == \"text\")\n\t this.drawTextMarker(html, range, marker.clazz, config);\n\t else\n\t this.drawMultiLineMarker(html, range, marker.clazz, config);\n\t } else {\n\t this.drawSingleLineMarker(html, range, marker.clazz + \" ace_start\" + \" ace_br15\", config);\n\t }\n\t }\n\t this.element.innerHTML = html.join(\"\");\n\t };\n\n\t this.$getTop = function(row, layerConfig) {\n\t return (row - layerConfig.firstRowScreen) * layerConfig.lineHeight;\n\t };\n\n\t function getBorderClass(tl, tr, br, bl) {\n\t return (tl ? 1 : 0) | (tr ? 2 : 0) | (br ? 4 : 0) | (bl ? 8 : 0);\n\t }\n\t this.drawTextMarker = function(stringBuilder, range, clazz, layerConfig, extraStyle) {\n\t var session = this.session;\n\t var start = range.start.row;\n\t var end = range.end.row;\n\t var row = start;\n\t var prev = 0; \n\t var curr = 0;\n\t var next = session.getScreenLastRowColumn(row);\n\t var lineRange = new Range(row, range.start.column, row, curr);\n\t for (; row <= end; row++) {\n\t lineRange.start.row = lineRange.end.row = row;\n\t lineRange.start.column = row == start ? range.start.column : session.getRowWrapIndent(row);\n\t lineRange.end.column = next;\n\t prev = curr;\n\t curr = next;\n\t next = row + 1 < end ? session.getScreenLastRowColumn(row + 1) : row == end ? 0 : range.end.column;\n\t this.drawSingleLineMarker(stringBuilder, lineRange, \n\t clazz + (row == start ? \" ace_start\" : \"\") + \" ace_br\"\n\t + getBorderClass(row == start || row == start + 1 && range.start.column, prev < curr, curr > next, row == end),\n\t layerConfig, row == end ? 0 : 1, extraStyle);\n\t }\n\t };\n\t this.drawMultiLineMarker = function(stringBuilder, range, clazz, config, extraStyle) {\n\t var padding = this.$padding;\n\t var height = config.lineHeight;\n\t var top = this.$getTop(range.start.row, config);\n\t var left = padding + range.start.column * config.characterWidth;\n\t extraStyle = extraStyle || \"\";\n\n\t stringBuilder.push(\n\t \"<div class='\", clazz, \" ace_br1 ace_start' style='\",\n\t \"height:\", height, \"px;\",\n\t \"right:0;\",\n\t \"top:\", top, \"px;\",\n\t \"left:\", left, \"px;\", extraStyle, \"'></div>\"\n\t );\n\t top = this.$getTop(range.end.row, config);\n\t var width = range.end.column * config.characterWidth;\n\n\t stringBuilder.push(\n\t \"<div class='\", clazz, \" ace_br12' style='\",\n\t \"height:\", height, \"px;\",\n\t \"width:\", width, \"px;\",\n\t \"top:\", top, \"px;\",\n\t \"left:\", padding, \"px;\", extraStyle, \"'></div>\"\n\t );\n\t height = (range.end.row - range.start.row - 1) * config.lineHeight;\n\t if (height <= 0)\n\t return;\n\t top = this.$getTop(range.start.row + 1, config);\n\t \n\t var radiusClass = (range.start.column ? 1 : 0) | (range.end.column ? 0 : 8);\n\n\t stringBuilder.push(\n\t \"<div class='\", clazz, (radiusClass ? \" ace_br\" + radiusClass : \"\"), \"' style='\",\n\t \"height:\", height, \"px;\",\n\t \"right:0;\",\n\t \"top:\", top, \"px;\",\n\t \"left:\", padding, \"px;\", extraStyle, \"'></div>\"\n\t );\n\t };\n\t this.drawSingleLineMarker = function(stringBuilder, range, clazz, config, extraLength, extraStyle) {\n\t var height = config.lineHeight;\n\t var width = (range.end.column + (extraLength || 0) - range.start.column) * config.characterWidth;\n\n\t var top = this.$getTop(range.start.row, config);\n\t var left = this.$padding + range.start.column * config.characterWidth;\n\n\t stringBuilder.push(\n\t \"<div class='\", clazz, \"' style='\",\n\t \"height:\", height, \"px;\",\n\t \"width:\", width, \"px;\",\n\t \"top:\", top, \"px;\",\n\t \"left:\", left, \"px;\", extraStyle || \"\", \"'></div>\"\n\t );\n\t };\n\n\t this.drawFullLineMarker = function(stringBuilder, range, clazz, config, extraStyle) {\n\t var top = this.$getTop(range.start.row, config);\n\t var height = config.lineHeight;\n\t if (range.start.row != range.end.row)\n\t height += this.$getTop(range.end.row, config) - top;\n\n\t stringBuilder.push(\n\t \"<div class='\", clazz, \"' style='\",\n\t \"height:\", height, \"px;\",\n\t \"top:\", top, \"px;\",\n\t \"left:0;right:0;\", extraStyle || \"\", \"'></div>\"\n\t );\n\t };\n\t \n\t this.drawScreenLineMarker = function(stringBuilder, range, clazz, config, extraStyle) {\n\t var top = this.$getTop(range.start.row, config);\n\t var height = config.lineHeight;\n\n\t stringBuilder.push(\n\t \"<div class='\", clazz, \"' style='\",\n\t \"height:\", height, \"px;\",\n\t \"top:\", top, \"px;\",\n\t \"left:0;right:0;\", extraStyle || \"\", \"'></div>\"\n\t );\n\t };\n\n\t}).call(Marker.prototype);\n\n\texports.Marker = Marker;\n\n\t});\n\n\tace.define(\"ace/layer/text\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar oop = acequire(\"../lib/oop\");\n\tvar dom = acequire(\"../lib/dom\");\n\tvar lang = acequire(\"../lib/lang\");\n\tvar useragent = acequire(\"../lib/useragent\");\n\tvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\n\tvar Text = function(parentEl) {\n\t this.element = dom.createElement(\"div\");\n\t this.element.className = \"ace_layer ace_text-layer\";\n\t parentEl.appendChild(this.element);\n\t this.$updateEolChar = this.$updateEolChar.bind(this);\n\t};\n\n\t(function() {\n\n\t oop.implement(this, EventEmitter);\n\n\t this.EOF_CHAR = \"\\xB6\";\n\t this.EOL_CHAR_LF = \"\\xAC\";\n\t this.EOL_CHAR_CRLF = \"\\xa4\";\n\t this.EOL_CHAR = this.EOL_CHAR_LF;\n\t this.TAB_CHAR = \"\\u2014\"; //\"\\u21E5\";\n\t this.SPACE_CHAR = \"\\xB7\";\n\t this.$padding = 0;\n\n\t this.$updateEolChar = function() {\n\t var EOL_CHAR = this.session.doc.getNewLineCharacter() == \"\\n\"\n\t ? this.EOL_CHAR_LF\n\t : this.EOL_CHAR_CRLF;\n\t if (this.EOL_CHAR != EOL_CHAR) {\n\t this.EOL_CHAR = EOL_CHAR;\n\t return true;\n\t }\n\t }\n\n\t this.setPadding = function(padding) {\n\t this.$padding = padding;\n\t this.element.style.padding = \"0 \" + padding + \"px\";\n\t };\n\n\t this.getLineHeight = function() {\n\t return this.$fontMetrics.$characterSize.height || 0;\n\t };\n\n\t this.getCharacterWidth = function() {\n\t return this.$fontMetrics.$characterSize.width || 0;\n\t };\n\t \n\t this.$setFontMetrics = function(measure) {\n\t this.$fontMetrics = measure;\n\t this.$fontMetrics.on(\"changeCharacterSize\", function(e) {\n\t this._signal(\"changeCharacterSize\", e);\n\t }.bind(this));\n\t this.$pollSizeChanges();\n\t }\n\n\t this.checkForSizeChanges = function() {\n\t this.$fontMetrics.checkForSizeChanges();\n\t };\n\t this.$pollSizeChanges = function() {\n\t return this.$pollSizeChangesTimer = this.$fontMetrics.$pollSizeChanges();\n\t };\n\t this.setSession = function(session) {\n\t this.session = session;\n\t if (session)\n\t this.$computeTabString();\n\t };\n\n\t this.showInvisibles = false;\n\t this.setShowInvisibles = function(showInvisibles) {\n\t if (this.showInvisibles == showInvisibles)\n\t return false;\n\n\t this.showInvisibles = showInvisibles;\n\t this.$computeTabString();\n\t return true;\n\t };\n\n\t this.displayIndentGuides = true;\n\t this.setDisplayIndentGuides = function(display) {\n\t if (this.displayIndentGuides == display)\n\t return false;\n\n\t this.displayIndentGuides = display;\n\t this.$computeTabString();\n\t return true;\n\t };\n\n\t this.$tabStrings = [];\n\t this.onChangeTabSize =\n\t this.$computeTabString = function() {\n\t var tabSize = this.session.getTabSize();\n\t this.tabSize = tabSize;\n\t var tabStr = this.$tabStrings = [0];\n\t for (var i = 1; i < tabSize + 1; i++) {\n\t if (this.showInvisibles) {\n\t tabStr.push(\"<span class='ace_invisible ace_invisible_tab'>\"\n\t + lang.stringRepeat(this.TAB_CHAR, i)\n\t + \"</span>\");\n\t } else {\n\t tabStr.push(lang.stringRepeat(\" \", i));\n\t }\n\t }\n\t if (this.displayIndentGuides) {\n\t this.$indentGuideRe = /\\s\\S| \\t|\\t |\\s$/;\n\t var className = \"ace_indent-guide\";\n\t var spaceClass = \"\";\n\t var tabClass = \"\";\n\t if (this.showInvisibles) {\n\t className += \" ace_invisible\";\n\t spaceClass = \" ace_invisible_space\";\n\t tabClass = \" ace_invisible_tab\";\n\t var spaceContent = lang.stringRepeat(this.SPACE_CHAR, this.tabSize);\n\t var tabContent = lang.stringRepeat(this.TAB_CHAR, this.tabSize);\n\t } else{\n\t var spaceContent = lang.stringRepeat(\" \", this.tabSize);\n\t var tabContent = spaceContent;\n\t }\n\n\t this.$tabStrings[\" \"] = \"<span class='\" + className + spaceClass + \"'>\" + spaceContent + \"</span>\";\n\t this.$tabStrings[\"\\t\"] = \"<span class='\" + className + tabClass + \"'>\" + tabContent + \"</span>\";\n\t }\n\t };\n\n\t this.updateLines = function(config, firstRow, lastRow) {\n\t if (this.config.lastRow != config.lastRow ||\n\t this.config.firstRow != config.firstRow) {\n\t this.scrollLines(config);\n\t }\n\t this.config = config;\n\n\t var first = Math.max(firstRow, config.firstRow);\n\t var last = Math.min(lastRow, config.lastRow);\n\n\t var lineElements = this.element.childNodes;\n\t var lineElementsIdx = 0;\n\n\t for (var row = config.firstRow; row < first; row++) {\n\t var foldLine = this.session.getFoldLine(row);\n\t if (foldLine) {\n\t if (foldLine.containsRow(first)) {\n\t first = foldLine.start.row;\n\t break;\n\t } else {\n\t row = foldLine.end.row;\n\t }\n\t }\n\t lineElementsIdx ++;\n\t }\n\n\t var row = first;\n\t var foldLine = this.session.getNextFoldLine(row);\n\t var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n\t while (true) {\n\t if (row > foldStart) {\n\t row = foldLine.end.row+1;\n\t foldLine = this.session.getNextFoldLine(row, foldLine);\n\t foldStart = foldLine ? foldLine.start.row :Infinity;\n\t }\n\t if (row > last)\n\t break;\n\n\t var lineElement = lineElements[lineElementsIdx++];\n\t if (lineElement) {\n\t var html = [];\n\t this.$renderLine(\n\t html, row, !this.$useLineGroups(), row == foldStart ? foldLine : false\n\t );\n\t lineElement.style.height = config.lineHeight * this.session.getRowLength(row) + \"px\";\n\t lineElement.innerHTML = html.join(\"\");\n\t }\n\t row++;\n\t }\n\t };\n\n\t this.scrollLines = function(config) {\n\t var oldConfig = this.config;\n\t this.config = config;\n\n\t if (!oldConfig || oldConfig.lastRow < config.firstRow)\n\t return this.update(config);\n\n\t if (config.lastRow < oldConfig.firstRow)\n\t return this.update(config);\n\n\t var el = this.element;\n\t if (oldConfig.firstRow < config.firstRow)\n\t for (var row=this.session.getFoldedRowCount(oldConfig.firstRow, config.firstRow - 1); row>0; row--)\n\t el.removeChild(el.firstChild);\n\n\t if (oldConfig.lastRow > config.lastRow)\n\t for (var row=this.session.getFoldedRowCount(config.lastRow + 1, oldConfig.lastRow); row>0; row--)\n\t el.removeChild(el.lastChild);\n\n\t if (config.firstRow < oldConfig.firstRow) {\n\t var fragment = this.$renderLinesFragment(config, config.firstRow, oldConfig.firstRow - 1);\n\t if (el.firstChild)\n\t el.insertBefore(fragment, el.firstChild);\n\t else\n\t el.appendChild(fragment);\n\t }\n\n\t if (config.lastRow > oldConfig.lastRow) {\n\t var fragment = this.$renderLinesFragment(config, oldConfig.lastRow + 1, config.lastRow);\n\t el.appendChild(fragment);\n\t }\n\t };\n\n\t this.$renderLinesFragment = function(config, firstRow, lastRow) {\n\t var fragment = this.element.ownerDocument.createDocumentFragment();\n\t var row = firstRow;\n\t var foldLine = this.session.getNextFoldLine(row);\n\t var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n\t while (true) {\n\t if (row > foldStart) {\n\t row = foldLine.end.row+1;\n\t foldLine = this.session.getNextFoldLine(row, foldLine);\n\t foldStart = foldLine ? foldLine.start.row : Infinity;\n\t }\n\t if (row > lastRow)\n\t break;\n\n\t var container = dom.createElement(\"div\");\n\n\t var html = [];\n\t this.$renderLine(html, row, false, row == foldStart ? foldLine : false);\n\t container.innerHTML = html.join(\"\");\n\t if (this.$useLineGroups()) {\n\t container.className = 'ace_line_group';\n\t fragment.appendChild(container);\n\t container.style.height = config.lineHeight * this.session.getRowLength(row) + \"px\";\n\n\t } else {\n\t while(container.firstChild)\n\t fragment.appendChild(container.firstChild);\n\t }\n\n\t row++;\n\t }\n\t return fragment;\n\t };\n\n\t this.update = function(config) {\n\t this.config = config;\n\n\t var html = [];\n\t var firstRow = config.firstRow, lastRow = config.lastRow;\n\n\t var row = firstRow;\n\t var foldLine = this.session.getNextFoldLine(row);\n\t var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n\t while (true) {\n\t if (row > foldStart) {\n\t row = foldLine.end.row+1;\n\t foldLine = this.session.getNextFoldLine(row, foldLine);\n\t foldStart = foldLine ? foldLine.start.row :Infinity;\n\t }\n\t if (row > lastRow)\n\t break;\n\n\t if (this.$useLineGroups())\n\t html.push(\"<div class='ace_line_group' style='height:\", config.lineHeight*this.session.getRowLength(row), \"px'>\")\n\n\t this.$renderLine(html, row, false, row == foldStart ? foldLine : false);\n\n\t if (this.$useLineGroups())\n\t html.push(\"</div>\"); // end the line group\n\n\t row++;\n\t }\n\t this.element.innerHTML = html.join(\"\");\n\t };\n\n\t this.$textToken = {\n\t \"text\": true,\n\t \"rparen\": true,\n\t \"lparen\": true\n\t };\n\n\t this.$renderToken = function(stringBuilder, screenColumn, token, value) {\n\t var self = this;\n\t var replaceReg = /\\t|&|<|>|( +)|([\\x00-\\x1f\\x80-\\xa0\\xad\\u1680\\u180E\\u2000-\\u200f\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF\\uFFF9-\\uFFFC])|[\\u1100-\\u115F\\u11A3-\\u11A7\\u11FA-\\u11FF\\u2329-\\u232A\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFB\\u3000-\\u303E\\u3041-\\u3096\\u3099-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u3190-\\u31BA\\u31C0-\\u31E3\\u31F0-\\u321E\\u3220-\\u3247\\u3250-\\u32FE\\u3300-\\u4DBF\\u4E00-\\uA48C\\uA490-\\uA4C6\\uA960-\\uA97C\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFAFF\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE66\\uFE68-\\uFE6B\\uFF01-\\uFF60\\uFFE0-\\uFFE6]/g;\n\t var replaceFunc = function(c, a, b, tabIdx, idx4) {\n\t if (a) {\n\t return self.showInvisibles\n\t ? \"<span class='ace_invisible ace_invisible_space'>\" + lang.stringRepeat(self.SPACE_CHAR, c.length) + \"</span>\"\n\t : c;\n\t } else if (c == \"&\") {\n\t return \"&\";\n\t } else if (c == \"<\") {\n\t return \"<\";\n\t } else if (c == \">\") {\n\t return \">\";\n\t } else if (c == \"\\t\") {\n\t var tabSize = self.session.getScreenTabSize(screenColumn + tabIdx);\n\t screenColumn += tabSize - 1;\n\t return self.$tabStrings[tabSize];\n\t } else if (c == \"\\u3000\") {\n\t var classToUse = self.showInvisibles ? \"ace_cjk ace_invisible ace_invisible_space\" : \"ace_cjk\";\n\t var space = self.showInvisibles ? self.SPACE_CHAR : \"\";\n\t screenColumn += 1;\n\t return \"<span class='\" + classToUse + \"' style='width:\" +\n\t (self.config.characterWidth * 2) +\n\t \"px'>\" + space + \"</span>\";\n\t } else if (b) {\n\t return \"<span class='ace_invisible ace_invisible_space ace_invalid'>\" + self.SPACE_CHAR + \"</span>\";\n\t } else {\n\t screenColumn += 1;\n\t return \"<span class='ace_cjk' style='width:\" +\n\t (self.config.characterWidth * 2) +\n\t \"px'>\" + c + \"</span>\";\n\t }\n\t };\n\n\t var output = value.replace(replaceReg, replaceFunc);\n\n\t if (!this.$textToken[token.type]) {\n\t var classes = \"ace_\" + token.type.replace(/\\./g, \" ace_\");\n\t var style = \"\";\n\t if (token.type == \"fold\")\n\t style = \" style='width:\" + (token.value.length * this.config.characterWidth) + \"px;' \";\n\t stringBuilder.push(\"<span class='\", classes, \"'\", style, \">\", output, \"</span>\");\n\t }\n\t else {\n\t stringBuilder.push(output);\n\t }\n\t return screenColumn + value.length;\n\t };\n\n\t this.renderIndentGuide = function(stringBuilder, value, max) {\n\t var cols = value.search(this.$indentGuideRe);\n\t if (cols <= 0 || cols >= max)\n\t return value;\n\t if (value[0] == \" \") {\n\t cols -= cols % this.tabSize;\n\t stringBuilder.push(lang.stringRepeat(this.$tabStrings[\" \"], cols/this.tabSize));\n\t return value.substr(cols);\n\t } else if (value[0] == \"\\t\") {\n\t stringBuilder.push(lang.stringRepeat(this.$tabStrings[\"\\t\"], cols));\n\t return value.substr(cols);\n\t }\n\t return value;\n\t };\n\n\t this.$renderWrappedLine = function(stringBuilder, tokens, splits, onlyContents) {\n\t var chars = 0;\n\t var split = 0;\n\t var splitChars = splits[0];\n\t var screenColumn = 0;\n\n\t for (var i = 0; i < tokens.length; i++) {\n\t var token = tokens[i];\n\t var value = token.value;\n\t if (i == 0 && this.displayIndentGuides) {\n\t chars = value.length;\n\t value = this.renderIndentGuide(stringBuilder, value, splitChars);\n\t if (!value)\n\t continue;\n\t chars -= value.length;\n\t }\n\n\t if (chars + value.length < splitChars) {\n\t screenColumn = this.$renderToken(stringBuilder, screenColumn, token, value);\n\t chars += value.length;\n\t } else {\n\t while (chars + value.length >= splitChars) {\n\t screenColumn = this.$renderToken(\n\t stringBuilder, screenColumn,\n\t token, value.substring(0, splitChars - chars)\n\t );\n\t value = value.substring(splitChars - chars);\n\t chars = splitChars;\n\n\t if (!onlyContents) {\n\t stringBuilder.push(\"</div>\",\n\t \"<div class='ace_line' style='height:\",\n\t this.config.lineHeight, \"px'>\"\n\t );\n\t }\n\n\t stringBuilder.push(lang.stringRepeat(\"\\xa0\", splits.indent));\n\n\t split ++;\n\t screenColumn = 0;\n\t splitChars = splits[split] || Number.MAX_VALUE;\n\t }\n\t if (value.length != 0) {\n\t chars += value.length;\n\t screenColumn = this.$renderToken(\n\t stringBuilder, screenColumn, token, value\n\t );\n\t }\n\t }\n\t }\n\t };\n\n\t this.$renderSimpleLine = function(stringBuilder, tokens) {\n\t var screenColumn = 0;\n\t var token = tokens[0];\n\t var value = token.value;\n\t if (this.displayIndentGuides)\n\t value = this.renderIndentGuide(stringBuilder, value);\n\t if (value)\n\t screenColumn = this.$renderToken(stringBuilder, screenColumn, token, value);\n\t for (var i = 1; i < tokens.length; i++) {\n\t token = tokens[i];\n\t value = token.value;\n\t screenColumn = this.$renderToken(stringBuilder, screenColumn, token, value);\n\t }\n\t };\n\t this.$renderLine = function(stringBuilder, row, onlyContents, foldLine) {\n\t if (!foldLine && foldLine != false)\n\t foldLine = this.session.getFoldLine(row);\n\n\t if (foldLine)\n\t var tokens = this.$getFoldLineTokens(row, foldLine);\n\t else\n\t var tokens = this.session.getTokens(row);\n\n\n\t if (!onlyContents) {\n\t stringBuilder.push(\n\t \"<div class='ace_line' style='height:\", \n\t this.config.lineHeight * (\n\t this.$useLineGroups() ? 1 :this.session.getRowLength(row)\n\t ), \"px'>\"\n\t );\n\t }\n\n\t if (tokens.length) {\n\t var splits = this.session.getRowSplitData(row);\n\t if (splits && splits.length)\n\t this.$renderWrappedLine(stringBuilder, tokens, splits, onlyContents);\n\t else\n\t this.$renderSimpleLine(stringBuilder, tokens);\n\t }\n\n\t if (this.showInvisibles) {\n\t if (foldLine)\n\t row = foldLine.end.row\n\n\t stringBuilder.push(\n\t \"<span class='ace_invisible ace_invisible_eol'>\",\n\t row == this.session.getLength() - 1 ? this.EOF_CHAR : this.EOL_CHAR,\n\t \"</span>\"\n\t );\n\t }\n\t if (!onlyContents)\n\t stringBuilder.push(\"</div>\");\n\t };\n\n\t this.$getFoldLineTokens = function(row, foldLine) {\n\t var session = this.session;\n\t var renderTokens = [];\n\n\t function addTokens(tokens, from, to) {\n\t var idx = 0, col = 0;\n\t while ((col + tokens[idx].value.length) < from) {\n\t col += tokens[idx].value.length;\n\t idx++;\n\n\t if (idx == tokens.length)\n\t return;\n\t }\n\t if (col != from) {\n\t var value = tokens[idx].value.substring(from - col);\n\t if (value.length > (to - from))\n\t value = value.substring(0, to - from);\n\n\t renderTokens.push({\n\t type: tokens[idx].type,\n\t value: value\n\t });\n\n\t col = from + value.length;\n\t idx += 1;\n\t }\n\n\t while (col < to && idx < tokens.length) {\n\t var value = tokens[idx].value;\n\t if (value.length + col > to) {\n\t renderTokens.push({\n\t type: tokens[idx].type,\n\t value: value.substring(0, to - col)\n\t });\n\t } else\n\t renderTokens.push(tokens[idx]);\n\t col += value.length;\n\t idx += 1;\n\t }\n\t }\n\n\t var tokens = session.getTokens(row);\n\t foldLine.walk(function(placeholder, row, column, lastColumn, isNewRow) {\n\t if (placeholder != null) {\n\t renderTokens.push({\n\t type: \"fold\",\n\t value: placeholder\n\t });\n\t } else {\n\t if (isNewRow)\n\t tokens = session.getTokens(row);\n\n\t if (tokens.length)\n\t addTokens(tokens, lastColumn, column);\n\t }\n\t }, foldLine.end.row, this.session.getLine(foldLine.end.row).length);\n\n\t return renderTokens;\n\t };\n\n\t this.$useLineGroups = function() {\n\t return this.session.getUseWrapMode();\n\t };\n\n\t this.destroy = function() {\n\t clearInterval(this.$pollSizeChangesTimer);\n\t if (this.$measureNode)\n\t this.$measureNode.parentNode.removeChild(this.$measureNode);\n\t delete this.$measureNode;\n\t };\n\n\t}).call(Text.prototype);\n\n\texports.Text = Text;\n\n\t});\n\n\tace.define(\"ace/layer/cursor\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar dom = acequire(\"../lib/dom\");\n\tvar isIE8;\n\n\tvar Cursor = function(parentEl) {\n\t this.element = dom.createElement(\"div\");\n\t this.element.className = \"ace_layer ace_cursor-layer\";\n\t parentEl.appendChild(this.element);\n\t \n\t if (isIE8 === undefined)\n\t isIE8 = !(\"opacity\" in this.element.style);\n\n\t this.isVisible = false;\n\t this.isBlinking = true;\n\t this.blinkInterval = 1000;\n\t this.smoothBlinking = false;\n\n\t this.cursors = [];\n\t this.cursor = this.addCursor();\n\t dom.addCssClass(this.element, \"ace_hidden-cursors\");\n\t this.$updateCursors = (isIE8\n\t ? this.$updateVisibility\n\t : this.$updateOpacity).bind(this);\n\t};\n\n\t(function() {\n\t \n\t this.$updateVisibility = function(val) {\n\t var cursors = this.cursors;\n\t for (var i = cursors.length; i--; )\n\t cursors[i].style.visibility = val ? \"\" : \"hidden\";\n\t };\n\t this.$updateOpacity = function(val) {\n\t var cursors = this.cursors;\n\t for (var i = cursors.length; i--; )\n\t cursors[i].style.opacity = val ? \"\" : \"0\";\n\t };\n\t \n\n\t this.$padding = 0;\n\t this.setPadding = function(padding) {\n\t this.$padding = padding;\n\t };\n\n\t this.setSession = function(session) {\n\t this.session = session;\n\t };\n\n\t this.setBlinking = function(blinking) {\n\t if (blinking != this.isBlinking){\n\t this.isBlinking = blinking;\n\t this.restartTimer();\n\t }\n\t };\n\n\t this.setBlinkInterval = function(blinkInterval) {\n\t if (blinkInterval != this.blinkInterval){\n\t this.blinkInterval = blinkInterval;\n\t this.restartTimer();\n\t }\n\t };\n\n\t this.setSmoothBlinking = function(smoothBlinking) {\n\t if (smoothBlinking != this.smoothBlinking && !isIE8) {\n\t this.smoothBlinking = smoothBlinking;\n\t dom.setCssClass(this.element, \"ace_smooth-blinking\", smoothBlinking);\n\t this.$updateCursors(true);\n\t this.$updateCursors = (this.$updateOpacity).bind(this);\n\t this.restartTimer();\n\t }\n\t };\n\n\t this.addCursor = function() {\n\t var el = dom.createElement(\"div\");\n\t el.className = \"ace_cursor\";\n\t this.element.appendChild(el);\n\t this.cursors.push(el);\n\t return el;\n\t };\n\n\t this.removeCursor = function() {\n\t if (this.cursors.length > 1) {\n\t var el = this.cursors.pop();\n\t el.parentNode.removeChild(el);\n\t return el;\n\t }\n\t };\n\n\t this.hideCursor = function() {\n\t this.isVisible = false;\n\t dom.addCssClass(this.element, \"ace_hidden-cursors\");\n\t this.restartTimer();\n\t };\n\n\t this.showCursor = function() {\n\t this.isVisible = true;\n\t dom.removeCssClass(this.element, \"ace_hidden-cursors\");\n\t this.restartTimer();\n\t };\n\n\t this.restartTimer = function() {\n\t var update = this.$updateCursors;\n\t clearInterval(this.intervalId);\n\t clearTimeout(this.timeoutId);\n\t if (this.smoothBlinking) {\n\t dom.removeCssClass(this.element, \"ace_smooth-blinking\");\n\t }\n\t \n\t update(true);\n\n\t if (!this.isBlinking || !this.blinkInterval || !this.isVisible)\n\t return;\n\n\t if (this.smoothBlinking) {\n\t setTimeout(function(){\n\t dom.addCssClass(this.element, \"ace_smooth-blinking\");\n\t }.bind(this));\n\t }\n\t \n\t var blink = function(){\n\t this.timeoutId = setTimeout(function() {\n\t update(false);\n\t }, 0.6 * this.blinkInterval);\n\t }.bind(this);\n\n\t this.intervalId = setInterval(function() {\n\t update(true);\n\t blink();\n\t }, this.blinkInterval);\n\n\t blink();\n\t };\n\n\t this.getPixelPosition = function(position, onScreen) {\n\t if (!this.config || !this.session)\n\t return {left : 0, top : 0};\n\n\t if (!position)\n\t position = this.session.selection.getCursor();\n\t var pos = this.session.documentToScreenPosition(position);\n\t var cursorLeft = this.$padding + pos.column * this.config.characterWidth;\n\t var cursorTop = (pos.row - (onScreen ? this.config.firstRowScreen : 0)) *\n\t this.config.lineHeight;\n\n\t return {left : cursorLeft, top : cursorTop};\n\t };\n\n\t this.update = function(config) {\n\t this.config = config;\n\n\t var selections = this.session.$selectionMarkers;\n\t var i = 0, cursorIndex = 0;\n\n\t if (selections === undefined || selections.length === 0){\n\t selections = [{cursor: null}];\n\t }\n\n\t for (var i = 0, n = selections.length; i < n; i++) {\n\t var pixelPos = this.getPixelPosition(selections[i].cursor, true);\n\t if ((pixelPos.top > config.height + config.offset ||\n\t pixelPos.top < 0) && i > 1) {\n\t continue;\n\t }\n\n\t var style = (this.cursors[cursorIndex++] || this.addCursor()).style;\n\t \n\t if (!this.drawCursor) {\n\t style.left = pixelPos.left + \"px\";\n\t style.top = pixelPos.top + \"px\";\n\t style.width = config.characterWidth + \"px\";\n\t style.height = config.lineHeight + \"px\";\n\t } else {\n\t this.drawCursor(style, pixelPos, config, selections[i], this.session);\n\t }\n\t }\n\t while (this.cursors.length > cursorIndex)\n\t this.removeCursor();\n\n\t var overwrite = this.session.getOverwrite();\n\t this.$setOverwrite(overwrite);\n\t this.$pixelPos = pixelPos;\n\t this.restartTimer();\n\t };\n\t \n\t this.drawCursor = null;\n\n\t this.$setOverwrite = function(overwrite) {\n\t if (overwrite != this.overwrite) {\n\t this.overwrite = overwrite;\n\t if (overwrite)\n\t dom.addCssClass(this.element, \"ace_overwrite-cursors\");\n\t else\n\t dom.removeCssClass(this.element, \"ace_overwrite-cursors\");\n\t }\n\t };\n\n\t this.destroy = function() {\n\t clearInterval(this.intervalId);\n\t clearTimeout(this.timeoutId);\n\t };\n\n\t}).call(Cursor.prototype);\n\n\texports.Cursor = Cursor;\n\n\t});\n\n\tace.define(\"ace/scrollbar\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar oop = acequire(\"./lib/oop\");\n\tvar dom = acequire(\"./lib/dom\");\n\tvar event = acequire(\"./lib/event\");\n\tvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\n\tvar MAX_SCROLL_H = 0x8000;\n\tvar ScrollBar = function(parent) {\n\t this.element = dom.createElement(\"div\");\n\t this.element.className = \"ace_scrollbar ace_scrollbar\" + this.classSuffix;\n\n\t this.inner = dom.createElement(\"div\");\n\t this.inner.className = \"ace_scrollbar-inner\";\n\t this.element.appendChild(this.inner);\n\n\t parent.appendChild(this.element);\n\n\t this.setVisible(false);\n\t this.skipEvent = false;\n\n\t event.addListener(this.element, \"scroll\", this.onScroll.bind(this));\n\t event.addListener(this.element, \"mousedown\", event.preventDefault);\n\t};\n\n\t(function() {\n\t oop.implement(this, EventEmitter);\n\n\t this.setVisible = function(isVisible) {\n\t this.element.style.display = isVisible ? \"\" : \"none\";\n\t this.isVisible = isVisible;\n\t this.coeff = 1;\n\t };\n\t}).call(ScrollBar.prototype);\n\tvar VScrollBar = function(parent, renderer) {\n\t ScrollBar.call(this, parent);\n\t this.scrollTop = 0;\n\t this.scrollHeight = 0;\n\t renderer.$scrollbarWidth = \n\t this.width = dom.scrollbarWidth(parent.ownerDocument);\n\t this.inner.style.width =\n\t this.element.style.width = (this.width || 15) + 5 + \"px\";\n\t};\n\n\toop.inherits(VScrollBar, ScrollBar);\n\n\t(function() {\n\n\t this.classSuffix = '-v';\n\t this.onScroll = function() {\n\t if (!this.skipEvent) {\n\t this.scrollTop = this.element.scrollTop;\n\t if (this.coeff != 1) {\n\t var h = this.element.clientHeight / this.scrollHeight;\n\t this.scrollTop = this.scrollTop * (1 - h) / (this.coeff - h);\n\t }\n\t this._emit(\"scroll\", {data: this.scrollTop});\n\t }\n\t this.skipEvent = false;\n\t };\n\t this.getWidth = function() {\n\t return this.isVisible ? this.width : 0;\n\t };\n\t this.setHeight = function(height) {\n\t this.element.style.height = height + \"px\";\n\t };\n\t this.setInnerHeight =\n\t this.setScrollHeight = function(height) {\n\t this.scrollHeight = height;\n\t if (height > MAX_SCROLL_H) {\n\t this.coeff = MAX_SCROLL_H / height;\n\t height = MAX_SCROLL_H;\n\t } else if (this.coeff != 1) {\n\t this.coeff = 1\n\t }\n\t this.inner.style.height = height + \"px\";\n\t };\n\t this.setScrollTop = function(scrollTop) {\n\t if (this.scrollTop != scrollTop) {\n\t this.skipEvent = true;\n\t this.scrollTop = scrollTop;\n\t this.element.scrollTop = scrollTop * this.coeff;\n\t }\n\t };\n\n\t}).call(VScrollBar.prototype);\n\tvar HScrollBar = function(parent, renderer) {\n\t ScrollBar.call(this, parent);\n\t this.scrollLeft = 0;\n\t this.height = renderer.$scrollbarWidth;\n\t this.inner.style.height =\n\t this.element.style.height = (this.height || 15) + 5 + \"px\";\n\t};\n\n\toop.inherits(HScrollBar, ScrollBar);\n\n\t(function() {\n\n\t this.classSuffix = '-h';\n\t this.onScroll = function() {\n\t if (!this.skipEvent) {\n\t this.scrollLeft = this.element.scrollLeft;\n\t this._emit(\"scroll\", {data: this.scrollLeft});\n\t }\n\t this.skipEvent = false;\n\t };\n\t this.getHeight = function() {\n\t return this.isVisible ? this.height : 0;\n\t };\n\t this.setWidth = function(width) {\n\t this.element.style.width = width + \"px\";\n\t };\n\t this.setInnerWidth = function(width) {\n\t this.inner.style.width = width + \"px\";\n\t };\n\t this.setScrollWidth = function(width) {\n\t this.inner.style.width = width + \"px\";\n\t };\n\t this.setScrollLeft = function(scrollLeft) {\n\t if (this.scrollLeft != scrollLeft) {\n\t this.skipEvent = true;\n\t this.scrollLeft = this.element.scrollLeft = scrollLeft;\n\t }\n\t };\n\n\t}).call(HScrollBar.prototype);\n\n\n\texports.ScrollBar = VScrollBar; // backward compatibility\n\texports.ScrollBarV = VScrollBar; // backward compatibility\n\texports.ScrollBarH = HScrollBar; // backward compatibility\n\n\texports.VScrollBar = VScrollBar;\n\texports.HScrollBar = HScrollBar;\n\t});\n\n\tace.define(\"ace/renderloop\",[\"require\",\"exports\",\"module\",\"ace/lib/event\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar event = acequire(\"./lib/event\");\n\n\n\tvar RenderLoop = function(onRender, win) {\n\t this.onRender = onRender;\n\t this.pending = false;\n\t this.changes = 0;\n\t this.window = win || window;\n\t};\n\n\t(function() {\n\n\n\t this.schedule = function(change) {\n\t this.changes = this.changes | change;\n\t if (!this.pending && this.changes) {\n\t this.pending = true;\n\t var _self = this;\n\t event.nextFrame(function() {\n\t _self.pending = false;\n\t var changes;\n\t while (changes = _self.changes) {\n\t _self.changes = 0;\n\t _self.onRender(changes);\n\t }\n\t }, this.window);\n\t }\n\t };\n\n\t}).call(RenderLoop.prototype);\n\n\texports.RenderLoop = RenderLoop;\n\t});\n\n\tace.define(\"ace/layer/font_metrics\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\n\tvar oop = acequire(\"../lib/oop\");\n\tvar dom = acequire(\"../lib/dom\");\n\tvar lang = acequire(\"../lib/lang\");\n\tvar useragent = acequire(\"../lib/useragent\");\n\tvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\n\tvar CHAR_COUNT = 0;\n\n\tvar FontMetrics = exports.FontMetrics = function(parentEl) {\n\t this.el = dom.createElement(\"div\");\n\t this.$setMeasureNodeStyles(this.el.style, true);\n\t \n\t this.$main = dom.createElement(\"div\");\n\t this.$setMeasureNodeStyles(this.$main.style);\n\t \n\t this.$measureNode = dom.createElement(\"div\");\n\t this.$setMeasureNodeStyles(this.$measureNode.style);\n\t \n\t \n\t this.el.appendChild(this.$main);\n\t this.el.appendChild(this.$measureNode);\n\t parentEl.appendChild(this.el);\n\t \n\t if (!CHAR_COUNT)\n\t this.$testFractionalRect();\n\t this.$measureNode.innerHTML = lang.stringRepeat(\"X\", CHAR_COUNT);\n\t \n\t this.$characterSize = {width: 0, height: 0};\n\t this.checkForSizeChanges();\n\t};\n\n\t(function() {\n\n\t oop.implement(this, EventEmitter);\n\t \n\t this.$characterSize = {width: 0, height: 0};\n\t \n\t this.$testFractionalRect = function() {\n\t var el = dom.createElement(\"div\");\n\t this.$setMeasureNodeStyles(el.style);\n\t el.style.width = \"0.2px\";\n\t document.documentElement.appendChild(el);\n\t var w = el.getBoundingClientRect().width;\n\t if (w > 0 && w < 1)\n\t CHAR_COUNT = 50;\n\t else\n\t CHAR_COUNT = 100;\n\t el.parentNode.removeChild(el);\n\t };\n\t \n\t this.$setMeasureNodeStyles = function(style, isRoot) {\n\t style.width = style.height = \"auto\";\n\t style.left = style.top = \"0px\";\n\t style.visibility = \"hidden\";\n\t style.position = \"absolute\";\n\t style.whiteSpace = \"pre\";\n\n\t if (useragent.isIE < 8) {\n\t style[\"font-family\"] = \"inherit\";\n\t } else {\n\t style.font = \"inherit\";\n\t }\n\t style.overflow = isRoot ? \"hidden\" : \"visible\";\n\t };\n\n\t this.checkForSizeChanges = function() {\n\t var size = this.$measureSizes();\n\t if (size && (this.$characterSize.width !== size.width || this.$characterSize.height !== size.height)) {\n\t this.$measureNode.style.fontWeight = \"bold\";\n\t var boldSize = this.$measureSizes();\n\t this.$measureNode.style.fontWeight = \"\";\n\t this.$characterSize = size;\n\t this.charSizes = Object.create(null);\n\t this.allowBoldFonts = boldSize && boldSize.width === size.width && boldSize.height === size.height;\n\t this._emit(\"changeCharacterSize\", {data: size});\n\t }\n\t };\n\n\t this.$pollSizeChanges = function() {\n\t if (this.$pollSizeChangesTimer)\n\t return this.$pollSizeChangesTimer;\n\t var self = this;\n\t return this.$pollSizeChangesTimer = setInterval(function() {\n\t self.checkForSizeChanges();\n\t }, 500);\n\t };\n\t \n\t this.setPolling = function(val) {\n\t if (val) {\n\t this.$pollSizeChanges();\n\t } else if (this.$pollSizeChangesTimer) {\n\t clearInterval(this.$pollSizeChangesTimer);\n\t this.$pollSizeChangesTimer = 0;\n\t }\n\t };\n\n\t this.$measureSizes = function() {\n\t if (CHAR_COUNT === 50) {\n\t var rect = null;\n\t try { \n\t rect = this.$measureNode.getBoundingClientRect();\n\t } catch(e) {\n\t rect = {width: 0, height:0 };\n\t }\n\t var size = {\n\t height: rect.height,\n\t width: rect.width / CHAR_COUNT\n\t };\n\t } else {\n\t var size = {\n\t height: this.$measureNode.clientHeight,\n\t width: this.$measureNode.clientWidth / CHAR_COUNT\n\t };\n\t }\n\t if (size.width === 0 || size.height === 0)\n\t return null;\n\t return size;\n\t };\n\n\t this.$measureCharWidth = function(ch) {\n\t this.$main.innerHTML = lang.stringRepeat(ch, CHAR_COUNT);\n\t var rect = this.$main.getBoundingClientRect();\n\t return rect.width / CHAR_COUNT;\n\t };\n\t \n\t this.getCharacterWidth = function(ch) {\n\t var w = this.charSizes[ch];\n\t if (w === undefined) {\n\t w = this.charSizes[ch] = this.$measureCharWidth(ch) / this.$characterSize.width;\n\t }\n\t return w;\n\t };\n\n\t this.destroy = function() {\n\t clearInterval(this.$pollSizeChangesTimer);\n\t if (this.el && this.el.parentNode)\n\t this.el.parentNode.removeChild(this.el);\n\t };\n\n\t}).call(FontMetrics.prototype);\n\n\t});\n\n\tace.define(\"ace/virtual_renderer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/config\",\"ace/lib/useragent\",\"ace/layer/gutter\",\"ace/layer/marker\",\"ace/layer/text\",\"ace/layer/cursor\",\"ace/scrollbar\",\"ace/scrollbar\",\"ace/renderloop\",\"ace/layer/font_metrics\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar oop = acequire(\"./lib/oop\");\n\tvar dom = acequire(\"./lib/dom\");\n\tvar config = acequire(\"./config\");\n\tvar useragent = acequire(\"./lib/useragent\");\n\tvar GutterLayer = acequire(\"./layer/gutter\").Gutter;\n\tvar MarkerLayer = acequire(\"./layer/marker\").Marker;\n\tvar TextLayer = acequire(\"./layer/text\").Text;\n\tvar CursorLayer = acequire(\"./layer/cursor\").Cursor;\n\tvar HScrollBar = acequire(\"./scrollbar\").HScrollBar;\n\tvar VScrollBar = acequire(\"./scrollbar\").VScrollBar;\n\tvar RenderLoop = acequire(\"./renderloop\").RenderLoop;\n\tvar FontMetrics = acequire(\"./layer/font_metrics\").FontMetrics;\n\tvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\n\tvar editorCss = \".ace_editor {\\\n\tposition: relative;\\\n\toverflow: hidden;\\\n\tfont: 12px/normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace;\\\n\tdirection: ltr;\\\n\ttext-align: left;\\\n\t}\\\n\t.ace_scroller {\\\n\tposition: absolute;\\\n\toverflow: hidden;\\\n\ttop: 0;\\\n\tbottom: 0;\\\n\tbackground-color: inherit;\\\n\t-ms-user-select: none;\\\n\t-moz-user-select: none;\\\n\t-webkit-user-select: none;\\\n\tuser-select: none;\\\n\tcursor: text;\\\n\t}\\\n\t.ace_content {\\\n\tposition: absolute;\\\n\t-moz-box-sizing: border-box;\\\n\t-webkit-box-sizing: border-box;\\\n\tbox-sizing: border-box;\\\n\tmin-width: 100%;\\\n\t}\\\n\t.ace_dragging .ace_scroller:before{\\\n\tposition: absolute;\\\n\ttop: 0;\\\n\tleft: 0;\\\n\tright: 0;\\\n\tbottom: 0;\\\n\tcontent: '';\\\n\tbackground: rgba(250, 250, 250, 0.01);\\\n\tz-index: 1000;\\\n\t}\\\n\t.ace_dragging.ace_dark .ace_scroller:before{\\\n\tbackground: rgba(0, 0, 0, 0.01);\\\n\t}\\\n\t.ace_selecting, .ace_selecting * {\\\n\tcursor: text !important;\\\n\t}\\\n\t.ace_gutter {\\\n\tposition: absolute;\\\n\toverflow : hidden;\\\n\twidth: auto;\\\n\ttop: 0;\\\n\tbottom: 0;\\\n\tleft: 0;\\\n\tcursor: default;\\\n\tz-index: 4;\\\n\t-ms-user-select: none;\\\n\t-moz-user-select: none;\\\n\t-webkit-user-select: none;\\\n\tuser-select: none;\\\n\t}\\\n\t.ace_gutter-active-line {\\\n\tposition: absolute;\\\n\tleft: 0;\\\n\tright: 0;\\\n\t}\\\n\t.ace_scroller.ace_scroll-left {\\\n\tbox-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;\\\n\t}\\\n\t.ace_gutter-cell {\\\n\tpadding-left: 19px;\\\n\tpadding-right: 6px;\\\n\tbackground-repeat: no-repeat;\\\n\t}\\\n\t.ace_gutter-cell.ace_error {\\\n\tbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==\\\");\\\n\tbackground-repeat: no-repeat;\\\n\tbackground-position: 2px center;\\\n\t}\\\n\t.ace_gutter-cell.ace_warning {\\\n\tbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==\\\");\\\n\tbackground-position: 2px center;\\\n\t}\\\n\t.ace_gutter-cell.ace_info {\\\n\tbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=\\\");\\\n\tbackground-position: 2px center;\\\n\t}\\\n\t.ace_dark .ace_gutter-cell.ace_info {\\\n\tbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC\\\");\\\n\t}\\\n\t.ace_scrollbar {\\\n\tposition: absolute;\\\n\tright: 0;\\\n\tbottom: 0;\\\n\tz-index: 6;\\\n\t}\\\n\t.ace_scrollbar-inner {\\\n\tposition: absolute;\\\n\tcursor: text;\\\n\tleft: 0;\\\n\ttop: 0;\\\n\t}\\\n\t.ace_scrollbar-v{\\\n\toverflow-x: hidden;\\\n\toverflow-y: scroll;\\\n\ttop: 0;\\\n\t}\\\n\t.ace_scrollbar-h {\\\n\toverflow-x: scroll;\\\n\toverflow-y: hidden;\\\n\tleft: 0;\\\n\t}\\\n\t.ace_print-margin {\\\n\tposition: absolute;\\\n\theight: 100%;\\\n\t}\\\n\t.ace_text-input {\\\n\tposition: absolute;\\\n\tz-index: 0;\\\n\twidth: 0.5em;\\\n\theight: 1em;\\\n\topacity: 0;\\\n\tbackground: transparent;\\\n\t-moz-appearance: none;\\\n\tappearance: none;\\\n\tborder: none;\\\n\tresize: none;\\\n\toutline: none;\\\n\toverflow: hidden;\\\n\tfont: inherit;\\\n\tpadding: 0 1px;\\\n\tmargin: 0 -1px;\\\n\ttext-indent: -1em;\\\n\t-ms-user-select: text;\\\n\t-moz-user-select: text;\\\n\t-webkit-user-select: text;\\\n\tuser-select: text;\\\n\twhite-space: pre!important;\\\n\t}\\\n\t.ace_text-input.ace_composition {\\\n\tbackground: inherit;\\\n\tcolor: inherit;\\\n\tz-index: 1000;\\\n\topacity: 1;\\\n\ttext-indent: 0;\\\n\t}\\\n\t.ace_layer {\\\n\tz-index: 1;\\\n\tposition: absolute;\\\n\toverflow: hidden;\\\n\tword-wrap: normal;\\\n\twhite-space: pre;\\\n\theight: 100%;\\\n\twidth: 100%;\\\n\t-moz-box-sizing: border-box;\\\n\t-webkit-box-sizing: border-box;\\\n\tbox-sizing: border-box;\\\n\tpointer-events: none;\\\n\t}\\\n\t.ace_gutter-layer {\\\n\tposition: relative;\\\n\twidth: auto;\\\n\ttext-align: right;\\\n\tpointer-events: auto;\\\n\t}\\\n\t.ace_text-layer {\\\n\tfont: inherit !important;\\\n\t}\\\n\t.ace_cjk {\\\n\tdisplay: inline-block;\\\n\ttext-align: center;\\\n\t}\\\n\t.ace_cursor-layer {\\\n\tz-index: 4;\\\n\t}\\\n\t.ace_cursor {\\\n\tz-index: 4;\\\n\tposition: absolute;\\\n\t-moz-box-sizing: border-box;\\\n\t-webkit-box-sizing: border-box;\\\n\tbox-sizing: border-box;\\\n\tborder-left: 2px solid;\\\n\ttransform: translatez(0);\\\n\t}\\\n\t.ace_slim-cursors .ace_cursor {\\\n\tborder-left-width: 1px;\\\n\t}\\\n\t.ace_overwrite-cursors .ace_cursor {\\\n\tborder-left-width: 0;\\\n\tborder-bottom: 1px solid;\\\n\t}\\\n\t.ace_hidden-cursors .ace_cursor {\\\n\topacity: 0.2;\\\n\t}\\\n\t.ace_smooth-blinking .ace_cursor {\\\n\t-webkit-transition: opacity 0.18s;\\\n\ttransition: opacity 0.18s;\\\n\t}\\\n\t.ace_editor.ace_multiselect .ace_cursor {\\\n\tborder-left-width: 1px;\\\n\t}\\\n\t.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\\\n\tposition: absolute;\\\n\tz-index: 3;\\\n\t}\\\n\t.ace_marker-layer .ace_selection {\\\n\tposition: absolute;\\\n\tz-index: 5;\\\n\t}\\\n\t.ace_marker-layer .ace_bracket {\\\n\tposition: absolute;\\\n\tz-index: 6;\\\n\t}\\\n\t.ace_marker-layer .ace_active-line {\\\n\tposition: absolute;\\\n\tz-index: 2;\\\n\t}\\\n\t.ace_marker-layer .ace_selected-word {\\\n\tposition: absolute;\\\n\tz-index: 4;\\\n\t-moz-box-sizing: border-box;\\\n\t-webkit-box-sizing: border-box;\\\n\tbox-sizing: border-box;\\\n\t}\\\n\t.ace_line .ace_fold {\\\n\t-moz-box-sizing: border-box;\\\n\t-webkit-box-sizing: border-box;\\\n\tbox-sizing: border-box;\\\n\tdisplay: inline-block;\\\n\theight: 11px;\\\n\tmargin-top: -2px;\\\n\tvertical-align: middle;\\\n\tbackground-image:\\\n\turl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\\n\turl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=\\\");\\\n\tbackground-repeat: no-repeat, repeat-x;\\\n\tbackground-position: center center, top left;\\\n\tcolor: transparent;\\\n\tborder: 1px solid black;\\\n\tborder-radius: 2px;\\\n\tcursor: pointer;\\\n\tpointer-events: auto;\\\n\t}\\\n\t.ace_dark .ace_fold {\\\n\t}\\\n\t.ace_fold:hover{\\\n\tbackground-image:\\\n\turl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\\n\turl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC\\\");\\\n\t}\\\n\t.ace_tooltip {\\\n\tbackground-color: #FFF;\\\n\tbackground-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1));\\\n\tbackground-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));\\\n\tborder: 1px solid gray;\\\n\tborder-radius: 1px;\\\n\tbox-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\\\n\tcolor: black;\\\n\tmax-width: 100%;\\\n\tpadding: 3px 4px;\\\n\tposition: fixed;\\\n\tz-index: 999999;\\\n\t-moz-box-sizing: border-box;\\\n\t-webkit-box-sizing: border-box;\\\n\tbox-sizing: border-box;\\\n\tcursor: default;\\\n\twhite-space: pre;\\\n\tword-wrap: break-word;\\\n\tline-height: normal;\\\n\tfont-style: normal;\\\n\tfont-weight: normal;\\\n\tletter-spacing: normal;\\\n\tpointer-events: none;\\\n\t}\\\n\t.ace_folding-enabled > .ace_gutter-cell {\\\n\tpadding-right: 13px;\\\n\t}\\\n\t.ace_fold-widget {\\\n\t-moz-box-sizing: border-box;\\\n\t-webkit-box-sizing: border-box;\\\n\tbox-sizing: border-box;\\\n\tmargin: 0 -12px 0 1px;\\\n\tdisplay: none;\\\n\twidth: 11px;\\\n\tvertical-align: top;\\\n\tbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==\\\");\\\n\tbackground-repeat: no-repeat;\\\n\tbackground-position: center;\\\n\tborder-radius: 3px;\\\n\tborder: 1px solid transparent;\\\n\tcursor: pointer;\\\n\t}\\\n\t.ace_folding-enabled .ace_fold-widget {\\\n\tdisplay: inline-block; \\\n\t}\\\n\t.ace_fold-widget.ace_end {\\\n\tbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==\\\");\\\n\t}\\\n\t.ace_fold-widget.ace_closed {\\\n\tbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==\\\");\\\n\t}\\\n\t.ace_fold-widget:hover {\\\n\tborder: 1px solid rgba(0, 0, 0, 0.3);\\\n\tbackground-color: rgba(255, 255, 255, 0.2);\\\n\tbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\\\n\t}\\\n\t.ace_fold-widget:active {\\\n\tborder: 1px solid rgba(0, 0, 0, 0.4);\\\n\tbackground-color: rgba(0, 0, 0, 0.05);\\\n\tbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\\\n\t}\\\n\t.ace_dark .ace_fold-widget {\\\n\tbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC\\\");\\\n\t}\\\n\t.ace_dark .ace_fold-widget.ace_end {\\\n\tbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==\\\");\\\n\t}\\\n\t.ace_dark .ace_fold-widget.ace_closed {\\\n\tbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==\\\");\\\n\t}\\\n\t.ace_dark .ace_fold-widget:hover {\\\n\tbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\\n\tbackground-color: rgba(255, 255, 255, 0.1);\\\n\t}\\\n\t.ace_dark .ace_fold-widget:active {\\\n\tbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\\n\t}\\\n\t.ace_fold-widget.ace_invalid {\\\n\tbackground-color: #FFB4B4;\\\n\tborder-color: #DE5555;\\\n\t}\\\n\t.ace_fade-fold-widgets .ace_fold-widget {\\\n\t-webkit-transition: opacity 0.4s ease 0.05s;\\\n\ttransition: opacity 0.4s ease 0.05s;\\\n\topacity: 0;\\\n\t}\\\n\t.ace_fade-fold-widgets:hover .ace_fold-widget {\\\n\t-webkit-transition: opacity 0.05s ease 0.05s;\\\n\ttransition: opacity 0.05s ease 0.05s;\\\n\topacity:1;\\\n\t}\\\n\t.ace_underline {\\\n\ttext-decoration: underline;\\\n\t}\\\n\t.ace_bold {\\\n\tfont-weight: bold;\\\n\t}\\\n\t.ace_nobold .ace_bold {\\\n\tfont-weight: normal;\\\n\t}\\\n\t.ace_italic {\\\n\tfont-style: italic;\\\n\t}\\\n\t.ace_error-marker {\\\n\tbackground-color: rgba(255, 0, 0,0.2);\\\n\tposition: absolute;\\\n\tz-index: 9;\\\n\t}\\\n\t.ace_highlight-marker {\\\n\tbackground-color: rgba(255, 255, 0,0.2);\\\n\tposition: absolute;\\\n\tz-index: 8;\\\n\t}\\\n\t.ace_br1 {border-top-left-radius : 3px;}\\\n\t.ace_br2 {border-top-right-radius : 3px;}\\\n\t.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}\\\n\t.ace_br4 {border-bottom-right-radius: 3px;}\\\n\t.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}\\\n\t.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}\\\n\t.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}\\\n\t.ace_br8 {border-bottom-left-radius : 3px;}\\\n\t.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}\\\n\t.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}\\\n\t.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n\t.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n\t.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n\t.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n\t.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n\t\";\n\n\tdom.importCssString(editorCss, \"ace_editor.css\");\n\n\tvar VirtualRenderer = function(container, theme) {\n\t var _self = this;\n\n\t this.container = container || dom.createElement(\"div\");\n\t this.$keepTextAreaAtCursor = !useragent.isOldIE;\n\n\t dom.addCssClass(this.container, \"ace_editor\");\n\n\t this.setTheme(theme);\n\n\t this.$gutter = dom.createElement(\"div\");\n\t this.$gutter.className = \"ace_gutter\";\n\t this.container.appendChild(this.$gutter);\n\n\t this.scroller = dom.createElement(\"div\");\n\t this.scroller.className = \"ace_scroller\";\n\t this.container.appendChild(this.scroller);\n\n\t this.content = dom.createElement(\"div\");\n\t this.content.className = \"ace_content\";\n\t this.scroller.appendChild(this.content);\n\n\t this.$gutterLayer = new GutterLayer(this.$gutter);\n\t this.$gutterLayer.on(\"changeGutterWidth\", this.onGutterResize.bind(this));\n\n\t this.$markerBack = new MarkerLayer(this.content);\n\n\t var textLayer = this.$textLayer = new TextLayer(this.content);\n\t this.canvas = textLayer.element;\n\n\t this.$markerFront = new MarkerLayer(this.content);\n\n\t this.$cursorLayer = new CursorLayer(this.content);\n\t this.$horizScroll = false;\n\t this.$vScroll = false;\n\n\t this.scrollBar = \n\t this.scrollBarV = new VScrollBar(this.container, this);\n\t this.scrollBarH = new HScrollBar(this.container, this);\n\t this.scrollBarV.addEventListener(\"scroll\", function(e) {\n\t if (!_self.$scrollAnimation)\n\t _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n\t });\n\t this.scrollBarH.addEventListener(\"scroll\", function(e) {\n\t if (!_self.$scrollAnimation)\n\t _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n\t });\n\n\t this.scrollTop = 0;\n\t this.scrollLeft = 0;\n\n\t this.cursorPos = {\n\t row : 0,\n\t column : 0\n\t };\n\n\t this.$fontMetrics = new FontMetrics(this.container);\n\t this.$textLayer.$setFontMetrics(this.$fontMetrics);\n\t this.$textLayer.addEventListener(\"changeCharacterSize\", function(e) {\n\t _self.updateCharacterSize();\n\t _self.onResize(true, _self.gutterWidth, _self.$size.width, _self.$size.height);\n\t _self._signal(\"changeCharacterSize\", e);\n\t });\n\n\t this.$size = {\n\t width: 0,\n\t height: 0,\n\t scrollerHeight: 0,\n\t scrollerWidth: 0,\n\t $dirty: true\n\t };\n\n\t this.layerConfig = {\n\t width : 1,\n\t padding : 0,\n\t firstRow : 0,\n\t firstRowScreen: 0,\n\t lastRow : 0,\n\t lineHeight : 0,\n\t characterWidth : 0,\n\t minHeight : 1,\n\t maxHeight : 1,\n\t offset : 0,\n\t height : 1,\n\t gutterOffset: 1\n\t };\n\t \n\t this.scrollMargin = {\n\t left: 0,\n\t right: 0,\n\t top: 0,\n\t bottom: 0,\n\t v: 0,\n\t h: 0\n\t };\n\n\t this.$loop = new RenderLoop(\n\t this.$renderChanges.bind(this),\n\t this.container.ownerDocument.defaultView\n\t );\n\t this.$loop.schedule(this.CHANGE_FULL);\n\n\t this.updateCharacterSize();\n\t this.setPadding(4);\n\t config.resetOptions(this);\n\t config._emit(\"renderer\", this);\n\t};\n\n\t(function() {\n\n\t this.CHANGE_CURSOR = 1;\n\t this.CHANGE_MARKER = 2;\n\t this.CHANGE_GUTTER = 4;\n\t this.CHANGE_SCROLL = 8;\n\t this.CHANGE_LINES = 16;\n\t this.CHANGE_TEXT = 32;\n\t this.CHANGE_SIZE = 64;\n\t this.CHANGE_MARKER_BACK = 128;\n\t this.CHANGE_MARKER_FRONT = 256;\n\t this.CHANGE_FULL = 512;\n\t this.CHANGE_H_SCROLL = 1024;\n\n\t oop.implement(this, EventEmitter);\n\n\t this.updateCharacterSize = function() {\n\t if (this.$textLayer.allowBoldFonts != this.$allowBoldFonts) {\n\t this.$allowBoldFonts = this.$textLayer.allowBoldFonts;\n\t this.setStyle(\"ace_nobold\", !this.$allowBoldFonts);\n\t }\n\n\t this.layerConfig.characterWidth =\n\t this.characterWidth = this.$textLayer.getCharacterWidth();\n\t this.layerConfig.lineHeight =\n\t this.lineHeight = this.$textLayer.getLineHeight();\n\t this.$updatePrintMargin();\n\t };\n\t this.setSession = function(session) {\n\t if (this.session)\n\t this.session.doc.off(\"changeNewLineMode\", this.onChangeNewLineMode);\n\t \n\t this.session = session;\n\t if (session && this.scrollMargin.top && session.getScrollTop() <= 0)\n\t session.setScrollTop(-this.scrollMargin.top);\n\n\t this.$cursorLayer.setSession(session);\n\t this.$markerBack.setSession(session);\n\t this.$markerFront.setSession(session);\n\t this.$gutterLayer.setSession(session);\n\t this.$textLayer.setSession(session);\n\t if (!session)\n\t return;\n\t \n\t this.$loop.schedule(this.CHANGE_FULL);\n\t this.session.$setFontMetrics(this.$fontMetrics);\n\t this.scrollBarV.scrollLeft = this.scrollBarV.scrollTop = null;\n\t \n\t this.onChangeNewLineMode = this.onChangeNewLineMode.bind(this);\n\t this.onChangeNewLineMode()\n\t this.session.doc.on(\"changeNewLineMode\", this.onChangeNewLineMode);\n\t };\n\t this.updateLines = function(firstRow, lastRow, force) {\n\t if (lastRow === undefined)\n\t lastRow = Infinity;\n\n\t if (!this.$changedLines) {\n\t this.$changedLines = {\n\t firstRow: firstRow,\n\t lastRow: lastRow\n\t };\n\t }\n\t else {\n\t if (this.$changedLines.firstRow > firstRow)\n\t this.$changedLines.firstRow = firstRow;\n\n\t if (this.$changedLines.lastRow < lastRow)\n\t this.$changedLines.lastRow = lastRow;\n\t }\n\t if (this.$changedLines.lastRow < this.layerConfig.firstRow) {\n\t if (force)\n\t this.$changedLines.lastRow = this.layerConfig.lastRow;\n\t else\n\t return;\n\t }\n\t if (this.$changedLines.firstRow > this.layerConfig.lastRow)\n\t return;\n\t this.$loop.schedule(this.CHANGE_LINES);\n\t };\n\n\t this.onChangeNewLineMode = function() {\n\t this.$loop.schedule(this.CHANGE_TEXT);\n\t this.$textLayer.$updateEolChar();\n\t };\n\t \n\t this.onChangeTabSize = function() {\n\t this.$loop.schedule(this.CHANGE_TEXT | this.CHANGE_MARKER);\n\t this.$textLayer.onChangeTabSize();\n\t };\n\t this.updateText = function() {\n\t this.$loop.schedule(this.CHANGE_TEXT);\n\t };\n\t this.updateFull = function(force) {\n\t if (force)\n\t this.$renderChanges(this.CHANGE_FULL, true);\n\t else\n\t this.$loop.schedule(this.CHANGE_FULL);\n\t };\n\t this.updateFontSize = function() {\n\t this.$textLayer.checkForSizeChanges();\n\t };\n\n\t this.$changes = 0;\n\t this.$updateSizeAsync = function() {\n\t if (this.$loop.pending)\n\t this.$size.$dirty = true;\n\t else\n\t this.onResize();\n\t };\n\t this.onResize = function(force, gutterWidth, width, height) {\n\t if (this.resizing > 2)\n\t return;\n\t else if (this.resizing > 0)\n\t this.resizing++;\n\t else\n\t this.resizing = force ? 1 : 0;\n\t var el = this.container;\n\t if (!height)\n\t height = el.clientHeight || el.scrollHeight;\n\t if (!width)\n\t width = el.clientWidth || el.scrollWidth;\n\t var changes = this.$updateCachedSize(force, gutterWidth, width, height);\n\n\t \n\t if (!this.$size.scrollerHeight || (!width && !height))\n\t return this.resizing = 0;\n\n\t if (force)\n\t this.$gutterLayer.$padding = null;\n\n\t if (force)\n\t this.$renderChanges(changes | this.$changes, true);\n\t else\n\t this.$loop.schedule(changes | this.$changes);\n\n\t if (this.resizing)\n\t this.resizing = 0;\n\t this.scrollBarV.scrollLeft = this.scrollBarV.scrollTop = null;\n\t };\n\t \n\t this.$updateCachedSize = function(force, gutterWidth, width, height) {\n\t height -= (this.$extraHeight || 0);\n\t var changes = 0;\n\t var size = this.$size;\n\t var oldSize = {\n\t width: size.width,\n\t height: size.height,\n\t scrollerHeight: size.scrollerHeight,\n\t scrollerWidth: size.scrollerWidth\n\t };\n\t if (height && (force || size.height != height)) {\n\t size.height = height;\n\t changes |= this.CHANGE_SIZE;\n\n\t size.scrollerHeight = size.height;\n\t if (this.$horizScroll)\n\t size.scrollerHeight -= this.scrollBarH.getHeight();\n\t this.scrollBarV.element.style.bottom = this.scrollBarH.getHeight() + \"px\";\n\n\t changes = changes | this.CHANGE_SCROLL;\n\t }\n\n\t if (width && (force || size.width != width)) {\n\t changes |= this.CHANGE_SIZE;\n\t size.width = width;\n\t \n\t if (gutterWidth == null)\n\t gutterWidth = this.$showGutter ? this.$gutter.offsetWidth : 0;\n\t \n\t this.gutterWidth = gutterWidth;\n\t \n\t this.scrollBarH.element.style.left = \n\t this.scroller.style.left = gutterWidth + \"px\";\n\t size.scrollerWidth = Math.max(0, width - gutterWidth - this.scrollBarV.getWidth()); \n\t \n\t this.scrollBarH.element.style.right = \n\t this.scroller.style.right = this.scrollBarV.getWidth() + \"px\";\n\t this.scroller.style.bottom = this.scrollBarH.getHeight() + \"px\";\n\n\t if (this.session && this.session.getUseWrapMode() && this.adjustWrapLimit() || force)\n\t changes |= this.CHANGE_FULL;\n\t }\n\t \n\t size.$dirty = !width || !height;\n\n\t if (changes)\n\t this._signal(\"resize\", oldSize);\n\n\t return changes;\n\t };\n\n\t this.onGutterResize = function() {\n\t var gutterWidth = this.$showGutter ? this.$gutter.offsetWidth : 0;\n\t if (gutterWidth != this.gutterWidth)\n\t this.$changes |= this.$updateCachedSize(true, gutterWidth, this.$size.width, this.$size.height);\n\n\t if (this.session.getUseWrapMode() && this.adjustWrapLimit()) {\n\t this.$loop.schedule(this.CHANGE_FULL);\n\t } else if (this.$size.$dirty) {\n\t this.$loop.schedule(this.CHANGE_FULL);\n\t } else {\n\t this.$computeLayerConfig();\n\t this.$loop.schedule(this.CHANGE_MARKER);\n\t }\n\t };\n\t this.adjustWrapLimit = function() {\n\t var availableWidth = this.$size.scrollerWidth - this.$padding * 2;\n\t var limit = Math.floor(availableWidth / this.characterWidth);\n\t return this.session.adjustWrapLimit(limit, this.$showPrintMargin && this.$printMarginColumn);\n\t };\n\t this.setAnimatedScroll = function(shouldAnimate){\n\t this.setOption(\"animatedScroll\", shouldAnimate);\n\t };\n\t this.getAnimatedScroll = function() {\n\t return this.$animatedScroll;\n\t };\n\t this.setShowInvisibles = function(showInvisibles) {\n\t this.setOption(\"showInvisibles\", showInvisibles);\n\t };\n\t this.getShowInvisibles = function() {\n\t return this.getOption(\"showInvisibles\");\n\t };\n\t this.getDisplayIndentGuides = function() {\n\t return this.getOption(\"displayIndentGuides\");\n\t };\n\n\t this.setDisplayIndentGuides = function(display) {\n\t this.setOption(\"displayIndentGuides\", display);\n\t };\n\t this.setShowPrintMargin = function(showPrintMargin) {\n\t this.setOption(\"showPrintMargin\", showPrintMargin);\n\t };\n\t this.getShowPrintMargin = function() {\n\t return this.getOption(\"showPrintMargin\");\n\t };\n\t this.setPrintMarginColumn = function(showPrintMargin) {\n\t this.setOption(\"printMarginColumn\", showPrintMargin);\n\t };\n\t this.getPrintMarginColumn = function() {\n\t return this.getOption(\"printMarginColumn\");\n\t };\n\t this.getShowGutter = function(){\n\t return this.getOption(\"showGutter\");\n\t };\n\t this.setShowGutter = function(show){\n\t return this.setOption(\"showGutter\", show);\n\t };\n\n\t this.getFadeFoldWidgets = function(){\n\t return this.getOption(\"fadeFoldWidgets\")\n\t };\n\n\t this.setFadeFoldWidgets = function(show) {\n\t this.setOption(\"fadeFoldWidgets\", show);\n\t };\n\n\t this.setHighlightGutterLine = function(shouldHighlight) {\n\t this.setOption(\"highlightGutterLine\", shouldHighlight);\n\t };\n\n\t this.getHighlightGutterLine = function() {\n\t return this.getOption(\"highlightGutterLine\");\n\t };\n\n\t this.$updateGutterLineHighlight = function() {\n\t var pos = this.$cursorLayer.$pixelPos;\n\t var height = this.layerConfig.lineHeight;\n\t if (this.session.getUseWrapMode()) {\n\t var cursor = this.session.selection.getCursor();\n\t cursor.column = 0;\n\t pos = this.$cursorLayer.getPixelPosition(cursor, true);\n\t height *= this.session.getRowLength(cursor.row);\n\t }\n\t this.$gutterLineHighlight.style.top = pos.top - this.layerConfig.offset + \"px\";\n\t this.$gutterLineHighlight.style.height = height + \"px\";\n\t };\n\n\t this.$updatePrintMargin = function() {\n\t if (!this.$showPrintMargin && !this.$printMarginEl)\n\t return;\n\n\t if (!this.$printMarginEl) {\n\t var containerEl = dom.createElement(\"div\");\n\t containerEl.className = \"ace_layer ace_print-margin-layer\";\n\t this.$printMarginEl = dom.createElement(\"div\");\n\t this.$printMarginEl.className = \"ace_print-margin\";\n\t containerEl.appendChild(this.$printMarginEl);\n\t this.content.insertBefore(containerEl, this.content.firstChild);\n\t }\n\n\t var style = this.$printMarginEl.style;\n\t style.left = ((this.characterWidth * this.$printMarginColumn) + this.$padding) + \"px\";\n\t style.visibility = this.$showPrintMargin ? \"visible\" : \"hidden\";\n\t \n\t if (this.session && this.session.$wrap == -1)\n\t this.adjustWrapLimit();\n\t };\n\t this.getContainerElement = function() {\n\t return this.container;\n\t };\n\t this.getMouseEventTarget = function() {\n\t return this.scroller;\n\t };\n\t this.getTextAreaContainer = function() {\n\t return this.container;\n\t };\n\t this.$moveTextAreaToCursor = function() {\n\t if (!this.$keepTextAreaAtCursor)\n\t return;\n\t var config = this.layerConfig;\n\t var posTop = this.$cursorLayer.$pixelPos.top;\n\t var posLeft = this.$cursorLayer.$pixelPos.left;\n\t posTop -= config.offset;\n\n\t var style = this.textarea.style;\n\t var h = this.lineHeight;\n\t if (posTop < 0 || posTop > config.height - h) {\n\t style.top = style.left = \"0\";\n\t return;\n\t }\n\n\t var w = this.characterWidth;\n\t if (this.$composition) {\n\t var val = this.textarea.value.replace(/^\\x01+/, \"\");\n\t w *= (this.session.$getStringScreenWidth(val)[0]+2);\n\t h += 2;\n\t }\n\t posLeft -= this.scrollLeft;\n\t if (posLeft > this.$size.scrollerWidth - w)\n\t posLeft = this.$size.scrollerWidth - w;\n\n\t posLeft += this.gutterWidth;\n\t style.height = h + \"px\";\n\t style.width = w + \"px\";\n\t style.left = Math.min(posLeft, this.$size.scrollerWidth - w) + \"px\";\n\t style.top = Math.min(posTop, this.$size.height - h) + \"px\";\n\t };\n\t this.getFirstVisibleRow = function() {\n\t return this.layerConfig.firstRow;\n\t };\n\t this.getFirstFullyVisibleRow = function() {\n\t return this.layerConfig.firstRow + (this.layerConfig.offset === 0 ? 0 : 1);\n\t };\n\t this.getLastFullyVisibleRow = function() {\n\t var config = this.layerConfig;\n\t var lastRow = config.lastRow\n\t var top = this.session.documentToScreenRow(lastRow, 0) * config.lineHeight;\n\t if (top - this.session.getScrollTop() > config.height - config.lineHeight)\n\t return lastRow - 1;\n\t return lastRow;\n\t };\n\t this.getLastVisibleRow = function() {\n\t return this.layerConfig.lastRow;\n\t };\n\n\t this.$padding = null;\n\t this.setPadding = function(padding) {\n\t this.$padding = padding;\n\t this.$textLayer.setPadding(padding);\n\t this.$cursorLayer.setPadding(padding);\n\t this.$markerFront.setPadding(padding);\n\t this.$markerBack.setPadding(padding);\n\t this.$loop.schedule(this.CHANGE_FULL);\n\t this.$updatePrintMargin();\n\t };\n\t \n\t this.setScrollMargin = function(top, bottom, left, right) {\n\t var sm = this.scrollMargin;\n\t sm.top = top|0;\n\t sm.bottom = bottom|0;\n\t sm.right = right|0;\n\t sm.left = left|0;\n\t sm.v = sm.top + sm.bottom;\n\t sm.h = sm.left + sm.right;\n\t if (sm.top && this.scrollTop <= 0 && this.session)\n\t this.session.setScrollTop(-sm.top);\n\t this.updateFull();\n\t };\n\t this.getHScrollBarAlwaysVisible = function() {\n\t return this.$hScrollBarAlwaysVisible;\n\t };\n\t this.setHScrollBarAlwaysVisible = function(alwaysVisible) {\n\t this.setOption(\"hScrollBarAlwaysVisible\", alwaysVisible);\n\t };\n\t this.getVScrollBarAlwaysVisible = function() {\n\t return this.$vScrollBarAlwaysVisible;\n\t };\n\t this.setVScrollBarAlwaysVisible = function(alwaysVisible) {\n\t this.setOption(\"vScrollBarAlwaysVisible\", alwaysVisible);\n\t };\n\n\t this.$updateScrollBarV = function() {\n\t var scrollHeight = this.layerConfig.maxHeight;\n\t var scrollerHeight = this.$size.scrollerHeight;\n\t if (!this.$maxLines && this.$scrollPastEnd) {\n\t scrollHeight -= (scrollerHeight - this.lineHeight) * this.$scrollPastEnd;\n\t if (this.scrollTop > scrollHeight - scrollerHeight) {\n\t scrollHeight = this.scrollTop + scrollerHeight;\n\t this.scrollBarV.scrollTop = null;\n\t }\n\t }\n\t this.scrollBarV.setScrollHeight(scrollHeight + this.scrollMargin.v);\n\t this.scrollBarV.setScrollTop(this.scrollTop + this.scrollMargin.top);\n\t };\n\t this.$updateScrollBarH = function() {\n\t this.scrollBarH.setScrollWidth(this.layerConfig.width + 2 * this.$padding + this.scrollMargin.h);\n\t this.scrollBarH.setScrollLeft(this.scrollLeft + this.scrollMargin.left);\n\t };\n\t \n\t this.$frozen = false;\n\t this.freeze = function() {\n\t this.$frozen = true;\n\t };\n\t \n\t this.unfreeze = function() {\n\t this.$frozen = false;\n\t };\n\n\t this.$renderChanges = function(changes, force) {\n\t if (this.$changes) {\n\t changes |= this.$changes;\n\t this.$changes = 0;\n\t }\n\t if ((!this.session || !this.container.offsetWidth || this.$frozen) || (!changes && !force)) {\n\t this.$changes |= changes;\n\t return; \n\t } \n\t if (this.$size.$dirty) {\n\t this.$changes |= changes;\n\t return this.onResize(true);\n\t }\n\t if (!this.lineHeight) {\n\t this.$textLayer.checkForSizeChanges();\n\t }\n\t \n\t this._signal(\"beforeRender\");\n\t var config = this.layerConfig;\n\t if (changes & this.CHANGE_FULL ||\n\t changes & this.CHANGE_SIZE ||\n\t changes & this.CHANGE_TEXT ||\n\t changes & this.CHANGE_LINES ||\n\t changes & this.CHANGE_SCROLL ||\n\t changes & this.CHANGE_H_SCROLL\n\t ) {\n\t changes |= this.$computeLayerConfig();\n\t if (config.firstRow != this.layerConfig.firstRow && config.firstRowScreen == this.layerConfig.firstRowScreen) {\n\t var st = this.scrollTop + (config.firstRow - this.layerConfig.firstRow) * this.lineHeight;\n\t if (st > 0) {\n\t this.scrollTop = st;\n\t changes = changes | this.CHANGE_SCROLL;\n\t changes |= this.$computeLayerConfig();\n\t }\n\t }\n\t config = this.layerConfig;\n\t this.$updateScrollBarV();\n\t if (changes & this.CHANGE_H_SCROLL)\n\t this.$updateScrollBarH();\n\t this.$gutterLayer.element.style.marginTop = (-config.offset) + \"px\";\n\t this.content.style.marginTop = (-config.offset) + \"px\";\n\t this.content.style.width = config.width + 2 * this.$padding + \"px\";\n\t this.content.style.height = config.minHeight + \"px\";\n\t }\n\t if (changes & this.CHANGE_H_SCROLL) {\n\t this.content.style.marginLeft = -this.scrollLeft + \"px\";\n\t this.scroller.className = this.scrollLeft <= 0 ? \"ace_scroller\" : \"ace_scroller ace_scroll-left\";\n\t }\n\t if (changes & this.CHANGE_FULL) {\n\t this.$textLayer.update(config);\n\t if (this.$showGutter)\n\t this.$gutterLayer.update(config);\n\t this.$markerBack.update(config);\n\t this.$markerFront.update(config);\n\t this.$cursorLayer.update(config);\n\t this.$moveTextAreaToCursor();\n\t this.$highlightGutterLine && this.$updateGutterLineHighlight();\n\t this._signal(\"afterRender\");\n\t return;\n\t }\n\t if (changes & this.CHANGE_SCROLL) {\n\t if (changes & this.CHANGE_TEXT || changes & this.CHANGE_LINES)\n\t this.$textLayer.update(config);\n\t else\n\t this.$textLayer.scrollLines(config);\n\n\t if (this.$showGutter)\n\t this.$gutterLayer.update(config);\n\t this.$markerBack.update(config);\n\t this.$markerFront.update(config);\n\t this.$cursorLayer.update(config);\n\t this.$highlightGutterLine && this.$updateGutterLineHighlight();\n\t this.$moveTextAreaToCursor();\n\t this._signal(\"afterRender\");\n\t return;\n\t }\n\n\t if (changes & this.CHANGE_TEXT) {\n\t this.$textLayer.update(config);\n\t if (this.$showGutter)\n\t this.$gutterLayer.update(config);\n\t }\n\t else if (changes & this.CHANGE_LINES) {\n\t if (this.$updateLines() || (changes & this.CHANGE_GUTTER) && this.$showGutter)\n\t this.$gutterLayer.update(config);\n\t }\n\t else if (changes & this.CHANGE_TEXT || changes & this.CHANGE_GUTTER) {\n\t if (this.$showGutter)\n\t this.$gutterLayer.update(config);\n\t }\n\n\t if (changes & this.CHANGE_CURSOR) {\n\t this.$cursorLayer.update(config);\n\t this.$moveTextAreaToCursor();\n\t this.$highlightGutterLine && this.$updateGutterLineHighlight();\n\t }\n\n\t if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_FRONT)) {\n\t this.$markerFront.update(config);\n\t }\n\n\t if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_BACK)) {\n\t this.$markerBack.update(config);\n\t }\n\n\t this._signal(\"afterRender\");\n\t };\n\n\t \n\t this.$autosize = function() {\n\t var height = this.session.getScreenLength() * this.lineHeight;\n\t var maxHeight = this.$maxLines * this.lineHeight;\n\t var desiredHeight = Math.min(maxHeight,\n\t Math.max((this.$minLines || 1) * this.lineHeight, height)\n\t ) + this.scrollMargin.v + (this.$extraHeight || 0);\n\t if (this.$horizScroll)\n\t desiredHeight += this.scrollBarH.getHeight();\n\t if (this.$maxPixelHeight && desiredHeight > this.$maxPixelHeight)\n\t desiredHeight = this.$maxPixelHeight;\n\t var vScroll = height > maxHeight;\n\t \n\t if (desiredHeight != this.desiredHeight ||\n\t this.$size.height != this.desiredHeight || vScroll != this.$vScroll) {\n\t if (vScroll != this.$vScroll) {\n\t this.$vScroll = vScroll;\n\t this.scrollBarV.setVisible(vScroll);\n\t }\n\t \n\t var w = this.container.clientWidth;\n\t this.container.style.height = desiredHeight + \"px\";\n\t this.$updateCachedSize(true, this.$gutterWidth, w, desiredHeight);\n\t this.desiredHeight = desiredHeight;\n\t \n\t this._signal(\"autosize\");\n\t }\n\t };\n\t \n\t this.$computeLayerConfig = function() {\n\t var session = this.session;\n\t var size = this.$size;\n\t \n\t var hideScrollbars = size.height <= 2 * this.lineHeight;\n\t var screenLines = this.session.getScreenLength();\n\t var maxHeight = screenLines * this.lineHeight;\n\n\t var longestLine = this.$getLongestLine();\n\t \n\t var horizScroll = !hideScrollbars && (this.$hScrollBarAlwaysVisible ||\n\t size.scrollerWidth - longestLine - 2 * this.$padding < 0);\n\n\t var hScrollChanged = this.$horizScroll !== horizScroll;\n\t if (hScrollChanged) {\n\t this.$horizScroll = horizScroll;\n\t this.scrollBarH.setVisible(horizScroll);\n\t }\n\t var vScrollBefore = this.$vScroll; // autosize can change vscroll value in which case we need to update longestLine\n\t if (this.$maxLines && this.lineHeight > 1)\n\t this.$autosize();\n\n\t var offset = this.scrollTop % this.lineHeight;\n\t var minHeight = size.scrollerHeight + this.lineHeight;\n\t \n\t var scrollPastEnd = !this.$maxLines && this.$scrollPastEnd\n\t ? (size.scrollerHeight - this.lineHeight) * this.$scrollPastEnd\n\t : 0;\n\t maxHeight += scrollPastEnd;\n\t \n\t var sm = this.scrollMargin;\n\t this.session.setScrollTop(Math.max(-sm.top,\n\t Math.min(this.scrollTop, maxHeight - size.scrollerHeight + sm.bottom)));\n\n\t this.session.setScrollLeft(Math.max(-sm.left, Math.min(this.scrollLeft, \n\t longestLine + 2 * this.$padding - size.scrollerWidth + sm.right)));\n\t \n\t var vScroll = !hideScrollbars && (this.$vScrollBarAlwaysVisible ||\n\t size.scrollerHeight - maxHeight + scrollPastEnd < 0 || this.scrollTop > sm.top);\n\t var vScrollChanged = vScrollBefore !== vScroll;\n\t if (vScrollChanged) {\n\t this.$vScroll = vScroll;\n\t this.scrollBarV.setVisible(vScroll);\n\t }\n\n\t var lineCount = Math.ceil(minHeight / this.lineHeight) - 1;\n\t var firstRow = Math.max(0, Math.round((this.scrollTop - offset) / this.lineHeight));\n\t var lastRow = firstRow + lineCount;\n\t var firstRowScreen, firstRowHeight;\n\t var lineHeight = this.lineHeight;\n\t firstRow = session.screenToDocumentRow(firstRow, 0);\n\t var foldLine = session.getFoldLine(firstRow);\n\t if (foldLine) {\n\t firstRow = foldLine.start.row;\n\t }\n\n\t firstRowScreen = session.documentToScreenRow(firstRow, 0);\n\t firstRowHeight = session.getRowLength(firstRow) * lineHeight;\n\n\t lastRow = Math.min(session.screenToDocumentRow(lastRow, 0), session.getLength() - 1);\n\t minHeight = size.scrollerHeight + session.getRowLength(lastRow) * lineHeight +\n\t firstRowHeight;\n\n\t offset = this.scrollTop - firstRowScreen * lineHeight;\n\n\t var changes = 0;\n\t if (this.layerConfig.width != longestLine) \n\t changes = this.CHANGE_H_SCROLL;\n\t if (hScrollChanged || vScrollChanged) {\n\t changes = this.$updateCachedSize(true, this.gutterWidth, size.width, size.height);\n\t this._signal(\"scrollbarVisibilityChanged\");\n\t if (vScrollChanged)\n\t longestLine = this.$getLongestLine();\n\t }\n\t \n\t this.layerConfig = {\n\t width : longestLine,\n\t padding : this.$padding,\n\t firstRow : firstRow,\n\t firstRowScreen: firstRowScreen,\n\t lastRow : lastRow,\n\t lineHeight : lineHeight,\n\t characterWidth : this.characterWidth,\n\t minHeight : minHeight,\n\t maxHeight : maxHeight,\n\t offset : offset,\n\t gutterOffset : lineHeight ? Math.max(0, Math.ceil((offset + size.height - size.scrollerHeight) / lineHeight)) : 0,\n\t height : this.$size.scrollerHeight\n\t };\n\n\t return changes;\n\t };\n\n\t this.$updateLines = function() {\n\t var firstRow = this.$changedLines.firstRow;\n\t var lastRow = this.$changedLines.lastRow;\n\t this.$changedLines = null;\n\n\t var layerConfig = this.layerConfig;\n\n\t if (firstRow > layerConfig.lastRow + 1) { return; }\n\t if (lastRow < layerConfig.firstRow) { return; }\n\t if (lastRow === Infinity) {\n\t if (this.$showGutter)\n\t this.$gutterLayer.update(layerConfig);\n\t this.$textLayer.update(layerConfig);\n\t return;\n\t }\n\t this.$textLayer.updateLines(layerConfig, firstRow, lastRow);\n\t return true;\n\t };\n\n\t this.$getLongestLine = function() {\n\t var charCount = this.session.getScreenWidth();\n\t if (this.showInvisibles && !this.session.$useWrapMode)\n\t charCount += 1;\n\n\t return Math.max(this.$size.scrollerWidth - 2 * this.$padding, Math.round(charCount * this.characterWidth));\n\t };\n\t this.updateFrontMarkers = function() {\n\t this.$markerFront.setMarkers(this.session.getMarkers(true));\n\t this.$loop.schedule(this.CHANGE_MARKER_FRONT);\n\t };\n\t this.updateBackMarkers = function() {\n\t this.$markerBack.setMarkers(this.session.getMarkers());\n\t this.$loop.schedule(this.CHANGE_MARKER_BACK);\n\t };\n\t this.addGutterDecoration = function(row, className){\n\t this.$gutterLayer.addGutterDecoration(row, className);\n\t };\n\t this.removeGutterDecoration = function(row, className){\n\t this.$gutterLayer.removeGutterDecoration(row, className);\n\t };\n\t this.updateBreakpoints = function(rows) {\n\t this.$loop.schedule(this.CHANGE_GUTTER);\n\t };\n\t this.setAnnotations = function(annotations) {\n\t this.$gutterLayer.setAnnotations(annotations);\n\t this.$loop.schedule(this.CHANGE_GUTTER);\n\t };\n\t this.updateCursor = function() {\n\t this.$loop.schedule(this.CHANGE_CURSOR);\n\t };\n\t this.hideCursor = function() {\n\t this.$cursorLayer.hideCursor();\n\t };\n\t this.showCursor = function() {\n\t this.$cursorLayer.showCursor();\n\t };\n\n\t this.scrollSelectionIntoView = function(anchor, lead, offset) {\n\t this.scrollCursorIntoView(anchor, offset);\n\t this.scrollCursorIntoView(lead, offset);\n\t };\n\t this.scrollCursorIntoView = function(cursor, offset, $viewMargin) {\n\t if (this.$size.scrollerHeight === 0)\n\t return;\n\n\t var pos = this.$cursorLayer.getPixelPosition(cursor);\n\n\t var left = pos.left;\n\t var top = pos.top;\n\t \n\t var topMargin = $viewMargin && $viewMargin.top || 0;\n\t var bottomMargin = $viewMargin && $viewMargin.bottom || 0;\n\t \n\t var scrollTop = this.$scrollAnimation ? this.session.getScrollTop() : this.scrollTop;\n\t \n\t if (scrollTop + topMargin > top) {\n\t if (offset && scrollTop + topMargin > top + this.lineHeight)\n\t top -= offset * this.$size.scrollerHeight;\n\t if (top === 0)\n\t top = -this.scrollMargin.top;\n\t this.session.setScrollTop(top);\n\t } else if (scrollTop + this.$size.scrollerHeight - bottomMargin < top + this.lineHeight) {\n\t if (offset && scrollTop + this.$size.scrollerHeight - bottomMargin < top - this.lineHeight)\n\t top += offset * this.$size.scrollerHeight;\n\t this.session.setScrollTop(top + this.lineHeight - this.$size.scrollerHeight);\n\t }\n\n\t var scrollLeft = this.scrollLeft;\n\n\t if (scrollLeft > left) {\n\t if (left < this.$padding + 2 * this.layerConfig.characterWidth)\n\t left = -this.scrollMargin.left;\n\t this.session.setScrollLeft(left);\n\t } else if (scrollLeft + this.$size.scrollerWidth < left + this.characterWidth) {\n\t this.session.setScrollLeft(Math.round(left + this.characterWidth - this.$size.scrollerWidth));\n\t } else if (scrollLeft <= this.$padding && left - scrollLeft < this.characterWidth) {\n\t this.session.setScrollLeft(0);\n\t }\n\t };\n\t this.getScrollTop = function() {\n\t return this.session.getScrollTop();\n\t };\n\t this.getScrollLeft = function() {\n\t return this.session.getScrollLeft();\n\t };\n\t this.getScrollTopRow = function() {\n\t return this.scrollTop / this.lineHeight;\n\t };\n\t this.getScrollBottomRow = function() {\n\t return Math.max(0, Math.floor((this.scrollTop + this.$size.scrollerHeight) / this.lineHeight) - 1);\n\t };\n\t this.scrollToRow = function(row) {\n\t this.session.setScrollTop(row * this.lineHeight);\n\t };\n\n\t this.alignCursor = function(cursor, alignment) {\n\t if (typeof cursor == \"number\")\n\t cursor = {row: cursor, column: 0};\n\n\t var pos = this.$cursorLayer.getPixelPosition(cursor);\n\t var h = this.$size.scrollerHeight - this.lineHeight;\n\t var offset = pos.top - h * (alignment || 0);\n\n\t this.session.setScrollTop(offset);\n\t return offset;\n\t };\n\n\t this.STEPS = 8;\n\t this.$calcSteps = function(fromValue, toValue){\n\t var i = 0;\n\t var l = this.STEPS;\n\t var steps = [];\n\n\t var func = function(t, x_min, dx) {\n\t return dx * (Math.pow(t - 1, 3) + 1) + x_min;\n\t };\n\n\t for (i = 0; i < l; ++i)\n\t steps.push(func(i / this.STEPS, fromValue, toValue - fromValue));\n\n\t return steps;\n\t };\n\t this.scrollToLine = function(line, center, animate, callback) {\n\t var pos = this.$cursorLayer.getPixelPosition({row: line, column: 0});\n\t var offset = pos.top;\n\t if (center)\n\t offset -= this.$size.scrollerHeight / 2;\n\n\t var initialScroll = this.scrollTop;\n\t this.session.setScrollTop(offset);\n\t if (animate !== false)\n\t this.animateScrolling(initialScroll, callback);\n\t };\n\n\t this.animateScrolling = function(fromValue, callback) {\n\t var toValue = this.scrollTop;\n\t if (!this.$animatedScroll)\n\t return;\n\t var _self = this;\n\t \n\t if (fromValue == toValue)\n\t return;\n\t \n\t if (this.$scrollAnimation) {\n\t var oldSteps = this.$scrollAnimation.steps;\n\t if (oldSteps.length) {\n\t fromValue = oldSteps[0];\n\t if (fromValue == toValue)\n\t return;\n\t }\n\t }\n\t \n\t var steps = _self.$calcSteps(fromValue, toValue);\n\t this.$scrollAnimation = {from: fromValue, to: toValue, steps: steps};\n\n\t clearInterval(this.$timer);\n\n\t _self.session.setScrollTop(steps.shift());\n\t _self.session.$scrollTop = toValue;\n\t this.$timer = setInterval(function() {\n\t if (steps.length) {\n\t _self.session.setScrollTop(steps.shift());\n\t _self.session.$scrollTop = toValue;\n\t } else if (toValue != null) {\n\t _self.session.$scrollTop = -1;\n\t _self.session.setScrollTop(toValue);\n\t toValue = null;\n\t } else {\n\t _self.$timer = clearInterval(_self.$timer);\n\t _self.$scrollAnimation = null;\n\t callback && callback();\n\t }\n\t }, 10);\n\t };\n\t this.scrollToY = function(scrollTop) {\n\t if (this.scrollTop !== scrollTop) {\n\t this.$loop.schedule(this.CHANGE_SCROLL);\n\t this.scrollTop = scrollTop;\n\t }\n\t };\n\t this.scrollToX = function(scrollLeft) {\n\t if (this.scrollLeft !== scrollLeft)\n\t this.scrollLeft = scrollLeft;\n\t this.$loop.schedule(this.CHANGE_H_SCROLL);\n\t };\n\t this.scrollTo = function(x, y) {\n\t this.session.setScrollTop(y);\n\t this.session.setScrollLeft(y);\n\t };\n\t this.scrollBy = function(deltaX, deltaY) {\n\t deltaY && this.session.setScrollTop(this.session.getScrollTop() + deltaY);\n\t deltaX && this.session.setScrollLeft(this.session.getScrollLeft() + deltaX);\n\t };\n\t this.isScrollableBy = function(deltaX, deltaY) {\n\t if (deltaY < 0 && this.session.getScrollTop() >= 1 - this.scrollMargin.top)\n\t return true;\n\t if (deltaY > 0 && this.session.getScrollTop() + this.$size.scrollerHeight\n\t - this.layerConfig.maxHeight < -1 + this.scrollMargin.bottom)\n\t return true;\n\t if (deltaX < 0 && this.session.getScrollLeft() >= 1 - this.scrollMargin.left)\n\t return true;\n\t if (deltaX > 0 && this.session.getScrollLeft() + this.$size.scrollerWidth\n\t - this.layerConfig.width < -1 + this.scrollMargin.right)\n\t return true;\n\t };\n\n\t this.pixelToScreenCoordinates = function(x, y) {\n\t var canvasPos = this.scroller.getBoundingClientRect();\n\n\t var offset = (x + this.scrollLeft - canvasPos.left - this.$padding) / this.characterWidth;\n\t var row = Math.floor((y + this.scrollTop - canvasPos.top) / this.lineHeight);\n\t var col = Math.round(offset);\n\n\t return {row: row, column: col, side: offset - col > 0 ? 1 : -1};\n\t };\n\n\t this.screenToTextCoordinates = function(x, y) {\n\t var canvasPos = this.scroller.getBoundingClientRect();\n\n\t var col = Math.round(\n\t (x + this.scrollLeft - canvasPos.left - this.$padding) / this.characterWidth\n\t );\n\n\t var row = (y + this.scrollTop - canvasPos.top) / this.lineHeight;\n\n\t return this.session.screenToDocumentPosition(row, Math.max(col, 0));\n\t };\n\t this.textToScreenCoordinates = function(row, column) {\n\t var canvasPos = this.scroller.getBoundingClientRect();\n\t var pos = this.session.documentToScreenPosition(row, column);\n\n\t var x = this.$padding + Math.round(pos.column * this.characterWidth);\n\t var y = pos.row * this.lineHeight;\n\n\t return {\n\t pageX: canvasPos.left + x - this.scrollLeft,\n\t pageY: canvasPos.top + y - this.scrollTop\n\t };\n\t };\n\t this.visualizeFocus = function() {\n\t dom.addCssClass(this.container, \"ace_focus\");\n\t };\n\t this.visualizeBlur = function() {\n\t dom.removeCssClass(this.container, \"ace_focus\");\n\t };\n\t this.showComposition = function(position) {\n\t if (!this.$composition)\n\t this.$composition = {\n\t keepTextAreaAtCursor: this.$keepTextAreaAtCursor,\n\t cssText: this.textarea.style.cssText\n\t };\n\n\t this.$keepTextAreaAtCursor = true;\n\t dom.addCssClass(this.textarea, \"ace_composition\");\n\t this.textarea.style.cssText = \"\";\n\t this.$moveTextAreaToCursor();\n\t };\n\t this.setCompositionText = function(text) {\n\t this.$moveTextAreaToCursor();\n\t };\n\t this.hideComposition = function() {\n\t if (!this.$composition)\n\t return;\n\n\t dom.removeCssClass(this.textarea, \"ace_composition\");\n\t this.$keepTextAreaAtCursor = this.$composition.keepTextAreaAtCursor;\n\t this.textarea.style.cssText = this.$composition.cssText;\n\t this.$composition = null;\n\t };\n\t this.setTheme = function(theme, cb) {\n\t var _self = this;\n\t this.$themeId = theme;\n\t _self._dispatchEvent('themeChange',{theme:theme});\n\n\t if (!theme || typeof theme == \"string\") {\n\t var moduleName = theme || this.$options.theme.initialValue;\n\t config.loadModule([\"theme\", moduleName], afterLoad);\n\t } else {\n\t afterLoad(theme);\n\t }\n\n\t function afterLoad(module) {\n\t if (_self.$themeId != theme)\n\t return cb && cb();\n\t if (!module || !module.cssClass)\n\t throw new Error(\"couldn't load module \" + theme + \" or it didn't call define\");\n\t dom.importCssString(\n\t module.cssText,\n\t module.cssClass,\n\t _self.container.ownerDocument\n\t );\n\n\t if (_self.theme)\n\t dom.removeCssClass(_self.container, _self.theme.cssClass);\n\n\t var padding = \"padding\" in module ? module.padding \n\t : \"padding\" in (_self.theme || {}) ? 4 : _self.$padding;\n\t if (_self.$padding && padding != _self.$padding)\n\t _self.setPadding(padding);\n\t _self.$theme = module.cssClass;\n\n\t _self.theme = module;\n\t dom.addCssClass(_self.container, module.cssClass);\n\t dom.setCssClass(_self.container, \"ace_dark\", module.isDark);\n\t if (_self.$size) {\n\t _self.$size.width = 0;\n\t _self.$updateSizeAsync();\n\t }\n\n\t _self._dispatchEvent('themeLoaded', {theme:module});\n\t cb && cb();\n\t }\n\t };\n\t this.getTheme = function() {\n\t return this.$themeId;\n\t };\n\t this.setStyle = function(style, include) {\n\t dom.setCssClass(this.container, style, include !== false);\n\t };\n\t this.unsetStyle = function(style) {\n\t dom.removeCssClass(this.container, style);\n\t };\n\t \n\t this.setCursorStyle = function(style) {\n\t if (this.scroller.style.cursor != style)\n\t this.scroller.style.cursor = style;\n\t };\n\t this.setMouseCursor = function(cursorStyle) {\n\t this.scroller.style.cursor = cursorStyle;\n\t };\n\t this.destroy = function() {\n\t this.$textLayer.destroy();\n\t this.$cursorLayer.destroy();\n\t };\n\n\t}).call(VirtualRenderer.prototype);\n\n\n\tconfig.defineOptions(VirtualRenderer.prototype, \"renderer\", {\n\t animatedScroll: {initialValue: false},\n\t showInvisibles: {\n\t set: function(value) {\n\t if (this.$textLayer.setShowInvisibles(value))\n\t this.$loop.schedule(this.CHANGE_TEXT);\n\t },\n\t initialValue: false\n\t },\n\t showPrintMargin: {\n\t set: function() { this.$updatePrintMargin(); },\n\t initialValue: true\n\t },\n\t printMarginColumn: {\n\t set: function() { this.$updatePrintMargin(); },\n\t initialValue: 80\n\t },\n\t printMargin: {\n\t set: function(val) {\n\t if (typeof val == \"number\")\n\t this.$printMarginColumn = val;\n\t this.$showPrintMargin = !!val;\n\t this.$updatePrintMargin();\n\t },\n\t get: function() {\n\t return this.$showPrintMargin && this.$printMarginColumn; \n\t }\n\t },\n\t showGutter: {\n\t set: function(show){\n\t this.$gutter.style.display = show ? \"block\" : \"none\";\n\t this.$loop.schedule(this.CHANGE_FULL);\n\t this.onGutterResize();\n\t },\n\t initialValue: true\n\t },\n\t fadeFoldWidgets: {\n\t set: function(show) {\n\t dom.setCssClass(this.$gutter, \"ace_fade-fold-widgets\", show);\n\t },\n\t initialValue: false\n\t },\n\t showFoldWidgets: {\n\t set: function(show) {this.$gutterLayer.setShowFoldWidgets(show)},\n\t initialValue: true\n\t },\n\t showLineNumbers: {\n\t set: function(show) {\n\t this.$gutterLayer.setShowLineNumbers(show);\n\t this.$loop.schedule(this.CHANGE_GUTTER);\n\t },\n\t initialValue: true\n\t },\n\t displayIndentGuides: {\n\t set: function(show) {\n\t if (this.$textLayer.setDisplayIndentGuides(show))\n\t this.$loop.schedule(this.CHANGE_TEXT);\n\t },\n\t initialValue: true\n\t },\n\t highlightGutterLine: {\n\t set: function(shouldHighlight) {\n\t if (!this.$gutterLineHighlight) {\n\t this.$gutterLineHighlight = dom.createElement(\"div\");\n\t this.$gutterLineHighlight.className = \"ace_gutter-active-line\";\n\t this.$gutter.appendChild(this.$gutterLineHighlight);\n\t return;\n\t }\n\n\t this.$gutterLineHighlight.style.display = shouldHighlight ? \"\" : \"none\";\n\t if (this.$cursorLayer.$pixelPos)\n\t this.$updateGutterLineHighlight();\n\t },\n\t initialValue: false,\n\t value: true\n\t },\n\t hScrollBarAlwaysVisible: {\n\t set: function(val) {\n\t if (!this.$hScrollBarAlwaysVisible || !this.$horizScroll)\n\t this.$loop.schedule(this.CHANGE_SCROLL);\n\t },\n\t initialValue: false\n\t },\n\t vScrollBarAlwaysVisible: {\n\t set: function(val) {\n\t if (!this.$vScrollBarAlwaysVisible || !this.$vScroll)\n\t this.$loop.schedule(this.CHANGE_SCROLL);\n\t },\n\t initialValue: false\n\t },\n\t fontSize: {\n\t set: function(size) {\n\t if (typeof size == \"number\")\n\t size = size + \"px\";\n\t this.container.style.fontSize = size;\n\t this.updateFontSize();\n\t },\n\t initialValue: 12\n\t },\n\t fontFamily: {\n\t set: function(name) {\n\t this.container.style.fontFamily = name;\n\t this.updateFontSize();\n\t }\n\t },\n\t maxLines: {\n\t set: function(val) {\n\t this.updateFull();\n\t }\n\t },\n\t minLines: {\n\t set: function(val) {\n\t this.updateFull();\n\t }\n\t },\n\t maxPixelHeight: {\n\t set: function(val) {\n\t this.updateFull();\n\t },\n\t initialValue: 0\n\t },\n\t scrollPastEnd: {\n\t set: function(val) {\n\t val = +val || 0;\n\t if (this.$scrollPastEnd == val)\n\t return;\n\t this.$scrollPastEnd = val;\n\t this.$loop.schedule(this.CHANGE_SCROLL);\n\t },\n\t initialValue: 0,\n\t handlesSet: true\n\t },\n\t fixedWidthGutter: {\n\t set: function(val) {\n\t this.$gutterLayer.$fixedWidth = !!val;\n\t this.$loop.schedule(this.CHANGE_GUTTER);\n\t }\n\t },\n\t theme: {\n\t set: function(val) { this.setTheme(val) },\n\t get: function() { return this.$themeId || this.theme; },\n\t initialValue: \"./theme/textmate\",\n\t handlesSet: true\n\t }\n\t});\n\n\texports.VirtualRenderer = VirtualRenderer;\n\t});\n\n\tace.define(\"ace/worker/worker_client\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/net\",\"ace/lib/event_emitter\",\"ace/config\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar oop = acequire(\"../lib/oop\");\n\tvar net = acequire(\"../lib/net\");\n\tvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\tvar config = acequire(\"../config\");\n\n\tvar WorkerClient = function(topLevelNamespaces, mod, classname, workerUrl) {\n\t this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this);\n\t this.changeListener = this.changeListener.bind(this);\n\t this.onMessage = this.onMessage.bind(this);\n\t if (acequire.nameToUrl && !acequire.toUrl)\n\t acequire.toUrl = acequire.nameToUrl;\n\t \n\t if (config.get(\"packaged\") || !acequire.toUrl) {\n\t workerUrl = workerUrl || config.moduleUrl(mod.id, \"worker\")\n\t } else {\n\t var normalizePath = this.$normalizePath;\n\t workerUrl = workerUrl || normalizePath(acequire.toUrl(\"ace/worker/worker.js\", null, \"_\"));\n\n\t var tlns = {};\n\t topLevelNamespaces.forEach(function(ns) {\n\t tlns[ns] = normalizePath(acequire.toUrl(ns, null, \"_\").replace(/(\\.js)?(\\?.*)?$/, \"\"));\n\t });\n\t }\n\n\t try {\n\t var workerSrc = mod.src;\n\t var Blob = __webpack_require__(70);\n\t var blob = new Blob([ workerSrc ], { type: 'application/javascript' });\n\t var blobUrl = (window.URL || window.webkitURL).createObjectURL(blob);\n\n\t this.$worker = new Worker(blobUrl);\n\n\t } catch(e) {\n\t if (e instanceof window.DOMException) {\n\t var blob = this.$workerBlob(workerUrl);\n\t var URL = window.URL || window.webkitURL;\n\t var blobURL = URL.createObjectURL(blob);\n\n\t this.$worker = new Worker(blobURL);\n\t URL.revokeObjectURL(blobURL);\n\t } else {\n\t throw e;\n\t }\n\t }\n\t this.$worker.postMessage({\n\t init : true,\n\t tlns : tlns,\n\t module : mod.id,\n\t classname : classname\n\t });\n\n\t this.callbackId = 1;\n\t this.callbacks = {};\n\n\t this.$worker.onmessage = this.onMessage;\n\t};\n\n\t(function(){\n\n\t oop.implement(this, EventEmitter);\n\n\t this.onMessage = function(e) {\n\t var msg = e.data;\n\t switch(msg.type) {\n\t case \"event\":\n\t this._signal(msg.name, {data: msg.data});\n\t break;\n\t case \"call\":\n\t var callback = this.callbacks[msg.id];\n\t if (callback) {\n\t callback(msg.data);\n\t delete this.callbacks[msg.id];\n\t }\n\t break;\n\t case \"error\":\n\t this.reportError(msg.data);\n\t break;\n\t case \"log\":\n\t window.console && console.log && console.log.apply(console, msg.data);\n\t break;\n\t }\n\t };\n\t \n\t this.reportError = function(err) {\n\t window.console && console.error && console.error(err);\n\t };\n\n\t this.$normalizePath = function(path) {\n\t return net.qualifyURL(path);\n\t };\n\n\t this.terminate = function() {\n\t this._signal(\"terminate\", {});\n\t this.deltaQueue = null;\n\t this.$worker.terminate();\n\t this.$worker = null;\n\t if (this.$doc)\n\t this.$doc.off(\"change\", this.changeListener);\n\t this.$doc = null;\n\t };\n\n\t this.send = function(cmd, args) {\n\t this.$worker.postMessage({command: cmd, args: args});\n\t };\n\n\t this.call = function(cmd, args, callback) {\n\t if (callback) {\n\t var id = this.callbackId++;\n\t this.callbacks[id] = callback;\n\t args.push(id);\n\t }\n\t this.send(cmd, args);\n\t };\n\n\t this.emit = function(event, data) {\n\t try {\n\t this.$worker.postMessage({event: event, data: {data: data.data}});\n\t }\n\t catch(ex) {\n\t console.error(ex.stack);\n\t }\n\t };\n\n\t this.attachToDocument = function(doc) {\n\t if(this.$doc)\n\t this.terminate();\n\n\t this.$doc = doc;\n\t this.call(\"setValue\", [doc.getValue()]);\n\t doc.on(\"change\", this.changeListener);\n\t };\n\n\t this.changeListener = function(delta) {\n\t if (!this.deltaQueue) {\n\t this.deltaQueue = [];\n\t setTimeout(this.$sendDeltaQueue, 0);\n\t }\n\t if (delta.action == \"insert\")\n\t this.deltaQueue.push(delta.start, delta.lines);\n\t else\n\t this.deltaQueue.push(delta.start, delta.end);\n\t };\n\n\t this.$sendDeltaQueue = function() {\n\t var q = this.deltaQueue;\n\t if (!q) return;\n\t this.deltaQueue = null;\n\t if (q.length > 50 && q.length > this.$doc.getLength() >> 1) {\n\t this.call(\"setValue\", [this.$doc.getValue()]);\n\t } else\n\t this.emit(\"change\", {data: q});\n\t };\n\n\t this.$workerBlob = function(workerUrl) {\n\t var script = \"importScripts('\" + net.qualifyURL(workerUrl) + \"');\";\n\t try {\n\t return new Blob([script], {\"type\": \"application/javascript\"});\n\t } catch (e) { // Backwards-compatibility\n\t var BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder;\n\t var blobBuilder = new BlobBuilder();\n\t blobBuilder.append(script);\n\t return blobBuilder.getBlob(\"application/javascript\");\n\t }\n\t };\n\n\t}).call(WorkerClient.prototype);\n\n\n\tvar UIWorkerClient = function(topLevelNamespaces, mod, classname) {\n\t this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this);\n\t this.changeListener = this.changeListener.bind(this);\n\t this.callbackId = 1;\n\t this.callbacks = {};\n\t this.messageBuffer = [];\n\n\t var main = null;\n\t var emitSync = false;\n\t var sender = Object.create(EventEmitter);\n\t var _self = this;\n\n\t this.$worker = {};\n\t this.$worker.terminate = function() {};\n\t this.$worker.postMessage = function(e) {\n\t _self.messageBuffer.push(e);\n\t if (main) {\n\t if (emitSync)\n\t setTimeout(processNext);\n\t else\n\t processNext();\n\t }\n\t };\n\t this.setEmitSync = function(val) { emitSync = val };\n\n\t var processNext = function() {\n\t var msg = _self.messageBuffer.shift();\n\t if (msg.command)\n\t main[msg.command].apply(main, msg.args);\n\t else if (msg.event)\n\t sender._signal(msg.event, msg.data);\n\t };\n\n\t sender.postMessage = function(msg) {\n\t _self.onMessage({data: msg});\n\t };\n\t sender.callback = function(data, callbackId) {\n\t this.postMessage({type: \"call\", id: callbackId, data: data});\n\t };\n\t sender.emit = function(name, data) {\n\t this.postMessage({type: \"event\", name: name, data: data});\n\t };\n\n\t config.loadModule([\"worker\", mod], function(Main) {\n\t main = new Main[classname](sender);\n\t while (_self.messageBuffer.length)\n\t processNext();\n\t });\n\t};\n\n\tUIWorkerClient.prototype = WorkerClient.prototype;\n\n\texports.UIWorkerClient = UIWorkerClient;\n\texports.WorkerClient = WorkerClient;\n\n\t});\n\n\tace.define(\"ace/placeholder\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/lib/oop\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar Range = acequire(\"./range\").Range;\n\tvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\n\tvar oop = acequire(\"./lib/oop\");\n\n\tvar PlaceHolder = function(session, length, pos, others, mainClass, othersClass) {\n\t var _self = this;\n\t this.length = length;\n\t this.session = session;\n\t this.doc = session.getDocument();\n\t this.mainClass = mainClass;\n\t this.othersClass = othersClass;\n\t this.$onUpdate = this.onUpdate.bind(this);\n\t this.doc.on(\"change\", this.$onUpdate);\n\t this.$others = others;\n\t \n\t this.$onCursorChange = function() {\n\t setTimeout(function() {\n\t _self.onCursorChange();\n\t });\n\t };\n\t \n\t this.$pos = pos;\n\t var undoStack = session.getUndoManager().$undoStack || session.getUndoManager().$undostack || {length: -1};\n\t this.$undoStackDepth = undoStack.length;\n\t this.setup();\n\n\t session.selection.on(\"changeCursor\", this.$onCursorChange);\n\t};\n\n\t(function() {\n\n\t oop.implement(this, EventEmitter);\n\t this.setup = function() {\n\t var _self = this;\n\t var doc = this.doc;\n\t var session = this.session;\n\t \n\t this.selectionBefore = session.selection.toJSON();\n\t if (session.selection.inMultiSelectMode)\n\t session.selection.toSingleRange();\n\n\t this.pos = doc.createAnchor(this.$pos.row, this.$pos.column);\n\t var pos = this.pos;\n\t pos.$insertRight = true;\n\t pos.detach();\n\t pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column + this.length), this.mainClass, null, false);\n\t this.others = [];\n\t this.$others.forEach(function(other) {\n\t var anchor = doc.createAnchor(other.row, other.column);\n\t anchor.$insertRight = true;\n\t anchor.detach();\n\t _self.others.push(anchor);\n\t });\n\t session.setUndoSelect(false);\n\t };\n\t this.showOtherMarkers = function() {\n\t if (this.othersActive) return;\n\t var session = this.session;\n\t var _self = this;\n\t this.othersActive = true;\n\t this.others.forEach(function(anchor) {\n\t anchor.markerId = session.addMarker(new Range(anchor.row, anchor.column, anchor.row, anchor.column+_self.length), _self.othersClass, null, false);\n\t });\n\t };\n\t this.hideOtherMarkers = function() {\n\t if (!this.othersActive) return;\n\t this.othersActive = false;\n\t for (var i = 0; i < this.others.length; i++) {\n\t this.session.removeMarker(this.others[i].markerId);\n\t }\n\t };\n\t this.onUpdate = function(delta) {\n\t if (this.$updating)\n\t return this.updateAnchors(delta);\n\t \n\t var range = delta;\n\t if (range.start.row !== range.end.row) return;\n\t if (range.start.row !== this.pos.row) return;\n\t this.$updating = true;\n\t var lengthDiff = delta.action === \"insert\" ? range.end.column - range.start.column : range.start.column - range.end.column;\n\t var inMainRange = range.start.column >= this.pos.column && range.start.column <= this.pos.column + this.length + 1;\n\t var distanceFromStart = range.start.column - this.pos.column;\n\t \n\t this.updateAnchors(delta);\n\t \n\t if (inMainRange)\n\t this.length += lengthDiff;\n\n\t if (inMainRange && !this.session.$fromUndo) {\n\t if (delta.action === 'insert') {\n\t for (var i = this.others.length - 1; i >= 0; i--) {\n\t var otherPos = this.others[i];\n\t var newPos = {row: otherPos.row, column: otherPos.column + distanceFromStart};\n\t this.doc.insertMergedLines(newPos, delta.lines);\n\t }\n\t } else if (delta.action === 'remove') {\n\t for (var i = this.others.length - 1; i >= 0; i--) {\n\t var otherPos = this.others[i];\n\t var newPos = {row: otherPos.row, column: otherPos.column + distanceFromStart};\n\t this.doc.remove(new Range(newPos.row, newPos.column, newPos.row, newPos.column - lengthDiff));\n\t }\n\t }\n\t }\n\t \n\t this.$updating = false;\n\t this.updateMarkers();\n\t };\n\t \n\t this.updateAnchors = function(delta) {\n\t this.pos.onChange(delta);\n\t for (var i = this.others.length; i--;)\n\t this.others[i].onChange(delta);\n\t this.updateMarkers();\n\t };\n\t \n\t this.updateMarkers = function() {\n\t if (this.$updating)\n\t return;\n\t var _self = this;\n\t var session = this.session;\n\t var updateMarker = function(pos, className) {\n\t session.removeMarker(pos.markerId);\n\t pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column+_self.length), className, null, false);\n\t };\n\t updateMarker(this.pos, this.mainClass);\n\t for (var i = this.others.length; i--;)\n\t updateMarker(this.others[i], this.othersClass);\n\t };\n\n\t this.onCursorChange = function(event) {\n\t if (this.$updating || !this.session) return;\n\t var pos = this.session.selection.getCursor();\n\t if (pos.row === this.pos.row && pos.column >= this.pos.column && pos.column <= this.pos.column + this.length) {\n\t this.showOtherMarkers();\n\t this._emit(\"cursorEnter\", event);\n\t } else {\n\t this.hideOtherMarkers();\n\t this._emit(\"cursorLeave\", event);\n\t }\n\t }; \n\t this.detach = function() {\n\t this.session.removeMarker(this.pos && this.pos.markerId);\n\t this.hideOtherMarkers();\n\t this.doc.removeEventListener(\"change\", this.$onUpdate);\n\t this.session.selection.removeEventListener(\"changeCursor\", this.$onCursorChange);\n\t this.session.setUndoSelect(true);\n\t this.session = null;\n\t };\n\t this.cancel = function() {\n\t if (this.$undoStackDepth === -1)\n\t return;\n\t var undoManager = this.session.getUndoManager();\n\t var undosRequired = (undoManager.$undoStack || undoManager.$undostack).length - this.$undoStackDepth;\n\t for (var i = 0; i < undosRequired; i++) {\n\t undoManager.undo(true);\n\t }\n\t if (this.selectionBefore)\n\t this.session.selection.fromJSON(this.selectionBefore);\n\t };\n\t}).call(PlaceHolder.prototype);\n\n\n\texports.PlaceHolder = PlaceHolder;\n\t});\n\n\tace.define(\"ace/mouse/multi_select_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\n\tvar event = acequire(\"../lib/event\");\n\tvar useragent = acequire(\"../lib/useragent\");\n\tfunction isSamePoint(p1, p2) {\n\t return p1.row == p2.row && p1.column == p2.column;\n\t}\n\n\tfunction onMouseDown(e) {\n\t var ev = e.domEvent;\n\t var alt = ev.altKey;\n\t var shift = ev.shiftKey;\n\t var ctrl = ev.ctrlKey;\n\t var accel = e.getAccelKey();\n\t var button = e.getButton();\n\t \n\t if (ctrl && useragent.isMac)\n\t button = ev.button;\n\n\t if (e.editor.inMultiSelectMode && button == 2) {\n\t e.editor.textInput.onContextMenu(e.domEvent);\n\t return;\n\t }\n\t \n\t if (!ctrl && !alt && !accel) {\n\t if (button === 0 && e.editor.inMultiSelectMode)\n\t e.editor.exitMultiSelectMode();\n\t return;\n\t }\n\t \n\t if (button !== 0)\n\t return;\n\n\t var editor = e.editor;\n\t var selection = editor.selection;\n\t var isMultiSelect = editor.inMultiSelectMode;\n\t var pos = e.getDocumentPosition();\n\t var cursor = selection.getCursor();\n\t var inSelection = e.inSelection() || (selection.isEmpty() && isSamePoint(pos, cursor));\n\n\t var mouseX = e.x, mouseY = e.y;\n\t var onMouseSelection = function(e) {\n\t mouseX = e.clientX;\n\t mouseY = e.clientY;\n\t };\n\t \n\t var session = editor.session;\n\t var screenAnchor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n\t var screenCursor = screenAnchor;\n\t \n\t var selectionMode;\n\t if (editor.$mouseHandler.$enableJumpToDef) {\n\t if (ctrl && alt || accel && alt)\n\t selectionMode = shift ? \"block\" : \"add\";\n\t else if (alt && editor.$blockSelectEnabled)\n\t selectionMode = \"block\";\n\t } else {\n\t if (accel && !alt) {\n\t selectionMode = \"add\";\n\t if (!isMultiSelect && shift)\n\t return;\n\t } else if (alt && editor.$blockSelectEnabled) {\n\t selectionMode = \"block\";\n\t }\n\t }\n\t \n\t if (selectionMode && useragent.isMac && ev.ctrlKey) {\n\t editor.$mouseHandler.cancelContextMenu();\n\t }\n\n\t if (selectionMode == \"add\") {\n\t if (!isMultiSelect && inSelection)\n\t return; // dragging\n\n\t if (!isMultiSelect) {\n\t var range = selection.toOrientedRange();\n\t editor.addSelectionMarker(range);\n\t }\n\n\t var oldRange = selection.rangeList.rangeAtPoint(pos);\n\t \n\t \n\t editor.$blockScrolling++;\n\t editor.inVirtualSelectionMode = true;\n\t \n\t if (shift) {\n\t oldRange = null;\n\t range = selection.ranges[0] || range;\n\t editor.removeSelectionMarker(range);\n\t }\n\t editor.once(\"mouseup\", function() {\n\t var tmpSel = selection.toOrientedRange();\n\n\t if (oldRange && tmpSel.isEmpty() && isSamePoint(oldRange.cursor, tmpSel.cursor))\n\t selection.substractPoint(tmpSel.cursor);\n\t else {\n\t if (shift) {\n\t selection.substractPoint(range.cursor);\n\t } else if (range) {\n\t editor.removeSelectionMarker(range);\n\t selection.addRange(range);\n\t }\n\t selection.addRange(tmpSel);\n\t }\n\t editor.$blockScrolling--;\n\t editor.inVirtualSelectionMode = false;\n\t });\n\n\t } else if (selectionMode == \"block\") {\n\t e.stop();\n\t editor.inVirtualSelectionMode = true; \n\t var initialRange;\n\t var rectSel = [];\n\t var blockSelect = function() {\n\t var newCursor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n\t var cursor = session.screenToDocumentPosition(newCursor.row, newCursor.column);\n\n\t if (isSamePoint(screenCursor, newCursor) && isSamePoint(cursor, selection.lead))\n\t return;\n\t screenCursor = newCursor;\n\t \n\t editor.$blockScrolling++;\n\t editor.selection.moveToPosition(cursor);\n\t editor.renderer.scrollCursorIntoView();\n\n\t editor.removeSelectionMarkers(rectSel);\n\t rectSel = selection.rectangularRangeBlock(screenCursor, screenAnchor);\n\t if (editor.$mouseHandler.$clickSelection && rectSel.length == 1 && rectSel[0].isEmpty())\n\t rectSel[0] = editor.$mouseHandler.$clickSelection.clone();\n\t rectSel.forEach(editor.addSelectionMarker, editor);\n\t editor.updateSelectionMarkers();\n\t editor.$blockScrolling--;\n\t };\n\t editor.$blockScrolling++;\n\t if (isMultiSelect && !accel) {\n\t selection.toSingleRange();\n\t } else if (!isMultiSelect && accel) {\n\t initialRange = selection.toOrientedRange();\n\t editor.addSelectionMarker(initialRange);\n\t }\n\t \n\t if (shift)\n\t screenAnchor = session.documentToScreenPosition(selection.lead); \n\t else\n\t selection.moveToPosition(pos);\n\t editor.$blockScrolling--;\n\t \n\t screenCursor = {row: -1, column: -1};\n\n\t var onMouseSelectionEnd = function(e) {\n\t clearInterval(timerId);\n\t editor.removeSelectionMarkers(rectSel);\n\t if (!rectSel.length)\n\t rectSel = [selection.toOrientedRange()];\n\t editor.$blockScrolling++;\n\t if (initialRange) {\n\t editor.removeSelectionMarker(initialRange);\n\t selection.toSingleRange(initialRange);\n\t }\n\t for (var i = 0; i < rectSel.length; i++)\n\t selection.addRange(rectSel[i]);\n\t editor.inVirtualSelectionMode = false;\n\t editor.$mouseHandler.$clickSelection = null;\n\t editor.$blockScrolling--;\n\t };\n\n\t var onSelectionInterval = blockSelect;\n\n\t event.capture(editor.container, onMouseSelection, onMouseSelectionEnd);\n\t var timerId = setInterval(function() {onSelectionInterval();}, 20);\n\n\t return e.preventDefault();\n\t }\n\t}\n\n\n\texports.onMouseDown = onMouseDown;\n\n\t});\n\n\tace.define(\"ace/commands/multi_select_commands\",[\"require\",\"exports\",\"module\",\"ace/keyboard/hash_handler\"], function(acequire, exports, module) {\n\texports.defaultCommands = [{\n\t name: \"addCursorAbove\",\n\t exec: function(editor) { editor.selectMoreLines(-1); },\n\t bindKey: {win: \"Ctrl-Alt-Up\", mac: \"Ctrl-Alt-Up\"},\n\t scrollIntoView: \"cursor\",\n\t readOnly: true\n\t}, {\n\t name: \"addCursorBelow\",\n\t exec: function(editor) { editor.selectMoreLines(1); },\n\t bindKey: {win: \"Ctrl-Alt-Down\", mac: \"Ctrl-Alt-Down\"},\n\t scrollIntoView: \"cursor\",\n\t readOnly: true\n\t}, {\n\t name: \"addCursorAboveSkipCurrent\",\n\t exec: function(editor) { editor.selectMoreLines(-1, true); },\n\t bindKey: {win: \"Ctrl-Alt-Shift-Up\", mac: \"Ctrl-Alt-Shift-Up\"},\n\t scrollIntoView: \"cursor\",\n\t readOnly: true\n\t}, {\n\t name: \"addCursorBelowSkipCurrent\",\n\t exec: function(editor) { editor.selectMoreLines(1, true); },\n\t bindKey: {win: \"Ctrl-Alt-Shift-Down\", mac: \"Ctrl-Alt-Shift-Down\"},\n\t scrollIntoView: \"cursor\",\n\t readOnly: true\n\t}, {\n\t name: \"selectMoreBefore\",\n\t exec: function(editor) { editor.selectMore(-1); },\n\t bindKey: {win: \"Ctrl-Alt-Left\", mac: \"Ctrl-Alt-Left\"},\n\t scrollIntoView: \"cursor\",\n\t readOnly: true\n\t}, {\n\t name: \"selectMoreAfter\",\n\t exec: function(editor) { editor.selectMore(1); },\n\t bindKey: {win: \"Ctrl-Alt-Right\", mac: \"Ctrl-Alt-Right\"},\n\t scrollIntoView: \"cursor\",\n\t readOnly: true\n\t}, {\n\t name: \"selectNextBefore\",\n\t exec: function(editor) { editor.selectMore(-1, true); },\n\t bindKey: {win: \"Ctrl-Alt-Shift-Left\", mac: \"Ctrl-Alt-Shift-Left\"},\n\t scrollIntoView: \"cursor\",\n\t readOnly: true\n\t}, {\n\t name: \"selectNextAfter\",\n\t exec: function(editor) { editor.selectMore(1, true); },\n\t bindKey: {win: \"Ctrl-Alt-Shift-Right\", mac: \"Ctrl-Alt-Shift-Right\"},\n\t scrollIntoView: \"cursor\",\n\t readOnly: true\n\t}, {\n\t name: \"splitIntoLines\",\n\t exec: function(editor) { editor.multiSelect.splitIntoLines(); },\n\t bindKey: {win: \"Ctrl-Alt-L\", mac: \"Ctrl-Alt-L\"},\n\t readOnly: true\n\t}, {\n\t name: \"alignCursors\",\n\t exec: function(editor) { editor.alignCursors(); },\n\t bindKey: {win: \"Ctrl-Alt-A\", mac: \"Ctrl-Alt-A\"},\n\t scrollIntoView: \"cursor\"\n\t}, {\n\t name: \"findAll\",\n\t exec: function(editor) { editor.findAll(); },\n\t bindKey: {win: \"Ctrl-Alt-K\", mac: \"Ctrl-Alt-G\"},\n\t scrollIntoView: \"cursor\",\n\t readOnly: true\n\t}];\n\texports.multiSelectCommands = [{\n\t name: \"singleSelection\",\n\t bindKey: \"esc\",\n\t exec: function(editor) { editor.exitMultiSelectMode(); },\n\t scrollIntoView: \"cursor\",\n\t readOnly: true,\n\t isAvailable: function(editor) {return editor && editor.inMultiSelectMode}\n\t}];\n\n\tvar HashHandler = acequire(\"../keyboard/hash_handler\").HashHandler;\n\texports.keyboardHandler = new HashHandler(exports.multiSelectCommands);\n\n\t});\n\n\tace.define(\"ace/multi_select\",[\"require\",\"exports\",\"module\",\"ace/range_list\",\"ace/range\",\"ace/selection\",\"ace/mouse/multi_select_handler\",\"ace/lib/event\",\"ace/lib/lang\",\"ace/commands/multi_select_commands\",\"ace/search\",\"ace/edit_session\",\"ace/editor\",\"ace/config\"], function(acequire, exports, module) {\n\n\tvar RangeList = acequire(\"./range_list\").RangeList;\n\tvar Range = acequire(\"./range\").Range;\n\tvar Selection = acequire(\"./selection\").Selection;\n\tvar onMouseDown = acequire(\"./mouse/multi_select_handler\").onMouseDown;\n\tvar event = acequire(\"./lib/event\");\n\tvar lang = acequire(\"./lib/lang\");\n\tvar commands = acequire(\"./commands/multi_select_commands\");\n\texports.commands = commands.defaultCommands.concat(commands.multiSelectCommands);\n\tvar Search = acequire(\"./search\").Search;\n\tvar search = new Search();\n\n\tfunction find(session, needle, dir) {\n\t search.$options.wrap = true;\n\t search.$options.needle = needle;\n\t search.$options.backwards = dir == -1;\n\t return search.find(session);\n\t}\n\tvar EditSession = acequire(\"./edit_session\").EditSession;\n\t(function() {\n\t this.getSelectionMarkers = function() {\n\t return this.$selectionMarkers;\n\t };\n\t}).call(EditSession.prototype);\n\t(function() {\n\t this.ranges = null;\n\t this.rangeList = null;\n\t this.addRange = function(range, $blockChangeEvents) {\n\t if (!range)\n\t return;\n\n\t if (!this.inMultiSelectMode && this.rangeCount === 0) {\n\t var oldRange = this.toOrientedRange();\n\t this.rangeList.add(oldRange);\n\t this.rangeList.add(range);\n\t if (this.rangeList.ranges.length != 2) {\n\t this.rangeList.removeAll();\n\t return $blockChangeEvents || this.fromOrientedRange(range);\n\t }\n\t this.rangeList.removeAll();\n\t this.rangeList.add(oldRange);\n\t this.$onAddRange(oldRange);\n\t }\n\n\t if (!range.cursor)\n\t range.cursor = range.end;\n\n\t var removed = this.rangeList.add(range);\n\n\t this.$onAddRange(range);\n\n\t if (removed.length)\n\t this.$onRemoveRange(removed);\n\n\t if (this.rangeCount > 1 && !this.inMultiSelectMode) {\n\t this._signal(\"multiSelect\");\n\t this.inMultiSelectMode = true;\n\t this.session.$undoSelect = false;\n\t this.rangeList.attach(this.session);\n\t }\n\n\t return $blockChangeEvents || this.fromOrientedRange(range);\n\t };\n\n\t this.toSingleRange = function(range) {\n\t range = range || this.ranges[0];\n\t var removed = this.rangeList.removeAll();\n\t if (removed.length)\n\t this.$onRemoveRange(removed);\n\n\t range && this.fromOrientedRange(range);\n\t };\n\t this.substractPoint = function(pos) {\n\t var removed = this.rangeList.substractPoint(pos);\n\t if (removed) {\n\t this.$onRemoveRange(removed);\n\t return removed[0];\n\t }\n\t };\n\t this.mergeOverlappingRanges = function() {\n\t var removed = this.rangeList.merge();\n\t if (removed.length)\n\t this.$onRemoveRange(removed);\n\t else if(this.ranges[0])\n\t this.fromOrientedRange(this.ranges[0]);\n\t };\n\n\t this.$onAddRange = function(range) {\n\t this.rangeCount = this.rangeList.ranges.length;\n\t this.ranges.unshift(range);\n\t this._signal(\"addRange\", {range: range});\n\t };\n\n\t this.$onRemoveRange = function(removed) {\n\t this.rangeCount = this.rangeList.ranges.length;\n\t if (this.rangeCount == 1 && this.inMultiSelectMode) {\n\t var lastRange = this.rangeList.ranges.pop();\n\t removed.push(lastRange);\n\t this.rangeCount = 0;\n\t }\n\n\t for (var i = removed.length; i--; ) {\n\t var index = this.ranges.indexOf(removed[i]);\n\t this.ranges.splice(index, 1);\n\t }\n\n\t this._signal(\"removeRange\", {ranges: removed});\n\n\t if (this.rangeCount === 0 && this.inMultiSelectMode) {\n\t this.inMultiSelectMode = false;\n\t this._signal(\"singleSelect\");\n\t this.session.$undoSelect = true;\n\t this.rangeList.detach(this.session);\n\t }\n\n\t lastRange = lastRange || this.ranges[0];\n\t if (lastRange && !lastRange.isEqual(this.getRange()))\n\t this.fromOrientedRange(lastRange);\n\t };\n\t this.$initRangeList = function() {\n\t if (this.rangeList)\n\t return;\n\n\t this.rangeList = new RangeList();\n\t this.ranges = [];\n\t this.rangeCount = 0;\n\t };\n\t this.getAllRanges = function() {\n\t return this.rangeCount ? this.rangeList.ranges.concat() : [this.getRange()];\n\t };\n\n\t this.splitIntoLines = function () {\n\t if (this.rangeCount > 1) {\n\t var ranges = this.rangeList.ranges;\n\t var lastRange = ranges[ranges.length - 1];\n\t var range = Range.fromPoints(ranges[0].start, lastRange.end);\n\n\t this.toSingleRange();\n\t this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n\t } else {\n\t var range = this.getRange();\n\t var isBackwards = this.isBackwards();\n\t var startRow = range.start.row;\n\t var endRow = range.end.row;\n\t if (startRow == endRow) {\n\t if (isBackwards)\n\t var start = range.end, end = range.start;\n\t else\n\t var start = range.start, end = range.end;\n\t \n\t this.addRange(Range.fromPoints(end, end));\n\t this.addRange(Range.fromPoints(start, start));\n\t return;\n\t }\n\n\t var rectSel = [];\n\t var r = this.getLineRange(startRow, true);\n\t r.start.column = range.start.column;\n\t rectSel.push(r);\n\n\t for (var i = startRow + 1; i < endRow; i++)\n\t rectSel.push(this.getLineRange(i, true));\n\n\t r = this.getLineRange(endRow, true);\n\t r.end.column = range.end.column;\n\t rectSel.push(r);\n\n\t rectSel.forEach(this.addRange, this);\n\t }\n\t };\n\t this.toggleBlockSelection = function () {\n\t if (this.rangeCount > 1) {\n\t var ranges = this.rangeList.ranges;\n\t var lastRange = ranges[ranges.length - 1];\n\t var range = Range.fromPoints(ranges[0].start, lastRange.end);\n\n\t this.toSingleRange();\n\t this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n\t } else {\n\t var cursor = this.session.documentToScreenPosition(this.selectionLead);\n\t var anchor = this.session.documentToScreenPosition(this.selectionAnchor);\n\n\t var rectSel = this.rectangularRangeBlock(cursor, anchor);\n\t rectSel.forEach(this.addRange, this);\n\t }\n\t };\n\t this.rectangularRangeBlock = function(screenCursor, screenAnchor, includeEmptyLines) {\n\t var rectSel = [];\n\n\t var xBackwards = screenCursor.column < screenAnchor.column;\n\t if (xBackwards) {\n\t var startColumn = screenCursor.column;\n\t var endColumn = screenAnchor.column;\n\t } else {\n\t var startColumn = screenAnchor.column;\n\t var endColumn = screenCursor.column;\n\t }\n\n\t var yBackwards = screenCursor.row < screenAnchor.row;\n\t if (yBackwards) {\n\t var startRow = screenCursor.row;\n\t var endRow = screenAnchor.row;\n\t } else {\n\t var startRow = screenAnchor.row;\n\t var endRow = screenCursor.row;\n\t }\n\n\t if (startColumn < 0)\n\t startColumn = 0;\n\t if (startRow < 0)\n\t startRow = 0;\n\n\t if (startRow == endRow)\n\t includeEmptyLines = true;\n\n\t for (var row = startRow; row <= endRow; row++) {\n\t var range = Range.fromPoints(\n\t this.session.screenToDocumentPosition(row, startColumn),\n\t this.session.screenToDocumentPosition(row, endColumn)\n\t );\n\t if (range.isEmpty()) {\n\t if (docEnd && isSamePoint(range.end, docEnd))\n\t break;\n\t var docEnd = range.end;\n\t }\n\t range.cursor = xBackwards ? range.start : range.end;\n\t rectSel.push(range);\n\t }\n\n\t if (yBackwards)\n\t rectSel.reverse();\n\n\t if (!includeEmptyLines) {\n\t var end = rectSel.length - 1;\n\t while (rectSel[end].isEmpty() && end > 0)\n\t end--;\n\t if (end > 0) {\n\t var start = 0;\n\t while (rectSel[start].isEmpty())\n\t start++;\n\t }\n\t for (var i = end; i >= start; i--) {\n\t if (rectSel[i].isEmpty())\n\t rectSel.splice(i, 1);\n\t }\n\t }\n\n\t return rectSel;\n\t };\n\t}).call(Selection.prototype);\n\tvar Editor = acequire(\"./editor\").Editor;\n\t(function() {\n\t this.updateSelectionMarkers = function() {\n\t this.renderer.updateCursor();\n\t this.renderer.updateBackMarkers();\n\t };\n\t this.addSelectionMarker = function(orientedRange) {\n\t if (!orientedRange.cursor)\n\t orientedRange.cursor = orientedRange.end;\n\n\t var style = this.getSelectionStyle();\n\t orientedRange.marker = this.session.addMarker(orientedRange, \"ace_selection\", style);\n\n\t this.session.$selectionMarkers.push(orientedRange);\n\t this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n\t return orientedRange;\n\t };\n\t this.removeSelectionMarker = function(range) {\n\t if (!range.marker)\n\t return;\n\t this.session.removeMarker(range.marker);\n\t var index = this.session.$selectionMarkers.indexOf(range);\n\t if (index != -1)\n\t this.session.$selectionMarkers.splice(index, 1);\n\t this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n\t };\n\n\t this.removeSelectionMarkers = function(ranges) {\n\t var markerList = this.session.$selectionMarkers;\n\t for (var i = ranges.length; i--; ) {\n\t var range = ranges[i];\n\t if (!range.marker)\n\t continue;\n\t this.session.removeMarker(range.marker);\n\t var index = markerList.indexOf(range);\n\t if (index != -1)\n\t markerList.splice(index, 1);\n\t }\n\t this.session.selectionMarkerCount = markerList.length;\n\t };\n\n\t this.$onAddRange = function(e) {\n\t this.addSelectionMarker(e.range);\n\t this.renderer.updateCursor();\n\t this.renderer.updateBackMarkers();\n\t };\n\n\t this.$onRemoveRange = function(e) {\n\t this.removeSelectionMarkers(e.ranges);\n\t this.renderer.updateCursor();\n\t this.renderer.updateBackMarkers();\n\t };\n\n\t this.$onMultiSelect = function(e) {\n\t if (this.inMultiSelectMode)\n\t return;\n\t this.inMultiSelectMode = true;\n\n\t this.setStyle(\"ace_multiselect\");\n\t this.keyBinding.addKeyboardHandler(commands.keyboardHandler);\n\t this.commands.setDefaultHandler(\"exec\", this.$onMultiSelectExec);\n\n\t this.renderer.updateCursor();\n\t this.renderer.updateBackMarkers();\n\t };\n\n\t this.$onSingleSelect = function(e) {\n\t if (this.session.multiSelect.inVirtualMode)\n\t return;\n\t this.inMultiSelectMode = false;\n\n\t this.unsetStyle(\"ace_multiselect\");\n\t this.keyBinding.removeKeyboardHandler(commands.keyboardHandler);\n\n\t this.commands.removeDefaultHandler(\"exec\", this.$onMultiSelectExec);\n\t this.renderer.updateCursor();\n\t this.renderer.updateBackMarkers();\n\t this._emit(\"changeSelection\");\n\t };\n\n\t this.$onMultiSelectExec = function(e) {\n\t var command = e.command;\n\t var editor = e.editor;\n\t if (!editor.multiSelect)\n\t return;\n\t if (!command.multiSelectAction) {\n\t var result = command.exec(editor, e.args || {});\n\t editor.multiSelect.addRange(editor.multiSelect.toOrientedRange());\n\t editor.multiSelect.mergeOverlappingRanges();\n\t } else if (command.multiSelectAction == \"forEach\") {\n\t result = editor.forEachSelection(command, e.args);\n\t } else if (command.multiSelectAction == \"forEachLine\") {\n\t result = editor.forEachSelection(command, e.args, true);\n\t } else if (command.multiSelectAction == \"single\") {\n\t editor.exitMultiSelectMode();\n\t result = command.exec(editor, e.args || {});\n\t } else {\n\t result = command.multiSelectAction(editor, e.args || {});\n\t }\n\t return result;\n\t }; \n\t this.forEachSelection = function(cmd, args, options) {\n\t if (this.inVirtualSelectionMode)\n\t return;\n\t var keepOrder = options && options.keepOrder;\n\t var $byLines = options == true || options && options.$byLines\n\t var session = this.session;\n\t var selection = this.selection;\n\t var rangeList = selection.rangeList;\n\t var ranges = (keepOrder ? selection : rangeList).ranges;\n\t var result;\n\t \n\t if (!ranges.length)\n\t return cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n\t \n\t var reg = selection._eventRegistry;\n\t selection._eventRegistry = {};\n\n\t var tmpSel = new Selection(session);\n\t this.inVirtualSelectionMode = true;\n\t for (var i = ranges.length; i--;) {\n\t if ($byLines) {\n\t while (i > 0 && ranges[i].start.row == ranges[i - 1].end.row)\n\t i--;\n\t }\n\t tmpSel.fromOrientedRange(ranges[i]);\n\t tmpSel.index = i;\n\t this.selection = session.selection = tmpSel;\n\t var cmdResult = cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n\t if (!result && cmdResult !== undefined)\n\t result = cmdResult;\n\t tmpSel.toOrientedRange(ranges[i]);\n\t }\n\t tmpSel.detach();\n\n\t this.selection = session.selection = selection;\n\t this.inVirtualSelectionMode = false;\n\t selection._eventRegistry = reg;\n\t selection.mergeOverlappingRanges();\n\t \n\t var anim = this.renderer.$scrollAnimation;\n\t this.onCursorChange();\n\t this.onSelectionChange();\n\t if (anim && anim.from == anim.to)\n\t this.renderer.animateScrolling(anim.from);\n\t \n\t return result;\n\t };\n\t this.exitMultiSelectMode = function() {\n\t if (!this.inMultiSelectMode || this.inVirtualSelectionMode)\n\t return;\n\t this.multiSelect.toSingleRange();\n\t };\n\n\t this.getSelectedText = function() {\n\t var text = \"\";\n\t if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n\t var ranges = this.multiSelect.rangeList.ranges;\n\t var buf = [];\n\t for (var i = 0; i < ranges.length; i++) {\n\t buf.push(this.session.getTextRange(ranges[i]));\n\t }\n\t var nl = this.session.getDocument().getNewLineCharacter();\n\t text = buf.join(nl);\n\t if (text.length == (buf.length - 1) * nl.length)\n\t text = \"\";\n\t } else if (!this.selection.isEmpty()) {\n\t text = this.session.getTextRange(this.getSelectionRange());\n\t }\n\t return text;\n\t };\n\t \n\t this.$checkMultiselectChange = function(e, anchor) {\n\t if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n\t var range = this.multiSelect.ranges[0];\n\t if (this.multiSelect.isEmpty() && anchor == this.multiSelect.anchor)\n\t return;\n\t var pos = anchor == this.multiSelect.anchor\n\t ? range.cursor == range.start ? range.end : range.start\n\t : range.cursor;\n\t if (pos.row != anchor.row \n\t || this.session.$clipPositionToDocument(pos.row, pos.column).column != anchor.column)\n\t this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange());\n\t }\n\t };\n\t this.findAll = function(needle, options, additive) {\n\t options = options || {};\n\t options.needle = needle || options.needle;\n\t if (options.needle == undefined) {\n\t var range = this.selection.isEmpty()\n\t ? this.selection.getWordRange()\n\t : this.selection.getRange();\n\t options.needle = this.session.getTextRange(range);\n\t } \n\t this.$search.set(options);\n\t \n\t var ranges = this.$search.findAll(this.session);\n\t if (!ranges.length)\n\t return 0;\n\n\t this.$blockScrolling += 1;\n\t var selection = this.multiSelect;\n\n\t if (!additive)\n\t selection.toSingleRange(ranges[0]);\n\n\t for (var i = ranges.length; i--; )\n\t selection.addRange(ranges[i], true);\n\t if (range && selection.rangeList.rangeAtPoint(range.start))\n\t selection.addRange(range, true);\n\t \n\t this.$blockScrolling -= 1;\n\n\t return ranges.length;\n\t };\n\t this.selectMoreLines = function(dir, skip) {\n\t var range = this.selection.toOrientedRange();\n\t var isBackwards = range.cursor == range.end;\n\n\t var screenLead = this.session.documentToScreenPosition(range.cursor);\n\t if (this.selection.$desiredColumn)\n\t screenLead.column = this.selection.$desiredColumn;\n\n\t var lead = this.session.screenToDocumentPosition(screenLead.row + dir, screenLead.column);\n\n\t if (!range.isEmpty()) {\n\t var screenAnchor = this.session.documentToScreenPosition(isBackwards ? range.end : range.start);\n\t var anchor = this.session.screenToDocumentPosition(screenAnchor.row + dir, screenAnchor.column);\n\t } else {\n\t var anchor = lead;\n\t }\n\n\t if (isBackwards) {\n\t var newRange = Range.fromPoints(lead, anchor);\n\t newRange.cursor = newRange.start;\n\t } else {\n\t var newRange = Range.fromPoints(anchor, lead);\n\t newRange.cursor = newRange.end;\n\t }\n\n\t newRange.desiredColumn = screenLead.column;\n\t if (!this.selection.inMultiSelectMode) {\n\t this.selection.addRange(range);\n\t } else {\n\t if (skip)\n\t var toRemove = range.cursor;\n\t }\n\n\t this.selection.addRange(newRange);\n\t if (toRemove)\n\t this.selection.substractPoint(toRemove);\n\t };\n\t this.transposeSelections = function(dir) {\n\t var session = this.session;\n\t var sel = session.multiSelect;\n\t var all = sel.ranges;\n\n\t for (var i = all.length; i--; ) {\n\t var range = all[i];\n\t if (range.isEmpty()) {\n\t var tmp = session.getWordRange(range.start.row, range.start.column);\n\t range.start.row = tmp.start.row;\n\t range.start.column = tmp.start.column;\n\t range.end.row = tmp.end.row;\n\t range.end.column = tmp.end.column;\n\t }\n\t }\n\t sel.mergeOverlappingRanges();\n\n\t var words = [];\n\t for (var i = all.length; i--; ) {\n\t var range = all[i];\n\t words.unshift(session.getTextRange(range));\n\t }\n\n\t if (dir < 0)\n\t words.unshift(words.pop());\n\t else\n\t words.push(words.shift());\n\n\t for (var i = all.length; i--; ) {\n\t var range = all[i];\n\t var tmp = range.clone();\n\t session.replace(range, words[i]);\n\t range.start.row = tmp.start.row;\n\t range.start.column = tmp.start.column;\n\t }\n\t };\n\t this.selectMore = function(dir, skip, stopAtFirst) {\n\t var session = this.session;\n\t var sel = session.multiSelect;\n\n\t var range = sel.toOrientedRange();\n\t if (range.isEmpty()) {\n\t range = session.getWordRange(range.start.row, range.start.column);\n\t range.cursor = dir == -1 ? range.start : range.end;\n\t this.multiSelect.addRange(range);\n\t if (stopAtFirst)\n\t return;\n\t }\n\t var needle = session.getTextRange(range);\n\n\t var newRange = find(session, needle, dir);\n\t if (newRange) {\n\t newRange.cursor = dir == -1 ? newRange.start : newRange.end;\n\t this.$blockScrolling += 1;\n\t this.session.unfold(newRange);\n\t this.multiSelect.addRange(newRange);\n\t this.$blockScrolling -= 1;\n\t this.renderer.scrollCursorIntoView(null, 0.5);\n\t }\n\t if (skip)\n\t this.multiSelect.substractPoint(range.cursor);\n\t };\n\t this.alignCursors = function() {\n\t var session = this.session;\n\t var sel = session.multiSelect;\n\t var ranges = sel.ranges;\n\t var row = -1;\n\t var sameRowRanges = ranges.filter(function(r) {\n\t if (r.cursor.row == row)\n\t return true;\n\t row = r.cursor.row;\n\t });\n\t \n\t if (!ranges.length || sameRowRanges.length == ranges.length - 1) {\n\t var range = this.selection.getRange();\n\t var fr = range.start.row, lr = range.end.row;\n\t var guessRange = fr == lr;\n\t if (guessRange) {\n\t var max = this.session.getLength();\n\t var line;\n\t do {\n\t line = this.session.getLine(lr);\n\t } while (/[=:]/.test(line) && ++lr < max);\n\t do {\n\t line = this.session.getLine(fr);\n\t } while (/[=:]/.test(line) && --fr > 0);\n\t \n\t if (fr < 0) fr = 0;\n\t if (lr >= max) lr = max - 1;\n\t }\n\t var lines = this.session.removeFullLines(fr, lr);\n\t lines = this.$reAlignText(lines, guessRange);\n\t this.session.insert({row: fr, column: 0}, lines.join(\"\\n\") + \"\\n\");\n\t if (!guessRange) {\n\t range.start.column = 0;\n\t range.end.column = lines[lines.length - 1].length;\n\t }\n\t this.selection.setRange(range);\n\t } else {\n\t sameRowRanges.forEach(function(r) {\n\t sel.substractPoint(r.cursor);\n\t });\n\n\t var maxCol = 0;\n\t var minSpace = Infinity;\n\t var spaceOffsets = ranges.map(function(r) {\n\t var p = r.cursor;\n\t var line = session.getLine(p.row);\n\t var spaceOffset = line.substr(p.column).search(/\\S/g);\n\t if (spaceOffset == -1)\n\t spaceOffset = 0;\n\n\t if (p.column > maxCol)\n\t maxCol = p.column;\n\t if (spaceOffset < minSpace)\n\t minSpace = spaceOffset;\n\t return spaceOffset;\n\t });\n\t ranges.forEach(function(r, i) {\n\t var p = r.cursor;\n\t var l = maxCol - p.column;\n\t var d = spaceOffsets[i] - minSpace;\n\t if (l > d)\n\t session.insert(p, lang.stringRepeat(\" \", l - d));\n\t else\n\t session.remove(new Range(p.row, p.column, p.row, p.column - l + d));\n\n\t r.start.column = r.end.column = maxCol;\n\t r.start.row = r.end.row = p.row;\n\t r.cursor = r.end;\n\t });\n\t sel.fromOrientedRange(ranges[0]);\n\t this.renderer.updateCursor();\n\t this.renderer.updateBackMarkers();\n\t }\n\t };\n\n\t this.$reAlignText = function(lines, forceLeft) {\n\t var isLeftAligned = true, isRightAligned = true;\n\t var startW, textW, endW;\n\n\t return lines.map(function(line) {\n\t var m = line.match(/(\\s*)(.*?)(\\s*)([=:].*)/);\n\t if (!m)\n\t return [line];\n\n\t if (startW == null) {\n\t startW = m[1].length;\n\t textW = m[2].length;\n\t endW = m[3].length;\n\t return m;\n\t }\n\n\t if (startW + textW + endW != m[1].length + m[2].length + m[3].length)\n\t isRightAligned = false;\n\t if (startW != m[1].length)\n\t isLeftAligned = false;\n\n\t if (startW > m[1].length)\n\t startW = m[1].length;\n\t if (textW < m[2].length)\n\t textW = m[2].length;\n\t if (endW > m[3].length)\n\t endW = m[3].length;\n\n\t return m;\n\t }).map(forceLeft ? alignLeft :\n\t isLeftAligned ? isRightAligned ? alignRight : alignLeft : unAlign);\n\n\t function spaces(n) {\n\t return lang.stringRepeat(\" \", n);\n\t }\n\n\t function alignLeft(m) {\n\t return !m[2] ? m[0] : spaces(startW) + m[2]\n\t + spaces(textW - m[2].length + endW)\n\t + m[4].replace(/^([=:])\\s+/, \"$1 \");\n\t }\n\t function alignRight(m) {\n\t return !m[2] ? m[0] : spaces(startW + textW - m[2].length) + m[2]\n\t + spaces(endW, \" \")\n\t + m[4].replace(/^([=:])\\s+/, \"$1 \");\n\t }\n\t function unAlign(m) {\n\t return !m[2] ? m[0] : spaces(startW) + m[2]\n\t + spaces(endW)\n\t + m[4].replace(/^([=:])\\s+/, \"$1 \");\n\t }\n\t };\n\t}).call(Editor.prototype);\n\n\n\tfunction isSamePoint(p1, p2) {\n\t return p1.row == p2.row && p1.column == p2.column;\n\t}\n\texports.onSessionChange = function(e) {\n\t var session = e.session;\n\t if (session && !session.multiSelect) {\n\t session.$selectionMarkers = [];\n\t session.selection.$initRangeList();\n\t session.multiSelect = session.selection;\n\t }\n\t this.multiSelect = session && session.multiSelect;\n\n\t var oldSession = e.oldSession;\n\t if (oldSession) {\n\t oldSession.multiSelect.off(\"addRange\", this.$onAddRange);\n\t oldSession.multiSelect.off(\"removeRange\", this.$onRemoveRange);\n\t oldSession.multiSelect.off(\"multiSelect\", this.$onMultiSelect);\n\t oldSession.multiSelect.off(\"singleSelect\", this.$onSingleSelect);\n\t oldSession.multiSelect.lead.off(\"change\", this.$checkMultiselectChange);\n\t oldSession.multiSelect.anchor.off(\"change\", this.$checkMultiselectChange);\n\t }\n\n\t if (session) {\n\t session.multiSelect.on(\"addRange\", this.$onAddRange);\n\t session.multiSelect.on(\"removeRange\", this.$onRemoveRange);\n\t session.multiSelect.on(\"multiSelect\", this.$onMultiSelect);\n\t session.multiSelect.on(\"singleSelect\", this.$onSingleSelect);\n\t session.multiSelect.lead.on(\"change\", this.$checkMultiselectChange);\n\t session.multiSelect.anchor.on(\"change\", this.$checkMultiselectChange);\n\t }\n\n\t if (session && this.inMultiSelectMode != session.selection.inMultiSelectMode) {\n\t if (session.selection.inMultiSelectMode)\n\t this.$onMultiSelect();\n\t else\n\t this.$onSingleSelect();\n\t }\n\t};\n\tfunction MultiSelect(editor) {\n\t if (editor.$multiselectOnSessionChange)\n\t return;\n\t editor.$onAddRange = editor.$onAddRange.bind(editor);\n\t editor.$onRemoveRange = editor.$onRemoveRange.bind(editor);\n\t editor.$onMultiSelect = editor.$onMultiSelect.bind(editor);\n\t editor.$onSingleSelect = editor.$onSingleSelect.bind(editor);\n\t editor.$multiselectOnSessionChange = exports.onSessionChange.bind(editor);\n\t editor.$checkMultiselectChange = editor.$checkMultiselectChange.bind(editor);\n\n\t editor.$multiselectOnSessionChange(editor);\n\t editor.on(\"changeSession\", editor.$multiselectOnSessionChange);\n\n\t editor.on(\"mousedown\", onMouseDown);\n\t editor.commands.addCommands(commands.defaultCommands);\n\n\t addAltCursorListeners(editor);\n\t}\n\n\tfunction addAltCursorListeners(editor){\n\t var el = editor.textInput.getElement();\n\t var altCursor = false;\n\t event.addListener(el, \"keydown\", function(e) {\n\t var altDown = e.keyCode == 18 && !(e.ctrlKey || e.shiftKey || e.metaKey);\n\t if (editor.$blockSelectEnabled && altDown) {\n\t if (!altCursor) {\n\t editor.renderer.setMouseCursor(\"crosshair\");\n\t altCursor = true;\n\t }\n\t } else if (altCursor) {\n\t reset();\n\t }\n\t });\n\n\t event.addListener(el, \"keyup\", reset);\n\t event.addListener(el, \"blur\", reset);\n\t function reset(e) {\n\t if (altCursor) {\n\t editor.renderer.setMouseCursor(\"\");\n\t altCursor = false;\n\t }\n\t }\n\t}\n\n\texports.MultiSelect = MultiSelect;\n\n\n\tacequire(\"./config\").defineOptions(Editor.prototype, \"editor\", {\n\t enableMultiselect: {\n\t set: function(val) {\n\t MultiSelect(this);\n\t if (val) {\n\t this.on(\"changeSession\", this.$multiselectOnSessionChange);\n\t this.on(\"mousedown\", onMouseDown);\n\t } else {\n\t this.off(\"changeSession\", this.$multiselectOnSessionChange);\n\t this.off(\"mousedown\", onMouseDown);\n\t }\n\t },\n\t value: true\n\t },\n\t enableBlockSelect: {\n\t set: function(val) {\n\t this.$blockSelectEnabled = val;\n\t },\n\t value: true\n\t }\n\t});\n\n\n\n\t});\n\n\tace.define(\"ace/mode/folding/fold_mode\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar Range = acequire(\"../../range\").Range;\n\n\tvar FoldMode = exports.FoldMode = function() {};\n\n\t(function() {\n\n\t this.foldingStartMarker = null;\n\t this.foldingStopMarker = null;\n\t this.getFoldWidget = function(session, foldStyle, row) {\n\t var line = session.getLine(row);\n\t if (this.foldingStartMarker.test(line))\n\t return \"start\";\n\t if (foldStyle == \"markbeginend\"\n\t && this.foldingStopMarker\n\t && this.foldingStopMarker.test(line))\n\t return \"end\";\n\t return \"\";\n\t };\n\n\t this.getFoldWidgetRange = function(session, foldStyle, row) {\n\t return null;\n\t };\n\n\t this.indentationBlock = function(session, row, column) {\n\t var re = /\\S/;\n\t var line = session.getLine(row);\n\t var startLevel = line.search(re);\n\t if (startLevel == -1)\n\t return;\n\n\t var startColumn = column || line.length;\n\t var maxRow = session.getLength();\n\t var startRow = row;\n\t var endRow = row;\n\n\t while (++row < maxRow) {\n\t var level = session.getLine(row).search(re);\n\n\t if (level == -1)\n\t continue;\n\n\t if (level <= startLevel)\n\t break;\n\n\t endRow = row;\n\t }\n\n\t if (endRow > startRow) {\n\t var endColumn = session.getLine(endRow).length;\n\t return new Range(startRow, startColumn, endRow, endColumn);\n\t }\n\t };\n\n\t this.openingBracketBlock = function(session, bracket, row, column, typeRe) {\n\t var start = {row: row, column: column + 1};\n\t var end = session.$findClosingBracket(bracket, start, typeRe);\n\t if (!end)\n\t return;\n\n\t var fw = session.foldWidgets[end.row];\n\t if (fw == null)\n\t fw = session.getFoldWidget(end.row);\n\n\t if (fw == \"start\" && end.row > start.row) {\n\t end.row --;\n\t end.column = session.getLine(end.row).length;\n\t }\n\t return Range.fromPoints(start, end);\n\t };\n\n\t this.closingBracketBlock = function(session, bracket, row, column, typeRe) {\n\t var end = {row: row, column: column};\n\t var start = session.$findOpeningBracket(bracket, end);\n\n\t if (!start)\n\t return;\n\n\t start.column++;\n\t end.column--;\n\n\t return Range.fromPoints(start, end);\n\t };\n\t}).call(FoldMode.prototype);\n\n\t});\n\n\tace.define(\"ace/theme/textmate\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\texports.isDark = false;\n\texports.cssClass = \"ace-tm\";\n\texports.cssText = \".ace-tm .ace_gutter {\\\n\tbackground: #f0f0f0;\\\n\tcolor: #333;\\\n\t}\\\n\t.ace-tm .ace_print-margin {\\\n\twidth: 1px;\\\n\tbackground: #e8e8e8;\\\n\t}\\\n\t.ace-tm .ace_fold {\\\n\tbackground-color: #6B72E6;\\\n\t}\\\n\t.ace-tm {\\\n\tbackground-color: #FFFFFF;\\\n\tcolor: black;\\\n\t}\\\n\t.ace-tm .ace_cursor {\\\n\tcolor: black;\\\n\t}\\\n\t.ace-tm .ace_invisible {\\\n\tcolor: rgb(191, 191, 191);\\\n\t}\\\n\t.ace-tm .ace_storage,\\\n\t.ace-tm .ace_keyword {\\\n\tcolor: blue;\\\n\t}\\\n\t.ace-tm .ace_constant {\\\n\tcolor: rgb(197, 6, 11);\\\n\t}\\\n\t.ace-tm .ace_constant.ace_buildin {\\\n\tcolor: rgb(88, 72, 246);\\\n\t}\\\n\t.ace-tm .ace_constant.ace_language {\\\n\tcolor: rgb(88, 92, 246);\\\n\t}\\\n\t.ace-tm .ace_constant.ace_library {\\\n\tcolor: rgb(6, 150, 14);\\\n\t}\\\n\t.ace-tm .ace_invalid {\\\n\tbackground-color: rgba(255, 0, 0, 0.1);\\\n\tcolor: red;\\\n\t}\\\n\t.ace-tm .ace_support.ace_function {\\\n\tcolor: rgb(60, 76, 114);\\\n\t}\\\n\t.ace-tm .ace_support.ace_constant {\\\n\tcolor: rgb(6, 150, 14);\\\n\t}\\\n\t.ace-tm .ace_support.ace_type,\\\n\t.ace-tm .ace_support.ace_class {\\\n\tcolor: rgb(109, 121, 222);\\\n\t}\\\n\t.ace-tm .ace_keyword.ace_operator {\\\n\tcolor: rgb(104, 118, 135);\\\n\t}\\\n\t.ace-tm .ace_string {\\\n\tcolor: rgb(3, 106, 7);\\\n\t}\\\n\t.ace-tm .ace_comment {\\\n\tcolor: rgb(76, 136, 107);\\\n\t}\\\n\t.ace-tm .ace_comment.ace_doc {\\\n\tcolor: rgb(0, 102, 255);\\\n\t}\\\n\t.ace-tm .ace_comment.ace_doc.ace_tag {\\\n\tcolor: rgb(128, 159, 191);\\\n\t}\\\n\t.ace-tm .ace_constant.ace_numeric {\\\n\tcolor: rgb(0, 0, 205);\\\n\t}\\\n\t.ace-tm .ace_variable {\\\n\tcolor: rgb(49, 132, 149);\\\n\t}\\\n\t.ace-tm .ace_xml-pe {\\\n\tcolor: rgb(104, 104, 91);\\\n\t}\\\n\t.ace-tm .ace_entity.ace_name.ace_function {\\\n\tcolor: #0000A2;\\\n\t}\\\n\t.ace-tm .ace_heading {\\\n\tcolor: rgb(12, 7, 255);\\\n\t}\\\n\t.ace-tm .ace_list {\\\n\tcolor:rgb(185, 6, 144);\\\n\t}\\\n\t.ace-tm .ace_meta.ace_tag {\\\n\tcolor:rgb(0, 22, 142);\\\n\t}\\\n\t.ace-tm .ace_string.ace_regex {\\\n\tcolor: rgb(255, 0, 0)\\\n\t}\\\n\t.ace-tm .ace_marker-layer .ace_selection {\\\n\tbackground: rgb(181, 213, 255);\\\n\t}\\\n\t.ace-tm.ace_multiselect .ace_selection.ace_start {\\\n\tbox-shadow: 0 0 3px 0px white;\\\n\t}\\\n\t.ace-tm .ace_marker-layer .ace_step {\\\n\tbackground: rgb(252, 255, 0);\\\n\t}\\\n\t.ace-tm .ace_marker-layer .ace_stack {\\\n\tbackground: rgb(164, 229, 101);\\\n\t}\\\n\t.ace-tm .ace_marker-layer .ace_bracket {\\\n\tmargin: -1px 0 0 -1px;\\\n\tborder: 1px solid rgb(192, 192, 192);\\\n\t}\\\n\t.ace-tm .ace_marker-layer .ace_active-line {\\\n\tbackground: rgba(0, 0, 0, 0.07);\\\n\t}\\\n\t.ace-tm .ace_gutter-active-line {\\\n\tbackground-color : #dcdcdc;\\\n\t}\\\n\t.ace-tm .ace_marker-layer .ace_selected-word {\\\n\tbackground: rgb(250, 250, 255);\\\n\tborder: 1px solid rgb(200, 200, 250);\\\n\t}\\\n\t.ace-tm .ace_indent-guide {\\\n\tbackground: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\\n\t}\\\n\t\";\n\n\tvar dom = acequire(\"../lib/dom\");\n\tdom.importCssString(exports.cssText, exports.cssClass);\n\t});\n\n\tace.define(\"ace/line_widgets\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/range\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar oop = acequire(\"./lib/oop\");\n\tvar dom = acequire(\"./lib/dom\");\n\tvar Range = acequire(\"./range\").Range;\n\n\n\tfunction LineWidgets(session) {\n\t this.session = session;\n\t this.session.widgetManager = this;\n\t this.session.getRowLength = this.getRowLength;\n\t this.session.$getWidgetScreenLength = this.$getWidgetScreenLength;\n\t this.updateOnChange = this.updateOnChange.bind(this);\n\t this.renderWidgets = this.renderWidgets.bind(this);\n\t this.measureWidgets = this.measureWidgets.bind(this);\n\t this.session._changedWidgets = [];\n\t this.$onChangeEditor = this.$onChangeEditor.bind(this);\n\t \n\t this.session.on(\"change\", this.updateOnChange);\n\t this.session.on(\"changeFold\", this.updateOnFold);\n\t this.session.on(\"changeEditor\", this.$onChangeEditor);\n\t}\n\n\t(function() {\n\t this.getRowLength = function(row) {\n\t var h;\n\t if (this.lineWidgets)\n\t h = this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n\t else \n\t h = 0;\n\t if (!this.$useWrapMode || !this.$wrapData[row]) {\n\t return 1 + h;\n\t } else {\n\t return this.$wrapData[row].length + 1 + h;\n\t }\n\t };\n\n\t this.$getWidgetScreenLength = function() {\n\t var screenRows = 0;\n\t this.lineWidgets.forEach(function(w){\n\t if (w && w.rowCount && !w.hidden)\n\t screenRows += w.rowCount;\n\t });\n\t return screenRows;\n\t }; \n\t \n\t this.$onChangeEditor = function(e) {\n\t this.attach(e.editor);\n\t };\n\t \n\t this.attach = function(editor) {\n\t if (editor && editor.widgetManager && editor.widgetManager != this)\n\t editor.widgetManager.detach();\n\n\t if (this.editor == editor)\n\t return;\n\n\t this.detach();\n\t this.editor = editor;\n\t \n\t if (editor) {\n\t editor.widgetManager = this;\n\t editor.renderer.on(\"beforeRender\", this.measureWidgets);\n\t editor.renderer.on(\"afterRender\", this.renderWidgets);\n\t }\n\t };\n\t this.detach = function(e) {\n\t var editor = this.editor;\n\t if (!editor)\n\t return;\n\t \n\t this.editor = null;\n\t editor.widgetManager = null;\n\t \n\t editor.renderer.off(\"beforeRender\", this.measureWidgets);\n\t editor.renderer.off(\"afterRender\", this.renderWidgets);\n\t var lineWidgets = this.session.lineWidgets;\n\t lineWidgets && lineWidgets.forEach(function(w) {\n\t if (w && w.el && w.el.parentNode) {\n\t w._inDocument = false;\n\t w.el.parentNode.removeChild(w.el);\n\t }\n\t });\n\t };\n\n\t this.updateOnFold = function(e, session) {\n\t var lineWidgets = session.lineWidgets;\n\t if (!lineWidgets || !e.action)\n\t return;\n\t var fold = e.data;\n\t var start = fold.start.row;\n\t var end = fold.end.row;\n\t var hide = e.action == \"add\";\n\t for (var i = start + 1; i < end; i++) {\n\t if (lineWidgets[i])\n\t lineWidgets[i].hidden = hide;\n\t }\n\t if (lineWidgets[end]) {\n\t if (hide) {\n\t if (!lineWidgets[start])\n\t lineWidgets[start] = lineWidgets[end];\n\t else\n\t lineWidgets[end].hidden = hide;\n\t } else {\n\t if (lineWidgets[start] == lineWidgets[end])\n\t lineWidgets[start] = undefined;\n\t lineWidgets[end].hidden = hide;\n\t }\n\t }\n\t };\n\t \n\t this.updateOnChange = function(delta) {\n\t var lineWidgets = this.session.lineWidgets;\n\t if (!lineWidgets) return;\n\t \n\t var startRow = delta.start.row;\n\t var len = delta.end.row - startRow;\n\n\t if (len === 0) {\n\t } else if (delta.action == 'remove') {\n\t var removed = lineWidgets.splice(startRow + 1, len);\n\t removed.forEach(function(w) {\n\t w && this.removeLineWidget(w);\n\t }, this);\n\t this.$updateRows();\n\t } else {\n\t var args = new Array(len);\n\t args.unshift(startRow, 0);\n\t lineWidgets.splice.apply(lineWidgets, args);\n\t this.$updateRows();\n\t }\n\t };\n\t \n\t this.$updateRows = function() {\n\t var lineWidgets = this.session.lineWidgets;\n\t if (!lineWidgets) return;\n\t var noWidgets = true;\n\t lineWidgets.forEach(function(w, i) {\n\t if (w) {\n\t noWidgets = false;\n\t w.row = i;\n\t while (w.$oldWidget) {\n\t w.$oldWidget.row = i;\n\t w = w.$oldWidget;\n\t }\n\t }\n\t });\n\t if (noWidgets)\n\t this.session.lineWidgets = null;\n\t };\n\n\t this.addLineWidget = function(w) {\n\t if (!this.session.lineWidgets)\n\t this.session.lineWidgets = new Array(this.session.getLength());\n\t \n\t var old = this.session.lineWidgets[w.row];\n\t if (old) {\n\t w.$oldWidget = old;\n\t if (old.el && old.el.parentNode) {\n\t old.el.parentNode.removeChild(old.el);\n\t old._inDocument = false;\n\t }\n\t }\n\t \n\t this.session.lineWidgets[w.row] = w;\n\t \n\t w.session = this.session;\n\t \n\t var renderer = this.editor.renderer;\n\t if (w.html && !w.el) {\n\t w.el = dom.createElement(\"div\");\n\t w.el.innerHTML = w.html;\n\t }\n\t if (w.el) {\n\t dom.addCssClass(w.el, \"ace_lineWidgetContainer\");\n\t w.el.style.position = \"absolute\";\n\t w.el.style.zIndex = 5;\n\t renderer.container.appendChild(w.el);\n\t w._inDocument = true;\n\t }\n\t \n\t if (!w.coverGutter) {\n\t w.el.style.zIndex = 3;\n\t }\n\t if (w.pixelHeight == null) {\n\t w.pixelHeight = w.el.offsetHeight;\n\t }\n\t if (w.rowCount == null) {\n\t w.rowCount = w.pixelHeight / renderer.layerConfig.lineHeight;\n\t }\n\t \n\t var fold = this.session.getFoldAt(w.row, 0);\n\t w.$fold = fold;\n\t if (fold) {\n\t var lineWidgets = this.session.lineWidgets;\n\t if (w.row == fold.end.row && !lineWidgets[fold.start.row])\n\t lineWidgets[fold.start.row] = w;\n\t else\n\t w.hidden = true;\n\t }\n\t \n\t this.session._emit(\"changeFold\", {data:{start:{row: w.row}}});\n\t \n\t this.$updateRows();\n\t this.renderWidgets(null, renderer);\n\t this.onWidgetChanged(w);\n\t return w;\n\t };\n\t \n\t this.removeLineWidget = function(w) {\n\t w._inDocument = false;\n\t w.session = null;\n\t if (w.el && w.el.parentNode)\n\t w.el.parentNode.removeChild(w.el);\n\t if (w.editor && w.editor.destroy) try {\n\t w.editor.destroy();\n\t } catch(e){}\n\t if (this.session.lineWidgets) {\n\t var w1 = this.session.lineWidgets[w.row]\n\t if (w1 == w) {\n\t this.session.lineWidgets[w.row] = w.$oldWidget;\n\t if (w.$oldWidget)\n\t this.onWidgetChanged(w.$oldWidget);\n\t } else {\n\t while (w1) {\n\t if (w1.$oldWidget == w) {\n\t w1.$oldWidget = w.$oldWidget;\n\t break;\n\t }\n\t w1 = w1.$oldWidget;\n\t }\n\t }\n\t }\n\t this.session._emit(\"changeFold\", {data:{start:{row: w.row}}});\n\t this.$updateRows();\n\t };\n\t \n\t this.getWidgetsAtRow = function(row) {\n\t var lineWidgets = this.session.lineWidgets;\n\t var w = lineWidgets && lineWidgets[row];\n\t var list = [];\n\t while (w) {\n\t list.push(w);\n\t w = w.$oldWidget;\n\t }\n\t return list;\n\t };\n\t \n\t this.onWidgetChanged = function(w) {\n\t this.session._changedWidgets.push(w);\n\t this.editor && this.editor.renderer.updateFull();\n\t };\n\t \n\t this.measureWidgets = function(e, renderer) {\n\t var changedWidgets = this.session._changedWidgets;\n\t var config = renderer.layerConfig;\n\t \n\t if (!changedWidgets || !changedWidgets.length) return;\n\t var min = Infinity;\n\t for (var i = 0; i < changedWidgets.length; i++) {\n\t var w = changedWidgets[i];\n\t if (!w || !w.el) continue;\n\t if (w.session != this.session) continue;\n\t if (!w._inDocument) {\n\t if (this.session.lineWidgets[w.row] != w)\n\t continue;\n\t w._inDocument = true;\n\t renderer.container.appendChild(w.el);\n\t }\n\t \n\t w.h = w.el.offsetHeight;\n\t \n\t if (!w.fixedWidth) {\n\t w.w = w.el.offsetWidth;\n\t w.screenWidth = Math.ceil(w.w / config.characterWidth);\n\t }\n\t \n\t var rowCount = w.h / config.lineHeight;\n\t if (w.coverLine) {\n\t rowCount -= this.session.getRowLineCount(w.row);\n\t if (rowCount < 0)\n\t rowCount = 0;\n\t }\n\t if (w.rowCount != rowCount) {\n\t w.rowCount = rowCount;\n\t if (w.row < min)\n\t min = w.row;\n\t }\n\t }\n\t if (min != Infinity) {\n\t this.session._emit(\"changeFold\", {data:{start:{row: min}}});\n\t this.session.lineWidgetWidth = null;\n\t }\n\t this.session._changedWidgets = [];\n\t };\n\t \n\t this.renderWidgets = function(e, renderer) {\n\t var config = renderer.layerConfig;\n\t var lineWidgets = this.session.lineWidgets;\n\t if (!lineWidgets)\n\t return;\n\t var first = Math.min(this.firstRow, config.firstRow);\n\t var last = Math.max(this.lastRow, config.lastRow, lineWidgets.length);\n\t \n\t while (first > 0 && !lineWidgets[first])\n\t first--;\n\t \n\t this.firstRow = config.firstRow;\n\t this.lastRow = config.lastRow;\n\n\t renderer.$cursorLayer.config = config;\n\t for (var i = first; i <= last; i++) {\n\t var w = lineWidgets[i];\n\t if (!w || !w.el) continue;\n\t if (w.hidden) {\n\t w.el.style.top = -100 - (w.pixelHeight || 0) + \"px\";\n\t continue;\n\t }\n\t if (!w._inDocument) {\n\t w._inDocument = true;\n\t renderer.container.appendChild(w.el);\n\t }\n\t var top = renderer.$cursorLayer.getPixelPosition({row: i, column:0}, true).top;\n\t if (!w.coverLine)\n\t top += config.lineHeight * this.session.getRowLineCount(w.row);\n\t w.el.style.top = top - config.offset + \"px\";\n\t \n\t var left = w.coverGutter ? 0 : renderer.gutterWidth;\n\t if (!w.fixedWidth)\n\t left -= renderer.scrollLeft;\n\t w.el.style.left = left + \"px\";\n\t \n\t if (w.fullWidth && w.screenWidth) {\n\t w.el.style.minWidth = config.width + 2 * config.padding + \"px\";\n\t }\n\t \n\t if (w.fixedWidth) {\n\t w.el.style.right = renderer.scrollBar.getWidth() + \"px\";\n\t } else {\n\t w.el.style.right = \"\";\n\t }\n\t }\n\t };\n\t \n\t}).call(LineWidgets.prototype);\n\n\n\texports.LineWidgets = LineWidgets;\n\n\t});\n\n\tace.define(\"ace/ext/error_marker\",[\"require\",\"exports\",\"module\",\"ace/line_widgets\",\"ace/lib/dom\",\"ace/range\"], function(acequire, exports, module) {\n\t\"use strict\";\n\tvar LineWidgets = acequire(\"../line_widgets\").LineWidgets;\n\tvar dom = acequire(\"../lib/dom\");\n\tvar Range = acequire(\"../range\").Range;\n\n\tfunction binarySearch(array, needle, comparator) {\n\t var first = 0;\n\t var last = array.length - 1;\n\n\t while (first <= last) {\n\t var mid = (first + last) >> 1;\n\t var c = comparator(needle, array[mid]);\n\t if (c > 0)\n\t first = mid + 1;\n\t else if (c < 0)\n\t last = mid - 1;\n\t else\n\t return mid;\n\t }\n\t return -(first + 1);\n\t}\n\n\tfunction findAnnotations(session, row, dir) {\n\t var annotations = session.getAnnotations().sort(Range.comparePoints);\n\t if (!annotations.length)\n\t return;\n\t \n\t var i = binarySearch(annotations, {row: row, column: -1}, Range.comparePoints);\n\t if (i < 0)\n\t i = -i - 1;\n\t \n\t if (i >= annotations.length)\n\t i = dir > 0 ? 0 : annotations.length - 1;\n\t else if (i === 0 && dir < 0)\n\t i = annotations.length - 1;\n\t \n\t var annotation = annotations[i];\n\t if (!annotation || !dir)\n\t return;\n\n\t if (annotation.row === row) {\n\t do {\n\t annotation = annotations[i += dir];\n\t } while (annotation && annotation.row === row);\n\t if (!annotation)\n\t return annotations.slice();\n\t }\n\t \n\t \n\t var matched = [];\n\t row = annotation.row;\n\t do {\n\t matched[dir < 0 ? \"unshift\" : \"push\"](annotation);\n\t annotation = annotations[i += dir];\n\t } while (annotation && annotation.row == row);\n\t return matched.length && matched;\n\t}\n\n\texports.showErrorMarker = function(editor, dir) {\n\t var session = editor.session;\n\t if (!session.widgetManager) {\n\t session.widgetManager = new LineWidgets(session);\n\t session.widgetManager.attach(editor);\n\t }\n\t \n\t var pos = editor.getCursorPosition();\n\t var row = pos.row;\n\t var oldWidget = session.widgetManager.getWidgetsAtRow(row).filter(function(w) {\n\t return w.type == \"errorMarker\";\n\t })[0];\n\t if (oldWidget) {\n\t oldWidget.destroy();\n\t } else {\n\t row -= dir;\n\t }\n\t var annotations = findAnnotations(session, row, dir);\n\t var gutterAnno;\n\t if (annotations) {\n\t var annotation = annotations[0];\n\t pos.column = (annotation.pos && typeof annotation.column != \"number\"\n\t ? annotation.pos.sc\n\t : annotation.column) || 0;\n\t pos.row = annotation.row;\n\t gutterAnno = editor.renderer.$gutterLayer.$annotations[pos.row];\n\t } else if (oldWidget) {\n\t return;\n\t } else {\n\t gutterAnno = {\n\t text: [\"Looks good!\"],\n\t className: \"ace_ok\"\n\t };\n\t }\n\t editor.session.unfold(pos.row);\n\t editor.selection.moveToPosition(pos);\n\t \n\t var w = {\n\t row: pos.row, \n\t fixedWidth: true,\n\t coverGutter: true,\n\t el: dom.createElement(\"div\"),\n\t type: \"errorMarker\"\n\t };\n\t var el = w.el.appendChild(dom.createElement(\"div\"));\n\t var arrow = w.el.appendChild(dom.createElement(\"div\"));\n\t arrow.className = \"error_widget_arrow \" + gutterAnno.className;\n\t \n\t var left = editor.renderer.$cursorLayer\n\t .getPixelPosition(pos).left;\n\t arrow.style.left = left + editor.renderer.gutterWidth - 5 + \"px\";\n\t \n\t w.el.className = \"error_widget_wrapper\";\n\t el.className = \"error_widget \" + gutterAnno.className;\n\t el.innerHTML = gutterAnno.text.join(\"<br>\");\n\t \n\t el.appendChild(dom.createElement(\"div\"));\n\t \n\t var kb = function(_, hashId, keyString) {\n\t if (hashId === 0 && (keyString === \"esc\" || keyString === \"return\")) {\n\t w.destroy();\n\t return {command: \"null\"};\n\t }\n\t };\n\t \n\t w.destroy = function() {\n\t if (editor.$mouseHandler.isMousePressed)\n\t return;\n\t editor.keyBinding.removeKeyboardHandler(kb);\n\t session.widgetManager.removeLineWidget(w);\n\t editor.off(\"changeSelection\", w.destroy);\n\t editor.off(\"changeSession\", w.destroy);\n\t editor.off(\"mouseup\", w.destroy);\n\t editor.off(\"change\", w.destroy);\n\t };\n\t \n\t editor.keyBinding.addKeyboardHandler(kb);\n\t editor.on(\"changeSelection\", w.destroy);\n\t editor.on(\"changeSession\", w.destroy);\n\t editor.on(\"mouseup\", w.destroy);\n\t editor.on(\"change\", w.destroy);\n\t \n\t editor.session.widgetManager.addLineWidget(w);\n\t \n\t w.el.onmousedown = editor.focus.bind(editor);\n\t \n\t editor.renderer.scrollCursorIntoView(null, 0.5, {bottom: w.el.offsetHeight});\n\t};\n\n\n\tdom.importCssString(\"\\\n\t .error_widget_wrapper {\\\n\t background: inherit;\\\n\t color: inherit;\\\n\t border:none\\\n\t }\\\n\t .error_widget {\\\n\t border-top: solid 2px;\\\n\t border-bottom: solid 2px;\\\n\t margin: 5px 0;\\\n\t padding: 10px 40px;\\\n\t white-space: pre-wrap;\\\n\t }\\\n\t .error_widget.ace_error, .error_widget_arrow.ace_error{\\\n\t border-color: #ff5a5a\\\n\t }\\\n\t .error_widget.ace_warning, .error_widget_arrow.ace_warning{\\\n\t border-color: #F1D817\\\n\t }\\\n\t .error_widget.ace_info, .error_widget_arrow.ace_info{\\\n\t border-color: #5a5a5a\\\n\t }\\\n\t .error_widget.ace_ok, .error_widget_arrow.ace_ok{\\\n\t border-color: #5aaa5a\\\n\t }\\\n\t .error_widget_arrow {\\\n\t position: absolute;\\\n\t border: solid 5px;\\\n\t border-top-color: transparent!important;\\\n\t border-right-color: transparent!important;\\\n\t border-left-color: transparent!important;\\\n\t top: -5px;\\\n\t }\\\n\t\", \"\");\n\n\t});\n\n\tace.define(\"ace/ace\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/editor\",\"ace/edit_session\",\"ace/undomanager\",\"ace/virtual_renderer\",\"ace/worker/worker_client\",\"ace/keyboard/hash_handler\",\"ace/placeholder\",\"ace/multi_select\",\"ace/mode/folding/fold_mode\",\"ace/theme/textmate\",\"ace/ext/error_marker\",\"ace/config\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tacequire(\"./lib/fixoldbrowsers\");\n\n\tvar dom = acequire(\"./lib/dom\");\n\tvar event = acequire(\"./lib/event\");\n\n\tvar Editor = acequire(\"./editor\").Editor;\n\tvar EditSession = acequire(\"./edit_session\").EditSession;\n\tvar UndoManager = acequire(\"./undomanager\").UndoManager;\n\tvar Renderer = acequire(\"./virtual_renderer\").VirtualRenderer;\n\tacequire(\"./worker/worker_client\");\n\tacequire(\"./keyboard/hash_handler\");\n\tacequire(\"./placeholder\");\n\tacequire(\"./multi_select\");\n\tacequire(\"./mode/folding/fold_mode\");\n\tacequire(\"./theme/textmate\");\n\tacequire(\"./ext/error_marker\");\n\n\texports.config = acequire(\"./config\");\n\texports.acequire = acequire;\n\n\tif (true)\n\t exports.define = __webpack_require__(69);\n\texports.edit = function(el) {\n\t if (typeof el == \"string\") {\n\t var _id = el;\n\t el = document.getElementById(_id);\n\t if (!el)\n\t throw new Error(\"ace.edit can't find div #\" + _id);\n\t }\n\n\t if (el && el.env && el.env.editor instanceof Editor)\n\t return el.env.editor;\n\n\t var value = \"\";\n\t if (el && /input|textarea/i.test(el.tagName)) {\n\t var oldNode = el;\n\t value = oldNode.value;\n\t el = dom.createElement(\"pre\");\n\t oldNode.parentNode.replaceChild(el, oldNode);\n\t } else if (el) {\n\t value = dom.getInnerText(el);\n\t el.innerHTML = \"\";\n\t }\n\n\t var doc = exports.createEditSession(value);\n\n\t var editor = new Editor(new Renderer(el));\n\t editor.setSession(doc);\n\n\t var env = {\n\t document: doc,\n\t editor: editor,\n\t onResize: editor.resize.bind(editor, null)\n\t };\n\t if (oldNode) env.textarea = oldNode;\n\t event.addListener(window, \"resize\", env.onResize);\n\t editor.on(\"destroy\", function() {\n\t event.removeListener(window, \"resize\", env.onResize);\n\t env.editor.container.env = null; // prevent memory leak on old ie\n\t });\n\t editor.container.env = editor.env = env;\n\t return editor;\n\t};\n\texports.createEditSession = function(text, mode) {\n\t var doc = new EditSession(text, mode);\n\t doc.setUndoManager(new UndoManager());\n\t return doc;\n\t}\n\texports.EditSession = EditSession;\n\texports.UndoManager = UndoManager;\n\texports.version = \"1.2.6\";\n\t});\n\t (function() {\n\t ace.acequire([\"ace/ace\"], function(a) {\n\t if (a) {\n\t a.config.init(true);\n\t a.define = ace.define;\n\t }\n\t if (!window.ace)\n\t window.ace = a;\n\t for (var key in a) if (a.hasOwnProperty(key))\n\t window.ace[key] = a[key];\n\t });\n\t })();\n\t \n\tmodule.exports = window.ace.acequire(\"ace/ace\");\n\n/***/ },\n/* 69 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function() { throw new Error(\"define cannot be used indirect\"); };\n\n\n/***/ },\n/* 70 */\n/***/ function(module, exports) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {module.exports = get_blob()\n\n\tfunction get_blob() {\n\t if(global.Blob) {\n\t try {\n\t new Blob(['asdf'], {type: 'text/plain'})\n\t return Blob\n\t } catch(err) {}\n\t }\n\n\t var Builder = global.WebKitBlobBuilder ||\n\t global.MozBlobBuilder ||\n\t global.MSBlobBuilder\n\n\t return function(parts, bag) {\n\t var builder = new Builder\n\t , endings = bag.endings\n\t , type = bag.type\n\n\t if(endings) for(var i = 0, len = parts.length; i < len; ++i) {\n\t builder.append(parts[i], endings)\n\t } else for(var i = 0, len = parts.length; i < len; ++i) {\n\t builder.append(parts[i])\n\t }\n\n\t return type ? builder.getBlob(type) : builder.getBlob()\n\t }\n\t}\n\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ },\n/* 71 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tace.define(\"ace/mode/json_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar oop = acequire(\"../lib/oop\");\n\tvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\n\n\tvar JsonHighlightRules = function() {\n\t this.$rules = {\n\t \"start\" : [\n\t {\n\t token : \"variable\", // single line\n\t regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]\\\\s*(?=:)'\n\t }, {\n\t token : \"string\", // single line\n\t regex : '\"',\n\t next : \"string\"\n\t }, {\n\t token : \"constant.numeric\", // hex\n\t regex : \"0[xX][0-9a-fA-F]+\\\\b\"\n\t }, {\n\t token : \"constant.numeric\", // float\n\t regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n\t }, {\n\t token : \"constant.language.boolean\",\n\t regex : \"(?:true|false)\\\\b\"\n\t }, {\n\t token : \"invalid.illegal\", // single quoted strings are not allowed\n\t regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n\t }, {\n\t token : \"invalid.illegal\", // comments are not allowed\n\t regex : \"\\\\/\\\\/.*$\"\n\t }, {\n\t token : \"paren.lparen\",\n\t regex : \"[[({]\"\n\t }, {\n\t token : \"paren.rparen\",\n\t regex : \"[\\\\])}]\"\n\t }, {\n\t token : \"text\",\n\t regex : \"\\\\s+\"\n\t }\n\t ],\n\t \"string\" : [\n\t {\n\t token : \"constant.language.escape\",\n\t regex : /\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[\"\\\\\\/bfnrt])/\n\t }, {\n\t token : \"string\",\n\t regex : '[^\"\\\\\\\\]+'\n\t }, {\n\t token : \"string\",\n\t regex : '\"',\n\t next : \"start\"\n\t }, {\n\t token : \"string\",\n\t regex : \"\",\n\t next : \"start\"\n\t }\n\t ]\n\t };\n\t \n\t};\n\n\toop.inherits(JsonHighlightRules, TextHighlightRules);\n\n\texports.JsonHighlightRules = JsonHighlightRules;\n\t});\n\n\tace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar Range = acequire(\"../range\").Range;\n\n\tvar MatchingBraceOutdent = function() {};\n\n\t(function() {\n\n\t this.checkOutdent = function(line, input) {\n\t if (! /^\\s+$/.test(line))\n\t return false;\n\n\t return /^\\s*\\}/.test(input);\n\t };\n\n\t this.autoOutdent = function(doc, row) {\n\t var line = doc.getLine(row);\n\t var match = line.match(/^(\\s*\\})/);\n\n\t if (!match) return 0;\n\n\t var column = match[1].length;\n\t var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n\t if (!openBracePos || openBracePos.row == row) return 0;\n\n\t var indent = this.$getIndent(doc.getLine(openBracePos.row));\n\t doc.replace(new Range(row, 0, row, column-1), indent);\n\t };\n\n\t this.$getIndent = function(line) {\n\t return line.match(/^\\s*/)[0];\n\t };\n\n\t}).call(MatchingBraceOutdent.prototype);\n\n\texports.MatchingBraceOutdent = MatchingBraceOutdent;\n\t});\n\n\tace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar oop = acequire(\"../../lib/oop\");\n\tvar Range = acequire(\"../../range\").Range;\n\tvar BaseFoldMode = acequire(\"./fold_mode\").FoldMode;\n\n\tvar FoldMode = exports.FoldMode = function(commentRegex) {\n\t if (commentRegex) {\n\t this.foldingStartMarker = new RegExp(\n\t this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n\t );\n\t this.foldingStopMarker = new RegExp(\n\t this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n\t );\n\t }\n\t};\n\toop.inherits(FoldMode, BaseFoldMode);\n\n\t(function() {\n\t \n\t this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n\t this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n\t this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n\t this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n\t this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n\t this._getFoldWidgetBase = this.getFoldWidget;\n\t this.getFoldWidget = function(session, foldStyle, row) {\n\t var line = session.getLine(row);\n\t \n\t if (this.singleLineBlockCommentRe.test(line)) {\n\t if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n\t return \"\";\n\t }\n\t \n\t var fw = this._getFoldWidgetBase(session, foldStyle, row);\n\t \n\t if (!fw && this.startRegionRe.test(line))\n\t return \"start\"; // lineCommentRegionStart\n\t \n\t return fw;\n\t };\n\n\t this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n\t var line = session.getLine(row);\n\t \n\t if (this.startRegionRe.test(line))\n\t return this.getCommentRegionBlock(session, line, row);\n\t \n\t var match = line.match(this.foldingStartMarker);\n\t if (match) {\n\t var i = match.index;\n\n\t if (match[1])\n\t return this.openingBracketBlock(session, match[1], row, i);\n\t \n\t var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n\t \n\t if (range && !range.isMultiLine()) {\n\t if (forceMultiline) {\n\t range = this.getSectionRange(session, row);\n\t } else if (foldStyle != \"all\")\n\t range = null;\n\t }\n\t \n\t return range;\n\t }\n\n\t if (foldStyle === \"markbegin\")\n\t return;\n\n\t var match = line.match(this.foldingStopMarker);\n\t if (match) {\n\t var i = match.index + match[0].length;\n\n\t if (match[1])\n\t return this.closingBracketBlock(session, match[1], row, i);\n\n\t return session.getCommentFoldRange(row, i, -1);\n\t }\n\t };\n\t \n\t this.getSectionRange = function(session, row) {\n\t var line = session.getLine(row);\n\t var startIndent = line.search(/\\S/);\n\t var startRow = row;\n\t var startColumn = line.length;\n\t row = row + 1;\n\t var endRow = row;\n\t var maxRow = session.getLength();\n\t while (++row < maxRow) {\n\t line = session.getLine(row);\n\t var indent = line.search(/\\S/);\n\t if (indent === -1)\n\t continue;\n\t if (startIndent > indent)\n\t break;\n\t var subRange = this.getFoldWidgetRange(session, \"all\", row);\n\t \n\t if (subRange) {\n\t if (subRange.start.row <= startRow) {\n\t break;\n\t } else if (subRange.isMultiLine()) {\n\t row = subRange.end.row;\n\t } else if (startIndent == indent) {\n\t break;\n\t }\n\t }\n\t endRow = row;\n\t }\n\t \n\t return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n\t };\n\t this.getCommentRegionBlock = function(session, line, row) {\n\t var startColumn = line.search(/\\s*$/);\n\t var maxRow = session.getLength();\n\t var startRow = row;\n\t \n\t var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n\t var depth = 1;\n\t while (++row < maxRow) {\n\t line = session.getLine(row);\n\t var m = re.exec(line);\n\t if (!m) continue;\n\t if (m[1]) depth--;\n\t else depth++;\n\n\t if (!depth) break;\n\t }\n\n\t var endRow = row;\n\t if (endRow > startRow) {\n\t return new Range(startRow, startColumn, endRow, line.length);\n\t }\n\t };\n\n\t}).call(FoldMode.prototype);\n\n\t});\n\n\tace.define(\"ace/mode/json\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/json_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\",\"ace/worker/worker_client\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar oop = acequire(\"../lib/oop\");\n\tvar TextMode = acequire(\"./text\").Mode;\n\tvar HighlightRules = acequire(\"./json_highlight_rules\").JsonHighlightRules;\n\tvar MatchingBraceOutdent = acequire(\"./matching_brace_outdent\").MatchingBraceOutdent;\n\tvar CstyleBehaviour = acequire(\"./behaviour/cstyle\").CstyleBehaviour;\n\tvar CStyleFoldMode = acequire(\"./folding/cstyle\").FoldMode;\n\tvar WorkerClient = acequire(\"../worker/worker_client\").WorkerClient;\n\n\tvar Mode = function() {\n\t this.HighlightRules = HighlightRules;\n\t this.$outdent = new MatchingBraceOutdent();\n\t this.$behaviour = new CstyleBehaviour();\n\t this.foldingRules = new CStyleFoldMode();\n\t};\n\toop.inherits(Mode, TextMode);\n\n\t(function() {\n\n\t this.getNextLineIndent = function(state, line, tab) {\n\t var indent = this.$getIndent(line);\n\n\t if (state == \"start\") {\n\t var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n\t if (match) {\n\t indent += tab;\n\t }\n\t }\n\n\t return indent;\n\t };\n\n\t this.checkOutdent = function(state, line, input) {\n\t return this.$outdent.checkOutdent(line, input);\n\t };\n\n\t this.autoOutdent = function(state, doc, row) {\n\t this.$outdent.autoOutdent(doc, row);\n\t };\n\n\t this.createWorker = function(session) {\n\t var worker = new WorkerClient([\"ace\"], __webpack_require__(72), \"JsonWorker\");\n\t worker.attachToDocument(session.getDocument());\n\n\t worker.on(\"annotate\", function(e) {\n\t session.setAnnotations(e.data);\n\t });\n\n\t worker.on(\"terminate\", function() {\n\t session.clearAnnotations();\n\t });\n\n\t return worker;\n\t };\n\n\n\t this.$id = \"ace/mode/json\";\n\t}).call(Mode.prototype);\n\n\texports.Mode = Mode;\n\t});\n\n\n/***/ },\n/* 72 */\n/***/ function(module, exports) {\n\n\tmodule.exports.id = 'ace/mode/json_worker';\n\tmodule.exports.src = \"\\\"no use strict\\\";(function(window){function resolveModuleId(id,paths){for(var testPath=id,tail=\\\"\\\";testPath;){var alias=paths[testPath];if(\\\"string\\\"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\\\/*$/,\\\"/\\\")+(tail||alias.main||alias.name);if(alias===!1)return\\\"\\\";var i=testPath.lastIndexOf(\\\"/\\\");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:\\\"log\\\",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:\\\"error\\\",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf(\\\"!\\\")){var chunks=moduleName.split(\\\"!\\\");return window.normalizeModule(parentId,chunks[0])+\\\"!\\\"+window.normalizeModule(parentId,chunks[1])}if(\\\".\\\"==moduleName.charAt(0)){var base=parentId.split(\\\"/\\\").slice(0,-1).join(\\\"/\\\");for(moduleName=(base?base+\\\"/\\\":\\\"\\\")+moduleName;-1!==moduleName.indexOf(\\\".\\\")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\\\.\\\\//,\\\"\\\").replace(/\\\\/\\\\.\\\\//,\\\"/\\\").replace(/[^\\\\/]+\\\\/\\\\.\\\\.\\\\//,\\\"\\\")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error(\\\"worker.js acequire() accepts only (parentId, id) as arguments\\\");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log(\\\"unable to load \\\"+id);var path=resolveModuleId(id,window.acequire.tlns);return\\\".js\\\"!=path.slice(-3)&&(path+=\\\".js\\\"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,\\\"string\\\"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),\\\"function\\\"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=[\\\"require\\\",\\\"exports\\\",\\\"module\\\"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case\\\"require\\\":return req;case\\\"exports\\\":return module.exports;case\\\"module\\\":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire(\\\"ace/lib/event_emitter\\\").EventEmitter,oop=window.acequire(\\\"ace/lib/oop\\\"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:\\\"call\\\",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:\\\"event\\\",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error(\\\"Unknown command:\\\"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire(\\\"ace/lib/es5-shim\\\"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}})(this),ace.define(\\\"ace/lib/oop\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define(\\\"ace/range\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return\\\"Range: [\\\"+this.start.row+\\\"/\\\"+this.start.column+\\\"] -> [\\\"+this.end.row+\\\"/\\\"+this.end.column+\\\"]\\\"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){\\\"object\\\"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){\\\"object\\\"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define(\\\"ace/apply_delta\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||\\\"\\\";switch(delta.action){case\\\"insert\\\":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case\\\"remove\\\":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define(\\\"ace/lib/event_emitter\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){\\\"object\\\"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?\\\"unshift\\\":\\\"push\\\"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define(\\\"ace/anchor\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/lib/oop\\\",\\\"ace/lib/event_emitter\\\"],function(acequire,exports){\\\"use strict\\\";var oop=acequire(\\\"./lib/oop\\\"),EventEmitter=acequire(\\\"./lib/event_emitter\\\").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.column<point2.column;return point1.row<point2.row||point1.row==point2.row&&bColIsAfter}function $getTransformedPoint(delta,point,moveIfEqual){var deltaIsInsert=\\\"insert\\\"==delta.action,deltaRowShift=(deltaIsInsert?1:-1)*(delta.end.row-delta.start.row),deltaColShift=(deltaIsInsert?1:-1)*(delta.end.column-delta.start.column),deltaStart=delta.start,deltaEnd=deltaIsInsert?deltaStart:delta.end;return $pointsInOrder(point,deltaStart,moveIfEqual)?{row:point.row,column:point.column}:$pointsInOrder(deltaEnd,point,!moveIfEqual)?{row:point.row+deltaRowShift,column:point.column+(point.row==deltaEnd.row?deltaColShift:0)}:{row:deltaStart.row,column:deltaStart.column}}oop.implement(this,EventEmitter),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(delta){if(!(delta.start.row==delta.end.row&&delta.start.row!=this.row||delta.start.row>this.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal(\\\"change\\\",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener(\\\"change\\\",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on(\\\"change\\\",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define(\\\"ace/document\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/lib/oop\\\",\\\"ace/apply_delta\\\",\\\"ace/lib/event_emitter\\\",\\\"ace/range\\\",\\\"ace/anchor\\\"],function(acequire,exports){\\\"use strict\\\";var oop=acequire(\\\"./lib/oop\\\"),applyDelta=acequire(\\\"./apply_delta\\\").applyDelta,EventEmitter=acequire(\\\"./lib/event_emitter\\\").EventEmitter,Range=acequire(\\\"./range\\\").Range,Anchor=acequire(\\\"./anchor\\\").Anchor,Document=function(textOrLines){this.$lines=[\\\"\\\"],0===textOrLines.length?this.$lines=[\\\"\\\"]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0===\\\"aaa\\\".split(/a/).length?function(text){return text.replace(/\\\\r\\\\n|\\\\r/g,\\\"\\\\n\\\").split(\\\"\\\\n\\\")}:function(text){return text.split(/\\\\r\\\\n|\\\\r|\\\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\\\r\\\\n|\\\\r|\\\\n)/m);this.$autoNewLine=match?match[1]:\\\"\\\\n\\\",this._signal(\\\"changeNewLineMode\\\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\\\"windows\\\":return\\\"\\\\r\\\\n\\\";case\\\"unix\\\":return\\\"\\\\n\\\";default:return this.$autoNewLine||\\\"\\\\n\\\"}},this.$autoNewLine=\\\"\\\",this.$newLineMode=\\\"auto\\\",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal(\\\"changeNewLineMode\\\"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return\\\"\\\\r\\\\n\\\"==text||\\\"\\\\r\\\"==text||\\\"\\\\n\\\"==text},this.getLine=function(row){return this.$lines[row]||\\\"\\\"},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||\\\"\\\").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn(\\\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\\\"),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn(\\\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\\\"),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn(\\\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\\\"),this.insertMergedLines(position,[\\\"\\\",\\\"\\\"])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:\\\"insert\\\",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([\\\"\\\"]),column=0):(lines=[\\\"\\\"].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:\\\"insert\\\",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:\\\"remove\\\",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:\\\"remove\\\",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:\\\"remove\\\",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:\\\"remove\\\",lines:[\\\"\\\",\\\"\\\"]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert=\\\"insert\\\"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal(\\\"change\\\",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(\\\"\\\"),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:\\\"insert\\\"==delta.action?\\\"remove\\\":\\\"insert\\\",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define(\\\"ace/lib/lang\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split(\\\"\\\").reverse().join(\\\"\\\")},exports.stringRepeat=function(string,count){for(var result=\\\"\\\";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\\\s\\\\s*/,trimEndRegexp=/\\\\s\\\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,\\\"\\\")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,\\\"\\\")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&\\\"object\\\"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if(\\\"object\\\"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if(\\\"[object Object]\\\"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\\\]\\\\/\\\\\\\\])/g,\\\"\\\\\\\\$1\\\")},exports.escapeHTML=function(str){return str.replace(/&/g,\\\"&\\\").replace(/\\\"/g,\\\""\\\").replace(/'/g,\\\"'\\\").replace(/</g,\\\"<\\\")},exports.getMatchOffsets=function(string,regExp){var matches=[];return string.replace(regExp,function(str){matches.push({offset:arguments[arguments.length-2],length:str.length})}),matches},exports.deferredCall=function(fcn){var timer=null,callback=function(){timer=null,fcn()},deferred=function(timeout){return deferred.cancel(),timer=setTimeout(callback,timeout||0),deferred};return deferred.schedule=deferred,deferred.call=function(){return this.cancel(),fcn(),deferred},deferred.cancel=function(){return clearTimeout(timer),timer=null,deferred},deferred.isPending=function(){return timer},deferred},exports.delayedCall=function(fcn,defaultTimeout){var timer=null,callback=function(){timer=null,fcn()},_self=function(timeout){null==timer&&(timer=setTimeout(callback,timeout||defaultTimeout))};return _self.delay=function(timeout){timer&&clearTimeout(timer),timer=setTimeout(callback,timeout||defaultTimeout)},_self.schedule=_self,_self.call=function(){this.cancel(),fcn()},_self.cancel=function(){timer&&clearTimeout(timer),timer=null},_self.isPending=function(){return timer},_self}}),ace.define(\\\"ace/worker/mirror\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/range\\\",\\\"ace/document\\\",\\\"ace/lib/lang\\\"],function(acequire,exports){\\\"use strict\\\";acequire(\\\"../range\\\").Range;var Document=acequire(\\\"../document\\\").Document,lang=acequire(\\\"../lib/lang\\\"),Mirror=exports.Mirror=function(sender){this.sender=sender;var doc=this.doc=new Document(\\\"\\\"),deferredUpdate=this.deferredUpdate=lang.delayedCall(this.onUpdate.bind(this)),_self=this;sender.on(\\\"change\\\",function(e){var data=e.data;if(data[0].start)doc.applyDeltas(data);else for(var i=0;data.length>i;i+=2){if(Array.isArray(data[i+1]))var d={action:\\\"insert\\\",start:data[i],lines:data[i+1]};else var d={action:\\\"remove\\\",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define(\\\"ace/mode/json/json_parse\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(){\\\"use strict\\\";var at,ch,text,value,escapee={'\\\"':'\\\"',\\\"\\\\\\\\\\\":\\\"\\\\\\\\\\\",\\\"/\\\":\\\"/\\\",b:\\\"\\\\b\\\",f:\\\"\\\\f\\\",n:\\\"\\\\n\\\",r:\\\"\\\\r\\\",t:\\\"\\t\\\"},error=function(m){throw{name:\\\"SyntaxError\\\",message:m,at:at,text:text}},next=function(c){return c&&c!==ch&&error(\\\"Expected '\\\"+c+\\\"' instead of '\\\"+ch+\\\"'\\\"),ch=text.charAt(at),at+=1,ch},number=function(){var number,string=\\\"\\\";for(\\\"-\\\"===ch&&(string=\\\"-\\\",next(\\\"-\\\"));ch>=\\\"0\\\"&&\\\"9\\\">=ch;)string+=ch,next();if(\\\".\\\"===ch)for(string+=\\\".\\\";next()&&ch>=\\\"0\\\"&&\\\"9\\\">=ch;)string+=ch;if(\\\"e\\\"===ch||\\\"E\\\"===ch)for(string+=ch,next(),(\\\"-\\\"===ch||\\\"+\\\"===ch)&&(string+=ch,next());ch>=\\\"0\\\"&&\\\"9\\\">=ch;)string+=ch,next();return number=+string,isNaN(number)?(error(\\\"Bad number\\\"),void 0):number},string=function(){var hex,i,uffff,string=\\\"\\\";if('\\\"'===ch)for(;next();){if('\\\"'===ch)return next(),string;if(\\\"\\\\\\\\\\\"===ch)if(next(),\\\"u\\\"===ch){for(uffff=0,i=0;4>i&&(hex=parseInt(next(),16),isFinite(hex));i+=1)uffff=16*uffff+hex;string+=String.fromCharCode(uffff)}else{if(\\\"string\\\"!=typeof escapee[ch])break;string+=escapee[ch]}else string+=ch}error(\\\"Bad string\\\")},white=function(){for(;ch&&\\\" \\\">=ch;)next()},word=function(){switch(ch){case\\\"t\\\":return next(\\\"t\\\"),next(\\\"r\\\"),next(\\\"u\\\"),next(\\\"e\\\"),!0;case\\\"f\\\":return next(\\\"f\\\"),next(\\\"a\\\"),next(\\\"l\\\"),next(\\\"s\\\"),next(\\\"e\\\"),!1;case\\\"n\\\":return next(\\\"n\\\"),next(\\\"u\\\"),next(\\\"l\\\"),next(\\\"l\\\"),null}error(\\\"Unexpected '\\\"+ch+\\\"'\\\")},array=function(){var array=[];if(\\\"[\\\"===ch){if(next(\\\"[\\\"),white(),\\\"]\\\"===ch)return next(\\\"]\\\"),array;for(;ch;){if(array.push(value()),white(),\\\"]\\\"===ch)return next(\\\"]\\\"),array;next(\\\",\\\"),white()}}error(\\\"Bad array\\\")},object=function(){var key,object={};if(\\\"{\\\"===ch){if(next(\\\"{\\\"),white(),\\\"}\\\"===ch)return next(\\\"}\\\"),object;for(;ch;){if(key=string(),white(),next(\\\":\\\"),Object.hasOwnProperty.call(object,key)&&error('Duplicate key \\\"'+key+'\\\"'),object[key]=value(),white(),\\\"}\\\"===ch)return next(\\\"}\\\"),object;next(\\\",\\\"),white()}}error(\\\"Bad object\\\")};return value=function(){switch(white(),ch){case\\\"{\\\":return object();case\\\"[\\\":return array();case'\\\"':return string();case\\\"-\\\":return number();default:return ch>=\\\"0\\\"&&\\\"9\\\">=ch?number():word()}},function(source,reviver){var result;return text=source,at=0,ch=\\\" \\\",result=value(),white(),ch&&error(\\\"Syntax error\\\"),\\\"function\\\"==typeof reviver?function walk(holder,key){var k,v,value=holder[key];if(value&&\\\"object\\\"==typeof value)for(k in value)Object.hasOwnProperty.call(value,k)&&(v=walk(value,k),void 0!==v?value[k]=v:delete value[k]);return reviver.call(holder,key,value)}({\\\"\\\":result},\\\"\\\"):result}}),ace.define(\\\"ace/mode/json_worker\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/lib/oop\\\",\\\"ace/worker/mirror\\\",\\\"ace/mode/json/json_parse\\\"],function(acequire,exports){\\\"use strict\\\";var oop=acequire(\\\"../lib/oop\\\"),Mirror=acequire(\\\"../worker/mirror\\\").Mirror,parse=acequire(\\\"./json/json_parse\\\"),JsonWorker=exports.JsonWorker=function(sender){Mirror.call(this,sender),this.setTimeout(200)};oop.inherits(JsonWorker,Mirror),function(){this.onUpdate=function(){var value=this.doc.getValue(),errors=[];try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);errors.push({row:pos.row,column:pos.column,text:e.message,type:\\\"error\\\"})}this.sender.emit(\\\"annotate\\\",errors)}}.call(JsonWorker.prototype)}),ace.define(\\\"ace/lib/es5-shim\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,\\\"sentinel\\\",{}),\\\"sentinel\\\"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if(\\\"function\\\"!=typeof target)throw new TypeError(\\\"Function.prototype.bind called on incompatible \\\"+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,\\\"__defineGetter__\\\"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,\\\"XXX\\\"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0\\n}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return\\\"[object Array]\\\"==_toString(obj)});var boxedString=Object(\\\"a\\\"),splitString=\\\"a\\\"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,thisp=arguments[1],i=-1,length=self.length>>>0;if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,result=[],thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0;if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");if(!length&&1==arguments.length)throw new TypeError(\\\"reduce of empty array with no initial value\\\");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError(\\\"reduce of empty array with no initial value\\\")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0;if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");if(!length&&1==arguments.length)throw new TypeError(\\\"reduceRight of empty array with no initial value\\\");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError(\\\"reduceRight of empty array with no initial value\\\")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT=\\\"Object.getOwnPropertyDescriptor called on a non-object: \\\";Object.getOwnPropertyDescriptor=function(object,property){if(\\\"object\\\"!=typeof object&&\\\"function\\\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if(\\\"object\\\"!=typeof prototype)throw new TypeError(\\\"typeof prototype[\\\"+typeof prototype+\\\"] != 'object'\\\");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom=\\\"undefined\\\"==typeof document||doesDefinePropertyWork(document.createElement(\\\"div\\\"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR=\\\"Property description must be an object: \\\",ERR_NON_OBJECT_TARGET=\\\"Object.defineProperty called on non-object: \\\",ERR_ACCESSORS_NOT_SUPPORTED=\\\"getters & setters can not be defined on this javascript engine\\\";Object.defineProperty=function(object,property,descriptor){if(\\\"object\\\"!=typeof object&&\\\"function\\\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if(\\\"object\\\"!=typeof descriptor&&\\\"function\\\"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,\\\"value\\\"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,\\\"get\\\")&&defineGetter(object,property,descriptor.get),owns(descriptor,\\\"set\\\")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return\\\"function\\\"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name=\\\"\\\";owns(object,name);)name+=\\\"?\\\";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=[\\\"toString\\\",\\\"toLocaleString\\\",\\\"valueOf\\\",\\\"hasOwnProperty\\\",\\\"isPrototypeOf\\\",\\\"propertyIsEnumerable\\\",\\\"constructor\\\"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if(\\\"object\\\"!=typeof object&&\\\"function\\\"!=typeof object||null===object)throw new TypeError(\\\"Object.keys called on a non-object\\\");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws=\\\"\\t\\\\n\\u000b\\\\f\\\\r   ᠎              \\\\u2028\\\\u2029\\\";if(!String.prototype.trim||ws.trim()){ws=\\\"[\\\"+ws+\\\"]\\\";var trimBeginRegexp=RegExp(\\\"^\\\"+ws+ws+\\\"*\\\"),trimEndRegexp=RegExp(ws+ws+\\\"*$\\\");String.prototype.trim=function(){return(this+\\\"\\\").replace(trimBeginRegexp,\\\"\\\").replace(trimEndRegexp,\\\"\\\")}}var toObject=function(o){if(null==o)throw new TypeError(\\\"can't convert \\\"+o+\\\" to object\\\");return Object(o)}});\";\n\n/***/ },\n/* 73 */\n/***/ function(module, exports) {\n\n\tace.define(\"ace/ext/searchbox\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/event\",\"ace/keyboard/hash_handler\",\"ace/lib/keys\"], function(acequire, exports, module) {\n\t\"use strict\";\n\n\tvar dom = acequire(\"../lib/dom\");\n\tvar lang = acequire(\"../lib/lang\");\n\tvar event = acequire(\"../lib/event\");\n\tvar searchboxCss = \"\\\n\t.ace_search {\\\n\tbackground-color: #ddd;\\\n\tborder: 1px solid #cbcbcb;\\\n\tborder-top: 0 none;\\\n\tmax-width: 325px;\\\n\toverflow: hidden;\\\n\tmargin: 0;\\\n\tpadding: 4px;\\\n\tpadding-right: 6px;\\\n\tpadding-bottom: 0;\\\n\tposition: absolute;\\\n\ttop: 0px;\\\n\tz-index: 99;\\\n\twhite-space: normal;\\\n\t}\\\n\t.ace_search.left {\\\n\tborder-left: 0 none;\\\n\tborder-radius: 0px 0px 5px 0px;\\\n\tleft: 0;\\\n\t}\\\n\t.ace_search.right {\\\n\tborder-radius: 0px 0px 0px 5px;\\\n\tborder-right: 0 none;\\\n\tright: 0;\\\n\t}\\\n\t.ace_search_form, .ace_replace_form {\\\n\tborder-radius: 3px;\\\n\tborder: 1px solid #cbcbcb;\\\n\tfloat: left;\\\n\tmargin-bottom: 4px;\\\n\toverflow: hidden;\\\n\t}\\\n\t.ace_search_form.ace_nomatch {\\\n\toutline: 1px solid red;\\\n\t}\\\n\t.ace_search_field {\\\n\tbackground-color: white;\\\n\tcolor: black;\\\n\tborder-right: 1px solid #cbcbcb;\\\n\tborder: 0 none;\\\n\t-webkit-box-sizing: border-box;\\\n\t-moz-box-sizing: border-box;\\\n\tbox-sizing: border-box;\\\n\tfloat: left;\\\n\theight: 22px;\\\n\toutline: 0;\\\n\tpadding: 0 7px;\\\n\twidth: 214px;\\\n\tmargin: 0;\\\n\t}\\\n\t.ace_searchbtn,\\\n\t.ace_replacebtn {\\\n\tbackground: #fff;\\\n\tborder: 0 none;\\\n\tborder-left: 1px solid #dcdcdc;\\\n\tcursor: pointer;\\\n\tfloat: left;\\\n\theight: 22px;\\\n\tmargin: 0;\\\n\tposition: relative;\\\n\t}\\\n\t.ace_searchbtn:last-child,\\\n\t.ace_replacebtn:last-child {\\\n\tborder-top-right-radius: 3px;\\\n\tborder-bottom-right-radius: 3px;\\\n\t}\\\n\t.ace_searchbtn:disabled {\\\n\tbackground: none;\\\n\tcursor: default;\\\n\t}\\\n\t.ace_searchbtn {\\\n\tbackground-position: 50% 50%;\\\n\tbackground-repeat: no-repeat;\\\n\twidth: 27px;\\\n\t}\\\n\t.ace_searchbtn.prev {\\\n\tbackground-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADFJREFUeNpiSU1NZUAC/6E0I0yACYskCpsJiySKIiY0SUZk40FyTEgCjGgKwTRAgAEAQJUIPCE+qfkAAAAASUVORK5CYII=); \\\n\t}\\\n\t.ace_searchbtn.next {\\\n\tbackground-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADRJREFUeNpiTE1NZQCC/0DMyIAKwGJMUAYDEo3M/s+EpvM/mkKwCQxYjIeLMaELoLMBAgwAU7UJObTKsvAAAAAASUVORK5CYII=); \\\n\t}\\\n\t.ace_searchbtn_close {\\\n\tbackground: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\\\n\tborder-radius: 50%;\\\n\tborder: 0 none;\\\n\tcolor: #656565;\\\n\tcursor: pointer;\\\n\tfloat: right;\\\n\tfont: 16px/16px Arial;\\\n\theight: 14px;\\\n\tmargin: 5px 1px 9px 5px;\\\n\tpadding: 0;\\\n\ttext-align: center;\\\n\twidth: 14px;\\\n\t}\\\n\t.ace_searchbtn_close:hover {\\\n\tbackground-color: #656565;\\\n\tbackground-position: 50% 100%;\\\n\tcolor: white;\\\n\t}\\\n\t.ace_replacebtn.prev {\\\n\twidth: 54px\\\n\t}\\\n\t.ace_replacebtn.next {\\\n\twidth: 27px\\\n\t}\\\n\t.ace_button {\\\n\tmargin-left: 2px;\\\n\tcursor: pointer;\\\n\t-webkit-user-select: none;\\\n\t-moz-user-select: none;\\\n\t-o-user-select: none;\\\n\t-ms-user-select: none;\\\n\tuser-select: none;\\\n\toverflow: hidden;\\\n\topacity: 0.7;\\\n\tborder: 1px solid rgba(100,100,100,0.23);\\\n\tpadding: 1px;\\\n\t-moz-box-sizing: border-box;\\\n\tbox-sizing: border-box;\\\n\tcolor: black;\\\n\t}\\\n\t.ace_button:hover {\\\n\tbackground-color: #eee;\\\n\topacity:1;\\\n\t}\\\n\t.ace_button:active {\\\n\tbackground-color: #ddd;\\\n\t}\\\n\t.ace_button.checked {\\\n\tborder-color: #3399ff;\\\n\topacity:1;\\\n\t}\\\n\t.ace_search_options{\\\n\tmargin-bottom: 3px;\\\n\ttext-align: right;\\\n\t-webkit-user-select: none;\\\n\t-moz-user-select: none;\\\n\t-o-user-select: none;\\\n\t-ms-user-select: none;\\\n\tuser-select: none;\\\n\t}\";\n\tvar HashHandler = acequire(\"../keyboard/hash_handler\").HashHandler;\n\tvar keyUtil = acequire(\"../lib/keys\");\n\n\tdom.importCssString(searchboxCss, \"ace_searchbox\");\n\n\tvar html = '<div class=\"ace_search right\">\\\n\t <button type=\"button\" action=\"hide\" class=\"ace_searchbtn_close\"></button>\\\n\t <div class=\"ace_search_form\">\\\n\t <input class=\"ace_search_field\" placeholder=\"Search for\" spellcheck=\"false\"></input>\\\n\t <button type=\"button\" action=\"findNext\" class=\"ace_searchbtn next\"></button>\\\n\t <button type=\"button\" action=\"findPrev\" class=\"ace_searchbtn prev\"></button>\\\n\t <button type=\"button\" action=\"findAll\" class=\"ace_searchbtn\" title=\"Alt-Enter\">All</button>\\\n\t </div>\\\n\t <div class=\"ace_replace_form\">\\\n\t <input class=\"ace_search_field\" placeholder=\"Replace with\" spellcheck=\"false\"></input>\\\n\t <button type=\"button\" action=\"replaceAndFindNext\" class=\"ace_replacebtn\">Replace</button>\\\n\t <button type=\"button\" action=\"replaceAll\" class=\"ace_replacebtn\">All</button>\\\n\t </div>\\\n\t <div class=\"ace_search_options\">\\\n\t <span action=\"toggleRegexpMode\" class=\"ace_button\" title=\"RegExp Search\">.*</span>\\\n\t <span action=\"toggleCaseSensitive\" class=\"ace_button\" title=\"CaseSensitive Search\">Aa</span>\\\n\t <span action=\"toggleWholeWords\" class=\"ace_button\" title=\"Whole Word Search\">\\\\b</span>\\\n\t </div>\\\n\t</div>'.replace(/>\\s+/g, \">\");\n\n\tvar SearchBox = function(editor, range, showReplaceForm) {\n\t var div = dom.createElement(\"div\");\n\t div.innerHTML = html;\n\t this.element = div.firstChild;\n\n\t this.$init();\n\t this.setEditor(editor);\n\t};\n\n\t(function() {\n\t this.setEditor = function(editor) {\n\t editor.searchBox = this;\n\t editor.container.appendChild(this.element);\n\t this.editor = editor;\n\t };\n\n\t this.$initElements = function(sb) {\n\t this.searchBox = sb.querySelector(\".ace_search_form\");\n\t this.replaceBox = sb.querySelector(\".ace_replace_form\");\n\t this.searchOptions = sb.querySelector(\".ace_search_options\");\n\t this.regExpOption = sb.querySelector(\"[action=toggleRegexpMode]\");\n\t this.caseSensitiveOption = sb.querySelector(\"[action=toggleCaseSensitive]\");\n\t this.wholeWordOption = sb.querySelector(\"[action=toggleWholeWords]\");\n\t this.searchInput = this.searchBox.querySelector(\".ace_search_field\");\n\t this.replaceInput = this.replaceBox.querySelector(\".ace_search_field\");\n\t };\n\t \n\t this.$init = function() {\n\t var sb = this.element;\n\t \n\t this.$initElements(sb);\n\t \n\t var _this = this;\n\t event.addListener(sb, \"mousedown\", function(e) {\n\t setTimeout(function(){\n\t _this.activeInput.focus();\n\t }, 0);\n\t event.stopPropagation(e);\n\t });\n\t event.addListener(sb, \"click\", function(e) {\n\t var t = e.target || e.srcElement;\n\t var action = t.getAttribute(\"action\");\n\t if (action && _this[action])\n\t _this[action]();\n\t else if (_this.$searchBarKb.commands[action])\n\t _this.$searchBarKb.commands[action].exec(_this);\n\t event.stopPropagation(e);\n\t });\n\n\t event.addCommandKeyListener(sb, function(e, hashId, keyCode) {\n\t var keyString = keyUtil.keyCodeToString(keyCode);\n\t var command = _this.$searchBarKb.findKeyCommand(hashId, keyString);\n\t if (command && command.exec) {\n\t command.exec(_this);\n\t event.stopEvent(e);\n\t }\n\t });\n\n\t this.$onChange = lang.delayedCall(function() {\n\t _this.find(false, false);\n\t });\n\n\t event.addListener(this.searchInput, \"input\", function() {\n\t _this.$onChange.schedule(20);\n\t });\n\t event.addListener(this.searchInput, \"focus\", function() {\n\t _this.activeInput = _this.searchInput;\n\t _this.searchInput.value && _this.highlight();\n\t });\n\t event.addListener(this.replaceInput, \"focus\", function() {\n\t _this.activeInput = _this.replaceInput;\n\t _this.searchInput.value && _this.highlight();\n\t });\n\t };\n\t this.$closeSearchBarKb = new HashHandler([{\n\t bindKey: \"Esc\",\n\t name: \"closeSearchBar\",\n\t exec: function(editor) {\n\t editor.searchBox.hide();\n\t }\n\t }]);\n\t this.$searchBarKb = new HashHandler();\n\t this.$searchBarKb.bindKeys({\n\t \"Ctrl-f|Command-f\": function(sb) {\n\t var isReplace = sb.isReplace = !sb.isReplace;\n\t sb.replaceBox.style.display = isReplace ? \"\" : \"none\";\n\t sb.searchInput.focus();\n\t },\n\t \"Ctrl-H|Command-Option-F\": function(sb) {\n\t sb.replaceBox.style.display = \"\";\n\t sb.replaceInput.focus();\n\t },\n\t \"Ctrl-G|Command-G\": function(sb) {\n\t sb.findNext();\n\t },\n\t \"Ctrl-Shift-G|Command-Shift-G\": function(sb) {\n\t sb.findPrev();\n\t },\n\t \"esc\": function(sb) {\n\t setTimeout(function() { sb.hide();});\n\t },\n\t \"Return\": function(sb) {\n\t if (sb.activeInput == sb.replaceInput)\n\t sb.replace();\n\t sb.findNext();\n\t },\n\t \"Shift-Return\": function(sb) {\n\t if (sb.activeInput == sb.replaceInput)\n\t sb.replace();\n\t sb.findPrev();\n\t },\n\t \"Alt-Return\": function(sb) {\n\t if (sb.activeInput == sb.replaceInput)\n\t sb.replaceAll();\n\t sb.findAll();\n\t },\n\t \"Tab\": function(sb) {\n\t (sb.activeInput == sb.replaceInput ? sb.searchInput : sb.replaceInput).focus();\n\t }\n\t });\n\n\t this.$searchBarKb.addCommands([{\n\t name: \"toggleRegexpMode\",\n\t bindKey: {win: \"Alt-R|Alt-/\", mac: \"Ctrl-Alt-R|Ctrl-Alt-/\"},\n\t exec: function(sb) {\n\t sb.regExpOption.checked = !sb.regExpOption.checked;\n\t sb.$syncOptions();\n\t }\n\t }, {\n\t name: \"toggleCaseSensitive\",\n\t bindKey: {win: \"Alt-C|Alt-I\", mac: \"Ctrl-Alt-R|Ctrl-Alt-I\"},\n\t exec: function(sb) {\n\t sb.caseSensitiveOption.checked = !sb.caseSensitiveOption.checked;\n\t sb.$syncOptions();\n\t }\n\t }, {\n\t name: \"toggleWholeWords\",\n\t bindKey: {win: \"Alt-B|Alt-W\", mac: \"Ctrl-Alt-B|Ctrl-Alt-W\"},\n\t exec: function(sb) {\n\t sb.wholeWordOption.checked = !sb.wholeWordOption.checked;\n\t sb.$syncOptions();\n\t }\n\t }]);\n\n\t this.$syncOptions = function() {\n\t dom.setCssClass(this.regExpOption, \"checked\", this.regExpOption.checked);\n\t dom.setCssClass(this.wholeWordOption, \"checked\", this.wholeWordOption.checked);\n\t dom.setCssClass(this.caseSensitiveOption, \"checked\", this.caseSensitiveOption.checked);\n\t this.find(false, false);\n\t };\n\n\t this.highlight = function(re) {\n\t this.editor.session.highlight(re || this.editor.$search.$options.re);\n\t this.editor.renderer.updateBackMarkers()\n\t };\n\t this.find = function(skipCurrent, backwards, preventScroll) {\n\t var range = this.editor.find(this.searchInput.value, {\n\t skipCurrent: skipCurrent,\n\t backwards: backwards,\n\t wrap: true,\n\t regExp: this.regExpOption.checked,\n\t caseSensitive: this.caseSensitiveOption.checked,\n\t wholeWord: this.wholeWordOption.checked,\n\t preventScroll: preventScroll\n\t });\n\t var noMatch = !range && this.searchInput.value;\n\t dom.setCssClass(this.searchBox, \"ace_nomatch\", noMatch);\n\t this.editor._emit(\"findSearchBox\", { match: !noMatch });\n\t this.highlight();\n\t };\n\t this.findNext = function() {\n\t this.find(true, false);\n\t };\n\t this.findPrev = function() {\n\t this.find(true, true);\n\t };\n\t this.findAll = function(){\n\t var range = this.editor.findAll(this.searchInput.value, { \n\t regExp: this.regExpOption.checked,\n\t caseSensitive: this.caseSensitiveOption.checked,\n\t wholeWord: this.wholeWordOption.checked\n\t });\n\t var noMatch = !range && this.searchInput.value;\n\t dom.setCssClass(this.searchBox, \"ace_nomatch\", noMatch);\n\t this.editor._emit(\"findSearchBox\", { match: !noMatch });\n\t this.highlight();\n\t this.hide();\n\t };\n\t this.replace = function() {\n\t if (!this.editor.getReadOnly())\n\t this.editor.replace(this.replaceInput.value);\n\t }; \n\t this.replaceAndFindNext = function() {\n\t if (!this.editor.getReadOnly()) {\n\t this.editor.replace(this.replaceInput.value);\n\t this.findNext()\n\t }\n\t };\n\t this.replaceAll = function() {\n\t if (!this.editor.getReadOnly())\n\t this.editor.replaceAll(this.replaceInput.value);\n\t };\n\n\t this.hide = function() {\n\t this.element.style.display = \"none\";\n\t this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb);\n\t this.editor.focus();\n\t };\n\t this.show = function(value, isReplace) {\n\t this.element.style.display = \"\";\n\t this.replaceBox.style.display = isReplace ? \"\" : \"none\";\n\n\t this.isReplace = isReplace;\n\n\t if (value)\n\t this.searchInput.value = value;\n\t \n\t this.find(false, false, true);\n\t \n\t this.searchInput.focus();\n\t this.searchInput.select();\n\n\t this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb);\n\t };\n\n\t this.isFocused = function() {\n\t var el = document.activeElement;\n\t return el == this.searchInput || el == this.replaceInput;\n\t }\n\t}).call(SearchBox.prototype);\n\n\texports.SearchBox = SearchBox;\n\n\texports.Search = function(editor, isReplace) {\n\t var sb = editor.searchBox || new SearchBox(editor);\n\t sb.show(editor.session.getTextRange(), isReplace);\n\t};\n\n\t});\n\t (function() {\n\t ace.acequire([\"ace/ext/searchbox\"], function() {});\n\t })();\n\t \n\n/***/ },\n/* 74 */\n/***/ function(module, exports) {\n\n\t/* ***** BEGIN LICENSE BLOCK *****\n\t * Distributed under the BSD license:\n\t *\n\t * Copyright (c) 2010, Ajax.org B.V.\n\t * All rights reserved.\n\t * \n\t * Redistribution and use in source and binary forms, with or without\n\t * modification, are permitted provided that the following conditions are met:\n\t * * Redistributions of source code must retain the above copyright\n\t * notice, this list of conditions and the following disclaimer.\n\t * * Redistributions in binary form must reproduce the above copyright\n\t * notice, this list of conditions and the following disclaimer in the\n\t * documentation and/or other materials provided with the distribution.\n\t * * Neither the name of Ajax.org B.V. nor the\n\t * names of its contributors may be used to endorse or promote products\n\t * derived from this software without specific prior written permission.\n\t * \n\t * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n\t * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n\t * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n\t * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY\n\t * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n\t * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n\t * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n\t * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n\t * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n\t * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t *\n\t * ***** END LICENSE BLOCK ***** */\n\n\tace.define('ace/theme/jsoneditor', ['require', 'exports', 'module', 'ace/lib/dom'], function(acequire, exports, module) {\n\n\texports.isDark = false;\n\texports.cssClass = \"ace-jsoneditor\";\n\texports.cssText = \".ace-jsoneditor .ace_gutter {\\\n\tbackground: #ebebeb;\\\n\tcolor: #333\\\n\t}\\\n\t\\\n\t.ace-jsoneditor.ace_editor {\\\n\tfont-family: droid sans mono, consolas, monospace, courier new, courier, sans-serif;\\\n\tline-height: 1.3;\\\n\tbackground-color: #fff;\\\n\t}\\\n\t.ace-jsoneditor .ace_print-margin {\\\n\twidth: 1px;\\\n\tbackground: #e8e8e8\\\n\t}\\\n\t.ace-jsoneditor .ace_scroller {\\\n\tbackground-color: #FFFFFF\\\n\t}\\\n\t.ace-jsoneditor .ace_text-layer {\\\n\tcolor: gray\\\n\t}\\\n\t.ace-jsoneditor .ace_variable {\\\n\tcolor: #1a1a1a\\\n\t}\\\n\t.ace-jsoneditor .ace_cursor {\\\n\tborder-left: 2px solid #000000\\\n\t}\\\n\t.ace-jsoneditor .ace_overwrite-cursors .ace_cursor {\\\n\tborder-left: 0px;\\\n\tborder-bottom: 1px solid #000000\\\n\t}\\\n\t.ace-jsoneditor .ace_marker-layer .ace_selection {\\\n\tbackground: lightgray\\\n\t}\\\n\t.ace-jsoneditor.ace_multiselect .ace_selection.ace_start {\\\n\tbox-shadow: 0 0 3px 0px #FFFFFF;\\\n\tborder-radius: 2px\\\n\t}\\\n\t.ace-jsoneditor .ace_marker-layer .ace_step {\\\n\tbackground: rgb(255, 255, 0)\\\n\t}\\\n\t.ace-jsoneditor .ace_marker-layer .ace_bracket {\\\n\tmargin: -1px 0 0 -1px;\\\n\tborder: 1px solid #BFBFBF\\\n\t}\\\n\t.ace-jsoneditor .ace_marker-layer .ace_active-line {\\\n\tbackground: #FFFBD1\\\n\t}\\\n\t.ace-jsoneditor .ace_gutter-active-line {\\\n\tbackground-color : #dcdcdc\\\n\t}\\\n\t.ace-jsoneditor .ace_marker-layer .ace_selected-word {\\\n\tborder: 1px solid lightgray\\\n\t}\\\n\t.ace-jsoneditor .ace_invisible {\\\n\tcolor: #BFBFBF\\\n\t}\\\n\t.ace-jsoneditor .ace_keyword,\\\n\t.ace-jsoneditor .ace_meta,\\\n\t.ace-jsoneditor .ace_support.ace_constant.ace_property-value {\\\n\tcolor: #AF956F\\\n\t}\\\n\t.ace-jsoneditor .ace_keyword.ace_operator {\\\n\tcolor: #484848\\\n\t}\\\n\t.ace-jsoneditor .ace_keyword.ace_other.ace_unit {\\\n\tcolor: #96DC5F\\\n\t}\\\n\t.ace-jsoneditor .ace_constant.ace_language {\\\n\tcolor: darkorange\\\n\t}\\\n\t.ace-jsoneditor .ace_constant.ace_numeric {\\\n\tcolor: red\\\n\t}\\\n\t.ace-jsoneditor .ace_constant.ace_character.ace_entity {\\\n\tcolor: #BF78CC\\\n\t}\\\n\t.ace-jsoneditor .ace_invalid {\\\n\tcolor: #FFFFFF;\\\n\tbackground-color: #FF002A;\\\n\t}\\\n\t.ace-jsoneditor .ace_fold {\\\n\tbackground-color: #AF956F;\\\n\tborder-color: #000000\\\n\t}\\\n\t.ace-jsoneditor .ace_storage,\\\n\t.ace-jsoneditor .ace_support.ace_class,\\\n\t.ace-jsoneditor .ace_support.ace_function,\\\n\t.ace-jsoneditor .ace_support.ace_other,\\\n\t.ace-jsoneditor .ace_support.ace_type {\\\n\tcolor: #C52727\\\n\t}\\\n\t.ace-jsoneditor .ace_string {\\\n\tcolor: green\\\n\t}\\\n\t.ace-jsoneditor .ace_comment {\\\n\tcolor: #BCC8BA\\\n\t}\\\n\t.ace-jsoneditor .ace_entity.ace_name.ace_tag,\\\n\t.ace-jsoneditor .ace_entity.ace_other.ace_attribute-name {\\\n\tcolor: #606060\\\n\t}\\\n\t.ace-jsoneditor .ace_markup.ace_underline {\\\n\ttext-decoration: underline\\\n\t}\\\n\t.ace-jsoneditor .ace_indent-guide {\\\n\tbackground: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y\\\n\t}\";\n\n\tvar dom = acequire(\"../lib/dom\");\n\tdom.importCssString(exports.cssText, exports.cssClass);\n\t});\n\n\n/***/ }\n/******/ ])\n});\n;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/jsoneditor/dist/jsoneditor.js\n// module id = 394\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/jsoneditor/dist/jsoneditor.css\n// module id = 395\n// module chunks = 0","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidget.pug\":\"include uploadWidgetMixins\\n\\n.modal-dialog\\n .modal-content\\n form#g-upload-form.modal-form(role=\\\"form\\\")\\n .modal-header\\n button.close(data-dismiss=\\\"modal\\\", aria-hidden=\\\"true\\\", type=\\\"button\\\") ×\\n h4.modal-title= title\\n +g-upload-widget-subtitle\\n .modal-body\\n +g-upload-widget-browse-or-drop\\n +g-upload-widget-progress\\n .modal-footer\\n a.btn.btn-small.btn-default(data-dismiss=\\\"modal\\\") Close\\n +g-upload-widget-start-button\\n\",\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\":\"mixin g-upload-widget-subtitle\\n if parent && parentType\\n .g-dialog-subtitle\\n if (parentType === 'folder')\\n i.icon-folder-open\\n else if (parentType === 'item')\\n i.icon-doc-text-inv\\n else if (parentType === 'file')\\n i.icon-doc-inv\\n = parent.name()\\n\\nmixin g-upload-widget-browse-or-drop\\n .g-drop-zone\\n i.icon-docs\\n | #{browseText}\\n .form-group.hide\\n input#g-files(type=\\\"file\\\", multiple=(multiFile ? 'multiple' : null))\\n\\nmixin g-upload-widget-progress\\n .g-current-progress-message\\n .g-progress-current.progress.progress-striped.hide\\n .progress-bar.progress-bar-info(role=\\\"progressbar\\\")\\n .g-overall-progress-message= noneSelectedText\\n .g-progress-overall.progress.progress-striped.hide\\n .progress-bar.progress-bar-info(role=\\\"progressbar\\\")\\n .g-upload-error-message.g-validation-failed-message\\n\\nmixin g-upload-widget-start-button\\n button.g-start-upload.btn.btn-small.btn-primary.disabled(type=\\\"submit\\\", disabled)\\n i.icon-upload\\n | Start Upload\\n\"};\n;var locals_for_with = (locals || {});(function (browseText, multiFile, noneSelectedText, parent, parentType, title) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_mixins[\"g-upload-widget-subtitle\"] = pug_interp = function(){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\nif (parent && parentType) {\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-dialog-subtitle\\\"\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\nif ((parentType === 'folder')) {\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-folder-open\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n}\nelse\nif ((parentType === 'item')) {\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-doc-text-inv\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n}\nelse\nif ((parentType === 'file')) {\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-doc-inv\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n}\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = parent.name()) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\n};\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_mixins[\"g-upload-widget-browse-or-drop\"] = pug_interp = function(){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-drop-zone\\\"\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-docs\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_html = pug_html + \" \";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = browseText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group hide\\\"\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" id=\\\"g-files\\\" type=\\\"file\\\"\"+pug.attr(\"multiple\", (multiFile ? 'multiple' : null), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n};\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_mixins[\"g-upload-widget-progress\"] = pug_interp = function(){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-current-progress-message\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-progress-current progress progress-striped hide\\\"\\u003E\";\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"progress-bar progress-bar-info\\\" role=\\\"progressbar\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-overall-progress-message\\\"\\u003E\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = noneSelectedText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-progress-overall progress progress-striped hide\\\"\\u003E\";\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"progress-bar progress-bar-info\\\" role=\\\"progressbar\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-upload-error-message g-validation-failed-message\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n};\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_mixins[\"g-upload-widget-start-button\"] = pug_interp = function(){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"g-start-upload btn btn-small btn-primary disabled\\\" type=\\\"submit\\\" disabled\\u003E\";\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-upload\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 31;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_html = pug_html + \" Start Upload\\u003C\\u002Fbutton\\u003E\";\n};\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-dialog\\\"\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-content\\\"\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidget.pug\";\npug_html = pug_html + \"\\u003Cform class=\\\"modal-form\\\" id=\\\"g-upload-form\\\" role=\\\"form\\\"\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-header\\\"\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidget.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"close\\\" data-dismiss=\\\"modal\\\" aria-hidden=\\\"true\\\" type=\\\"button\\\"\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidget.pug\";\npug_html = pug_html + \"×\\u003C\\u002Fbutton\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidget.pug\";\npug_html = pug_html + \"\\u003Ch4 class=\\\"modal-title\\\"\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidget.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = title) ? \"\" : pug_interp)) + \"\\u003C\\u002Fh4\\u003E\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidget.pug\";\npug_mixins[\"g-upload-widget-subtitle\"]();\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-body\\\"\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidget.pug\";\npug_mixins[\"g-upload-widget-browse-or-drop\"]();\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidget.pug\";\npug_mixins[\"g-upload-widget-progress\"]();\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-footer\\\"\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidget.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"btn btn-small btn-default\\\" data-dismiss=\\\"modal\\\"\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidget.pug\";\npug_html = pug_html + \"Close\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidget.pug\";\npug_mixins[\"g-upload-widget-start-button\"]();\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fform\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"browseText\" in locals_for_with?locals_for_with.browseText:typeof browseText!==\"undefined\"?browseText:undefined,\"multiFile\" in locals_for_with?locals_for_with.multiFile:typeof multiFile!==\"undefined\"?multiFile:undefined,\"noneSelectedText\" in locals_for_with?locals_for_with.noneSelectedText:typeof noneSelectedText!==\"undefined\"?noneSelectedText:undefined,\"parent\" in locals_for_with?locals_for_with.parent:typeof parent!==\"undefined\"?parent:undefined,\"parentType\" in locals_for_with?locals_for_with.parentType:typeof parentType!==\"undefined\"?parentType:undefined,\"title\" in locals_for_with?locals_for_with.title:typeof title!==\"undefined\"?title:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/uploadWidget.pug","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetNonModal.pug\":\"include uploadWidgetMixins\\n\\nform#g-upload-form\\n if title\\n h4= title\\n +g-upload-widget-subtitle\\n +g-upload-widget-browse-or-drop\\n +g-upload-widget-progress\\n .g-nonmodal-upload-buttons-container\\n +g-upload-widget-start-button\\n\",\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\":\"mixin g-upload-widget-subtitle\\n if parent && parentType\\n .g-dialog-subtitle\\n if (parentType === 'folder')\\n i.icon-folder-open\\n else if (parentType === 'item')\\n i.icon-doc-text-inv\\n else if (parentType === 'file')\\n i.icon-doc-inv\\n = parent.name()\\n\\nmixin g-upload-widget-browse-or-drop\\n .g-drop-zone\\n i.icon-docs\\n | #{browseText}\\n .form-group.hide\\n input#g-files(type=\\\"file\\\", multiple=(multiFile ? 'multiple' : null))\\n\\nmixin g-upload-widget-progress\\n .g-current-progress-message\\n .g-progress-current.progress.progress-striped.hide\\n .progress-bar.progress-bar-info(role=\\\"progressbar\\\")\\n .g-overall-progress-message= noneSelectedText\\n .g-progress-overall.progress.progress-striped.hide\\n .progress-bar.progress-bar-info(role=\\\"progressbar\\\")\\n .g-upload-error-message.g-validation-failed-message\\n\\nmixin g-upload-widget-start-button\\n button.g-start-upload.btn.btn-small.btn-primary.disabled(type=\\\"submit\\\", disabled)\\n i.icon-upload\\n | Start Upload\\n\"};\n;var locals_for_with = (locals || {});(function (browseText, multiFile, noneSelectedText, parent, parentType, title) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_mixins[\"g-upload-widget-subtitle\"] = pug_interp = function(){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\nif (parent && parentType) {\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-dialog-subtitle\\\"\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\nif ((parentType === 'folder')) {\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-folder-open\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n}\nelse\nif ((parentType === 'item')) {\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-doc-text-inv\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n}\nelse\nif ((parentType === 'file')) {\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-doc-inv\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n}\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = parent.name()) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\n};\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_mixins[\"g-upload-widget-browse-or-drop\"] = pug_interp = function(){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-drop-zone\\\"\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-docs\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_html = pug_html + \" \";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = browseText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group hide\\\"\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" id=\\\"g-files\\\" type=\\\"file\\\"\"+pug.attr(\"multiple\", (multiFile ? 'multiple' : null), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n};\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_mixins[\"g-upload-widget-progress\"] = pug_interp = function(){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-current-progress-message\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-progress-current progress progress-striped hide\\\"\\u003E\";\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"progress-bar progress-bar-info\\\" role=\\\"progressbar\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-overall-progress-message\\\"\\u003E\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = noneSelectedText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-progress-overall progress progress-striped hide\\\"\\u003E\";\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"progress-bar progress-bar-info\\\" role=\\\"progressbar\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-upload-error-message g-validation-failed-message\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n};\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_mixins[\"g-upload-widget-start-button\"] = pug_interp = function(){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"g-start-upload btn btn-small btn-primary disabled\\\" type=\\\"submit\\\" disabled\\u003E\";\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-upload\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 31;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetMixins.pug\";\npug_html = pug_html + \" Start Upload\\u003C\\u002Fbutton\\u003E\";\n};\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetNonModal.pug\";\npug_html = pug_html + \"\\u003Cform id=\\\"g-upload-form\\\"\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetNonModal.pug\";\nif (title) {\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetNonModal.pug\";\npug_html = pug_html + \"\\u003Ch4\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetNonModal.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = title) ? \"\" : pug_interp)) + \"\\u003C\\u002Fh4\\u003E\";\n}\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetNonModal.pug\";\npug_mixins[\"g-upload-widget-subtitle\"]();\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetNonModal.pug\";\npug_mixins[\"g-upload-widget-browse-or-drop\"]();\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetNonModal.pug\";\npug_mixins[\"g-upload-widget-progress\"]();\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetNonModal.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-nonmodal-upload-buttons-container\\\"\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuploadWidgetNonModal.pug\";\npug_mixins[\"g-upload-widget-start-button\"]();\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fform\\u003E\";}.call(this,\"browseText\" in locals_for_with?locals_for_with.browseText:typeof browseText!==\"undefined\"?browseText:undefined,\"multiFile\" in locals_for_with?locals_for_with.multiFile:typeof multiFile!==\"undefined\"?multiFile:undefined,\"noneSelectedText\" in locals_for_with?locals_for_with.noneSelectedText:typeof noneSelectedText!==\"undefined\"?noneSelectedText:undefined,\"parent\" in locals_for_with?locals_for_with.parent:typeof parent!==\"undefined\"?parent:undefined,\"parentType\" in locals_for_with?locals_for_with.parentType:typeof parentType!==\"undefined\"?parentType:undefined,\"title\" in locals_for_with?locals_for_with.title:typeof title!==\"undefined\"?title:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/uploadWidgetNonModal.pug","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/stylesheets/widgets/uploadWidget.styl\n// module id = 398\n// module chunks = 0","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyBreadcrumb.pug\":\"- var idx = 0\\neach obj in links\\n li\\n a.g-breadcrumb-link(g-index=idx)\\n if obj.resourceName === 'user'\\n i.icon-user\\n else if obj.resourceName === 'collection'\\n i.icon-sitemap\\n = obj.name()\\n - idx += 1\\n\\nif current\\n li.active\\n if current.resourceName === 'user'\\n i.icon-user\\n else if current.resourceName === 'collection'\\n i.icon-sitemap\\n = current.name()\\n\\nif descriptionText\\n a.g-description-preview= descriptionText\\n\\n.pull-right\\n .g-child-count-container.hide\\n .g-subfolder-count-container(title='total folders')\\n i.icon-folder\\n .g-subfolder-count\\n\\n if idx \\u003E 0\\n .g-item-count-container(title='total items')\\n i.icon-doc-text-inv\\n .g-item-count\\n\\n if idx \\u003E 0\\n .g-level-up-button-container\\n a.g-hierarchy-level-up(title=\\\"Go up one level\\\")\\n i.icon-level-up\\n\"};\n;var locals_for_with = (locals || {});(function (current, descriptionText, links) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyBreadcrumb.pug\";\nvar idx = 0\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyBreadcrumb.pug\";\n// iterate links\n;(function(){\n var $$obj = links;\n if ('number' == typeof $$obj.length) {\n for (var pug_index0 = 0, $$l = $$obj.length; pug_index0 < $$l; pug_index0++) {\n var obj = $$obj[pug_index0];\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Cli\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"g-breadcrumb-link\\\"\"+pug.attr(\"g-index\", idx, true, true)) + \"\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyBreadcrumb.pug\";\nif (obj.resourceName === 'user') {\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-user\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n}\nelse\nif (obj.resourceName === 'collection') {\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-sitemap\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n}\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyBreadcrumb.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = obj.name()) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyBreadcrumb.pug\";\nidx += 1\n }\n } else {\n var $$l = 0;\n for (var pug_index0 in $$obj) {\n $$l++;\n var obj = $$obj[pug_index0];\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Cli\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"g-breadcrumb-link\\\"\"+pug.attr(\"g-index\", idx, true, true)) + \"\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyBreadcrumb.pug\";\nif (obj.resourceName === 'user') {\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-user\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n}\nelse\nif (obj.resourceName === 'collection') {\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-sitemap\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n}\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyBreadcrumb.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = obj.name()) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyBreadcrumb.pug\";\nidx += 1\n }\n }\n}).call(this);\n\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyBreadcrumb.pug\";\nif (current) {\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Cli class=\\\"active\\\"\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyBreadcrumb.pug\";\nif (current.resourceName === 'user') {\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-user\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n}\nelse\nif (current.resourceName === 'collection') {\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-sitemap\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n}\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyBreadcrumb.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = current.name()) ? \"\" : pug_interp)) + \"\\u003C\\u002Fli\\u003E\";\n}\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyBreadcrumb.pug\";\nif (descriptionText) {\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-description-preview\\\"\\u003E\";\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyBreadcrumb.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = descriptionText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"pull-right\\\"\\u003E\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-child-count-container hide\\\"\\u003E\";\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-subfolder-count-container\\\" title=\\\"total folders\\\"\\u003E\";\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-folder\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-subfolder-count\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyBreadcrumb.pug\";\nif (idx > 0) {\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-item-count-container\\\" title=\\\"total items\\\"\\u003E\";\n;pug_debug_line = 31;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-doc-text-inv\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 32;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-item-count\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 34;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyBreadcrumb.pug\";\nif (idx > 0) {\n;pug_debug_line = 35;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-level-up-button-container\\\"\\u003E\";\n;pug_debug_line = 36;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-hierarchy-level-up\\\" title=\\\"Go up one level\\\"\\u003E\";\n;pug_debug_line = 37;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-level-up\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"current\" in locals_for_with?locals_for_with.current:typeof current!==\"undefined\"?current:undefined,\"descriptionText\" in locals_for_with?locals_for_with.descriptionText:typeof descriptionText!==\"undefined\"?descriptionText:undefined,\"links\" in locals_for_with?locals_for_with.links:typeof links!==\"undefined\"?links:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/hierarchyBreadcrumb.pug","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyPaginated.pug\":\".g-hierarchy-pages-header\\n .g-hierarchycenter\\n ul.pagination.pagination-sm\\n if (currentPage \\u003E1 && !disabled)\\n li.g-page-prev\\n a#g-previous-paginated « Prev\\n else\\n li.g-page-prev.disabled\\n a#g-previous-paginated « Prev\\n li\\n span Page:\\n input#g-page-selection-input(disabled=disabled, type='number', min=1, max=totalPages, value=currentPage)\\n span of #{totalPages}\\n if (currentPage+1\\u003C=totalPages && !disabled)\\n li.g-page-next\\n a#g-next-paginated Next »\\n else\\n li.g-page-next.disabled\\n a#g-next-paginated Next »\\n\"};\n;var locals_for_with = (locals || {});(function (currentPage, disabled, totalPages) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyPaginated.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-hierarchy-pages-header\\\"\\u003E\";\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyPaginated.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-hierarchycenter\\\"\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyPaginated.pug\";\npug_html = pug_html + \"\\u003Cul class=\\\"pagination pagination-sm\\\"\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyPaginated.pug\";\nif ((currentPage >1 && !disabled)) {\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyPaginated.pug\";\npug_html = pug_html + \"\\u003Cli class=\\\"g-page-prev\\\"\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyPaginated.pug\";\npug_html = pug_html + \"\\u003Ca id=\\\"g-previous-paginated\\\"\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyPaginated.pug\";\npug_html = pug_html + \"« Prev\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n}\nelse {\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyPaginated.pug\";\npug_html = pug_html + \"\\u003Cli class=\\\"g-page-prev disabled\\\"\\u003E\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyPaginated.pug\";\npug_html = pug_html + \"\\u003Ca id=\\\"g-previous-paginated\\\"\\u003E\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyPaginated.pug\";\npug_html = pug_html + \"« Prev\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n}\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyPaginated.pug\";\npug_html = pug_html + \"\\u003Cli\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyPaginated.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyPaginated.pug\";\npug_html = pug_html + \"Page:\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyPaginated.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" id=\\\"g-page-selection-input\\\"\"+pug.attr(\"disabled\", disabled, true, true)+\" type=\\\"number\\\" min=\\\"1\\\"\"+pug.attr(\"max\", totalPages, true, true)+pug.attr(\"value\", currentPage, true, true)) + \"\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyPaginated.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyPaginated.pug\";\npug_html = pug_html + \"of \";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyPaginated.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = totalPages) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fli\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyPaginated.pug\";\nif ((currentPage+1<=totalPages && !disabled)) {\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyPaginated.pug\";\npug_html = pug_html + \"\\u003Cli class=\\\"g-page-next\\\"\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyPaginated.pug\";\npug_html = pug_html + \"\\u003Ca id=\\\"g-next-paginated\\\"\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyPaginated.pug\";\npug_html = pug_html + \"Next »\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n}\nelse {\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyPaginated.pug\";\npug_html = pug_html + \"\\u003Cli class=\\\"g-page-next disabled\\\"\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyPaginated.pug\";\npug_html = pug_html + \"\\u003Ca id=\\\"g-next-paginated\\\"\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyPaginated.pug\";\npug_html = pug_html + \"Next »\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Ful\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"currentPage\" in locals_for_with?locals_for_with.currentPage:typeof currentPage!==\"undefined\"?currentPage:undefined,\"disabled\" in locals_for_with?locals_for_with.disabled:typeof disabled!==\"undefined\"?disabled:undefined,\"totalPages\" in locals_for_with?locals_for_with.totalPages:typeof totalPages!==\"undefined\"?totalPages:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/hierarchyPaginated.pug","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\":\".g-hierarchy-widget\\n .g-hierarchy-breadcrumb-bar\\n ol.breadcrumb\\n if showActions\\n .g-hierarchy-actions-header\\n if checkboxes\\n input.g-select-all(type=\\\"checkbox\\\", title=\\\"Select \\u002F Unselect all\\\")\\n\\n .btn-group\\n button.g-checked-actions-button.btn.btn-sm.btn-default.dropdown-toggle(\\n data-toggle=\\\"dropdown\\\", disabled=\\\"disabled\\\", title=\\\"Checked actions\\\")\\n i.icon-check\\n i.icon-down-dir\\n ul.g-checked-actions-menu.dropdown-menu(role=\\\"menu\\\")\\n\\n .g-folder-header-buttons\\n if (type === 'folder')\\n button.g-folder-info-button.btn.btn-sm.btn-info(title=\\\"Show folder info\\\")\\n i.icon-info\\n if (level \\u003E= AccessType.WRITE)\\n button.g-upload-here-button.btn.btn-sm.btn-success(title=\\\"Upload here\\\")\\n i.icon-upload\\n if (level \\u003E= AccessType.ADMIN)\\n button.g-folder-access-button.g-edit-access.btn.btn-sm.btn-warning(title=\\\"Access control\\\")\\n i.icon-lock\\n else if (type === 'collection')\\n button.g-collection-info-button.btn.btn-sm.btn-info(title=\\\"Show collection info\\\")\\n i.icon-info\\n if (level \\u003E= AccessType.ADMIN)\\n button.g-edit-access.btn.btn-sm.btn-warning(title=\\\"Access control\\\")\\n i.icon-lock\\n .btn-group\\n button.g-folder-actions-button.btn.btn-sm.btn-default.dropdown-toggle(\\n data-toggle=\\\"dropdown\\\", title=`${capitalize(type)} actions`)\\n if type === 'collection'\\n i.icon-sitemap\\n else if type === 'user'\\n i.icon-user\\n else if type === 'folder'\\n i.icon-folder-open\\n i.icon-down-dir\\n ul.g-folder-actions-menu.dropdown-menu.pull-right(role=\\\"menu\\\")\\n li.dropdown-header(role=\\\"presentation\\\")\\n if type === 'collection'\\n i.icon-sitemap\\n else if type === 'user'\\n i.icon-user\\n else if type === 'folder'\\n i.icon-folder-open\\n | #{model.name()}\\n if type === 'folder' || type === 'collection'\\n li(role=\\\"presentation\\\")\\n a.g-download-folder(role=\\\"menuitem\\\", href=model.downloadUrl())\\n i.icon-download\\n | Download #{type}\\n if level \\u003E= AccessType.WRITE\\n li(role=\\\"presentation\\\")\\n a.g-create-subfolder(role=\\\"menuitem\\\")\\n i.icon-folder\\n | Create folder here\\n if type === 'folder' || type === 'collection'\\n if type === 'folder'\\n li(role=\\\"presentation\\\")\\n a.g-create-item(role=\\\"menuitem\\\")\\n i.icon-doc\\n | Create item here\\n li(role=\\\"presentation\\\")\\n a.g-edit-folder(role=\\\"menuitem\\\")\\n i.icon-edit\\n | Edit #{type}\\n if level \\u003E= AccessType.ADMIN && (type === 'folder' || type === 'collection')\\n li.divider(role=\\\"presentation\\\")\\n li(role=\\\"presentation\\\")\\n a.g-delete-folder(role=\\\"menuitem\\\")\\n i.icon-trash\\n | Delete this #{type}\\n .g-clear-right\\n if onFolderSelect\\n .g-select-folder-container\\n ul.g-folder-list\\n li.g-folder-list-entry(public='true')\\n button.g-select-folder.btn.btn-sm.btn-info\\n i.icon-folder\\n | Select this #{type}.\\n i.icon-right-dir\\n .g-folder-list-container\\n .g-item-list-container\\n .g-empty-parent-message.g-info-message-container.hide\\n i.icon-info-circled\\n if itemFilter\\n | This folder has no suitable items.\\n else\\n | This folder is empty.\\n .g-hierarachy-paginated-bar\\nif showMetadata\\n .g-folder-metadata\\n\"};\n;var locals_for_with = (locals || {});(function (AccessType, capitalize, checkboxes, itemFilter, level, model, onFolderSelect, showActions, showMetadata, type) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-hierarchy-widget\\\"\\u003E\";\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-hierarchy-breadcrumb-bar\\\"\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Col class=\\\"breadcrumb\\\"\\u003E\\u003C\\u002Fol\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\nif (showActions) {\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-hierarchy-actions-header\\\"\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\nif (checkboxes) {\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Cinput class=\\\"g-select-all\\\" type=\\\"checkbox\\\" title=\\\"Select \\u002F Unselect all\\\"\\u003E\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"btn-group\\\"\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"g-checked-actions-button btn btn-sm btn-default dropdown-toggle\\\" data-toggle=\\\"dropdown\\\" disabled=\\\"disabled\\\" title=\\\"Checked actions\\\"\\u003E\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-check\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-down-dir\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fbutton\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Cul class=\\\"g-checked-actions-menu dropdown-menu\\\" role=\\\"menu\\\"\\u003E\\u003C\\u002Ful\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-folder-header-buttons\\\"\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\nif ((type === 'folder')) {\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"g-folder-info-button btn btn-sm btn-info\\\" title=\\\"Show folder info\\\"\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-info\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fbutton\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\nif ((level >= AccessType.WRITE)) {\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"g-upload-here-button btn btn-sm btn-success\\\" title=\\\"Upload here\\\"\\u003E\";\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-upload\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fbutton\\u003E\";\n}\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\nif ((level >= AccessType.ADMIN)) {\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"g-folder-access-button g-edit-access btn btn-sm btn-warning\\\" title=\\\"Access control\\\"\\u003E\";\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-lock\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fbutton\\u003E\";\n}\n}\nelse\nif ((type === 'collection')) {\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"g-collection-info-button btn btn-sm btn-info\\\" title=\\\"Show collection info\\\"\\u003E\";\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-info\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fbutton\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\nif ((level >= AccessType.ADMIN)) {\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"g-edit-access btn btn-sm btn-warning\\\" title=\\\"Access control\\\"\\u003E\";\n;pug_debug_line = 31;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-lock\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fbutton\\u003E\";\n}\n}\n;pug_debug_line = 32;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"btn-group\\\"\\u003E\";\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Cbutton\" + (\" class=\\\"g-folder-actions-button btn btn-sm btn-default dropdown-toggle\\\"\"+\" data-toggle=\\\"dropdown\\\"\"+pug.attr(\"title\", `${capitalize(type)} actions`, true, true)) + \"\\u003E\";\n;pug_debug_line = 35;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\nif (type === 'collection') {\n;pug_debug_line = 36;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-sitemap\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n}\nelse\nif (type === 'user') {\n;pug_debug_line = 38;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-user\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n}\nelse\nif (type === 'folder') {\n;pug_debug_line = 40;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-folder-open\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n}\n;pug_debug_line = 41;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-down-dir\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fbutton\\u003E\";\n;pug_debug_line = 42;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Cul class=\\\"g-folder-actions-menu dropdown-menu pull-right\\\" role=\\\"menu\\\"\\u003E\";\n;pug_debug_line = 43;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Cli class=\\\"dropdown-header\\\" role=\\\"presentation\\\"\\u003E\";\n;pug_debug_line = 44;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\nif (type === 'collection') {\n;pug_debug_line = 45;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-sitemap\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n}\nelse\nif (type === 'user') {\n;pug_debug_line = 47;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-user\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n}\nelse\nif (type === 'folder') {\n;pug_debug_line = 49;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-folder-open\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n}\n;pug_debug_line = 50;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \" \";\n;pug_debug_line = 50;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = model.name()) ? \"\" : pug_interp)) + \"\\u003C\\u002Fli\\u003E\";\n;pug_debug_line = 51;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\nif (type === 'folder' || type === 'collection') {\n;pug_debug_line = 52;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Cli role=\\\"presentation\\\"\\u003E\";\n;pug_debug_line = 53;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"g-download-folder\\\"\"+\" role=\\\"menuitem\\\"\"+pug.attr(\"href\", model.downloadUrl(), true, true)) + \"\\u003E\";\n;pug_debug_line = 54;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-download\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 55;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"Download \";\n;pug_debug_line = 55;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = type) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n}\n;pug_debug_line = 56;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\nif (level >= AccessType.WRITE) {\n;pug_debug_line = 57;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Cli role=\\\"presentation\\\"\\u003E\";\n;pug_debug_line = 58;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-create-subfolder\\\" role=\\\"menuitem\\\"\\u003E\";\n;pug_debug_line = 59;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-folder\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 60;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"Create folder here\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n;pug_debug_line = 61;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\nif (type === 'folder' || type === 'collection') {\n;pug_debug_line = 62;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\nif (type === 'folder') {\n;pug_debug_line = 63;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Cli role=\\\"presentation\\\"\\u003E\";\n;pug_debug_line = 64;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-create-item\\\" role=\\\"menuitem\\\"\\u003E\";\n;pug_debug_line = 65;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-doc\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 66;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"Create item here\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n}\n;pug_debug_line = 67;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Cli role=\\\"presentation\\\"\\u003E\";\n;pug_debug_line = 68;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-edit-folder\\\" role=\\\"menuitem\\\"\\u003E\";\n;pug_debug_line = 69;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-edit\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 70;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"Edit \";\n;pug_debug_line = 70;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = type) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n}\n}\n;pug_debug_line = 71;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\nif (level >= AccessType.ADMIN && (type === 'folder' || type === 'collection')) {\n;pug_debug_line = 72;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Cli class=\\\"divider\\\" role=\\\"presentation\\\"\\u003E\\u003C\\u002Fli\\u003E\";\n;pug_debug_line = 73;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Cli role=\\\"presentation\\\"\\u003E\";\n;pug_debug_line = 74;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-delete-folder\\\" role=\\\"menuitem\\\"\\u003E\";\n;pug_debug_line = 75;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-trash\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 76;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"Delete this \";\n;pug_debug_line = 76;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = type) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Ful\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 77;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-clear-right\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\n;pug_debug_line = 78;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\nif (onFolderSelect) {\n;pug_debug_line = 79;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-select-folder-container\\\"\\u003E\";\n;pug_debug_line = 80;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Cul class=\\\"g-folder-list\\\"\\u003E\";\n;pug_debug_line = 81;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Cli class=\\\"g-folder-list-entry\\\" public=\\\"true\\\"\\u003E\";\n;pug_debug_line = 82;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"g-select-folder btn btn-sm btn-info\\\"\\u003E\";\n;pug_debug_line = 83;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-folder\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 84;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \" Select this \";\n;pug_debug_line = 84;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = type) ? \"\" : pug_interp));\n;pug_debug_line = 84;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \".\";\n;pug_debug_line = 85;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-right-dir\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fli\\u003E\\u003C\\u002Ful\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\n;pug_debug_line = 86;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-folder-list-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 87;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-item-list-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 88;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-empty-parent-message g-info-message-container hide\\\"\\u003E\";\n;pug_debug_line = 89;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-info-circled\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 90;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\nif (itemFilter) {\n;pug_debug_line = 91;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \" This folder has no suitable items.\";\n}\nelse {\n;pug_debug_line = 93;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \" This folder is empty.\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 94;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-hierarachy-paginated-bar\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 95;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\nif (showMetadata) {\n;pug_debug_line = 96;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FhierarchyWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-folder-metadata\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}}.call(this,\"AccessType\" in locals_for_with?locals_for_with.AccessType:typeof AccessType!==\"undefined\"?AccessType:undefined,\"capitalize\" in locals_for_with?locals_for_with.capitalize:typeof capitalize!==\"undefined\"?capitalize:undefined,\"checkboxes\" in locals_for_with?locals_for_with.checkboxes:typeof checkboxes!==\"undefined\"?checkboxes:undefined,\"itemFilter\" in locals_for_with?locals_for_with.itemFilter:typeof itemFilter!==\"undefined\"?itemFilter:undefined,\"level\" in locals_for_with?locals_for_with.level:typeof level!==\"undefined\"?level:undefined,\"model\" in locals_for_with?locals_for_with.model:typeof model!==\"undefined\"?model:undefined,\"onFolderSelect\" in locals_for_with?locals_for_with.onFolderSelect:typeof onFolderSelect!==\"undefined\"?onFolderSelect:undefined,\"showActions\" in locals_for_with?locals_for_with.showActions:typeof showActions!==\"undefined\"?showActions:undefined,\"showMetadata\" in locals_for_with?locals_for_with.showMetadata:typeof showMetadata!==\"undefined\"?showMetadata:undefined,\"type\" in locals_for_with?locals_for_with.type:typeof type!==\"undefined\"?type:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/hierarchyWidget.pug","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/stylesheets/widgets/hierarchyWidget.styl\n// module id = 402\n// module chunks = 0","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FrootSelectorWidget.pug\":\"- selected = selected || {id: ''};\\nselect#g-root-selector.form-control(required)\\n if !selected.id\\n option(value=\\\"\\\", disabled, selected, hidden) Select a root...\\n each groupName in display\\n if groupName === 'Home' && home\\n option(value=home.id, selected=selected.id === home.id) Home\\n else if groupName in groups\\n - var group = groups[groupName];\\n optgroup(label=groupName)\\n each model in group.models\\n if !home || model.id !== home.id\\n option(value=model.id, data-group=groupName, selected=model.id === selected.id)= format(model)\\n\"};\n;var locals_for_with = (locals || {});(function (display, format, groups, home, selected) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FrootSelectorWidget.pug\";\nselected = selected || {id: ''};\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FrootSelectorWidget.pug\";\npug_html = pug_html + \"\\u003Cselect class=\\\"form-control\\\" id=\\\"g-root-selector\\\" required\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FrootSelectorWidget.pug\";\nif (!selected.id) {\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FrootSelectorWidget.pug\";\npug_html = pug_html + \"\\u003Coption value=\\\"\\\" disabled selected hidden\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FrootSelectorWidget.pug\";\npug_html = pug_html + \"Select a root...\\u003C\\u002Foption\\u003E\";\n}\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FrootSelectorWidget.pug\";\n// iterate display\n;(function(){\n var $$obj = display;\n if ('number' == typeof $$obj.length) {\n for (var pug_index0 = 0, $$l = $$obj.length; pug_index0 < $$l; pug_index0++) {\n var groupName = $$obj[pug_index0];\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FrootSelectorWidget.pug\";\nif (groupName === 'Home' && home) {\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FrootSelectorWidget.pug\";\npug_html = pug_html + \"\\u003Coption\" + (pug.attr(\"value\", home.id, true, true)+pug.attr(\"selected\", selected.id === home.id, true, true)) + \"\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FrootSelectorWidget.pug\";\npug_html = pug_html + \"Home\\u003C\\u002Foption\\u003E\";\n}\nelse\nif (groupName in groups) {\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FrootSelectorWidget.pug\";\nvar group = groups[groupName];\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FrootSelectorWidget.pug\";\npug_html = pug_html + \"\\u003Coptgroup\" + (pug.attr(\"label\", groupName, true, true)) + \"\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FrootSelectorWidget.pug\";\n// iterate group.models\n;(function(){\n var $$obj = group.models;\n if ('number' == typeof $$obj.length) {\n for (var pug_index1 = 0, $$l = $$obj.length; pug_index1 < $$l; pug_index1++) {\n var model = $$obj[pug_index1];\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FrootSelectorWidget.pug\";\nif (!home || model.id !== home.id) {\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FrootSelectorWidget.pug\";\npug_html = pug_html + \"\\u003Coption\" + (pug.attr(\"value\", model.id, true, true)+pug.attr(\"data-group\", groupName, true, true)+pug.attr(\"selected\", model.id === selected.id, true, true)) + \"\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FrootSelectorWidget.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = format(model)) ? \"\" : pug_interp)) + \"\\u003C\\u002Foption\\u003E\";\n}\n }\n } else {\n var $$l = 0;\n for (var pug_index1 in $$obj) {\n $$l++;\n var model = $$obj[pug_index1];\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FrootSelectorWidget.pug\";\nif (!home || model.id !== home.id) {\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FrootSelectorWidget.pug\";\npug_html = pug_html + \"\\u003Coption\" + (pug.attr(\"value\", model.id, true, true)+pug.attr(\"data-group\", groupName, true, true)+pug.attr(\"selected\", model.id === selected.id, true, true)) + \"\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FrootSelectorWidget.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = format(model)) ? \"\" : pug_interp)) + \"\\u003C\\u002Foption\\u003E\";\n}\n }\n }\n}).call(this);\n\npug_html = pug_html + \"\\u003C\\u002Foptgroup\\u003E\";\n}\n }\n } else {\n var $$l = 0;\n for (var pug_index0 in $$obj) {\n $$l++;\n var groupName = $$obj[pug_index0];\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FrootSelectorWidget.pug\";\nif (groupName === 'Home' && home) {\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FrootSelectorWidget.pug\";\npug_html = pug_html + \"\\u003Coption\" + (pug.attr(\"value\", home.id, true, true)+pug.attr(\"selected\", selected.id === home.id, true, true)) + \"\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FrootSelectorWidget.pug\";\npug_html = pug_html + \"Home\\u003C\\u002Foption\\u003E\";\n}\nelse\nif (groupName in groups) {\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FrootSelectorWidget.pug\";\nvar group = groups[groupName];\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FrootSelectorWidget.pug\";\npug_html = pug_html + \"\\u003Coptgroup\" + (pug.attr(\"label\", groupName, true, true)) + \"\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FrootSelectorWidget.pug\";\n// iterate group.models\n;(function(){\n var $$obj = group.models;\n if ('number' == typeof $$obj.length) {\n for (var pug_index2 = 0, $$l = $$obj.length; pug_index2 < $$l; pug_index2++) {\n var model = $$obj[pug_index2];\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FrootSelectorWidget.pug\";\nif (!home || model.id !== home.id) {\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FrootSelectorWidget.pug\";\npug_html = pug_html + \"\\u003Coption\" + (pug.attr(\"value\", model.id, true, true)+pug.attr(\"data-group\", groupName, true, true)+pug.attr(\"selected\", model.id === selected.id, true, true)) + \"\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FrootSelectorWidget.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = format(model)) ? \"\" : pug_interp)) + \"\\u003C\\u002Foption\\u003E\";\n}\n }\n } else {\n var $$l = 0;\n for (var pug_index2 in $$obj) {\n $$l++;\n var model = $$obj[pug_index2];\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FrootSelectorWidget.pug\";\nif (!home || model.id !== home.id) {\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FrootSelectorWidget.pug\";\npug_html = pug_html + \"\\u003Coption\" + (pug.attr(\"value\", model.id, true, true)+pug.attr(\"data-group\", groupName, true, true)+pug.attr(\"selected\", model.id === selected.id, true, true)) + \"\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FrootSelectorWidget.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = format(model)) ? \"\" : pug_interp)) + \"\\u003C\\u002Foption\\u003E\";\n}\n }\n }\n}).call(this);\n\npug_html = pug_html + \"\\u003C\\u002Foptgroup\\u003E\";\n}\n }\n }\n}).call(this);\n\npug_html = pug_html + \"\\u003C\\u002Fselect\\u003E\";}.call(this,\"display\" in locals_for_with?locals_for_with.display:typeof display!==\"undefined\"?display:undefined,\"format\" in locals_for_with?locals_for_with.format:typeof format!==\"undefined\"?format:undefined,\"groups\" in locals_for_with?locals_for_with.groups:typeof groups!==\"undefined\"?groups:undefined,\"home\" in locals_for_with?locals_for_with.home:typeof home!==\"undefined\"?home:undefined,\"selected\" in locals_for_with?locals_for_with.selected:typeof selected!==\"undefined\"?selected:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/rootSelectorWidget.pug","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FbrowserWidget.pug\":\".modal-dialog\\n .modal-content\\n .modal-header\\n button.close(data-dismiss='modal', aria-hidden='true', type='button') ×\\n h4.modal-title\\n = title\\n\\n .modal-body.g-browser-widget\\n .g-hierarchy-root-container.form-group\\n .g-hierarchy-widget-container.g-wait-for-root.form-group.hidden\\n\\n if input\\n .g-input-element.form-group\\n label.control-label(for='g-input-element') #{input.label}\\n input#g-input-element.form-control(\\n type='text', placeholder=input.placeholder, value=input.default)\\n\\n .help-block.g-wait-for-root.hidden\\n = help\\n\\n if preview\\n .g-selected-model.g-wait-for-root.form-group.hidden\\n label.control-label(for='g-selected-model') Selected #{selectItem ? 'item' : 'folder'}\\n input#g-selected-model.form-control(type='text', readonly, value=defaultSelectedResource)\\n\\n .g-validation-failed-message.hidden\\n\\n .modal-footer\\n a.btn.btn-small.btn-default(data-dismiss='modal') Cancel\\n button.g-submit-button.btn.btn-small.btn-primary(type='submit')\\n i.icon-edit\\n = submit\\n\"};\n;var locals_for_with = (locals || {});(function (defaultSelectedResource, help, input, preview, selectItem, submit, title) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FbrowserWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-dialog\\\"\\u003E\";\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FbrowserWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-content\\\"\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FbrowserWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-header\\\"\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FbrowserWidget.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"close\\\" data-dismiss=\\\"modal\\\" aria-hidden=\\\"true\\\" type=\\\"button\\\"\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FbrowserWidget.pug\";\npug_html = pug_html + \"×\\u003C\\u002Fbutton\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FbrowserWidget.pug\";\npug_html = pug_html + \"\\u003Ch4 class=\\\"modal-title\\\"\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FbrowserWidget.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = title) ? \"\" : pug_interp)) + \"\\u003C\\u002Fh4\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FbrowserWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-body g-browser-widget\\\"\\u003E\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FbrowserWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-hierarchy-root-container form-group\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FbrowserWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-hierarchy-widget-container g-wait-for-root form-group hidden\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FbrowserWidget.pug\";\nif (input) {\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FbrowserWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-input-element form-group\\\"\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FbrowserWidget.pug\";\npug_html = pug_html + \"\\u003Clabel class=\\\"control-label\\\" for=\\\"g-input-element\\\"\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FbrowserWidget.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = input.label) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FbrowserWidget.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"form-control\\\"\"+\" id=\\\"g-input-element\\\" type=\\\"text\\\"\"+pug.attr(\"placeholder\", input.placeholder, true, true)+pug.attr(\"value\", input.default, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FbrowserWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"help-block g-wait-for-root hidden\\\"\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FbrowserWidget.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = help) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FbrowserWidget.pug\";\nif (preview) {\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FbrowserWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-selected-model g-wait-for-root form-group hidden\\\"\\u003E\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FbrowserWidget.pug\";\npug_html = pug_html + \"\\u003Clabel class=\\\"control-label\\\" for=\\\"g-selected-model\\\"\\u003E\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FbrowserWidget.pug\";\npug_html = pug_html + \"Selected \";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FbrowserWidget.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = selectItem ? 'item' : 'folder') ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FbrowserWidget.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"form-control\\\"\"+\" id=\\\"g-selected-model\\\" type=\\\"text\\\"\"+pug.attr(\"readonly\", true, true, true)+pug.attr(\"value\", defaultSelectedResource, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FbrowserWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-validation-failed-message hidden\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FbrowserWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-footer\\\"\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FbrowserWidget.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"btn btn-small btn-default\\\" data-dismiss=\\\"modal\\\"\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FbrowserWidget.pug\";\npug_html = pug_html + \"Cancel\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FbrowserWidget.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"g-submit-button btn btn-small btn-primary\\\" type=\\\"submit\\\"\\u003E\";\n;pug_debug_line = 31;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FbrowserWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-edit\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 32;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FbrowserWidget.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = submit) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"defaultSelectedResource\" in locals_for_with?locals_for_with.defaultSelectedResource:typeof defaultSelectedResource!==\"undefined\"?defaultSelectedResource:undefined,\"help\" in locals_for_with?locals_for_with.help:typeof help!==\"undefined\"?help:undefined,\"input\" in locals_for_with?locals_for_with.input:typeof input!==\"undefined\"?input:undefined,\"preview\" in locals_for_with?locals_for_with.preview:typeof preview!==\"undefined\"?preview:undefined,\"selectItem\" in locals_for_with?locals_for_with.selectItem:typeof selectItem!==\"undefined\"?selectItem:undefined,\"submit\" in locals_for_with?locals_for_with.submit:typeof submit!==\"undefined\"?submit:undefined,\"title\" in locals_for_with?locals_for_with.title:typeof title!==\"undefined\"?title:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/browserWidget.pug","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/stylesheets/widgets/browserWidget.styl\n// module id = 405\n// module chunks = 0","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\":\".g-body-title Import existing data from the filesystem\\n.g-body-subtitle= assetstore.name()\\n\\n.g-import-instructions.\\n Use this page to import existing data from this assetstore's filesystem.\\n Specify a root directory on the filesystem, and it will be imported recursively.\\n The directory does not need to be under the assetstore's root dir. You must also\\n specify a destination collection, user, or folder ID under which to place the\\n imported data. Files that are imported are not managed directly by the server.\\n They will not be copied, but will be served from their existing location. When\\n the referencing files in Girder are deleted, the underlying imported file will\\n not be removed.\\n\\nform.g-filesystem-import-form\\n .form-group\\n label(for=\\\"g-filesystem-import-path\\\") Import path (absolute path to directory or file)\\n input#g-filesystem-import-path.form-control.input-sm(type=\\\"text\\\")\\n .form-group\\n label(for=\\\"g-filesystem-import-dest-type\\\") Destination type\\n select#g-filesystem-import-dest-type.form-control\\n option(value=\\\"folder\\\") Folder\\n option(value=\\\"user\\\") User\\n option(value=\\\"collection\\\") Collection\\n .form-group\\n label(for=\\\"g-filesystem-import-dest-id\\\") Destination ID\\n .input-group.input-group-sm\\n input#g-filesystem-import-dest-id.form-control.input-sm(\\n type=\\\"text\\\",\\n placeholder=\\\"Existing folder, user, or collection ID to use as the destination\\\")\\n .input-group-btn\\n button.g-open-browser.btn.btn-default(type=\\\"button\\\")\\n i.icon-folder-open\\n .form-group\\n label(for=\\\"g-filesystem-import-leaf-items\\\") Leaf Folders as Items\\n select#g-filesystem-import-leaf-items.form-control\\n option(value=\\\"false\\\") False\\n option(value=\\\"true\\\") True\\n .g-validation-failed-message\\n button.g-submit-assetstore-import.btn.btn-success(type=\\\"submit\\\")\\n i.icon-link-ext\\n | Begin import\\n\"};\n;var locals_for_with = (locals || {});(function (assetstore) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-body-title\\\"\\u003E\";\n;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"Import existing data from the filesystem\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-body-subtitle\\\"\\u003E\";\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = assetstore.name()) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-import-instructions\\\"\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"Use this page to import existing data from this assetstore's filesystem.\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"\\n\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"Specify a root directory on the filesystem, and it will be imported recursively.\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"\\n\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"The directory does not need to be under the assetstore's root dir. You must also\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"\\n\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"specify a destination collection, user, or folder ID under which to place the\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"\\n\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"imported data. Files that are imported are not managed directly by the server.\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"\\n\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"They will not be copied, but will be served from their existing location. When\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"\\n\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"the referencing files in Girder are deleted, the underlying imported file will\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"\\n\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"not be removed.\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"\\n\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"\\u003Cform class=\\\"g-filesystem-import-form\\\"\\u003E\";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"\\u003Clabel for=\\\"g-filesystem-import-path\\\"\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"Import path (absolute path to directory or file)\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"\\u003Cinput class=\\\"form-control input-sm\\\" id=\\\"g-filesystem-import-path\\\" type=\\\"text\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"\\u003Clabel for=\\\"g-filesystem-import-dest-type\\\"\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"Destination type\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"\\u003Cselect class=\\\"form-control\\\" id=\\\"g-filesystem-import-dest-type\\\"\\u003E\";\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"\\u003Coption value=\\\"folder\\\"\\u003E\";\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"Folder\\u003C\\u002Foption\\u003E\";\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"\\u003Coption value=\\\"user\\\"\\u003E\";\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"User\\u003C\\u002Foption\\u003E\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"\\u003Coption value=\\\"collection\\\"\\u003E\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"Collection\\u003C\\u002Foption\\u003E\\u003C\\u002Fselect\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"\\u003Clabel for=\\\"g-filesystem-import-dest-id\\\"\\u003E\";\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"Destination ID\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"input-group input-group-sm\\\"\\u003E\";\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"\\u003Cinput class=\\\"form-control input-sm\\\" id=\\\"g-filesystem-import-dest-id\\\" type=\\\"text\\\" placeholder=\\\"Existing folder, user, or collection ID to use as the destination\\\"\\u003E\";\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"input-group-btn\\\"\\u003E\";\n;pug_debug_line = 31;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"g-open-browser btn btn-default\\\" type=\\\"button\\\"\\u003E\";\n;pug_debug_line = 32;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-folder-open\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 34;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"\\u003Clabel for=\\\"g-filesystem-import-leaf-items\\\"\\u003E\";\n;pug_debug_line = 34;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"Leaf Folders as Items\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 35;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"\\u003Cselect class=\\\"form-control\\\" id=\\\"g-filesystem-import-leaf-items\\\"\\u003E\";\n;pug_debug_line = 36;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"\\u003Coption value=\\\"false\\\"\\u003E\";\n;pug_debug_line = 36;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"False\\u003C\\u002Foption\\u003E\";\n;pug_debug_line = 37;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"\\u003Coption value=\\\"true\\\"\\u003E\";\n;pug_debug_line = 37;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"True\\u003C\\u002Foption\\u003E\\u003C\\u002Fselect\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 38;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-validation-failed-message\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 39;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"g-submit-assetstore-import btn btn-success\\\" type=\\\"submit\\\"\\u003E\";\n;pug_debug_line = 40;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-link-ext\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 41;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfilesystemImport.pug\";\npug_html = pug_html + \" Begin import\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fform\\u003E\";}.call(this,\"assetstore\" in locals_for_with?locals_for_with.assetstore:typeof assetstore!==\"undefined\"?assetstore:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/body/filesystemImport.pug","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\":\".g-body-title Import existing data from S3\\n.g-body-subtitle= assetstore.get('name')\\n\\n.g-import-instructions.g-s3import-instructions.\\n Use this page to import existing data from this assetstore's S3 bucket\\n (#[b= assetstore.get('bucket') ]). You may import a specific directory of keys\\n within the bucket, or a specific key by path. If you wish to import the entire\\n bucket into the selected destination, simply leave the import path field blank.\\n If you specify a directory, it will be imported recursively. You must also\\n specify a destination collection, user, or folder ID under which to place the\\n imported data.\\n\\nform.g-s3-import-form\\n .form-group\\n label(for=\\\"g-s3-import-path\\\") Import path (key or directory)\\n input#g-s3-import-path.form-control.input-sm(type=\\\"text\\\")\\n .form-group\\n label(for=\\\"g-s3-import-dest-type\\\") Destination type\\n select#g-s3-import-dest-type.form-control\\n option(value=\\\"folder\\\") Folder\\n option(value=\\\"user\\\") User\\n option(value=\\\"collection\\\") Collection\\n .form-group\\n label(for=\\\"g-s3-import-dest-id\\\") Destination ID\\n .input-group.input-group-sm\\n input#g-s3-import-dest-id.form-control.input-sm(\\n type=\\\"text\\\",\\n placeholder=\\\"Existing folder, user, or collection ID to use as the destination\\\")\\n .input-group-btn\\n button.g-open-browser.btn.btn-default(type=\\\"button\\\")\\n i.icon-folder-open\\n .g-validation-failed-message\\n button.g-submit-assetstore-import.g-submit-s3-import.btn.btn-success(type=\\\"submit\\\")\\n i.icon-link-ext\\n | Begin import\\n\"};\n;var locals_for_with = (locals || {});(function (assetstore) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-body-title\\\"\\u003E\";\n;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"Import existing data from S3\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-body-subtitle\\\"\\u003E\";\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = assetstore.get('name')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-import-instructions g-s3import-instructions\\\"\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"Use this page to import existing data from this assetstore's S3 bucket\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"\\n\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"(\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"\\u003Cb\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = assetstore.get('bucket')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fb\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"). You may import a specific directory of keys\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"\\n\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"within the bucket, or a specific key by path. If you wish to import the entire\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"\\n\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"bucket into the selected destination, simply leave the import path field blank.\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"\\n\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"If you specify a directory, it will be imported recursively. You must also\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"\\n\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"specify a destination collection, user, or folder ID under which to place the\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"\\n\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"imported data.\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"\\n\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"\\u003Cform class=\\\"g-s3-import-form\\\"\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"\\u003Clabel for=\\\"g-s3-import-path\\\"\\u003E\";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"Import path (key or directory)\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"\\u003Cinput class=\\\"form-control input-sm\\\" id=\\\"g-s3-import-path\\\" type=\\\"text\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"\\u003Clabel for=\\\"g-s3-import-dest-type\\\"\\u003E\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"Destination type\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"\\u003Cselect class=\\\"form-control\\\" id=\\\"g-s3-import-dest-type\\\"\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"\\u003Coption value=\\\"folder\\\"\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"Folder\\u003C\\u002Foption\\u003E\";\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"\\u003Coption value=\\\"user\\\"\\u003E\";\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"User\\u003C\\u002Foption\\u003E\";\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"\\u003Coption value=\\\"collection\\\"\\u003E\";\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"Collection\\u003C\\u002Foption\\u003E\\u003C\\u002Fselect\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"\\u003Clabel for=\\\"g-s3-import-dest-id\\\"\\u003E\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"Destination ID\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"input-group input-group-sm\\\"\\u003E\";\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"\\u003Cinput class=\\\"form-control input-sm\\\" id=\\\"g-s3-import-dest-id\\\" type=\\\"text\\\" placeholder=\\\"Existing folder, user, or collection ID to use as the destination\\\"\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"input-group-btn\\\"\\u003E\";\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"g-open-browser btn btn-default\\\" type=\\\"button\\\"\\u003E\";\n;pug_debug_line = 31;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-folder-open\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 32;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-validation-failed-message\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"g-submit-assetstore-import g-submit-s3-import btn btn-success\\\" type=\\\"submit\\\"\\u003E\";\n;pug_debug_line = 34;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-link-ext\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 35;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fs3Import.pug\";\npug_html = pug_html + \" Begin import\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fform\\u003E\";}.call(this,\"assetstore\" in locals_for_with?locals_for_with.assetstore:typeof assetstore!==\"undefined\"?assetstore:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/body/s3Import.pug","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\":\".g-collection-list-header\\n\\n .g-collection-pagination\\n form.g-collection-search-form.form-inline(role=\\\"form\\\")\\n .form-group.g-collections-search-container\\n\\n if getCurrentUser()\\n button.g-collection-create-button.btn.btn-sm.btn-default\\n i.icon-plus-squared\\n | Create collection\\n\\neach collection in collections\\n .g-collection-list-entry.g-top-level-list-entry(public=(collection.get('public') ? \\\"true\\\" : \\\"false\\\"))\\n .g-collection-right-column\\n .g-collection-created\\n i.icon-clock\\n | Created on\\n span.g-collection-created-date #{formatDate(collection.get('created'), DATE_MINUTE)}\\n if collection.has('size')\\n .g-space-used\\n i.icon-floppy\\n | Currently using\\n span.g-user-space-used #{formatSize(collection.get('size'))}\\n .g-list-public-status-icon\\n if collection.get('public')\\n i.icon-globe(title=\\\"Public collection\\\")\\n else\\n i.icon-lock(title=\\\"Private collection\\\")\\n .g-top-level-list-title-container\\n .g-collection-title\\n a.g-collection-link(g-collection-cid=collection.cid)\\n b= collection.name()\\n span.g-text-fade(public=(collection.get('public') ? 'true' : 'false'))\\n if collection.get('description')\\n .g-collection-subtitle\\n a.g-show-description(state=\\\"hidden\\\", cid=collection.cid)\\n span Show description\\n i.icon-down-dir\\n .g-clear-right\\n .g-collection-description.hide(cid=collection.cid)\\n\"};\n;var locals_for_with = (locals || {});(function (DATE_MINUTE, collections, formatDate, formatSize, getCurrentUser) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-collection-list-header\\\"\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-collection-pagination\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Cform class=\\\"g-collection-search-form form-inline\\\" role=\\\"form\\\"\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group g-collections-search-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fform\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\nif (getCurrentUser()) {\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"g-collection-create-button btn btn-sm btn-default\\\"\\u003E\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-plus-squared\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \" Create collection\\u003C\\u002Fbutton\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\n// iterate collections\n;(function(){\n var $$obj = collections;\n if ('number' == typeof $$obj.length) {\n for (var pug_index0 = 0, $$l = $$obj.length; pug_index0 < $$l; pug_index0++) {\n var collection = $$obj[pug_index0];\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"g-collection-list-entry g-top-level-list-entry\\\"\"+pug.attr(\"public\", (collection.get('public') ? \"true\" : \"false\"), true, true)) + \"\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-collection-right-column\\\"\\u003E\";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-collection-created\\\"\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-clock\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"Created on\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"g-collection-created-date\\\"\\u003E\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \" \";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = formatDate(collection.get('created'), DATE_MINUTE)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\nif (collection.has('size')) {\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-space-used\\\"\\u003E\";\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-floppy\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"Currently using\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"g-user-space-used\\\"\\u003E\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \" \";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = formatSize(collection.get('size'))) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-list-public-status-icon\\\"\\u003E\";\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\nif (collection.get('public')) {\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-globe\\\" title=\\\"Public collection\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n}\nelse {\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-lock\\\" title=\\\"Private collection\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-top-level-list-title-container\\\"\\u003E\";\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-collection-title\\\"\\u003E\";\n;pug_debug_line = 31;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"g-collection-link\\\"\"+pug.attr(\"g-collection-cid\", collection.cid, true, true)) + \"\\u003E\";\n;pug_debug_line = 32;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Cb\\u003E\";\n;pug_debug_line = 32;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = collection.name()) ? \"\" : pug_interp)) + \"\\u003C\\u002Fb\\u003E\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Cspan\" + (\" class=\\\"g-text-fade\\\"\"+pug.attr(\"public\", (collection.get('public') ? 'true' : 'false'), true, true)) + \"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 34;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\nif (collection.get('description')) {\n;pug_debug_line = 35;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-collection-subtitle\\\"\\u003E\";\n;pug_debug_line = 36;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"g-show-description\\\"\"+\" state=\\\"hidden\\\"\"+pug.attr(\"cid\", collection.cid, true, true)) + \"\\u003E\";\n;pug_debug_line = 37;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 37;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"Show description\\u003C\\u002Fspan\\u003E\";\n;pug_debug_line = 38;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-down-dir\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 39;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-clear-right\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 40;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"g-collection-description hide\\\"\"+pug.attr(\"cid\", collection.cid, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index0 in $$obj) {\n $$l++;\n var collection = $$obj[pug_index0];\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"g-collection-list-entry g-top-level-list-entry\\\"\"+pug.attr(\"public\", (collection.get('public') ? \"true\" : \"false\"), true, true)) + \"\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-collection-right-column\\\"\\u003E\";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-collection-created\\\"\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-clock\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"Created on\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"g-collection-created-date\\\"\\u003E\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \" \";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = formatDate(collection.get('created'), DATE_MINUTE)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\nif (collection.has('size')) {\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-space-used\\\"\\u003E\";\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-floppy\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"Currently using\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"g-user-space-used\\\"\\u003E\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \" \";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = formatSize(collection.get('size'))) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-list-public-status-icon\\\"\\u003E\";\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\nif (collection.get('public')) {\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-globe\\\" title=\\\"Public collection\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n}\nelse {\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-lock\\\" title=\\\"Private collection\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-top-level-list-title-container\\\"\\u003E\";\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-collection-title\\\"\\u003E\";\n;pug_debug_line = 31;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"g-collection-link\\\"\"+pug.attr(\"g-collection-cid\", collection.cid, true, true)) + \"\\u003E\";\n;pug_debug_line = 32;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Cb\\u003E\";\n;pug_debug_line = 32;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = collection.name()) ? \"\" : pug_interp)) + \"\\u003C\\u002Fb\\u003E\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Cspan\" + (\" class=\\\"g-text-fade\\\"\"+pug.attr(\"public\", (collection.get('public') ? 'true' : 'false'), true, true)) + \"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 34;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\nif (collection.get('description')) {\n;pug_debug_line = 35;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-collection-subtitle\\\"\\u003E\";\n;pug_debug_line = 36;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"g-show-description\\\"\"+\" state=\\\"hidden\\\"\"+pug.attr(\"cid\", collection.cid, true, true)) + \"\\u003E\";\n;pug_debug_line = 37;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 37;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"Show description\\u003C\\u002Fspan\\u003E\";\n;pug_debug_line = 38;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-down-dir\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 39;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-clear-right\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 40;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionList.pug\";\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"g-collection-description hide\\\"\"+pug.attr(\"cid\", collection.cid, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n }\n }\n}).call(this);\n}.call(this,\"DATE_MINUTE\" in locals_for_with?locals_for_with.DATE_MINUTE:typeof DATE_MINUTE!==\"undefined\"?DATE_MINUTE:undefined,\"collections\" in locals_for_with?locals_for_with.collections:typeof collections!==\"undefined\"?collections:undefined,\"formatDate\" in locals_for_with?locals_for_with.formatDate:typeof formatDate!==\"undefined\"?formatDate:undefined,\"formatSize\" in locals_for_with?locals_for_with.formatSize:typeof formatSize!==\"undefined\"?formatSize:undefined,\"getCurrentUser\" in locals_for_with?locals_for_with.getCurrentUser:typeof getCurrentUser!==\"undefined\"?getCurrentUser:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/body/collectionList.pug","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/stylesheets/body/collectionList.styl\n// module id = 409\n// module chunks = 0","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionPage.pug\":\".g-collection-header\\n\\n .btn-group.pull-right\\n button.g-collection-actions-button.btn.btn-default.dropdown-toggle(\\n data-toggle=\\\"dropdown\\\", title=\\\"Collection actions\\\")\\n i.icon-sitemap\\n | Actions\\n i.icon-down-dir\\n ul.g-collection-actions-menu.dropdown-menu.pull-right(role=\\\"menu\\\")\\n li(role=\\\"presentation\\\")\\n a.g-download-collection(role=\\\"menuitem\\\", href=collection.downloadUrl())\\n i.icon-download\\n | Download collection\\n if (collection.getAccessLevel() \\u003E= AccessType.WRITE)\\n li.divider(role=\\\"presentation\\\")\\n li(role=\\\"presentation\\\")\\n a.g-edit-collection(role=\\\"menuitem\\\")\\n i.icon-edit\\n | Edit collection\\n if (collection.getAccessLevel() \\u003E= AccessType.ADMIN)\\n li.divider(role=\\\"presentation\\\")\\n li(role=\\\"presentation\\\")\\n a.g-collection-access-control(role=\\\"menuitem\\\")\\n i.icon-lock\\n | Access control\\n li(role=\\\"presentation\\\")\\n a.g-delete-collection(role=\\\"menuitem\\\")\\n i.icon-trash\\n | Delete collection\\n\\n .g-collection-name.g-body-title= collection.name()\\n if collection.get('description')\\n .g-collection-description!= renderMarkdown(collection.get('description'))\\n .g-clear-right\\n\\n.g-collection-hierarchy-container\\n\"};\n;var locals_for_with = (locals || {});(function (AccessType, collection, renderMarkdown) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-collection-header\\\"\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"btn-group pull-right\\\"\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionPage.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"g-collection-actions-button btn btn-default dropdown-toggle\\\" data-toggle=\\\"dropdown\\\" title=\\\"Collection actions\\\"\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-sitemap\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionPage.pug\";\npug_html = pug_html + \" Actions\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-down-dir\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fbutton\\u003E\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionPage.pug\";\npug_html = pug_html + \"\\u003Cul class=\\\"g-collection-actions-menu dropdown-menu pull-right\\\" role=\\\"menu\\\"\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionPage.pug\";\npug_html = pug_html + \"\\u003Cli role=\\\"presentation\\\"\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionPage.pug\";\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"g-download-collection\\\"\"+\" role=\\\"menuitem\\\"\"+pug.attr(\"href\", collection.downloadUrl(), true, true)) + \"\\u003E\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-download\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionPage.pug\";\npug_html = pug_html + \"Download collection\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionPage.pug\";\nif ((collection.getAccessLevel() >= AccessType.WRITE)) {\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionPage.pug\";\npug_html = pug_html + \"\\u003Cli class=\\\"divider\\\" role=\\\"presentation\\\"\\u003E\\u003C\\u002Fli\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionPage.pug\";\npug_html = pug_html + \"\\u003Cli role=\\\"presentation\\\"\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionPage.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-edit-collection\\\" role=\\\"menuitem\\\"\\u003E\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-edit\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionPage.pug\";\npug_html = pug_html + \"Edit collection\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n}\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionPage.pug\";\nif ((collection.getAccessLevel() >= AccessType.ADMIN)) {\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionPage.pug\";\npug_html = pug_html + \"\\u003Cli class=\\\"divider\\\" role=\\\"presentation\\\"\\u003E\\u003C\\u002Fli\\u003E\";\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionPage.pug\";\npug_html = pug_html + \"\\u003Cli role=\\\"presentation\\\"\\u003E\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionPage.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-collection-access-control\\\" role=\\\"menuitem\\\"\\u003E\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-lock\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionPage.pug\";\npug_html = pug_html + \"Access control\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionPage.pug\";\npug_html = pug_html + \"\\u003Cli role=\\\"presentation\\\"\\u003E\";\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionPage.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-delete-collection\\\" role=\\\"menuitem\\\"\\u003E\";\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-trash\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionPage.pug\";\npug_html = pug_html + \"Delete collection\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Ful\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 31;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-collection-name g-body-title\\\"\\u003E\";\n;pug_debug_line = 31;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionPage.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = collection.name()) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 32;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionPage.pug\";\nif (collection.get('description')) {\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-collection-description\\\"\\u003E\";\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionPage.pug\";\npug_html = pug_html + (null == (pug_interp = renderMarkdown(collection.get('description'))) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\";\n}\n;pug_debug_line = 34;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-clear-right\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 36;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FcollectionPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-collection-hierarchy-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"AccessType\" in locals_for_with?locals_for_with.AccessType:typeof AccessType!==\"undefined\"?AccessType:undefined,\"collection\" in locals_for_with?locals_for_with.collection:typeof collection!==\"undefined\"?collection:undefined,\"renderMarkdown\" in locals_for_with?locals_for_with.renderMarkdown:typeof renderMarkdown!==\"undefined\"?renderMarkdown:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/body/collectionPage.pug","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/stylesheets/body/collectionPage.styl\n// module id = 411\n// module chunks = 0","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\":\".g-frontpage-header\\n .g-frontpage-logo-container\\n img.g-frontpage-logo(src=require('@girder\\u002Fcore\\u002Fassets\\u002FGirder_Mark.png'))\\n .g-frontpage-title-container\\n .g-frontpage-title #{brandName}\\n .g-frontpage-subtitle Data management platform\\n\\n.g-frontpage-body\\n .g-frontpage-paragraph\\n .g-frontpage-welcome-text-content\\n b.g-frontpage-welcome-text Welcome to #{brandName}!\\n\\n ul\\n if !currentUser\\n li You are currently browsing anonymously.\\n ul\\n li\\n | To explore the data hosted on this server, start with the\\n a.g-collections-link(href=\\\"#collections\\\") Collections\\n | page.\\n\\n li\\n | To create an account, use the\\n a.g-register-link Register\\n | link in the upper right corner.\\n\\n li\\n | If you already have an account you can\\n a.g-login-link log in\\n | with the link in the upper right corner.\\n else\\n li\\n | You are currently logged in as\\n b #{currentUser.get('login')}\\n | .\\n\\n ul\\n li\\n | To explore the data hosted on this server, start with the\\n a.g-collections-link(href=\\\"#collections\\\") Collections\\n | page.\\n\\n li\\n | To explore your data, go to your\\n a.g-my-folders-link(href=`#user\\u002F${currentUser.id}`) personal data space\\n | or your\\n a.g-my-account-link(href=`#useraccount\\u002F${currentUser.id}\\u002Finfo`) user account page\\n | .\\n\\n li\\n if brandName === 'Girder'\\n | Girder is\\n else\\n | #{brandName} is powered by Girder,\\n | a part of\\n a(target=\\\"_blank\\\", href=\\\"http:\\u002F\\u002Fresonant.kitware.com\\\") Resonant\\n | , Kitware's open-source platform for data management, analytics, and\\n | visualization. To learn more, you can read our series of\\n a(target=\\\"_blank\\\", href=\\\"https:\\u002F\\u002Fblog.kitware.com\\u002Ftag\\u002Fresonant\\u002F\\\") blog posts\\n | about Resonant, or\\n a(target=\\\"_blank\\\", href=\\\"http:\\u002F\\u002Fwww.kitware.com\\u002Fcontact-us\\\") contact us\\n | to learn how we can help you solve your data problems.\\n\\n ul\\n li\\n | To learn more about Girder, including how you can host your own\\n | instance either locally or in the cloud, see the\\n a(target=\\\"_blank\\\", href=\\\"http:\\u002F\\u002Fgirder.readthedocs.io\\u002Fen\\u002Flatest\\u002Fuser-guide.html\\\") User Guide\\n | , the\\n a(target=\\\"_blank\\\", href=\\\"http:\\u002F\\u002Fgirder.readthedocs.io\\u002Fen\\u002Flatest\\\") full documentation\\n | , or visit the\\n a(target=\\\"_blank\\\", href=\\\"https:\\u002F\\u002Fgithub.com\\u002Fgirder\\u002Fgirder\\\") GitHub repository\\n | .\\n\\n li\\n | To use the REST API to interact with this server, check out the\\n a(href=apiRoot) interactive web API docs\\n | .\\n\\n if version\\n li\\n | This instance of #{brandName} was built from version\\n code.g-version= version\\n | .\\n\"};\n;var locals_for_with = (locals || {});(function (apiRoot, brandName, currentUser, version) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-frontpage-header\\\"\\u003E\";\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-frontpage-logo-container\\\"\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"\\u003Cimg\" + (\" class=\\\"g-frontpage-logo\\\"\"+pug.attr(\"src\", require('@girder/core/assets/Girder_Mark.png'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-frontpage-title-container\\\"\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-frontpage-title\\\"\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = brandName) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-frontpage-subtitle\\\"\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"Data management platform\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-frontpage-body\\\"\\u003E\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-frontpage-paragraph\\\"\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-frontpage-welcome-text-content\\\"\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"\\u003Cb class=\\\"g-frontpage-welcome-text\\\"\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"Welcome to \";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = brandName) ? \"\" : pug_interp));\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"!\\u003C\\u002Fb\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"\\u003Cul\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\nif (!currentUser) {\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"\\u003Cli\\u003E\";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"You are currently browsing anonymously.\\u003C\\u002Fli\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"\\u003Cul\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"\\u003Cli\\u003E\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"To explore the data hosted on this server, start with the\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-collections-link\\\" href=\\\"#collections\\\"\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \" Collections\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \" page.\\u003C\\u002Fli\\u003E\";\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"\\u003Cli\\u003E\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"To create an account, use the\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-register-link\\\"\\u003E\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \" Register\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \" link in the upper right corner.\\u003C\\u002Fli\\u003E\";\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"\\u003Cli\\u003E\";\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"If you already have an account you can\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-login-link\\\"\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \" log in\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \" with the link in the upper right corner.\\u003C\\u002Fli\\u003E\\u003C\\u002Ful\\u003E\";\n}\nelse {\n;pug_debug_line = 32;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"\\u003Cli\\u003E\";\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"You are currently logged in as\";\n;pug_debug_line = 34;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"\\u003Cb\\u003E\";\n;pug_debug_line = 34;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \" \";\n;pug_debug_line = 34;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = currentUser.get('login')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fb\\u003E\";\n;pug_debug_line = 35;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \".\";\n;pug_debug_line = 37;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"\\u003Cul\\u003E\";\n;pug_debug_line = 38;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"\\u003Cli\\u003E\";\n;pug_debug_line = 39;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"To explore the data hosted on this server, start with the\";\n;pug_debug_line = 40;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-collections-link\\\" href=\\\"#collections\\\"\\u003E\";\n;pug_debug_line = 40;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \" Collections\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 41;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \" page.\\u003C\\u002Fli\\u003E\";\n;pug_debug_line = 43;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"\\u003Cli\\u003E\";\n;pug_debug_line = 44;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"To explore your data, go to your\";\n;pug_debug_line = 45;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"g-my-folders-link\\\"\"+pug.attr(\"href\", `#user/${currentUser.id}`, true, true)) + \"\\u003E\";\n;pug_debug_line = 45;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \" personal data space\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 46;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \" or your\";\n;pug_debug_line = 47;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"g-my-account-link\\\"\"+pug.attr(\"href\", `#useraccount/${currentUser.id}/info`, true, true)) + \"\\u003E\";\n;pug_debug_line = 47;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \" user account page\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 48;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \".\\u003C\\u002Fli\\u003E\\u003C\\u002Ful\\u003E\\u003C\\u002Fli\\u003E\";\n}\n;pug_debug_line = 50;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"\\u003Cli\\u003E\";\n;pug_debug_line = 51;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\nif (brandName === 'Girder') {\n;pug_debug_line = 52;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"Girder is\";\n}\nelse {\n;pug_debug_line = 54;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = brandName) ? \"\" : pug_interp));\n;pug_debug_line = 54;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \" is powered by Girder,\";\n}\n;pug_debug_line = 55;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \" a part of\";\n;pug_debug_line = 56;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"\\u003Ca target=\\\"_blank\\\" href=\\\"http:\\u002F\\u002Fresonant.kitware.com\\\"\\u003E\";\n;pug_debug_line = 56;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \" Resonant\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 57;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \", Kitware's open-source platform for data management, analytics, and\";\n;pug_debug_line = 58;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"\\n\";\n;pug_debug_line = 58;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"visualization. To learn more, you can read our series of\";\n;pug_debug_line = 59;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"\\u003Ca target=\\\"_blank\\\" href=\\\"https:\\u002F\\u002Fblog.kitware.com\\u002Ftag\\u002Fresonant\\u002F\\\"\\u003E\";\n;pug_debug_line = 59;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \" blog posts\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 60;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \" about Resonant, or\";\n;pug_debug_line = 61;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"\\u003Ca target=\\\"_blank\\\" href=\\\"http:\\u002F\\u002Fwww.kitware.com\\u002Fcontact-us\\\"\\u003E\";\n;pug_debug_line = 61;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \" contact us\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 62;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \" to learn how we can help you solve your data problems.\";\n;pug_debug_line = 64;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"\\u003Cul\\u003E\";\n;pug_debug_line = 65;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"\\u003Cli\\u003E\";\n;pug_debug_line = 66;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"To learn more about Girder, including how you can host your own\";\n;pug_debug_line = 67;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"\\n\";\n;pug_debug_line = 67;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"instance either locally or in the cloud, see the\";\n;pug_debug_line = 68;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"\\u003Ca target=\\\"_blank\\\" href=\\\"http:\\u002F\\u002Fgirder.readthedocs.io\\u002Fen\\u002Flatest\\u002Fuser-guide.html\\\"\\u003E\";\n;pug_debug_line = 68;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \" User Guide\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 69;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \", the\";\n;pug_debug_line = 70;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"\\u003Ca target=\\\"_blank\\\" href=\\\"http:\\u002F\\u002Fgirder.readthedocs.io\\u002Fen\\u002Flatest\\\"\\u003E\";\n;pug_debug_line = 70;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \" full documentation\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 71;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \", or visit the\";\n;pug_debug_line = 72;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"\\u003Ca target=\\\"_blank\\\" href=\\\"https:\\u002F\\u002Fgithub.com\\u002Fgirder\\u002Fgirder\\\"\\u003E\";\n;pug_debug_line = 72;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \" GitHub repository\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 73;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \".\\u003C\\u002Fli\\u003E\\u003C\\u002Ful\\u003E\\u003C\\u002Fli\\u003E\";\n;pug_debug_line = 75;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"\\u003Cli\\u003E\";\n;pug_debug_line = 76;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"To use the REST API to interact with this server, check out the\";\n;pug_debug_line = 77;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"\\u003Ca\" + (pug.attr(\"href\", apiRoot, true, true)) + \"\\u003E\";\n;pug_debug_line = 77;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \" interactive web API docs\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 78;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \".\\u003C\\u002Fli\\u003E\";\n;pug_debug_line = 80;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\nif (version) {\n;pug_debug_line = 81;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"\\u003Cli\\u003E\";\n;pug_debug_line = 82;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"This instance of \";\n;pug_debug_line = 82;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = brandName) ? \"\" : pug_interp));\n;pug_debug_line = 82;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \" was built from version\";\n;pug_debug_line = 83;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \"\\u003Ccode class=\\\"g-version\\\"\\u003E\";\n;pug_debug_line = 83;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = version) ? \"\" : pug_interp)) + \"\\u003C\\u002Fcode\\u003E\";\n;pug_debug_line = 84;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FfrontPage.pug\";\npug_html = pug_html + \".\\u003C\\u002Fli\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Ful\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"apiRoot\" in locals_for_with?locals_for_with.apiRoot:typeof apiRoot!==\"undefined\"?apiRoot:undefined,\"brandName\" in locals_for_with?locals_for_with.brandName:typeof brandName!==\"undefined\"?brandName:undefined,\"currentUser\" in locals_for_with?locals_for_with.currentUser:typeof currentUser!==\"undefined\"?currentUser:undefined,\"version\" in locals_for_with?locals_for_with.version:typeof version!==\"undefined\"?version:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/body/frontPage.pug","module.exports = __webpack_public_path__ + \"assets/Girder_Mark-6719b633.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/Girder_Mark.png\n// module id = 413\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/stylesheets/body/frontPage.styl\n// module id = 414\n// module chunks = 0","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\":\".modal-dialog\\n .modal-content\\n form#g-group-edit-form.modal-form(role=\\\"form\\\")\\n .modal-header\\n button.close(data-dismiss=\\\"modal\\\", aria-hidden=\\\"true\\\", type=\\\"button\\\") ×\\n h4.modal-title\\n if (group)\\n | Edit group\\n else\\n | Create group\\n .modal-body\\n .g-public-container\\n .radio\\n label\\n input#g-access-private(type=\\\"radio\\\", name=\\\"privacy\\\",\\n checked=(publicFlag ? undefined : \\\"checked\\\"))\\n i.icon-lock\\n | Private — Only members can see this group\\n .radio\\n label\\n input#g-access-public(type=\\\"radio\\\", name=\\\"privacy\\\",\\n checked=(publicFlag ? \\\"checked\\\" : undefined))\\n i.icon-globe\\n | Public — Anyone can see this group\\n .form-group\\n label.control-label(for=\\\"g-name\\\") Name\\n input#g-name.input-sm.form-control(type=\\\"text\\\", placeholder=\\\"Enter group name\\\")\\n .form-group\\n label.control-label(for=\\\"g-description\\\") Description (optional)\\n textarea#g-description.input-sm.form-control(placeholder=\\\"Enter group description\\\")\\n if groupAddAllowed\\n .form-group\\n label.control-label(for=\\\"g-add-to-group\\\") Allow members to be directly added to this group\\n select#g-add-to-group.form-control.input-sm\\n if addToGroupPolicy === 'yesadmin'\\n option(value='default', selected=(addAllowed === 'default')) Default - Yes, allow group administrators to add members\\n else if addToGroupPolicy === 'yesmod'\\n option(value='default', selected=(addAllowed === 'default')) Default - Yes, allow group administrators and moderators to add members\\n else\\n option(value='default', selected=(addAllowed === 'default')) Default - No\\n option(value='no', selected=(addAllowed === 'no')) No - members must be invited and accept invitations\\n if groupAddAllowed === 'mod'\\n option(value='yesmod', selected=(addAllowed === 'yesmod')) Yes - allow group administrators and moderators to directly add members\\n option(value='yesadmin', selected=(addAllowed === 'yesadmin')) Yes - allow group administrators to directly add members\\n .g-validation-failed-message\\n .modal-footer\\n a.btn.btn-small.btn-default(data-dismiss=\\\"modal\\\") Cancel\\n button.g-save-group.btn.btn-small.btn-primary(type=\\\"submit\\\")\\n if (group)\\n i.icon-edit\\n | Save\\n else\\n i.icon-plus-squared\\n | Create\\n\"};\n;var locals_for_with = (locals || {});(function (addAllowed, addToGroupPolicy, group, groupAddAllowed, publicFlag) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-dialog\\\"\\u003E\";\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-content\\\"\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"\\u003Cform class=\\\"modal-form\\\" id=\\\"g-group-edit-form\\\" role=\\\"form\\\"\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-header\\\"\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"close\\\" data-dismiss=\\\"modal\\\" aria-hidden=\\\"true\\\" type=\\\"button\\\"\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"×\\u003C\\u002Fbutton\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"\\u003Ch4 class=\\\"modal-title\\\"\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\nif ((group)) {\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"Edit group\";\n}\nelse {\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"Create group\";\n}\npug_html = pug_html + \"\\u003C\\u002Fh4\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-body\\\"\\u003E\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-public-container\\\"\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"radio\\\"\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"\\u003Clabel\\u003E\";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" id=\\\"g-access-private\\\" type=\\\"radio\\\" name=\\\"privacy\\\"\"+pug.attr(\"checked\", (publicFlag ? undefined : \"checked\"), true, true)) + \"\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-lock\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"Private — Only members can see this group\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"radio\\\"\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"\\u003Clabel\\u003E\";\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" id=\\\"g-access-public\\\" type=\\\"radio\\\" name=\\\"privacy\\\"\"+pug.attr(\"checked\", (publicFlag ? \"checked\" : undefined), true, true)) + \"\\u003E\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-globe\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"Public — Anyone can see this group\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"\\u003Clabel class=\\\"control-label\\\" for=\\\"g-name\\\"\\u003E\";\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"Name\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"\\u003Cinput class=\\\"input-sm form-control\\\" id=\\\"g-name\\\" type=\\\"text\\\" placeholder=\\\"Enter group name\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"\\u003Clabel class=\\\"control-label\\\" for=\\\"g-description\\\"\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"Description (optional)\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"\\u003Ctextarea class=\\\"input-sm form-control\\\" id=\\\"g-description\\\" placeholder=\\\"Enter group description\\\"\\u003E\\u003C\\u002Ftextarea\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 31;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\nif (groupAddAllowed) {\n;pug_debug_line = 32;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"\\u003Clabel class=\\\"control-label\\\" for=\\\"g-add-to-group\\\"\\u003E\";\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"Allow members to be directly added to this group\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 34;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"\\u003Cselect class=\\\"form-control input-sm\\\" id=\\\"g-add-to-group\\\"\\u003E\";\n;pug_debug_line = 35;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\nif (addToGroupPolicy === 'yesadmin') {\n;pug_debug_line = 36;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"\\u003Coption\" + (\" value=\\\"default\\\"\"+pug.attr(\"selected\", (addAllowed === 'default'), true, true)) + \"\\u003E\";\n;pug_debug_line = 36;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"Default - Yes, allow group administrators to add members\\u003C\\u002Foption\\u003E\";\n}\nelse\nif (addToGroupPolicy === 'yesmod') {\n;pug_debug_line = 38;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"\\u003Coption\" + (\" value=\\\"default\\\"\"+pug.attr(\"selected\", (addAllowed === 'default'), true, true)) + \"\\u003E\";\n;pug_debug_line = 38;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"Default - Yes, allow group administrators and moderators to add members\\u003C\\u002Foption\\u003E\";\n}\nelse {\n;pug_debug_line = 40;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"\\u003Coption\" + (\" value=\\\"default\\\"\"+pug.attr(\"selected\", (addAllowed === 'default'), true, true)) + \"\\u003E\";\n;pug_debug_line = 40;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"Default - No\\u003C\\u002Foption\\u003E\";\n}\n;pug_debug_line = 41;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"\\u003Coption\" + (\" value=\\\"no\\\"\"+pug.attr(\"selected\", (addAllowed === 'no'), true, true)) + \"\\u003E\";\n;pug_debug_line = 41;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"No - members must be invited and accept invitations\\u003C\\u002Foption\\u003E\";\n;pug_debug_line = 42;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\nif (groupAddAllowed === 'mod') {\n;pug_debug_line = 43;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"\\u003Coption\" + (\" value=\\\"yesmod\\\"\"+pug.attr(\"selected\", (addAllowed === 'yesmod'), true, true)) + \"\\u003E\";\n;pug_debug_line = 43;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"Yes - allow group administrators and moderators to directly add members\\u003C\\u002Foption\\u003E\";\n}\n;pug_debug_line = 44;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"\\u003Coption\" + (\" value=\\\"yesadmin\\\"\"+pug.attr(\"selected\", (addAllowed === 'yesadmin'), true, true)) + \"\\u003E\";\n;pug_debug_line = 44;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"Yes - allow group administrators to directly add members\\u003C\\u002Foption\\u003E\\u003C\\u002Fselect\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\n;pug_debug_line = 45;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-validation-failed-message\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 46;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-footer\\\"\\u003E\";\n;pug_debug_line = 47;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"btn btn-small btn-default\\\" data-dismiss=\\\"modal\\\"\\u003E\";\n;pug_debug_line = 47;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"Cancel\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 48;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"g-save-group btn btn-small btn-primary\\\" type=\\\"submit\\\"\\u003E\";\n;pug_debug_line = 49;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\nif ((group)) {\n;pug_debug_line = 50;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-edit\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 51;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"Save\";\n}\nelse {\n;pug_debug_line = 53;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-plus-squared\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 54;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditGroupWidget.pug\";\npug_html = pug_html + \"Create\";\n}\npug_html = pug_html + \"\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fform\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"addAllowed\" in locals_for_with?locals_for_with.addAllowed:typeof addAllowed!==\"undefined\"?addAllowed:undefined,\"addToGroupPolicy\" in locals_for_with?locals_for_with.addToGroupPolicy:typeof addToGroupPolicy!==\"undefined\"?addToGroupPolicy:undefined,\"group\" in locals_for_with?locals_for_with.group:typeof group!==\"undefined\"?group:undefined,\"groupAddAllowed\" in locals_for_with?locals_for_with.groupAddAllowed:typeof groupAddAllowed!==\"undefined\"?groupAddAllowed:undefined,\"publicFlag\" in locals_for_with?locals_for_with.publicFlag:typeof publicFlag!==\"undefined\"?publicFlag:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/editGroupWidget.pug","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\":\".g-groups-list-header\\n\\n .g-group-pagination\\n form.g-group-search-form.form-inline(role=\\\"form\\\")\\n .form-group.g-groups-search-container\\n\\n if getCurrentUser()\\n button.g-group-create-button.btn.btn-sm.btn-default\\n i.icon-plus-squared\\n | Create Group\\n\\neach group in groups\\n .g-group-list-entry.g-top-level-list-entry(public=(group.get('public') ? \\\"true\\\" : \\\"false\\\"))\\n .g-group-right-column\\n .g-group-created\\n i.icon-clock\\n | Created on\\n span.g-group-created-date #{formatDate(group.get('created'), DATE_DAY)}\\n .g-list-public-status-icon\\n if group.get('public')\\n i.icon-globe(title=\\\"Public group\\\")\\n else\\n i.icon-lock(title=\\\"Private group\\\")\\n .g-top-level-list-title-container\\n .g-group-title\\n a.g-group-link(g-group-cid=group.cid)\\n b= group.name()\\n .g-group-subtitle\\n span.g-group-description= group.get('description')\\n .g-clear-right\\n\"};\n;var locals_for_with = (locals || {});(function (DATE_DAY, formatDate, getCurrentUser, groups) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-groups-list-header\\\"\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-group-pagination\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + \"\\u003Cform class=\\\"g-group-search-form form-inline\\\" role=\\\"form\\\"\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group g-groups-search-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fform\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\nif (getCurrentUser()) {\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"g-group-create-button btn btn-sm btn-default\\\"\\u003E\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-plus-squared\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + \" Create Group\\u003C\\u002Fbutton\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\n// iterate groups\n;(function(){\n var $$obj = groups;\n if ('number' == typeof $$obj.length) {\n for (var pug_index0 = 0, $$l = $$obj.length; pug_index0 < $$l; pug_index0++) {\n var group = $$obj[pug_index0];\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"g-group-list-entry g-top-level-list-entry\\\"\"+pug.attr(\"public\", (group.get('public') ? \"true\" : \"false\"), true, true)) + \"\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-group-right-column\\\"\\u003E\";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-group-created\\\"\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-clock\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + \"Created on\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"g-group-created-date\\\"\\u003E\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + \" \";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = formatDate(group.get('created'), DATE_DAY)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-list-public-status-icon\\\"\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\nif (group.get('public')) {\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-globe\\\" title=\\\"Public group\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n}\nelse {\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-lock\\\" title=\\\"Private group\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-top-level-list-title-container\\\"\\u003E\";\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-group-title\\\"\\u003E\";\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"g-group-link\\\"\"+pug.attr(\"g-group-cid\", group.cid, true, true)) + \"\\u003E\";\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + \"\\u003Cb\\u003E\";\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = group.name()) ? \"\" : pug_interp)) + \"\\u003C\\u002Fb\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-group-subtitle\\\"\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"g-group-description\\\"\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = group.get('description')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-clear-right\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index0 in $$obj) {\n $$l++;\n var group = $$obj[pug_index0];\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"g-group-list-entry g-top-level-list-entry\\\"\"+pug.attr(\"public\", (group.get('public') ? \"true\" : \"false\"), true, true)) + \"\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-group-right-column\\\"\\u003E\";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-group-created\\\"\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-clock\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + \"Created on\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"g-group-created-date\\\"\\u003E\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + \" \";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = formatDate(group.get('created'), DATE_DAY)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-list-public-status-icon\\\"\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\nif (group.get('public')) {\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-globe\\\" title=\\\"Public group\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n}\nelse {\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-lock\\\" title=\\\"Private group\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-top-level-list-title-container\\\"\\u003E\";\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-group-title\\\"\\u003E\";\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"g-group-link\\\"\"+pug.attr(\"g-group-cid\", group.cid, true, true)) + \"\\u003E\";\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + \"\\u003Cb\\u003E\";\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = group.name()) ? \"\" : pug_interp)) + \"\\u003C\\u002Fb\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-group-subtitle\\\"\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"g-group-description\\\"\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = group.get('description')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-clear-right\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n }\n }\n}).call(this);\n}.call(this,\"DATE_DAY\" in locals_for_with?locals_for_with.DATE_DAY:typeof DATE_DAY!==\"undefined\"?DATE_DAY:undefined,\"formatDate\" in locals_for_with?locals_for_with.formatDate:typeof formatDate!==\"undefined\"?formatDate:undefined,\"getCurrentUser\" in locals_for_with?locals_for_with.getCurrentUser:typeof getCurrentUser!==\"undefined\"?getCurrentUser:undefined,\"groups\" in locals_for_with?locals_for_with.groups:typeof groups!==\"undefined\"?groups:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/body/groupList.pug","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/stylesheets/body/groupList.styl\n// module id = 417\n// module chunks = 0","import $ from 'jquery';\n\nimport View from '@girder/core/views/View';\nimport { SORT_ASC, SORT_DESC } from '@girder/core/constants';\n\nimport SortCollectionWidgetTemplate from '@girder/core/templates/widgets/sortCollectionWidget.pug';\n\nimport 'bootstrap/js/dropdown';\n\n/**\n * This widget is used to provide a consistent widget for sorting\n * pages of a Collection by a choosen field.\n */\nvar SortCollectionWidget = View.extend({\n events: {\n 'click a.g-collection-sort-link': function (event) {\n var sortField = $(event.currentTarget).attr('g-sort');\n this.collection.sortField = sortField;\n this.collection.fetch({}, true);\n },\n 'click a.g-sort-order-button': function (event) {\n if (this.collection.sortDir === SORT_ASC) {\n this.collection.sortDir = SORT_DESC;\n } else {\n this.collection.sortDir = SORT_ASC;\n }\n this.collection.fetch({}, true);\n }\n },\n\n initialize: function (settings) {\n this.collection = settings.collection;\n this.fields = settings.fields;\n },\n\n /**\n * Do not call render() until the collection has been fetched once.\n */\n render: function () {\n this.$el.html(SortCollectionWidgetTemplate({\n collection: this.collection,\n fields: this.fields\n }));\n if (this.collection.sortDir === SORT_ASC) {\n this.$('.g-down').addClass('hide');\n } else {\n this.$('.g-up').addClass('hide');\n }\n return this;\n }\n});\n\nexport default SortCollectionWidget;\n\n\n\n// WEBPACK FOOTER //\n// ./src/views/widgets/SortCollectionWidget.js","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FsortCollectionWidget.pug\":\".btn-group\\n a.g-sort-order-button.g-up.btn.btn-sm(title=\\\"Sort order\\\")\\n i.icon-sort-name-up\\n a.g-sort-order-button.g-down.btn.btn-sm(title=\\\"Sort order\\\")\\n i.icon-sort-name-down\\n button.g-collection-sort-actions.btn.btn-sm.btn-default.dropdown-toggle(\\n data-toggle=\\\"dropdown\\\", title=\\\"Sort by Field\\\")\\n | Sort by\\n i.icon-down-dir\\n ul.g-collection-sort-menu.dropdown-menu(role=\\\"menu\\\")\\n each fieldName, field in fields\\n li(role=\\\"presentation\\\")\\n a.g-collection-sort-link(role=\\\"menuitem\\\", g-sort=field)\\n = fieldName\\n\"};\n;var locals_for_with = (locals || {});(function (fields) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FsortCollectionWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"btn-group\\\"\\u003E\";\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FsortCollectionWidget.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-sort-order-button g-up btn btn-sm\\\" title=\\\"Sort order\\\"\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FsortCollectionWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-sort-name-up\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FsortCollectionWidget.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-sort-order-button g-down btn btn-sm\\\" title=\\\"Sort order\\\"\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FsortCollectionWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-sort-name-down\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FsortCollectionWidget.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"g-collection-sort-actions btn btn-sm btn-default dropdown-toggle\\\" data-toggle=\\\"dropdown\\\" title=\\\"Sort by Field\\\"\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FsortCollectionWidget.pug\";\npug_html = pug_html + \"Sort by\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FsortCollectionWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-down-dir\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fbutton\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FsortCollectionWidget.pug\";\npug_html = pug_html + \"\\u003Cul class=\\\"g-collection-sort-menu dropdown-menu\\\" role=\\\"menu\\\"\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FsortCollectionWidget.pug\";\n// iterate fields\n;(function(){\n var $$obj = fields;\n if ('number' == typeof $$obj.length) {\n for (var field = 0, $$l = $$obj.length; field < $$l; field++) {\n var fieldName = $$obj[field];\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FsortCollectionWidget.pug\";\npug_html = pug_html + \"\\u003Cli role=\\\"presentation\\\"\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FsortCollectionWidget.pug\";\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"g-collection-sort-link\\\"\"+\" role=\\\"menuitem\\\"\"+pug.attr(\"g-sort\", field, true, true)) + \"\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FsortCollectionWidget.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = fieldName) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var field in $$obj) {\n $$l++;\n var fieldName = $$obj[field];\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FsortCollectionWidget.pug\";\npug_html = pug_html + \"\\u003Cli role=\\\"presentation\\\"\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FsortCollectionWidget.pug\";\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"g-collection-sort-link\\\"\"+\" role=\\\"menuitem\\\"\"+pug.attr(\"g-sort\", field, true, true)) + \"\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FsortCollectionWidget.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = fieldName) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n }\n }\n}).call(this);\n\npug_html = pug_html + \"\\u003C\\u002Ful\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"fields\" in locals_for_with?locals_for_with.fields:typeof fields!==\"undefined\"?fields:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/sortCollectionWidget.pug","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\":\"- const isAdmin = currentUser && currentUser.get('admin');\\n- const userTooltip = usersCount === 1 ? `${usersCount} total user` : `${usersCount} total users`;\\n.g-user-list-header\\n .g-user-pagination\\n if currentUser\\n .g-user-count-container(title=userTooltip)\\n i.icon-user\\n span.g-user-count= usersCount\\n\\n .g-user-sort\\n form.g-user-search-form.form-inline(role=\\\"form\\\")\\n .form-group.g-users-search-container\\n if isAdmin\\n button.g-user-create-button.btn.btn-sm.btn-default\\n i.icon-plus-squared\\n | Create user\\n\\neach user in users\\n .g-user-list-entry\\n .g-user-right-column\\n .g-user-joined\\n i.icon-clock\\n | Joined on\\n span.g-user-joined-date #{formatDate(user.get('created'), DATE_DAY)}\\n if user.get('size') !== undefined\\n .g-space-used\\n i.icon-floppy\\n | Currently using\\n span.g-user-space-used #{formatSize(user.get('size'))}\\n if user.get('status') === 'disabled'\\n .g-user-status\\n i.icon-cancel-circled\\n | Account disabled\\n else if user.get('status') === 'pending'\\n .g-user-status\\n i.icon-attention-circled\\n | Account pending approval\\n .g-user-title\\n a.g-user-link(g-user-cid=user.cid)\\n b= user.name()\\n .g-user-subtitle\\n span.g-user-login #{user.get('login')}\\n .g-clear-right\\n\"};\n;var locals_for_with = (locals || {});(function (DATE_DAY, currentUser, formatDate, formatSize, users, usersCount) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\nconst isAdmin = currentUser && currentUser.get('admin');\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\nconst userTooltip = usersCount === 1 ? `${usersCount} total user` : `${usersCount} total users`;\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-user-list-header\\\"\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-user-pagination\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\nif (currentUser) {\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"g-user-count-container\\\"\"+pug.attr(\"title\", userTooltip, true, true)) + \"\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-user\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"g-user-count\\\"\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = usersCount) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-user-sort\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Cform class=\\\"g-user-search-form form-inline\\\" role=\\\"form\\\"\\u003E\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group g-users-search-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fform\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\nif (isAdmin) {\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"g-user-create-button btn btn-sm btn-default\\\"\\u003E\";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-plus-squared\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \" Create user\\u003C\\u002Fbutton\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\n// iterate users\n;(function(){\n var $$obj = users;\n if ('number' == typeof $$obj.length) {\n for (var pug_index0 = 0, $$l = $$obj.length; pug_index0 < $$l; pug_index0++) {\n var user = $$obj[pug_index0];\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-user-list-entry\\\"\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-user-right-column\\\"\\u003E\";\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-user-joined\\\"\\u003E\";\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-clock\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"Joined on\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"g-user-joined-date\\\"\\u003E\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \" \";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = formatDate(user.get('created'), DATE_DAY)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\nif (user.get('size') !== undefined) {\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-space-used\\\"\\u003E\";\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-floppy\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"Currently using\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"g-user-space-used\\\"\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \" \";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = formatSize(user.get('size'))) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\nif (user.get('status') === 'disabled') {\n;pug_debug_line = 31;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-user-status\\\"\\u003E\";\n;pug_debug_line = 32;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-cancel-circled\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"Account disabled\\u003C\\u002Fdiv\\u003E\";\n}\nelse\nif (user.get('status') === 'pending') {\n;pug_debug_line = 35;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-user-status\\\"\\u003E\";\n;pug_debug_line = 36;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-attention-circled\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 37;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"Account pending approval\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 38;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-user-title\\\"\\u003E\";\n;pug_debug_line = 39;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"g-user-link\\\"\"+pug.attr(\"g-user-cid\", user.cid, true, true)) + \"\\u003E\";\n;pug_debug_line = 40;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Cb\\u003E\";\n;pug_debug_line = 40;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = user.name()) ? \"\" : pug_interp)) + \"\\u003C\\u002Fb\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 41;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-user-subtitle\\\"\\u003E\";\n;pug_debug_line = 42;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"g-user-login\\\"\\u003E\";\n;pug_debug_line = 42;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \" \";\n;pug_debug_line = 42;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = user.get('login')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 43;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-clear-right\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index0 in $$obj) {\n $$l++;\n var user = $$obj[pug_index0];\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-user-list-entry\\\"\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-user-right-column\\\"\\u003E\";\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-user-joined\\\"\\u003E\";\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-clock\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"Joined on\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"g-user-joined-date\\\"\\u003E\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \" \";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = formatDate(user.get('created'), DATE_DAY)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\nif (user.get('size') !== undefined) {\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-space-used\\\"\\u003E\";\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-floppy\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"Currently using\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"g-user-space-used\\\"\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \" \";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = formatSize(user.get('size'))) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\nif (user.get('status') === 'disabled') {\n;pug_debug_line = 31;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-user-status\\\"\\u003E\";\n;pug_debug_line = 32;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-cancel-circled\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"Account disabled\\u003C\\u002Fdiv\\u003E\";\n}\nelse\nif (user.get('status') === 'pending') {\n;pug_debug_line = 35;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-user-status\\\"\\u003E\";\n;pug_debug_line = 36;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-attention-circled\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 37;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"Account pending approval\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 38;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-user-title\\\"\\u003E\";\n;pug_debug_line = 39;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"g-user-link\\\"\"+pug.attr(\"g-user-cid\", user.cid, true, true)) + \"\\u003E\";\n;pug_debug_line = 40;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Cb\\u003E\";\n;pug_debug_line = 40;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = user.name()) ? \"\" : pug_interp)) + \"\\u003C\\u002Fb\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 41;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-user-subtitle\\\"\\u003E\";\n;pug_debug_line = 42;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"g-user-login\\\"\\u003E\";\n;pug_debug_line = 42;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \" \";\n;pug_debug_line = 42;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = user.get('login')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 43;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-clear-right\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n }\n }\n}).call(this);\n}.call(this,\"DATE_DAY\" in locals_for_with?locals_for_with.DATE_DAY:typeof DATE_DAY!==\"undefined\"?DATE_DAY:undefined,\"currentUser\" in locals_for_with?locals_for_with.currentUser:typeof currentUser!==\"undefined\"?currentUser:undefined,\"formatDate\" in locals_for_with?locals_for_with.formatDate:typeof formatDate!==\"undefined\"?formatDate:undefined,\"formatSize\" in locals_for_with?locals_for_with.formatSize:typeof formatSize!==\"undefined\"?formatSize:undefined,\"users\" in locals_for_with?locals_for_with.users:typeof users!==\"undefined\"?users:undefined,\"usersCount\" in locals_for_with?locals_for_with.usersCount:typeof usersCount!==\"undefined\"?usersCount:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/body/userList.pug","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/stylesheets/body/userList.styl\n// module id = 421\n// module chunks = 0","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserPage.pug\":\".g-user-header\\n\\n if user.getAccessLevel() \\u003E= AccessType.WRITE\\n .btn-group.pull-right\\n button.g-user-actions-button.btn.btn-default.dropdown-toggle(\\n data-toggle=\\\"dropdown\\\", title=\\\"Item actions\\\")\\n i.icon-user\\n | Actions\\n i.icon-down-dir\\n ul.g-item-actions-menu.dropdown-menu.pull-right(role=\\\"menu\\\")\\n li(role=\\\"presentation\\\")\\n a.g-edit-user(role=\\\"menuitem\\\")\\n i.icon-edit\\n | Edit user\\n if user.getAccessLevel() \\u003E= AccessType.ADMIN\\n li.divider(role=\\\"presentation\\\")\\n if user.get('status') === 'pending'\\n li(role=\\\"presentation\\\")\\n a.g-approve-user(role=\\\"menuitem\\\")\\n i.icon-ok-squared\\n | Approve account\\n else if user.get('status') === 'enabled'\\n li(role=\\\"presentation\\\")\\n a.g-disable-user(role=\\\"menuitem\\\")\\n i.icon-cancel\\n | Disable account\\n else if user.get('status') === 'disabled'\\n li(role=\\\"presentation\\\")\\n a.g-enable-user(role=\\\"menuitem\\\")\\n i.icon-ok\\n | Enable account\\n li(role=\\\"presentation\\\")\\n a.g-delete-user(role=\\\"menuitem\\\")\\n i.icon-trash\\n | Delete user\\n\\n .g-user-name.g-body-title #{user.get('firstName')} #{user.get('lastName')}\\n .g-user-login.g-body-subtitle #{user.get('login')}\\n\\n.g-user-hierarchy-container\\n\"};\n;var locals_for_with = (locals || {});(function (AccessType, user) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-user-header\\\"\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserPage.pug\";\nif (user.getAccessLevel() >= AccessType.WRITE) {\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"btn-group pull-right\\\"\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserPage.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"g-user-actions-button btn btn-default dropdown-toggle\\\" data-toggle=\\\"dropdown\\\" title=\\\"Item actions\\\"\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-user\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserPage.pug\";\npug_html = pug_html + \" Actions\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-down-dir\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fbutton\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserPage.pug\";\npug_html = pug_html + \"\\u003Cul class=\\\"g-item-actions-menu dropdown-menu pull-right\\\" role=\\\"menu\\\"\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserPage.pug\";\npug_html = pug_html + \"\\u003Cli role=\\\"presentation\\\"\\u003E\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserPage.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-edit-user\\\" role=\\\"menuitem\\\"\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-edit\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserPage.pug\";\npug_html = pug_html + \"Edit user\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserPage.pug\";\nif (user.getAccessLevel() >= AccessType.ADMIN) {\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserPage.pug\";\npug_html = pug_html + \"\\u003Cli class=\\\"divider\\\" role=\\\"presentation\\\"\\u003E\\u003C\\u002Fli\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserPage.pug\";\nif (user.get('status') === 'pending') {\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserPage.pug\";\npug_html = pug_html + \"\\u003Cli role=\\\"presentation\\\"\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserPage.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-approve-user\\\" role=\\\"menuitem\\\"\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-ok-squared\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserPage.pug\";\npug_html = pug_html + \"Approve account\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n}\nelse\nif (user.get('status') === 'enabled') {\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserPage.pug\";\npug_html = pug_html + \"\\u003Cli role=\\\"presentation\\\"\\u003E\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserPage.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-disable-user\\\" role=\\\"menuitem\\\"\\u003E\";\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-cancel\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserPage.pug\";\npug_html = pug_html + \"Disable account\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n}\nelse\nif (user.get('status') === 'disabled') {\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserPage.pug\";\npug_html = pug_html + \"\\u003Cli role=\\\"presentation\\\"\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserPage.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-enable-user\\\" role=\\\"menuitem\\\"\\u003E\";\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-ok\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 31;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserPage.pug\";\npug_html = pug_html + \"Enable account\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n}\n;pug_debug_line = 32;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserPage.pug\";\npug_html = pug_html + \"\\u003Cli role=\\\"presentation\\\"\\u003E\";\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserPage.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-delete-user\\\" role=\\\"menuitem\\\"\\u003E\";\n;pug_debug_line = 34;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-trash\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 35;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserPage.pug\";\npug_html = pug_html + \"Delete user\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Ful\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\n;pug_debug_line = 37;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-user-name g-body-title\\\"\\u003E\";\n;pug_debug_line = 37;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserPage.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = user.get('firstName')) ? \"\" : pug_interp));\n;pug_debug_line = 37;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserPage.pug\";\npug_html = pug_html + \" \";\n;pug_debug_line = 37;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserPage.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = user.get('lastName')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 38;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-user-login g-body-subtitle\\\"\\u003E\";\n;pug_debug_line = 38;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserPage.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = user.get('login')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 40;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-user-hierarchy-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"AccessType\" in locals_for_with?locals_for_with.AccessType:typeof AccessType!==\"undefined\"?AccessType:undefined,\"user\" in locals_for_with?locals_for_with.user:typeof user!==\"undefined\"?user:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/body/userPage.pug","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/stylesheets/body/userPage.styl\n// module id = 423\n// module chunks = 0","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\":\".g-group-admins-header.g-group-list-header(title=\\\"Group administrators can edit group properties and can add, invite, and remove group members, moderators, and administrators.\\\")\\n i.icon-star\\n span Administrators\\n\\n.g-group-admins-body\\n ul.g-group-admins\\n each userAccess in admins\\n li(userid=userAccess.id, username=userAccess.name)\\n a.g-member-name\\n i.icon-user\\n span #{userAccess.name} (#{userAccess.login})\\n .g-group-member-controls.pull-right\\n if level \\u003E= accessType.ADMIN\\n span.dropdown\\n a.g-group-admin-demote.dropdown-toggle(title=\\\"Demote user\\\",\\n data-toggle=\\\"dropdown\\\")\\n i.icon-down-big\\n i.icon-down-dir\\n ul.dropdown-menu.pull-right(role=\\\"menu\\\")\\n li(role=\\\"presentation\\\")\\n a.g-demote-moderator(role=\\\"menuitem\\\")\\n i.icon-minus\\n span Demote to moderator\\n li(role=\\\"presentation\\\")\\n a.g-demote-member(role=\\\"menuitem\\\")\\n i.icon-minus\\n span Demote to member\\n a.g-group-admin-remove(title=\\\"Remove user from the group\\\")\\n i.icon-block\\n if (!admins.length)\\n .g-member-list-empty\\n i.icon-info-circled\\n span There are no administrators in this group.\\n\"};\n;var locals_for_with = (locals || {});(function (accessType, admins, level) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-group-admins-header g-group-list-header\\\" title=\\\"Group administrators can edit group properties and can add, invite, and remove group members, moderators, and administrators.\\\"\\u003E\";\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-star\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"Administrators\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-group-admins-body\\\"\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Cul class=\\\"g-group-admins\\\"\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\n// iterate admins\n;(function(){\n var $$obj = admins;\n if ('number' == typeof $$obj.length) {\n for (var pug_index0 = 0, $$l = $$obj.length; pug_index0 < $$l; pug_index0++) {\n var userAccess = $$obj[pug_index0];\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Cli\" + (pug.attr(\"userid\", userAccess.id, true, true)+pug.attr(\"username\", userAccess.name, true, true)) + \"\\u003E\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-member-name\\\"\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-user\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = userAccess.name) ? \"\" : pug_interp));\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \" (\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = userAccess.login) ? \"\" : pug_interp));\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \")\\u003C\\u002Fspan\\u003E\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-group-member-controls pull-right\\\"\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\nif (level >= accessType.ADMIN) {\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"dropdown\\\"\\u003E\";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-group-admin-demote dropdown-toggle\\\" title=\\\"Demote user\\\" data-toggle=\\\"dropdown\\\"\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-down-big\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-down-dir\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Cul class=\\\"dropdown-menu pull-right\\\" role=\\\"menu\\\"\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Cli role=\\\"presentation\\\"\\u003E\";\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-demote-moderator\\\" role=\\\"menuitem\\\"\\u003E\";\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-minus\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"Demote to moderator\\u003C\\u002Fspan\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Cli role=\\\"presentation\\\"\\u003E\";\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-demote-member\\\" role=\\\"menuitem\\\"\\u003E\";\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-minus\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"Demote to member\\u003C\\u002Fspan\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\\u003C\\u002Ful\\u003E\\u003C\\u002Fspan\\u003E\";\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-group-admin-remove\\\" title=\\\"Remove user from the group\\\"\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-block\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fli\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index0 in $$obj) {\n $$l++;\n var userAccess = $$obj[pug_index0];\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Cli\" + (pug.attr(\"userid\", userAccess.id, true, true)+pug.attr(\"username\", userAccess.name, true, true)) + \"\\u003E\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-member-name\\\"\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-user\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = userAccess.name) ? \"\" : pug_interp));\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \" (\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = userAccess.login) ? \"\" : pug_interp));\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \")\\u003C\\u002Fspan\\u003E\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-group-member-controls pull-right\\\"\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\nif (level >= accessType.ADMIN) {\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"dropdown\\\"\\u003E\";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-group-admin-demote dropdown-toggle\\\" title=\\\"Demote user\\\" data-toggle=\\\"dropdown\\\"\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-down-big\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-down-dir\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Cul class=\\\"dropdown-menu pull-right\\\" role=\\\"menu\\\"\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Cli role=\\\"presentation\\\"\\u003E\";\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-demote-moderator\\\" role=\\\"menuitem\\\"\\u003E\";\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-minus\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"Demote to moderator\\u003C\\u002Fspan\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Cli role=\\\"presentation\\\"\\u003E\";\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-demote-member\\\" role=\\\"menuitem\\\"\\u003E\";\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-minus\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"Demote to member\\u003C\\u002Fspan\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\\u003C\\u002Ful\\u003E\\u003C\\u002Fspan\\u003E\";\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-group-admin-remove\\\" title=\\\"Remove user from the group\\\"\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-block\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fli\\u003E\";\n }\n }\n}).call(this);\n\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\nif ((!admins.length)) {\n;pug_debug_line = 31;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-member-list-empty\\\"\\u003E\";\n;pug_debug_line = 32;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-info-circled\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupAdminList.pug\";\npug_html = pug_html + \"There are no administrators in this group.\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Ful\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"accessType\" in locals_for_with?locals_for_with.accessType:typeof accessType!==\"undefined\"?accessType:undefined,\"admins\" in locals_for_with?locals_for_with.admins:typeof admins!==\"undefined\"?admins:undefined,\"level\" in locals_for_with?locals_for_with.level:typeof level!==\"undefined\"?level:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/groupAdminList.pug","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteList.pug\":\"ul.g-group-invites\\n each user in invitees\\n li(cid=user.cid, username=user.name())\\n a.g-member-name\\n i.icon-user\\n span #{user.name()} (#{user.get('login')})\\n .g-group-member-controls.pull-right\\n if level \\u003E= accessType.WRITE\\n a.g-group-uninvite(title=\\\"Uninvite this user\\\")\\n i.icon-block\\n if (!invitees.length)\\n .g-member-list-empty\\n i.icon-info-circled\\n span There are no pending invitations to this group.\\n\"};\n;var locals_for_with = (locals || {});(function (accessType, invitees, level) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteList.pug\";\npug_html = pug_html + \"\\u003Cul class=\\\"g-group-invites\\\"\\u003E\";\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteList.pug\";\n// iterate invitees\n;(function(){\n var $$obj = invitees;\n if ('number' == typeof $$obj.length) {\n for (var pug_index0 = 0, $$l = $$obj.length; pug_index0 < $$l; pug_index0++) {\n var user = $$obj[pug_index0];\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteList.pug\";\npug_html = pug_html + \"\\u003Cli\" + (pug.attr(\"cid\", user.cid, true, true)+pug.attr(\"username\", user.name(), true, true)) + \"\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteList.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-member-name\\\"\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-user\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteList.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = user.name()) ? \"\" : pug_interp));\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteList.pug\";\npug_html = pug_html + \" (\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = user.get('login')) ? \"\" : pug_interp));\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteList.pug\";\npug_html = pug_html + \")\\u003C\\u002Fspan\\u003E\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-group-member-controls pull-right\\\"\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteList.pug\";\nif (level >= accessType.WRITE) {\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteList.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-group-uninvite\\\" title=\\\"Uninvite this user\\\"\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-block\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fli\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index0 in $$obj) {\n $$l++;\n var user = $$obj[pug_index0];\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteList.pug\";\npug_html = pug_html + \"\\u003Cli\" + (pug.attr(\"cid\", user.cid, true, true)+pug.attr(\"username\", user.name(), true, true)) + \"\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteList.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-member-name\\\"\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-user\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteList.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = user.name()) ? \"\" : pug_interp));\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteList.pug\";\npug_html = pug_html + \" (\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = user.get('login')) ? \"\" : pug_interp));\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteList.pug\";\npug_html = pug_html + \")\\u003C\\u002Fspan\\u003E\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-group-member-controls pull-right\\\"\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteList.pug\";\nif (level >= accessType.WRITE) {\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteList.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-group-uninvite\\\" title=\\\"Uninvite this user\\\"\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-block\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fli\\u003E\";\n }\n }\n}).call(this);\n\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteList.pug\";\nif ((!invitees.length)) {\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-member-list-empty\\\"\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-info-circled\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteList.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteList.pug\";\npug_html = pug_html + \"There are no pending invitations to this group.\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Ful\\u003E\";}.call(this,\"accessType\" in locals_for_with?locals_for_with.accessType:typeof accessType!==\"undefined\"?accessType:undefined,\"invitees\" in locals_for_with?locals_for_with.invitees:typeof invitees!==\"undefined\"?invitees:undefined,\"level\" in locals_for_with?locals_for_with.level:typeof level!==\"undefined\"?level:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/groupInviteList.pug","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\":\".modal-dialog\\n .modal-content\\n .modal-header\\n button.close(data-dismiss=\\\"modal\\\", aria-hidden=\\\"true\\\", type=\\\"button\\\") ×\\n h4.modal-title Invite user to group\\n .g-dialog-subtitle\\n i.icon-user\\n span #{user.text}\\n .modal-body\\n label.control-label Select a role for this user\\n #g-invite-role-container.panel-group\\n .panel.panel-default\\n .panel-heading(data-toggle=\\\"collapse\\\",\\n data-parent=\\\"#g-invite-role-container\\\",\\n data-target=\\\"#g-invite-role-member\\\")\\n .panel-title\\n a Invite as member\\n #g-invite-role-member.panel-collapse.collapse.in\\n .panel-body\\n p.\\n Group members are able to gain all privileges granted to\\n the group itself on other resources. They are able to view the\\n group, but may not change properties of the group.\\n .g-invite-as-member.btn.btn-primary\\n i.icon-mail\\n span Invite as member\\n if mayAdd\\n .g-add-as-member.btn.btn-warning.g-add-user-button\\n i.icon-plus\\n span Add as member\\n\\n if (level \\u003E= accessType.ADMIN)\\n .panel.panel-default\\n .panel-heading(data-toggle=\\\"collapse\\\",\\n data-parent=\\\"#g-invite-role-container\\\",\\n data-target=\\\"#g-invite-role-moderator\\\")\\n .panel-title\\n a Invite as moderator\\n #g-invite-role-moderator.panel-collapse.collapse\\n .panel-body\\n p.\\n Group moderators are members of the group who are also\\n granted the power to add and remove users from the group.\\n .g-invite-as-moderator.btn.btn-primary\\n i.icon-mail\\n span Invite as moderator\\n if mayAdd\\n .g-add-as-moderator.btn.btn-warning.g-add-user-button\\n i.icon-plus\\n span Add as moderator\\n\\n if (level \\u003E= accessType.ADMIN)\\n .panel.panel-default\\n .panel-heading(data-toggle=\\\"collapse\\\",\\n data-parent=\\\"#g-invite-role-container\\\",\\n data-target=\\\"#g-invite-role-admin\\\")\\n .panel-title\\n a Invite as administrator\\n #g-invite-role-admin.panel-collapse.collapse\\n .panel-body\\n p.\\n Group administrators have all the power of group moderators,\\n and additionally can promote group members to moderators\\n or administrators. They also have the power to delete the\\n group entirely.\\n .g-invite-as-admin.btn.btn-primary\\n i.icon-mail\\n span Invite as administrator\\n if mayAdd\\n .g-add-as-admin.btn.btn-warning.g-add-user-button\\n i.icon-plus\\n span Add as administrator\\n\\n .g-validation-failed-message\\n .modal-footer\\n a.btn.btn-small.btn-default(data-dismiss=\\\"modal\\\") Cancel\\n\"};\n;var locals_for_with = (locals || {});(function (accessType, level, mayAdd, user) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-dialog\\\"\\u003E\";\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-content\\\"\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-header\\\"\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"close\\\" data-dismiss=\\\"modal\\\" aria-hidden=\\\"true\\\" type=\\\"button\\\"\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"×\\u003C\\u002Fbutton\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Ch4 class=\\\"modal-title\\\"\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"Invite user to group\\u003C\\u002Fh4\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-dialog-subtitle\\\"\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-user\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = user.text) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-body\\\"\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Clabel class=\\\"control-label\\\"\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"Select a role for this user\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel-group\\\" id=\\\"g-invite-role-container\\\"\\u003E\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel panel-default\\\"\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel-heading\\\" data-toggle=\\\"collapse\\\" data-parent=\\\"#g-invite-role-container\\\" data-target=\\\"#g-invite-role-member\\\"\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel-title\\\"\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Ca\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"Invite as member\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel-collapse collapse in\\\" id=\\\"g-invite-role-member\\\"\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel-body\\\"\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Cp\\u003E\";\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"Group members are able to gain all privileges granted to\";\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\n\";\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"the group itself on other resources. They are able to view the\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\n\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"group, but may not change properties of the group.\\u003C\\u002Fp\\u003E\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-invite-as-member btn btn-primary\\\"\\u003E\";\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-mail\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"Invite as member\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\nif (mayAdd) {\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-add-as-member btn btn-warning g-add-user-button\\\"\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-plus\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"Add as member\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 32;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\nif ((level >= accessType.ADMIN)) {\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel panel-default\\\"\\u003E\";\n;pug_debug_line = 34;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel-heading\\\" data-toggle=\\\"collapse\\\" data-parent=\\\"#g-invite-role-container\\\" data-target=\\\"#g-invite-role-moderator\\\"\\u003E\";\n;pug_debug_line = 37;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel-title\\\"\\u003E\";\n;pug_debug_line = 38;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Ca\\u003E\";\n;pug_debug_line = 38;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"Invite as moderator\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 39;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel-collapse collapse\\\" id=\\\"g-invite-role-moderator\\\"\\u003E\";\n;pug_debug_line = 40;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel-body\\\"\\u003E\";\n;pug_debug_line = 41;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Cp\\u003E\";\n;pug_debug_line = 42;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"Group moderators are members of the group who are also\";\n;pug_debug_line = 43;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\n\";\n;pug_debug_line = 43;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"granted the power to add and remove users from the group.\\u003C\\u002Fp\\u003E\";\n;pug_debug_line = 44;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-invite-as-moderator btn btn-primary\\\"\\u003E\";\n;pug_debug_line = 45;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-mail\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 46;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 46;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"Invite as moderator\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 47;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\nif (mayAdd) {\n;pug_debug_line = 48;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-add-as-moderator btn btn-warning g-add-user-button\\\"\\u003E\";\n;pug_debug_line = 49;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-plus\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 50;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 50;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"Add as moderator\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\n;pug_debug_line = 52;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\nif ((level >= accessType.ADMIN)) {\n;pug_debug_line = 53;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel panel-default\\\"\\u003E\";\n;pug_debug_line = 54;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel-heading\\\" data-toggle=\\\"collapse\\\" data-parent=\\\"#g-invite-role-container\\\" data-target=\\\"#g-invite-role-admin\\\"\\u003E\";\n;pug_debug_line = 57;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel-title\\\"\\u003E\";\n;pug_debug_line = 58;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Ca\\u003E\";\n;pug_debug_line = 58;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"Invite as administrator\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 59;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel-collapse collapse\\\" id=\\\"g-invite-role-admin\\\"\\u003E\";\n;pug_debug_line = 60;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel-body\\\"\\u003E\";\n;pug_debug_line = 61;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Cp\\u003E\";\n;pug_debug_line = 62;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"Group administrators have all the power of group moderators,\";\n;pug_debug_line = 63;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\n\";\n;pug_debug_line = 63;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"and additionally can promote group members to moderators\";\n;pug_debug_line = 64;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\n\";\n;pug_debug_line = 64;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"or administrators. They also have the power to delete the\";\n;pug_debug_line = 65;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\n\";\n;pug_debug_line = 65;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"group entirely.\\u003C\\u002Fp\\u003E\";\n;pug_debug_line = 66;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-invite-as-admin btn btn-primary\\\"\\u003E\";\n;pug_debug_line = 67;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-mail\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 68;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 68;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"Invite as administrator\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 69;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\nif (mayAdd) {\n;pug_debug_line = 70;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-add-as-admin btn btn-warning g-add-user-button\\\"\\u003E\";\n;pug_debug_line = 71;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-plus\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 72;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 72;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"Add as administrator\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 74;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-validation-failed-message\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 75;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-footer\\\"\\u003E\";\n;pug_debug_line = 76;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"btn btn-small btn-default\\\" data-dismiss=\\\"modal\\\"\\u003E\";\n;pug_debug_line = 76;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupInviteDialog.pug\";\npug_html = pug_html + \"Cancel\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"accessType\" in locals_for_with?locals_for_with.accessType:typeof accessType!==\"undefined\"?accessType:undefined,\"level\" in locals_for_with?locals_for_with.level:typeof level!==\"undefined\"?level:undefined,\"mayAdd\" in locals_for_with?locals_for_with.mayAdd:typeof mayAdd!==\"undefined\"?mayAdd:undefined,\"user\" in locals_for_with?locals_for_with.user:typeof user!==\"undefined\"?user:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/groupInviteDialog.pug","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\":\".g-group-members-header.g-group-list-header\\n i.icon-users\\n span Members\\n if level \\u003E= accessType.WRITE\\n form.g-group-invite-form.form-inline(role=\\\"form\\\")\\n span\\n i.icon-mail-alt\\n .form-group.g-group-invite-container\\n .g-member-pagination\\n.g-group-members-body\\n ul.g-group-members\\n each member in members\\n li(cid=member.cid)\\n a.g-member-name\\n i.icon-user\\n span #{member.name()} (#{member.get('login')})\\n .g-group-member-controls.pull-right\\n if level \\u003E= accessType.ADMIN\\n span.dropdown\\n a.g-group-member-promote.dropdown-toggle(\\n title=\\\"Promote user\\\", data-toggle=\\\"dropdown\\\")\\n i.icon-up-big\\n i.icon-down-dir\\n ul.dropdown-menu.pull-right(role=\\\"menu\\\")\\n li(role=\\\"presentation\\\")\\n a.g-promote-moderator(role=\\\"menuitem\\\")\\n i.icon-plus\\n span Promote to moderator\\n li(role=\\\"presentation\\\")\\n a.g-promote-admin(role=\\\"menuitem\\\")\\n i.icon-plus\\n span Promote to administrator\\n if level \\u003E= accessType.WRITE\\n a.g-group-member-remove(title=\\\"Remove user from the group\\\")\\n i.icon-block\\n if (!members.length)\\n .g-member-list-empty\\n i.icon-info-circled\\n span There are no members in this group.\\n\"};\n;var locals_for_with = (locals || {});(function (accessType, level, members) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-group-members-header g-group-list-header\\\"\\u003E\";\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-users\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"Members\\u003C\\u002Fspan\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\nif (level >= accessType.WRITE) {\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Cform class=\\\"g-group-invite-form form-inline\\\" role=\\\"form\\\"\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-mail-alt\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fspan\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group g-group-invite-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fform\\u003E\";\n}\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-member-pagination\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-group-members-body\\\"\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Cul class=\\\"g-group-members\\\"\\u003E\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\n// iterate members\n;(function(){\n var $$obj = members;\n if ('number' == typeof $$obj.length) {\n for (var pug_index0 = 0, $$l = $$obj.length; pug_index0 < $$l; pug_index0++) {\n var member = $$obj[pug_index0];\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Cli\" + (pug.attr(\"cid\", member.cid, true, true)) + \"\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-member-name\\\"\\u003E\";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-user\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = member.name()) ? \"\" : pug_interp));\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \" (\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = member.get('login')) ? \"\" : pug_interp));\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \")\\u003C\\u002Fspan\\u003E\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-group-member-controls pull-right\\\"\\u003E\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\nif (level >= accessType.ADMIN) {\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"dropdown\\\"\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-group-member-promote dropdown-toggle\\\" title=\\\"Promote user\\\" data-toggle=\\\"dropdown\\\"\\u003E\";\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-up-big\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-down-dir\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Cul class=\\\"dropdown-menu pull-right\\\" role=\\\"menu\\\"\\u003E\";\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Cli role=\\\"presentation\\\"\\u003E\";\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-promote-moderator\\\" role=\\\"menuitem\\\"\\u003E\";\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-plus\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"Promote to moderator\\u003C\\u002Fspan\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Cli role=\\\"presentation\\\"\\u003E\";\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-promote-admin\\\" role=\\\"menuitem\\\"\\u003E\";\n;pug_debug_line = 31;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-plus\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 32;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 32;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"Promote to administrator\\u003C\\u002Fspan\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\\u003C\\u002Ful\\u003E\\u003C\\u002Fspan\\u003E\";\n}\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\nif (level >= accessType.WRITE) {\n;pug_debug_line = 34;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-group-member-remove\\\" title=\\\"Remove user from the group\\\"\\u003E\";\n;pug_debug_line = 35;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-block\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fli\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index0 in $$obj) {\n $$l++;\n var member = $$obj[pug_index0];\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Cli\" + (pug.attr(\"cid\", member.cid, true, true)) + \"\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-member-name\\\"\\u003E\";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-user\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = member.name()) ? \"\" : pug_interp));\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \" (\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = member.get('login')) ? \"\" : pug_interp));\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \")\\u003C\\u002Fspan\\u003E\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-group-member-controls pull-right\\\"\\u003E\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\nif (level >= accessType.ADMIN) {\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"dropdown\\\"\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-group-member-promote dropdown-toggle\\\" title=\\\"Promote user\\\" data-toggle=\\\"dropdown\\\"\\u003E\";\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-up-big\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-down-dir\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Cul class=\\\"dropdown-menu pull-right\\\" role=\\\"menu\\\"\\u003E\";\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Cli role=\\\"presentation\\\"\\u003E\";\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-promote-moderator\\\" role=\\\"menuitem\\\"\\u003E\";\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-plus\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"Promote to moderator\\u003C\\u002Fspan\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Cli role=\\\"presentation\\\"\\u003E\";\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-promote-admin\\\" role=\\\"menuitem\\\"\\u003E\";\n;pug_debug_line = 31;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-plus\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 32;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 32;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"Promote to administrator\\u003C\\u002Fspan\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\\u003C\\u002Ful\\u003E\\u003C\\u002Fspan\\u003E\";\n}\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\nif (level >= accessType.WRITE) {\n;pug_debug_line = 34;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-group-member-remove\\\" title=\\\"Remove user from the group\\\"\\u003E\";\n;pug_debug_line = 35;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-block\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fli\\u003E\";\n }\n }\n}).call(this);\n\n;pug_debug_line = 36;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\nif ((!members.length)) {\n;pug_debug_line = 37;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-member-list-empty\\\"\\u003E\";\n;pug_debug_line = 38;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-info-circled\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 39;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 39;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupMemberList.pug\";\npug_html = pug_html + \"There are no members in this group.\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Ful\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"accessType\" in locals_for_with?locals_for_with.accessType:typeof accessType!==\"undefined\"?accessType:undefined,\"level\" in locals_for_with?locals_for_with.level:typeof level!==\"undefined\"?level:undefined,\"members\" in locals_for_with?locals_for_with.members:typeof members!==\"undefined\"?members:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/groupMemberList.pug","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\":\".g-group-mods-header.g-group-list-header(title=\\\"Group moderators can invite and approve group members.\\\")\\n i.icon-shield\\n span Moderators\\n\\n.g-group-mods-body\\n ul.g-group-mods\\n each userAccess in moderators\\n li(userid=userAccess.id, username=userAccess.name)\\n a.g-member-name\\n i.icon-user\\n span #{userAccess.name} (#{userAccess.login})\\n .g-group-member-controls.pull-right\\n if level \\u003E= accessType.ADMIN\\n a.g-group-mod-promote(title=\\\"Promote to administrator\\\")\\n i.icon-up-big\\n a.g-group-mod-demote(title=\\\"Demote to member\\\")\\n i.icon-down-big\\n a.g-group-mod-remove(title=\\\"Remove user from the group\\\")\\n i.icon-block\\n if (!moderators.length)\\n .g-member-list-empty\\n i.icon-info-circled\\n span There are no moderators in this group.\\n\"};\n;var locals_for_with = (locals || {});(function (accessType, level, moderators) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-group-mods-header g-group-list-header\\\" title=\\\"Group moderators can invite and approve group members.\\\"\\u003E\";\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-shield\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\";\npug_html = pug_html + \"Moderators\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-group-mods-body\\\"\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\";\npug_html = pug_html + \"\\u003Cul class=\\\"g-group-mods\\\"\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\";\n// iterate moderators\n;(function(){\n var $$obj = moderators;\n if ('number' == typeof $$obj.length) {\n for (var pug_index0 = 0, $$l = $$obj.length; pug_index0 < $$l; pug_index0++) {\n var userAccess = $$obj[pug_index0];\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\";\npug_html = pug_html + \"\\u003Cli\" + (pug.attr(\"userid\", userAccess.id, true, true)+pug.attr(\"username\", userAccess.name, true, true)) + \"\\u003E\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-member-name\\\"\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-user\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = userAccess.name) ? \"\" : pug_interp));\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\";\npug_html = pug_html + \" (\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = userAccess.login) ? \"\" : pug_interp));\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\";\npug_html = pug_html + \")\\u003C\\u002Fspan\\u003E\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-group-member-controls pull-right\\\"\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\";\nif (level >= accessType.ADMIN) {\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-group-mod-promote\\\" title=\\\"Promote to administrator\\\"\\u003E\";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-up-big\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-group-mod-demote\\\" title=\\\"Demote to member\\\"\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-down-big\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-group-mod-remove\\\" title=\\\"Remove user from the group\\\"\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-block\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fli\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index0 in $$obj) {\n $$l++;\n var userAccess = $$obj[pug_index0];\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\";\npug_html = pug_html + \"\\u003Cli\" + (pug.attr(\"userid\", userAccess.id, true, true)+pug.attr(\"username\", userAccess.name, true, true)) + \"\\u003E\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-member-name\\\"\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-user\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = userAccess.name) ? \"\" : pug_interp));\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\";\npug_html = pug_html + \" (\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = userAccess.login) ? \"\" : pug_interp));\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\";\npug_html = pug_html + \")\\u003C\\u002Fspan\\u003E\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-group-member-controls pull-right\\\"\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\";\nif (level >= accessType.ADMIN) {\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-group-mod-promote\\\" title=\\\"Promote to administrator\\\"\\u003E\";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-up-big\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-group-mod-demote\\\" title=\\\"Demote to member\\\"\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-down-big\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-group-mod-remove\\\" title=\\\"Remove user from the group\\\"\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-block\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fli\\u003E\";\n }\n }\n}).call(this);\n\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\";\nif ((!moderators.length)) {\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-member-list-empty\\\"\\u003E\";\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-info-circled\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FgroupModList.pug\";\npug_html = pug_html + \"There are no moderators in this group.\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Ful\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"accessType\" in locals_for_with?locals_for_with.accessType:typeof accessType!==\"undefined\"?accessType:undefined,\"level\" in locals_for_with?locals_for_with.level:typeof level!==\"undefined\"?level:undefined,\"moderators\" in locals_for_with?locals_for_with.moderators:typeof moderators!==\"undefined\"?moderators:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/groupModList.pug","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\":\".g-group-header\\n .btn-group.pull-right\\n if (isMember || isInvited || getCurrentUser() || group.get('_accessLevel') \\u003E= AccessType.ADMIN)\\n button.g-group-actions-button.btn.btn-default.dropdown-toggle(\\n data-toggle=\\\"dropdown\\\", title=\\\"Group actions\\\")\\n i.icon-users\\n | Actions\\n i.icon-down-dir\\n ul.g-group-actions-menu.dropdown-menu.pull-right(role=\\\"menu\\\")\\n if (isMember)\\n li(role=\\\"presentation\\\")\\n a.g-group-leave(role=\\\"menuitem\\\")\\n i.icon-block\\n | Leave group\\n else if (isInvited)\\n li(role=\\\"presentation\\\")\\n a.g-group-join(role=\\\"menuitem\\\")\\n i.icon-login\\n | Join group\\n else if (getCurrentUser())\\n li(role=\\\"presentation\\\")\\n a.g-group-request-invite(role=\\\"menuitem\\\")\\n i.icon-export\\n | Request membership\\n if (group.get('_accessLevel') \\u003E= AccessType.ADMIN)\\n li.divider(role=\\\"presentation\\\")\\n li(role=\\\"presentation\\\")\\n a.g-edit-group(role=\\\"menuitem\\\")\\n i.icon-edit\\n | Edit group\\n if (group.get('_accessLevel') \\u003E= AccessType.ADMIN)\\n li.divider(role=\\\"presentation\\\")\\n li(role=\\\"presentation\\\")\\n a.g-group-delete(role=\\\"menuitem\\\")\\n i.icon-trash\\n | Delete group\\n\\n .g-group-name.g-body-title= group.name()\\n .g-group-description.g-body-subtitle= group.get('description')\\n .g-clear-right\\n\\nif (getCurrentUser())\\n if (isMember)\\n .g-group-status-container.g-member\\n i.icon-ok\\n if (isAdmin)\\n | You are an #[b administrator] of this group.\\n else if (isModerator)\\n | You are a #[b moderator] of this group.\\n else\\n | You are a #[b member] of this group.\\n else if (isInvited)\\n .g-group-status-container.g-invited\\n i.icon-mail-alt\\n | You have been invited to this group.\\n a.g-group-join Join group\\n else if (isRequested)\\n .g-group-status-container.g-requested-invite\\n i.icon-comment\\n | You have requested to join this group.\\n else\\n .g-group-status-container.g-nonmember\\n i.icon-minus-circled\\n | You are not a member of this group.\\n a.g-group-request-invite Request membership\\n if (group.get('_accessLevel') \\u003E= AccessType.ADMIN && !isAdmin)\\n .g-group-status-container.g-admin\\n i.icon-star\\n | You have #[b administrator] privileges.\\n\\nul.g-group-tabs.nav.nav-tabs\\n li.active\\n a(href=\\\"#g-group-tab-roles\\\", data-toggle=\\\"tab\\\", name=\\\"roles\\\")\\n i.icon-th-list\\n | Roles\\n li\\n a(href=\\\"#g-group-tab-pending\\\", data-toggle=\\\"tab\\\", name=\\\"pending\\\")\\n i.icon-inbox\\n | Pending\\n #g-group-tab-pending-status\\n\\n.tab-content\\n #g-group-tab-roles.tab-pane.active\\n .g-group-admins-container\\n .g-group-mods-container\\n .g-group-members-container\\n #g-group-tab-pending.tab-pane\\n .g-group-requests-container\\n .g-group-requests-header.g-group-list-header\\n i.icon-comment\\n | Requests for membership\\n\\n .g-group-requests-body\\n ul.g-group-requests\\n each user in group.get('requests')\\n li(userid=user.id)\\n a.g-member-name\\n i.icon-user\\n | #{user.name} (#{user.login})\\n .g-group-member-controls.pull-right\\n if group.get('_accessLevel') \\u003E= AccessType.WRITE\\n a.g-group-request-accept(title=\\\"Add to group\\\")\\n i.icon-thumbs-up\\n a.g-group-request-deny(title=\\\"Deny request\\\")\\n i.icon-thumbs-down\\n if (!group.get('requests').length)\\n .g-member-list-empty\\n i.icon-info-circled\\n | There are no outstanding invitation requests for this group.\\n\\n .g-group-invites-container\\n .g-group-invites-header.g-group-list-header\\n i.icon-mail-alt\\n | Sent invitations\\n\\n .g-group-invites-body\\n\"};\n;var locals_for_with = (locals || {});(function (AccessType, getCurrentUser, group, isAdmin, isInvited, isMember, isModerator, isRequested) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-group-header\\\"\\u003E\";\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"btn-group pull-right\\\"\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\nif ((isMember || isInvited || getCurrentUser() || group.get('_accessLevel') >= AccessType.ADMIN)) {\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"g-group-actions-button btn btn-default dropdown-toggle\\\" data-toggle=\\\"dropdown\\\" title=\\\"Group actions\\\"\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-users\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \" Actions\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-down-dir\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fbutton\\u003E\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cul class=\\\"g-group-actions-menu dropdown-menu pull-right\\\" role=\\\"menu\\\"\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\nif ((isMember)) {\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cli role=\\\"presentation\\\"\\u003E\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-group-leave\\\" role=\\\"menuitem\\\"\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-block\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"Leave group\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n}\nelse\nif ((isInvited)) {\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cli role=\\\"presentation\\\"\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-group-join\\\" role=\\\"menuitem\\\"\\u003E\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-login\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"Join group\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n}\nelse\nif ((getCurrentUser())) {\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cli role=\\\"presentation\\\"\\u003E\";\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-group-request-invite\\\" role=\\\"menuitem\\\"\\u003E\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-export\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"Request membership\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n}\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\nif ((group.get('_accessLevel') >= AccessType.ADMIN)) {\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cli class=\\\"divider\\\" role=\\\"presentation\\\"\\u003E\\u003C\\u002Fli\\u003E\";\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cli role=\\\"presentation\\\"\\u003E\";\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-edit-group\\\" role=\\\"menuitem\\\"\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-edit\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"Edit group\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n}\n;pug_debug_line = 31;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\nif ((group.get('_accessLevel') >= AccessType.ADMIN)) {\n;pug_debug_line = 32;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cli class=\\\"divider\\\" role=\\\"presentation\\\"\\u003E\\u003C\\u002Fli\\u003E\";\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cli role=\\\"presentation\\\"\\u003E\";\n;pug_debug_line = 34;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-group-delete\\\" role=\\\"menuitem\\\"\\u003E\";\n;pug_debug_line = 35;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-trash\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 36;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"Delete group\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Ful\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 38;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-group-name g-body-title\\\"\\u003E\";\n;pug_debug_line = 38;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = group.name()) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 39;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-group-description g-body-subtitle\\\"\\u003E\";\n;pug_debug_line = 39;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = group.get('description')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 40;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-clear-right\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 42;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\nif ((getCurrentUser())) {\n;pug_debug_line = 43;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\nif ((isMember)) {\n;pug_debug_line = 44;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-group-status-container g-member\\\"\\u003E\";\n;pug_debug_line = 45;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-ok\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 46;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\nif ((isAdmin)) {\n;pug_debug_line = 47;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \" You are an \";\n;pug_debug_line = 47;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cb\\u003E\";\n;pug_debug_line = 47;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"administrator\\u003C\\u002Fb\\u003E\";\n;pug_debug_line = 47;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \" of this group.\";\n}\nelse\nif ((isModerator)) {\n;pug_debug_line = 49;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \" You are a \";\n;pug_debug_line = 49;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cb\\u003E\";\n;pug_debug_line = 49;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"moderator\\u003C\\u002Fb\\u003E\";\n;pug_debug_line = 49;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \" of this group.\";\n}\nelse {\n;pug_debug_line = 51;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \" You are a \";\n;pug_debug_line = 51;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cb\\u003E\";\n;pug_debug_line = 51;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"member\\u003C\\u002Fb\\u003E\";\n;pug_debug_line = 51;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \" of this group.\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n}\nelse\nif ((isInvited)) {\n;pug_debug_line = 53;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-group-status-container g-invited\\\"\\u003E\";\n;pug_debug_line = 54;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-mail-alt\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 55;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \" You have been invited to this group.\";\n;pug_debug_line = 56;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-group-join\\\"\\u003E\";\n;pug_debug_line = 56;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \" Join group\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse\nif ((isRequested)) {\n;pug_debug_line = 58;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-group-status-container g-requested-invite\\\"\\u003E\";\n;pug_debug_line = 59;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-comment\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 60;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \" You have requested to join this group.\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\n;pug_debug_line = 62;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-group-status-container g-nonmember\\\"\\u003E\";\n;pug_debug_line = 63;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-minus-circled\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 64;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \" You are not a member of this group.\";\n;pug_debug_line = 65;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-group-request-invite\\\"\\u003E\";\n;pug_debug_line = 65;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \" Request membership\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\n;pug_debug_line = 66;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\nif ((group.get('_accessLevel') >= AccessType.ADMIN && !isAdmin)) {\n;pug_debug_line = 67;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-group-status-container g-admin\\\"\\u003E\";\n;pug_debug_line = 68;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-star\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 69;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \" You have \";\n;pug_debug_line = 69;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cb\\u003E\";\n;pug_debug_line = 69;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"administrator\\u003C\\u002Fb\\u003E\";\n;pug_debug_line = 69;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \" privileges.\\u003C\\u002Fdiv\\u003E\";\n}\n}\n;pug_debug_line = 71;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cul class=\\\"g-group-tabs nav nav-tabs\\\"\\u003E\";\n;pug_debug_line = 72;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cli class=\\\"active\\\"\\u003E\";\n;pug_debug_line = 73;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Ca href=\\\"#g-group-tab-roles\\\" data-toggle=\\\"tab\\\" name=\\\"roles\\\"\\u003E\";\n;pug_debug_line = 74;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-th-list\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 75;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \" Roles\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n;pug_debug_line = 76;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cli\\u003E\";\n;pug_debug_line = 77;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Ca href=\\\"#g-group-tab-pending\\\" data-toggle=\\\"tab\\\" name=\\\"pending\\\"\\u003E\";\n;pug_debug_line = 78;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-inbox\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 79;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"Pending\";\n;pug_debug_line = 80;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cdiv id=\\\"g-group-tab-pending-status\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\\u003C\\u002Ful\\u003E\";\n;pug_debug_line = 82;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"tab-content\\\"\\u003E\";\n;pug_debug_line = 83;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"tab-pane active\\\" id=\\\"g-group-tab-roles\\\"\\u003E\";\n;pug_debug_line = 84;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-group-admins-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 85;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-group-mods-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 86;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-group-members-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 87;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"tab-pane\\\" id=\\\"g-group-tab-pending\\\"\\u003E\";\n;pug_debug_line = 88;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-group-requests-container\\\"\\u003E\";\n;pug_debug_line = 89;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-group-requests-header g-group-list-header\\\"\\u003E\";\n;pug_debug_line = 90;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-comment\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 91;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \" Requests for membership\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 93;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-group-requests-body\\\"\\u003E\";\n;pug_debug_line = 94;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cul class=\\\"g-group-requests\\\"\\u003E\";\n;pug_debug_line = 95;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\n// iterate group.get('requests')\n;(function(){\n var $$obj = group.get('requests');\n if ('number' == typeof $$obj.length) {\n for (var pug_index0 = 0, $$l = $$obj.length; pug_index0 < $$l; pug_index0++) {\n var user = $$obj[pug_index0];\n;pug_debug_line = 96;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cli\" + (pug.attr(\"userid\", user.id, true, true)) + \"\\u003E\";\n;pug_debug_line = 97;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-member-name\\\"\\u003E\";\n;pug_debug_line = 98;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-user\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 99;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \" \";\n;pug_debug_line = 99;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = user.name) ? \"\" : pug_interp));\n;pug_debug_line = 99;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \" (\";\n;pug_debug_line = 99;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = user.login) ? \"\" : pug_interp));\n;pug_debug_line = 99;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \")\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 100;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-group-member-controls pull-right\\\"\\u003E\";\n;pug_debug_line = 101;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\nif (group.get('_accessLevel') >= AccessType.WRITE) {\n;pug_debug_line = 102;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-group-request-accept\\\" title=\\\"Add to group\\\"\\u003E\";\n;pug_debug_line = 103;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-thumbs-up\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 104;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-group-request-deny\\\" title=\\\"Deny request\\\"\\u003E\";\n;pug_debug_line = 105;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-thumbs-down\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fli\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index0 in $$obj) {\n $$l++;\n var user = $$obj[pug_index0];\n;pug_debug_line = 96;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cli\" + (pug.attr(\"userid\", user.id, true, true)) + \"\\u003E\";\n;pug_debug_line = 97;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-member-name\\\"\\u003E\";\n;pug_debug_line = 98;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-user\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 99;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \" \";\n;pug_debug_line = 99;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = user.name) ? \"\" : pug_interp));\n;pug_debug_line = 99;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \" (\";\n;pug_debug_line = 99;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = user.login) ? \"\" : pug_interp));\n;pug_debug_line = 99;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \")\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 100;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-group-member-controls pull-right\\\"\\u003E\";\n;pug_debug_line = 101;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\nif (group.get('_accessLevel') >= AccessType.WRITE) {\n;pug_debug_line = 102;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-group-request-accept\\\" title=\\\"Add to group\\\"\\u003E\";\n;pug_debug_line = 103;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-thumbs-up\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 104;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-group-request-deny\\\" title=\\\"Deny request\\\"\\u003E\";\n;pug_debug_line = 105;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-thumbs-down\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fli\\u003E\";\n }\n }\n}).call(this);\n\n;pug_debug_line = 106;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\nif ((!group.get('requests').length)) {\n;pug_debug_line = 107;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-member-list-empty\\\"\\u003E\";\n;pug_debug_line = 108;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-info-circled\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 109;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \" There are no outstanding invitation requests for this group.\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Ful\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 111;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-group-invites-container\\\"\\u003E\";\n;pug_debug_line = 112;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-group-invites-header g-group-list-header\\\"\\u003E\";\n;pug_debug_line = 113;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-mail-alt\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 114;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \" Sent invitations\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 116;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FgroupPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-group-invites-body\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"AccessType\" in locals_for_with?locals_for_with.AccessType:typeof AccessType!==\"undefined\"?AccessType:undefined,\"getCurrentUser\" in locals_for_with?locals_for_with.getCurrentUser:typeof getCurrentUser!==\"undefined\"?getCurrentUser:undefined,\"group\" in locals_for_with?locals_for_with.group:typeof group!==\"undefined\"?group:undefined,\"isAdmin\" in locals_for_with?locals_for_with.isAdmin:typeof isAdmin!==\"undefined\"?isAdmin:undefined,\"isInvited\" in locals_for_with?locals_for_with.isInvited:typeof isInvited!==\"undefined\"?isInvited:undefined,\"isMember\" in locals_for_with?locals_for_with.isMember:typeof isMember!==\"undefined\"?isMember:undefined,\"isModerator\" in locals_for_with?locals_for_with.isModerator:typeof isModerator!==\"undefined\"?isModerator:undefined,\"isRequested\" in locals_for_with?locals_for_with.isRequested:typeof isRequested!==\"undefined\"?isRequested:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/body/groupPage.pug","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/stylesheets/body/groupPage.styl\n// module id = 430\n// module chunks = 0","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFileWidget.pug\":\".modal-dialog\\n .modal-content\\n form#g-file-edit-form.modal-form(role=\\\"form\\\")\\n .modal-header\\n button.close(data-dismiss=\\\"modal\\\", aria-hidden=\\\"true\\\", type=\\\"button\\\") ×\\n h4.modal-title Edit file\\n .modal-body\\n .form-group\\n label.control-label(for=\\\"g-name\\\") Name\\n input#g-name.input-sm.form-control(\\n type=\\\"text\\\", placeholder=\\\"Enter file name\\\", value=file.name())\\n .form-group\\n label.control-label(for=\\\"g-mimetype\\\") MIME type\\n input#g-mimetype.input-sm.form-control(\\n type=\\\"text\\\", placeholder=\\\"Enter MIME type\\\", value=file.get('mimeType'))\\n .g-validation-failed-message\\n .modal-footer\\n a.btn.btn-small.btn-default(data-dismiss=\\\"modal\\\") Cancel\\n button.g-save-file.btn.btn-small.btn-primary(type=\\\"submit\\\")\\n i.icon-edit\\n | Save\\n\"};\n;var locals_for_with = (locals || {});(function (file) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFileWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-dialog\\\"\\u003E\";\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFileWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-content\\\"\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFileWidget.pug\";\npug_html = pug_html + \"\\u003Cform class=\\\"modal-form\\\" id=\\\"g-file-edit-form\\\" role=\\\"form\\\"\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFileWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-header\\\"\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFileWidget.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"close\\\" data-dismiss=\\\"modal\\\" aria-hidden=\\\"true\\\" type=\\\"button\\\"\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFileWidget.pug\";\npug_html = pug_html + \"×\\u003C\\u002Fbutton\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFileWidget.pug\";\npug_html = pug_html + \"\\u003Ch4 class=\\\"modal-title\\\"\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFileWidget.pug\";\npug_html = pug_html + \"Edit file\\u003C\\u002Fh4\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFileWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-body\\\"\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFileWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFileWidget.pug\";\npug_html = pug_html + \"\\u003Clabel class=\\\"control-label\\\" for=\\\"g-name\\\"\\u003E\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFileWidget.pug\";\npug_html = pug_html + \"Name\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFileWidget.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"input-sm form-control\\\"\"+\" id=\\\"g-name\\\" type=\\\"text\\\" placeholder=\\\"Enter file name\\\"\"+pug.attr(\"value\", file.name(), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFileWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFileWidget.pug\";\npug_html = pug_html + \"\\u003Clabel class=\\\"control-label\\\" for=\\\"g-mimetype\\\"\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFileWidget.pug\";\npug_html = pug_html + \"MIME type\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFileWidget.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"input-sm form-control\\\"\"+\" id=\\\"g-mimetype\\\" type=\\\"text\\\" placeholder=\\\"Enter MIME type\\\"\"+pug.attr(\"value\", file.get('mimeType'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFileWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-validation-failed-message\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFileWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-footer\\\"\\u003E\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFileWidget.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"btn btn-small btn-default\\\" data-dismiss=\\\"modal\\\"\\u003E\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFileWidget.pug\";\npug_html = pug_html + \"Cancel\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFileWidget.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"g-save-file btn btn-small btn-primary\\\" type=\\\"submit\\\"\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFileWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-edit\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditFileWidget.pug\";\npug_html = pug_html + \"Save\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fform\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"file\" in locals_for_with?locals_for_with.file:typeof file!==\"undefined\"?file:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/editFileWidget.pug","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\":\".modal-dialog\\n .modal-content\\n .modal-header\\n button.close(data-dismiss=\\\"modal\\\", aria-hidden=\\\"true\\\") ×\\n h4.modal-title File information\\n .g-dialog-subtitle\\n i.icon-doc-inv\\n span= file.name()\\n .modal-body\\n .g-file-info-lines\\n .g-file-info-line(property=\\\"created\\\")\\n i.icon-clock\\n span= 'Created '\\n span.g-bold-part= formatDate(file.get('created'), DATE_SECOND)\\n\\n .g-file-info-line(property=\\\"mimeType\\\")\\n i.icon-info\\n span MIME type:\\n span.g-bold-part #{file.get('mimeType') || 'unknown'}\\n\\n if file.has('size')\\n .g-file-info-line(property=\\\"size\\\")\\n i.icon-hdd\\n span Size:\\n span.g-bold-part #{file.get('size')} bytes\\n\\n .g-file-info-line(property=\\\"id\\\")\\n i.icon-share\\n span Unique ID:\\n span.g-bold-part #{file.id}\\n\\n .modal-footer\\n a.btn.btn-small.btn-default(data-dismiss=\\\"modal\\\") Close\\n\"};\n;var locals_for_with = (locals || {});(function (DATE_SECOND, file, formatDate) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-dialog\\\"\\u003E\";\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-content\\\"\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-header\\\"\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"close\\\" data-dismiss=\\\"modal\\\" aria-hidden=\\\"true\\\"\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\npug_html = pug_html + \"×\\u003C\\u002Fbutton\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\npug_html = pug_html + \"\\u003Ch4 class=\\\"modal-title\\\"\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\npug_html = pug_html + \"File information\\u003C\\u002Fh4\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-dialog-subtitle\\\"\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-doc-inv\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = file.name()) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-body\\\"\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-file-info-lines\\\"\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-file-info-line\\\" property=\\\"created\\\"\\u003E\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-clock\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = 'Created ') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"g-bold-part\\\"\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = formatDate(file.get('created'), DATE_SECOND)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-file-info-line\\\" property=\\\"mimeType\\\"\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-info\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\npug_html = pug_html + \"MIME type:\\u003C\\u002Fspan\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"g-bold-part\\\"\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\npug_html = pug_html + \" \";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = file.get('mimeType') || 'unknown') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\nif (file.has('size')) {\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-file-info-line\\\" property=\\\"size\\\"\\u003E\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-hdd\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\npug_html = pug_html + \"Size:\\u003C\\u002Fspan\\u003E\";\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"g-bold-part\\\"\\u003E\";\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\npug_html = pug_html + \" \";\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = file.get('size')) ? \"\" : pug_interp));\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\npug_html = pug_html + \" bytes\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-file-info-line\\\" property=\\\"id\\\"\\u003E\";\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-share\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\npug_html = pug_html + \"Unique ID:\\u003C\\u002Fspan\\u003E\";\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"g-bold-part\\\"\\u003E\";\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\npug_html = pug_html + \" \";\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = file.id) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 32;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-footer\\\"\\u003E\";\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"btn btn-small btn-default\\\" data-dismiss=\\\"modal\\\"\\u003E\";\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileInfoDialog.pug\";\npug_html = pug_html + \"Close\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"DATE_SECOND\" in locals_for_with?locals_for_with.DATE_SECOND:typeof DATE_SECOND!==\"undefined\"?DATE_SECOND:undefined,\"file\" in locals_for_with?locals_for_with.file:typeof file!==\"undefined\"?file:undefined,\"formatDate\" in locals_for_with?locals_for_with.formatDate:typeof formatDate!==\"undefined\"?formatDate:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/fileInfoDialog.pug","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\":\"ul.g-file-list\\n each file in files\\n li.g-file-list-entry\\n a.g-file-list-link(cid=file.cid, title=\\\"Download file\\\",\\n target=file.get('linkUrl') ? '_blank' : '_self', href=file.downloadUrl(),\\n rel=\\\"noopener noreferrer\\\")\\n if file.get('linkUrl')\\n i.icon-link\\n span.g-file-name= file.name()\\n i.icon-link-ext\\n else\\n i.icon-doc-inv\\n = file.name()\\n a.g-view-inline(title=\\\"View in browser\\\", target=\\\"_blank\\\", rel=\\\"noopener noreferrer\\\",\\n href=file.downloadUrl({contentDisposition: 'inline'}))\\n i.icon-eye\\n a.g-show-info(file-cid=file.cid, title=\\\"Show info\\\")\\n i.icon-info\\n if file.has('size')\\n .g-file-size= formatSize(file.get('size'))\\n .g-file-actions-container(file-cid=file.cid)\\n if parentItem && parentItem.get('_accessLevel') \\u003E= AccessType.WRITE\\n a.g-update-info(title=\\\"Edit file info\\\")\\n i.icon-edit\\n a.g-update-contents(title=\\\"Replace file contents\\\")\\n i.icon-upload\\n a.g-delete-file(title=\\\"Delete file\\\")\\n i.icon-cancel\\n if hasMore\\n li.g-show-more\\n a.g-show-more-files\\n i.icon-level-down\\n | Show more files...\\n\"};\n;var locals_for_with = (locals || {});(function (AccessType, files, formatSize, hasMore, parentItem) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + \"\\u003Cul class=\\\"g-file-list\\\"\\u003E\";\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\n// iterate files\n;(function(){\n var $$obj = files;\n if ('number' == typeof $$obj.length) {\n for (var pug_index0 = 0, $$l = $$obj.length; pug_index0 < $$l; pug_index0++) {\n var file = $$obj[pug_index0];\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + \"\\u003Cli class=\\\"g-file-list-entry\\\"\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"g-file-list-link\\\"\"+pug.attr(\"cid\", file.cid, true, true)+\" title=\\\"Download file\\\"\"+pug.attr(\"target\", file.get('linkUrl') ? '_blank' : '_self', true, true)+pug.attr(\"href\", file.downloadUrl(), true, true)+\" rel=\\\"noopener noreferrer\\\"\") + \"\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\nif (file.get('linkUrl')) {\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-link\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"g-file-name\\\"\\u003E\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = file.name()) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-link-ext\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n}\nelse {\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-doc-inv\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = file.name()) ? \"\" : pug_interp));\n}\npug_html = pug_html + \"\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"g-view-inline\\\"\"+\" title=\\\"View in browser\\\" target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\"\"+pug.attr(\"href\", file.downloadUrl({contentDisposition: 'inline'}), true, true)) + \"\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-eye\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"g-show-info\\\"\"+pug.attr(\"file-cid\", file.cid, true, true)+\" title=\\\"Show info\\\"\") + \"\\u003E\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-info\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\nif (file.has('size')) {\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-file-size\\\"\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = formatSize(file.get('size'))) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"g-file-actions-container\\\"\"+pug.attr(\"file-cid\", file.cid, true, true)) + \"\\u003E\";\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\nif (parentItem && parentItem.get('_accessLevel') >= AccessType.WRITE) {\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-update-info\\\" title=\\\"Edit file info\\\"\\u003E\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-edit\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-update-contents\\\" title=\\\"Replace file contents\\\"\\u003E\";\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-upload\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-delete-file\\\" title=\\\"Delete file\\\"\\u003E\";\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-cancel\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fli\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index0 in $$obj) {\n $$l++;\n var file = $$obj[pug_index0];\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + \"\\u003Cli class=\\\"g-file-list-entry\\\"\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"g-file-list-link\\\"\"+pug.attr(\"cid\", file.cid, true, true)+\" title=\\\"Download file\\\"\"+pug.attr(\"target\", file.get('linkUrl') ? '_blank' : '_self', true, true)+pug.attr(\"href\", file.downloadUrl(), true, true)+\" rel=\\\"noopener noreferrer\\\"\") + \"\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\nif (file.get('linkUrl')) {\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-link\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"g-file-name\\\"\\u003E\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = file.name()) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-link-ext\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n}\nelse {\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-doc-inv\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = file.name()) ? \"\" : pug_interp));\n}\npug_html = pug_html + \"\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"g-view-inline\\\"\"+\" title=\\\"View in browser\\\" target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\"\"+pug.attr(\"href\", file.downloadUrl({contentDisposition: 'inline'}), true, true)) + \"\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-eye\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"g-show-info\\\"\"+pug.attr(\"file-cid\", file.cid, true, true)+\" title=\\\"Show info\\\"\") + \"\\u003E\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-info\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\nif (file.has('size')) {\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-file-size\\\"\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = formatSize(file.get('size'))) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"g-file-actions-container\\\"\"+pug.attr(\"file-cid\", file.cid, true, true)) + \"\\u003E\";\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\nif (parentItem && parentItem.get('_accessLevel') >= AccessType.WRITE) {\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-update-info\\\" title=\\\"Edit file info\\\"\\u003E\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-edit\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-update-contents\\\" title=\\\"Replace file contents\\\"\\u003E\";\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-upload\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-delete-file\\\" title=\\\"Delete file\\\"\\u003E\";\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-cancel\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fli\\u003E\";\n }\n }\n}).call(this);\n\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\nif (hasMore) {\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + \"\\u003Cli class=\\\"g-show-more\\\"\\u003E\";\n;pug_debug_line = 31;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-show-more-files\\\"\\u003E\";\n;pug_debug_line = 32;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-level-down\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FfileList.pug\";\npug_html = pug_html + \"Show more files...\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Ful\\u003E\";}.call(this,\"AccessType\" in locals_for_with?locals_for_with.AccessType:typeof AccessType!==\"undefined\"?AccessType:undefined,\"files\" in locals_for_with?locals_for_with.files:typeof files!==\"undefined\"?files:undefined,\"formatSize\" in locals_for_with?locals_for_with.formatSize:typeof formatSize!==\"undefined\"?formatSize:undefined,\"hasMore\" in locals_for_with?locals_for_with.hasMore:typeof hasMore!==\"undefined\"?hasMore:undefined,\"parentItem\" in locals_for_with?locals_for_with.parentItem:typeof parentItem!==\"undefined\"?parentItem:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/fileList.pug","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemBreadcrumb.pug\":\"ol.breadcrumb\\n each parent in parentChain\\n li\\n a.g-item-breadcrumb-link(data-id=parent.object._id, data-type=parent.type)\\n if (parent.type === \\\"user\\\")\\n i.icon-user\\n = parent.object.login\\n else if (parent.type === \\\"collection\\\")\\n i.icon-sitemap\\n = parent.object.name\\n else\\n = parent.object.name\\n\\n .pull-right\\n a.g-hierarchy-level-up(title=\\\"Go to parent folder\\\")\\n i.icon-level-up\\n\"};\n;var locals_for_with = (locals || {});(function (parentChain) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Col class=\\\"breadcrumb\\\"\\u003E\";\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemBreadcrumb.pug\";\n// iterate parentChain\n;(function(){\n var $$obj = parentChain;\n if ('number' == typeof $$obj.length) {\n for (var pug_index0 = 0, $$l = $$obj.length; pug_index0 < $$l; pug_index0++) {\n var parent = $$obj[pug_index0];\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Cli\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"g-item-breadcrumb-link\\\"\"+pug.attr(\"data-id\", parent.object._id, true, true)+pug.attr(\"data-type\", parent.type, true, true)) + \"\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemBreadcrumb.pug\";\nif ((parent.type === \"user\")) {\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-user\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemBreadcrumb.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = parent.object.login) ? \"\" : pug_interp));\n}\nelse\nif ((parent.type === \"collection\")) {\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-sitemap\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemBreadcrumb.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = parent.object.name) ? \"\" : pug_interp));\n}\nelse {\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemBreadcrumb.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = parent.object.name) ? \"\" : pug_interp));\n}\npug_html = pug_html + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index0 in $$obj) {\n $$l++;\n var parent = $$obj[pug_index0];\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Cli\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"g-item-breadcrumb-link\\\"\"+pug.attr(\"data-id\", parent.object._id, true, true)+pug.attr(\"data-type\", parent.type, true, true)) + \"\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemBreadcrumb.pug\";\nif ((parent.type === \"user\")) {\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-user\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemBreadcrumb.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = parent.object.login) ? \"\" : pug_interp));\n}\nelse\nif ((parent.type === \"collection\")) {\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-sitemap\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemBreadcrumb.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = parent.object.name) ? \"\" : pug_interp));\n}\nelse {\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemBreadcrumb.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = parent.object.name) ? \"\" : pug_interp));\n}\npug_html = pug_html + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n }\n }\n}).call(this);\n\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"pull-right\\\"\\u003E\";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-hierarchy-level-up\\\" title=\\\"Go to parent folder\\\"\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FitemBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-level-up\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fol\\u003E\";}.call(this,\"parentChain\" in locals_for_with?locals_for_with.parentChain:typeof parentChain!==\"undefined\"?parentChain:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/itemBreadcrumb.pug","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\":\".g-item-breadcrumb-container\\n.g-item-header\\n\\n .pull-right\\n if (accessLevel \\u003E= AccessType.WRITE)\\n button.g-upload-into-item.btn.btn-sm.btn-success(title=\\\"Upload files into item\\\")\\n i.icon-upload\\n .btn-group\\n button.g-item-actions-button.btn.btn-sm.btn-default.dropdown-toggle(\\n data-toggle=\\\"dropdown\\\", title=\\\"Item actions\\\")\\n i.icon-doc-text-inv\\n | Actions\\n i.icon-down-dir\\n ul.g-item-actions-menu.dropdown-menu.pull-right(role=\\\"menu\\\")\\n li(role=\\\"presentation\\\")\\n a.g-download-item(role=\\\"menuitem\\\", href=item.downloadUrl())\\n i.icon-download\\n | Download item\\n if (accessLevel \\u003E= AccessType.WRITE)\\n li.divider(role=\\\"presentation\\\")\\n li(role=\\\"presentation\\\")\\n a.g-edit-item(role=\\\"menuitem\\\")\\n i.icon-edit\\n | Edit item\\n li.divider(role=\\\"presentation\\\")\\n li(role=\\\"presentation\\\")\\n a.g-delete-item(role=\\\"menuitem\\\")\\n i.icon-trash\\n | Delete item\\n\\n .g-item-name.g-body-title= item.name()\\n\\n.g-item-description!= renderMarkdown(item.get('description'))\\n\\n.g-item-info\\n .g-item-info-header\\n i.icon-info\\n | Info\\n .g-item-size.g-info-list-entry\\n i.icon-hdd\\n if item.get('size') \\u003C 1024\\n | #{item.get('size')} bytes\\n else\\n | #{formatSize(item.get('size'))} (#{item.get('size')} bytes)\\n .g-item-created.g-info-list-entry\\n i.icon-clock\\n | Created on #{formatDate(item.get('created'), DATE_SECOND)}\\n .g-item-updated.g-info-list-entry\\n i.icon-clock\\n | Updated on #{formatDate(item.get('updated'), DATE_SECOND)}\\n .g-item-id.g-info-list-entry\\n i.icon-share\\n | Unique ID: #{item.id}\\n\\n.g-item-metadata\\n\\n.g-item-files\\n .g-item-files-header\\n i.icon-docs\\n | Files & links\\n .g-item-files-container\\n\"};\n;var locals_for_with = (locals || {});(function (AccessType, DATE_SECOND, accessLevel, formatDate, formatSize, item, renderMarkdown) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-item-breadcrumb-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-item-header\\\"\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"pull-right\\\"\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\nif ((accessLevel >= AccessType.WRITE)) {\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"g-upload-into-item btn btn-sm btn-success\\\" title=\\\"Upload files into item\\\"\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-upload\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fbutton\\u003E\";\n}\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"btn-group\\\"\\u003E\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"g-item-actions-button btn btn-sm btn-default dropdown-toggle\\\" data-toggle=\\\"dropdown\\\" title=\\\"Item actions\\\"\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-doc-text-inv\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \" Actions\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-down-dir\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fbutton\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"\\u003Cul class=\\\"g-item-actions-menu dropdown-menu pull-right\\\" role=\\\"menu\\\"\\u003E\";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"\\u003Cli role=\\\"presentation\\\"\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"g-download-item\\\"\"+\" role=\\\"menuitem\\\"\"+pug.attr(\"href\", item.downloadUrl(), true, true)) + \"\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-download\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"Download item\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\nif ((accessLevel >= AccessType.WRITE)) {\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"\\u003Cli class=\\\"divider\\\" role=\\\"presentation\\\"\\u003E\\u003C\\u002Fli\\u003E\";\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"\\u003Cli role=\\\"presentation\\\"\\u003E\";\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-edit-item\\\" role=\\\"menuitem\\\"\\u003E\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-edit\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"Edit item\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"\\u003Cli class=\\\"divider\\\" role=\\\"presentation\\\"\\u003E\\u003C\\u002Fli\\u003E\";\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"\\u003Cli role=\\\"presentation\\\"\\u003E\";\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-delete-item\\\" role=\\\"menuitem\\\"\\u003E\";\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-trash\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"Delete item\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Ful\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 31;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-item-name g-body-title\\\"\\u003E\";\n;pug_debug_line = 31;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = item.name()) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-item-description\\\"\\u003E\";\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + (null == (pug_interp = renderMarkdown(item.get('description'))) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 35;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-item-info\\\"\\u003E\";\n;pug_debug_line = 36;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-item-info-header\\\"\\u003E\";\n;pug_debug_line = 37;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-info\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 38;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"Info\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 39;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-item-size g-info-list-entry\\\"\\u003E\";\n;pug_debug_line = 40;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-hdd\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 41;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\nif (item.get('size') < 1024) {\n;pug_debug_line = 42;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = item.get('size')) ? \"\" : pug_interp));\n;pug_debug_line = 42;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \" bytes\";\n}\nelse {\n;pug_debug_line = 44;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = formatSize(item.get('size'))) ? \"\" : pug_interp));\n;pug_debug_line = 44;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \" (\";\n;pug_debug_line = 44;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = item.get('size')) ? \"\" : pug_interp));\n;pug_debug_line = 44;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \" bytes)\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 45;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-item-created g-info-list-entry\\\"\\u003E\";\n;pug_debug_line = 46;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-clock\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 47;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"Created on \";\n;pug_debug_line = 47;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = formatDate(item.get('created'), DATE_SECOND)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 48;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-item-updated g-info-list-entry\\\"\\u003E\";\n;pug_debug_line = 49;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-clock\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 50;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"Updated on \";\n;pug_debug_line = 50;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = formatDate(item.get('updated'), DATE_SECOND)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 51;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-item-id g-info-list-entry\\\"\\u003E\";\n;pug_debug_line = 52;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-share\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 53;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"Unique ID: \";\n;pug_debug_line = 53;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = item.id) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 55;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-item-metadata\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 57;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-item-files\\\"\\u003E\";\n;pug_debug_line = 58;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-item-files-header\\\"\\u003E\";\n;pug_debug_line = 59;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-docs\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 60;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \" Files & links\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 61;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FitemPage.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-item-files-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"AccessType\" in locals_for_with?locals_for_with.AccessType:typeof AccessType!==\"undefined\"?AccessType:undefined,\"DATE_SECOND\" in locals_for_with?locals_for_with.DATE_SECOND:typeof DATE_SECOND!==\"undefined\"?DATE_SECOND:undefined,\"accessLevel\" in locals_for_with?locals_for_with.accessLevel:typeof accessLevel!==\"undefined\"?accessLevel:undefined,\"formatDate\" in locals_for_with?locals_for_with.formatDate:typeof formatDate!==\"undefined\"?formatDate:undefined,\"formatSize\" in locals_for_with?locals_for_with.formatSize:typeof formatSize!==\"undefined\"?formatSize:undefined,\"item\" in locals_for_with?locals_for_with.item:typeof item!==\"undefined\"?item:undefined,\"renderMarkdown\" in locals_for_with?locals_for_with.renderMarkdown:typeof renderMarkdown!==\"undefined\"?renderMarkdown:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/body/itemPage.pug","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/stylesheets/body/itemPage.styl\n// module id = 436\n// module chunks = 0","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\":\".g-body-title Plugins\\n.g-plugin-list-container\\n each plugin in allPlugins\\n - var experimental = plugin.value.version ? plugin.value.version.indexOf('0.') === 0 : true\\n .g-plugin-list-item(data-name=plugin.key)\\n .g-plugin-name()\\n if plugin.value.url\\n a(href=plugin.value.url, target='_blank')= plugin.value.name\\n else\\n span= plugin.value.name\\n if plugin.value.version\\n span.g-plugin-version Version #{plugin.value.version}\\n if experimental\\n span.g-plugin-list-item-notice.g-plugin-list-item-experimental-notice(\\n title=\\\"WARNING: this plugin is an alpha version and is subject \\\" +\\n \\\"to breaking changes; use at your own risk.\\\") Experimental\\n if plugin.value.configRoute\\n a.g-plugin-config-link(g-route=plugin.value.configRoute, title=\\\"Configure Plugin\\\")\\n i.icon-cog\\n .g-plugin-description= plugin.value.description\\n\"};\n;var locals_for_with = (locals || {});(function (allPlugins) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-body-title\\\"\\u003E\";\n;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\";\npug_html = pug_html + \"Plugins\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-plugin-list-container\\\"\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\";\n// iterate allPlugins\n;(function(){\n var $$obj = allPlugins;\n if ('number' == typeof $$obj.length) {\n for (var pug_index0 = 0, $$l = $$obj.length; pug_index0 < $$l; pug_index0++) {\n var plugin = $$obj[pug_index0];\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\";\nvar experimental = plugin.value.version ? plugin.value.version.indexOf('0.') === 0 : true\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\";\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"g-plugin-list-item\\\"\"+pug.attr(\"data-name\", plugin.key, true, true)) + \"\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-plugin-name\\\"\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\";\nif (plugin.value.url) {\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\";\npug_html = pug_html + \"\\u003Ca\" + (pug.attr(\"href\", plugin.value.url, true, true)+\" target=\\\"_blank\\\"\") + \"\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = plugin.value.name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\nelse {\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = plugin.value.name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\";\nif (plugin.value.version) {\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"g-plugin-version\\\"\\u003E\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\";\npug_html = pug_html + \"Version \";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = plugin.value.version) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\";\nif (experimental) {\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"g-plugin-list-item-notice g-plugin-list-item-experimental-notice\\\" title=\\\"WARNING: this plugin is an alpha version and is subject to breaking changes; use at your own risk.\\\"\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\";\npug_html = pug_html + \"Experimental\\u003C\\u002Fspan\\u003E\";\n}\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\";\nif (plugin.value.configRoute) {\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\";\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"g-plugin-config-link\\\"\"+pug.attr(\"g-route\", plugin.value.configRoute, true, true)+\" title=\\\"Configure Plugin\\\"\") + \"\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-cog\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-plugin-description\\\"\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = plugin.value.description) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index0 in $$obj) {\n $$l++;\n var plugin = $$obj[pug_index0];\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\";\nvar experimental = plugin.value.version ? plugin.value.version.indexOf('0.') === 0 : true\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\";\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"g-plugin-list-item\\\"\"+pug.attr(\"data-name\", plugin.key, true, true)) + \"\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-plugin-name\\\"\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\";\nif (plugin.value.url) {\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\";\npug_html = pug_html + \"\\u003Ca\" + (pug.attr(\"href\", plugin.value.url, true, true)+\" target=\\\"_blank\\\"\") + \"\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = plugin.value.name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\nelse {\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = plugin.value.name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\";\nif (plugin.value.version) {\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"g-plugin-version\\\"\\u003E\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\";\npug_html = pug_html + \"Version \";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = plugin.value.version) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\";\nif (experimental) {\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"g-plugin-list-item-notice g-plugin-list-item-experimental-notice\\\" title=\\\"WARNING: this plugin is an alpha version and is subject to breaking changes; use at your own risk.\\\"\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\";\npug_html = pug_html + \"Experimental\\u003C\\u002Fspan\\u003E\";\n}\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\";\nif (plugin.value.configRoute) {\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\";\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"g-plugin-config-link\\\"\"+pug.attr(\"g-route\", plugin.value.configRoute, true, true)+\" title=\\\"Configure Plugin\\\"\") + \"\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-cog\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-plugin-description\\\"\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002Fplugins.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = plugin.value.description) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n }\n }\n}).call(this);\n\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"allPlugins\" in locals_for_with?locals_for_with.allPlugins:typeof allPlugins!==\"undefined\"?allPlugins:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/body/plugins.pug","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/stylesheets/body/plugins.styl\n// module id = 438\n// module chunks = 0","import AccessControlledModel from '@girder/core/models/AccessControlledModel';\nimport { restRequest } from '@girder/core/rest';\n\nvar CollectionCreationPolicyModel = AccessControlledModel.extend({\n resourceName: 'system/setting/collection_creation_policy',\n fetchAccess: function () {\n return restRequest({\n url: `${this.resourceName}/access`,\n method: 'GET'\n }).done((resp) => {\n this.set('access', resp);\n this.trigger('g:accessFetched');\n return resp;\n }).fail((err) => {\n this.trigger('g:error', err);\n });\n }\n});\n\nexport default CollectionCreationPolicyModel;\n\n\n\n// WEBPACK FOOTER //\n// ./src/models/CollectionCreationPolicyModel.js","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\":\".g-body-title System configuration\\nform.g-settings-form(role=\\\"form\\\")\\n .g-settings-form-container\\n h4 Instance Branding\\n .form-group\\n label(for=\\\"g-core-brand-name\\\") Brand Name\\n input#g-core-brand-name.form-control.input-sm(\\n type=\\\"text\\\", value=settings['core.brand_name'] || '',\\n title=\\\"The brand name of the application.\\\")\\n .form-group\\n label(for=\\\"g-core-contact-email-address\\\") Contact email address\\n input#g-core-contact-email-address.form-control.input-sm(\\n type=\\\"text\\\", value=settings['core.contact_email_address'] || '',\\n title=\\\"The contact email address for users to obtain support with this instance.\\\")\\n .form-group\\n label(for=\\\"g-core-banner-color\\\") Banner Color\\n #g-core-banner-color-container\\n input#g-core-banner-color.form-control.input-sm(\\n type=\\\"color\\\", value=settings['core.banner_color'],\\n title=\\\"The banner color of the application.\\\")\\n button#g-core-banner-default-color.form-control.input-sm(\\n type=\\\"button\\\", title=\\\"Default color\\\") default\\n .form-group\\n label(for=\\\"g-core-privacy-notice\\\") Privacy Notice Link\\n input#g-core-privacy-notice.form-control.input-sm(\\n type=\\\"text\\\", value=settings['core.privacy_notice'] || '',\\n title=\\\"The privacy notice link.\\\")\\n .form-group\\n label(for=\\\"g-core-cookie-lifetime\\\") Cookie duration (days)\\n input#g-core-cookie-lifetime.form-control.input-sm(\\n type=\\\"text\\\", value=settings['core.cookie_lifetime'] || '',\\n title=\\\"How long users will stay logged in.\\\")\\n .g-settings-form-container\\n h4 Administrative Policy\\n .form-group\\n label(for=\\\"g-core-registration-policy\\\") Registration policy\\n select#g-core-registration-policy.form-control.input-sm\\n option(value=\\\"open\\\",\\n selected=(settings['core.registration_policy'] === \\\"open\\\")) Open registration\\n option(value=\\\"closed\\\",\\n selected=(settings['core.registration_policy'] === \\\"closed\\\")) Closed registration\\n option(value=\\\"approve\\\",\\n selected=(settings['core.registration_policy'] === \\\"approve\\\")) Admin approval required\\n .form-group\\n label(for=\\\"g-core-email-verification\\\") Email verification\\n select#g-core-email-verification.form-control.input-sm\\n option(value=\\\"required\\\",\\n selected=(settings['core.email_verification'] === \\\"required\\\")) Required\\n option(value=\\\"optional\\\",\\n selected=(settings['core.email_verification'] === \\\"optional\\\")) Optional\\n option(value=\\\"disabled\\\",\\n selected=(settings['core.email_verification'] === \\\"disabled\\\")) Disabled\\n .form-group\\n label(for=\\\"g-core-add-to-group-policy\\\") Allow members to be directly added to groups\\n select#g-core-add-to-group-policy.form-control.input-sm\\n option(value=\\\"never\\\",\\n selected=(settings['core.add_to_group_policy'] === \\\"never\\\"))\\n | No, members must be invited and accept invitations\\n option(value=\\\"noadmin\\\",\\n selected=(settings['core.add_to_group_policy'] === \\\"noadmin\\\"))\\n | No, except for group administrators when enabled per group\\n option(value=\\\"nomod\\\",\\n selected=(settings['core.add_to_group_policy'] === \\\"nomod\\\"))\\n | No, except for group administrators and moderators when enabled per group\\n option(value=\\\"yesadmin\\\",\\n selected=(settings['core.add_to_group_policy'] === \\\"yesadmin\\\"))\\n | Yes, by group administrators unless disabled per group\\n option(value=\\\"yesmod\\\",\\n selected=(settings['core.add_to_group_policy'] === \\\"yesmod\\\"))\\n | Yes, by group administrators and moderators unless disabled per group\\n .g-collection-create-policy-container\\n label Collection creation policy\\n p.\\n Allow additional users and groups to create collections.\\n input.g-setting-switch(type=\\\"checkbox\\\",\\n checked=\\\"checked\\\", data-size=\\\"mini\\\", data-on-color=\\\"primary\\\")\\n .access-widget-container\\n textarea#g-core-collection-create-policy.hide\\n = JSON.stringify(settings['core.collection_create_policy'])\\n .form-group\\n label(for=\\\"g-core-user-default-folders\\\") Create default folders for new users\\n select#g-core-user-default-folders.form-control.input-sm\\n option(value=\\\"none\\\",\\n selected=(settings['core.user_default_folders'] === \\\"none\\\")) No\\n option(value=\\\"public_private\\\",\\n selected=(settings['core.user_default_folders'] === \\\"public_private\\\")) Yes, \\\"Public\\\" and \\\"Private\\\"\\n .form-group\\n .checkbox\\n label(for=\\\"g-core-api-keys\\\")\\n input#g-core-api-keys(type=\\\"checkbox\\\", checked=settings['core.api_keys'])\\n | Enable API keys\\n .form-group\\n .checkbox\\n label(for=\\\"g-core-enable-password-login\\\")\\n input#g-core-enable-password-login(\\n type=\\\"checkbox\\\", checked=settings['core.enable_password_login'])\\n | Enable password login\\n .g-settings-form-container\\n h4 Email Creation\\n .form-group\\n label(for=\\\"g-core-email-from-address\\\") Email from address\\n input#g-core-email-from-address.form-control.input-sm(\\n type=\\\"text\\\", value=settings['core.email_from_address'] || '',\\n title=\\\"The email address the system will use when sending emails.\\\")\\n .form-group\\n label(for=\\\"g-core-email-host\\\") Email host\\n input#g-core-email-host.form-control.input-sm(\\n type=\\\"text\\\", value=settings['core.email_host'] || '',\\n title=\\\"The host email server that is shown as a link in the footer of emails.\\\")\\n .g-settings-form-container\\n h4 Email Delivery\\n .form-group\\n label(for=\\\"g-core-smtp-host\\\") SMTP host\\n input#g-core-smtp-host.form-control.input-sm(\\n type=\\\"text\\\", value=settings['core.smtp_host'] || '',\\n title=\\\"The hostname of the SMTP server used to send emails.\\\")\\n .form-group\\n label(for=\\\"g-core-smtp-port\\\") SMTP port\\n input#g-core-smtp-port.form-control.input-sm(\\n type=\\\"text\\\", value=settings['core.smtp.port'] || '',\\n title=\\\"The port number of the SMTP server used to send emails.\\\")\\n .form-group\\n label(for=\\\"g-core-smtp-encryption\\\") SMTP encryption\\n select#g-core-smtp-encryption.form-control.input-sm\\n option(value=\\\"none\\\",\\n selected=(settings['core.smtp.encryption'] === \\\"none\\\")) None\\n option(value=\\\"starttls\\\",\\n selected=(settings['core.smtp.encryption'] === \\\"starttls\\\")) Use STARTTLS\\n option(value=\\\"ssl\\\",\\n selected=(settings['core.smtp.encryption'] === \\\"ssl\\\")) Use SSL\\u002FTLS\\n .form-group\\n label(for=\\\"g-core-smtp-username\\\") SMTP username\\n input#g-core-smtp-username.form-control.input-sm(\\n type=\\\"text\\\", value=settings['core.smtp.username'] || '',\\n title=\\\"The username, if any, used to authenticate to the SMTP server used to send emails.\\\")\\n .form-group\\n label(for=\\\"g-core-smtp-password\\\") SMTP password\\n input#g-core-smtp-password.form-control.input-sm(\\n type=\\\"password\\\", value=settings['core.smtp.password'] || '',\\n title=\\\"The password, if any, used to authenticate to the SMTP server used to send emails.\\\")\\n\\n .g-settings-form-container\\n h4 Routing\\n p.\\n Altering routes requires a restart of the Girder server to take effect.\\n .g-settings-form-container\\n h5 Core Routes\\n label core_girder\\n input.g-core-route-table.form-control.input-sm(\\n type=\\\"text\\\",\\n value=routes['core_girder'] || '',\\n data-webroot-name=\\\"core_girder\\\",\\n title=\\\"The path to place core_girder.\\\")\\n if routeKeys.length \\u003E 2\\n .form-group\\n h5 Other Routes\\n each name in routeKeys.slice(2)\\n label= name\\n input.g-core-route-table.form-control.input-sm(\\n type=\\\"text\\\",\\n value=routes[name] || '',\\n data-webroot-name=name,\\n title=\\\"The path to place ${name}.\\\")\\n #g-configuration-accordion.panel-group\\n .panel.panel-default\\n .panel-heading(data-toggle=\\\"collapse\\\",\\n data-parent=\\\"#g-configuration-accordion\\\",\\n data-target=\\\"#g-advanced-settings-tab\\\")\\n .panel-title\\n a\\n b Advanced Settings\\n #g-advanced-settings-tab.panel-collapse.collapse\\n .panel-body\\n p These settings should only be changed if you are certain of what you are doing.\\n .form-group\\n label(for=\\\"g-core-server-root\\\") Server root URL\\n input#g-core-server-root.form-control.input-sm(\\n type=\\\"text\\\", value=settings['core.server_root'] || '',\\n placeholder='Detect automatically')\\n .form-group\\n label(for=\\\"g-core-upload-minimum-chunk-size\\\") Upload minimum chunk size (bytes)\\n br\\n span This applies to Filesystem and GridFS assetstores.\\n input#g-core-upload-minimum-chunk-size.form-control.input-sm(\\n type=\\\"text\\\", value=settings['core.upload_minimum_chunk_size'] || '',\\n title=\\\"For large files, the minimum size of all but the last chunk.\\\")\\n .form-group\\n label Server Notification Stream\\n br\\n span Disabling this may improve server performance with many concurrent web client users.\\n .checkbox\\n label(for=\\\"g-core-enable-notification-stream\\\")\\n input#g-core-enable-notification-stream(\\n type=\\\"checkbox\\\", checked=(settings['core.enable_notification_stream']))\\n | Enabled\\n .g-settings-form-container\\n h4 CORS\\n p.\\n CORS (Cross-origin resource sharing) allows access from other websites.\\n These settings are described in\\n detail #[a(href=\\\"http:\\u002F\\u002Fgirder.readthedocs.org\\u002Fen\\u002Flatest\\u002Fsecurity.html#cors-cross-origin-resource-sharing\\\", target=\\\"_blank\\\") here].\\n .form-group\\n label(for=\\\"g-core-cors-allow-origin\\\") CORS Allowed Origins\\n input#g-core-cors-allow-origin.form-control.input-sm(\\n type=\\\"text\\\", value=settings['core.cors.allow_origin'] || '',\\n title=\\\"A comma-separated list of allowed base URLs that can make cross-site requests. This may include *.\\\")\\n .form-group\\n label(for=\\\"g-core-cors-allow-methods\\\") CORS Allowed Methods\\n input#g-core-cors-allow-methods.form-control.input-sm(\\n type=\\\"text\\\", value=settings['core.cors.allow_methods'] || '',\\n placeholder=\\\"Default: allow all methods\\\",\\n title=\\\"A comma-separated list of allowed methods\\\")\\n .form-group\\n label(for=\\\"g-core-cors-allow-headers\\\") CORS Allowed Headers\\n input#g-core-cors-allow-headers.form-control.input-sm(\\n type=\\\"text\\\", value=settings['core.cors.allow_headers'] || '',\\n title=\\\"A comma-separated list of allowed headers.\\\")\\n p\\n .form-group\\n button.g-submit-settings.btn.btn-default.btn-sm #[i.icon-ok] Save\\n #g-settings-error-message.g-validation-failed-message\\n\"};\n;var locals_for_with = (locals || {});(function (JSON, routeKeys, routes, settings) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-body-title\\\"\\u003E\";\n;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"System configuration\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cform class=\\\"g-settings-form\\\" role=\\\"form\\\"\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-settings-form-container\\\"\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Ch4\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"Instance Branding\\u003C\\u002Fh4\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Clabel for=\\\"g-core-brand-name\\\"\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"Brand Name\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"form-control input-sm\\\"\"+\" id=\\\"g-core-brand-name\\\" type=\\\"text\\\"\"+pug.attr(\"value\", settings['core.brand_name'] || '', true, true)+\" title=\\\"The brand name of the application.\\\"\") + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Clabel for=\\\"g-core-contact-email-address\\\"\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"Contact email address\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"form-control input-sm\\\"\"+\" id=\\\"g-core-contact-email-address\\\" type=\\\"text\\\"\"+pug.attr(\"value\", settings['core.contact_email_address'] || '', true, true)+\" title=\\\"The contact email address for users to obtain support with this instance.\\\"\") + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Clabel for=\\\"g-core-banner-color\\\"\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"Banner Color\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv id=\\\"g-core-banner-color-container\\\"\\u003E\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"form-control input-sm\\\"\"+\" id=\\\"g-core-banner-color\\\" type=\\\"color\\\"\"+pug.attr(\"value\", settings['core.banner_color'], true, true)+\" title=\\\"The banner color of the application.\\\"\") + \"\\u003E\";\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"form-control input-sm\\\" id=\\\"g-core-banner-default-color\\\" type=\\\"button\\\" title=\\\"Default color\\\"\\u003E\";\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"default\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Clabel for=\\\"g-core-privacy-notice\\\"\\u003E\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"Privacy Notice Link\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"form-control input-sm\\\"\"+\" id=\\\"g-core-privacy-notice\\\" type=\\\"text\\\"\"+pug.attr(\"value\", settings['core.privacy_notice'] || '', true, true)+\" title=\\\"The privacy notice link.\\\"\") + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Clabel for=\\\"g-core-cookie-lifetime\\\"\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"Cookie duration (days)\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"form-control input-sm\\\"\"+\" id=\\\"g-core-cookie-lifetime\\\" type=\\\"text\\\"\"+pug.attr(\"value\", settings['core.cookie_lifetime'] || '', true, true)+\" title=\\\"How long users will stay logged in.\\\"\") + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-settings-form-container\\\"\\u003E\";\n;pug_debug_line = 34;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Ch4\\u003E\";\n;pug_debug_line = 34;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"Administrative Policy\\u003C\\u002Fh4\\u003E\";\n;pug_debug_line = 35;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 36;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Clabel for=\\\"g-core-registration-policy\\\"\\u003E\";\n;pug_debug_line = 36;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"Registration policy\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 37;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cselect class=\\\"form-control input-sm\\\" id=\\\"g-core-registration-policy\\\"\\u003E\";\n;pug_debug_line = 38;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Coption\" + (\" value=\\\"open\\\"\"+pug.attr(\"selected\", (settings['core.registration_policy'] === \"open\"), true, true)) + \"\\u003E\";\n;pug_debug_line = 39;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"Open registration\\u003C\\u002Foption\\u003E\";\n;pug_debug_line = 40;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Coption\" + (\" value=\\\"closed\\\"\"+pug.attr(\"selected\", (settings['core.registration_policy'] === \"closed\"), true, true)) + \"\\u003E\";\n;pug_debug_line = 41;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"Closed registration\\u003C\\u002Foption\\u003E\";\n;pug_debug_line = 42;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Coption\" + (\" value=\\\"approve\\\"\"+pug.attr(\"selected\", (settings['core.registration_policy'] === \"approve\"), true, true)) + \"\\u003E\";\n;pug_debug_line = 43;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"Admin approval required\\u003C\\u002Foption\\u003E\\u003C\\u002Fselect\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 44;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 45;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Clabel for=\\\"g-core-email-verification\\\"\\u003E\";\n;pug_debug_line = 45;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"Email verification\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 46;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cselect class=\\\"form-control input-sm\\\" id=\\\"g-core-email-verification\\\"\\u003E\";\n;pug_debug_line = 47;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Coption\" + (\" value=\\\"required\\\"\"+pug.attr(\"selected\", (settings['core.email_verification'] === \"required\"), true, true)) + \"\\u003E\";\n;pug_debug_line = 48;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"Required\\u003C\\u002Foption\\u003E\";\n;pug_debug_line = 49;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Coption\" + (\" value=\\\"optional\\\"\"+pug.attr(\"selected\", (settings['core.email_verification'] === \"optional\"), true, true)) + \"\\u003E\";\n;pug_debug_line = 50;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"Optional\\u003C\\u002Foption\\u003E\";\n;pug_debug_line = 51;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Coption\" + (\" value=\\\"disabled\\\"\"+pug.attr(\"selected\", (settings['core.email_verification'] === \"disabled\"), true, true)) + \"\\u003E\";\n;pug_debug_line = 52;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"Disabled\\u003C\\u002Foption\\u003E\\u003C\\u002Fselect\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 53;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 54;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Clabel for=\\\"g-core-add-to-group-policy\\\"\\u003E\";\n;pug_debug_line = 54;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"Allow members to be directly added to groups\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 55;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cselect class=\\\"form-control input-sm\\\" id=\\\"g-core-add-to-group-policy\\\"\\u003E\";\n;pug_debug_line = 56;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Coption\" + (\" value=\\\"never\\\"\"+pug.attr(\"selected\", (settings['core.add_to_group_policy'] === \"never\"), true, true)) + \"\\u003E\";\n;pug_debug_line = 58;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"No, members must be invited and accept invitations\\u003C\\u002Foption\\u003E\";\n;pug_debug_line = 59;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Coption\" + (\" value=\\\"noadmin\\\"\"+pug.attr(\"selected\", (settings['core.add_to_group_policy'] === \"noadmin\"), true, true)) + \"\\u003E\";\n;pug_debug_line = 61;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"No, except for group administrators when enabled per group\\u003C\\u002Foption\\u003E\";\n;pug_debug_line = 62;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Coption\" + (\" value=\\\"nomod\\\"\"+pug.attr(\"selected\", (settings['core.add_to_group_policy'] === \"nomod\"), true, true)) + \"\\u003E\";\n;pug_debug_line = 64;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"No, except for group administrators and moderators when enabled per group\\u003C\\u002Foption\\u003E\";\n;pug_debug_line = 65;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Coption\" + (\" value=\\\"yesadmin\\\"\"+pug.attr(\"selected\", (settings['core.add_to_group_policy'] === \"yesadmin\"), true, true)) + \"\\u003E\";\n;pug_debug_line = 67;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"Yes, by group administrators unless disabled per group\\u003C\\u002Foption\\u003E\";\n;pug_debug_line = 68;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Coption\" + (\" value=\\\"yesmod\\\"\"+pug.attr(\"selected\", (settings['core.add_to_group_policy'] === \"yesmod\"), true, true)) + \"\\u003E\";\n;pug_debug_line = 70;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"Yes, by group administrators and moderators unless disabled per group\\u003C\\u002Foption\\u003E\\u003C\\u002Fselect\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 71;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-collection-create-policy-container\\\"\\u003E\";\n;pug_debug_line = 72;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Clabel\\u003E\";\n;pug_debug_line = 72;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"Collection creation policy\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 73;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cp\\u003E\";\n;pug_debug_line = 74;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"Allow additional users and groups to create collections.\\u003C\\u002Fp\\u003E\";\n;pug_debug_line = 75;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cinput class=\\\"g-setting-switch\\\" type=\\\"checkbox\\\" checked=\\\"checked\\\" data-size=\\\"mini\\\" data-on-color=\\\"primary\\\"\\u003E\";\n;pug_debug_line = 77;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"access-widget-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 78;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Ctextarea class=\\\"hide\\\" id=\\\"g-core-collection-create-policy\\\"\\u003E\";\n;pug_debug_line = 79;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = JSON.stringify(settings['core.collection_create_policy'])) ? \"\" : pug_interp)) + \"\\u003C\\u002Ftextarea\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 80;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 81;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Clabel for=\\\"g-core-user-default-folders\\\"\\u003E\";\n;pug_debug_line = 81;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"Create default folders for new users\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 82;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cselect class=\\\"form-control input-sm\\\" id=\\\"g-core-user-default-folders\\\"\\u003E\";\n;pug_debug_line = 83;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Coption\" + (\" value=\\\"none\\\"\"+pug.attr(\"selected\", (settings['core.user_default_folders'] === \"none\"), true, true)) + \"\\u003E\";\n;pug_debug_line = 84;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"No\\u003C\\u002Foption\\u003E\";\n;pug_debug_line = 85;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Coption\" + (\" value=\\\"public_private\\\"\"+pug.attr(\"selected\", (settings['core.user_default_folders'] === \"public_private\"), true, true)) + \"\\u003E\";\n;pug_debug_line = 86;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"Yes, \\\"Public\\\" and \\\"Private\\\"\\u003C\\u002Foption\\u003E\\u003C\\u002Fselect\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 87;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 88;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"checkbox\\\"\\u003E\";\n;pug_debug_line = 89;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Clabel for=\\\"g-core-api-keys\\\"\\u003E\";\n;pug_debug_line = 90;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" id=\\\"g-core-api-keys\\\" type=\\\"checkbox\\\"\"+pug.attr(\"checked\", settings['core.api_keys'], true, true)) + \"\\u003E\";\n;pug_debug_line = 91;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"Enable API keys\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 92;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 93;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"checkbox\\\"\\u003E\";\n;pug_debug_line = 94;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Clabel for=\\\"g-core-enable-password-login\\\"\\u003E\";\n;pug_debug_line = 95;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" id=\\\"g-core-enable-password-login\\\" type=\\\"checkbox\\\"\"+pug.attr(\"checked\", settings['core.enable_password_login'], true, true)) + \"\\u003E\";\n;pug_debug_line = 97;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"Enable password login\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 98;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-settings-form-container\\\"\\u003E\";\n;pug_debug_line = 99;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Ch4\\u003E\";\n;pug_debug_line = 99;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"Email Creation\\u003C\\u002Fh4\\u003E\";\n;pug_debug_line = 100;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 101;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Clabel for=\\\"g-core-email-from-address\\\"\\u003E\";\n;pug_debug_line = 101;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"Email from address\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 102;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"form-control input-sm\\\"\"+\" id=\\\"g-core-email-from-address\\\" type=\\\"text\\\"\"+pug.attr(\"value\", settings['core.email_from_address'] || '', true, true)+\" title=\\\"The email address the system will use when sending emails.\\\"\") + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 105;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 106;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Clabel for=\\\"g-core-email-host\\\"\\u003E\";\n;pug_debug_line = 106;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"Email host\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 107;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"form-control input-sm\\\"\"+\" id=\\\"g-core-email-host\\\" type=\\\"text\\\"\"+pug.attr(\"value\", settings['core.email_host'] || '', true, true)+\" title=\\\"The host email server that is shown as a link in the footer of emails.\\\"\") + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 110;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-settings-form-container\\\"\\u003E\";\n;pug_debug_line = 111;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Ch4\\u003E\";\n;pug_debug_line = 111;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"Email Delivery\\u003C\\u002Fh4\\u003E\";\n;pug_debug_line = 112;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 113;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Clabel for=\\\"g-core-smtp-host\\\"\\u003E\";\n;pug_debug_line = 113;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"SMTP host\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 114;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"form-control input-sm\\\"\"+\" id=\\\"g-core-smtp-host\\\" type=\\\"text\\\"\"+pug.attr(\"value\", settings['core.smtp_host'] || '', true, true)+\" title=\\\"The hostname of the SMTP server used to send emails.\\\"\") + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 117;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 118;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Clabel for=\\\"g-core-smtp-port\\\"\\u003E\";\n;pug_debug_line = 118;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"SMTP port\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 119;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"form-control input-sm\\\"\"+\" id=\\\"g-core-smtp-port\\\" type=\\\"text\\\"\"+pug.attr(\"value\", settings['core.smtp.port'] || '', true, true)+\" title=\\\"The port number of the SMTP server used to send emails.\\\"\") + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 122;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 123;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Clabel for=\\\"g-core-smtp-encryption\\\"\\u003E\";\n;pug_debug_line = 123;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"SMTP encryption\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 124;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cselect class=\\\"form-control input-sm\\\" id=\\\"g-core-smtp-encryption\\\"\\u003E\";\n;pug_debug_line = 125;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Coption\" + (\" value=\\\"none\\\"\"+pug.attr(\"selected\", (settings['core.smtp.encryption'] === \"none\"), true, true)) + \"\\u003E\";\n;pug_debug_line = 126;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"None\\u003C\\u002Foption\\u003E\";\n;pug_debug_line = 127;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Coption\" + (\" value=\\\"starttls\\\"\"+pug.attr(\"selected\", (settings['core.smtp.encryption'] === \"starttls\"), true, true)) + \"\\u003E\";\n;pug_debug_line = 128;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"Use STARTTLS\\u003C\\u002Foption\\u003E\";\n;pug_debug_line = 129;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Coption\" + (\" value=\\\"ssl\\\"\"+pug.attr(\"selected\", (settings['core.smtp.encryption'] === \"ssl\"), true, true)) + \"\\u003E\";\n;pug_debug_line = 130;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"Use SSL\\u002FTLS\\u003C\\u002Foption\\u003E\\u003C\\u002Fselect\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 131;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 132;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Clabel for=\\\"g-core-smtp-username\\\"\\u003E\";\n;pug_debug_line = 132;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"SMTP username\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 133;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"form-control input-sm\\\"\"+\" id=\\\"g-core-smtp-username\\\" type=\\\"text\\\"\"+pug.attr(\"value\", settings['core.smtp.username'] || '', true, true)+\" title=\\\"The username, if any, used to authenticate to the SMTP server used to send emails.\\\"\") + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 136;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 137;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Clabel for=\\\"g-core-smtp-password\\\"\\u003E\";\n;pug_debug_line = 137;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"SMTP password\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 138;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"form-control input-sm\\\"\"+\" id=\\\"g-core-smtp-password\\\" type=\\\"password\\\"\"+pug.attr(\"value\", settings['core.smtp.password'] || '', true, true)+\" title=\\\"The password, if any, used to authenticate to the SMTP server used to send emails.\\\"\") + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 142;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-settings-form-container\\\"\\u003E\";\n;pug_debug_line = 143;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Ch4\\u003E\";\n;pug_debug_line = 143;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"Routing\\u003C\\u002Fh4\\u003E\";\n;pug_debug_line = 144;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cp\\u003E\";\n;pug_debug_line = 145;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"Altering routes requires a restart of the Girder server to take effect.\\u003C\\u002Fp\\u003E\";\n;pug_debug_line = 146;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-settings-form-container\\\"\\u003E\";\n;pug_debug_line = 147;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Ch5\\u003E\";\n;pug_debug_line = 147;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"Core Routes\\u003C\\u002Fh5\\u003E\";\n;pug_debug_line = 148;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Clabel\\u003E\";\n;pug_debug_line = 148;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"core_girder\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 149;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"g-core-route-table form-control input-sm\\\"\"+\" type=\\\"text\\\"\"+pug.attr(\"value\", routes['core_girder'] || '', true, true)+\" data-webroot-name=\\\"core_girder\\\" title=\\\"The path to place core_girder.\\\"\") + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 154;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\nif (routeKeys.length > 2) {\n;pug_debug_line = 155;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 156;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Ch5\\u003E\";\n;pug_debug_line = 156;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"Other Routes\\u003C\\u002Fh5\\u003E\";\n;pug_debug_line = 157;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\n// iterate routeKeys.slice(2)\n;(function(){\n var $$obj = routeKeys.slice(2);\n if ('number' == typeof $$obj.length) {\n for (var pug_index0 = 0, $$l = $$obj.length; pug_index0 < $$l; pug_index0++) {\n var name = $$obj[pug_index0];\n;pug_debug_line = 158;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Clabel\\u003E\";\n;pug_debug_line = 158;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = name) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 159;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"g-core-route-table form-control input-sm\\\"\"+\" type=\\\"text\\\"\"+pug.attr(\"value\", routes[name] || '', true, true)+pug.attr(\"data-webroot-name\", name, true, true)+\" title=\\\"The path to place ${name}.\\\"\") + \"\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index0 in $$obj) {\n $$l++;\n var name = $$obj[pug_index0];\n;pug_debug_line = 158;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Clabel\\u003E\";\n;pug_debug_line = 158;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = name) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 159;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"g-core-route-table form-control input-sm\\\"\"+\" type=\\\"text\\\"\"+pug.attr(\"value\", routes[name] || '', true, true)+pug.attr(\"data-webroot-name\", name, true, true)+\" title=\\\"The path to place ${name}.\\\"\") + \"\\u003E\";\n }\n }\n}).call(this);\n\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 164;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel-group\\\" id=\\\"g-configuration-accordion\\\"\\u003E\";\n;pug_debug_line = 165;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel panel-default\\\"\\u003E\";\n;pug_debug_line = 166;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel-heading\\\" data-toggle=\\\"collapse\\\" data-parent=\\\"#g-configuration-accordion\\\" data-target=\\\"#g-advanced-settings-tab\\\"\\u003E\";\n;pug_debug_line = 169;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel-title\\\"\\u003E\";\n;pug_debug_line = 170;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Ca\\u003E\";\n;pug_debug_line = 171;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cb\\u003E\";\n;pug_debug_line = 171;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"Advanced Settings\\u003C\\u002Fb\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 172;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel-collapse collapse\\\" id=\\\"g-advanced-settings-tab\\\"\\u003E\";\n;pug_debug_line = 173;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel-body\\\"\\u003E\";\n;pug_debug_line = 174;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cp\\u003E\";\n;pug_debug_line = 174;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"These settings should only be changed if you are certain of what you are doing.\\u003C\\u002Fp\\u003E\";\n;pug_debug_line = 175;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 176;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Clabel for=\\\"g-core-server-root\\\"\\u003E\";\n;pug_debug_line = 176;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"Server root URL\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 177;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"form-control input-sm\\\"\"+\" id=\\\"g-core-server-root\\\" type=\\\"text\\\"\"+pug.attr(\"value\", settings['core.server_root'] || '', true, true)+\" placeholder=\\\"Detect automatically\\\"\") + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 180;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 181;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Clabel for=\\\"g-core-upload-minimum-chunk-size\\\"\\u003E\";\n;pug_debug_line = 181;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"Upload minimum chunk size (bytes)\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 182;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cbr\\u003E\";\n;pug_debug_line = 183;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 183;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"This applies to Filesystem and GridFS assetstores.\\u003C\\u002Fspan\\u003E\";\n;pug_debug_line = 184;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"form-control input-sm\\\"\"+\" id=\\\"g-core-upload-minimum-chunk-size\\\" type=\\\"text\\\"\"+pug.attr(\"value\", settings['core.upload_minimum_chunk_size'] || '', true, true)+\" title=\\\"For large files, the minimum size of all but the last chunk.\\\"\") + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 187;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 188;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Clabel\\u003E\";\n;pug_debug_line = 188;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"Server Notification Stream\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 189;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cbr\\u003E\";\n;pug_debug_line = 190;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 190;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"Disabling this may improve server performance with many concurrent web client users.\\u003C\\u002Fspan\\u003E\";\n;pug_debug_line = 191;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"checkbox\\\"\\u003E\";\n;pug_debug_line = 192;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Clabel for=\\\"g-core-enable-notification-stream\\\"\\u003E\";\n;pug_debug_line = 193;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" id=\\\"g-core-enable-notification-stream\\\" type=\\\"checkbox\\\"\"+pug.attr(\"checked\", (settings['core.enable_notification_stream']), true, true)) + \"\\u003E\";\n;pug_debug_line = 195;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"Enabled\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 196;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-settings-form-container\\\"\\u003E\";\n;pug_debug_line = 197;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Ch4\\u003E\";\n;pug_debug_line = 197;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"CORS\\u003C\\u002Fh4\\u003E\";\n;pug_debug_line = 198;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cp\\u003E\";\n;pug_debug_line = 199;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"CORS (Cross-origin resource sharing) allows access from other websites.\";\n;pug_debug_line = 200;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\n\";\n;pug_debug_line = 200;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"These settings are described in\";\n;pug_debug_line = 201;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\n\";\n;pug_debug_line = 201;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"detail \";\n;pug_debug_line = 201;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Ca href=\\\"http:\\u002F\\u002Fgirder.readthedocs.org\\u002Fen\\u002Flatest\\u002Fsecurity.html#cors-cross-origin-resource-sharing\\\" target=\\\"_blank\\\"\\u003E\";\n;pug_debug_line = 201;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"here\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 201;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \".\\u003C\\u002Fp\\u003E\";\n;pug_debug_line = 202;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 203;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Clabel for=\\\"g-core-cors-allow-origin\\\"\\u003E\";\n;pug_debug_line = 203;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"CORS Allowed Origins\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 204;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"form-control input-sm\\\"\"+\" id=\\\"g-core-cors-allow-origin\\\" type=\\\"text\\\"\"+pug.attr(\"value\", settings['core.cors.allow_origin'] || '', true, true)+\" title=\\\"A comma-separated list of allowed base URLs that can make cross-site requests. This may include *.\\\"\") + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 207;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 208;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Clabel for=\\\"g-core-cors-allow-methods\\\"\\u003E\";\n;pug_debug_line = 208;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"CORS Allowed Methods\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 209;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"form-control input-sm\\\"\"+\" id=\\\"g-core-cors-allow-methods\\\" type=\\\"text\\\"\"+pug.attr(\"value\", settings['core.cors.allow_methods'] || '', true, true)+\" placeholder=\\\"Default: allow all methods\\\" title=\\\"A comma-separated list of allowed methods\\\"\") + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 213;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 214;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Clabel for=\\\"g-core-cors-allow-headers\\\"\\u003E\";\n;pug_debug_line = 214;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"CORS Allowed Headers\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 215;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"form-control input-sm\\\"\"+\" id=\\\"g-core-cors-allow-headers\\\" type=\\\"text\\\"\"+pug.attr(\"value\", settings['core.cors.allow_headers'] || '', true, true)+\" title=\\\"A comma-separated list of allowed headers.\\\"\") + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 218;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cp\\u003E\\u003C\\u002Fp\\u003E\";\n;pug_debug_line = 219;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 220;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"g-submit-settings btn btn-default btn-sm\\\"\\u003E\";\n;pug_debug_line = 220;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\";\n;pug_debug_line = 220;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-ok\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 220;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \" Save\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 221;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsystemConfiguration.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-validation-failed-message\\\" id=\\\"g-settings-error-message\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fform\\u003E\";}.call(this,\"JSON\" in locals_for_with?locals_for_with.JSON:typeof JSON!==\"undefined\"?JSON:undefined,\"routeKeys\" in locals_for_with?locals_for_with.routeKeys:typeof routeKeys!==\"undefined\"?routeKeys:undefined,\"routes\" in locals_for_with?locals_for_with.routes:typeof routes!==\"undefined\"?routes:undefined,\"settings\" in locals_for_with?locals_for_with.settings:typeof settings!==\"undefined\"?settings:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/body/systemConfiguration.pug","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/stylesheets/body/systemConfig.styl\n// module id = 441\n// module chunks = 0","/**\n * bootstrap-switch - Turn checkboxes and radio buttons into toggle switches.\n *\n * @version v3.3.5\n * @homepage https://bttstrp.github.io/bootstrap-switch\n * @author Mattia Larentis <mattia@larentis.eu> (http://larentis.eu)\n * @license MIT\n */\n\n(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(['jquery'], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(require('jquery'));\n } else {\n var mod = {\n exports: {}\n };\n factory(global.jquery);\n global.bootstrapSwitch = mod.exports;\n }\n})(this, function (_jquery) {\n 'use strict';\n\n var _jquery2 = _interopRequireDefault(_jquery);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var $ = _jquery2.default || window.jQuery || window.$;\n\n function getClasses(options, id) {\n var state = options.state,\n size = options.size,\n disabled = options.disabled,\n readonly = options.readonly,\n indeterminate = options.indeterminate,\n inverse = options.inverse;\n\n return [state ? 'on' : 'off', size, disabled ? 'disabled' : undefined, readonly ? 'readonly' : undefined, indeterminate ? 'indeterminate' : undefined, inverse ? 'inverse' : undefined, id ? 'id-' + id : undefined].filter(function (v) {\n return v == null;\n });\n }\n\n function prvgetElementOptions() {\n return {\n state: this.$element.is(':checked'),\n size: this.$element.data('size'),\n animate: this.$element.data('animate'),\n disabled: this.$element.is(':disabled'),\n readonly: this.$element.is('[readonly]'),\n indeterminate: this.$element.data('indeterminate'),\n inverse: this.$element.data('inverse'),\n radioAllOff: this.$element.data('radio-all-off'),\n onColor: this.$element.data('on-color'),\n offColor: this.$element.data('off-color'),\n onText: this.$element.data('on-text'),\n offText: this.$element.data('off-text'),\n labelText: this.$element.data('label-text'),\n handleWidth: this.$element.data('handle-width'),\n labelWidth: this.$element.data('label-width'),\n baseClass: this.$element.data('base-class'),\n wrapperClass: this.$element.data('wrapper-class')\n };\n }\n\n function prvwidth() {\n var _this = this;\n\n var $handles = this.$on.add(this.$off).add(this.$label).css('width', '');\n var handleWidth = this.options.handleWidth === 'auto' ? Math.round(Math.max(this.$on.width(), this.$off.width())) : this.options.handleWidth;\n $handles.width(handleWidth);\n this.$label.width(function (index, width) {\n if (_this.options.labelWidth !== 'auto') {\n return _this.options.labelWidth;\n }\n if (width < handleWidth) {\n return handleWidth;\n }\n return width;\n });\n this.privateHandleWidth = this.$on.outerWidth();\n this.privateLabelWidth = this.$label.outerWidth();\n this.$container.width(this.privateHandleWidth * 2 + this.privateLabelWidth);\n return this.$wrapper.width(this.privateHandleWidth + this.privateLabelWidth);\n }\n\n function prvcontainerPosition() {\n var _this2 = this;\n\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.ope;\n\n this.$container.css('margin-left', function () {\n var values = [0, '-' + _this2.privateHandleWidth + 'px'];\n if (_this2.options.indeterminate) {\n return '-' + _this2.privateHandleWidth / 2 + 'px';\n }\n if (state) {\n if (_this2.options.inverse) {\n return values[1];\n }\n return values[0];\n }\n if (_this2.options.inverse) {\n return values[0];\n }\n return values[1];\n });\n }\n\n function prvgetClass(name) {\n return this.options.baseClass + '-' + name;\n }\n\n function prvinit() {\n var _this3 = this;\n\n var init = function init() {\n _this3.setPrevOptions();\n prvwidth.call(_this3);\n prvcontainerPosition.call(_this3);\n setTimeout(function () {\n return _this3.options.animate && _this3.$wrapper.addClass(prvgetClass.call(_this3, 'animate'));\n }, 50);\n };\n if (this.$wrapper.is(':visible')) {\n init();\n return;\n }\n var initInterval = window.setInterval(function () {\n return _this3.$wrapper.is(':visible') && (init() || true) && window.clearInterval(initInterval);\n }, 50);\n }\n\n function prvelementHandlers() {\n var _this4 = this;\n\n return this.$element.on({\n 'setPreviousOptions.bootstrapSwitch': function setPreviousOptionsBootstrapSwitch() {\n return _this4.setPrevOptions();\n },\n\n 'previousState.bootstrapSwitch': function previousStateBootstrapSwitch() {\n _this4.options = _this4.prevOptions;\n if (_this4.options.indeterminate) {\n _this4.$wrapper.addClass(prvgetClass.call(_this4, 'indeterminate'));\n }\n _this4.$element.prop('checked', _this4.options.state).trigger('change.bootstrapSwitch', true);\n },\n\n 'change.bootstrapSwitch': function changeBootstrapSwitch(event, skip) {\n event.preventDefault();\n event.stopImmediatePropagation();\n var state = _this4.$element.is(':checked');\n prvcontainerPosition.call(_this4, state);\n if (state === _this4.options.state) {\n return;\n }\n _this4.options.state = state;\n _this4.$wrapper.toggleClass(prvgetClass.call(_this4, 'off')).toggleClass(prvgetClass.call(_this4, 'on'));\n if (!skip) {\n if (_this4.$element.is(':radio')) {\n $('[name=\"' + _this4.$element.attr('name') + '\"]').not(_this4.$element).prop('checked', false).trigger('change.bootstrapSwitch', true);\n }\n _this4.$element.trigger('switchChange.bootstrapSwitch', [state]);\n }\n },\n\n 'focus.bootstrapSwitch': function focusBootstrapSwitch(event) {\n event.preventDefault();\n _this4.$wrapper.addClass(prvgetClass.call(_this4, 'focused'));\n },\n\n 'blur.bootstrapSwitch': function blurBootstrapSwitch(event) {\n event.preventDefault();\n _this4.$wrapper.removeClass(prvgetClass.call(_this4, 'focused'));\n },\n\n 'keydown.bootstrapSwitch': function keydownBootstrapSwitch(event) {\n if (!event.which || _this4.options.disabled || _this4.options.readonly) {\n return;\n }\n if (event.which === 37 || event.which === 39) {\n event.preventDefault();\n event.stopImmediatePropagation();\n _this4.state(event.which === 39);\n }\n }\n });\n }\n\n function prvhandleHandlers() {\n var _this5 = this;\n\n this.$on.on('click.bootstrapSwitch', function (event) {\n event.preventDefault();\n event.stopPropagation();\n _this5.state(false);\n return _this5.$element.trigger('focus.bootstrapSwitch');\n });\n return this.$off.on('click.bootstrapSwitch', function (event) {\n event.preventDefault();\n event.stopPropagation();\n _this5.state(true);\n return _this5.$element.trigger('focus.bootstrapSwitch');\n });\n }\n\n function prvlabelHandlers() {\n var _this6 = this;\n\n var dragStart = void 0;\n var dragEnd = void 0;\n var handlers = {\n click: function click(event) {\n event.stopPropagation();\n },\n\n\n 'mousedown.bootstrapSwitch touchstart.bootstrapSwitch': function mousedownBootstrapSwitchTouchstartBootstrapSwitch(event) {\n if (dragStart || _this6.options.disabled || _this6.options.readonly) {\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n dragStart = (event.pageX || event.originalEvent.touches[0].pageX) - parseInt(_this6.$container.css('margin-left'), 10);\n if (_this6.options.animate) {\n _this6.$wrapper.removeClass(prvgetClass.call(_this6, 'animate'));\n }\n _this6.$element.trigger('focus.bootstrapSwitch');\n },\n\n 'mousemove.bootstrapSwitch touchmove.bootstrapSwitch': function mousemoveBootstrapSwitchTouchmoveBootstrapSwitch(event) {\n if (dragStart == null) {\n return;\n }\n var difference = (event.pageX || event.originalEvent.touches[0].pageX) - dragStart;\n event.preventDefault();\n if (difference < -_this6.privateHandleWidth || difference > 0) {\n return;\n }\n dragEnd = difference;\n _this6.$container.css('margin-left', dragEnd + 'px');\n },\n\n 'mouseup.bootstrapSwitch touchend.bootstrapSwitch': function mouseupBootstrapSwitchTouchendBootstrapSwitch(event) {\n if (!dragStart) {\n return;\n }\n event.preventDefault();\n if (_this6.options.animate) {\n _this6.$wrapper.addClass(prvgetClass.call(_this6, 'animate'));\n }\n if (dragEnd) {\n var state = dragEnd > -(_this6.privateHandleWidth / 2);\n dragEnd = false;\n _this6.state(_this6.options.inverse ? !state : state);\n } else {\n _this6.state(!_this6.options.state);\n }\n dragStart = false;\n },\n\n 'mouseleave.bootstrapSwitch': function mouseleaveBootstrapSwitch() {\n _this6.$label.trigger('mouseup.bootstrapSwitch');\n }\n };\n this.$label.on(handlers);\n }\n\n function prvexternalLabelHandler() {\n var _this7 = this;\n\n var $externalLabel = this.$element.closest('label');\n $externalLabel.on('click', function (event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n if (event.target === $externalLabel[0]) {\n _this7.toggleState();\n }\n });\n }\n\n function prvformHandler() {\n function isBootstrapSwitch() {\n return $(this).data('bootstrap-switch');\n }\n\n function performReset() {\n return $(this).bootstrapSwitch('state', this.checked);\n }\n\n var $form = this.$element.closest('form');\n if ($form.data('bootstrap-switch')) {\n return;\n }\n $form.on('reset.bootstrapSwitch', function () {\n window.setTimeout(function () {\n $form.find('input').filter(isBootstrapSwitch).each(performReset);\n }, 1);\n }).data('bootstrap-switch', true);\n }\n\n function prvgetClasses(classes) {\n var _this8 = this;\n\n if (!$.isArray(classes)) {\n return [prvgetClass.call(this, classes)];\n }\n return classes.map(function (v) {\n return prvgetClass.call(_this8, v);\n });\n }\n\n var BootstrapSwitch = function () {\n function BootstrapSwitch(element) {\n var _this9 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, BootstrapSwitch);\n\n this.$element = $(element);\n this.options = $.extend({}, $.fn.bootstrapSwitch.defaults, prvgetElementOptions.call(this), options);\n this.prevOptions = {};\n this.$wrapper = $('<div>', {\n class: function _class() {\n return getClasses(_this9.options, _this9.$element.attr('id')).map(function (v) {\n return prvgetClass.call(_this9, v);\n }).concat([_this9.options.baseClass], prvgetClasses.call(_this9, _this9.options.wrapperClass)).join(' ');\n }\n });\n this.$container = $('<div>', { class: prvgetClass.call(this, 'container') });\n this.$on = $('<span>', {\n html: this.options.onText,\n class: prvgetClass.call(this, 'handle-on') + ' ' + prvgetClass.call(this, this.options.onColor)\n });\n this.$off = $('<span>', {\n html: this.options.offText,\n class: prvgetClass.call(this, 'handle-off') + ' ' + prvgetClass.call(this, this.options.offColor)\n });\n this.$label = $('<span>', {\n html: this.options.labelText,\n class: prvgetClass.call(this, 'label')\n });\n\n this.$element.on('init.bootstrapSwitch', function () {\n return _this9.options.onInit(element);\n });\n this.$element.on('switchChange.bootstrapSwitch', function () {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var changeState = _this9.options.onSwitchChange.apply(element, args);\n if (changeState === false) {\n if (_this9.$element.is(':radio')) {\n $('[name=\"' + _this9.$element.attr('name') + '\"]').trigger('previousState.bootstrapSwitch', true);\n } else {\n _this9.$element.trigger('previousState.bootstrapSwitch', true);\n }\n }\n });\n\n this.$container = this.$element.wrap(this.$container).parent();\n this.$wrapper = this.$container.wrap(this.$wrapper).parent();\n this.$element.before(this.options.inverse ? this.$off : this.$on).before(this.$label).before(this.options.inverse ? this.$on : this.$off);\n\n if (this.options.indeterminate) {\n this.$element.prop('indeterminate', true);\n }\n\n prvinit.call(this);\n prvelementHandlers.call(this);\n prvhandleHandlers.call(this);\n prvlabelHandlers.call(this);\n prvformHandler.call(this);\n prvexternalLabelHandler.call(this);\n this.$element.trigger('init.bootstrapSwitch', this.options.state);\n }\n\n _createClass(BootstrapSwitch, [{\n key: 'setPrevOptions',\n value: function setPrevOptions() {\n this.prevOptions = _extends({}, this.options);\n }\n }, {\n key: 'state',\n value: function state(value, skip) {\n if (typeof value === 'undefined') {\n return this.options.state;\n }\n if (this.options.disabled || this.options.readonly || this.options.state && !this.options.radioAllOff && this.$element.is(':radio')) {\n return this.$element;\n }\n if (this.$element.is(':radio')) {\n $('[name=\"' + this.$element.attr('name') + '\"]').trigger('setPreviousOptions.bootstrapSwitch');\n } else {\n this.$element.trigger('setPreviousOptions.bootstrapSwitch');\n }\n if (this.options.indeterminate) {\n this.indeterminate(false);\n }\n this.$element.prop('checked', Boolean(value)).trigger('change.bootstrapSwitch', skip);\n return this.$element;\n }\n }, {\n key: 'toggleState',\n value: function toggleState(skip) {\n if (this.options.disabled || this.options.readonly) {\n return this.$element;\n }\n if (this.options.indeterminate) {\n this.indeterminate(false);\n return this.state(true);\n }\n return this.$element.prop('checked', !this.options.state).trigger('change.bootstrapSwitch', skip);\n }\n }, {\n key: 'size',\n value: function size(value) {\n if (typeof value === 'undefined') {\n return this.options.size;\n }\n if (this.options.size != null) {\n this.$wrapper.removeClass(prvgetClass.call(this, this.options.size));\n }\n if (value) {\n this.$wrapper.addClass(prvgetClass.call(this, value));\n }\n prvwidth.call(this);\n prvcontainerPosition.call(this);\n this.options.size = value;\n return this.$element;\n }\n }, {\n key: 'animate',\n value: function animate(value) {\n if (typeof value === 'undefined') {\n return this.options.animate;\n }\n if (this.options.animate === Boolean(value)) {\n return this.$element;\n }\n return this.toggleAnimate();\n }\n }, {\n key: 'toggleAnimate',\n value: function toggleAnimate() {\n this.options.animate = !this.options.animate;\n this.$wrapper.toggleClass(prvgetClass.call(this, 'animate'));\n return this.$element;\n }\n }, {\n key: 'disabled',\n value: function disabled(value) {\n if (typeof value === 'undefined') {\n return this.options.disabled;\n }\n if (this.options.disabled === Boolean(value)) {\n return this.$element;\n }\n return this.toggleDisabled();\n }\n }, {\n key: 'toggleDisabled',\n value: function toggleDisabled() {\n this.options.disabled = !this.options.disabled;\n this.$element.prop('disabled', this.options.disabled);\n this.$wrapper.toggleClass(prvgetClass.call(this, 'disabled'));\n return this.$element;\n }\n }, {\n key: 'readonly',\n value: function readonly(value) {\n if (typeof value === 'undefined') {\n return this.options.readonly;\n }\n if (this.options.readonly === Boolean(value)) {\n return this.$element;\n }\n return this.toggleReadonly();\n }\n }, {\n key: 'toggleReadonly',\n value: function toggleReadonly() {\n this.options.readonly = !this.options.readonly;\n this.$element.prop('readonly', this.options.readonly);\n this.$wrapper.toggleClass(prvgetClass.call(this, 'readonly'));\n return this.$element;\n }\n }, {\n key: 'indeterminate',\n value: function indeterminate(value) {\n if (typeof value === 'undefined') {\n return this.options.indeterminate;\n }\n if (this.options.indeterminate === Boolean(value)) {\n return this.$element;\n }\n return this.toggleIndeterminate();\n }\n }, {\n key: 'toggleIndeterminate',\n value: function toggleIndeterminate() {\n this.options.indeterminate = !this.options.indeterminate;\n this.$element.prop('indeterminate', this.options.indeterminate);\n this.$wrapper.toggleClass(prvgetClass.call(this, 'indeterminate'));\n prvcontainerPosition.call(this);\n return this.$element;\n }\n }, {\n key: 'inverse',\n value: function inverse(value) {\n if (typeof value === 'undefined') {\n return this.options.inverse;\n }\n if (this.options.inverse === Boolean(value)) {\n return this.$element;\n }\n return this.toggleInverse();\n }\n }, {\n key: 'toggleInverse',\n value: function toggleInverse() {\n this.$wrapper.toggleClass(prvgetClass.call(this, 'inverse'));\n var $on = this.$on.clone(true);\n var $off = this.$off.clone(true);\n this.$on.replaceWith($off);\n this.$off.replaceWith($on);\n this.$on = $off;\n this.$off = $on;\n this.options.inverse = !this.options.inverse;\n return this.$element;\n }\n }, {\n key: 'onColor',\n value: function onColor(value) {\n if (typeof value === 'undefined') {\n return this.options.onColor;\n }\n if (this.options.onColor) {\n this.$on.removeClass(prvgetClass.call(this, this.options.onColor));\n }\n this.$on.addClass(prvgetClass.call(this, value));\n this.options.onColor = value;\n return this.$element;\n }\n }, {\n key: 'offColor',\n value: function offColor(value) {\n if (typeof value === 'undefined') {\n return this.options.offColor;\n }\n if (this.options.offColor) {\n this.$off.removeClass(prvgetClass.call(this, this.options.offColor));\n }\n this.$off.addClass(prvgetClass.call(this, value));\n this.options.offColor = value;\n return this.$element;\n }\n }, {\n key: 'onText',\n value: function onText(value) {\n if (typeof value === 'undefined') {\n return this.options.onText;\n }\n this.$on.html(value);\n prvwidth.call(this);\n prvcontainerPosition.call(this);\n this.options.onText = value;\n return this.$element;\n }\n }, {\n key: 'offText',\n value: function offText(value) {\n if (typeof value === 'undefined') {\n return this.options.offText;\n }\n this.$off.html(value);\n prvwidth.call(this);\n prvcontainerPosition.call(this);\n this.options.offText = value;\n return this.$element;\n }\n }, {\n key: 'labelText',\n value: function labelText(value) {\n if (typeof value === 'undefined') {\n return this.options.labelText;\n }\n this.$label.html(value);\n prvwidth.call(this);\n this.options.labelText = value;\n return this.$element;\n }\n }, {\n key: 'handleWidth',\n value: function handleWidth(value) {\n if (typeof value === 'undefined') {\n return this.options.handleWidth;\n }\n this.options.handleWidth = value;\n prvwidth.call(this);\n prvcontainerPosition.call(this);\n return this.$element;\n }\n }, {\n key: 'labelWidth',\n value: function labelWidth(value) {\n if (typeof value === 'undefined') {\n return this.options.labelWidth;\n }\n this.options.labelWidth = value;\n prvwidth.call(this);\n prvcontainerPosition.call(this);\n return this.$element;\n }\n }, {\n key: 'baseClass',\n value: function baseClass() {\n return this.options.baseClass;\n }\n }, {\n key: 'wrapperClass',\n value: function wrapperClass(value) {\n if (typeof value === 'undefined') {\n return this.options.wrapperClass;\n }\n var wrapperClass = value || $.fn.bootstrapSwitch.defaults.wrapperClass;\n this.$wrapper.removeClass(prvgetClasses.call(this, this.options.wrapperClass).join(' '));\n this.$wrapper.addClass(prvgetClasses.call(this, wrapperClass).join(' '));\n this.options.wrapperClass = wrapperClass;\n return this.$element;\n }\n }, {\n key: 'radioAllOff',\n value: function radioAllOff(value) {\n if (typeof value === 'undefined') {\n return this.options.radioAllOff;\n }\n var val = Boolean(value);\n if (this.options.radioAllOff === val) {\n return this.$element;\n }\n this.options.radioAllOff = val;\n return this.$element;\n }\n }, {\n key: 'onInit',\n value: function onInit(value) {\n if (typeof value === 'undefined') {\n return this.options.onInit;\n }\n this.options.onInit = value || $.fn.bootstrapSwitch.defaults.onInit;\n return this.$element;\n }\n }, {\n key: 'onSwitchChange',\n value: function onSwitchChange(value) {\n if (typeof value === 'undefined') {\n return this.options.onSwitchChange;\n }\n this.options.onSwitchChange = value || $.fn.bootstrapSwitch.defaults.onSwitchChange;\n return this.$element;\n }\n }, {\n key: 'destroy',\n value: function destroy() {\n var $form = this.$element.closest('form');\n if ($form.length) {\n $form.off('reset.bootstrapSwitch').removeData('bootstrap-switch');\n }\n this.$container.children().not(this.$element).remove();\n this.$element.unwrap().unwrap().off('.bootstrapSwitch').removeData('bootstrap-switch');\n return this.$element;\n }\n }]);\n\n return BootstrapSwitch;\n }();\n\n function bootstrapSwitch(option) {\n for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n function reducer(ret, next) {\n var $this = $(next);\n var existingData = $this.data('bootstrap-switch');\n var data = existingData || new BootstrapSwitch(next, option);\n if (!existingData) {\n $this.data('bootstrap-switch', data);\n }\n if (typeof option === 'string') {\n return data[option].apply(data, args);\n }\n return ret;\n }\n return Array.prototype.reduce.call(this, reducer, this);\n }\n\n $.fn.bootstrapSwitch = bootstrapSwitch;\n $.fn.bootstrapSwitch.Constructor = BootstrapSwitch;\n $.fn.bootstrapSwitch.defaults = {\n state: true,\n size: null,\n animate: true,\n disabled: false,\n readonly: false,\n indeterminate: false,\n inverse: false,\n radioAllOff: false,\n onColor: 'primary',\n offColor: 'default',\n onText: 'ON',\n offText: 'OFF',\n labelText: ' ',\n handleWidth: 'auto',\n labelWidth: 'auto',\n baseClass: 'bootstrap-switch',\n wrapperClass: 'wrapper',\n onInit: function onInit() {},\n onSwitchChange: function onSwitchChange() {}\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/bootstrap-switch/dist/js/bootstrap-switch.js\n// module id = 442\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/bootstrap-switch/dist/css/bootstrap3/bootstrap-switch.css\n// module id = 443\n// module chunks = 0","var map = {\n\t\"./en-au\": 221,\n\t\"./en-au.js\": 221,\n\t\"./en-ca\": 222,\n\t\"./en-ca.js\": 222,\n\t\"./en-gb\": 223,\n\t\"./en-gb.js\": 223,\n\t\"./en-ie\": 224,\n\t\"./en-ie.js\": 224,\n\t\"./en-il\": 225,\n\t\"./en-il.js\": 225,\n\t\"./en-in\": 226,\n\t\"./en-in.js\": 226,\n\t\"./en-nz\": 227,\n\t\"./en-nz.js\": 227,\n\t\"./en-sg\": 228,\n\t\"./en-sg.js\": 228\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number or string\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 444;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale en\n// module id = 444\n// module chunks = 0","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\":\".modal-dialog\\n .modal-content\\n form#g-api-key-edit-form.modal-form(role=\\\"form\\\")\\n .modal-header\\n button.close(data-dismiss=\\\"modal\\\", aria-hidden=\\\"true\\\", type=\\\"button\\\") ×\\n h4.modal-title\\n if apiKey\\n | Edit API key\\n else\\n | Create new API key\\n .modal-body\\n .form-group\\n label.control-label(for=\\\"g-api-key-name\\\") Name\\n input#g-api-key-name.input-sm.form-control(type=\\\"text\\\", placeholder=\\\"Enter a name for this API key\\\")\\n .form-group\\n label.control-label(for=\\\"g-api-key-token-duration\\\") Token duration in days (optional)\\n input#g-api-key-token-duration.input-sm.form-control(placeholder=\\\"Enter number of days\\\")\\n\\n label.control-label Permission scope for this key\\n .g-scope-selection-container\\n .radio\\n label\\n input#g-scope-mode-full(type=\\\"radio\\\", name=\\\"scopeType\\\", value=\\\"full\\\", checked)\\n | Allow all actions on behalf of my user\\n .radio\\n label\\n input#g-scope-mode-custom(type=\\\"radio\\\", name=\\\"scopeType\\\", value=\\\"custom\\\")\\n | Only allow specific permissions for this key:\\n each tokenScope in tokenScopes\\n .checkbox.disabled\\n label.g-custom-scope-description(title=tokenScope.description)\\n input.g-custom-scope-checkbox(type=\\\"checkbox\\\", value=tokenScope.id, disabled)\\n span= tokenScope.name\\n .g-validation-failed-message\\n .modal-footer\\n a.btn.btn-small.btn-default(data-dismiss=\\\"modal\\\") Cancel\\n button.g-save-api-key.btn.btn-small.btn-primary(type=\\\"submit\\\")\\n if apiKey\\n i.icon-edit\\n | Save\\n else\\n i.icon-plus-squared\\n | Create\\n\"};\n;var locals_for_with = (locals || {});(function (apiKey, tokenScopes) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-dialog\\\"\\u003E\";\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-content\\\"\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \"\\u003Cform class=\\\"modal-form\\\" id=\\\"g-api-key-edit-form\\\" role=\\\"form\\\"\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-header\\\"\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"close\\\" data-dismiss=\\\"modal\\\" aria-hidden=\\\"true\\\" type=\\\"button\\\"\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \"×\\u003C\\u002Fbutton\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \"\\u003Ch4 class=\\\"modal-title\\\"\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\nif (apiKey) {\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \"Edit API key\";\n}\nelse {\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \"Create new API key\";\n}\npug_html = pug_html + \"\\u003C\\u002Fh4\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-body\\\"\\u003E\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \"\\u003Clabel class=\\\"control-label\\\" for=\\\"g-api-key-name\\\"\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \"Name\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \"\\u003Cinput class=\\\"input-sm form-control\\\" id=\\\"g-api-key-name\\\" type=\\\"text\\\" placeholder=\\\"Enter a name for this API key\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \"\\u003Clabel class=\\\"control-label\\\" for=\\\"g-api-key-token-duration\\\"\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \"Token duration in days (optional)\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \"\\u003Cinput class=\\\"input-sm form-control\\\" id=\\\"g-api-key-token-duration\\\" placeholder=\\\"Enter number of days\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \"\\u003Clabel class=\\\"control-label\\\"\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \"Permission scope for this key\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-scope-selection-container\\\"\\u003E\";\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"radio\\\"\\u003E\";\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \"\\u003Clabel\\u003E\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \"\\u003Cinput id=\\\"g-scope-mode-full\\\" type=\\\"radio\\\" name=\\\"scopeType\\\" value=\\\"full\\\" checked\\u003E\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \"Allow all actions on behalf of my user\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"radio\\\"\\u003E\";\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \"\\u003Clabel\\u003E\";\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \"\\u003Cinput id=\\\"g-scope-mode-custom\\\" type=\\\"radio\\\" name=\\\"scopeType\\\" value=\\\"custom\\\"\\u003E\";\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \"Only allow specific permissions for this key:\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\n// iterate tokenScopes\n;(function(){\n var $$obj = tokenScopes;\n if ('number' == typeof $$obj.length) {\n for (var pug_index0 = 0, $$l = $$obj.length; pug_index0 < $$l; pug_index0++) {\n var tokenScope = $$obj[pug_index0];\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"checkbox disabled\\\"\\u003E\";\n;pug_debug_line = 31;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \"\\u003Clabel\" + (\" class=\\\"g-custom-scope-description\\\"\"+pug.attr(\"title\", tokenScope.description, true, true)) + \"\\u003E\";\n;pug_debug_line = 32;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"g-custom-scope-checkbox\\\"\"+\" type=\\\"checkbox\\\"\"+pug.attr(\"value\", tokenScope.id, true, true)+pug.attr(\"disabled\", true, true, true)) + \"\\u003E\";\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = tokenScope.name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index0 in $$obj) {\n $$l++;\n var tokenScope = $$obj[pug_index0];\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"checkbox disabled\\\"\\u003E\";\n;pug_debug_line = 31;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \"\\u003Clabel\" + (\" class=\\\"g-custom-scope-description\\\"\"+pug.attr(\"title\", tokenScope.description, true, true)) + \"\\u003E\";\n;pug_debug_line = 32;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"g-custom-scope-checkbox\\\"\"+\" type=\\\"checkbox\\\"\"+pug.attr(\"value\", tokenScope.id, true, true)+pug.attr(\"disabled\", true, true, true)) + \"\\u003E\";\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = tokenScope.name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\";\n }\n }\n}).call(this);\n\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 34;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-validation-failed-message\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 35;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"modal-footer\\\"\\u003E\";\n;pug_debug_line = 36;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"btn btn-small btn-default\\\" data-dismiss=\\\"modal\\\"\\u003E\";\n;pug_debug_line = 36;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \"Cancel\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 37;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"g-save-api-key btn btn-small btn-primary\\\" type=\\\"submit\\\"\\u003E\";\n;pug_debug_line = 38;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\nif (apiKey) {\n;pug_debug_line = 39;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-edit\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 40;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \" Save\";\n}\nelse {\n;pug_debug_line = 42;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-plus-squared\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 43;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FeditApiKeyWidget.pug\";\npug_html = pug_html + \" Create\";\n}\npug_html = pug_html + \"\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fform\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"apiKey\" in locals_for_with?locals_for_with.apiKey:typeof apiKey!==\"undefined\"?apiKey:undefined,\"tokenScopes\" in locals_for_with?locals_for_with.tokenScopes:typeof tokenScopes!==\"undefined\"?tokenScopes:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/editApiKeyWidget.pug","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\":\"if apiKeys.length === 0\\n .g-api-keys-empty-message You have no existing API keys. Click the button below to create one.\\nelse\\n .g-api-key-list-header Your API keys\\n table.g-api-key-table\\n thead: tr\\n th(col=\\\"name\\\") Name\\n th(col=\\\"key\\\") Key\\n th(col=\\\"scope\\\") Scope\\n th(col=\\\"active\\\") Active\\n th(col=\\\"tokenDuration\\\") Token duration\\n th(col=\\\"lastUse\\\") Last used\\n th(col=\\\"actions\\\") Actions\\n tbody\\n each apiKey in apiKeys\\n tr.g-api-key-container(api-key-id=apiKey.id, cid=apiKey.cid)\\n td(col=\\\"name\\\")= apiKey.get('name')\\n td(col=\\\"key\\\"): a.g-show-api-key(data-toggle=\\\"popover\\\", data-content=apiKey.get('key')) show\\n td(col=\\\"scope\\\")\\n if apiKey.get('scope')\\n span Custom scopes\\n else\\n span Full access\\n td(col=\\\"active\\\")= apiKey.get('active') ? 'Yes' : 'No'\\n td(col=\\\"tokenDuration\\\")\\n if apiKey.get('tokenDuration')\\n span #{apiKey.get('tokenDuration')} days\\n else\\n span Default\\n td(col=\\\"lastUse\\\")\\n if apiKey.get('lastUse')\\n - var lastUse = moment(apiKey.get('lastUse'))\\n span(title=lastUse)= lastUse.fromNow()\\n else\\n span Never\\n td(col=\\\"actions\\\")\\n button.btn.btn-sm.btn-primary.g-api-key-edit(title=\\\"Edit\\\")\\n i.icon-edit\\n if apiKey.get('active')\\n button.btn.btn-sm.btn-warning.g-api-key-toggle-active(title=\\\"Deactivate\\\")\\n i.icon-minus-circled\\n else\\n button.btn.btn-sm.btn-success.g-api-key-toggle-active(title=\\\"Activate\\\")\\n i.icon-plus-circled\\n button.btn.btn-sm.btn-danger.g-api-key-delete(title=\\\"Delete key\\\")\\n i.icon-cancel\\n\\n.g-paginate-container\\n.g-api-key-list-bottom-buttons\\n button.btn.btn-default.g-api-key-new Create new key\\n\"};\n;var locals_for_with = (locals || {});(function (apiKeys, moment) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\nif (apiKeys.length === 0) {\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-api-keys-empty-message\\\"\\u003E\";\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"You have no existing API keys. Click the button below to create one.\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-api-key-list-header\\\"\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"Your API keys\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Ctable class=\\\"g-api-key-table\\\"\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Cthead\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Ctr\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Cth col=\\\"name\\\"\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"Name\\u003C\\u002Fth\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Cth col=\\\"key\\\"\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"Key\\u003C\\u002Fth\\u003E\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Cth col=\\\"scope\\\"\\u003E\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"Scope\\u003C\\u002Fth\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Cth col=\\\"active\\\"\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"Active\\u003C\\u002Fth\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Cth col=\\\"tokenDuration\\\"\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"Token duration\\u003C\\u002Fth\\u003E\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Cth col=\\\"lastUse\\\"\\u003E\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"Last used\\u003C\\u002Fth\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Cth col=\\\"actions\\\"\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"Actions\\u003C\\u002Fth\\u003E\\u003C\\u002Ftr\\u003E\\u003C\\u002Fthead\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Ctbody\\u003E\";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\n// iterate apiKeys\n;(function(){\n var $$obj = apiKeys;\n if ('number' == typeof $$obj.length) {\n for (var pug_index0 = 0, $$l = $$obj.length; pug_index0 < $$l; pug_index0++) {\n var apiKey = $$obj[pug_index0];\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Ctr\" + (\" class=\\\"g-api-key-container\\\"\"+pug.attr(\"api-key-id\", apiKey.id, true, true)+pug.attr(\"cid\", apiKey.cid, true, true)) + \"\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Ctd col=\\\"name\\\"\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = apiKey.get('name')) ? \"\" : pug_interp)) + \"\\u003C\\u002Ftd\\u003E\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Ctd col=\\\"key\\\"\\u003E\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"g-show-api-key\\\"\"+\" data-toggle=\\\"popover\\\"\"+pug.attr(\"data-content\", apiKey.get('key'), true, true)) + \"\\u003E\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"show\\u003C\\u002Fa\\u003E\\u003C\\u002Ftd\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Ctd col=\\\"scope\\\"\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\nif (apiKey.get('scope')) {\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"Custom scopes\\u003C\\u002Fspan\\u003E\";\n}\nelse {\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"Full access\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Ftd\\u003E\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Ctd col=\\\"active\\\"\\u003E\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = apiKey.get('active') ? 'Yes' : 'No') ? \"\" : pug_interp)) + \"\\u003C\\u002Ftd\\u003E\";\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Ctd col=\\\"tokenDuration\\\"\\u003E\";\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\nif (apiKey.get('tokenDuration')) {\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = apiKey.get('tokenDuration')) ? \"\" : pug_interp));\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \" days\\u003C\\u002Fspan\\u003E\";\n}\nelse {\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"Default\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Ftd\\u003E\";\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Ctd col=\\\"lastUse\\\"\\u003E\";\n;pug_debug_line = 31;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\nif (apiKey.get('lastUse')) {\n;pug_debug_line = 32;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\nvar lastUse = moment(apiKey.get('lastUse'))\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Cspan\" + (pug.attr(\"title\", lastUse, true, true)) + \"\\u003E\";\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = lastUse.fromNow()) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\n;pug_debug_line = 35;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 35;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"Never\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Ftd\\u003E\";\n;pug_debug_line = 36;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Ctd col=\\\"actions\\\"\\u003E\";\n;pug_debug_line = 37;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-sm btn-primary g-api-key-edit\\\" title=\\\"Edit\\\"\\u003E\";\n;pug_debug_line = 38;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-edit\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fbutton\\u003E\";\n;pug_debug_line = 39;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\nif (apiKey.get('active')) {\n;pug_debug_line = 40;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-sm btn-warning g-api-key-toggle-active\\\" title=\\\"Deactivate\\\"\\u003E\";\n;pug_debug_line = 41;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-minus-circled\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fbutton\\u003E\";\n}\nelse {\n;pug_debug_line = 43;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-sm btn-success g-api-key-toggle-active\\\" title=\\\"Activate\\\"\\u003E\";\n;pug_debug_line = 44;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-plus-circled\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fbutton\\u003E\";\n}\n;pug_debug_line = 45;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-sm btn-danger g-api-key-delete\\\" title=\\\"Delete key\\\"\\u003E\";\n;pug_debug_line = 46;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-cancel\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fbutton\\u003E\\u003C\\u002Ftd\\u003E\\u003C\\u002Ftr\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index0 in $$obj) {\n $$l++;\n var apiKey = $$obj[pug_index0];\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Ctr\" + (\" class=\\\"g-api-key-container\\\"\"+pug.attr(\"api-key-id\", apiKey.id, true, true)+pug.attr(\"cid\", apiKey.cid, true, true)) + \"\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Ctd col=\\\"name\\\"\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = apiKey.get('name')) ? \"\" : pug_interp)) + \"\\u003C\\u002Ftd\\u003E\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Ctd col=\\\"key\\\"\\u003E\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"g-show-api-key\\\"\"+\" data-toggle=\\\"popover\\\"\"+pug.attr(\"data-content\", apiKey.get('key'), true, true)) + \"\\u003E\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"show\\u003C\\u002Fa\\u003E\\u003C\\u002Ftd\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Ctd col=\\\"scope\\\"\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\nif (apiKey.get('scope')) {\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"Custom scopes\\u003C\\u002Fspan\\u003E\";\n}\nelse {\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"Full access\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Ftd\\u003E\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Ctd col=\\\"active\\\"\\u003E\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = apiKey.get('active') ? 'Yes' : 'No') ? \"\" : pug_interp)) + \"\\u003C\\u002Ftd\\u003E\";\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Ctd col=\\\"tokenDuration\\\"\\u003E\";\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\nif (apiKey.get('tokenDuration')) {\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = apiKey.get('tokenDuration')) ? \"\" : pug_interp));\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \" days\\u003C\\u002Fspan\\u003E\";\n}\nelse {\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"Default\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Ftd\\u003E\";\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Ctd col=\\\"lastUse\\\"\\u003E\";\n;pug_debug_line = 31;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\nif (apiKey.get('lastUse')) {\n;pug_debug_line = 32;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\nvar lastUse = moment(apiKey.get('lastUse'))\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Cspan\" + (pug.attr(\"title\", lastUse, true, true)) + \"\\u003E\";\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = lastUse.fromNow()) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\n;pug_debug_line = 35;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 35;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"Never\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Ftd\\u003E\";\n;pug_debug_line = 36;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Ctd col=\\\"actions\\\"\\u003E\";\n;pug_debug_line = 37;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-sm btn-primary g-api-key-edit\\\" title=\\\"Edit\\\"\\u003E\";\n;pug_debug_line = 38;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-edit\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fbutton\\u003E\";\n;pug_debug_line = 39;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\nif (apiKey.get('active')) {\n;pug_debug_line = 40;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-sm btn-warning g-api-key-toggle-active\\\" title=\\\"Deactivate\\\"\\u003E\";\n;pug_debug_line = 41;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-minus-circled\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fbutton\\u003E\";\n}\nelse {\n;pug_debug_line = 43;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-sm btn-success g-api-key-toggle-active\\\" title=\\\"Activate\\\"\\u003E\";\n;pug_debug_line = 44;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-plus-circled\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fbutton\\u003E\";\n}\n;pug_debug_line = 45;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-sm btn-danger g-api-key-delete\\\" title=\\\"Delete key\\\"\\u003E\";\n;pug_debug_line = 46;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-cancel\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fbutton\\u003E\\u003C\\u002Ftd\\u003E\\u003C\\u002Ftr\\u003E\";\n }\n }\n}).call(this);\n\npug_html = pug_html + \"\\u003C\\u002Ftbody\\u003E\\u003C\\u002Ftable\\u003E\";\n}\n;pug_debug_line = 48;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-paginate-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 49;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-api-key-list-bottom-buttons\\\"\\u003E\";\n;pug_debug_line = 50;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-default g-api-key-new\\\"\\u003E\";\n;pug_debug_line = 50;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FapiKeyList.pug\";\npug_html = pug_html + \"Create new key\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"apiKeys\" in locals_for_with?locals_for_with.apiKeys:typeof apiKeys!==\"undefined\"?apiKeys:undefined,\"moment\" in locals_for_with?locals_for_with.moment:typeof moment!==\"undefined\"?moment:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/apiKeyList.pug","import QRCode from 'qrcode';\nimport OTPAuth from 'url-otpauth';\n\nimport View from '@girder/core/views/View';\n\nimport UserOtpBeginTemplate from '@girder/core/templates/widgets/userOtpBegin.pug';\nimport UserOtpEnableTemplate from '@girder/core/templates/widgets/userOtpEnable.pug';\nimport UserOtpDisableTemplate from '@girder/core/templates/widgets/userOtpDisable.pug';\nimport '@girder/core/stylesheets/widgets/userOtpManagementWidget.styl';\n\nconst UserOtpManagementWidget = View.extend({\n events: {\n 'click #g-user-otp-initialize-enable': function () {\n this.model.initializeEnableOtp()\n .done((totpUri) => {\n this.totpUri = totpUri;\n this.render();\n });\n },\n 'click #g-user-otp-finalize-enable': function () {\n const otpToken = this.$('#g-user-otp-token').val().trim();\n\n if (otpToken.length !== 6) {\n this.$('#g-account-otp-error').text('Enter a 6-digit token.');\n return;\n } else {\n this.$('#g-account-otp-error').text('');\n }\n\n this.model.finializeEnableOtp(otpToken)\n .done(() => {\n this.totpUri = undefined;\n this.render();\n })\n .fail((err) => {\n this.$('#g-account-otp-error').text(err.responseJSON.message);\n });\n },\n 'click #g-user-otp-cancel-enable': function () {\n this.totpUri = undefined;\n this.render();\n },\n 'click #g-user-otp-disable': function () {\n this.model.disableOtp()\n .done(() => {\n this.render();\n });\n }\n },\n\n /**\n * A widget for listing and editing API keys for a user.\n *\n * @param settings.user {UserModel} The user whose keys to show.\n */\n initialize: function (settings) {\n this.model = settings.user;\n },\n\n render: function () {\n if (!this.model.get('otp')) {\n // OTP not set up\n if (!this.totpUri) {\n // Enablement has not started\n this._renderBegin();\n } else {\n // Enablement is pending\n this._renderConfirmation();\n }\n } else {\n // OTP already enabled\n this._renderDisable();\n }\n\n return this;\n },\n\n _renderBegin: function () {\n this.$el.html(UserOtpBeginTemplate());\n },\n\n _renderConfirmation: function () {\n // The OTP URI format is defined at https://github.com/google/google-authenticator/wiki/Key-Uri-Format\n const totpInfo = OTPAuth.parse(this.totpUri);\n\n this.$el.html(UserOtpEnableTemplate({\n totpInfo: totpInfo\n }));\n\n // Render the OTP as a QR code\n QRCode.toCanvas(\n this.$('#g-user-otp-qr')[0],\n this.totpUri,\n {\n errorCorrectionLevel: 'H'\n }\n );\n },\n\n _renderDisable: function () {\n this.$el.html(UserOtpDisableTemplate());\n }\n});\n\nexport default UserOtpManagementWidget;\n\n\n\n// WEBPACK FOOTER //\n// ./src/views/widgets/UserOtpManagementWidget.js","\nvar canPromise = require('./can-promise')\n\nvar QRCode = require('./core/qrcode')\nvar CanvasRenderer = require('./renderer/canvas')\nvar SvgRenderer = require('./renderer/svg-tag.js')\n\nfunction renderCanvas (renderFunc, canvas, text, opts, cb) {\n var args = [].slice.call(arguments, 1)\n var argsNum = args.length\n var isLastArgCb = typeof args[argsNum - 1] === 'function'\n\n if (!isLastArgCb && !canPromise()) {\n throw new Error('Callback required as last argument')\n }\n\n if (isLastArgCb) {\n if (argsNum < 2) {\n throw new Error('Too few arguments provided')\n }\n\n if (argsNum === 2) {\n cb = text\n text = canvas\n canvas = opts = undefined\n } else if (argsNum === 3) {\n if (canvas.getContext && typeof cb === 'undefined') {\n cb = opts\n opts = undefined\n } else {\n cb = opts\n opts = text\n text = canvas\n canvas = undefined\n }\n }\n } else {\n if (argsNum < 1) {\n throw new Error('Too few arguments provided')\n }\n\n if (argsNum === 1) {\n text = canvas\n canvas = opts = undefined\n } else if (argsNum === 2 && !canvas.getContext) {\n opts = text\n text = canvas\n canvas = undefined\n }\n\n return new Promise(function (resolve, reject) {\n try {\n var data = QRCode.create(text, opts)\n resolve(renderFunc(data, canvas, opts))\n } catch (e) {\n reject(e)\n }\n })\n }\n\n try {\n var data = QRCode.create(text, opts)\n cb(null, renderFunc(data, canvas, opts))\n } catch (e) {\n cb(e)\n }\n}\n\nexports.create = QRCode.create\nexports.toCanvas = renderCanvas.bind(null, CanvasRenderer.render)\nexports.toDataURL = renderCanvas.bind(null, CanvasRenderer.renderToDataURL)\n\n// only svg for now.\nexports.toString = renderCanvas.bind(null, function (data, _, opts) {\n return SvgRenderer.render(data, opts)\n})\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/qrcode/lib/browser.js\n// module id = 448\n// module chunks = 0","// can-promise has a crash in some versions of react native that dont have\n// standard global objects\n// https://github.com/soldair/node-qrcode/issues/157\n\nmodule.exports = function () {\n return typeof Promise === 'function' && Promise.prototype && Promise.prototype.then\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/qrcode/lib/can-promise.js\n// module id = 449\n// module chunks = 0","var BufferUtil = require('../utils/buffer')\nvar Utils = require('./utils')\nvar ECLevel = require('./error-correction-level')\nvar BitBuffer = require('./bit-buffer')\nvar BitMatrix = require('./bit-matrix')\nvar AlignmentPattern = require('./alignment-pattern')\nvar FinderPattern = require('./finder-pattern')\nvar MaskPattern = require('./mask-pattern')\nvar ECCode = require('./error-correction-code')\nvar ReedSolomonEncoder = require('./reed-solomon-encoder')\nvar Version = require('./version')\nvar FormatInfo = require('./format-info')\nvar Mode = require('./mode')\nvar Segments = require('./segments')\nvar isArray = require('isarray')\n\n/**\n * QRCode for JavaScript\n *\n * modified by Ryan Day for nodejs support\n * Copyright (c) 2011 Ryan Day\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/mit-license.php\n *\n//---------------------------------------------------------------------\n// QRCode for JavaScript\n//\n// Copyright (c) 2009 Kazuhiko Arase\n//\n// URL: http://www.d-project.com/\n//\n// Licensed under the MIT license:\n// http://www.opensource.org/licenses/mit-license.php\n//\n// The word \"QR Code\" is registered trademark of\n// DENSO WAVE INCORPORATED\n// http://www.denso-wave.com/qrcode/faqpatent-e.html\n//\n//---------------------------------------------------------------------\n*/\n\n/**\n * Add finder patterns bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupFinderPattern (matrix, version) {\n var size = matrix.size\n var pos = FinderPattern.getPositions(version)\n\n for (var i = 0; i < pos.length; i++) {\n var row = pos[i][0]\n var col = pos[i][1]\n\n for (var r = -1; r <= 7; r++) {\n if (row + r <= -1 || size <= row + r) continue\n\n for (var c = -1; c <= 7; c++) {\n if (col + c <= -1 || size <= col + c) continue\n\n if ((r >= 0 && r <= 6 && (c === 0 || c === 6)) ||\n (c >= 0 && c <= 6 && (r === 0 || r === 6)) ||\n (r >= 2 && r <= 4 && c >= 2 && c <= 4)) {\n matrix.set(row + r, col + c, true, true)\n } else {\n matrix.set(row + r, col + c, false, true)\n }\n }\n }\n }\n}\n\n/**\n * Add timing pattern bits to matrix\n *\n * Note: this function must be called before {@link setupAlignmentPattern}\n *\n * @param {BitMatrix} matrix Modules matrix\n */\nfunction setupTimingPattern (matrix) {\n var size = matrix.size\n\n for (var r = 8; r < size - 8; r++) {\n var value = r % 2 === 0\n matrix.set(r, 6, value, true)\n matrix.set(6, r, value, true)\n }\n}\n\n/**\n * Add alignment patterns bits to matrix\n *\n * Note: this function must be called after {@link setupTimingPattern}\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupAlignmentPattern (matrix, version) {\n var pos = AlignmentPattern.getPositions(version)\n\n for (var i = 0; i < pos.length; i++) {\n var row = pos[i][0]\n var col = pos[i][1]\n\n for (var r = -2; r <= 2; r++) {\n for (var c = -2; c <= 2; c++) {\n if (r === -2 || r === 2 || c === -2 || c === 2 ||\n (r === 0 && c === 0)) {\n matrix.set(row + r, col + c, true, true)\n } else {\n matrix.set(row + r, col + c, false, true)\n }\n }\n }\n }\n}\n\n/**\n * Add version info bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupVersionInfo (matrix, version) {\n var size = matrix.size\n var bits = Version.getEncodedBits(version)\n var row, col, mod\n\n for (var i = 0; i < 18; i++) {\n row = Math.floor(i / 3)\n col = i % 3 + size - 8 - 3\n mod = ((bits >> i) & 1) === 1\n\n matrix.set(row, col, mod, true)\n matrix.set(col, row, mod, true)\n }\n}\n\n/**\n * Add format info bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @param {Number} maskPattern Mask pattern reference value\n */\nfunction setupFormatInfo (matrix, errorCorrectionLevel, maskPattern) {\n var size = matrix.size\n var bits = FormatInfo.getEncodedBits(errorCorrectionLevel, maskPattern)\n var i, mod\n\n for (i = 0; i < 15; i++) {\n mod = ((bits >> i) & 1) === 1\n\n // vertical\n if (i < 6) {\n matrix.set(i, 8, mod, true)\n } else if (i < 8) {\n matrix.set(i + 1, 8, mod, true)\n } else {\n matrix.set(size - 15 + i, 8, mod, true)\n }\n\n // horizontal\n if (i < 8) {\n matrix.set(8, size - i - 1, mod, true)\n } else if (i < 9) {\n matrix.set(8, 15 - i - 1 + 1, mod, true)\n } else {\n matrix.set(8, 15 - i - 1, mod, true)\n }\n }\n\n // fixed module\n matrix.set(size - 8, 8, 1, true)\n}\n\n/**\n * Add encoded data bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Buffer} data Data codewords\n */\nfunction setupData (matrix, data) {\n var size = matrix.size\n var inc = -1\n var row = size - 1\n var bitIndex = 7\n var byteIndex = 0\n\n for (var col = size - 1; col > 0; col -= 2) {\n if (col === 6) col--\n\n while (true) {\n for (var c = 0; c < 2; c++) {\n if (!matrix.isReserved(row, col - c)) {\n var dark = false\n\n if (byteIndex < data.length) {\n dark = (((data[byteIndex] >>> bitIndex) & 1) === 1)\n }\n\n matrix.set(row, col - c, dark)\n bitIndex--\n\n if (bitIndex === -1) {\n byteIndex++\n bitIndex = 7\n }\n }\n }\n\n row += inc\n\n if (row < 0 || size <= row) {\n row -= inc\n inc = -inc\n break\n }\n }\n }\n}\n\n/**\n * Create encoded codewords from data input\n *\n * @param {Number} version QR Code version\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @param {ByteData} data Data input\n * @return {Buffer} Buffer containing encoded codewords\n */\nfunction createData (version, errorCorrectionLevel, segments) {\n // Prepare data buffer\n var buffer = new BitBuffer()\n\n segments.forEach(function (data) {\n // prefix data with mode indicator (4 bits)\n buffer.put(data.mode.bit, 4)\n\n // Prefix data with character count indicator.\n // The character count indicator is a string of bits that represents the\n // number of characters that are being encoded.\n // The character count indicator must be placed after the mode indicator\n // and must be a certain number of bits long, depending on the QR version\n // and data mode\n // @see {@link Mode.getCharCountIndicator}.\n buffer.put(data.getLength(), Mode.getCharCountIndicator(data.mode, version))\n\n // add binary data sequence to buffer\n data.write(buffer)\n })\n\n // Calculate required number of bits\n var totalCodewords = Utils.getSymbolTotalCodewords(version)\n var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n var dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8\n\n // Add a terminator.\n // If the bit string is shorter than the total number of required bits,\n // a terminator of up to four 0s must be added to the right side of the string.\n // If the bit string is more than four bits shorter than the required number of bits,\n // add four 0s to the end.\n if (buffer.getLengthInBits() + 4 <= dataTotalCodewordsBits) {\n buffer.put(0, 4)\n }\n\n // If the bit string is fewer than four bits shorter, add only the number of 0s that\n // are needed to reach the required number of bits.\n\n // After adding the terminator, if the number of bits in the string is not a multiple of 8,\n // pad the string on the right with 0s to make the string's length a multiple of 8.\n while (buffer.getLengthInBits() % 8 !== 0) {\n buffer.putBit(0)\n }\n\n // Add pad bytes if the string is still shorter than the total number of required bits.\n // Extend the buffer to fill the data capacity of the symbol corresponding to\n // the Version and Error Correction Level by adding the Pad Codewords 11101100 (0xEC)\n // and 00010001 (0x11) alternately.\n var remainingByte = (dataTotalCodewordsBits - buffer.getLengthInBits()) / 8\n for (var i = 0; i < remainingByte; i++) {\n buffer.put(i % 2 ? 0x11 : 0xEC, 8)\n }\n\n return createCodewords(buffer, version, errorCorrectionLevel)\n}\n\n/**\n * Encode input data with Reed-Solomon and return codewords with\n * relative error correction bits\n *\n * @param {BitBuffer} bitBuffer Data to encode\n * @param {Number} version QR Code version\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @return {Buffer} Buffer containing encoded codewords\n */\nfunction createCodewords (bitBuffer, version, errorCorrectionLevel) {\n // Total codewords for this QR code version (Data + Error correction)\n var totalCodewords = Utils.getSymbolTotalCodewords(version)\n\n // Total number of error correction codewords\n var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n\n // Total number of data codewords\n var dataTotalCodewords = totalCodewords - ecTotalCodewords\n\n // Total number of blocks\n var ecTotalBlocks = ECCode.getBlocksCount(version, errorCorrectionLevel)\n\n // Calculate how many blocks each group should contain\n var blocksInGroup2 = totalCodewords % ecTotalBlocks\n var blocksInGroup1 = ecTotalBlocks - blocksInGroup2\n\n var totalCodewordsInGroup1 = Math.floor(totalCodewords / ecTotalBlocks)\n\n var dataCodewordsInGroup1 = Math.floor(dataTotalCodewords / ecTotalBlocks)\n var dataCodewordsInGroup2 = dataCodewordsInGroup1 + 1\n\n // Number of EC codewords is the same for both groups\n var ecCount = totalCodewordsInGroup1 - dataCodewordsInGroup1\n\n // Initialize a Reed-Solomon encoder with a generator polynomial of degree ecCount\n var rs = new ReedSolomonEncoder(ecCount)\n\n var offset = 0\n var dcData = new Array(ecTotalBlocks)\n var ecData = new Array(ecTotalBlocks)\n var maxDataSize = 0\n var buffer = BufferUtil.from(bitBuffer.buffer)\n\n // Divide the buffer into the required number of blocks\n for (var b = 0; b < ecTotalBlocks; b++) {\n var dataSize = b < blocksInGroup1 ? dataCodewordsInGroup1 : dataCodewordsInGroup2\n\n // extract a block of data from buffer\n dcData[b] = buffer.slice(offset, offset + dataSize)\n\n // Calculate EC codewords for this data block\n ecData[b] = rs.encode(dcData[b])\n\n offset += dataSize\n maxDataSize = Math.max(maxDataSize, dataSize)\n }\n\n // Create final data\n // Interleave the data and error correction codewords from each block\n var data = BufferUtil.alloc(totalCodewords)\n var index = 0\n var i, r\n\n // Add data codewords\n for (i = 0; i < maxDataSize; i++) {\n for (r = 0; r < ecTotalBlocks; r++) {\n if (i < dcData[r].length) {\n data[index++] = dcData[r][i]\n }\n }\n }\n\n // Apped EC codewords\n for (i = 0; i < ecCount; i++) {\n for (r = 0; r < ecTotalBlocks; r++) {\n data[index++] = ecData[r][i]\n }\n }\n\n return data\n}\n\n/**\n * Build QR Code symbol\n *\n * @param {String} data Input string\n * @param {Number} version QR Code version\n * @param {ErrorCorretionLevel} errorCorrectionLevel Error level\n * @param {MaskPattern} maskPattern Mask pattern\n * @return {Object} Object containing symbol data\n */\nfunction createSymbol (data, version, errorCorrectionLevel, maskPattern) {\n var segments\n\n if (isArray(data)) {\n segments = Segments.fromArray(data)\n } else if (typeof data === 'string') {\n var estimatedVersion = version\n\n if (!estimatedVersion) {\n var rawSegments = Segments.rawSplit(data)\n\n // Estimate best version that can contain raw splitted segments\n estimatedVersion = Version.getBestVersionForData(rawSegments,\n errorCorrectionLevel)\n }\n\n // Build optimized segments\n // If estimated version is undefined, try with the highest version\n segments = Segments.fromString(data, estimatedVersion || 40)\n } else {\n throw new Error('Invalid data')\n }\n\n // Get the min version that can contain data\n var bestVersion = Version.getBestVersionForData(segments,\n errorCorrectionLevel)\n\n // If no version is found, data cannot be stored\n if (!bestVersion) {\n throw new Error('The amount of data is too big to be stored in a QR Code')\n }\n\n // If not specified, use min version as default\n if (!version) {\n version = bestVersion\n\n // Check if the specified version can contain the data\n } else if (version < bestVersion) {\n throw new Error('\\n' +\n 'The chosen QR Code version cannot contain this amount of data.\\n' +\n 'Minimum version required to store current data is: ' + bestVersion + '.\\n'\n )\n }\n\n var dataBits = createData(version, errorCorrectionLevel, segments)\n\n // Allocate matrix buffer\n var moduleCount = Utils.getSymbolSize(version)\n var modules = new BitMatrix(moduleCount)\n\n // Add function modules\n setupFinderPattern(modules, version)\n setupTimingPattern(modules)\n setupAlignmentPattern(modules, version)\n\n // Add temporary dummy bits for format info just to set them as reserved.\n // This is needed to prevent these bits from being masked by {@link MaskPattern.applyMask}\n // since the masking operation must be performed only on the encoding region.\n // These blocks will be replaced with correct values later in code.\n setupFormatInfo(modules, errorCorrectionLevel, 0)\n\n if (version >= 7) {\n setupVersionInfo(modules, version)\n }\n\n // Add data codewords\n setupData(modules, dataBits)\n\n if (isNaN(maskPattern)) {\n // Find best mask pattern\n maskPattern = MaskPattern.getBestMask(modules,\n setupFormatInfo.bind(null, modules, errorCorrectionLevel))\n }\n\n // Apply mask pattern\n MaskPattern.applyMask(maskPattern, modules)\n\n // Replace format info bits with correct values\n setupFormatInfo(modules, errorCorrectionLevel, maskPattern)\n\n return {\n modules: modules,\n version: version,\n errorCorrectionLevel: errorCorrectionLevel,\n maskPattern: maskPattern,\n segments: segments\n }\n}\n\n/**\n * QR Code\n *\n * @param {String | Array} data Input data\n * @param {Object} options Optional configurations\n * @param {Number} options.version QR Code version\n * @param {String} options.errorCorrectionLevel Error correction level\n * @param {Function} options.toSJISFunc Helper func to convert utf8 to sjis\n */\nexports.create = function create (data, options) {\n if (typeof data === 'undefined' || data === '') {\n throw new Error('No input text')\n }\n\n var errorCorrectionLevel = ECLevel.M\n var version\n var mask\n\n if (typeof options !== 'undefined') {\n // Use higher error correction level as default\n errorCorrectionLevel = ECLevel.from(options.errorCorrectionLevel, ECLevel.M)\n version = Version.from(options.version)\n mask = MaskPattern.from(options.maskPattern)\n\n if (options.toSJISFunc) {\n Utils.setToSJISFunction(options.toSJISFunc)\n }\n }\n\n return createSymbol(data, version, errorCorrectionLevel, mask)\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/qrcode/lib/core/qrcode.js\n// module id = 450\n// module chunks = 0","function BitBuffer () {\n this.buffer = []\n this.length = 0\n}\n\nBitBuffer.prototype = {\n\n get: function (index) {\n var bufIndex = Math.floor(index / 8)\n return ((this.buffer[bufIndex] >>> (7 - index % 8)) & 1) === 1\n },\n\n put: function (num, length) {\n for (var i = 0; i < length; i++) {\n this.putBit(((num >>> (length - i - 1)) & 1) === 1)\n }\n },\n\n getLengthInBits: function () {\n return this.length\n },\n\n putBit: function (bit) {\n var bufIndex = Math.floor(this.length / 8)\n if (this.buffer.length <= bufIndex) {\n this.buffer.push(0)\n }\n\n if (bit) {\n this.buffer[bufIndex] |= (0x80 >>> (this.length % 8))\n }\n\n this.length++\n }\n}\n\nmodule.exports = BitBuffer\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/qrcode/lib/core/bit-buffer.js\n// module id = 451\n// module chunks = 0","var BufferUtil = require('../utils/buffer')\n\n/**\n * Helper class to handle QR Code symbol modules\n *\n * @param {Number} size Symbol size\n */\nfunction BitMatrix (size) {\n if (!size || size < 1) {\n throw new Error('BitMatrix size must be defined and greater than 0')\n }\n\n this.size = size\n this.data = BufferUtil.alloc(size * size)\n this.reservedBit = BufferUtil.alloc(size * size)\n}\n\n/**\n * Set bit value at specified location\n * If reserved flag is set, this bit will be ignored during masking process\n *\n * @param {Number} row\n * @param {Number} col\n * @param {Boolean} value\n * @param {Boolean} reserved\n */\nBitMatrix.prototype.set = function (row, col, value, reserved) {\n var index = row * this.size + col\n this.data[index] = value\n if (reserved) this.reservedBit[index] = true\n}\n\n/**\n * Returns bit value at specified location\n *\n * @param {Number} row\n * @param {Number} col\n * @return {Boolean}\n */\nBitMatrix.prototype.get = function (row, col) {\n return this.data[row * this.size + col]\n}\n\n/**\n * Applies xor operator at specified location\n * (used during masking process)\n *\n * @param {Number} row\n * @param {Number} col\n * @param {Boolean} value\n */\nBitMatrix.prototype.xor = function (row, col, value) {\n this.data[row * this.size + col] ^= value\n}\n\n/**\n * Check if bit at specified location is reserved\n *\n * @param {Number} row\n * @param {Number} col\n * @return {Boolean}\n */\nBitMatrix.prototype.isReserved = function (row, col) {\n return this.reservedBit[row * this.size + col]\n}\n\nmodule.exports = BitMatrix\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/qrcode/lib/core/bit-matrix.js\n// module id = 452\n// module chunks = 0","/**\n * Alignment pattern are fixed reference pattern in defined positions\n * in a matrix symbology, which enables the decode software to re-synchronise\n * the coordinate mapping of the image modules in the event of moderate amounts\n * of distortion of the image.\n *\n * Alignment patterns are present only in QR Code symbols of version 2 or larger\n * and their number depends on the symbol version.\n */\n\nvar getSymbolSize = require('./utils').getSymbolSize\n\n/**\n * Calculate the row/column coordinates of the center module of each alignment pattern\n * for the specified QR Code version.\n *\n * The alignment patterns are positioned symmetrically on either side of the diagonal\n * running from the top left corner of the symbol to the bottom right corner.\n *\n * Since positions are simmetrical only half of the coordinates are returned.\n * Each item of the array will represent in turn the x and y coordinate.\n * @see {@link getPositions}\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinate\n */\nexports.getRowColCoords = function getRowColCoords (version) {\n if (version === 1) return []\n\n var posCount = Math.floor(version / 7) + 2\n var size = getSymbolSize(version)\n var intervals = size === 145 ? 26 : Math.ceil((size - 13) / (2 * posCount - 2)) * 2\n var positions = [size - 7] // Last coord is always (size - 7)\n\n for (var i = 1; i < posCount - 1; i++) {\n positions[i] = positions[i - 1] - intervals\n }\n\n positions.push(6) // First coord is always 6\n\n return positions.reverse()\n}\n\n/**\n * Returns an array containing the positions of each alignment pattern.\n * Each array's element represent the center point of the pattern as (x, y) coordinates\n *\n * Coordinates are calculated expanding the row/column coordinates returned by {@link getRowColCoords}\n * and filtering out the items that overlaps with finder pattern\n *\n * @example\n * For a Version 7 symbol {@link getRowColCoords} returns values 6, 22 and 38.\n * The alignment patterns, therefore, are to be centered on (row, column)\n * positions (6,22), (22,6), (22,22), (22,38), (38,22), (38,38).\n * Note that the coordinates (6,6), (6,38), (38,6) are occupied by finder patterns\n * and are not therefore used for alignment patterns.\n *\n * var pos = getPositions(7)\n * // [[6,22], [22,6], [22,22], [22,38], [38,22], [38,38]]\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinates\n */\nexports.getPositions = function getPositions (version) {\n var coords = []\n var pos = exports.getRowColCoords(version)\n var posLength = pos.length\n\n for (var i = 0; i < posLength; i++) {\n for (var j = 0; j < posLength; j++) {\n // Skip if position is occupied by finder patterns\n if ((i === 0 && j === 0) || // top-left\n (i === 0 && j === posLength - 1) || // bottom-left\n (i === posLength - 1 && j === 0)) { // top-right\n continue\n }\n\n coords.push([pos[i], pos[j]])\n }\n }\n\n return coords\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/qrcode/lib/core/alignment-pattern.js\n// module id = 453\n// module chunks = 0","var getSymbolSize = require('./utils').getSymbolSize\nvar FINDER_PATTERN_SIZE = 7\n\n/**\n * Returns an array containing the positions of each finder pattern.\n * Each array's element represent the top-left point of the pattern as (x, y) coordinates\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinates\n */\nexports.getPositions = function getPositions (version) {\n var size = getSymbolSize(version)\n\n return [\n // top-left\n [0, 0],\n // top-right\n [size - FINDER_PATTERN_SIZE, 0],\n // bottom-left\n [0, size - FINDER_PATTERN_SIZE]\n ]\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/qrcode/lib/core/finder-pattern.js\n// module id = 454\n// module chunks = 0","/**\n * Data mask pattern reference\n * @type {Object}\n */\nexports.Patterns = {\n PATTERN000: 0,\n PATTERN001: 1,\n PATTERN010: 2,\n PATTERN011: 3,\n PATTERN100: 4,\n PATTERN101: 5,\n PATTERN110: 6,\n PATTERN111: 7\n}\n\n/**\n * Weighted penalty scores for the undesirable features\n * @type {Object}\n */\nvar PenaltyScores = {\n N1: 3,\n N2: 3,\n N3: 40,\n N4: 10\n}\n\n/**\n * Check if mask pattern value is valid\n *\n * @param {Number} mask Mask pattern\n * @return {Boolean} true if valid, false otherwise\n */\nexports.isValid = function isValid (mask) {\n return mask != null && mask !== '' && !isNaN(mask) && mask >= 0 && mask <= 7\n}\n\n/**\n * Returns mask pattern from a value.\n * If value is not valid, returns undefined\n *\n * @param {Number|String} value Mask pattern value\n * @return {Number} Valid mask pattern or undefined\n */\nexports.from = function from (value) {\n return exports.isValid(value) ? parseInt(value, 10) : undefined\n}\n\n/**\n* Find adjacent modules in row/column with the same color\n* and assign a penalty value.\n*\n* Points: N1 + i\n* i is the amount by which the number of adjacent modules of the same color exceeds 5\n*/\nexports.getPenaltyN1 = function getPenaltyN1 (data) {\n var size = data.size\n var points = 0\n var sameCountCol = 0\n var sameCountRow = 0\n var lastCol = null\n var lastRow = null\n\n for (var row = 0; row < size; row++) {\n sameCountCol = sameCountRow = 0\n lastCol = lastRow = null\n\n for (var col = 0; col < size; col++) {\n var module = data.get(row, col)\n if (module === lastCol) {\n sameCountCol++\n } else {\n if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5)\n lastCol = module\n sameCountCol = 1\n }\n\n module = data.get(col, row)\n if (module === lastRow) {\n sameCountRow++\n } else {\n if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5)\n lastRow = module\n sameCountRow = 1\n }\n }\n\n if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5)\n if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5)\n }\n\n return points\n}\n\n/**\n * Find 2x2 blocks with the same color and assign a penalty value\n *\n * Points: N2 * (m - 1) * (n - 1)\n */\nexports.getPenaltyN2 = function getPenaltyN2 (data) {\n var size = data.size\n var points = 0\n\n for (var row = 0; row < size - 1; row++) {\n for (var col = 0; col < size - 1; col++) {\n var last = data.get(row, col) +\n data.get(row, col + 1) +\n data.get(row + 1, col) +\n data.get(row + 1, col + 1)\n\n if (last === 4 || last === 0) points++\n }\n }\n\n return points * PenaltyScores.N2\n}\n\n/**\n * Find 1:1:3:1:1 ratio (dark:light:dark:light:dark) pattern in row/column,\n * preceded or followed by light area 4 modules wide\n *\n * Points: N3 * number of pattern found\n */\nexports.getPenaltyN3 = function getPenaltyN3 (data) {\n var size = data.size\n var points = 0\n var bitsCol = 0\n var bitsRow = 0\n\n for (var row = 0; row < size; row++) {\n bitsCol = bitsRow = 0\n for (var col = 0; col < size; col++) {\n bitsCol = ((bitsCol << 1) & 0x7FF) | data.get(row, col)\n if (col >= 10 && (bitsCol === 0x5D0 || bitsCol === 0x05D)) points++\n\n bitsRow = ((bitsRow << 1) & 0x7FF) | data.get(col, row)\n if (col >= 10 && (bitsRow === 0x5D0 || bitsRow === 0x05D)) points++\n }\n }\n\n return points * PenaltyScores.N3\n}\n\n/**\n * Calculate proportion of dark modules in entire symbol\n *\n * Points: N4 * k\n *\n * k is the rating of the deviation of the proportion of dark modules\n * in the symbol from 50% in steps of 5%\n */\nexports.getPenaltyN4 = function getPenaltyN4 (data) {\n var darkCount = 0\n var modulesCount = data.data.length\n\n for (var i = 0; i < modulesCount; i++) darkCount += data.data[i]\n\n var k = Math.abs(Math.ceil((darkCount * 100 / modulesCount) / 5) - 10)\n\n return k * PenaltyScores.N4\n}\n\n/**\n * Return mask value at given position\n *\n * @param {Number} maskPattern Pattern reference value\n * @param {Number} i Row\n * @param {Number} j Column\n * @return {Boolean} Mask value\n */\nfunction getMaskAt (maskPattern, i, j) {\n switch (maskPattern) {\n case exports.Patterns.PATTERN000: return (i + j) % 2 === 0\n case exports.Patterns.PATTERN001: return i % 2 === 0\n case exports.Patterns.PATTERN010: return j % 3 === 0\n case exports.Patterns.PATTERN011: return (i + j) % 3 === 0\n case exports.Patterns.PATTERN100: return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 === 0\n case exports.Patterns.PATTERN101: return (i * j) % 2 + (i * j) % 3 === 0\n case exports.Patterns.PATTERN110: return ((i * j) % 2 + (i * j) % 3) % 2 === 0\n case exports.Patterns.PATTERN111: return ((i * j) % 3 + (i + j) % 2) % 2 === 0\n\n default: throw new Error('bad maskPattern:' + maskPattern)\n }\n}\n\n/**\n * Apply a mask pattern to a BitMatrix\n *\n * @param {Number} pattern Pattern reference number\n * @param {BitMatrix} data BitMatrix data\n */\nexports.applyMask = function applyMask (pattern, data) {\n var size = data.size\n\n for (var col = 0; col < size; col++) {\n for (var row = 0; row < size; row++) {\n if (data.isReserved(row, col)) continue\n data.xor(row, col, getMaskAt(pattern, row, col))\n }\n }\n}\n\n/**\n * Returns the best mask pattern for data\n *\n * @param {BitMatrix} data\n * @return {Number} Mask pattern reference number\n */\nexports.getBestMask = function getBestMask (data, setupFormatFunc) {\n var numPatterns = Object.keys(exports.Patterns).length\n var bestPattern = 0\n var lowerPenalty = Infinity\n\n for (var p = 0; p < numPatterns; p++) {\n setupFormatFunc(p)\n exports.applyMask(p, data)\n\n // Calculate penalty\n var penalty =\n exports.getPenaltyN1(data) +\n exports.getPenaltyN2(data) +\n exports.getPenaltyN3(data) +\n exports.getPenaltyN4(data)\n\n // Undo previously applied mask\n exports.applyMask(p, data)\n\n if (penalty < lowerPenalty) {\n lowerPenalty = penalty\n bestPattern = p\n }\n }\n\n return bestPattern\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/qrcode/lib/core/mask-pattern.js\n// module id = 455\n// module chunks = 0","var BufferUtil = require('../utils/buffer')\nvar Polynomial = require('./polynomial')\nvar Buffer = require('buffer').Buffer\n\nfunction ReedSolomonEncoder (degree) {\n this.genPoly = undefined\n this.degree = degree\n\n if (this.degree) this.initialize(this.degree)\n}\n\n/**\n * Initialize the encoder.\n * The input param should correspond to the number of error correction codewords.\n *\n * @param {Number} degree\n */\nReedSolomonEncoder.prototype.initialize = function initialize (degree) {\n // create an irreducible generator polynomial\n this.degree = degree\n this.genPoly = Polynomial.generateECPolynomial(this.degree)\n}\n\n/**\n * Encodes a chunk of data\n *\n * @param {Buffer} data Buffer containing input data\n * @return {Buffer} Buffer containing encoded data\n */\nReedSolomonEncoder.prototype.encode = function encode (data) {\n if (!this.genPoly) {\n throw new Error('Encoder not initialized')\n }\n\n // Calculate EC for this data block\n // extends data size to data+genPoly size\n var pad = BufferUtil.alloc(this.degree)\n var paddedData = Buffer.concat([data, pad], data.length + this.degree)\n\n // The error correction codewords are the remainder after dividing the data codewords\n // by a generator polynomial\n var remainder = Polynomial.mod(paddedData, this.genPoly)\n\n // return EC data blocks (last n byte, where n is the degree of genPoly)\n // If coefficients number in remainder are less than genPoly degree,\n // pad with 0s to the left to reach the needed number of coefficients\n var start = this.degree - remainder.length\n if (start > 0) {\n var buff = BufferUtil.alloc(this.degree)\n remainder.copy(buff, start)\n\n return buff\n }\n\n return remainder\n}\n\nmodule.exports = ReedSolomonEncoder\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/qrcode/lib/core/reed-solomon-encoder.js\n// module id = 456\n// module chunks = 0","var BufferUtil = require('../utils/buffer')\nvar GF = require('./galois-field')\n\n/**\n * Multiplies two polynomials inside Galois Field\n *\n * @param {Buffer} p1 Polynomial\n * @param {Buffer} p2 Polynomial\n * @return {Buffer} Product of p1 and p2\n */\nexports.mul = function mul (p1, p2) {\n var coeff = BufferUtil.alloc(p1.length + p2.length - 1)\n\n for (var i = 0; i < p1.length; i++) {\n for (var j = 0; j < p2.length; j++) {\n coeff[i + j] ^= GF.mul(p1[i], p2[j])\n }\n }\n\n return coeff\n}\n\n/**\n * Calculate the remainder of polynomials division\n *\n * @param {Buffer} divident Polynomial\n * @param {Buffer} divisor Polynomial\n * @return {Buffer} Remainder\n */\nexports.mod = function mod (divident, divisor) {\n var result = BufferUtil.from(divident)\n\n while ((result.length - divisor.length) >= 0) {\n var coeff = result[0]\n\n for (var i = 0; i < divisor.length; i++) {\n result[i] ^= GF.mul(divisor[i], coeff)\n }\n\n // remove all zeros from buffer head\n var offset = 0\n while (offset < result.length && result[offset] === 0) offset++\n result = result.slice(offset)\n }\n\n return result\n}\n\n/**\n * Generate an irreducible generator polynomial of specified degree\n * (used by Reed-Solomon encoder)\n *\n * @param {Number} degree Degree of the generator polynomial\n * @return {Buffer} Buffer containing polynomial coefficients\n */\nexports.generateECPolynomial = function generateECPolynomial (degree) {\n var poly = BufferUtil.from([1])\n for (var i = 0; i < degree; i++) {\n poly = exports.mul(poly, [1, GF.exp(i)])\n }\n\n return poly\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/qrcode/lib/core/polynomial.js\n// module id = 457\n// module chunks = 0","var BufferUtil = require('../utils/buffer')\n\nvar EXP_TABLE = BufferUtil.alloc(512)\nvar LOG_TABLE = BufferUtil.alloc(256)\n/**\n * Precompute the log and anti-log tables for faster computation later\n *\n * For each possible value in the galois field 2^8, we will pre-compute\n * the logarithm and anti-logarithm (exponential) of this value\n *\n * ref {@link https://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders#Introduction_to_mathematical_fields}\n */\n;(function initTables () {\n var x = 1\n for (var i = 0; i < 255; i++) {\n EXP_TABLE[i] = x\n LOG_TABLE[x] = i\n\n x <<= 1 // multiply by 2\n\n // The QR code specification says to use byte-wise modulo 100011101 arithmetic.\n // This means that when a number is 256 or larger, it should be XORed with 0x11D.\n if (x & 0x100) { // similar to x >= 256, but a lot faster (because 0x100 == 256)\n x ^= 0x11D\n }\n }\n\n // Optimization: double the size of the anti-log table so that we don't need to mod 255 to\n // stay inside the bounds (because we will mainly use this table for the multiplication of\n // two GF numbers, no more).\n // @see {@link mul}\n for (i = 255; i < 512; i++) {\n EXP_TABLE[i] = EXP_TABLE[i - 255]\n }\n}())\n\n/**\n * Returns log value of n inside Galois Field\n *\n * @param {Number} n\n * @return {Number}\n */\nexports.log = function log (n) {\n if (n < 1) throw new Error('log(' + n + ')')\n return LOG_TABLE[n]\n}\n\n/**\n * Returns anti-log value of n inside Galois Field\n *\n * @param {Number} n\n * @return {Number}\n */\nexports.exp = function exp (n) {\n return EXP_TABLE[n]\n}\n\n/**\n * Multiplies two number inside Galois Field\n *\n * @param {Number} x\n * @param {Number} y\n * @return {Number}\n */\nexports.mul = function mul (x, y) {\n if (x === 0 || y === 0) return 0\n\n // should be EXP_TABLE[(LOG_TABLE[x] + LOG_TABLE[y]) % 255] if EXP_TABLE wasn't oversized\n // @see {@link initTables}\n return EXP_TABLE[LOG_TABLE[x] + LOG_TABLE[y]]\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/qrcode/lib/core/galois-field.js\n// module id = 458\n// module chunks = 0","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <http://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return '<Buffer ' + str + '>'\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/node-libs-browser/node_modules/buffer/index.js\n// module id = 459\n// module chunks = 0","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/base64-js/index.js\n// module id = 460\n// module chunks = 0","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/ieee754/index.js\n// module id = 461\n// module chunks = 0","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/node-libs-browser/node_modules/isarray/index.js\n// module id = 462\n// module chunks = 0","var Utils = require('./utils')\nvar ECCode = require('./error-correction-code')\nvar ECLevel = require('./error-correction-level')\nvar Mode = require('./mode')\nvar VersionCheck = require('./version-check')\nvar isArray = require('isarray')\n\n// Generator polynomial used to encode version information\nvar G18 = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0)\nvar G18_BCH = Utils.getBCHDigit(G18)\n\nfunction getBestVersionForDataLength (mode, length, errorCorrectionLevel) {\n for (var currentVersion = 1; currentVersion <= 40; currentVersion++) {\n if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, mode)) {\n return currentVersion\n }\n }\n\n return undefined\n}\n\nfunction getReservedBitsCount (mode, version) {\n // Character count indicator + mode indicator bits\n return Mode.getCharCountIndicator(mode, version) + 4\n}\n\nfunction getTotalBitsFromDataArray (segments, version) {\n var totalBits = 0\n\n segments.forEach(function (data) {\n var reservedBits = getReservedBitsCount(data.mode, version)\n totalBits += reservedBits + data.getBitsLength()\n })\n\n return totalBits\n}\n\nfunction getBestVersionForMixedData (segments, errorCorrectionLevel) {\n for (var currentVersion = 1; currentVersion <= 40; currentVersion++) {\n var length = getTotalBitsFromDataArray(segments, currentVersion)\n if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, Mode.MIXED)) {\n return currentVersion\n }\n }\n\n return undefined\n}\n\n/**\n * Returns version number from a value.\n * If value is not a valid version, returns defaultValue\n *\n * @param {Number|String} value QR Code version\n * @param {Number} defaultValue Fallback value\n * @return {Number} QR Code version number\n */\nexports.from = function from (value, defaultValue) {\n if (VersionCheck.isValid(value)) {\n return parseInt(value, 10)\n }\n\n return defaultValue\n}\n\n/**\n * Returns how much data can be stored with the specified QR code version\n * and error correction level\n *\n * @param {Number} version QR Code version (1-40)\n * @param {Number} errorCorrectionLevel Error correction level\n * @param {Mode} mode Data mode\n * @return {Number} Quantity of storable data\n */\nexports.getCapacity = function getCapacity (version, errorCorrectionLevel, mode) {\n if (!VersionCheck.isValid(version)) {\n throw new Error('Invalid QR Code version')\n }\n\n // Use Byte mode as default\n if (typeof mode === 'undefined') mode = Mode.BYTE\n\n // Total codewords for this QR code version (Data + Error correction)\n var totalCodewords = Utils.getSymbolTotalCodewords(version)\n\n // Total number of error correction codewords\n var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n\n // Total number of data codewords\n var dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8\n\n if (mode === Mode.MIXED) return dataTotalCodewordsBits\n\n var usableBits = dataTotalCodewordsBits - getReservedBitsCount(mode, version)\n\n // Return max number of storable codewords\n switch (mode) {\n case Mode.NUMERIC:\n return Math.floor((usableBits / 10) * 3)\n\n case Mode.ALPHANUMERIC:\n return Math.floor((usableBits / 11) * 2)\n\n case Mode.KANJI:\n return Math.floor(usableBits / 13)\n\n case Mode.BYTE:\n default:\n return Math.floor(usableBits / 8)\n }\n}\n\n/**\n * Returns the minimum version needed to contain the amount of data\n *\n * @param {Segment} data Segment of data\n * @param {Number} [errorCorrectionLevel=H] Error correction level\n * @param {Mode} mode Data mode\n * @return {Number} QR Code version\n */\nexports.getBestVersionForData = function getBestVersionForData (data, errorCorrectionLevel) {\n var seg\n\n var ecl = ECLevel.from(errorCorrectionLevel, ECLevel.M)\n\n if (isArray(data)) {\n if (data.length > 1) {\n return getBestVersionForMixedData(data, ecl)\n }\n\n if (data.length === 0) {\n return 1\n }\n\n seg = data[0]\n } else {\n seg = data\n }\n\n return getBestVersionForDataLength(seg.mode, seg.getLength(), ecl)\n}\n\n/**\n * Returns version information with relative error correction bits\n *\n * The version information is included in QR Code symbols of version 7 or larger.\n * It consists of an 18-bit sequence containing 6 data bits,\n * with 12 error correction bits calculated using the (18, 6) Golay code.\n *\n * @param {Number} version QR Code version\n * @return {Number} Encoded version info bits\n */\nexports.getEncodedBits = function getEncodedBits (version) {\n if (!VersionCheck.isValid(version) || version < 7) {\n throw new Error('Invalid QR Code version')\n }\n\n var d = version << 12\n\n while (Utils.getBCHDigit(d) - G18_BCH >= 0) {\n d ^= (G18 << (Utils.getBCHDigit(d) - G18_BCH))\n }\n\n return (version << 12) | d\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/qrcode/lib/core/version.js\n// module id = 463\n// module chunks = 0","var Utils = require('./utils')\n\nvar G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0)\nvar G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1)\nvar G15_BCH = Utils.getBCHDigit(G15)\n\n/**\n * Returns format information with relative error correction bits\n *\n * The format information is a 15-bit sequence containing 5 data bits,\n * with 10 error correction bits calculated using the (15, 5) BCH code.\n *\n * @param {Number} errorCorrectionLevel Error correction level\n * @param {Number} mask Mask pattern\n * @return {Number} Encoded format information bits\n */\nexports.getEncodedBits = function getEncodedBits (errorCorrectionLevel, mask) {\n var data = ((errorCorrectionLevel.bit << 3) | mask)\n var d = data << 10\n\n while (Utils.getBCHDigit(d) - G15_BCH >= 0) {\n d ^= (G15 << (Utils.getBCHDigit(d) - G15_BCH))\n }\n\n // xor final data with mask pattern in order to ensure that\n // no combination of Error Correction Level and data mask pattern\n // will result in an all-zero data string\n return ((data << 10) | d) ^ G15_MASK\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/qrcode/lib/core/format-info.js\n// module id = 464\n// module chunks = 0","var Mode = require('./mode')\nvar NumericData = require('./numeric-data')\nvar AlphanumericData = require('./alphanumeric-data')\nvar ByteData = require('./byte-data')\nvar KanjiData = require('./kanji-data')\nvar Regex = require('./regex')\nvar Utils = require('./utils')\nvar dijkstra = require('dijkstrajs')\n\n/**\n * Returns UTF8 byte length\n *\n * @param {String} str Input string\n * @return {Number} Number of byte\n */\nfunction getStringByteLength (str) {\n return unescape(encodeURIComponent(str)).length\n}\n\n/**\n * Get a list of segments of the specified mode\n * from a string\n *\n * @param {Mode} mode Segment mode\n * @param {String} str String to process\n * @return {Array} Array of object with segments data\n */\nfunction getSegments (regex, mode, str) {\n var segments = []\n var result\n\n while ((result = regex.exec(str)) !== null) {\n segments.push({\n data: result[0],\n index: result.index,\n mode: mode,\n length: result[0].length\n })\n }\n\n return segments\n}\n\n/**\n * Extracts a series of segments with the appropriate\n * modes from a string\n *\n * @param {String} dataStr Input string\n * @return {Array} Array of object with segments data\n */\nfunction getSegmentsFromString (dataStr) {\n var numSegs = getSegments(Regex.NUMERIC, Mode.NUMERIC, dataStr)\n var alphaNumSegs = getSegments(Regex.ALPHANUMERIC, Mode.ALPHANUMERIC, dataStr)\n var byteSegs\n var kanjiSegs\n\n if (Utils.isKanjiModeEnabled()) {\n byteSegs = getSegments(Regex.BYTE, Mode.BYTE, dataStr)\n kanjiSegs = getSegments(Regex.KANJI, Mode.KANJI, dataStr)\n } else {\n byteSegs = getSegments(Regex.BYTE_KANJI, Mode.BYTE, dataStr)\n kanjiSegs = []\n }\n\n var segs = numSegs.concat(alphaNumSegs, byteSegs, kanjiSegs)\n\n return segs\n .sort(function (s1, s2) {\n return s1.index - s2.index\n })\n .map(function (obj) {\n return {\n data: obj.data,\n mode: obj.mode,\n length: obj.length\n }\n })\n}\n\n/**\n * Returns how many bits are needed to encode a string of\n * specified length with the specified mode\n *\n * @param {Number} length String length\n * @param {Mode} mode Segment mode\n * @return {Number} Bit length\n */\nfunction getSegmentBitsLength (length, mode) {\n switch (mode) {\n case Mode.NUMERIC:\n return NumericData.getBitsLength(length)\n case Mode.ALPHANUMERIC:\n return AlphanumericData.getBitsLength(length)\n case Mode.KANJI:\n return KanjiData.getBitsLength(length)\n case Mode.BYTE:\n return ByteData.getBitsLength(length)\n }\n}\n\n/**\n * Merges adjacent segments which have the same mode\n *\n * @param {Array} segs Array of object with segments data\n * @return {Array} Array of object with segments data\n */\nfunction mergeSegments (segs) {\n return segs.reduce(function (acc, curr) {\n var prevSeg = acc.length - 1 >= 0 ? acc[acc.length - 1] : null\n if (prevSeg && prevSeg.mode === curr.mode) {\n acc[acc.length - 1].data += curr.data\n return acc\n }\n\n acc.push(curr)\n return acc\n }, [])\n}\n\n/**\n * Generates a list of all possible nodes combination which\n * will be used to build a segments graph.\n *\n * Nodes are divided by groups. Each group will contain a list of all the modes\n * in which is possible to encode the given text.\n *\n * For example the text '12345' can be encoded as Numeric, Alphanumeric or Byte.\n * The group for '12345' will contain then 3 objects, one for each\n * possible encoding mode.\n *\n * Each node represents a possible segment.\n *\n * @param {Array} segs Array of object with segments data\n * @return {Array} Array of object with segments data\n */\nfunction buildNodes (segs) {\n var nodes = []\n for (var i = 0; i < segs.length; i++) {\n var seg = segs[i]\n\n switch (seg.mode) {\n case Mode.NUMERIC:\n nodes.push([seg,\n { data: seg.data, mode: Mode.ALPHANUMERIC, length: seg.length },\n { data: seg.data, mode: Mode.BYTE, length: seg.length }\n ])\n break\n case Mode.ALPHANUMERIC:\n nodes.push([seg,\n { data: seg.data, mode: Mode.BYTE, length: seg.length }\n ])\n break\n case Mode.KANJI:\n nodes.push([seg,\n { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n ])\n break\n case Mode.BYTE:\n nodes.push([\n { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n ])\n }\n }\n\n return nodes\n}\n\n/**\n * Builds a graph from a list of nodes.\n * All segments in each node group will be connected with all the segments of\n * the next group and so on.\n *\n * At each connection will be assigned a weight depending on the\n * segment's byte length.\n *\n * @param {Array} nodes Array of object with segments data\n * @param {Number} version QR Code version\n * @return {Object} Graph of all possible segments\n */\nfunction buildGraph (nodes, version) {\n var table = {}\n var graph = {'start': {}}\n var prevNodeIds = ['start']\n\n for (var i = 0; i < nodes.length; i++) {\n var nodeGroup = nodes[i]\n var currentNodeIds = []\n\n for (var j = 0; j < nodeGroup.length; j++) {\n var node = nodeGroup[j]\n var key = '' + i + j\n\n currentNodeIds.push(key)\n table[key] = { node: node, lastCount: 0 }\n graph[key] = {}\n\n for (var n = 0; n < prevNodeIds.length; n++) {\n var prevNodeId = prevNodeIds[n]\n\n if (table[prevNodeId] && table[prevNodeId].node.mode === node.mode) {\n graph[prevNodeId][key] =\n getSegmentBitsLength(table[prevNodeId].lastCount + node.length, node.mode) -\n getSegmentBitsLength(table[prevNodeId].lastCount, node.mode)\n\n table[prevNodeId].lastCount += node.length\n } else {\n if (table[prevNodeId]) table[prevNodeId].lastCount = node.length\n\n graph[prevNodeId][key] = getSegmentBitsLength(node.length, node.mode) +\n 4 + Mode.getCharCountIndicator(node.mode, version) // switch cost\n }\n }\n }\n\n prevNodeIds = currentNodeIds\n }\n\n for (n = 0; n < prevNodeIds.length; n++) {\n graph[prevNodeIds[n]]['end'] = 0\n }\n\n return { map: graph, table: table }\n}\n\n/**\n * Builds a segment from a specified data and mode.\n * If a mode is not specified, the more suitable will be used.\n *\n * @param {String} data Input data\n * @param {Mode | String} modesHint Data mode\n * @return {Segment} Segment\n */\nfunction buildSingleSegment (data, modesHint) {\n var mode\n var bestMode = Mode.getBestModeForData(data)\n\n mode = Mode.from(modesHint, bestMode)\n\n // Make sure data can be encoded\n if (mode !== Mode.BYTE && mode.bit < bestMode.bit) {\n throw new Error('\"' + data + '\"' +\n ' cannot be encoded with mode ' + Mode.toString(mode) +\n '.\\n Suggested mode is: ' + Mode.toString(bestMode))\n }\n\n // Use Mode.BYTE if Kanji support is disabled\n if (mode === Mode.KANJI && !Utils.isKanjiModeEnabled()) {\n mode = Mode.BYTE\n }\n\n switch (mode) {\n case Mode.NUMERIC:\n return new NumericData(data)\n\n case Mode.ALPHANUMERIC:\n return new AlphanumericData(data)\n\n case Mode.KANJI:\n return new KanjiData(data)\n\n case Mode.BYTE:\n return new ByteData(data)\n }\n}\n\n/**\n * Builds a list of segments from an array.\n * Array can contain Strings or Objects with segment's info.\n *\n * For each item which is a string, will be generated a segment with the given\n * string and the more appropriate encoding mode.\n *\n * For each item which is an object, will be generated a segment with the given\n * data and mode.\n * Objects must contain at least the property \"data\".\n * If property \"mode\" is not present, the more suitable mode will be used.\n *\n * @param {Array} array Array of objects with segments data\n * @return {Array} Array of Segments\n */\nexports.fromArray = function fromArray (array) {\n return array.reduce(function (acc, seg) {\n if (typeof seg === 'string') {\n acc.push(buildSingleSegment(seg, null))\n } else if (seg.data) {\n acc.push(buildSingleSegment(seg.data, seg.mode))\n }\n\n return acc\n }, [])\n}\n\n/**\n * Builds an optimized sequence of segments from a string,\n * which will produce the shortest possible bitstream.\n *\n * @param {String} data Input string\n * @param {Number} version QR Code version\n * @return {Array} Array of segments\n */\nexports.fromString = function fromString (data, version) {\n var segs = getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n\n var nodes = buildNodes(segs)\n var graph = buildGraph(nodes, version)\n var path = dijkstra.find_path(graph.map, 'start', 'end')\n\n var optimizedSegs = []\n for (var i = 1; i < path.length - 1; i++) {\n optimizedSegs.push(graph.table[path[i]].node)\n }\n\n return exports.fromArray(mergeSegments(optimizedSegs))\n}\n\n/**\n * Splits a string in various segments with the modes which\n * best represent their content.\n * The produced segments are far from being optimized.\n * The output of this function is only used to estimate a QR Code version\n * which may contain the data.\n *\n * @param {string} data Input string\n * @return {Array} Array of segments\n */\nexports.rawSplit = function rawSplit (data) {\n return exports.fromArray(\n getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n )\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/qrcode/lib/core/segments.js\n// module id = 465\n// module chunks = 0","var Mode = require('./mode')\n\nfunction NumericData (data) {\n this.mode = Mode.NUMERIC\n this.data = data.toString()\n}\n\nNumericData.getBitsLength = function getBitsLength (length) {\n return 10 * Math.floor(length / 3) + ((length % 3) ? ((length % 3) * 3 + 1) : 0)\n}\n\nNumericData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nNumericData.prototype.getBitsLength = function getBitsLength () {\n return NumericData.getBitsLength(this.data.length)\n}\n\nNumericData.prototype.write = function write (bitBuffer) {\n var i, group, value\n\n // The input data string is divided into groups of three digits,\n // and each group is converted to its 10-bit binary equivalent.\n for (i = 0; i + 3 <= this.data.length; i += 3) {\n group = this.data.substr(i, 3)\n value = parseInt(group, 10)\n\n bitBuffer.put(value, 10)\n }\n\n // If the number of input digits is not an exact multiple of three,\n // the final one or two digits are converted to 4 or 7 bits respectively.\n var remainingNum = this.data.length - i\n if (remainingNum > 0) {\n group = this.data.substr(i)\n value = parseInt(group, 10)\n\n bitBuffer.put(value, remainingNum * 3 + 1)\n }\n}\n\nmodule.exports = NumericData\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/qrcode/lib/core/numeric-data.js\n// module id = 466\n// module chunks = 0","var Mode = require('./mode')\n\n/**\n * Array of characters available in alphanumeric mode\n *\n * As per QR Code specification, to each character\n * is assigned a value from 0 to 44 which in this case coincides\n * with the array index\n *\n * @type {Array}\n */\nvar ALPHA_NUM_CHARS = [\n '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',\n 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',\n ' ', '$', '%', '*', '+', '-', '.', '/', ':'\n]\n\nfunction AlphanumericData (data) {\n this.mode = Mode.ALPHANUMERIC\n this.data = data\n}\n\nAlphanumericData.getBitsLength = function getBitsLength (length) {\n return 11 * Math.floor(length / 2) + 6 * (length % 2)\n}\n\nAlphanumericData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nAlphanumericData.prototype.getBitsLength = function getBitsLength () {\n return AlphanumericData.getBitsLength(this.data.length)\n}\n\nAlphanumericData.prototype.write = function write (bitBuffer) {\n var i\n\n // Input data characters are divided into groups of two characters\n // and encoded as 11-bit binary codes.\n for (i = 0; i + 2 <= this.data.length; i += 2) {\n // The character value of the first character is multiplied by 45\n var value = ALPHA_NUM_CHARS.indexOf(this.data[i]) * 45\n\n // The character value of the second digit is added to the product\n value += ALPHA_NUM_CHARS.indexOf(this.data[i + 1])\n\n // The sum is then stored as 11-bit binary number\n bitBuffer.put(value, 11)\n }\n\n // If the number of input data characters is not a multiple of two,\n // the character value of the final character is encoded as a 6-bit binary number.\n if (this.data.length % 2) {\n bitBuffer.put(ALPHA_NUM_CHARS.indexOf(this.data[i]), 6)\n }\n}\n\nmodule.exports = AlphanumericData\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/qrcode/lib/core/alphanumeric-data.js\n// module id = 467\n// module chunks = 0","var BufferUtil = require('../utils/buffer')\nvar Mode = require('./mode')\n\nfunction ByteData (data) {\n this.mode = Mode.BYTE\n this.data = BufferUtil.from(data)\n}\n\nByteData.getBitsLength = function getBitsLength (length) {\n return length * 8\n}\n\nByteData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nByteData.prototype.getBitsLength = function getBitsLength () {\n return ByteData.getBitsLength(this.data.length)\n}\n\nByteData.prototype.write = function (bitBuffer) {\n for (var i = 0, l = this.data.length; i < l; i++) {\n bitBuffer.put(this.data[i], 8)\n }\n}\n\nmodule.exports = ByteData\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/qrcode/lib/core/byte-data.js\n// module id = 468\n// module chunks = 0","var Mode = require('./mode')\nvar Utils = require('./utils')\n\nfunction KanjiData (data) {\n this.mode = Mode.KANJI\n this.data = data\n}\n\nKanjiData.getBitsLength = function getBitsLength (length) {\n return length * 13\n}\n\nKanjiData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nKanjiData.prototype.getBitsLength = function getBitsLength () {\n return KanjiData.getBitsLength(this.data.length)\n}\n\nKanjiData.prototype.write = function (bitBuffer) {\n var i\n\n // In the Shift JIS system, Kanji characters are represented by a two byte combination.\n // These byte values are shifted from the JIS X 0208 values.\n // JIS X 0208 gives details of the shift coded representation.\n for (i = 0; i < this.data.length; i++) {\n var value = Utils.toSJIS(this.data[i])\n\n // For characters with Shift JIS values from 0x8140 to 0x9FFC:\n if (value >= 0x8140 && value <= 0x9FFC) {\n // Subtract 0x8140 from Shift JIS value\n value -= 0x8140\n\n // For characters with Shift JIS values from 0xE040 to 0xEBBF\n } else if (value >= 0xE040 && value <= 0xEBBF) {\n // Subtract 0xC140 from Shift JIS value\n value -= 0xC140\n } else {\n throw new Error(\n 'Invalid SJIS character: ' + this.data[i] + '\\n' +\n 'Make sure your charset is UTF-8')\n }\n\n // Multiply most significant byte of result by 0xC0\n // and add least significant byte to product\n value = (((value >>> 8) & 0xff) * 0xC0) + (value & 0xff)\n\n // Convert result to a 13-bit binary string\n bitBuffer.put(value, 13)\n }\n}\n\nmodule.exports = KanjiData\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/qrcode/lib/core/kanji-data.js\n// module id = 469\n// module chunks = 0","'use strict';\n\n/******************************************************************************\n * Created 2008-08-19.\n *\n * Dijkstra path-finding functions. Adapted from the Dijkstar Python project.\n *\n * Copyright (C) 2008\n * Wyatt Baldwin <self@wyattbaldwin.com>\n * All rights reserved\n *\n * Licensed under the MIT license.\n *\n * http://www.opensource.org/licenses/mit-license.php\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *****************************************************************************/\nvar dijkstra = {\n single_source_shortest_paths: function(graph, s, d) {\n // Predecessor map for each node that has been encountered.\n // node ID => predecessor node ID\n var predecessors = {};\n\n // Costs of shortest paths from s to all nodes encountered.\n // node ID => cost\n var costs = {};\n costs[s] = 0;\n\n // Costs of shortest paths from s to all nodes encountered; differs from\n // `costs` in that it provides easy access to the node that currently has\n // the known shortest path from s.\n // XXX: Do we actually need both `costs` and `open`?\n var open = dijkstra.PriorityQueue.make();\n open.push(s, 0);\n\n var closest,\n u, v,\n cost_of_s_to_u,\n adjacent_nodes,\n cost_of_e,\n cost_of_s_to_u_plus_cost_of_e,\n cost_of_s_to_v,\n first_visit;\n while (!open.empty()) {\n // In the nodes remaining in graph that have a known cost from s,\n // find the node, u, that currently has the shortest path from s.\n closest = open.pop();\n u = closest.value;\n cost_of_s_to_u = closest.cost;\n\n // Get nodes adjacent to u...\n adjacent_nodes = graph[u] || {};\n\n // ...and explore the edges that connect u to those nodes, updating\n // the cost of the shortest paths to any or all of those nodes as\n // necessary. v is the node across the current edge from u.\n for (v in adjacent_nodes) {\n if (adjacent_nodes.hasOwnProperty(v)) {\n // Get the cost of the edge running from u to v.\n cost_of_e = adjacent_nodes[v];\n\n // Cost of s to u plus the cost of u to v across e--this is *a*\n // cost from s to v that may or may not be less than the current\n // known cost to v.\n cost_of_s_to_u_plus_cost_of_e = cost_of_s_to_u + cost_of_e;\n\n // If we haven't visited v yet OR if the current known cost from s to\n // v is greater than the new cost we just found (cost of s to u plus\n // cost of u to v across e), update v's cost in the cost list and\n // update v's predecessor in the predecessor list (it's now u).\n cost_of_s_to_v = costs[v];\n first_visit = (typeof costs[v] === 'undefined');\n if (first_visit || cost_of_s_to_v > cost_of_s_to_u_plus_cost_of_e) {\n costs[v] = cost_of_s_to_u_plus_cost_of_e;\n open.push(v, cost_of_s_to_u_plus_cost_of_e);\n predecessors[v] = u;\n }\n }\n }\n }\n\n if (typeof d !== 'undefined' && typeof costs[d] === 'undefined') {\n var msg = ['Could not find a path from ', s, ' to ', d, '.'].join('');\n throw new Error(msg);\n }\n\n return predecessors;\n },\n\n extract_shortest_path_from_predecessor_list: function(predecessors, d) {\n var nodes = [];\n var u = d;\n var predecessor;\n while (u) {\n nodes.push(u);\n predecessor = predecessors[u];\n u = predecessors[u];\n }\n nodes.reverse();\n return nodes;\n },\n\n find_path: function(graph, s, d) {\n var predecessors = dijkstra.single_source_shortest_paths(graph, s, d);\n return dijkstra.extract_shortest_path_from_predecessor_list(\n predecessors, d);\n },\n\n /**\n * A very naive priority queue implementation.\n */\n PriorityQueue: {\n make: function (opts) {\n var T = dijkstra.PriorityQueue,\n t = {},\n key;\n opts = opts || {};\n for (key in T) {\n if (T.hasOwnProperty(key)) {\n t[key] = T[key];\n }\n }\n t.queue = [];\n t.sorter = opts.sorter || T.default_sorter;\n return t;\n },\n\n default_sorter: function (a, b) {\n return a.cost - b.cost;\n },\n\n /**\n * Add a new item to the queue and ensure the highest priority element\n * is at the front of the queue.\n */\n push: function (value, cost) {\n var item = {value: value, cost: cost};\n this.queue.push(item);\n this.queue.sort(this.sorter);\n },\n\n /**\n * Return the highest priority element in the queue.\n */\n pop: function () {\n return this.queue.shift();\n },\n\n empty: function () {\n return this.queue.length === 0;\n }\n }\n};\n\n\n// node.js module exports\nif (typeof module !== 'undefined') {\n module.exports = dijkstra;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/dijkstrajs/dijkstra.js\n// module id = 470\n// module chunks = 0","var Utils = require('./utils')\n\nfunction clearCanvas (ctx, canvas, size) {\n ctx.clearRect(0, 0, canvas.width, canvas.height)\n\n if (!canvas.style) canvas.style = {}\n canvas.height = size\n canvas.width = size\n canvas.style.height = size + 'px'\n canvas.style.width = size + 'px'\n}\n\nfunction getCanvasElement () {\n try {\n return document.createElement('canvas')\n } catch (e) {\n throw new Error('You need to specify a canvas element')\n }\n}\n\nexports.render = function render (qrData, canvas, options) {\n var opts = options\n var canvasEl = canvas\n\n if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n opts = canvas\n canvas = undefined\n }\n\n if (!canvas) {\n canvasEl = getCanvasElement()\n }\n\n opts = Utils.getOptions(opts)\n var size = Utils.getImageWidth(qrData.modules.size, opts)\n\n var ctx = canvasEl.getContext('2d')\n var image = ctx.createImageData(size, size)\n Utils.qrToImageData(image.data, qrData, opts)\n\n clearCanvas(ctx, canvasEl, size)\n ctx.putImageData(image, 0, 0)\n\n return canvasEl\n}\n\nexports.renderToDataURL = function renderToDataURL (qrData, canvas, options) {\n var opts = options\n\n if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n opts = canvas\n canvas = undefined\n }\n\n if (!opts) opts = {}\n\n var canvasEl = exports.render(qrData, canvas, opts)\n\n var type = opts.type || 'image/png'\n var rendererOpts = opts.rendererOpts || {}\n\n return canvasEl.toDataURL(type, rendererOpts.quality)\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/qrcode/lib/renderer/canvas.js\n// module id = 471\n// module chunks = 0","var Utils = require('./utils')\n\nfunction getColorAttrib (color, attrib) {\n var alpha = color.a / 255\n var str = attrib + '=\"' + color.hex + '\"'\n\n return alpha < 1\n ? str + ' ' + attrib + '-opacity=\"' + alpha.toFixed(2).slice(1) + '\"'\n : str\n}\n\nfunction svgCmd (cmd, x, y) {\n var str = cmd + x\n if (typeof y !== 'undefined') str += ' ' + y\n\n return str\n}\n\nfunction qrToPath (data, size, margin) {\n var path = ''\n var moveBy = 0\n var newRow = false\n var lineLength = 0\n\n for (var i = 0; i < data.length; i++) {\n var col = Math.floor(i % size)\n var row = Math.floor(i / size)\n\n if (!col && !newRow) newRow = true\n\n if (data[i]) {\n lineLength++\n\n if (!(i > 0 && col > 0 && data[i - 1])) {\n path += newRow\n ? svgCmd('M', col + margin, 0.5 + row + margin)\n : svgCmd('m', moveBy, 0)\n\n moveBy = 0\n newRow = false\n }\n\n if (!(col + 1 < size && data[i + 1])) {\n path += svgCmd('h', lineLength)\n lineLength = 0\n }\n } else {\n moveBy++\n }\n }\n\n return path\n}\n\nexports.render = function render (qrData, options, cb) {\n var opts = Utils.getOptions(options)\n var size = qrData.modules.size\n var data = qrData.modules.data\n var qrcodesize = size + opts.margin * 2\n\n var bg = !opts.color.light.a\n ? ''\n : '<path ' + getColorAttrib(opts.color.light, 'fill') +\n ' d=\"M0 0h' + qrcodesize + 'v' + qrcodesize + 'H0z\"/>'\n\n var path =\n '<path ' + getColorAttrib(opts.color.dark, 'stroke') +\n ' d=\"' + qrToPath(data, size, opts.margin) + '\"/>'\n\n var viewBox = 'viewBox=\"' + '0 0 ' + qrcodesize + ' ' + qrcodesize + '\"'\n\n var width = !opts.width ? '' : 'width=\"' + opts.width + '\" height=\"' + opts.width + '\" '\n\n var svgTag = '<svg xmlns=\"http://www.w3.org/2000/svg\" ' + width + viewBox + ' shape-rendering=\"crispEdges\">' + bg + path + '</svg>\\n'\n\n if (typeof cb === 'function') {\n cb(null, svgTag)\n }\n\n return svgTag\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/qrcode/lib/renderer/svg-tag.js\n// module id = 472\n// module chunks = 0","//\n// The MIT License (MIT)\n//\n// Copyright (c) 2014 Lorenzo Villani\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n//\n\n/** @module url-otpauth */\n\nvar url = require('url');\n\n//\n// Exception types\n//\n\nvar ErrorType = {\n INVALID_ISSUER: 0,\n INVALID_LABEL: 1,\n INVALID_PROTOCOL: 2,\n MISSING_ACCOUNT_NAME: 3,\n MISSING_COUNTER: 4,\n MISSING_ISSUER: 5,\n MISSING_SECRET_KEY: 6,\n UNKNOWN_OTP: 7,\n INVALID_DIGITS: 8,\n UNKNOWN_ALGORITHM: 9\n};\n\nvar PossibleDigits = [6, 8];\n\nvar PossibleAlgorithms = [\"SHA1\", \"SHA256\", \"SHA512\", \"MD5\"];\n\nfunction OtpauthInvalidURL(errorType) {\n this.name = 'OtpauthInvalidURL';\n this.message = 'Given otpauth:// URL is invalid. (Error ' + errorType + ')';\n this.errorType = errorType;\n}\n\nOtpauthInvalidURL.prototype = new Error();\nOtpauthInvalidURL.prototype.constructor = OtpauthInvalidURL;\n\n//\n// Code\n//\n\nmodule.exports = {\n /**\n * Parses an OTPAuth URI.\n *\n * Parses an URL as described in Google Authenticator's \"KeyUriFormat\" document (see:\n * [https://code.google.com/p/google-authenticator/wiki/KeyUriFormat](https://code.google.com/p/google-authenticator/wiki/KeyUriFormat))\n * and returns an object that contains the following properties:\n *\n * - `account`: The account name.\n * - `digits`: The number of digits of the resulting OTP. Default is 6 (six).\n * - `key`: The shared key in Base32 encoding.\n * - `issuer`: Provider or service this account is associated with. The default is the empty\n * string.\n * - `type`: Either the string `hotp` or `totp`.\n *\n * OTP of type `hotp` have an additional `counter` field which contains the start value for the\n * HOTP counter. In all other cases this field is missing from the resulting object.\n *\n * @param rawUrl {string} The URI to parse.\n * @returns {Object} An object with properties described above.\n */\n parse: function parse(rawUrl) {\n var ret = {};\n\n //\n // Protocol\n //\n\n var parsed = url.parse(rawUrl, true);\n\n if (parsed.protocol !== 'otpauth:') {\n throw new OtpauthInvalidURL(ErrorType.INVALID_PROTOCOL);\n }\n\n //\n // Type\n //\n\n var otpAlgo = decodeURIComponent(parsed.host);\n\n if (otpAlgo !== 'hotp' && otpAlgo !== 'totp') {\n throw new OtpauthInvalidURL(ErrorType.UNKNOWN_OTP);\n }\n\n ret.type = otpAlgo;\n\n //\n // Label (contains account name, may contain issuer)\n //\n\n var label = decodeURIComponent(parsed.pathname.substring(1));\n var labelComponents = label.split(':');\n var issuer = '';\n var account = '';\n\n if (labelComponents.length === 1) {\n account = labelComponents[0];\n } else if (labelComponents.length === 2) {\n issuer = labelComponents[0];\n account = labelComponents[1];\n } else {\n throw new OtpauthInvalidURL(ErrorType.INVALID_LABEL);\n }\n\n if (account.length < 1) {\n throw new OtpauthInvalidURL(ErrorType.MISSING_ACCOUNT_NAME);\n }\n\n if ((labelComponents.length === 2) && (issuer.length < 1)) {\n throw new OtpauthInvalidURL(ErrorType.INVALID_ISSUER);\n }\n\n ret.account = account;\n\n //\n // Parameters\n //\n\n var parameters = parsed.query;\n\n // Secret key\n if (!parameters.secret) {\n throw new OtpauthInvalidURL(ErrorType.MISSING_SECRET_KEY);\n }\n\n ret.key = parameters.secret;\n\n // Issuer\n if (parameters.issuer && issuer && (parameters.issuer !== issuer)) {\n // If present, it must be equal to the \"issuer\" specified in the label.\n throw new OtpauthInvalidURL(ErrorType.INVALID_ISSUER);\n }\n\n ret.issuer = issuer || parameters.issuer || '';\n\n // OTP digits\n ret.digits = 6; // Default is 6\n\n if (parameters.digits) {\n var parsedDigits = parseInt(parameters.digits, 10);\n if (PossibleDigits.indexOf(parsedDigits) == -1) {\n throw new OtpauthInvalidURL(ErrorType.INVALID_DIGITS);\n } else {\n ret.digits = parsedDigits;\n }\n }\n\n // Algorithm to create hash\n if (parameters.algorithm) {\n if (PossibleAlgorithms.indexOf(parameters.algorithm) == -1) {\n throw new OtpauthInvalidURL(ErrorType.UNKNOWN_ALGORITHM);\n } else {\n // Optional 'algorithm' parameter.\n ret.algorithm = parameters.algorithm;\n }\n }\n\n // Period (only for TOTP)\n if (otpAlgo === 'totp') {\n // Optional 'period' parameter for TOTP.\n if (parameters.period) {\n ret.period = parseFloat(parameters.period);\n }\n }\n\n // Counter (only for HOTP)\n if (otpAlgo === 'hotp') {\n if (!parameters.counter) {\n // We require the 'counter' parameter for HOTP.\n throw new OtpauthInvalidURL(ErrorType.MISSING_COUNTER);\n } else {\n ret.counter = parseInt(parameters.counter, 10);\n }\n }\n\n return ret;\n },\n\n /**\n * Enumeration of all error types raised by `OtpauthInvalidURL`.\n */\n ErrorType: ErrorType,\n\n /**\n * Exception thrown whenever there's an error deconstructing an 'otpauth://' URI.\n *\n * You can query the `errorType` attribute to obtain the exact reason for failure. The\n * `errorType` attributes contains a value from the `ErrorType` enumeration.\n */\n OtpauthInvalidURL: OtpauthInvalidURL\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/url-otpauth/index.js\n// module id = 473\n// module chunks = 0","/*\n * Copyright Joyent, Inc. and other Node contributors.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a\n * copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to permit\n * persons to whom the Software is furnished to do so, subject to the\n * following conditions:\n *\n * The above copyright notice and this permission notice shall be included\n * in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n * NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n * USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\n'use strict';\n\nvar punycode = require('punycode');\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n/*\n * define these here so at least they only have to be\n * compiled once on the first module load.\n */\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^?\\s]*)(\\?[^\\s]*)?$/,\n\n /*\n * RFC 2396: characters reserved for delimiting URLs.\n * We actually just auto-escape these.\n */\n delims = [\n '<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'\n ],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = [\n '{', '}', '|', '\\\\', '^', '`'\n ].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n /*\n * Characters that are never ever allowed in a hostname.\n * Note that any invalid chars are also handled, but these\n * are the ones that are *expected* to be seen, so we fast-path\n * them.\n */\n nonHostChars = [\n '%', '/', '?', ';', '#'\n ].concat(autoEscape),\n hostEndingChars = [\n '/', '?', '#'\n ],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n javascript: true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n javascript: true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n http: true,\n https: true,\n ftp: true,\n gopher: true,\n file: true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n },\n querystring = require('qs');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && typeof url === 'object' && url instanceof Url) { return url; }\n\n var u = new Url();\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function (url, parseQueryString, slashesDenoteHost) {\n if (typeof url !== 'string') {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\n\n /*\n * Copy chrome, IE, opera backslash-handling behavior.\n * Back slashes before the query string get converted to forward slashes\n * See: https://code.google.com/p/chromium/issues/detail?id=25916\n */\n var queryIndex = url.indexOf('?'),\n splitter = queryIndex !== -1 && queryIndex < url.indexOf('#') ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n\n var rest = url;\n\n /*\n * trim before proceeding.\n * This is to support parse stuff like \" http://foo.com \\n\"\n */\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.path = rest;\n this.href = rest;\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n if (parseQueryString) {\n this.query = querystring.parse(this.search.substr(1));\n } else {\n this.query = this.search.substr(1);\n }\n } else if (parseQueryString) {\n this.search = '';\n this.query = {};\n }\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n /*\n * figure out if it's got a host\n * user@server is *always* interpreted as a hostname, and url\n * resolution will treat //foo/bar as host=foo,path=bar because that's\n * how the browser resolves relative URLs.\n */\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@/]+@[^@/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] && (slashes || (proto && !slashedProtocol[proto]))) {\n\n /*\n * there's a hostname.\n * the first instance of /, ?, ;, or # ends the host.\n *\n * If there is an @ in the hostname, then non-host chars *are* allowed\n * to the left of the last @ sign, unless some host-ending character\n * comes *before* the @-sign.\n * URLs are obnoxious.\n *\n * ex:\n * http://a@b@c/ => user:a@b host:c\n * http://a@b?@c => user:a host:c path:/?@c\n */\n\n /*\n * v0.12 TODO(isaacs): This is not quite how Chrome does things.\n * Review our test case against browsers more comprehensively.\n */\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) { hostEnd = hec; }\n }\n\n /*\n * at this point, either we have an explicit point where the\n * auth portion cannot go past, or the last @ char is the decider.\n */\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n /*\n * atSign must be in auth portion.\n * http://a@b/c@d => host:b auth:a path:/c@d\n */\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n /*\n * Now we have a portion which is definitely the auth.\n * Pull that off.\n */\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) { hostEnd = hec; }\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1) { hostEnd = rest.length; }\n\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost();\n\n /*\n * we've indicated that there is a hostname,\n * so even if it's empty, it has to be present.\n */\n this.hostname = this.hostname || '';\n\n /*\n * if hostname begins with [ and ends with ]\n * assume that it's an IPv6 address.\n */\n var ipv6Hostname = this.hostname[0] === '[' && this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) { continue; }\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n /*\n * we replace non-ASCII char with a temporary placeholder\n * we need this to make sure size of hostname is not\n * broken by replacing non-ASCII by nothing\n */\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n /*\n * IDNA Support: Returns a punycoded representation of \"domain\".\n * It only converts parts of the domain name that\n * have non-ASCII characters, i.e. it doesn't matter if\n * you call it with a domain that already is ASCII-only.\n */\n this.hostname = punycode.toASCII(this.hostname);\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host;\n\n /*\n * strip [ and ] from the hostname\n * the host field still retains them, though\n */\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n /*\n * now rest is set to the post-host stuff.\n * chop off any delim chars.\n */\n if (!unsafeProtocol[lowerProto]) {\n\n /*\n * First, make 100% sure that any \"autoEscape\" chars get\n * escaped, even if encodeURIComponent doesn't think they\n * need to be.\n */\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1) { continue; }\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n if (rest) { this.pathname = rest; }\n if (slashedProtocol[lowerProto] && this.hostname && !this.pathname) {\n this.pathname = '/';\n }\n\n // to support http.request\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n this.href = this.format();\n return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n /*\n * ensure it's an object, and not a string url.\n * If it's an obj, this is a no-op.\n * this way, you can call url_format() on strings\n * to clean up potentially wonky urls.\n */\n if (typeof obj === 'string') { obj = urlParse(obj); }\n if (!(obj instanceof Url)) { return Url.prototype.format.call(obj); }\n return obj.format();\n}\n\nUrl.prototype.format = function () {\n var auth = this.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ? this.hostname : '[' + this.hostname + ']');\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query && typeof this.query === 'object' && Object.keys(this.query).length) {\n query = querystring.stringify(this.query, {\n arrayFormat: 'repeat',\n addQueryPrefix: false\n });\n }\n\n var search = this.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') { protocol += ':'; }\n\n /*\n * only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n * unless they had them to begin with.\n */\n if (this.slashes || (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') { pathname = '/' + pathname; }\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') { hash = '#' + hash; }\n if (search && search.charAt(0) !== '?') { search = '?' + search; }\n\n pathname = pathname.replace(/[?#]/g, function (match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function (relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) { return relative; }\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function (relative) {\n if (typeof relative === 'string') {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n }\n\n /*\n * hash is always overridden, no matter what.\n * even href=\"\" will remove it.\n */\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol') { result[rkey] = relative[rkey]; }\n }\n\n // urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] && result.hostname && !result.pathname) {\n result.pathname = '/';\n result.path = result.pathname;\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n /*\n * if it's a known url protocol, then changing\n * the protocol does weird things\n * first, if it's not file:, then we MUST have a host,\n * and if there was a path\n * to begin with, then we MUST have a path.\n * if it is file:, then the host is dropped,\n * because that's known to be hostless.\n * anything else is assumed to be absolute.\n */\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift())) { }\n if (!relative.host) { relative.host = ''; }\n if (!relative.hostname) { relative.hostname = ''; }\n if (relPath[0] !== '') { relPath.unshift(''); }\n if (relPath.length < 2) { relPath.unshift(''); }\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = result.pathname && result.pathname.charAt(0) === '/',\n isRelAbs = relative.host || relative.pathname && relative.pathname.charAt(0) === '/',\n mustEndAbs = isRelAbs || isSourceAbs || (result.host && relative.pathname),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n /*\n * if the url is a non-slashed url, then relative\n * links like ../.. should be able\n * to crawl up to the hostname, as well. This is strange.\n * result.protocol has already been set by now.\n * Later on, put the first path part into the host field.\n */\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') { srcPath[0] = result.host; } else { srcPath.unshift(result.host); }\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') { relPath[0] = relative.host; } else { relPath.unshift(relative.host); }\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = relative.host || relative.host === '' ? relative.host : result.host;\n result.hostname = relative.hostname || relative.hostname === '' ? relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n /*\n * it's relative\n * throw away the existing file, and take the new path instead.\n */\n if (!srcPath) { srcPath = []; }\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (relative.search != null) {\n /*\n * just pull out the search.\n * like href='?foo'.\n * Put this after the other two cases because it simplifies the booleans\n */\n if (psychotic) {\n result.host = srcPath.shift();\n result.hostname = result.host;\n /*\n * occationaly the auth can get stuck only in host\n * this especially happens in cases like\n * url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n */\n var authInHost = result.host && result.host.indexOf('@') > 0 ? result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.hostname = authInHost.shift();\n result.host = result.hostname;\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n // to support http.request\n if (result.pathname !== null || result.search !== null) {\n result.path = (result.pathname ? result.pathname : '') + (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n /*\n * no path at all. easy.\n * we've already handled the other stuff above.\n */\n result.pathname = null;\n // to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n /*\n * if a url ENDs in . or .., then it must get a trailing slash.\n * however, if it ends in anything else non-slashy,\n * then it must NOT get a trailing slash.\n */\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (result.host || relative.host || srcPath.length > 1) && (last === '.' || last === '..') || last === '';\n\n /*\n * strip single dots, resolve double dots to parent dir\n * if the path tries to go above the root, `up` ends up > 0\n */\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' && (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' || (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = isAbsolute ? '' : srcPath.length ? srcPath.shift() : '';\n result.host = result.hostname;\n /*\n * occationaly the auth can get stuck only in host\n * this especially happens in cases like\n * url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n */\n var authInHost = result.host && result.host.indexOf('@') > 0 ? result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.hostname = authInHost.shift();\n result.host = result.hostname;\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (srcPath.length > 0) {\n result.pathname = srcPath.join('/');\n } else {\n result.pathname = null;\n result.path = null;\n }\n\n // to support request.http\n if (result.pathname !== null || result.search !== null) {\n result.path = (result.pathname ? result.pathname : '') + (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function () {\n var host = this.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) { this.hostname = host; }\n};\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/url/url.js\n// module id = 474\n// module chunks = 0","/*! https://mths.be/punycode v1.4.1 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow new RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * https://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.4.1',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) {\n\t\t\t// in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else {\n\t\t\t// in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/punycode/punycode.js\n// module id = 475\n// module chunks = 0","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/qs/lib/index.js\n// module id = 476\n// module chunks = 0","'use strict';\n\nvar getSideChannel = require('side-channel');\nvar utils = require('./utils');\nvar formats = require('./formats');\nvar has = Object.prototype.hasOwnProperty;\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\n\nvar isArray = Array.isArray;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n allowEmptyArrays: false,\n arrayFormat: 'indices',\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encodeDotInKeys: false,\n encoder: utils.encode,\n encodeValuesOnly: false,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string'\n || typeof v === 'number'\n || typeof v === 'boolean'\n || typeof v === 'symbol'\n || typeof v === 'bigint';\n};\n\nvar sentinel = {};\n\nvar stringify = function stringify(\n object,\n prefix,\n generateArrayPrefix,\n commaRoundTrip,\n allowEmptyArrays,\n strictNullHandling,\n skipNulls,\n encodeDotInKeys,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n sideChannel\n) {\n var obj = object;\n\n var tmpSc = sideChannel;\n var step = 0;\n var findFlag = false;\n while ((tmpSc = tmpSc.get(sentinel)) !== void undefined && !findFlag) {\n // Where object last appeared in the ref tree\n var pos = tmpSc.get(object);\n step += 1;\n if (typeof pos !== 'undefined') {\n if (pos === step) {\n throw new RangeError('Cyclic object value');\n } else {\n findFlag = true; // Break while\n }\n }\n if (typeof tmpSc.get(sentinel) === 'undefined') {\n step = 0;\n }\n }\n\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = utils.maybeMap(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate(value);\n }\n return value;\n });\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (generateArrayPrefix === 'comma' && isArray(obj)) {\n // we need to join elements in\n if (encodeValuesOnly && encoder) {\n obj = utils.maybeMap(obj, encoder);\n }\n objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }];\n } else if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n var encodedPrefix = encodeDotInKeys ? prefix.replace(/\\./g, '%2E') : prefix;\n\n var adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? encodedPrefix + '[]' : encodedPrefix;\n\n if (allowEmptyArrays && isArray(obj) && obj.length === 0) {\n return adjustedPrefix + '[]';\n }\n\n for (var j = 0; j < objKeys.length; ++j) {\n var key = objKeys[j];\n var value = typeof key === 'object' && typeof key.value !== 'undefined' ? key.value : obj[key];\n\n if (skipNulls && value === null) {\n continue;\n }\n\n var encodedKey = allowDots && encodeDotInKeys ? key.replace(/\\./g, '%2E') : key;\n var keyPrefix = isArray(obj)\n ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(adjustedPrefix, encodedKey) : adjustedPrefix\n : adjustedPrefix + (allowDots ? '.' + encodedKey : '[' + encodedKey + ']');\n\n sideChannel.set(object, step);\n var valueSideChannel = getSideChannel();\n valueSideChannel.set(sentinel, sideChannel);\n pushToArray(values, stringify(\n value,\n keyPrefix,\n generateArrayPrefix,\n commaRoundTrip,\n allowEmptyArrays,\n strictNullHandling,\n skipNulls,\n encodeDotInKeys,\n generateArrayPrefix === 'comma' && encodeValuesOnly && isArray(obj) ? null : encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n valueSideChannel\n ));\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') {\n throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');\n }\n\n if (typeof opts.encodeDotInKeys !== 'undefined' && typeof opts.encodeDotInKeys !== 'boolean') {\n throw new TypeError('`encodeDotInKeys` option can only be `true` or `false`, when provided');\n }\n\n if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n format = opts.format;\n }\n var formatter = formats.formatters[format];\n\n var filter = defaults.filter;\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n var arrayFormat;\n if (opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if ('indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = defaults.arrayFormat;\n }\n\n if ('commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') {\n throw new TypeError('`commaRoundTrip` must be a boolean, or absent');\n }\n\n var allowDots = typeof opts.allowDots === 'undefined' ? opts.encodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: allowDots,\n allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,\n arrayFormat: arrayFormat,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n commaRoundTrip: opts.commaRoundTrip,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encodeDotInKeys: typeof opts.encodeDotInKeys === 'boolean' ? opts.encodeDotInKeys : defaults.encodeDotInKeys,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n format: format,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[options.arrayFormat];\n var commaRoundTrip = generateArrayPrefix === 'comma' && options.commaRoundTrip;\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n var sideChannel = getSideChannel();\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n pushToArray(keys, stringify(\n obj[key],\n key,\n generateArrayPrefix,\n commaRoundTrip,\n options.allowEmptyArrays,\n options.strictNullHandling,\n options.skipNulls,\n options.encodeDotInKeys,\n options.encode ? options.encoder : null,\n options.filter,\n options.sort,\n options.allowDots,\n options.serializeDate,\n options.format,\n options.formatter,\n options.encodeValuesOnly,\n options.charset,\n sideChannel\n ));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/qs/lib/stringify.js\n// module id = 477\n// module chunks = 0","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bind/callBound');\nvar inspect = require('object-inspect');\n\nvar $TypeError = require('es-errors/type');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\nvar $Map = GetIntrinsic('%Map%', true);\n\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\nvar $mapGet = callBound('Map.prototype.get', true);\nvar $mapSet = callBound('Map.prototype.set', true);\nvar $mapHas = callBound('Map.prototype.has', true);\n\n/*\n* This function traverses the list returning the node corresponding to the given key.\n*\n* That node is also moved to the head of the list, so that if it's accessed again we don't need to traverse the whole list. By doing so, all the recently used nodes can be accessed relatively quickly.\n*/\n/** @type {import('.').listGetNode} */\nvar listGetNode = function (list, key) { // eslint-disable-line consistent-return\n\t/** @type {typeof list | NonNullable<(typeof list)['next']>} */\n\tvar prev = list;\n\t/** @type {(typeof list)['next']} */\n\tvar curr;\n\tfor (; (curr = prev.next) !== null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\tcurr.next = /** @type {NonNullable<typeof list.next>} */ (list.next);\n\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\n/** @type {import('.').listGet} */\nvar listGet = function (objects, key) {\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\n/** @type {import('.').listSet} */\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = /** @type {import('.').ListNode<typeof value>} */ ({ // eslint-disable-line no-param-reassign, no-extra-parens\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t});\n\t}\n};\n/** @type {import('.').listHas} */\nvar listHas = function (objects, key) {\n\treturn !!listGetNode(objects, key);\n};\n\n/** @type {import('.')} */\nmodule.exports = function getSideChannel() {\n\t/** @type {WeakMap<object, unknown>} */ var $wm;\n\t/** @type {Map<object, unknown>} */ var $m;\n\t/** @type {import('.').RootNode<unknown>} */ var $o;\n\n\t/** @type {import('.').Channel} */\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\tget: function (key) { // eslint-disable-line consistent-return\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapGet($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listGet($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\thas: function (key) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapHas($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listHas($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif (!$wm) {\n\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t}\n\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t} else if ($Map) {\n\t\t\t\tif (!$m) {\n\t\t\t\t\t$m = new $Map();\n\t\t\t\t}\n\t\t\t\t$mapSet($m, key, value);\n\t\t\t} else {\n\t\t\t\tif (!$o) {\n\t\t\t\t\t// Initialize the linked list as an empty node, so that we don't have to special-case handling of the first node: we can always refer to it as (previous node).next, instead of something like (list).head\n\t\t\t\t\t$o = { key: {}, next: null };\n\t\t\t\t}\n\t\t\t\tlistSet($o, key, value);\n\t\t\t}\n\t\t}\n\t};\n\treturn channel;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/side-channel/index.js\n// module id = 478\n// module chunks = 0","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Error;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/es-errors/index.js\n// module id = 479\n// module chunks = 0","'use strict';\n\n/** @type {import('./eval')} */\nmodule.exports = EvalError;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/es-errors/eval.js\n// module id = 480\n// module chunks = 0","'use strict';\n\n/** @type {import('./range')} */\nmodule.exports = RangeError;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/es-errors/range.js\n// module id = 481\n// module chunks = 0","'use strict';\n\n/** @type {import('./ref')} */\nmodule.exports = ReferenceError;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/es-errors/ref.js\n// module id = 482\n// module chunks = 0","'use strict';\n\n/** @type {import('./uri')} */\nmodule.exports = URIError;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/es-errors/uri.js\n// module id = 483\n// module chunks = 0","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/has-symbols/index.js\n// module id = 484\n// module chunks = 0","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/has-symbols/shams.js\n// module id = 485\n// module chunks = 0","'use strict';\n\nvar test = {\n\t__proto__: null,\n\tfoo: {}\n};\n\nvar $Object = Object;\n\n/** @type {import('.')} */\nmodule.exports = function hasProto() {\n\t// @ts-expect-error: TS errors on an inherited property for some reason\n\treturn { __proto__: test }.foo === test.foo\n\t\t&& !(test instanceof $Object);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/has-proto/index.js\n// module id = 486\n// module chunks = 0","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n var arr = [];\n\n for (var i = 0; i < a.length; i += 1) {\n arr[i] = a[i];\n }\n for (var j = 0; j < b.length; j += 1) {\n arr[j + a.length] = b[j];\n }\n\n return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n var arr = [];\n for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n arr[j] = arrLike[i];\n }\n return arr;\n};\n\nvar joiny = function (arr, joiner) {\n var str = '';\n for (var i = 0; i < arr.length; i += 1) {\n str += arr[i];\n if (i + 1 < arr.length) {\n str += joiner;\n }\n }\n return str;\n};\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slicy(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n concatty(args, arguments)\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n }\n return target.apply(\n that,\n concatty(args, arguments)\n );\n\n };\n\n var boundLength = max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs[i] = '$' + i;\n }\n\n bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/function-bind/implementation.js\n// module id = 487\n// module chunks = 0","'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/hasown/index.js\n// module id = 488\n// module chunks = 0","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/call-bind/callBound.js\n// module id = 489\n// module chunks = 0","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\nvar setFunctionLength = require('set-function-length');\n\nvar $TypeError = require('es-errors/type');\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $defineProperty = require('es-define-property');\nvar $max = GetIntrinsic('%Math.max%');\n\nmodule.exports = function callBind(originalFunction) {\n\tif (typeof originalFunction !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\tvar func = $reflectApply(bind, $call, arguments);\n\treturn setFunctionLength(\n\t\tfunc,\n\t\t1 + $max(0, originalFunction.length - (arguments.length - 1)),\n\t\ttrue\n\t);\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/call-bind/index.js\n// module id = 490\n// module chunks = 0","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar define = require('define-data-property');\nvar hasDescriptors = require('has-property-descriptors')();\nvar gOPD = require('gopd');\n\nvar $TypeError = require('es-errors/type');\nvar $floor = GetIntrinsic('%Math.floor%');\n\n/** @type {import('.')} */\nmodule.exports = function setFunctionLength(fn, length) {\n\tif (typeof fn !== 'function') {\n\t\tthrow new $TypeError('`fn` is not a function');\n\t}\n\tif (typeof length !== 'number' || length < 0 || length > 0xFFFFFFFF || $floor(length) !== length) {\n\t\tthrow new $TypeError('`length` must be a positive 32-bit integer');\n\t}\n\n\tvar loose = arguments.length > 2 && !!arguments[2];\n\n\tvar functionLengthIsConfigurable = true;\n\tvar functionLengthIsWritable = true;\n\tif ('length' in fn && gOPD) {\n\t\tvar desc = gOPD(fn, 'length');\n\t\tif (desc && !desc.configurable) {\n\t\t\tfunctionLengthIsConfigurable = false;\n\t\t}\n\t\tif (desc && !desc.writable) {\n\t\t\tfunctionLengthIsWritable = false;\n\t\t}\n\t}\n\n\tif (functionLengthIsConfigurable || functionLengthIsWritable || !loose) {\n\t\tif (hasDescriptors) {\n\t\t\tdefine(/** @type {Parameters<define>[0]} */ (fn), 'length', length, true, true);\n\t\t} else {\n\t\t\tdefine(/** @type {Parameters<define>[0]} */ (fn), 'length', length);\n\t\t}\n\t}\n\treturn fn;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/set-function-length/index.js\n// module id = 491\n// module chunks = 0","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\n\nvar gopd = require('gopd');\n\n/** @type {import('.')} */\nmodule.exports = function defineDataProperty(\n\tobj,\n\tproperty,\n\tvalue\n) {\n\tif (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n\t\tthrow new $TypeError('`obj` must be an object or a function`');\n\t}\n\tif (typeof property !== 'string' && typeof property !== 'symbol') {\n\t\tthrow new $TypeError('`property` must be a string or a symbol`');\n\t}\n\tif (arguments.length > 3 && typeof arguments[3] !== 'boolean' && arguments[3] !== null) {\n\t\tthrow new $TypeError('`nonEnumerable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 4 && typeof arguments[4] !== 'boolean' && arguments[4] !== null) {\n\t\tthrow new $TypeError('`nonWritable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 5 && typeof arguments[5] !== 'boolean' && arguments[5] !== null) {\n\t\tthrow new $TypeError('`nonConfigurable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 6 && typeof arguments[6] !== 'boolean') {\n\t\tthrow new $TypeError('`loose`, if provided, must be a boolean');\n\t}\n\n\tvar nonEnumerable = arguments.length > 3 ? arguments[3] : null;\n\tvar nonWritable = arguments.length > 4 ? arguments[4] : null;\n\tvar nonConfigurable = arguments.length > 5 ? arguments[5] : null;\n\tvar loose = arguments.length > 6 ? arguments[6] : false;\n\n\t/* @type {false | TypedPropertyDescriptor<unknown>} */\n\tvar desc = !!gopd && gopd(obj, property);\n\n\tif ($defineProperty) {\n\t\t$defineProperty(obj, property, {\n\t\t\tconfigurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,\n\t\t\tenumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,\n\t\t\tvalue: value,\n\t\t\twritable: nonWritable === null && desc ? desc.writable : !nonWritable\n\t\t});\n\t} else if (loose || (!nonEnumerable && !nonWritable && !nonConfigurable)) {\n\t\t// must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable\n\t\tobj[property] = value; // eslint-disable-line no-param-reassign\n\t} else {\n\t\tthrow new $SyntaxError('This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.');\n\t}\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/define-data-property/index.js\n// module id = 492\n// module chunks = 0","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\treturn !!$defineProperty;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!$defineProperty) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/has-property-descriptors/index.js\n// module id = 493\n// module chunks = 0","var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar $match = String.prototype.match;\nvar $slice = String.prototype.slice;\nvar $replace = String.prototype.replace;\nvar $toUpperCase = String.prototype.toUpperCase;\nvar $toLowerCase = String.prototype.toLowerCase;\nvar $test = RegExp.prototype.test;\nvar $concat = Array.prototype.concat;\nvar $join = Array.prototype.join;\nvar $arrSlice = Array.prototype.slice;\nvar $floor = Math.floor;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\n// ie, `has-tostringtag/shams\nvar toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol')\n ? Symbol.toStringTag\n : null;\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (\n [].__proto__ === Array.prototype // eslint-disable-line no-proto\n ? function (O) {\n return O.__proto__; // eslint-disable-line no-proto\n }\n : null\n);\n\nfunction addNumericSeparator(num, str) {\n if (\n num === Infinity\n || num === -Infinity\n || num !== num\n || (num && num > -1000 && num < 1000)\n || $test.call(/e/, str)\n ) {\n return str;\n }\n var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;\n if (typeof num === 'number') {\n var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num)\n if (int !== num) {\n var intStr = String(int);\n var dec = $slice.call(str, intStr.length + 1);\n return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, '');\n }\n }\n return $replace.call(str, sepRegex, '$&_');\n}\n\nvar utilInspect = require('./util.inspect');\nvar inspectCustom = utilInspect.custom;\nvar inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null;\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n var opts = options || {};\n\n if (has(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) {\n throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n }\n if (\n has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n : opts.maxStringLength !== null\n )\n ) {\n throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n }\n var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n }\n\n if (\n has(opts, 'indent')\n && opts.indent !== null\n && opts.indent !== '\\t'\n && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n ) {\n throw new TypeError('option \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n }\n if (has(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') {\n throw new TypeError('option \"numericSeparator\", if provided, must be `true` or `false`');\n }\n var numericSeparator = opts.numericSeparator;\n\n if (typeof obj === 'undefined') {\n return 'undefined';\n }\n if (obj === null) {\n return 'null';\n }\n if (typeof obj === 'boolean') {\n return obj ? 'true' : 'false';\n }\n\n if (typeof obj === 'string') {\n return inspectString(obj, opts);\n }\n if (typeof obj === 'number') {\n if (obj === 0) {\n return Infinity / obj > 0 ? '0' : '-0';\n }\n var str = String(obj);\n return numericSeparator ? addNumericSeparator(obj, str) : str;\n }\n if (typeof obj === 'bigint') {\n var bigIntStr = String(obj) + 'n';\n return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;\n }\n\n var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n if (typeof depth === 'undefined') { depth = 0; }\n if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n return isArray(obj) ? '[Array]' : '[Object]';\n }\n\n var indent = getIndent(opts, depth);\n\n if (typeof seen === 'undefined') {\n seen = [];\n } else if (indexOf(seen, obj) >= 0) {\n return '[Circular]';\n }\n\n function inspect(value, from, noIndent) {\n if (from) {\n seen = $arrSlice.call(seen);\n seen.push(from);\n }\n if (noIndent) {\n var newOpts = {\n depth: opts.depth\n };\n if (has(opts, 'quoteStyle')) {\n newOpts.quoteStyle = opts.quoteStyle;\n }\n return inspect_(value, newOpts, depth + 1, seen);\n }\n return inspect_(value, opts, depth + 1, seen);\n }\n\n if (typeof obj === 'function' && !isRegExp(obj)) { // in older engines, regexes are callable\n var name = nameOf(obj);\n var keys = arrObjKeys(obj, inspect);\n return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : '');\n }\n if (isSymbol(obj)) {\n var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n }\n if (isElement(obj)) {\n var s = '<' + $toLowerCase.call(String(obj.nodeName));\n var attrs = obj.attributes || [];\n for (var i = 0; i < attrs.length; i++) {\n s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n }\n s += '>';\n if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n s += '</' + $toLowerCase.call(String(obj.nodeName)) + '>';\n return s;\n }\n if (isArray(obj)) {\n if (obj.length === 0) { return '[]'; }\n var xs = arrObjKeys(obj, inspect);\n if (indent && !singleLineValues(xs)) {\n return '[' + indentedJoin(xs, indent) + ']';\n }\n return '[ ' + $join.call(xs, ', ') + ' ]';\n }\n if (isError(obj)) {\n var parts = arrObjKeys(obj, inspect);\n if (!('cause' in Error.prototype) && 'cause' in obj && !isEnumerable.call(obj, 'cause')) {\n return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }';\n }\n if (parts.length === 0) { return '[' + String(obj) + ']'; }\n return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }';\n }\n if (typeof obj === 'object' && customInspect) {\n if (inspectSymbol && typeof obj[inspectSymbol] === 'function' && utilInspect) {\n return utilInspect(obj, { depth: maxDepth - depth });\n } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n return obj.inspect();\n }\n }\n if (isMap(obj)) {\n var mapParts = [];\n if (mapForEach) {\n mapForEach.call(obj, function (value, key) {\n mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n });\n }\n return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n }\n if (isSet(obj)) {\n var setParts = [];\n if (setForEach) {\n setForEach.call(obj, function (value) {\n setParts.push(inspect(value, obj));\n });\n }\n return collectionOf('Set', setSize.call(obj), setParts, indent);\n }\n if (isWeakMap(obj)) {\n return weakCollectionOf('WeakMap');\n }\n if (isWeakSet(obj)) {\n return weakCollectionOf('WeakSet');\n }\n if (isWeakRef(obj)) {\n return weakCollectionOf('WeakRef');\n }\n if (isNumber(obj)) {\n return markBoxed(inspect(Number(obj)));\n }\n if (isBigInt(obj)) {\n return markBoxed(inspect(bigIntValueOf.call(obj)));\n }\n if (isBoolean(obj)) {\n return markBoxed(booleanValueOf.call(obj));\n }\n if (isString(obj)) {\n return markBoxed(inspect(String(obj)));\n }\n // note: in IE 8, sometimes `global !== window` but both are the prototypes of each other\n /* eslint-env browser */\n if (typeof window !== 'undefined' && obj === window) {\n return '{ [object Window] }';\n }\n if (\n (typeof globalThis !== 'undefined' && obj === globalThis)\n || (typeof global !== 'undefined' && obj === global)\n ) {\n return '{ [object globalThis] }';\n }\n if (!isDate(obj) && !isRegExp(obj)) {\n var ys = arrObjKeys(obj, inspect);\n var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n var protoTag = obj instanceof Object ? '' : 'null prototype';\n var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : '';\n var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : '');\n if (ys.length === 0) { return tag + '{}'; }\n if (indent) {\n return tag + '{' + indentedJoin(ys, indent) + '}';\n }\n return tag + '{ ' + $join.call(ys, ', ') + ' }';\n }\n return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '\"' : \"'\";\n return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n return $replace.call(String(s), /\"/g, '"');\n}\n\nfunction isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n if (hasShammedSymbols) {\n return obj && typeof obj === 'object' && obj instanceof Symbol;\n }\n if (typeof obj === 'symbol') {\n return true;\n }\n if (!obj || typeof obj !== 'object' || !symToString) {\n return false;\n }\n try {\n symToString.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isBigInt(obj) {\n if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n return false;\n }\n try {\n bigIntValueOf.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n if (f.name) { return f.name; }\n var m = $match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n if (m) { return m[1]; }\n return null;\n}\n\nfunction indexOf(xs, x) {\n if (xs.indexOf) { return xs.indexOf(x); }\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) { return i; }\n }\n return -1;\n}\n\nfunction isMap(x) {\n if (!mapSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n mapSize.call(x);\n try {\n setSize.call(x);\n } catch (s) {\n return true;\n }\n return x instanceof Map; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakMap(x) {\n if (!weakMapHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakMapHas.call(x, weakMapHas);\n try {\n weakSetHas.call(x, weakSetHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakRef(x) {\n if (!weakRefDeref || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakRefDeref.call(x);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isSet(x) {\n if (!setSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n setSize.call(x);\n try {\n mapSize.call(x);\n } catch (m) {\n return true;\n }\n return x instanceof Set; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakSet(x) {\n if (!weakSetHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakSetHas.call(x, weakSetHas);\n try {\n weakMapHas.call(x, weakMapHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isElement(x) {\n if (!x || typeof x !== 'object') { return false; }\n if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n return true;\n }\n return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n if (str.length > opts.maxStringLength) {\n var remaining = str.length - opts.maxStringLength;\n var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;\n }\n // eslint-disable-next-line no-control-regex\n var s = $replace.call($replace.call(str, /(['\\\\])/g, '\\\\$1'), /[\\x00-\\x1f]/g, lowbyte);\n return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n var n = c.charCodeAt(0);\n var x = {\n 8: 'b',\n 9: 't',\n 10: 'n',\n 12: 'f',\n 13: 'r'\n }[n];\n if (x) { return '\\\\' + x; }\n return '\\\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16));\n}\n\nfunction markBoxed(str) {\n return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', ');\n return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n for (var i = 0; i < xs.length; i++) {\n if (indexOf(xs[i], '\\n') >= 0) {\n return false;\n }\n }\n return true;\n}\n\nfunction getIndent(opts, depth) {\n var baseIndent;\n if (opts.indent === '\\t') {\n baseIndent = '\\t';\n } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n baseIndent = $join.call(Array(opts.indent + 1), ' ');\n } else {\n return null;\n }\n return {\n base: baseIndent,\n prev: $join.call(Array(depth + 1), baseIndent)\n };\n}\n\nfunction indentedJoin(xs, indent) {\n if (xs.length === 0) { return ''; }\n var lineJoiner = '\\n' + indent.prev + indent.base;\n return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n var isArr = isArray(obj);\n var xs = [];\n if (isArr) {\n xs.length = obj.length;\n for (var i = 0; i < obj.length; i++) {\n xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n }\n }\n var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n var symMap;\n if (hasShammedSymbols) {\n symMap = {};\n for (var k = 0; k < syms.length; k++) {\n symMap['$' + syms[k]] = syms[k];\n }\n }\n\n for (var key in obj) { // eslint-disable-line no-restricted-syntax\n if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n } else if ($test.call(/[^\\w$]/, key)) {\n xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n } else {\n xs.push(key + ': ' + inspect(obj[key], obj));\n }\n }\n if (typeof gOPS === 'function') {\n for (var j = 0; j < syms.length; j++) {\n if (isEnumerable.call(obj, syms[j])) {\n xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n }\n }\n }\n return xs;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/object-inspect/index.js\n// module id = 494\n// module chunks = 0","/* (ignored) */\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./util.inspect (ignored)\n// module id = 495\n// module chunks = 0","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n allowDots: false,\n allowEmptyArrays: false,\n allowPrototypes: false,\n allowSparse: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decodeDotInKeys: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n duplicates: 'combine',\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function (str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function (val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = { __proto__: null };\n\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n cleanStr = cleanStr.replace(/%5B/gi, '[').replace(/%5D/gi, ']');\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n var i;\n\n var charset = options.charset;\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(\n parseArrayValue(part.slice(pos + 1), options),\n function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n }\n );\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n var existing = has.call(obj, key);\n if (existing && options.duplicates === 'combine') {\n obj[key] = utils.combine(obj[key], val);\n } else if (!existing || options.duplicates === 'last') {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = options.allowEmptyArrays && (leaf === '' || (options.strictNullHandling && leaf === null))\n ? []\n : [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var decodedRoot = options.decodeDotInKeys ? cleanRoot.replace(/%2E/g, '.') : cleanRoot;\n var index = parseInt(decodedRoot, 10);\n if (!options.parseArrays && decodedRoot === '') {\n obj = { 0: leaf };\n } else if (\n !isNaN(index)\n && root !== decodedRoot\n && String(index) === decodedRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else if (decodedRoot !== '__proto__') {\n obj[decodedRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') {\n throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');\n }\n\n if (typeof opts.decodeDotInKeys !== 'undefined' && typeof opts.decodeDotInKeys !== 'boolean') {\n throw new TypeError('`decodeDotInKeys` option can only be `true` or `false`, when provided');\n }\n\n if (opts.decoder !== null && typeof opts.decoder !== 'undefined' && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n var duplicates = typeof opts.duplicates === 'undefined' ? defaults.duplicates : opts.duplicates;\n\n if (duplicates !== 'combine' && duplicates !== 'first' && duplicates !== 'last') {\n throw new TypeError('The duplicates option must be either combine, first, or last');\n }\n\n var allowDots = typeof opts.allowDots === 'undefined' ? opts.decodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;\n\n return {\n allowDots: allowDots,\n allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decodeDotInKeys: typeof opts.decodeDotInKeys === 'boolean' ? opts.decodeDotInKeys : defaults.decodeDotInKeys,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n duplicates: duplicates,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n if (options.allowSparse === true) {\n return obj;\n }\n\n return utils.compact(obj);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/qs/lib/parse.js\n// module id = 496\n// module chunks = 0","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpBegin.pug\":\"h2 Enable Two-factor authentication\\n\\nbutton#g-user-otp-initialize-enable.btn.btn-primary(type=\\\"submit\\\")\\n | Begin\\n\"};\n;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpBegin.pug\";\npug_html = pug_html + \"\\u003Ch2\\u003E\";\n;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpBegin.pug\";\npug_html = pug_html + \"Enable Two-factor authentication\\u003C\\u002Fh2\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpBegin.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-primary\\\" id=\\\"g-user-otp-initialize-enable\\\" type=\\\"submit\\\"\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpBegin.pug\";\npug_html = pug_html + \" Begin\\u003C\\u002Fbutton\\u003E\";} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/userOtpBegin.pug","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\":\"h2 Enable Two-factor authentication\\n\\nol.g-account-otp-steps\\n li.g-account-otp-step\\n h3 Install an authenticator app on your mobile device.\\n div.\\n There are many compatible apps, including, but not limited to\\n #[a(href='https:\\u002F\\u002Fsupport.google.com\\u002Faccounts\\u002Fanswer\\u002F1066447?hl=en', target='_blank', rel='noopener') Google Authenticator],\\n #[a(href='https:\\u002F\\u002Fguide.duo.com\\u002Fthird-party-accounts', target='_blank', rel='noopener') Duo Mobile], and\\n #[a(href='https:\\u002F\\u002Ffreeotp.github.io\\u002F', target='_blank', rel='noopener') FreeOTP].\\n li.g-account-otp-step\\n h3 Enter your key into the authenticator app\\n .g-account-otp-scan-qr\\n h4 Scan with your mobile device's camera:\\n canvas#g-user-otp-qr\\n .g-account-otp-enter-manual\\n h4 Advanced Users:\\n span You may enter your information manually, instead:\\n table\\n tr\\n th Service\\n td\\n code= totpInfo.issuer\\n tr\\n th Account\\n td\\n code= totpInfo.account\\n tr\\n th Key\\n td\\n \\u002F\\u002F Split into 4-character chunks for human readability\\n code= totpInfo.key.match(\\u002F.{1,4}\\u002Fg).join('-')\\n tr\\n th Type\\n td\\n span #[code Time-based] \\u002F #[code TOTP]\\n li.g-account-otp-step\\n h3 Enter the authentication code from your app\\n input#g-user-otp-token(type='text', minlength=6, maxlength=6, placeholder='Your 6-digit code')\\n div\\n span#g-account-otp-error.g-validation-failed-message\\n.g-user-otp-footer\\n a#g-user-otp-cancel-enable.btn.btn-default Cancel\\n button#g-user-otp-finalize-enable.btn.btn-primary.btn-success(type=\\\"submit\\\") Enable Two-Factor\\n\"};\n;var locals_for_with = (locals || {});(function (totpInfo) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003Ch2\\u003E\";\n;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"Enable Two-factor authentication\\u003C\\u002Fh2\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003Col class=\\\"g-account-otp-steps\\\"\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003Cli class=\\\"g-account-otp-step\\\"\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003Ch3\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"Install an authenticator app on your mobile device.\\u003C\\u002Fh3\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003Cdiv\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"There are many compatible apps, including, but not limited to\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\n\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003Ca href=\\\"https:\\u002F\\u002Fsupport.google.com\\u002Faccounts\\u002Fanswer\\u002F1066447?hl=en\\\" target=\\\"_blank\\\" rel=\\\"noopener\\\"\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"Google Authenticator\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \",\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\n\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003Ca href=\\\"https:\\u002F\\u002Fguide.duo.com\\u002Fthird-party-accounts\\\" target=\\\"_blank\\\" rel=\\\"noopener\\\"\\u003E\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"Duo Mobile\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \", and\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\n\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003Ca href=\\\"https:\\u002F\\u002Ffreeotp.github.io\\u002F\\\" target=\\\"_blank\\\" rel=\\\"noopener\\\"\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"FreeOTP\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \".\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fli\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003Cli class=\\\"g-account-otp-step\\\"\\u003E\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003Ch3\\u003E\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"Enter your key into the authenticator app\\u003C\\u002Fh3\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-account-otp-scan-qr\\\"\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003Ch4\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"Scan with your mobile device's camera:\\u003C\\u002Fh4\\u003E\";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003Ccanvas id=\\\"g-user-otp-qr\\\"\\u003E\\u003C\\u002Fcanvas\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-account-otp-enter-manual\\\"\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003Ch4\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"Advanced Users:\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"You may enter your information manually, instead:\\u003C\\u002Fspan\\u003E\\u003C\\u002Fh4\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003Ctable\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003Ctr\\u003E\";\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003Cth\\u003E\";\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"Service\\u003C\\u002Fth\\u003E\";\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003Ctd\\u003E\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003Ccode\\u003E\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = totpInfo.issuer) ? \"\" : pug_interp)) + \"\\u003C\\u002Fcode\\u003E\\u003C\\u002Ftd\\u003E\\u003C\\u002Ftr\\u003E\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003Ctr\\u003E\";\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003Cth\\u003E\";\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"Account\\u003C\\u002Fth\\u003E\";\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003Ctd\\u003E\";\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003Ccode\\u003E\";\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = totpInfo.account) ? \"\" : pug_interp)) + \"\\u003C\\u002Fcode\\u003E\\u003C\\u002Ftd\\u003E\\u003C\\u002Ftr\\u003E\";\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003Ctr\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003Cth\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"Key\\u003C\\u002Fth\\u003E\";\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003Ctd\\u003E\";\n;pug_debug_line = 31;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003C!-- Split into 4-character chunks for human readability--\\u003E\";\n;pug_debug_line = 32;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003Ccode\\u003E\";\n;pug_debug_line = 32;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = totpInfo.key.match(/.{1,4}/g).join('-')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fcode\\u003E\\u003C\\u002Ftd\\u003E\\u003C\\u002Ftr\\u003E\";\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003Ctr\\u003E\";\n;pug_debug_line = 34;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003Cth\\u003E\";\n;pug_debug_line = 34;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"Type\\u003C\\u002Fth\\u003E\";\n;pug_debug_line = 35;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003Ctd\\u003E\";\n;pug_debug_line = 36;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003Cspan\\u003E\";\n;pug_debug_line = 36;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\";\n;pug_debug_line = 36;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003Ccode\\u003E\";\n;pug_debug_line = 36;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"Time-based\\u003C\\u002Fcode\\u003E\";\n;pug_debug_line = 36;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \" \\u002F \";\n;pug_debug_line = 36;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003Ccode\\u003E\";\n;pug_debug_line = 36;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"TOTP\\u003C\\u002Fcode\\u003E\";\n;pug_debug_line = 36;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Ftd\\u003E\\u003C\\u002Ftr\\u003E\\u003C\\u002Ftable\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fli\\u003E\";\n;pug_debug_line = 37;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003Cli class=\\\"g-account-otp-step\\\"\\u003E\";\n;pug_debug_line = 38;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003Ch3\\u003E\";\n;pug_debug_line = 38;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"Enter the authentication code from your app\\u003C\\u002Fh3\\u003E\";\n;pug_debug_line = 39;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003Cinput id=\\\"g-user-otp-token\\\" type=\\\"text\\\" minlength=\\\"6\\\" maxlength=\\\"6\\\" placeholder=\\\"Your 6-digit code\\\"\\u003E\";\n;pug_debug_line = 40;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003Cdiv\\u003E\";\n;pug_debug_line = 41;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"g-validation-failed-message\\\" id=\\\"g-account-otp-error\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fli\\u003E\\u003C\\u002Fol\\u003E\";\n;pug_debug_line = 42;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-user-otp-footer\\\"\\u003E\";\n;pug_debug_line = 43;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"btn btn-default\\\" id=\\\"g-user-otp-cancel-enable\\\"\\u003E\";\n;pug_debug_line = 43;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"Cancel\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 44;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-primary btn-success\\\" id=\\\"g-user-otp-finalize-enable\\\" type=\\\"submit\\\"\\u003E\";\n;pug_debug_line = 44;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpEnable.pug\";\npug_html = pug_html + \"Enable Two-Factor\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"totpInfo\" in locals_for_with?locals_for_with.totpInfo:typeof totpInfo!==\"undefined\"?totpInfo:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/userOtpEnable.pug","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpDisable.pug\":\"h2.g-user-otp-heading-enable Two-factor authentication is currently enabled\\n\\nh3.g-user-otp-heading-disable Disable Two-factor authentication\\n\\nbutton#g-user-otp-disable.btn.btn-primary(type=\\\"submit\\\")\\n | Disable\\n\"};\n;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpDisable.pug\";\npug_html = pug_html + \"\\u003Ch2 class=\\\"g-user-otp-heading-enable\\\"\\u003E\";\n;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpDisable.pug\";\npug_html = pug_html + \"Two-factor authentication is currently enabled\\u003C\\u002Fh2\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpDisable.pug\";\npug_html = pug_html + \"\\u003Ch3 class=\\\"g-user-otp-heading-disable\\\"\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpDisable.pug\";\npug_html = pug_html + \"Disable Two-factor authentication\\u003C\\u002Fh3\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpDisable.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-primary\\\" id=\\\"g-user-otp-disable\\\" type=\\\"submit\\\"\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FuserOtpDisable.pug\";\npug_html = pug_html + \" Disable\\u003C\\u002Fbutton\\u003E\";} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/userOtpDisable.pug","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/stylesheets/widgets/userOtpManagementWidget.styl\n// module id = 500\n// module chunks = 0","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\":\".g-account-header\\n .g-user-name.g-body-title= user.name()\\n .g-user-description.g-body-subtitle= user.get('login')\\n\\nul.g-account-tabs.nav.nav-tabs\\n li.active\\n a(href=\\\"#g-account-tab-info\\\", data-toggle=\\\"tab\\\", name=\\\"info\\\")\\n i.icon-info-circled\\n | Profile\\n li\\n a(href=\\\"#g-account-tab-password\\\", data-toggle=\\\"tab\\\", name=\\\"password\\\")\\n i.icon-lock\\n | Password\\n li\\n a(href=\\\"#g-account-tab-api-keys\\\", data-toggle=\\\"tab\\\", name=\\\"apikeys\\\")\\n i.icon-key-inv\\n | API keys\\n li\\n a(href=\\\"#g-account-tab-otp\\\", data-toggle=\\\"tab\\\", name=\\\"otp\\\")\\n i.icon-mobile\\n | Two-factor authentication\\n\\n.tab-content\\n #g-account-tab-info.tab-pane.active\\n .g-user-info-container.g-user-settings-container\\n form#g-user-info-form(role=\\\"form\\\")\\n .form-group\\n label(for=\\\"g-login\\\") Login\\n p.form-control-static= user.get('login')\\n .form-group\\n label(for=\\\"g-email\\\") Email\\n input#g-email.input-sm.form-control(type=\\\"text\\\", value=user.get('email'))\\n .form-group\\n label(for=\\\"g-firstName\\\") First name\\n input#g-firstName.input-sm.form-control(type=\\\"text\\\", value=user.get('firstName'))\\n .form-group\\n label(for=\\\"g-lastName\\\") Last name\\n input#g-lastName.input-sm.form-control(type=\\\"text\\\", value=user.get('lastName'))\\n if getCurrentUser().get('admin')\\n .form-group\\n label(for=\\\"g-admin\\\") User is site admin\\n input#g-admin.input-sm-form-control(type=\\\"checkbox\\\", checked=user.get('admin'))\\n button.btn.btn-default.btn-sm(type=\\\"submit\\\")\\n i.icon-edit\\n | Save\\n #g-user-info-error-msg.g-validation-failed-message\\n\\n #g-account-tab-password.tab-pane\\n .g-password-change-container.g-user-settings-container\\n form#g-password-change-form(role=\\\"form\\\")\\n if temporaryToken\\n input#g-password-old.input-sm.form-control(type=\\\"hidden\\\", value=temporaryToken)\\n else if isCurrentUser\\n .form-group\\n label(for=\\\"g-password-old\\\") Current password\\n input#g-password-old.input-sm.form-control(type=\\\"password\\\", placeholder=\\\"Enter current password\\\")\\n .form-group\\n label(for=\\\"g-password-new\\\") New password\\n input#g-password-new.input-sm.form-control(type=\\\"password\\\", placeholder=\\\"Enter new password\\\")\\n .form-group\\n label(for=\\\"g-password-retype\\\") Retype new password\\n input#g-password-retype.input-sm.form-control(type=\\\"password\\\", placeholder=\\\"Retype new password\\\")\\n button.btn.btn-default.btn-sm(type=\\\"submit\\\")\\n i.icon-lock\\n | Change\\n #g-password-change-error-msg.g-validation-failed-message\\n #g-account-tab-api-keys.tab-pane\\n .g-api-keys-container.g-user-settings-container\\n .g-api-keys-info-text.\\n API keys can be used to grant limited or total access to client applications on your behalf.\\n Clients can use these keys to create tokens that can be used for authenticated access. You may\\n limit the tokens created with a given key to certain authorization scopes, or allow the tokens\\n complete access to everything your user can do. You may also choose the maximum time that\\n tokens created with a given key will last before expiration. If you do not specify a duration,\\n the default expiration for user login sessions will be used.\\n\\n .g-api-keys-list-container\\n #g-account-tab-otp.tab-pane\\n .g-user-settings-container\\n .g-account-otp-info-text.\\n Two-factor authentication adds another level of authentication to your account log-in.\\n\\n .g-account-otp-container\\n\"};\n;var locals_for_with = (locals || {});(function (getCurrentUser, isCurrentUser, temporaryToken, user) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-account-header\\\"\\u003E\";\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-user-name g-body-title\\\"\\u003E\";\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = user.name()) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-user-description g-body-subtitle\\\"\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = user.get('login')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Cul class=\\\"g-account-tabs nav nav-tabs\\\"\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Cli class=\\\"active\\\"\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Ca href=\\\"#g-account-tab-info\\\" data-toggle=\\\"tab\\\" name=\\\"info\\\"\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-info-circled\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \" Profile\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Cli\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Ca href=\\\"#g-account-tab-password\\\" data-toggle=\\\"tab\\\" name=\\\"password\\\"\\u003E\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-lock\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"Password\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Cli\\u003E\";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Ca href=\\\"#g-account-tab-api-keys\\\" data-toggle=\\\"tab\\\" name=\\\"apikeys\\\"\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-key-inv\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"API keys\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Cli\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Ca href=\\\"#g-account-tab-otp\\\" data-toggle=\\\"tab\\\" name=\\\"otp\\\"\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-mobile\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"Two-factor authentication\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\\u003C\\u002Ful\\u003E\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"tab-content\\\"\\u003E\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"tab-pane active\\\" id=\\\"g-account-tab-info\\\"\\u003E\";\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-user-info-container g-user-settings-container\\\"\\u003E\";\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Cform id=\\\"g-user-info-form\\\" role=\\\"form\\\"\\u003E\";\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Clabel for=\\\"g-login\\\"\\u003E\";\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"Login\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Cp class=\\\"form-control-static\\\"\\u003E\";\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = user.get('login')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fp\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 31;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Clabel for=\\\"g-email\\\"\\u003E\";\n;pug_debug_line = 31;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"Email\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 32;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"input-sm form-control\\\"\"+\" id=\\\"g-email\\\" type=\\\"text\\\"\"+pug.attr(\"value\", user.get('email'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 34;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Clabel for=\\\"g-firstName\\\"\\u003E\";\n;pug_debug_line = 34;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"First name\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 35;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"input-sm form-control\\\"\"+\" id=\\\"g-firstName\\\" type=\\\"text\\\"\"+pug.attr(\"value\", user.get('firstName'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 36;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 37;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Clabel for=\\\"g-lastName\\\"\\u003E\";\n;pug_debug_line = 37;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"Last name\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 38;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"input-sm form-control\\\"\"+\" id=\\\"g-lastName\\\" type=\\\"text\\\"\"+pug.attr(\"value\", user.get('lastName'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 39;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\nif (getCurrentUser().get('admin')) {\n;pug_debug_line = 40;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 41;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Clabel for=\\\"g-admin\\\"\\u003E\";\n;pug_debug_line = 41;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"User is site admin\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 42;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"input-sm-form-control\\\"\"+\" id=\\\"g-admin\\\" type=\\\"checkbox\\\"\"+pug.attr(\"checked\", user.get('admin'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\n;pug_debug_line = 43;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-default btn-sm\\\" type=\\\"submit\\\"\\u003E\";\n;pug_debug_line = 44;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-edit\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 45;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"Save\\u003C\\u002Fbutton\\u003E\";\n;pug_debug_line = 46;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-validation-failed-message\\\" id=\\\"g-user-info-error-msg\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fform\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 48;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"tab-pane\\\" id=\\\"g-account-tab-password\\\"\\u003E\";\n;pug_debug_line = 49;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-password-change-container g-user-settings-container\\\"\\u003E\";\n;pug_debug_line = 50;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Cform id=\\\"g-password-change-form\\\" role=\\\"form\\\"\\u003E\";\n;pug_debug_line = 51;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\nif (temporaryToken) {\n;pug_debug_line = 52;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"input-sm form-control\\\"\"+\" id=\\\"g-password-old\\\" type=\\\"hidden\\\"\"+pug.attr(\"value\", temporaryToken, true, true)) + \"\\u003E\";\n}\nelse\nif (isCurrentUser) {\n;pug_debug_line = 54;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 55;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Clabel for=\\\"g-password-old\\\"\\u003E\";\n;pug_debug_line = 55;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"Current password\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 56;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Cinput class=\\\"input-sm form-control\\\" id=\\\"g-password-old\\\" type=\\\"password\\\" placeholder=\\\"Enter current password\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\n;pug_debug_line = 57;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 58;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Clabel for=\\\"g-password-new\\\"\\u003E\";\n;pug_debug_line = 58;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"New password\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 59;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Cinput class=\\\"input-sm form-control\\\" id=\\\"g-password-new\\\" type=\\\"password\\\" placeholder=\\\"Enter new password\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 60;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 61;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Clabel for=\\\"g-password-retype\\\"\\u003E\";\n;pug_debug_line = 61;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"Retype new password\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 62;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Cinput class=\\\"input-sm form-control\\\" id=\\\"g-password-retype\\\" type=\\\"password\\\" placeholder=\\\"Retype new password\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 63;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-default btn-sm\\\" type=\\\"submit\\\"\\u003E\";\n;pug_debug_line = 64;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-lock\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 65;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"Change\\u003C\\u002Fbutton\\u003E\";\n;pug_debug_line = 66;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-validation-failed-message\\\" id=\\\"g-password-change-error-msg\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fform\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 67;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"tab-pane\\\" id=\\\"g-account-tab-api-keys\\\"\\u003E\";\n;pug_debug_line = 68;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-api-keys-container g-user-settings-container\\\"\\u003E\";\n;pug_debug_line = 69;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-api-keys-info-text\\\"\\u003E\";\n;pug_debug_line = 70;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"API keys can be used to grant limited or total access to client applications on your behalf.\";\n;pug_debug_line = 71;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\n\";\n;pug_debug_line = 71;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"Clients can use these keys to create tokens that can be used for authenticated access. You may\";\n;pug_debug_line = 72;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\n\";\n;pug_debug_line = 72;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"limit the tokens created with a given key to certain authorization scopes, or allow the tokens\";\n;pug_debug_line = 73;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\n\";\n;pug_debug_line = 73;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"complete access to everything your user can do. You may also choose the maximum time that\";\n;pug_debug_line = 74;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\n\";\n;pug_debug_line = 74;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"tokens created with a given key will last before expiration. If you do not specify a duration,\";\n;pug_debug_line = 75;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\n\";\n;pug_debug_line = 75;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"the default expiration for user login sessions will be used.\";\n;pug_debug_line = 76;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\n\";\n;pug_debug_line = 76;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 77;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-api-keys-list-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 78;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"tab-pane\\\" id=\\\"g-account-tab-otp\\\"\\u003E\";\n;pug_debug_line = 79;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-user-settings-container\\\"\\u003E\";\n;pug_debug_line = 80;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-account-otp-info-text\\\"\\u003E\";\n;pug_debug_line = 81;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"Two-factor authentication adds another level of authentication to your account log-in.\";\n;pug_debug_line = 82;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\n\";\n;pug_debug_line = 82;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 83;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FuserAccount.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-account-otp-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"getCurrentUser\" in locals_for_with?locals_for_with.getCurrentUser:typeof getCurrentUser!==\"undefined\"?getCurrentUser:undefined,\"isCurrentUser\" in locals_for_with?locals_for_with.isCurrentUser:typeof isCurrentUser!==\"undefined\"?isCurrentUser:undefined,\"temporaryToken\" in locals_for_with?locals_for_with.temporaryToken:typeof temporaryToken!==\"undefined\"?temporaryToken:undefined,\"user\" in locals_for_with?locals_for_with.user:typeof user!==\"undefined\"?user:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/body/userAccount.pug","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/stylesheets/body/userAccount.styl\n// module id = 502\n// module chunks = 0","import _ from 'underscore';\n\nimport View from '@girder/core/views/View';\nimport { restRequest } from '@girder/core/rest';\n\nimport PaginateWidgetTemplate from '@girder/core/templates/widgets/paginateWidget.pug';\nimport SearchFieldWidget from '@girder/core/views/widgets/SearchFieldWidget';\n/**\n * This widget is used to provide a consistent widget for iterating amongst\n * pages of a list of search results (using a search mode, a query, an unique type,\n * and a limit).\n */\n\nvar SearchPaginateWidget = View.extend({\n events: {\n 'click .g-page-next:not(.disabled)': function (e) {\n this._updateHasNextPage(true);\n },\n 'click .g-page-prev:not(.disabled)': function (e) {\n this._updateHasPreviousPage(true);\n }\n },\n\n initialize: function (settings) {\n this._type = settings.type;\n this._query = settings.query;\n this._mode = settings.mode;\n this._limit = settings.limit;\n\n this._offset = 0;\n this._currentPage = 0;\n this._hasNextPage = false;\n this._hasPreviousPage = false;\n\n this.results = null;\n\n this._updateHasNextPage();\n },\n\n render: function () {\n this.$el.html(PaginateWidgetTemplate({\n collection: this\n }));\n\n this.$('.g-page-next').girderEnable(this._hasNextPage);\n this.$('.g-page-prev').girderEnable(this._hasPreviousPage);\n\n if (!this._hasNextPage && !this._hasPreviousPage) {\n this.$el.hide();\n } else {\n this.$el.show();\n }\n\n return this;\n },\n\n pageNum: function () {\n return this._currentPage;\n },\n\n _updateHasPreviousPage: function (update = false) {\n if (this._currentPage) {\n if (update) {\n return this._fetchPreviousPage(update)\n .done(() => {\n return this._fetchPreviousPage();\n });\n } else {\n return this._fetchPreviousPage();\n }\n } else {\n return this._fetchPreviousPage();\n }\n },\n\n _updateHasNextPage: function (update = false) {\n if (update) {\n return this._fetchNextPage(update)\n .done(() => {\n return this._fetchNextPage();\n });\n } else {\n return this._fetchNextPage();\n }\n },\n\n _fetchPreviousPage: function (update = false) {\n var offset = this._limit * (this._currentPage - 1);\n if (offset < 0) {\n this._hasPreviousPage = false;\n this.render();\n } else {\n return this._fetch(offset)\n .done((results) => {\n var result = results[this._type];\n if (result.length) {\n this._hasPreviousPage = true;\n if (update) {\n this.results = result;\n this.trigger('g:changed');\n this._currentPage--;\n this._updateHasNextPage();\n }\n } else {\n this._hasPreviousPage = false;\n }\n this.render();\n });\n }\n },\n\n _fetchNextPage: function (update = false) {\n var offset = this._limit * (this._currentPage + 1);\n return this._fetch(offset)\n .done((results) => {\n var result = results[this._type];\n if (result.length) {\n this._hasNextPage = true;\n if (update) {\n this.results = result;\n this.trigger('g:changed');\n this._currentPage++;\n this._updateHasPreviousPage();\n }\n } else {\n this._hasNextPage = false;\n }\n this.render();\n });\n },\n\n _fetch: function (offset) {\n return restRequest({\n url: 'resource/search',\n data: {\n q: this._query,\n mode: this._mode,\n types: JSON.stringify(_.intersection(\n [this._type],\n SearchFieldWidget.getModeTypes(this._mode))\n ),\n limit: this._limit,\n offset: offset\n }\n });\n }\n});\n\nexport default SearchPaginateWidget;\n\n\n\n// WEBPACK FOOTER //\n// ./src/views/widgets/SearchPaginateWidget.js","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsearchResults.pug\":\".g-search-results-header-container\\n .g-search-results-title-container\\n i.g-search-results-title-element.icon-search\\n span.g-search-results-title.g-search-results-title-element Results : #{query}\\n .g-search-results-header\\n .g-search-results-advance-search\\n\\n.g-search-results-container\\n\\n.g-search-pending\\n i.icon-spin4.animate-spin\\n\\n.g-search-no-results(style='display: none;')\\n i.icon-block\\n | No results found\\n\"};\n;var locals_for_with = (locals || {});(function (query) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsearchResults.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-search-results-header-container\\\"\\u003E\";\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsearchResults.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-search-results-title-container\\\"\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsearchResults.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"g-search-results-title-element icon-search\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsearchResults.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"g-search-results-title g-search-results-title-element\\\"\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsearchResults.pug\";\npug_html = pug_html + \"Results : \";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsearchResults.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = query) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsearchResults.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-search-results-header\\\"\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsearchResults.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-search-results-advance-search\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsearchResults.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-search-results-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsearchResults.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-search-pending\\\"\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsearchResults.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-spin4 animate-spin\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsearchResults.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-search-no-results\\\" style=\\\"display: none;\\\"\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsearchResults.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-block\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsearchResults.pug\";\npug_html = pug_html + \" No results found\\u003C\\u002Fdiv\\u003E\";}.call(this,\"query\" in locals_for_with?locals_for_with.query:typeof query!==\"undefined\"?query:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/body/searchResults.pug","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsearchResultsType.pug\":\".g-search-result-type-header-container\\n i.g-search-result-type-header.g-search-result-type-icon(class=`icon-${icon}`)\\n .g-search-result-type-header.g-search-results-type-title\\n | #{collectionName}\\nul.g-search-results-type\\n each element in results\\n li.g-search-result\\n a(href=`#${type}\\u002F${element._id}`)\\n if type === 'user'\\n | #{element.firstName} #{element.lastName} (#{element.login})\\n else\\n | #{element.name}\\n.g-search-results-paginate(id=`${type}Paginate`)\\n\"};\n;var locals_for_with = (locals || {});(function (collectionName, icon, results, type) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsearchResultsType.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-search-result-type-header-container\\\"\\u003E\";\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsearchResultsType.pug\";\npug_html = pug_html + \"\\u003Ci\" + (pug.attr(\"class\", pug.classes([\"g-search-result-type-header\",\"g-search-result-type-icon\",`icon-${icon}`], [false,false,true]), false, true)) + \"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsearchResultsType.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-search-result-type-header g-search-results-type-title\\\"\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsearchResultsType.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = collectionName) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsearchResultsType.pug\";\npug_html = pug_html + \"\\u003Cul class=\\\"g-search-results-type\\\"\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsearchResultsType.pug\";\n// iterate results\n;(function(){\n var $$obj = results;\n if ('number' == typeof $$obj.length) {\n for (var pug_index0 = 0, $$l = $$obj.length; pug_index0 < $$l; pug_index0++) {\n var element = $$obj[pug_index0];\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsearchResultsType.pug\";\npug_html = pug_html + \"\\u003Cli class=\\\"g-search-result\\\"\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsearchResultsType.pug\";\npug_html = pug_html + \"\\u003Ca\" + (pug.attr(\"href\", `#${type}/${element._id}`, true, true)) + \"\\u003E\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsearchResultsType.pug\";\nif (type === 'user') {\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsearchResultsType.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = element.firstName) ? \"\" : pug_interp));\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsearchResultsType.pug\";\npug_html = pug_html + \" \";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsearchResultsType.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = element.lastName) ? \"\" : pug_interp));\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsearchResultsType.pug\";\npug_html = pug_html + \" (\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsearchResultsType.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = element.login) ? \"\" : pug_interp));\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsearchResultsType.pug\";\npug_html = pug_html + \")\";\n}\nelse {\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsearchResultsType.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = element.name) ? \"\" : pug_interp));\n}\npug_html = pug_html + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index0 in $$obj) {\n $$l++;\n var element = $$obj[pug_index0];\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsearchResultsType.pug\";\npug_html = pug_html + \"\\u003Cli class=\\\"g-search-result\\\"\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsearchResultsType.pug\";\npug_html = pug_html + \"\\u003Ca\" + (pug.attr(\"href\", `#${type}/${element._id}`, true, true)) + \"\\u003E\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsearchResultsType.pug\";\nif (type === 'user') {\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsearchResultsType.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = element.firstName) ? \"\" : pug_interp));\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsearchResultsType.pug\";\npug_html = pug_html + \" \";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsearchResultsType.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = element.lastName) ? \"\" : pug_interp));\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsearchResultsType.pug\";\npug_html = pug_html + \" (\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsearchResultsType.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = element.login) ? \"\" : pug_interp));\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsearchResultsType.pug\";\npug_html = pug_html + \")\";\n}\nelse {\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsearchResultsType.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = element.name) ? \"\" : pug_interp));\n}\npug_html = pug_html + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n }\n }\n}).call(this);\n\npug_html = pug_html + \"\\u003C\\u002Ful\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fbody\\u002FsearchResultsType.pug\";\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"g-search-results-paginate\\\"\"+pug.attr(\"id\", `${type}Paginate`, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"collectionName\" in locals_for_with?locals_for_with.collectionName:typeof collectionName!==\"undefined\"?collectionName:undefined,\"icon\" in locals_for_with?locals_for_with.icon:typeof icon!==\"undefined\"?icon:undefined,\"results\" in locals_for_with?locals_for_with.results:typeof results!==\"undefined\"?results:undefined,\"type\" in locals_for_with?locals_for_with.type:typeof type!==\"undefined\"?type:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/body/searchResultsType.pug","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/stylesheets/body/searchResultsList.styl\n// module id = 506\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/stylesheets/layout/global.styl\n// module id = 507\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/stylesheets/layout/layout.styl\n// module id = 508\n// module chunks = 0","import AdminView from './AdminView';\nimport AssetstoresView from './AssetstoresView';\nimport CollectionView from './CollectionView';\nimport CollectionsView from './CollectionsView';\nimport FilesystemImportView from './FilesystemImportView';\nimport FolderView from './FolderView';\nimport FrontPageView from './FrontPageView';\nimport GroupView from './GroupView';\nimport GroupsView from './GroupsView';\nimport ItemView from './ItemView';\nimport PluginsView from './PluginsView';\nimport S3ImportView from './S3ImportView';\nimport SearchResultsView from './SearchResultsView';\nimport SystemConfigurationView from './SystemConfigurationView';\nimport UserAccountView from './UserAccountView';\nimport UserView from './UserView';\nimport UsersView from './UsersView';\n\nexport {\n AdminView,\n AssetstoresView,\n CollectionView,\n CollectionsView,\n FilesystemImportView,\n FolderView,\n FrontPageView,\n GroupView,\n GroupsView,\n ItemView,\n PluginsView,\n S3ImportView,\n SearchResultsView,\n SystemConfigurationView,\n UserAccountView,\n UserView,\n UsersView\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/views/body/index.js","import FooterView from './FooterView';\nimport GlobalNavView from './GlobalNavView';\nimport HeaderUserView from './HeaderUserView';\nimport HeaderView from './HeaderView';\nimport LoginView from './LoginView';\nimport ProgressListView from './ProgressListView';\nimport RegisterView from './RegisterView';\nimport ResetPasswordView from './ResetPasswordView';\n\nexport {\n FooterView,\n GlobalNavView,\n HeaderUserView,\n HeaderView,\n LoginView,\n ProgressListView,\n RegisterView,\n ResetPasswordView\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/views/layout/index.js","import AccessWidget from './AccessWidget';\nimport ApiKeyListWidget from './ApiKeyListWidget';\nimport BrowserWidget from './BrowserWidget';\nimport CheckedMenuWidget from './CheckedMenuWidget';\nimport CollectionInfoWidget from './CollectionInfoWidget';\nimport DateTimeRangeWidget from './DateTimeRangeWidget';\nimport DateTimeWidget from './DateTimeWidget';\nimport EditApiKeyWidget from './EditApiKeyWidget';\nimport EditAssetstoreWidget from './EditAssetstoreWidget';\nimport EditCollectionWidget from './EditCollectionWidget';\nimport EditFileWidget from './EditFileWidget';\nimport EditFolderWidget from './EditFolderWidget';\nimport EditGroupWidget from './EditGroupWidget';\nimport EditItemWidget from './EditItemWidget';\nimport FileInfoWidget from './FileInfoWidget';\nimport FileListWidget from './FileListWidget';\nimport FolderInfoWidget from './FolderInfoWidget';\nimport FolderListWidget from './FolderListWidget';\nimport GroupAdminsWidget from './GroupAdminsWidget';\nimport GroupInvitesWidget from './GroupInvitesWidget';\nimport GroupMembersWidget from './GroupMembersWidget';\nimport GroupModsWidget from './GroupModsWidget';\nimport HierarchyWidget from './HierarchyWidget';\nimport ItemBreadcrumbWidget from './ItemBreadcrumbWidget';\nimport ItemListWidget from './ItemListWidget';\nimport LoadingAnimation from './LoadingAnimation';\nimport MarkdownWidget from './MarkdownWidget';\nimport MetadataWidget from './MetadataWidget';\nimport NewAssetstoreWidget from './NewAssetstoreWidget';\nimport PaginateWidget from './PaginateWidget';\nimport PluginConfigBreadcrumbWidget from './PluginConfigBreadcrumbWidget';\nimport RootSelectorWidget from './RootSelectorWidget';\nimport SearchFieldWidget from './SearchFieldWidget';\nimport TaskProgressWidget from './TaskProgressWidget';\nimport TimelineWidget from './TimelineWidget';\nimport UploadWidget from './UploadWidget';\n\nexport {\n AccessWidget,\n ApiKeyListWidget,\n BrowserWidget,\n CheckedMenuWidget,\n CollectionInfoWidget,\n DateTimeWidget,\n DateTimeRangeWidget,\n EditApiKeyWidget,\n EditAssetstoreWidget,\n EditCollectionWidget,\n EditFileWidget,\n EditFolderWidget,\n EditGroupWidget,\n EditItemWidget,\n FileInfoWidget,\n FileListWidget,\n FolderInfoWidget,\n FolderListWidget,\n GroupAdminsWidget,\n GroupInvitesWidget,\n GroupMembersWidget,\n GroupModsWidget,\n HierarchyWidget,\n ItemBreadcrumbWidget,\n ItemListWidget,\n LoadingAnimation,\n MarkdownWidget,\n MetadataWidget,\n NewAssetstoreWidget,\n PaginateWidget,\n PluginConfigBreadcrumbWidget,\n RootSelectorWidget,\n SearchFieldWidget,\n TaskProgressWidget,\n TimelineWidget,\n UploadWidget\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/views/widgets/index.js","import _ from 'underscore';\nimport moment from 'moment';\n\nimport View from '@girder/core/views/View';\n\nimport dateTimeRangeWidgetTemplate from '@girder/core/templates/widgets/dateTimeRangeWidget.pug';\n\nimport 'eonasdan-bootstrap-datetimepicker'; // /src/js/bootstrap-datetimepicker.js'\nimport 'eonasdan-bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.css';\n\n/**\n * This widget provides text input fields to specify a range of dates/times.\n * That is, the first field specifies \"from\" and the second field specifies\n * \"to.\" The user chooses each date/time using a popup picker.\n */\nvar DateTimeRangeWidget = View.extend({\n\n /**\n * @param [settings.defaultFromDate=false] The default \"from\" date/time when\n * not set explicitly. Set to false to have no default.\n * @param [settings.defaultToDate=false] The default \"to\" date/time when not\n * set explicitly. Set to false to have no default.\n * @param [settings.showIcon=true] Whether to show calendar icons beside\n * the input fields. When true, clicking the icon shows the popup. Otherwise,\n * focusing the input field shows the popup.\n * @param [settings.fromLabel='Start date'] The label text for the \"from\"\n * input field.\n * @param [settings.toLabel='End date'] The label text for the \"to\" input\n * field.\n */\n initialize: function (settings) {\n this.defaultFromDate = settings.defaultFromDate || false;\n this.defaultToDate = settings.defaultToDate || false;\n this.showIcon = _.has(settings, 'showIcon') ? settings.showIcon : true;\n this.fromLabel = settings.fromLabel || 'Start date';\n this.toLabel = settings.toLabel || 'End date';\n },\n\n render: function () {\n this.$el.html(dateTimeRangeWidgetTemplate({\n showIcon: this.showIcon,\n fromLabel: this.fromLabel,\n toLabel: this.toLabel\n }));\n\n // Link datetimepickers to disallow choosing range where \"from\" date is\n // after \"to\" date\n\n var options = {\n showClear: true,\n showTodayButton: true,\n icons: {\n time: 'icon-clock',\n date: 'icon-calendar',\n up: 'icon-up-open',\n down: 'icon-down-open',\n previous: 'icon-left-open',\n next: 'icon-right-open',\n clear: 'icon-trash',\n close: 'icon-cancel',\n today: 'icon-target'\n }\n };\n options.useCurrent = 'day';\n options.defaultDate = this.defaultFromDate;\n this.$('.g-datetime-widget-from').datetimepicker(options);\n\n options.useCurrent = false;\n options.defaultDate = this.defaultToDate;\n this.$('.g-datetime-widget-to').datetimepicker(options);\n\n this.$('.g-datetime-widget-from').on('dp.change', (e) => {\n var picker = this._picker('.g-datetime-widget-to');\n picker.minDate(e.date);\n });\n this.$('.g-datetime-widget-to').on('dp.change', (e) => {\n var picker = this._picker('.g-datetime-widget-from');\n picker.maxDate(e.date);\n });\n\n return this;\n },\n\n /**\n * Set \"from\" date/time. Argument can be an ISO 8601-formatted date string,\n * a moment object, or a Date object. Call with null or the empty string to\n * clear. When called with a string, the widget displays in local time.\n *\n * @param date From date/time to display.\n */\n setFromDate: function (date) {\n this._setDate('.g-datetime-widget-from', date);\n },\n\n /**\n * Set \"to\" date/time. Argument can be an ISO 8601-formatted date string,\n * a moment object, or a Date object. Call with null or the empty string to\n * clear. When called with a string, the widget displays in local time.\n *\n * @param date To date/time to display.\n */\n setToDate: function (date) {\n this._setDate('.g-datetime-widget-to', date);\n },\n\n /*\n * Convenience function to set date/time for a specified datetimepicker.\n *\n * @param [id] Element ID on which to access the datetimepicker.\n */\n _setDate: function (id, date) {\n var picker = this._picker(id);\n if (_.isEmpty(date)) {\n picker.clear();\n } else if (_.isString(date)) {\n var localDate = moment.utc(date).local();\n picker.date(localDate);\n } else {\n picker.date(date);\n }\n },\n\n /**\n * Get the \"from\" date/time as a moment object in UTC. Returns null if no\n * date is set.\n */\n fromDate: function () {\n return this._date('.g-datetime-widget-from');\n },\n\n /**\n * Get the \"to\" date/time as a moment object in UTC. Returns null if no date\n * is set.\n */\n toDate: function () {\n return this._date('.g-datetime-widget-to');\n },\n\n /**\n * Convenience function to return \"from\" the date/time as a string in UTC.\n * Returns the empty string if no date is set.\n */\n fromDateString: function () {\n return this._dateString('.g-datetime-widget-from');\n },\n\n /**\n * Convenience function to return the \"to\" date/time as a string in UTC.\n * Returns the empty string if no date is set.\n */\n toDateString: function () {\n return this._dateString('.g-datetime-widget-to');\n },\n\n _picker: function (id) {\n var picker = this.$(id).data('DateTimePicker');\n return picker;\n },\n\n _date: function (id) {\n var picker = this._picker(id);\n var date = picker.date();\n if (date !== null) {\n date = moment(date);\n date.utc();\n }\n return date;\n },\n\n _dateString: function (id) {\n var date = this._date(id);\n if (date === null) {\n return '';\n }\n return date.format();\n }\n});\n\nexport default DateTimeRangeWidget;\n\n\n\n// WEBPACK FOOTER //\n// ./src/views/widgets/DateTimeRangeWidget.js","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FdateTimeRangeWidget.pug\":\".form-group\\n label.control-label= fromLabel\\n if showIcon\\n .input-group.date.g-datetime-widget-from\\n input.input-sm.form-control(type=\\\"text\\\")\\n .input-group-addon\\n span.icon-calendar\\n else\\n .input-group.date\\n input.input-sm.form-control.g-datetime-widget-from(type=\\\"text\\\")\\n.form-group\\n label.control-label= toLabel\\n if showIcon\\n .input-group.date.g-datetime-widget-to\\n input.input-sm.form-control(type=\\\"text\\\")\\n .input-group-addon\\n span.icon-calendar\\n else\\n .input-group.date\\n input.input-sm.form-control.g-datetime-widget-to(type=\\\"text\\\")\\n\"};\n;var locals_for_with = (locals || {});(function (fromLabel, showIcon, toLabel) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FdateTimeRangeWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FdateTimeRangeWidget.pug\";\npug_html = pug_html + \"\\u003Clabel class=\\\"control-label\\\"\\u003E\";\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FdateTimeRangeWidget.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = fromLabel) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FdateTimeRangeWidget.pug\";\nif (showIcon) {\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FdateTimeRangeWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"input-group date g-datetime-widget-from\\\"\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FdateTimeRangeWidget.pug\";\npug_html = pug_html + \"\\u003Cinput class=\\\"input-sm form-control\\\" type=\\\"text\\\"\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FdateTimeRangeWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"input-group-addon\\\"\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FdateTimeRangeWidget.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"icon-calendar\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FdateTimeRangeWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"input-group date\\\"\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FdateTimeRangeWidget.pug\";\npug_html = pug_html + \"\\u003Cinput class=\\\"input-sm form-control g-datetime-widget-from\\\" type=\\\"text\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FdateTimeRangeWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FdateTimeRangeWidget.pug\";\npug_html = pug_html + \"\\u003Clabel class=\\\"control-label\\\"\\u003E\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FdateTimeRangeWidget.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = toLabel) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FdateTimeRangeWidget.pug\";\nif (showIcon) {\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FdateTimeRangeWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"input-group date g-datetime-widget-to\\\"\\u003E\";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FdateTimeRangeWidget.pug\";\npug_html = pug_html + \"\\u003Cinput class=\\\"input-sm form-control\\\" type=\\\"text\\\"\\u003E\";\n;pug_debug_line = 16;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FdateTimeRangeWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"input-group-addon\\\"\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FdateTimeRangeWidget.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"icon-calendar\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FdateTimeRangeWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"input-group date\\\"\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FdateTimeRangeWidget.pug\";\npug_html = pug_html + \"\\u003Cinput class=\\\"input-sm form-control g-datetime-widget-to\\\" type=\\\"text\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"fromLabel\" in locals_for_with?locals_for_with.fromLabel:typeof fromLabel!==\"undefined\"?fromLabel:undefined,\"showIcon\" in locals_for_with?locals_for_with.showIcon:typeof showIcon!==\"undefined\"?showIcon:undefined,\"toLabel\" in locals_for_with?locals_for_with.toLabel:typeof toLabel!==\"undefined\"?toLabel:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/dateTimeRangeWidget.pug","import _ from 'underscore';\nimport moment from 'moment';\n\nimport View from '@girder/core/views/View';\n\nimport dateTimeWidgetTemplate from '@girder/core/templates/widgets/dateTimeWidget.pug';\n\nimport 'eonasdan-bootstrap-datetimepicker'; // /src/js/bootstrap-datetimepicker.js'\nimport 'eonasdan-bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.css';\n\n/**\n * This widget provides a text input field to specify a date/time. The user\n * chooses the date/time using a popup picker.\n */\nvar DateTimeWidget = View.extend({\n\n /**\n * @param [settings.defaultDate=false] The default date/time when not set\n * explicitly. Set to false to have no default.\n * @param [settings.showIcon=true] Whether to show a calendar icon beside\n * the input field. When true, clicking the icon shows the popup. Otherwise,\n * focusing the input field shows the popup.\n */\n initialize: function (settings) {\n this.defaultDate = settings.defaultDate || false;\n this.showIcon = _.has(settings, 'showIcon') ? settings.showIcon : true;\n },\n\n render: function () {\n this.$el.html(dateTimeWidgetTemplate({\n showIcon: this.showIcon\n }));\n\n this.$('.g-datetime-widget').datetimepicker({\n showClear: true,\n showTodayButton: true,\n useCurrent: 'day',\n icons: {\n time: 'icon-clock',\n date: 'icon-calendar',\n up: 'icon-up-open',\n down: 'icon-down-open',\n previous: 'icon-left-open',\n next: 'icon-right-open',\n clear: 'icon-trash',\n close: 'icon-cancel',\n today: 'icon-target'\n },\n defaultDate: this.defaultDate\n });\n\n return this;\n },\n\n /**\n * Set date/time. Argument can be an ISO 8601-formatted date string, a\n * moment object, or a Date object. Call with null or the empty string to\n * clear. When called with a string, the widget displays in local time.\n *\n * @param date Date/time to display.\n */\n setDate: function (date) {\n var picker = this._picker();\n if (_.isEmpty(date)) {\n picker.clear();\n } else if (_.isString(date)) {\n var localDate = moment.utc(date).local();\n picker.date(localDate);\n } else {\n picker.date(date);\n }\n },\n\n /**\n * Get the date/time as a moment object in UTC. Returns null if no date is\n * set.\n */\n date: function () {\n var picker = this._picker();\n var date = picker.date();\n if (date !== null) {\n date = moment(date);\n date.utc();\n }\n return date;\n },\n\n /**\n * Convenience function to return the date/time as a string in UTC. Returns\n * the empty string if no date is set.\n */\n dateString: function () {\n var date = this.date();\n if (date === null) {\n return '';\n }\n return date.format();\n },\n\n /**\n * Convenience function to access the datetimepicker on an element.\n */\n _picker: function () {\n var picker = this.$('.g-datetime-widget').data('DateTimePicker');\n return picker;\n }\n});\n\nexport default DateTimeWidget;\n\n\n\n// WEBPACK FOOTER //\n// ./src/views/widgets/DateTimeWidget.js","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FdateTimeWidget.pug\":\"if showIcon\\n .input-group.date.g-datetime-widget\\n input.input-sm.form-control(type=\\\"text\\\")\\n span.input-group-addon\\n span.icon-calendar\\nelse\\n .input-group\\n input.input-sm.form-control.g-datetime-widget(type=\\\"text\\\")\\n\"};\n;var locals_for_with = (locals || {});(function (showIcon) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FdateTimeWidget.pug\";\nif (showIcon) {\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FdateTimeWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"input-group date g-datetime-widget\\\"\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FdateTimeWidget.pug\";\npug_html = pug_html + \"\\u003Cinput class=\\\"input-sm form-control\\\" type=\\\"text\\\"\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FdateTimeWidget.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"input-group-addon\\\"\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FdateTimeWidget.pug\";\npug_html = pug_html + \"\\u003Cspan class=\\\"icon-calendar\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FdateTimeWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"input-group\\\"\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FdateTimeWidget.pug\";\npug_html = pug_html + \"\\u003Cinput class=\\\"input-sm form-control g-datetime-widget\\\" type=\\\"text\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}}.call(this,\"showIcon\" in locals_for_with?locals_for_with.showIcon:typeof showIcon!==\"undefined\"?showIcon:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/dateTimeWidget.pug","import router from '@girder/core/router';\nimport View from '@girder/core/views/View';\n\nimport PluginConfigBreadcrumbTemplate from '@girder/core/templates/widgets/pluginConfigBreadcrumb.pug';\n\n/**\n * This widget provides a consistent breadcrumb to be displayed on the admin\n * configuration pages for plugins.\n */\nvar PluginConfigBreadcrumbWidget = View.extend({\n events: {\n 'click a.g-admin-console-link': function () {\n router.navigate('admin', { trigger: true });\n },\n 'click a.g-plugins-link': function () {\n router.navigate('plugins', { trigger: true });\n }\n },\n\n initialize: function (settings) {\n this.pluginName = settings.pluginName;\n },\n\n render: function () {\n this.$el.html(PluginConfigBreadcrumbTemplate({\n pluginName: this.pluginName\n }));\n\n return this;\n }\n});\n\nexport default PluginConfigBreadcrumbWidget;\n\n\n\n// WEBPACK FOOTER //\n// ./src/views/widgets/PluginConfigBreadcrumbWidget.js","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FpluginConfigBreadcrumb.pug\":\".g-plugin-config-breadcrumbs\\n ol.breadcrumb\\n li\\n a.g-admin-console-link\\n i.icon-wrench\\n | Admin console\\n li\\n a.g-plugins-link\\n i.icon-puzzle\\n | Plugins\\n li.active\\n i.icon-cog\\n | #{pluginName}\\n\"};\n;var locals_for_with = (locals || {});(function (pluginName) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FpluginConfigBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-plugin-config-breadcrumbs\\\"\\u003E\";\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FpluginConfigBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Col class=\\\"breadcrumb\\\"\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FpluginConfigBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Cli\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FpluginConfigBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-admin-console-link\\\"\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FpluginConfigBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-wrench\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FpluginConfigBreadcrumb.pug\";\npug_html = pug_html + \"Admin console\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FpluginConfigBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Cli\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FpluginConfigBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-plugins-link\\\"\\u003E\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FpluginConfigBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-puzzle\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FpluginConfigBreadcrumb.pug\";\npug_html = pug_html + \"Plugins\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FpluginConfigBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Cli class=\\\"active\\\"\\u003E\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FpluginConfigBreadcrumb.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-cog\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002FpluginConfigBreadcrumb.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = pluginName) ? \"\" : pug_interp)) + \"\\u003C\\u002Fli\\u003E\\u003C\\u002Fol\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"pluginName\" in locals_for_with?locals_for_with.pluginName:typeof pluginName!==\"undefined\"?pluginName:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/pluginConfigBreadcrumb.pug","import _ from 'underscore';\n\nimport View from '@girder/core/views/View';\n\nimport TimelineTemplate from '@girder/core/templates/widgets/timeline.pug';\n\nimport '@girder/core/stylesheets/widgets/timelineWidget.styl';\n\n/**\n * This widget displays a timeline of events. This is visualized as a line (a bar)\n * with two sorts of primitives overlaid:\n *\n * 1. Segments: spans of time, with a start and end.\n * 2. Points: a single point in time. Points always display on top of segments.\n *\n * Any number of these primitives can be displayed on the timeline, so long as they\n * are bounded between the specified startTime and endTime. The time values for\n * startTime, endTime, and for the primitives can be specified either as numeric\n * values (i.e. a relative offset in time), or as date strings that can be parsed\n * by JavaScript, or as Date objects. For obvious reasons, in a single instance of\n * this widget, it is not possible to mix the numeric/relative values with datestamp\n * values.\n */\nvar TimelineWidget = View.extend({\n /**\n * Initialize the timeline widget.\n *\n * @param settings.startTime The numeric value or timestamp representing where\n * the timeline should start.\n * @param settings.endTime The numeric value or timestamp representing where\n * the timeline should end. Must be greater than the startTime value. All\n * segments and points should be bounded within the interval [startTime, endTime].\n * @param [settings.numeric=false] If the time values being passed in are simply\n * relative, scalar values (e.g. number of seconds since start) rather than\n * timestamps, set this to true.\n * @param [settings.startLabel] Pass to show a label for the start of the timeline.\n * @param [settings.endLabel] Pass to show a label for the end of the timeline.\n * @param [settings.defaultSegmentClass='g-segment-default'] A CSS class set\n * on segments that do not specify a class.\n * @param [settings.defaultPointClass='g-point-default'] A CSS class set\n * on points that do not specify a class.\n * @param [settings.segments=[]] A list of segments. Each element of the list\n * should be an object with the following keys:\n * - start: A number or timestamp representing\n * - end: A numer of timestamp representing the end of this segment.\n * - [class]: A CSS class name to apply to the segment. Uses the\n * widget's defaultSegmentClass if this key is not set.\n * - [tooltip]: A tooltip value for this segment. Tooltips containing the\n * special token \"%r\" will have that token expanded into the\n * elapsed time between start and end.\n * @param [settings.points=[]] A list of points. Each element of the list should\n * be an object with the following keys:\n * - time: A number or timestamp representing the location of the point.\n * - [class]: A CSS class name to apply to the point. Uses the\n * widget's defaultPointClass if this key is not set.\n * - [tooltip]: A tooltip value for this point. Tooltips containing the\n * special token \"%t\" will have that token expanded into the\n * time value for that point.\n */\n initialize: function (settings) {\n this.startTime = settings.startTime;\n this.endTime = settings.endTime;\n this.segments = settings.segments || [];\n this.points = settings.points || [];\n this.numeric = !!settings.numeric;\n this.startLabel = settings.startLabel;\n this.endLabel = settings.endLabel;\n this.defaultSegmentClass = settings.defaultSegmentClass || 'g-segment-default';\n this.defaultPointClass = settings.defaultPointClass || 'g-point-default';\n\n this._processData();\n },\n\n // Processes the points and segments for display in the widget\n _processData: function () {\n if (!this.numeric) {\n this.startTime = new Date(this.startTime);\n this.endTime = new Date(this.endTime);\n }\n\n if (this.endTime <= this.startTime) {\n console.error('Timeline widget: end time must be after start time.');\n this._processedSegments = [];\n this._processedPoints = [];\n return;\n }\n\n var range = this.endTime - this.startTime;\n\n this._processedSegments = _.map(this.segments, function (segment) {\n var start = this.numeric ? segment.start : new Date(segment.start);\n var end = this.numeric ? segment.end : new Date(segment.end);\n var classes = segment.class ? [segment.class] : [this.defaultSegmentClass];\n var color = segment.color ? `background-color: ${segment.color}` : '';\n\n return {\n class: classes.join(' '),\n left: (100 * (start - this.startTime) / range).toFixed(1) + '%',\n width: (100 * (end - start) / range).toFixed(1) + '%',\n tooltip: this._segmentTooltip(segment, {\n range: this.numeric ? end - start : (end - start) / 1000\n }),\n color\n };\n }, this);\n\n this._processedPoints = _.map(this.points, function (point) {\n var time = this.numeric ? point.time : new Date(point.time);\n var classes = point.class ? [point.class] : [this.defaultPointClass];\n var color = point.color ? `background-color: ${point.color}` : '';\n\n return {\n class: classes.join(' '),\n left: (100 * (time - this.startTime) / range).toFixed(1) + '%',\n tooltip: this._pointTooltip(point, {\n time: time\n }),\n color\n };\n }, this);\n },\n\n _segmentTooltip: function (segment, info) {\n if (!segment.tooltip) {\n return null;\n }\n\n return segment.tooltip.replace('%r', info.range);\n },\n\n _pointTooltip: function (point, info) {\n if (!point.tooltip) {\n return null;\n }\n\n if (this.numeric) {\n return point.tooltip.replace('%t', info.time);\n } else {\n return point.tooltip.replace('%t', info.time.toISOString());\n }\n },\n\n render: function () {\n this.$el.html(TimelineTemplate({\n segments: this._processedSegments,\n points: this._processedPoints,\n startLabel: this.startLabel,\n endLabel: this.endLabel\n }));\n\n return this;\n }\n});\n\nexport default TimelineWidget;\n\n\n\n// WEBPACK FOOTER //\n// ./src/views/widgets/TimelineWidget.js","var pug = require(\"!../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002Ftimeline.pug\":\".g-timeline-widget-wrapper\\n .g-timeline-container\\n each segment in segments\\n .g-timeline-segment(\\n title=segment.tooltip, class=segment.class,\\n style=`left: ${segment.left}; width: ${segment.width}; ${segment.color}`)\\n each point in points\\n .g-timeline-point(\\n title=point.tooltip, class=point.class, style=`left: calc(${point.left} - 10px); ${point.color}`)\\n if startLabel !== undefined || endLabel !== undefined\\n .g-timeline-labels-container\\n if startLabel !== undefined\\n .g-timeline-start-label= startLabel\\n if endLabel !== undefined\\n .g-timeline-end-label= endLabel\\n\"};\n;var locals_for_with = (locals || {});(function (endLabel, points, segments, startLabel) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002Ftimeline.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-timeline-widget-wrapper\\\"\\u003E\";\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002Ftimeline.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-timeline-container\\\"\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002Ftimeline.pug\";\n// iterate segments\n;(function(){\n var $$obj = segments;\n if ('number' == typeof $$obj.length) {\n for (var pug_index0 = 0, $$l = $$obj.length; pug_index0 < $$l; pug_index0++) {\n var segment = $$obj[pug_index0];\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002Ftimeline.pug\";\npug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([\"g-timeline-segment\",segment.class], [false,true]), false, true)+pug.attr(\"title\", segment.tooltip, true, true)+pug.attr(\"style\", pug.style(`left: ${segment.left}; width: ${segment.width}; ${segment.color}`), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index0 in $$obj) {\n $$l++;\n var segment = $$obj[pug_index0];\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002Ftimeline.pug\";\npug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([\"g-timeline-segment\",segment.class], [false,true]), false, true)+pug.attr(\"title\", segment.tooltip, true, true)+pug.attr(\"style\", pug.style(`left: ${segment.left}; width: ${segment.width}; ${segment.color}`), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n }\n }\n}).call(this);\n\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002Ftimeline.pug\";\n// iterate points\n;(function(){\n var $$obj = points;\n if ('number' == typeof $$obj.length) {\n for (var pug_index1 = 0, $$l = $$obj.length; pug_index1 < $$l; pug_index1++) {\n var point = $$obj[pug_index1];\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002Ftimeline.pug\";\npug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([\"g-timeline-point\",point.class], [false,true]), false, true)+pug.attr(\"title\", point.tooltip, true, true)+pug.attr(\"style\", pug.style(`left: calc(${point.left} - 10px); ${point.color}`), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index1 in $$obj) {\n $$l++;\n var point = $$obj[pug_index1];\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002Ftimeline.pug\";\npug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([\"g-timeline-point\",point.class], [false,true]), false, true)+pug.attr(\"title\", point.tooltip, true, true)+pug.attr(\"style\", pug.style(`left: calc(${point.left} - 10px); ${point.color}`), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n }\n }\n}).call(this);\n\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002Ftimeline.pug\";\nif (startLabel !== undefined || endLabel !== undefined) {\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002Ftimeline.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-timeline-labels-container\\\"\\u003E\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002Ftimeline.pug\";\nif (startLabel !== undefined) {\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002Ftimeline.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-timeline-start-label\\\"\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002Ftimeline.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = startLabel) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002Ftimeline.pug\";\nif (endLabel !== undefined) {\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002Ftimeline.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-timeline-end-label\\\"\\u003E\";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fsrc\\u002Ftemplates\\u002Fwidgets\\u002Ftimeline.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = endLabel) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"endLabel\" in locals_for_with?locals_for_with.endLabel:typeof endLabel!==\"undefined\"?endLabel:undefined,\"points\" in locals_for_with?locals_for_with.points:typeof points!==\"undefined\"?points:undefined,\"segments\" in locals_for_with?locals_for_with.segments:typeof segments!==\"undefined\"?segments:undefined,\"startLabel\" in locals_for_with?locals_for_with.startLabel:typeof startLabel!==\"undefined\"?startLabel:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./src/templates/widgets/timeline.pug","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/stylesheets/widgets/timelineWidget.styl\n// module id = 520\n// module chunks = 0"],"sourceRoot":""}